\r
void plat_video_menu_begin(void)\r
{\r
- memcpy32(g_screen_ptr, g_menubg_ptr, g_screen_width * g_screen_height * 2 / 4);\r
g_menuscreen_ptr = g_screen_ptr;\r
}\r
\r
{\r
}\r
\r
-void pemu_forced_frame(int opts, int no_scale)\r
+void pemu_forced_frame(int no_scale, int do_emu)\r
{\r
int po_old = PicoOpt;\r
- int eo_old = currentConfig.EmuOpt;\r
+\r
+ memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);\r
\r
PicoOpt &= ~POPT_ALT_RENDERER;\r
- PicoOpt |= opts|POPT_ACC_SPRITES; // acc_sprites\r
+ PicoOpt |= POPT_ACC_SPRITES;\r
+ if (!no_scale)\r
+ PicoOpt |= POPT_EN_SOFTSCALE;\r
\r
PicoDrawSetOutFormat(PDF_RGB555, 1);\r
PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);\r
PicoDraw32xSetFrameMode(0, 0);\r
\r
Pico.m.dirtyPal = 1;\r
- PicoFrameDrawOnly();\r
+ if (do_emu)\r
+ PicoFrame();\r
+ else\r
+ PicoFrameDrawOnly();\r
\r
+ g_menubg_src_ptr = g_screen_ptr;\r
PicoOpt = po_old;\r
- currentConfig.EmuOpt = eo_old;\r
}\r
\r
static void updateSound(int len)\r
\r
void pemu_loop_end(void)\r
{\r
- int po_old = PicoOpt;\r
- int eo_old = currentConfig.EmuOpt;\r
-\r
pemu_sound_stop();\r
- memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);\r
\r
/* do one more frame for menu bg */\r
- PicoOpt &= ~POPT_ALT_RENDERER;\r
- PicoOpt |= POPT_EN_SOFTSCALE|POPT_ACC_SPRITES;\r
-\r
- PicoDrawSetOutFormat(PDF_RGB555, 1);\r
- PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);\r
- PicoDraw32xSetFrameMode(0, 0);\r
- Pico.m.dirtyPal = 1;\r
- PicoFrame();\r
-\r
- PicoOpt = po_old;\r
- currentConfig.EmuOpt = eo_old;\r
+ pemu_forced_frame(0, 1);\r
}\r
\r
void plat_wait_till_us(unsigned int us_to)\r