}\r
\r
// Check for SMD:\r
- if ((size&0x3fff)==0x200) { DecodeSmd(rom,size); size-=0x200; } // Decode and byteswap SMD\r
+ if (size >= 0x4200 && (size&0x3fff)==0x200 &&\r
+ ((rom[0x2280] == 'S' && rom[0x280] == 'E') || (rom[0x280] == 'S' && rom[0x2281] == 'E'))) {\r
+ DecodeSmd(rom,size); size-=0x200; // Decode and byteswap SMD\r
+ }\r
else Byteswap(rom,size); // Just byteswap\r
\r
if (prom) *prom=rom;\r
return 0;\r
}\r
\r
-int PicoCartUnload(void)\r
+void PicoCartUnload(void)\r
{\r
if (Pico.rom != NULL) {\r
+ SekFinishIdleDet();\r
free(Pico.rom);\r
Pico.rom=NULL;\r
}\r
- return 0;\r
}\r
\r
static int rom_strcmp(int rom_offset, const char *s1)\r
carthw_realtec_startup();\r
}\r
\r
+ // Radica mapper\r
+ else if (name_cmp("KID CHAMELEON") == 0 && Pico.romsize > 0x100000)\r
+ {\r
+ carthw_radica_startup();\r
+ }\r
+\r
// Some games malfunction if SRAM is not filled with 0xff\r
if (name_cmp("DINO DINI'S SOCCER") == 0 ||\r
name_cmp("MICRO MACHINES II") == 0)\r
}\r
\r
// Unusual region 'code'\r
- if (rom_strcmp(0x1f0, "EUROPE") == 0)\r
+ if (rom_strcmp(0x1f0, "EUROPE") == 0 || rom_strcmp(0x1f0, "Europe") == 0)\r
*(int *) (Pico.rom+0x1f0) = 0x20204520;\r
}\r
\r