X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=psp%2Fmenu.c;h=44c7c66c8c76263da2cdcc9bdb4b1d4eededebaa;hb=260f1bcc8a782e7b19a11d446927cd4c2c493e8c;hp=1613cfb7947527b8cc1bb97a429dc00a8638b857;hpb=960a8e2716349f9a7df6cca9b6e8e6b0724fe7ba;p=libpicofe.git diff --git a/psp/menu.c b/psp/menu.c index 1613cfb..44c7c66 100644 --- a/psp/menu.c +++ b/psp/menu.c @@ -52,18 +52,21 @@ static unsigned int inp_prev = 0; static unsigned long wait_for_input(unsigned int interesting, int is_key_config) { unsigned int ret; - static int repeats = 0, wait = 50; + static int repeats = 0, wait = 20; int release = 0, count, i; if (!is_key_config) interesting |= (interesting & 0xf0) << 24; // also use analog - if (repeats == 2 || repeats == 4) wait /= 2; - if (repeats == 6) wait = 15; + if (repeats == 2) wait = 3; + else if (repeats == 4) wait = 2; + else if (repeats == 6) wait = 1; - for (i = 0; i < 6 && inp_prev == psp_pad_read(1); i++) { + for (i = 0; i < wait && inp_prev == gp2x_joystick_read(1); i++) { + + for (i = 0; i < wait && inp_prev == psp_pad_read(1); i++) { if (i == 0) repeats++; - psp_msleep(wait); + psp_msleep(30); } for (count = 0; !((ret = psp_pad_read(1)) & interesting) && count < 100; count++) { @@ -73,12 +76,14 @@ static unsigned long wait_for_input(unsigned int interesting, int is_key_config) if (release || ret != inp_prev) { repeats = 0; - wait = 50; + wait = 20; } inp_prev = ret; if (!is_key_config) ret |= (ret & 0xf0000000) >> 24; // use analog as d-pad + if (wait > 6 && (ret&(BTN_UP|BTN_LEFT|BTN_DOWN|BTN_RIGHT|BTN_L|BTN_R))) + wait = 6; // we don't need diagonals in menus if ((ret&BTN_UP) && (ret&BTN_LEFT)) ret &= ~BTN_LEFT; @@ -185,7 +190,7 @@ struct my_dirent static unsigned short file2color(const char *fname) { const char *ext = fname + strlen(fname) - 3; - static const char *rom_exts[] = { "zip", "bin", "smd", "gen", "iso", "cso" }; + static const char *rom_exts[] = { "zip", "bin", "smd", "gen", "iso", "cso", "cue" }; static const char *other_exts[] = { "gmv", "pat" }; int i; @@ -241,7 +246,7 @@ static int scandir_cmp(const void *p1, const void *p2) static char *filter_exts[] = { ".mp3", ".srm", ".brm", "s.gz", ".mds", "bcfg", ".txt", ".htm", "html", - ".jpg", ".cue", ".pbp" + ".jpg", ".pbp" }; static int scandir_filter(const struct my_dirent *ent) @@ -1507,13 +1512,15 @@ static void draw_menu_credits(void) text_out16(tl_x, (y+=10), "Chui: Fame/C"); text_out16(tl_x, (y+=10), "NJ: CZ80"); text_out16(tl_x, (y+=10), "MAME devs: YM2612 and SN76496 cores"); - text_out16(tl_x, (y+=10), "Stephane Dallongeville:"); - text_out16(tl_x, (y+=10), " Gens code, base of Fame/C, CZ80"); - text_out16(tl_x, (y+=10), "Charles MacDonald: Genesis hw docs"); - text_out16(tl_x, (y+=10), "Haze: Genesis hw info"); text_out16(tl_x, (y+=10), "ps2dev.org people: PSP SDK/code"); text_out16(tl_x, (y+=10), "ketchupgun: skin design"); + text_out16(tl_x, (y+=20), "special thanks (for code, docs, ideas):"); + text_out16(tl_x, (y+=10), " Charles MacDonald, Haze,"); + text_out16(tl_x, (y+=10), " Stephane Dallongeville,"); + text_out16(tl_x, (y+=10), " Lordus, Exophase, Rokas,"); + text_out16(tl_x, (y+=10), " Nemesis, Tasco Deluxe"); + menu_draw_end(); } @@ -1624,6 +1631,7 @@ static void menu_loop_root(void) if (rom_loaded) { if(savestate_menu_loop(1)) continue; + while (psp_pad_read(1) & BTN_CIRCLE) psp_msleep(50); engineState = PGS_Running; return; } @@ -1631,6 +1639,7 @@ static void menu_loop_root(void) case MA_MAIN_RESET_GAME: if (rom_loaded) { emu_ResetGame(); + while (psp_pad_read(1) & BTN_CIRCLE) psp_msleep(50); engineState = PGS_Running; return; } @@ -1810,10 +1819,11 @@ int menu_loop_tray(void) case 0: // select image selfname = romsel_loop(curr_path); if (selfname) { - int ret = -1, cd_type; + int ret = -1; + cd_img_type cd_type; cd_type = emu_cdCheck(NULL); - if (cd_type > 0) - ret = Insert_CD(romFileName, cd_type == 2); + if (cd_type != CIT_NOT_CD) + ret = Insert_CD(romFileName, cd_type); if (ret != 0) { sprintf(menuErrorMsg, "Load failed, invalid CD image?"); lprintf("%s\n", menuErrorMsg);