mirror of
https://github.com/sanni/cartreader.git
synced 2025-02-04 15:46:25 +01:00
Update NES.ino
- added mapper 221, 288, 290
This commit is contained in:
parent
e013e85a1f
commit
80d8bd53e7
@ -206,7 +206,7 @@ static const struct mapper_NES PROGMEM mapsize[] = {
|
||||
{ 165, 5, 5, 5, 5, 0, 0 }, // 圣火徽章 [Fire Emblem] Chinese version by 外星 [Wàixīng]
|
||||
// 166 - not used (wrong bank order, use 167 instead)
|
||||
// 167 - Subor educational cartridges [TODO]
|
||||
{ 168, 2, 2, 0, 0, 0, 0 }, // Racermate Challenge 2
|
||||
{ 168, 2, 2, 0, 0, 0, 0 }, // Racermate Challenge 2
|
||||
// 169 - not used (duplicate of 15)
|
||||
// 170 - 藤屋 [Fujiya] NROM [TODO]
|
||||
// 171 - 步步高 [Bùbùgāo / BBK] [TODO]
|
||||
@ -259,7 +259,7 @@ static const struct mapper_NES PROGMEM mapsize[] = {
|
||||
// 218 - Magic Floor [TODO]
|
||||
// 219 - 卡聖 [Kǎshèng] A9746 [TODO]
|
||||
// 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]
|
||||
// 223 - not used (duplicate of 199)
|
||||
// 224 - 晶科泰 [Jncota] KT-008 (duplicate of 268)
|
||||
@ -308,7 +308,9 @@ static const struct mapper_NES PROGMEM mapsize[] = {
|
||||
// 267 - 晶太 EL861121C / JY-119 multicart [TODO]
|
||||
{ 268, 0, 11, 0, 8, 0, 0 }, // KP6022 / AA6023 ASIC (Mindkids/Coolboy)
|
||||
{ 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
|
||||
{ 290, 0, 5, 0, 4, 0, 0 }, // Asder 20-in-1
|
||||
// 313 - undumpable (reset-based TKROM multicarts)
|
||||
{ 315, 0, 5, 0, 7, 0, 0 }, // 820732C / 830134C
|
||||
{ 319, 3, 3, 4, 4, 0, 0 }, // HP-898F / KD-7/9-E
|
||||
@ -2994,6 +2996,15 @@ void readPRG(bool readrom) {
|
||||
}
|
||||
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 255:
|
||||
banks = int_pow(2, prgsize);
|
||||
@ -3181,7 +3192,7 @@ void readPRG(bool readrom) {
|
||||
|
||||
case 261:
|
||||
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);
|
||||
dumpBankPRG(0x0, 0x4000, base);
|
||||
}
|
||||
@ -3189,12 +3200,20 @@ void readPRG(bool readrom) {
|
||||
|
||||
case 286:
|
||||
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);
|
||||
dumpBankPRG(0x0, 0x2000, base);
|
||||
}
|
||||
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
|
||||
banks = int_pow(2, prgsize);
|
||||
for (int i = 0; i < banks; i++) {
|
||||
@ -3206,6 +3225,14 @@ void readPRG(bool readrom) {
|
||||
}
|
||||
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
|
||||
banks = int_pow(2, prgsize) / 2;
|
||||
for (int i = 0; i < banks; i++) {
|
||||
@ -4164,6 +4191,22 @@ void readCHR(bool readrom) {
|
||||
}
|
||||
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
|
||||
banks = int_pow(2, chrsize) / 2;
|
||||
for (int i = 0; i < banks; i++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user