mirror of
https://github.com/sanni/cartreader.git
synced 2025-03-12 22:36:36 +01:00
Update NES.ino
- added mappers 272, 380, 519
This commit is contained in:
parent
2fc46b88f7
commit
c20e810d65
@ -307,6 +307,7 @@ static const struct mapper_NES PROGMEM mapsize[] = {
|
||||
// 266 - City Fighter IV [TODO]
|
||||
// 267 - 晶太 [Jīngtài] EL861121C / JY-119 multicart [TODO]
|
||||
{ 268, 0, 11, 0, 8, 0, 0 }, // KP6022 / AA6023 ASIC (Mindkids/Coolboy) [268.0-1]
|
||||
{ 272, 0, 3, 0, 5, 0, 0 }, // J-2012-II (bootleg ぼくDracula君)
|
||||
{ 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
|
||||
@ -319,10 +320,12 @@ static const struct mapper_NES PROGMEM mapsize[] = {
|
||||
{ 332, 3, 4, 4, 5, 0, 0 }, // WS-1001
|
||||
{ 351, 0, 6, 0, 8, 0, 0 }, // Techline XB multicarts
|
||||
{ 366, 0, 6, 0, 8, 0, 0 }, // GN-45
|
||||
{ 380, 0, 5, 0, 0, 0, 0 }, // 970630C / KN-35A
|
||||
{ 396, 0, 6, 0, 0, 0, 0 }, // 晶太 [Jīngtài] YY850437C
|
||||
{ 422, 1, 8, 0, 8, 0, 0 }, // TEC9719
|
||||
{ 446, 0, 8, 0, 0, 0, 0 }, // SMD172B_FPGA
|
||||
{ 470, 0, 11, 0, 0, 0, 0 }, // INX_007T_V01
|
||||
{ 519, 0, 6, 0, 8, 0, 0 }, // VT-29B/VT1210
|
||||
{ 532, 4, 4, 6, 6, 0, 0 }, // CHINA_ER_SAN2 (duplicate of 19)
|
||||
{ 534, 1, 8, 0, 8, 0, 0 }, // ING003C / PJ-008 / AT-207
|
||||
// 551 - 晶科泰 [Jncota] KT-xxx [TODO]
|
||||
@ -2351,6 +2354,7 @@ void readPRG(bool readrom) {
|
||||
case 25:
|
||||
case 65:
|
||||
case 75: // 128K/256K
|
||||
case 272:
|
||||
banks = int_pow(2, prgsize) * 2;
|
||||
if (mapper == 23) {
|
||||
write_prg_byte(0x9002, 0);
|
||||
@ -2359,6 +2363,10 @@ void readPRG(bool readrom) {
|
||||
if (mapper == 25) {
|
||||
write_prg_byte(0x9005, 0); // set vrc4 swap setting for TMNT2
|
||||
}
|
||||
if (mapper == 272) {
|
||||
write_prg_byte(0x9002, 0);
|
||||
write_prg_byte(0x9004, 0);
|
||||
}
|
||||
for (size_t i = 0; i < banks; i++) {
|
||||
write_prg_byte(0x8000, i);
|
||||
dumpBankPRG(0x0, 0x2000, base);
|
||||
@ -3318,6 +3326,14 @@ void readPRG(bool readrom) {
|
||||
}
|
||||
break;
|
||||
|
||||
case 380:
|
||||
banks = int_pow(2, prgsize);
|
||||
for (size_t i = 0; i < banks; i++) {
|
||||
write_prg_byte(0xF201 + ((i & 0x1F) << 2), 0);
|
||||
dumpBankPRG(0x0, 0x4000, base);
|
||||
}
|
||||
break;
|
||||
|
||||
case 396:
|
||||
banks = int_pow(2, prgsize);
|
||||
for (size_t i = 0; i < banks; i++) {
|
||||
@ -3348,6 +3364,14 @@ void readPRG(bool readrom) {
|
||||
}
|
||||
break;
|
||||
|
||||
case 519:
|
||||
banks = int_pow(2, prgsize);
|
||||
for (size_t i = 0; i < banks; i += 2) {
|
||||
write_prg_byte(0x8000 + (i & 0x3F), 0);
|
||||
dumpBankPRG(0x0, 0x8000, base);
|
||||
}
|
||||
break;
|
||||
|
||||
case 552:
|
||||
banks = int_pow(2, prgsize) * 2;
|
||||
for (size_t i = 0; i < banks; i++) {
|
||||
@ -3644,13 +3668,16 @@ void readCHR(bool readrom) {
|
||||
break;
|
||||
|
||||
case 23:
|
||||
case 272:
|
||||
{
|
||||
banks = int_pow(2, chrsize) * 4;
|
||||
// Detect VRC4e Carts - read PRG 0x1FFF6 (DATE)
|
||||
// Boku Dracula-kun = 890810, Tiny Toon = 910809, Crisis Force = 910701, Parodius Da! = 900916
|
||||
write_prg_byte(0x8000, 15); // Load last bank
|
||||
uint16_t m23reg = 0xB001;
|
||||
if (read_prg_byte(0x9FF6) == 0x30) {
|
||||
if ((read_prg_byte(0x9FF6) == 0x30) && !(mapper == 272)) {
|
||||
println_Msg(F("VRC4e detected!"));
|
||||
display_Update();
|
||||
m23reg = 0xB004;
|
||||
}
|
||||
for (size_t i = 0; i < banks; i++) {
|
||||
@ -4328,6 +4355,14 @@ void readCHR(bool readrom) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 519:
|
||||
banks = int_pow(2, chrsize) / 2;
|
||||
for (size_t i = 0; i < banks; i++) {
|
||||
write_prg_byte(0x8000, i & 0x7F);
|
||||
dumpBankCHR(0x0, 0x2000);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (!readrom) {
|
||||
myFile.flush();
|
||||
|
Loading…
x
Reference in New Issue
Block a user