\r
emu_set_fastforward(0);\r
\r
- if (PicoAHW & PAHW_MCD)\r
- PicoCDBufferFree();\r
-\r
// save SRAM\r
if ((currentConfig.EmuOpt & EOPT_EN_SRAM) && SRam.changed) {\r
plat_status_msg_busy_first("Writing SRAM/BRAM...");\r
SRam.changed = 0;\r
}\r
\r
- // do menu background to be sure it's right\r
- pemu_forced_frame(POPT_EN_SOFTSCALE);\r
-\r
pemu_loop_end();\r
+\r
+ // pemu_loop_end() might want to do 1 frame for bg image,\r
+ // so free CD buffer here\r
+ if (PicoAHW & PAHW_MCD)\r
+ PicoCDBufferFree();\r
}\r
\r
\r
void pemu_loop_end(void)\r
{\r
+ int po_old = PicoOpt;\r
+ int eo_old = currentConfig.EmuOpt;\r
+\r
+ /* do one more frame for menu bg */\r
+ PicoOpt &= ~POPT_ALT_RENDERER;\r
+ PicoOpt |= POPT_EN_SOFTSCALE|POPT_ACC_SPRITES;\r
+ currentConfig.EmuOpt |= EOPT_16BPP;\r
+\r
+ PicoScanBegin = EmuScanBegin16;\r
+ PicoScanEnd = NULL;\r
+ PicoDrawSetColorFormat(1);\r
+ Pico.m.dirtyPal = 1;\r
+ PicoFrame();\r
+\r
+ PicoOpt = po_old;\r
+ currentConfig.EmuOpt = eo_old;\r
}\r
\r
const char *plat_get_credits(void)\r