X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=Pico%2FCart.c;h=a9fe6ecc99fefab2018ed2b2ee5d5ea906258f63;hb=1f4e9f147fc079f0efe4c4f95c0c9549d3b41553;hp=cf169517ea9f9d747d6e10b01e7c9aa31c6765bd;hpb=3ec29f016cdeb3100dbb433dd9041e81542765bd;p=picodrive.git diff --git a/Pico/Cart.c b/Pico/Cart.c index cf16951..a9fe6ec 100644 --- a/Pico/Cart.c +++ b/Pico/Cart.c @@ -331,16 +331,21 @@ int PicoUnloadCart(unsigned char* romdata) return 0; } -static int name_cmp(const char *name) +static int rom_strcmp(int rom_offset, const char *s1) { - int i, len = strlen(name); - const char *name_rom = (const char *)Pico.rom+0x150; + int i, len = strlen(s1); + const char *s_rom = (const char *)Pico.rom + rom_offset; for (i = 0; i < len; i++) - if (name[i] != name_rom[i^1]) + if (s1[i] != s_rom[i^1]) return 1; return 0; } +static int name_cmp(const char *name) +{ + return rom_strcmp(0x150, name); +} + /* various cart-specific things, which can't be handled by generic code */ void PicoCartDetect(void) { @@ -441,5 +446,9 @@ void PicoCartDetect(void) if (name_cmp("DINO DINI'S SOCCER") == 0 || name_cmp("MICRO MACHINES II") == 0) memset(SRam.data, 0xff, sram_size); + + // Unusual region 'code' + if (rom_strcmp(0x1f0, "EUROPE") == 0) + *(int *) (Pico.rom+0x1f0) = 0x20204520; }