notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
initial code for Nemesis' blip discovery
[picodrive.git]
/
Pico
/
Cart.c
diff --git
a/Pico/Cart.c
b/Pico/Cart.c
index
1dc3eae
..
a0d38a0
100644
(file)
--- a/
Pico/Cart.c
+++ b/
Pico/Cart.c
@@
-481,7
+481,10
@@
int PicoCartLoad(pm_file *f,unsigned char **prom,unsigned int *psize)
}
\r
\r
// Check for SMD:
\r
}
\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
else Byteswap(rom,size); // Just byteswap
\r
\r
if (prom) *prom=rom;
\r
@@
-512,7
+515,7
@@
int PicoCartInsert(unsigned char *rom,unsigned int romsize)
PicoCartUnloadHook = NULL;
\r
}
\r
\r
PicoCartUnloadHook = NULL;
\r
}
\r
\r
- PicoAHW &=
~PAHW_SVP
;
\r
+ PicoAHW &=
PAHW_MCD
;
\r
\r
PicoMemResetHooks();
\r
PicoDmaHook = NULL;
\r
\r
PicoMemResetHooks();
\r
PicoDmaHook = NULL;
\r
@@
-704,6
+707,12
@@
static void PicoCartDetect(void)
carthw_realtec_startup();
\r
}
\r
\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
// 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
@@
-712,7
+721,7
@@
static void PicoCartDetect(void)
}
\r
\r
// Unusual region 'code'
\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
*(int *) (Pico.rom+0x1f0) = 0x20204520;
\r
}
\r
\r