mirror of
https://github.com/sanni/cartreader.git
synced 2024-12-25 04:21:53 +01:00
Merge pull request #660 from nsx0r/patch-46
mapper 209 dumps the same as 35, 90 and 211
This commit is contained in:
commit
642d582002
@ -45,6 +45,7 @@ static const byte PROGMEM mapsize[] = {
|
|||||||
16, 3, 4, 5, 6, 0, 1, // bandai x24c02 [eep r/w]
|
16, 3, 4, 5, 6, 0, 1, // bandai x24c02 [eep r/w]
|
||||||
18, 3, 4, 5, 6, 0, 1, // jaleco ss8806 [sram r/w]
|
18, 3, 4, 5, 6, 0, 1, // jaleco ss8806 [sram r/w]
|
||||||
19, 3, 4, 5, 6, 0, 1, // namco 106/163 [sram/prgram r/w]
|
19, 3, 4, 5, 6, 0, 1, // namco 106/163 [sram/prgram r/w]
|
||||||
|
// 20 - bad mapper, not used
|
||||||
21, 4, 4, 5, 6, 0, 1, // vrc4a/vrc4c [sram r/w]
|
21, 4, 4, 5, 6, 0, 1, // vrc4a/vrc4c [sram r/w]
|
||||||
22, 3, 3, 5, 5, 0, 0, // vrc2a
|
22, 3, 3, 5, 5, 0, 0, // vrc2a
|
||||||
23, 3, 3, 5, 6, 0, 0, // vrc2b/vrc4e
|
23, 3, 3, 5, 6, 0, 0, // vrc2b/vrc4e
|
||||||
@ -56,6 +57,7 @@ static const byte PROGMEM mapsize[] = {
|
|||||||
32, 3, 4, 5, 5, 0, 0, // irem g-101
|
32, 3, 4, 5, 5, 0, 0, // irem g-101
|
||||||
33, 3, 4, 5, 6, 0, 0, // taito tc0190
|
33, 3, 4, 5, 6, 0, 0, // taito tc0190
|
||||||
34, 3, 5, 0, 0, 0, 0, // bnrom [nina-1 NOT SUPPORTED]
|
34, 3, 5, 0, 0, 0, 0, // bnrom [nina-1 NOT SUPPORTED]
|
||||||
|
35, 0, 7, 1, 8, 0, 0, // J.Y. Company ASIC [UNLICENSED]
|
||||||
36, 0, 3, 1, 5, 0, 0, // TXC 01-22000-400 Board [UNLICENSED]
|
36, 0, 3, 1, 5, 0, 0, // TXC 01-22000-400 Board [UNLICENSED]
|
||||||
37, 4, 4, 6, 6, 0, 0, // (super mario bros + tetris + world cup)
|
37, 4, 4, 6, 6, 0, 0, // (super mario bros + tetris + world cup)
|
||||||
42, 0, 3, 0, 5, 0, 0, // hacked FDS games converted to cartridge [UNLICENSED]
|
42, 0, 3, 0, 5, 0, 0, // hacked FDS games converted to cartridge [UNLICENSED]
|
||||||
@ -86,11 +88,13 @@ static const byte PROGMEM mapsize[] = {
|
|||||||
79, 1, 2, 2, 3, 0, 0, // NINA-03/06 by AVE [UNLICENSED]
|
79, 1, 2, 2, 3, 0, 0, // NINA-03/06 by AVE [UNLICENSED]
|
||||||
80, 3, 3, 5, 6, 0, 1, // taito x1-005 [prgram r/w]
|
80, 3, 3, 5, 6, 0, 1, // taito x1-005 [prgram r/w]
|
||||||
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]
|
||||||
|
// 84 - bad mapper, not used
|
||||||
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, // Jaleco/Konami CNROM (DIS_74X139X74)
|
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)
|
||||||
|
90, 0, 7, 1, 8, 0, 0, // J.Y. Company ASIC [UNLICENSED]
|
||||||
91, 3, 5, 7, 8, 0, 0, // JY830623C/YY840238C boards [UNLICENSED]
|
91, 3, 5, 7, 8, 0, 0, // JY830623C/YY840238C boards [UNLICENSED]
|
||||||
92, 4, 4, 5, 5, 0, 0, // jaleco jf-19/jf-21
|
92, 4, 4, 5, 5, 0, 0, // jaleco jf-19/jf-21
|
||||||
93, 3, 3, 0, 0, 0, 0, // sunsoft 2
|
93, 3, 3, 0, 0, 0, 0, // sunsoft 2
|
||||||
@ -98,6 +102,8 @@ static const byte PROGMEM mapsize[] = {
|
|||||||
95, 3, 3, 3, 3, 0, 0, // namcot-3425 (dragon buster)
|
95, 3, 3, 3, 3, 0, 0, // namcot-3425 (dragon buster)
|
||||||
96, 3, 3, 0, 0, 0, 0, // (oeka kids)
|
96, 3, 3, 0, 0, 0, 0, // (oeka kids)
|
||||||
97, 4, 4, 0, 0, 0, 0, // irem tam-s1 (kaiketsu yanchamaru)
|
97, 4, 4, 0, 0, 0, 0, // irem tam-s1 (kaiketsu yanchamaru)
|
||||||
|
// 100 - bad mapper, not used
|
||||||
|
// 101 - bad mapper, not used
|
||||||
105, 4, 4, 0, 0, 0, 0, // (nintendo world Championships 1990) [UNTESTED]
|
105, 4, 4, 0, 0, 0, 0, // (nintendo world Championships 1990) [UNTESTED]
|
||||||
113, 1, 4, 0, 5, 0, 0, // NINA-03/06 [UNLICENSED]
|
113, 1, 4, 0, 5, 0, 0, // NINA-03/06 [UNLICENSED]
|
||||||
111, 5, 5, 0, 0, 0, 0, // GTROM [UNLICENSED]
|
111, 5, 5, 0, 0, 0, 0, // GTROM [UNLICENSED]
|
||||||
@ -108,6 +114,7 @@ static const byte PROGMEM mapsize[] = {
|
|||||||
140, 3, 3, 3, 5, 0, 0, // jaleco jf-11/jf-14
|
140, 3, 3, 3, 5, 0, 0, // jaleco jf-11/jf-14
|
||||||
142, 1, 3, 0, 0, 0, 0, // UNL-KS7032 [UNLICENSED]
|
142, 1, 3, 0, 0, 0, 0, // UNL-KS7032 [UNLICENSED]
|
||||||
146, 1, 2, 2, 3, 0, 0, // Sachen 3015 [UNLICENSED]
|
146, 1, 2, 2, 3, 0, 0, // Sachen 3015 [UNLICENSED]
|
||||||
|
// 151 - bad mapper, not used
|
||||||
152, 2, 3, 5, 5, 0, 0, // BANDAI-74*161/161/32
|
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)
|
||||||
@ -124,6 +131,7 @@ static const byte PROGMEM mapsize[] = {
|
|||||||
180, 3, 3, 0, 0, 0, 0, // unrom variant (crazy climber)
|
180, 3, 3, 0, 0, 0, 0, // unrom variant (crazy climber)
|
||||||
184, 1, 1, 2, 3, 0, 0, // sunsoft 1
|
184, 1, 1, 2, 3, 0, 0, // sunsoft 1
|
||||||
185, 0, 1, 1, 1, 0, 0, // cnrom lockout
|
185, 0, 1, 1, 1, 0, 0, // cnrom lockout
|
||||||
|
// 186 - bad mapper, not used
|
||||||
200, 1, 4, 1, 4, 0, 0, // HN-02 multicarts [UNLICENSED]
|
200, 1, 4, 1, 4, 0, 0, // HN-02 multicarts [UNLICENSED]
|
||||||
201, 1, 8, 1, 9, 0, 0, // NROM-256 multicarts [UNLICENSED]
|
201, 1, 8, 1, 9, 0, 0, // NROM-256 multicarts [UNLICENSED]
|
||||||
202, 0, 3, 1, 4, 0, 0, // BMC-150IN1 multicarts [UNLICENSED]
|
202, 0, 3, 1, 4, 0, 0, // BMC-150IN1 multicarts [UNLICENSED]
|
||||||
@ -132,6 +140,7 @@ static const byte PROGMEM mapsize[] = {
|
|||||||
207, 4, 4, 5, 5, 0, 0, // taito x1-005 variant (fudou myouou den)
|
207, 4, 4, 5, 5, 0, 0, // taito x1-005 variant (fudou myouou den)
|
||||||
209, 0, 7, 1, 8, 0, 0, // J.Y. Company ASIC [UNLICENSED]
|
209, 0, 7, 1, 8, 0, 0, // J.Y. Company ASIC [UNLICENSED]
|
||||||
210, 3, 5, 5, 6, 0, 0, // namco 175/340
|
210, 3, 5, 5, 6, 0, 0, // namco 175/340
|
||||||
|
211, 0, 7, 1, 8, 0, 0, // J.Y. Company ASIC [UNLICENSED]
|
||||||
212, 0, 3, 0, 4, 0, 0, // BMC Super HiK 300-in-1 [UNLICENSED]
|
212, 0, 3, 0, 4, 0, 0, // BMC Super HiK 300-in-1 [UNLICENSED]
|
||||||
213, 1, 6, 1, 6, 0, 0, // BMC-GKB (C)NROM-based multicarts, duplicate of mapper 58 [UNLICENSED]
|
213, 1, 6, 1, 6, 0, 0, // BMC-GKB (C)NROM-based multicarts, duplicate of mapper 58 [UNLICENSED]
|
||||||
225, 4, 7, 5, 8, 0, 0, // ET-4310 (FC) + K-1010 (NES) [UNLICENSED]
|
225, 4, 7, 5, 8, 0, 0, // ET-4310 (FC) + K-1010 (NES) [UNLICENSED]
|
||||||
@ -145,6 +154,7 @@ static const byte PROGMEM mapsize[] = {
|
|||||||
241, 3, 5, 0, 0, 0, 0, // BxROM with WRAM [UNLICENSED]
|
241, 3, 5, 0, 0, 0, 0, // BxROM with WRAM [UNLICENSED]
|
||||||
242, 5, 5, 0, 0, 0, 0, // ET-113 [UNLICENSED]
|
242, 5, 5, 0, 0, 0, 0, // ET-113 [UNLICENSED]
|
||||||
246, 5, 5, 7, 7, 0, 0, // C&E Feng Shen Bang [UNLICENSED]
|
246, 5, 5, 7, 7, 0, 0, // C&E Feng Shen Bang [UNLICENSED]
|
||||||
|
// 248 - bad mapper, not used
|
||||||
255, 4, 7, 5, 8, 0, 0, // 110-in-1 multicart (same as 225) [UNLICENSED]
|
255, 4, 7, 5, 8, 0, 0, // 110-in-1 multicart (same as 225) [UNLICENSED]
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2790,6 +2800,22 @@ void readPRG(boolean readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 35:
|
||||||
|
case 90:
|
||||||
|
case 209:
|
||||||
|
case 211:
|
||||||
|
banks = int_pow(2, prgsize) * 2;
|
||||||
|
write_prg_byte(0xD000, 0x02);
|
||||||
|
|
||||||
|
for (byte i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0xD003, (((i >> 5) & 0x06) | 0x20));
|
||||||
|
write_prg_byte(0x8000, (i & 0x3f));
|
||||||
|
for (word address = 0x0; address < 0x2000; address += 512) {
|
||||||
|
dumpPRG(base, address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 36:
|
case 36:
|
||||||
banks = int_pow(2, prgsize) / 2;
|
banks = int_pow(2, prgsize) / 2;
|
||||||
for (int i = 0; i < banks; i++) {
|
for (int i = 0; i < banks; i++) {
|
||||||
@ -3381,19 +3407,6 @@ void readPRG(boolean readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 209:
|
|
||||||
banks = int_pow(2, prgsize) * 2;
|
|
||||||
write_prg_byte(0xD000, 0x02);
|
|
||||||
|
|
||||||
for (byte i = 0; i < banks; i++) {
|
|
||||||
write_prg_byte(0xD003, (((i >> 5) & 0x06) | 0x20));
|
|
||||||
write_prg_byte(0x8000, (i & 0x3f));
|
|
||||||
for (word address = 0x0; address < 0x2000; address += 512) {
|
|
||||||
dumpPRG(base, address);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 210: // 128K/256K
|
case 210: // 128K/256K
|
||||||
banks = int_pow(2, prgsize) * 2;
|
banks = int_pow(2, prgsize) * 2;
|
||||||
for (int i = 0; i < banks; i += 2) {
|
for (int i = 0; i < banks; i += 2) {
|
||||||
@ -3864,6 +3877,22 @@ void readCHR(boolean readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 35:
|
||||||
|
case 90:
|
||||||
|
case 209:
|
||||||
|
case 211:
|
||||||
|
banks = int_pow(2, chrsize) / 2;
|
||||||
|
write_prg_byte(0xD000, 0x02);
|
||||||
|
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0xD003, (((i >> 3) & 0x18) | 0x20));
|
||||||
|
write_prg_byte(0x9000, (i & 0x3f));
|
||||||
|
for (word address = 0x0; address < 0x2000; address += 512) {
|
||||||
|
dumpCHR(address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 36:
|
case 36:
|
||||||
banks = int_pow(2, chrsize) * 4;
|
banks = int_pow(2, chrsize) * 4;
|
||||||
for (int i = 0; i < banks; i++) {
|
for (int i = 0; i < banks; i++) {
|
||||||
@ -4367,19 +4396,6 @@ void readCHR(boolean readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 209:
|
|
||||||
banks = int_pow(2, chrsize) / 2;
|
|
||||||
write_prg_byte(0xD000, 0x02);
|
|
||||||
|
|
||||||
for (int i = 0; i < banks; i++) {
|
|
||||||
write_prg_byte(0xD003, (((i >> 3) & 0x18) | 0x20));
|
|
||||||
write_prg_byte(0x9000, (i & 0x3f));
|
|
||||||
for (word address = 0x0; address < 0x2000; address += 512) {
|
|
||||||
dumpCHR(address);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 210: // 128K/256K
|
case 210: // 128K/256K
|
||||||
banks = int_pow(2, chrsize) * 4;
|
banks = int_pow(2, chrsize) * 4;
|
||||||
write_prg_byte(0xE800, 0xC0); // CHR RAM DISABLE (Bit 6 and 7) [WRITE NO RAM]
|
write_prg_byte(0xE800, 0xC0); // CHR RAM DISABLE (Bit 6 and 7) [WRITE NO RAM]
|
||||||
|
Loading…
Reference in New Issue
Block a user