PicoAHW &= ~PAHW_MCD;\r
}\r
\r
+static void system_announce(void)\r
+{\r
+ const char *sys_name, *tv_standard;\r
+ int fps;\r
+\r
+ if (PicoAHW & PAHW_SMS) {\r
+ sys_name = "Master System";\r
+ } else if (PicoAHW & PAHW_PICO) {\r
+ sys_name = "Pico";\r
+ } else if (PicoAHW & PAHW_MCD) {\r
+ sys_name = "Mega CD";\r
+ if ((Pico.m.hardware & 0xc0) == 0x80)\r
+ sys_name = "Sega CD";\r
+ } else if (PicoAHW & PAHW_32X) {\r
+ sys_name = "32X";\r
+ } else {\r
+ sys_name = "MegaDrive";\r
+ if ((Pico.m.hardware & 0xc0) == 0x80)\r
+ sys_name = "Genesis";\r
+ }\r
+ tv_standard = Pico.m.pal ? "PAL" : "NTSC";\r
+ fps = Pico.m.pal ? 50 : 60;\r
+\r
+ emu_status_msg("%s %s / %dFPS", tv_standard, sys_name, fps);\r
+}\r
+\r
// note: this function might mangle rom_fname\r
// XXX: portions of this code should move to pico/\r
int emu_reload_rom(char *rom_fname)\r
}\r
else\r
{\r
- const char *sys_name, *tv_standard;\r
- int fps;\r
-\r
- if (PicoAHW & PAHW_SMS) {\r
- sys_name = "Master System";\r
- } else {\r
- sys_name = "MegaDrive";\r
- if ((Pico.m.hardware&0xc0) == 0x80)\r
- sys_name = "Genesis";\r
- }\r
- tv_standard = Pico.m.pal ? "PAL" : "NTSC";\r
- fps = Pico.m.pal ? 50 : 60;\r
-\r
- emu_status_msg("%s %s / %dFPS", tv_standard, sys_name, fps);\r
-\r
+ system_announce();\r
PicoOpt &= ~POPT_DIS_VDP_FIFO;\r
}\r
\r
emu_status_msg("CD tray closed.");\r
}\r
\r
+void emu_32x_startup(void)\r
+{\r
+ plat_video_toggle_renderer(0, 1, 0);\r
+ system_announce();\r
+}\r
+\r
void emu_reset_game(void)\r
{\r
PicoReset();\r
PicoStateProgressCB = NULL;\r
}\r
}\r
- if (which & PEV_SWITCH_RND)\r
+ if ((which & PEV_SWITCH_RND) && !(PicoAHW & PAHW_32X))\r
{\r
- plat_video_toggle_renderer(1, 0);\r
+ plat_video_toggle_renderer(1, 0, 0);\r
}\r
if (which & (PEV_SSLOT_PREV|PEV_SSLOT_NEXT))\r
{\r
void plat_video_menu_end(void);
void plat_video_wait_vsync(void);
-void plat_video_toggle_renderer(int is_next, int is_menu);
+void plat_video_toggle_renderer(int is_next, int force_16bpp, int is_menu);
void plat_validate_config(void);
void plat_update_volume(int has_changed, int is_up);
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