Merge pull request #589 from nsx0r/master

more NES mappers fixes
This commit is contained in:
sanni 2022-10-26 21:58:35 +02:00 committed by GitHub
commit 3f83dcec55
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -81,7 +81,7 @@ static const byte PROGMEM mapsize[] = {
82, 3, 3, 5, 6, 0, 1, // taito x1-017 [prgram r/w] 82, 3, 3, 5, 6, 0, 1, // taito x1-017 [prgram r/w]
85, 3, 5, 0, 5, 0, 1, // vrc7 [sram r/w] 85, 3, 5, 0, 5, 0, 1, // vrc7 [sram r/w]
86, 3, 3, 4, 4, 0, 0, // jaleco jf-13 (moero pro yakyuu) 86, 3, 3, 4, 4, 0, 0, // jaleco jf-13 (moero pro yakyuu)
87, 0, 1, 2, 3, 0, 0, 87, 0, 1, 2, 3, 0, 0, // Jaleco/Konami CNROM (DIS_74X139X74)
88, 3, 3, 5, 5, 0, 0, // namco (dxrom variant) 88, 3, 3, 5, 5, 0, 0, // namco (dxrom variant)
89, 3, 3, 5, 5, 0, 0, // sunsoft 2 variant (tenka no goikenban: mito koumon) 89, 3, 3, 5, 5, 0, 0, // sunsoft 2 variant (tenka no goikenban: mito koumon)
92, 4, 4, 5, 5, 0, 0, // jaleco jf-19/jf-21 92, 4, 4, 5, 5, 0, 0, // jaleco jf-19/jf-21
@ -95,7 +95,7 @@ static const byte PROGMEM mapsize[] = {
119, 3, 3, 4, 4, 0, 0, // tqrom/mmc3 119, 3, 3, 4, 4, 0, 0, // tqrom/mmc3
140, 3, 3, 3, 5, 0, 0, // jaleco jf-11/jf-14 140, 3, 3, 3, 5, 0, 0, // jaleco jf-11/jf-14
146, 1, 2, 2, 3, 0, 0, // Sachen 3015 [UNLICENSED] 146, 1, 2, 2, 3, 0, 0, // Sachen 3015 [UNLICENSED]
152, 2, 3, 5, 5, 0, 0, 152, 2, 3, 5, 5, 0, 0, // BANDAI-74*161/161/32
153, 5, 5, 0, 0, 1, 1, // (famicom jump ii) [sram r/w] 153, 5, 5, 0, 0, 1, 1, // (famicom jump ii) [sram r/w]
154, 3, 3, 5, 5, 0, 0, // namcot-3453 (devil man) 154, 3, 3, 5, 5, 0, 0, // namcot-3453 (devil man)
155, 3, 3, 3, 5, 0, 1, // mmc1 variant [sram r/w] 155, 3, 3, 3, 5, 0, 1, // mmc1 variant [sram r/w]
@ -3450,7 +3450,8 @@ void readPRG(boolean readrom) {
} }
break; break;
case 97: // 256K case 97:
case 180:
banks = int_pow(2, prgsize); banks = int_pow(2, prgsize);
for (int i = 0; i < banks; i++) { // 256K for (int i = 0; i < banks; i++) { // 256K
write_prg_byte(0x8000, i); // PRG Bank write_prg_byte(0x8000, i); // PRG Bank
@ -3479,16 +3480,6 @@ void readPRG(boolean readrom) {
} }
break; break;
case 180: // 128K
banks = int_pow(2, prgsize);
for (int i = 0; i < banks; i++) {
write_prg_byte(0x8000, i);
for (word address = 0x4000; address < 0x8000; address += 512) { // 16K Banks ($C000-$FFFF)
dumpPRG(base, address);
}
}
break;
case 153: // 512K case 153: // 512K
banks = int_pow(2, prgsize); banks = int_pow(2, prgsize);
for (int i = 0; i < banks; i++) { // 512K for (int i = 0; i < banks; i++) { // 512K
@ -3506,7 +3497,7 @@ void readPRG(boolean readrom) {
case 200: case 200:
banks = int_pow(2, prgsize); banks = int_pow(2, prgsize);
for (int i = 0; i < banks; i++) { for (int i = 0; i < banks; i++) {
write_prg_byte(0x8000, (i & 0x07)); write_prg_byte(0x8000 + (i & 0x07), 0);
for (word address = 0x0; address < 0x4000; address += 512) { for (word address = 0x0; address < 0x4000; address += 512) {
dumpPRG(base, address); dumpPRG(base, address);
} }
@ -4263,7 +4254,7 @@ void readCHR(boolean readrom) {
case 200: case 200:
banks = int_pow(2, chrsize) / 2; banks = int_pow(2, chrsize) / 2;
for (int i = 0; i < banks; i++) { for (int i = 0; i < banks; i++) {
write_prg_byte(0x8000, (i & 0x07)); write_prg_byte(0x8000 + (i & 0x07), 0);
for (word address = 0x0; address < 0x2000; address += 512) { for (word address = 0x0; address < 0x2000; address += 512) {
dumpCHR(address); dumpCHR(address);
} }