aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornsx0r <[email protected]>2022-12-30 08:24:54 +0100
committerGitHub <[email protected]>2022-12-30 08:24:54 +0100
commit04f80edc1e8acc91cf2430fbaadac8e34ac953bc (patch)
tree6c8ad7a967f05064ba69ceefe47b595aef2aaa77
parentc1e0a71c06aaeb4a3a23085656bf69e9aac78496 (diff)
downloadcartreader-04f80edc1e8acc91cf2430fbaadac8e34ac953bc.tar.gz
cartreader-04f80edc1e8acc91cf2430fbaadac8e34ac953bc.zip
addes mappers 56 + 236
addes mappers 56 + 236
-rw-r--r--Cart_Reader/NES.ino46
1 files changed, 45 insertions, 1 deletions
diff --git a/Cart_Reader/NES.ino b/Cart_Reader/NES.ino
index 4a83ae9..d6670e6 100644
--- a/Cart_Reader/NES.ino
+++ b/Cart_Reader/NES.ino
@@ -67,6 +67,7 @@ static const byte PROGMEM mapsize[] = {
47, 4, 4, 6, 6, 0, 0, // (super spike vball + world cup)
48, 3, 4, 6, 6, 0, 0, // taito tc0690
52, 0, 3, 0, 3, 0, 0, // Realtec 8213 [UNLICENSED]
+ 56, 0, 7, 0, 6, 0, 0, // KS202 [UNLICENSED]
57, 0, 3, 0, 5, 0, 0, // BMC-GKA [UNLICENSED]
58, 1, 6, 1, 6, 0, 0, // BMC-GKB (C)NROM-based multicarts, duplicate of mapper 213 [UNLICENSED]
59, 0, 3, 0, 4, 0, 0, // BMC-T3H53 & BMC-D1038 [UNLICENSED]
@@ -153,6 +154,7 @@ static const byte PROGMEM mapsize[] = {
229, 5, 5, 6, 6, 0, 0, // BMC 31-IN-1 [UNLICENSED]
232, 4, 4, 0, 0, 0, 0, // Camerica/Codemasters "Quattro" cartridges [UNLICENSED]
235, 6, 8, 0, 0, 0, 0, // "Golden Game" multicarts [UNLICENSED]
+ 236, 0, 6, 0, 5, 0, 0, // Realtec 8031, 8099, 8106, 8155 [UNLICENSED]
240, 1, 5, 1, 5, 0, 3, // C&E Bootleg Board (Sheng Huo Lie Zhuan, Jing Ke Xin Zhuan) [UNLICENSED]
241, 3, 5, 0, 0, 0, 0, // BxROM with WRAM [UNLICENSED]
242, 5, 5, 0, 0, 0, 0, // ET-113 [UNLICENSED]
@@ -2959,6 +2961,17 @@ void readPRG(boolean readrom) {
}
break;
+ case 56:
+ banks = int_pow(2, prgsize) * 2;
+ for (int i = 0; i < banks; i++) {
+ write_prg_byte(0xE000, 1);
+ write_prg_byte(0xF000, i);
+ for (word address = 0x0; address < 0x2000; address += 512) {
+ dumpPRG(base, address);
+ }
+ }
+ break;
+
case 57:
banks = int_pow(2, prgsize);
for (int i = 0; i < banks; i++) {
@@ -3237,7 +3250,7 @@ void readPRG(boolean readrom) {
}
break;
- case 97: // fixed fist bank
+ case 97: // fixed first bank
case 180: // bus conflicts - fixed fist bank
banks = int_pow(2, prgsize);
busConflict = true;
@@ -3608,6 +3621,17 @@ void readPRG(boolean readrom) {
}
}
break;
+
+ case 236:
+ banks = int_pow(2, prgsize);
+ for (int i = 0; i < banks; i++) {
+ write_prg_byte(0x8000 | ((i & 0x38) >> 3), 0); // A19-A17
+ write_prg_byte(0xC030 | (i & 0x0F), 0); // A17-A14
+ for (word address = 0x0; address < 0x4000; address += 512) {
+ dumpPRG(base, address);
+ }
+ }
+ break;
case 240:
banks = int_pow(2, prgsize) / 2;
@@ -4053,6 +4077,16 @@ void readCHR(boolean readrom) {
}
break;
+ case 56:
+ banks = int_pow(2, chrsize) * 4;
+ for (int i = 0; i < banks; i++) {
+ write_prg_byte(0xFC00, i);
+ for (word address = 0x0; address < 0x400; address += 512) {
+ dumpCHR(address);
+ }
+ }
+ break;
+
case 57:
banks = int_pow(2, chrsize) / 2;
for (int i = 0; i < banks; i++) {
@@ -4536,6 +4570,16 @@ void readCHR(boolean readrom) {
}
}
break;
+
+ case 236:
+ banks = int_pow(2, chrsize) / 2;
+ for (int i = 0; i < banks; i++) {
+ write_prg_byte(0x8000 | (i & 0x0F), 0); // A16-A13
+ for (word address = 0x0; address < 0x2000; address += 512) {
+ dumpCHR(address);
+ }
+ }
+ break;
case 240:
banks = int_pow(2, chrsize) / 2;