X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=common%2Femu.c;h=235861b0bfe387384aaacb9c23df437da5cedd2d;hb=c64c8d0ec9d4f52fd65df1d3bce864b7a6152033;hp=f995c1d4bcc006ca2736c0b592e193b3dfe2ae75;hpb=c66f49e61a09926e828b2685cc997a6ebee7cdb4;p=libpicofe.git diff --git a/common/emu.c b/common/emu.c index f995c1d..235861b 100644 --- a/common/emu.c +++ b/common/emu.c @@ -497,11 +497,13 @@ int emu_reload_rom(char *rom_fname) get_ext(rom_fname, ext); - // check for movie file + // early cleanup + PicoPatchUnload(); if (movie_data) { free(movie_data); movie_data = 0; } + if (!strcmp(ext, ".gmv")) { // check for both gmv and rom @@ -558,7 +560,6 @@ int emu_reload_rom(char *rom_fname) } shutdown_MCD(); - PicoPatchUnload(); PicoCartUnload(); rom_loaded = 0; @@ -1256,7 +1257,7 @@ static void run_events_ui(unsigned int which) plat_status_msg_busy_first(tmp); - in_set_blocking(1); + in_set_config_int(0, IN_CFG_BLOCKING, 1); while (in_menu_wait_any(50) & (PBTN_MA3|PBTN_MBACK)) ; while ( !((keys = in_menu_wait_any(50)) & (PBTN_MA3|PBTN_MBACK)) ) @@ -1265,7 +1266,7 @@ static void run_events_ui(unsigned int which) do_it = 0; while (in_menu_wait_any(50) & (PBTN_MA3|PBTN_MBACK)) ; - in_set_blocking(0); + in_set_config_int(0, IN_CFG_BLOCKING, 0); } if (do_it) { plat_status_msg_busy_first((which & PEV_STATE_LOAD) ? "LOADING STATE" : "SAVING STATE"); @@ -1350,6 +1351,27 @@ static void mkdir_path(char *path_with_reserve, int pos, const char *name) lprintf("failed to create: %s\n", path_with_reserve); } +void emu_cmn_forced_frame(int no_scale, int do_emu) +{ + int po_old = PicoOpt; + + memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4); + + PicoOpt &= ~POPT_ALT_RENDERER; + PicoOpt |= POPT_ACC_SPRITES; + if (!no_scale) + PicoOpt |= POPT_EN_SOFTSCALE; + + PicoDrawSetOutFormat(PDF_RGB555, 1); + Pico.m.dirtyPal = 1; + if (do_emu) + PicoFrame(); + else + PicoFrameDrawOnly(); + + PicoOpt = po_old; +} + void emu_init(void) { char path[512];