sms, set non-TMR images to region Japan
authorkub <derkub@gmail.com>
Mon, 15 Nov 2021 20:26:49 +0000 (21:26 +0100)
committerkub <derkub@gmail.com>
Mon, 15 Nov 2021 20:26:49 +0000 (21:26 +0100)
pico/sms.c

index b8cc36b..2410d52 100644 (file)
@@ -509,18 +509,22 @@ void PicoResetMS(void)
   }
   if (PicoIn.mapper)
     Pico.ms.mapper = PicoIn.mapper;
-  if (PicoIn.regionOverride & 1)
-    Pico.m.hardware |= 0x4;
+  Pico.m.hardware |= 0x4; // default region Japan if no TMR header
 
   // check if the ROM header contains more system information
   for (tmr = 0x2000; tmr < 0xbfff && tmr <= Pico.romsize; tmr *= 2) {
     if (!memcmp(Pico.rom + tmr-16, "TMR SEGA", 8)) {
       hw = Pico.rom[tmr-1] >> 4;
-      if (hw >= 0x5 && hw < 0x8 && !PicoIn.hwSelect)
-        Pico.m.hardware |= 0x1; // GG cartridge detected
-      if ((hw == 0x5 || hw == 0x3) && !PicoIn.regionOverride)
-        Pico.m.hardware |= 0x4; // Region Japan
-
+      if (!PicoIn.hwSelect) {
+        Pico.m.hardware &= ~0x1;
+        if (hw >= 0x5 && hw < 0x8)
+          Pico.m.hardware |= 0x1; // GG cartridge detected
+      }
+      if (!PicoIn.regionOverride) {
+        Pico.m.hardware &= ~0x4;
+        if (hw == 0x5 || hw == 0x3)
+          Pico.m.hardware |= 0x4; // region Japan
+      }
       id = CPU_LE4(*(u32 *)&Pico.rom[tmr-4]) & 0xf0f0ffff;
       for (i = 0; i < sizeof(region_pal)/sizeof(*region_pal); i++)
         if (id == region_pal[i] && !PicoIn.regionOverride) {