X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=linux%2Femu.c;h=0b4361d1d44f18ae1818a5d8009b11d6dabbc660;hb=902972d1c7f353aebb17a5ab587b2526e1a45d60;hp=1d9c2bb311bbd90fa763aa94d762960f0e8f2c62;hpb=209a7eff8b4d8e347bb580c2bd3fe6402f074f9b;p=libpicofe.git diff --git a/linux/emu.c b/linux/emu.c index 1d9c2bb..0b4361d 100644 --- a/linux/emu.c +++ b/linux/emu.c @@ -17,7 +17,6 @@ static short __attribute__((aligned(4))) sndBuffer[2*44100/50]; -char cpu_clk_name[] = "unused"; const char *renderer_names[] = { "16bit accurate", " 8bit accurate", " 8bit fast", NULL }; const char *renderer_names32x[] = { "accurate", "faster", "fastest", NULL }; enum renderer_types { RT_16BIT, RT_8BIT_ACC, RT_8BIT_FAST, RT_COUNT }; @@ -125,9 +124,6 @@ void pemu_finalize_frame(const char *fps, const char *notice) static void apply_renderer(void) { - PicoScanBegin = NULL; - PicoScanEnd = NULL; - switch (currentConfig.renderer) { case RT_16BIT: PicoOpt &= ~POPT_ALT_RENDERER; @@ -178,7 +174,7 @@ void plat_video_menu_enter(int is_rom_loaded) void plat_video_menu_begin(void) { - memcpy32(g_screen_ptr, g_menubg_ptr, g_screen_width * g_screen_height * 2 / 4); + g_menuscreen_ptr = g_screen_ptr; } void plat_video_menu_end(void) @@ -212,23 +208,29 @@ void plat_update_volume(int has_changed, int is_up) { } -void pemu_forced_frame(int opts, int no_scale) +void pemu_forced_frame(int no_scale, int do_emu) { int po_old = PicoOpt; - int eo_old = currentConfig.EmuOpt; + + memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4); PicoOpt &= ~POPT_ALT_RENDERER; - PicoOpt |= opts|POPT_ACC_SPRITES; // acc_sprites + PicoOpt |= POPT_ACC_SPRITES; + if (!no_scale) + PicoOpt |= POPT_EN_SOFTSCALE; PicoDrawSetOutFormat(PDF_RGB555, 1); PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2); PicoDraw32xSetFrameMode(0, 0); Pico.m.dirtyPal = 1; - PicoFrameDrawOnly(); + if (do_emu) + PicoFrame(); + else + PicoFrameDrawOnly(); + g_menubg_src_ptr = g_screen_ptr; PicoOpt = po_old; - currentConfig.EmuOpt = eo_old; } static void updateSound(int len) @@ -303,24 +305,10 @@ void pemu_loop_prep(void) void pemu_loop_end(void) { - int po_old = PicoOpt; - int eo_old = currentConfig.EmuOpt; - pemu_sound_stop(); - memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4); /* do one more frame for menu bg */ - PicoOpt &= ~POPT_ALT_RENDERER; - PicoOpt |= POPT_EN_SOFTSCALE|POPT_ACC_SPRITES; - - PicoDrawSetOutFormat(PDF_RGB555, 1); - PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2); - PicoDraw32xSetFrameMode(0, 0); - Pico.m.dirtyPal = 1; - PicoFrame(); - - PicoOpt = po_old; - currentConfig.EmuOpt = eo_old; + pemu_forced_frame(0, 1); } void plat_wait_till_us(unsigned int us_to)