aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorsanni <[email protected]>2023-02-19 19:47:49 +0100
committersanni <[email protected]>2023-02-19 19:47:49 +0100
commitb623b46e4cb63a38609bb6e3cbd0bc9a094ba894 (patch)
treea70996deac3eb5f9ec93c821ddd32cdf0aed7ec1
parent58e8cc1a3b622a9a6aef22d757f448160f38e534 (diff)
downloadcartreader-b623b46e4cb63a38609bb6e3cbd0bc9a094ba894.tar.gz
cartreader-b623b46e4cb63a38609bb6e3cbd0bc9a094ba894.zip
Fix some MD ROM sizes according to no-intro database
-rw-r--r--Cart_Reader/MD.ino55
1 files changed, 49 insertions, 6 deletions
diff --git a/Cart_Reader/MD.ino b/Cart_Reader/MD.ino
index 8b05abd..69b74d1 100644
--- a/Cart_Reader/MD.ino
+++ b/Cart_Reader/MD.ino
@@ -719,15 +719,59 @@ void getCartInfo_MD() {
id[c + 1] = loByte;
}
- // Zero Wing Check
+ // Fix cartridge sizes according to no-intro database
+ if (cartSize == 0x300000) {
+ switch (chksum) {
+ case 0xBC5F: //Batman Forever (World).md
+ case 0x3CDD: //Donald in Maui Mallard (Brazil) (En).md
+ case 0x44AD: //Donald in Maui Mallard (Europe) (Rev A).md
+ case 0x2D9A: //Foreman for Real (World).md
+ case 0x5648: //Justice League Task Force (World).md
+ case 0x0A29: //Mega 6 Vol. 3 (Europe).md
+ case 0x7651: //NFL Quarterback Club (World).md
+ case 0x74CA: //WWF RAW (World).md
+ cartSize = 0x400000;
+ break;
+ }
+ }
+ if (cartSize == 0x180000) {
+ switch (chksum) {
+ case 0xFFE2: //Cannon Fodder (Europe).md
+ case 0xF418: //Chaos Engine, The (Europe).md
+ case 0xF71D: //Fatal Fury (Europe, Korea) (En).md
+ case 0xA884: //Flashback (Europe) (En,Fr).md
+ case 0x7D68: //Flashback - The Quest for Identity (USA) (En,Fr).md
+ case 0x030D: //Shining Force (Europe).md
+ case 0xE975: //Shining Force (USA).md
+ cartSize = 0x200000;
+ break;
+ }
+ }
+ if (cartSize == 0xC0000) {
+ switch (chksum) {
+ case 0x9D79: //Wonder Boy in Monster World (USA, Europe).md
+ cartSize = 0x100000;
+ break;
+ }
+ }
+ if (cartSize == 0x40000) {
+ switch (chksum) {
+ case 0x8BC6: //Pac-Attack (USA).md
+ case 0xB344: //Pac-Panic (Europe).md
+ cartSize = 0x100000;
+ break;
+ }
+ }
if (cartSize == 0x80000) {
switch (chksum) {
- case 0xD07D: //Zero Wing (J) 8Mbit
- cartSize = 0x100000; //1MB instead of 512KB
+ case 0xD07D: //Zero Wing (Japan).md
+ cartSize = 0x100000;
chksum = 0xF204;
break;
- case 0x95C9: //Zero Wing (E) 8Mbit
- cartSize = 0x100000; //1MB instead of 512KB
+ case 0x95C9: //Zero Wing (Europe).md
+ case 0x9144: //Zoop (Europe).md
+ case 0xB8D4: //Zoop (USA).md
+ cartSize = 0x100000;
break;
}
}
@@ -746,7 +790,6 @@ void getCartInfo_MD() {
case 0x0000: // Demons of Asteborg v1.0 (W) 120Mbit
cartSize = 0xEAF2F4;
break;
-
case 0xBCBF: // Demons of Asteborg v1.1 (W) 120Mbit
case 0x6E1E: // Demons of Asteborg v1.11 (W) 120Mbit
cartSize = 0xEA0000;