psp readme, some adjustments
[picodrive.git] / Pico / Cart.c
index cf33580..fc7eec3 100644 (file)
@@ -16,6 +16,7 @@
 static char *rom_exts[] = { "bin", "gen", "smd", "iso" };\r
 \r
 void (*PicoCartLoadProgressCB)(int percent) = NULL;\r
+void (*PicoCDLoadProgressCB)(int percent) = NULL; // handled in Pico/cd/cd_file.c\r
 \r
 \r
 pm_file *pm_open(const char *path)\r
@@ -48,7 +49,7 @@ pm_file *pm_open(const char *path)
 \r
         ext = zipentry->name+strlen(zipentry->name)-3;\r
         for (i = 0; i < sizeof(rom_exts)/sizeof(rom_exts[0]); i++)\r
-          if (!strcasecmp(ext, rom_exts[i]) == 0) goto found_rom_zip;\r
+          if (strcasecmp(ext, rom_exts[i]) == 0) goto found_rom_zip;\r
       }\r
 \r
       /* zipfile given, but nothing found suitable for us inside */\r
@@ -331,16 +332,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 +447,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