X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=gp2x%2Fmenu.c;h=ef54ed6322c3d1236f9f4a9ba802037589992bf2;hb=41ec19af1e5a75e799e2c26091548790b41acb6c;hp=7dd2e5858ca039382d7c003125ed6afab56646a7;hpb=4b8f4f3c0d614637f1ec6df36330b1ad7a32b498;p=libpicofe.git diff --git a/gp2x/menu.c b/gp2x/menu.c index 7dd2e58..ef54ed6 100644 --- a/gp2x/menu.c +++ b/gp2x/menu.c @@ -133,17 +133,37 @@ static void menu_flip(void) // --------- loading ROM screen ---------- +static int cdload_called = 0; + static void load_progress_cb(int percent) { int ln, len = percent * 320 / 100; unsigned short *dst = (unsigned short *)gp2x_screen + 320*20; if (len > 320) len = 320; - for (ln = 10; ln > 0; ln--, dst += 320) + for (ln = 8; ln > 0; ln--, dst += 320) memset(dst, 0xff, len*2); menu_flip(); } +static void cdload_progress_cb(int percent) +{ + int ln, len = percent * 320 / 100; + unsigned short *dst = (unsigned short *)gp2x_screen + 320*20; + + memset(dst, 0xff, 320*2*8); + + smalltext_out16(1, 3*10, "Processing CD image / MP3s", 0xffff); + smalltext_out16_lim(1, 4*10, romFileName, 0xffff, 80); + dst += 320*30; + + if (len > 320) len = 320; + for (ln = 8; ln > 0; ln--, dst += 320) + memset(dst, 0xff, len*2); + menu_flip(); + cdload_called = 1; +} + void menu_romload_prepare(const char *rom_name) { const char *p = rom_name + strlen(rom_name); @@ -157,12 +177,14 @@ void menu_romload_prepare(const char *rom_name) gp2x_memcpy_buffers(3, gp2x_screen, 0, 320*240*2); menu_flip(); PicoCartLoadProgressCB = load_progress_cb; + PicoCDLoadProgressCB = cdload_progress_cb; + cdload_called = 0; } void menu_romload_end(void) { - PicoCartLoadProgressCB = NULL; - smalltext_out16(1, 30, "Starting emulation...", 0xffff); + PicoCartLoadProgressCB = PicoCDLoadProgressCB = NULL; + smalltext_out16(1, cdload_called ? 60 : 30, "Starting emulation...", 0xffff); menu_flip(); } @@ -172,7 +194,7 @@ void menu_romload_end(void) static unsigned short file2color(const char *fname) { const char *ext = fname + strlen(fname) - 3; - static const char *rom_exts[] = { "zip", "bin", "smd", "gen", "iso" }; + static const char *rom_exts[] = { "zip", "bin", "smd", "gen", "iso", "cso" }; static const char *other_exts[] = { "gmv", "pat" }; int i; @@ -816,6 +838,7 @@ static bind_action_t emuctrl_actions[] = { "Switch Renderer", 1<<26 }, { "Volume Down ", 1<<30 }, { "Volume Up ", 1<<29 }, + { "Fast forward ", 1<<22 }, { "Enter Menu ", 1<<23 }, }; @@ -1250,6 +1273,10 @@ static void menu_options_save(void) PicoOpt = currentConfig.PicoOpt; PsndRate = currentConfig.PsndRate; PicoRegionOverride = currentConfig.PicoRegion; + if (PicoRegionOverride) { + // force setting possibly changed.. + Pico.m.pal = (PicoRegionOverride == 2 || PicoRegionOverride == 8) ? 1 : 0; + } if (!(PicoOpt & 0x20)) { // unbind XYZ MODE, just in case unbind_action(0xf00, -1, -1);