mirror of
https://github.com/sanni/cartreader.git
synced 2025-02-13 19:49:11 +01:00
Update NES.ino
- added mapper 221, 288, 290
This commit is contained in:
parent
e013e85a1f
commit
80d8bd53e7
@ -259,7 +259,7 @@ static const struct mapper_NES PROGMEM mapsize[] = {
|
|||||||
// 218 - Magic Floor [TODO]
|
// 218 - Magic Floor [TODO]
|
||||||
// 219 - 卡聖 [Kǎshèng] A9746 [TODO]
|
// 219 - 卡聖 [Kǎshèng] A9746 [TODO]
|
||||||
// 220 - not used (reserved for debugging)
|
// 220 - not used (reserved for debugging)
|
||||||
// 221 - NTDEC N625092 [TODO]
|
{ 221, 0, 7, 0, 0, 0, 0 }, // NTDEC N625092 (400-in-1)
|
||||||
// 222 - 810343-C [TODO]
|
// 222 - 810343-C [TODO]
|
||||||
// 223 - not used (duplicate of 199)
|
// 223 - not used (duplicate of 199)
|
||||||
// 224 - 晶科泰 [Jncota] KT-008 (duplicate of 268)
|
// 224 - 晶科泰 [Jncota] KT-008 (duplicate of 268)
|
||||||
@ -308,7 +308,9 @@ static const struct mapper_NES PROGMEM mapsize[] = {
|
|||||||
// 267 - 晶太 EL861121C / JY-119 multicart [TODO]
|
// 267 - 晶太 EL861121C / JY-119 multicart [TODO]
|
||||||
{ 268, 0, 11, 0, 8, 0, 0 }, // KP6022 / AA6023 ASIC (Mindkids/Coolboy)
|
{ 268, 0, 11, 0, 8, 0, 0 }, // KP6022 / AA6023 ASIC (Mindkids/Coolboy)
|
||||||
{ 286, 0, 3, 0, 5, 0, 0 }, // Benshieng BS-5 multicarts [TODO]
|
{ 286, 0, 3, 0, 5, 0, 0 }, // Benshieng BS-5 multicarts [TODO]
|
||||||
|
{ 288, 0, 3, 0, 4, 0, 0 }, // GKCXIN1 (21-in-1)
|
||||||
{ 289, 5, 7, 0, 0, 0, 0 }, // 60311C / N76A-1
|
{ 289, 5, 7, 0, 0, 0, 0 }, // 60311C / N76A-1
|
||||||
|
{ 290, 0, 5, 0, 4, 0, 0 }, // Asder 20-in-1
|
||||||
// 313 - undumpable (reset-based TKROM multicarts)
|
// 313 - undumpable (reset-based TKROM multicarts)
|
||||||
{ 315, 0, 5, 0, 7, 0, 0 }, // 820732C / 830134C
|
{ 315, 0, 5, 0, 7, 0, 0 }, // 820732C / 830134C
|
||||||
{ 319, 3, 3, 4, 4, 0, 0 }, // HP-898F / KD-7/9-E
|
{ 319, 3, 3, 4, 4, 0, 0 }, // HP-898F / KD-7/9-E
|
||||||
@ -2994,6 +2996,15 @@ void readPRG(bool readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 221:
|
||||||
|
banks = int_pow(2, prgsize);
|
||||||
|
for (size_t i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 + ((i << 2) & 0xE0) + ((i << 3) & 0x200), 0);
|
||||||
|
write_prg_byte(0xC000 + (i & 7), 0);
|
||||||
|
dumpBankPRG(0x0, 0x4000, base);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 225:
|
case 225:
|
||||||
case 255:
|
case 255:
|
||||||
banks = int_pow(2, prgsize);
|
banks = int_pow(2, prgsize);
|
||||||
@ -3181,7 +3192,7 @@ void readPRG(bool readrom) {
|
|||||||
|
|
||||||
case 261:
|
case 261:
|
||||||
banks = int_pow(2, prgsize);
|
banks = int_pow(2, prgsize);
|
||||||
for (size_t i = 0; i < banks; i += 1) {
|
for (size_t i = 0; i < banks; i++) {
|
||||||
write_prg_byte(0xF000 + ((i & 0x0E) << 6) + ((i & 0x01) << 5), i);
|
write_prg_byte(0xF000 + ((i & 0x0E) << 6) + ((i & 0x01) << 5), i);
|
||||||
dumpBankPRG(0x0, 0x4000, base);
|
dumpBankPRG(0x0, 0x4000, base);
|
||||||
}
|
}
|
||||||
@ -3189,12 +3200,20 @@ void readPRG(bool readrom) {
|
|||||||
|
|
||||||
case 286:
|
case 286:
|
||||||
banks = int_pow(2, prgsize) * 2;
|
banks = int_pow(2, prgsize) * 2;
|
||||||
for (size_t i = 0; i < banks; i += 1) {
|
for (size_t i = 0; i < banks; i++) {
|
||||||
write_prg_byte(0xA0F0 + i, i);
|
write_prg_byte(0xA0F0 + i, i);
|
||||||
dumpBankPRG(0x0, 0x2000, base);
|
dumpBankPRG(0x0, 0x2000, base);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 288:
|
||||||
|
banks = int_pow(2, prgsize) / 2;
|
||||||
|
for (size_t i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 + ((i << 3) & 0x18), i);
|
||||||
|
dumpBankPRG(0x0, 0x8000, base);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 289: // 512K/1024K/2048K
|
case 289: // 512K/1024K/2048K
|
||||||
banks = int_pow(2, prgsize);
|
banks = int_pow(2, prgsize);
|
||||||
for (int i = 0; i < banks; i++) {
|
for (int i = 0; i < banks; i++) {
|
||||||
@ -3206,6 +3225,14 @@ void readPRG(bool readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 290:
|
||||||
|
banks = int_pow(2, prgsize);
|
||||||
|
for (size_t i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 | ((i << 10) & 0x7800) | ((i << 6) & 0x40), i);
|
||||||
|
dumpBankPRG(0x0, 0x4000, base);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 319: // 128K
|
case 319: // 128K
|
||||||
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++) {
|
||||||
@ -4164,6 +4191,22 @@ void readCHR(bool readrom) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 288:
|
||||||
|
banks = int_pow(2, chrsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 + (i & 0x07), i);
|
||||||
|
dumpBankCHR(0x0, 0x2000);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 290:
|
||||||
|
banks = int_pow(2, chrsize) / 2;
|
||||||
|
for (int i = 0; i < banks; i++) {
|
||||||
|
write_prg_byte(0x8000 | ((i << 5) & 0x300) | (i & 0x07), i);
|
||||||
|
dumpBankCHR(0x0, 0x2000);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 319: // 64K
|
case 319: // 64K
|
||||||
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++) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user