\r
memset(&defaultConfig, 0, sizeof(defaultConfig));\r
defaultConfig.EmuOpt = 0x9d | EOPT_RAM_TIMINGS|EOPT_CONFIRM_SAVE|EOPT_EN_CD_LEDS;\r
- defaultConfig.s_PicoOpt = 0x0f | POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_SVP_DRC|POPT_ACC_SPRITES;\r
+ defaultConfig.s_PicoOpt = POPT_EN_STEREO|POPT_EN_FM|POPT_EN_PSG|POPT_EN_Z80 |\r
+ POPT_EN_MCD_PCM|POPT_EN_MCD_CDDA|POPT_EN_SVP_DRC|POPT_ACC_SPRITES |\r
+ POPT_EN_32X|POPT_EN_PWM;\r
defaultConfig.s_PsndRate = 44100;\r
defaultConfig.s_PicoRegion = 0; // auto\r
defaultConfig.s_PicoAutoRgnOrder = 0x184; // US, EU, JP\r
gp2x_video_setpalette(localPal, ret);\r
}\r
// a hack for VR\r
- if (PicoRead16Hook == PicoSVPRead16)\r
+ if (PicoAHW & PAHW_SVP)\r
memset32((int *)(PicoDraw2FB+328*8+328*223), 0xe0e0e0e0, 328);\r
// do actual copy\r
vidcpyM2(g_screen_ptr, PicoDraw2FB+328*8,\r
make_local_pal = (PicoAHW & PAHW_SMS) ? make_local_pal_sms : make_local_pal_md;\r
}\r
\r
-void plat_video_toggle_renderer(int is_next, int is_menu)\r
+void plat_video_toggle_renderer(int is_next, int force_16bpp, int is_menu)\r
{\r
+ if (force_16bpp) {\r
+ PicoOpt &= ~POPT_ALT_RENDERER;\r
+ currentConfig.EmuOpt |= EOPT_16BPP;\r
+ }\r
/* alt, 16bpp, 8bpp */\r
- if (PicoOpt & POPT_ALT_RENDERER) {\r
+ else if (PicoOpt & POPT_ALT_RENDERER) {\r
PicoOpt &= ~POPT_ALT_RENDERER;\r
if (is_next)\r
currentConfig.EmuOpt |= EOPT_16BPP;\r