mirror of
https://github.com/sanni/cartreader.git
synced 2024-12-05 02:34:16 +01:00
commit
820fceef29
@ -59,6 +59,7 @@ static const byte PROGMEM mapsize[] = {
|
|||||||
45, 3, 6, 0, 8, 0, 0, // ga23c asic multicart [UNLICENSED]
|
45, 3, 6, 0, 8, 0, 0, // ga23c asic multicart [UNLICENSED]
|
||||||
47, 4, 4, 6, 6, 0, 0, // (super spike vball + world cup)
|
47, 4, 4, 6, 6, 0, 0, // (super spike vball + world cup)
|
||||||
48, 3, 4, 6, 6, 0, 0, // taito tc0690
|
48, 3, 4, 6, 6, 0, 0, // taito tc0690
|
||||||
|
58, 1, 6, 1, 6, 0, 0, // BMC-GKB (C)NROM-based multicarts, duplicate of mapper 213 [UNLICENSED]
|
||||||
60, 2, 2, 3, 3, 0, 0, // Reset-based NROM-128 4-in-1 multicarts [UNLICENSED]
|
60, 2, 2, 3, 3, 0, 0, // Reset-based NROM-128 4-in-1 multicarts [UNLICENSED]
|
||||||
62, 7, 7, 8, 8, 0, 0, // K-1017P [UNLICENSED]
|
62, 7, 7, 8, 8, 0, 0, // K-1017P [UNLICENSED]
|
||||||
64, 2, 3, 4, 5, 0, 0, // tengen rambo-1 [UNLICENSED]
|
64, 2, 3, 4, 5, 0, 0, // tengen rambo-1 [UNLICENSED]
|
||||||
@ -103,9 +104,16 @@ 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
|
||||||
|
200, 1, 4, 1, 4, 0, 0, // HN-02 multicarts [UNLICENSED]
|
||||||
|
201, 1, 8, 1, 9, 0, 0, // NROM-256 multicarts [UNLICENSED]
|
||||||
|
203, 1, 4, 1, 4, 0, 0, // various NROM-128 multicarts [UNLICENSED]
|
||||||
206, 1, 3, 2, 4, 0, 0, // dxrom
|
206, 1, 3, 2, 4, 0, 0, // dxrom
|
||||||
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)
|
||||||
210, 3, 5, 5, 6, 0, 0, // namco 175/340
|
210, 3, 5, 5, 6, 0, 0, // namco 175/340
|
||||||
|
213, 1, 6, 1, 6, 0, 0, // BMC-GKB (C)NROM-based multicarts, duplicate of mapper 58 [UNLICENSED]
|
||||||
|
225, 7, 7, 8, 8, 0, 0, // ET-4310 (FC) + K-1010 (NES) [UNLICENSED]
|
||||||
|
229, 5, 5, 6, 6, 0, 0, // BMC 31-IN-1
|
||||||
|
232, 4, 4, 0, 0, 0, 0, // Camerica/Codemasters "Quattro" cartridges [UNLICENSED]
|
||||||
235, 6, 8, 0, 0, 0, 0, // "Golden Game" multicarts [UNLICENSED]
|
235, 6, 8, 0, 0, 0, 0, // "Golden Game" multicarts [UNLICENSED]
|
||||||
242, 5, 5, 0, 0, 0, 0, // ET-113 [UNLICENSED]
|
242, 5, 5, 0, 0, 0, 0, // ET-113 [UNLICENSED]
|
||||||
};
|
};
|
||||||
@ -3234,6 +3242,17 @@ void readPRG(boolean readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 58:
|
||||||
|
case 213:
|
||||||
|
banks = int_pow(2, prgsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 + (i & 0x07), 0x00);
|
||||||
|
for (word address = 0x0; address < 0x8000; address += 512) {
|
||||||
|
dumpPRG(base, address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 60:
|
case 60:
|
||||||
for (word address = 0; address < 0x4000; address += 512) {
|
for (word address = 0; address < 0x4000; address += 512) {
|
||||||
dumpPRG(base, address);
|
dumpPRG(base, address);
|
||||||
@ -3483,6 +3502,36 @@ void readPRG(boolean readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 200:
|
||||||
|
banks = int_pow(2, prgsize);
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000, (i & 0x07));
|
||||||
|
for (word address = 0x0; address < 0x4000; address += 512) {
|
||||||
|
dumpPRG(base, address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 201:
|
||||||
|
banks = int_pow(2, prgsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 + (i & 0xFF), 0);
|
||||||
|
for (word address = 0x0; address < 0x8000; address += 512) {
|
||||||
|
dumpPRG(base, address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 203:
|
||||||
|
banks = int_pow(2, prgsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000, (i & 0x1F) << 2);
|
||||||
|
for (word address = 0x0; address < 0x8000; 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) {
|
||||||
@ -3494,6 +3543,42 @@ void readPRG(boolean readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 225:
|
||||||
|
banks = int_pow(2, prgsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 + (i << 6), i << 6);
|
||||||
|
for (word address = 0x0; address < 0x8000; address += 512) {
|
||||||
|
dumpPRG(base, address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 229:
|
||||||
|
write_prg_byte(0x8000, 0);
|
||||||
|
for (word address = 0x0; address < 0x8000; address += 512) {
|
||||||
|
dumpPRG(base, address);
|
||||||
|
}
|
||||||
|
for (int i = 2; i < 32; i++) {
|
||||||
|
write_prg_byte(0x8000+i, i);
|
||||||
|
for (word address = 0; address < 0x4000; address += 512) {
|
||||||
|
dumpPRG(base, address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 232:
|
||||||
|
banks = int_pow(2, prgsize) / 4;
|
||||||
|
for (int outerbank = 0; outerbank < 4; outerbank++) {
|
||||||
|
write_prg_byte(0x8000, outerbank << 3);
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0xC000, i);
|
||||||
|
for (word address = 0x0; address < 0x4000; address += 512) {
|
||||||
|
dumpPRG(base, address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 235:
|
case 235:
|
||||||
for (int i = 0; i < 32; i++) {
|
for (int i = 0; i < 32; i++) {
|
||||||
write_prg_byte(0x8000+i, 0);
|
write_prg_byte(0x8000+i, 0);
|
||||||
@ -3891,6 +3976,17 @@ void readCHR(boolean readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 58:
|
||||||
|
case 213:
|
||||||
|
banks = int_pow(2, chrsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 + ((i & 0x07) << 3), 0x00);
|
||||||
|
for (word address = 0x0; address < 0x2000; address += 512) {
|
||||||
|
dumpCHR(address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 60:
|
case 60:
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
write_prg_byte(0x8D8D, i);
|
write_prg_byte(0x8D8D, i);
|
||||||
@ -4153,6 +4249,36 @@ void readCHR(boolean readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 200:
|
||||||
|
banks = int_pow(2, chrsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000, (i & 0x07));
|
||||||
|
for (word address = 0x0; address < 0x2000; address += 512) {
|
||||||
|
dumpCHR(address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 201:
|
||||||
|
banks = int_pow(2, chrsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 + (i & 0xFF), 0);
|
||||||
|
for (word address = 0x0; address < 0x2000; address += 512) {
|
||||||
|
dumpCHR(address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 203:
|
||||||
|
banks = int_pow(2, chrsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000, (i & 0x03));
|
||||||
|
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]
|
||||||
@ -4170,6 +4296,25 @@ void readCHR(boolean readrom) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 225:
|
||||||
|
banks = int_pow(2, chrsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 + i, i);
|
||||||
|
for (word address = 0x0; address < 0x2000; address += 512) {
|
||||||
|
dumpCHR(address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 229: // BMC 31-IN-1
|
||||||
|
for (int i = 0; i < 32; i++) {
|
||||||
|
write_prg_byte(0x8000+i, i);
|
||||||
|
for (word address = 0; address < 0x2000; address += 512) {
|
||||||
|
dumpCHR(address);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (!readrom) {
|
if (!readrom) {
|
||||||
myFile.flush();
|
myFile.flush();
|
||||||
|
Loading…
Reference in New Issue
Block a user