bugfix/improvement
[picodrive.git] / Pico / Cart.c
index cf16951..a9fe6ec 100644 (file)
@@ -331,16 +331,21 @@ int PicoUnloadCart(unsigned char* romdata)
   return 0;\r
 }\r
 \r
-static int name_cmp(const char *name)\r
+static int rom_strcmp(int rom_offset, const char *s1)\r
 {\r
-  int i, len = strlen(name);\r
-  const char *name_rom = (const char *)Pico.rom+0x150;\r
+  int i, len = strlen(s1);\r
+  const char *s_rom = (const char *)Pico.rom + rom_offset;\r
   for (i = 0; i < len; i++)\r
-    if (name[i] != name_rom[i^1])\r
+    if (s1[i] != s_rom[i^1])\r
       return 1;\r
   return 0;\r
 }\r
 \r
+static int name_cmp(const char *name)\r
+{\r
+  return rom_strcmp(0x150, name);\r
+}\r
+\r
 /* various cart-specific things, which can't be handled by generic code */\r
 void PicoCartDetect(void)\r
 {\r
@@ -441,5 +446,9 @@ void PicoCartDetect(void)
   if (name_cmp("DINO DINI'S SOCCER") == 0 ||\r
       name_cmp("MICRO MACHINES II") == 0)\r
     memset(SRam.data, 0xff, sram_size);\r
+\r
+  // Unusual region 'code'\r
+  if (rom_strcmp(0x1f0, "EUROPE") == 0)\r
+    *(int *) (Pico.rom+0x1f0) = 0x20204520;\r
 }\r
 \r