From 5ca7f608f7f173afefa586e25b3e3a174ba09ca3 Mon Sep 17 00:00:00 2001 From: norill Date: Wed, 2 Oct 2019 18:30:36 +0200 Subject: [PATCH] Update 15.cpp changes in accordance to the reverse-engineered mapper schematics: - changed bank mode 1 mapping CPU $C000-$DFFF from "fixed to last bank" to "B OR 7" to support multiple 128KiB UNROM games in one cart - latch D.7 bit ignored outside bank mode 2 - fixed latch D.6 bit interpreted as bank number bit --- src/boards/15.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/boards/15.cpp b/src/boards/15.cpp index 13ca2d7a..5465a381 100644 --- a/src/boards/15.cpp +++ b/src/boards/15.cpp @@ -38,20 +38,20 @@ static void Sync(void) { switch (latchea & 3) { case 0: for (i = 0; i < 4; i++) - setprg8(0x8000 + (i << 13), (((latched & 0x7F) << 1) + i) ^ (latched >> 7)); + setprg8(0x8000 + (i << 13), ((latched & 0x3F) << 1) + i); break; case 2: for (i = 0; i < 4; i++) - setprg8(0x8000 + (i << 13), ((latched & 0x7F) << 1) + (latched >> 7)); + setprg8(0x8000 + (i << 13), ((latched & 0x3F) << 1) + (latched >> 7)); break; case 1: case 3: for (i = 0; i < 4; i++) { unsigned int b; - b = latched & 0x7F; + b = latched & 0x3F; if (i >= 2 && !(latchea & 0x2)) - b = 0x7F; - setprg8(0x8000 + (i << 13), (i & 1) + ((b << 1) ^ (latched >> 7))); + b = b | 0x07; + setprg8(0x8000 + (i << 13), (i & 1) + (b << 1)); } break; }