int alloc_size;\r
unsigned char *rom;\r
\r
- if (PicoMCD & 1) return cd_realloc(NULL, filesize);\r
+ if (PicoAHW & PAHW_MCD) return cd_realloc(NULL, filesize);\r
\r
alloc_size=filesize+0x7ffff;\r
if((filesize&0x3fff)==0x200) alloc_size-=0x200;\r
}\r
\r
// maybe we are loading MegaCD BIOS?\r
- if (!(PicoMCD&1) && size == 0x20000 && (!strncmp((char *)rom+0x124, "BOOT", 4) || !strncmp((char *)rom+0x128, "BOOT", 4))) {\r
- PicoMCD |= 1;\r
+ if (!(PicoAHW & PAHW_MCD) && size == 0x20000 && (!strncmp((char *)rom+0x124, "BOOT", 4) ||\r
+ !strncmp((char *)rom+0x128, "BOOT", 4))) {\r
+ PicoAHW |= PAHW_MCD;\r
rom = cd_realloc(rom, size);\r
}\r
\r
PicoCartUnloadHook = NULL;\r
}\r
\r
+ PicoAHW &= ~PAHW_SVP;\r
+\r
PicoMemResetHooks();\r
PicoDmaHook = NULL;\r
PicoResetHook = NULL;\r
\r
PicoMemReset();\r
\r
- if (!(PicoMCD & 1))\r
+ if (!(PicoAHW & PAHW_MCD))\r
PicoCartDetect();\r
\r
// setup correct memory map for loaded ROM\r
// call PicoMemReset again due to possible memmap change\r
- if (PicoMCD & 1)\r
+ if (PicoAHW & PAHW_MCD)\r
PicoMemSetupCD();\r
else PicoMemSetup();\r
PicoMemReset();\r
\r
- return PicoReset(1);\r
+ PicoPower();\r
+ return 0;\r
}\r
\r
int PicoCartUnload(void)\r
sram_size = 0x004000;\r
}\r
\r
+ // this game actually doesn't have SRAM, but some weird protection\r
+ if (rom_strcmp(0x120, "PUGGSY") == 0)\r
+ {\r
+ SRam.start = SRam.end = sram_size = 0;\r
+ }\r
+\r
if (sram_size)\r
{\r
SRam.data = (unsigned char *) calloc(sram_size, 1);\r
\r
// Detect 12-in-1 mapper\r
else if ((name_cmp("ROBOCOP 3") == 0 && Pico.romsize == 0x200000) ||\r
- (rom_strcmp(0x160, "FLICKY") == 0 && Pico.romsize >= 0x200000))\r
+ (rom_strcmp(0x160, "FLICKY") == 0 && Pico.romsize >= 0x200000) ||\r
+ (name_cmp(" SHOVE IT!") == 0 && Pico.romsize >= 0x200000) ||\r
+ (name_cmp("MS PACMAN") == 0 && Pico.romsize >= 0x200000)) // bad dump?\r
{\r
carthw_12in1_startup();\r
}\r