From 707b314a7a0a7dc18be7e7369aaa9a69226fd9a6 Mon Sep 17 00:00:00 2001 From: nsx0r Date: Sat, 22 Oct 2022 09:01:18 +0200 Subject: [PATCH] Added NES mapper 60 Added NES mapper 60 for reset-based NROM-128 4-in-1 multicarts. Tested working on 7 different NES carts. --- Cart_Reader/NES.ino | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/Cart_Reader/NES.ino b/Cart_Reader/NES.ino index a89df68..a97f66d 100644 --- a/Cart_Reader/NES.ino +++ b/Cart_Reader/NES.ino @@ -59,7 +59,8 @@ static const byte PROGMEM mapsize[] = { 45, 3, 6, 0, 8, 0, 0, // ga23c asic multicart [UNLICENSED] 47, 4, 4, 6, 6, 0, 0, // (super spike vball + world cup) 48, 3, 4, 6, 6, 0, 0, // taito tc0690 - 62, 7, 7, 8, 8, 0, 0, // K-1017P [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] 64, 2, 3, 4, 5, 0, 0, // tengen rambo-1 [UNLICENSED] 65, 3, 4, 5, 6, 0, 0, // irem h-3001 66, 2, 3, 2, 3, 0, 0, // gxrom/mhrom @@ -3233,6 +3234,19 @@ void readPRG(boolean readrom) { } break; + case 60: + for (word address = 0; address < 0x4000; address += 512) { + dumpPRG(base, address); + } + for (int i = 0; i < 3; i++) { + write_prg_byte(0x8D8D, i); + delay(500); + for (word address = 0; address < 0x4000; address += 512) { + dumpPRG(base, address); + } + } + break; + case 66: // 64K/128K banks = int_pow(2, prgsize) / 2; for (int i = 0; i < banks; i++) { // 64K/128K @@ -3877,6 +3891,16 @@ void readCHR(boolean readrom) { } break; + case 60: + for (int i = 0; i < 4; i++) { + write_prg_byte(0x8D8D, i); + delay(500); + for (word address = 0x0; address < 0x2000; address += 512) { + dumpCHR(address); + } + } + break; + case 62: banks = int_pow(2, chrsize) / 2; for (int i = 0; i < banks; i++) {