From e82b34bae9ff9aafebd03db78e9fbf610b345133 Mon Sep 17 00:00:00 2001 From: negativeExponent Date: Thu, 30 Jan 2020 19:51:45 +0800 Subject: [PATCH] m313: Fix incorrect bank sizes --- src/boards/resettxrom.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/boards/resettxrom.c b/src/boards/resettxrom.c index 96b3cb4..1047283 100644 --- a/src/boards/resettxrom.c +++ b/src/boards/resettxrom.c @@ -32,31 +32,33 @@ static uint8 submapper; static void M313CW(uint32 A, uint8 V) { /*FCEU_printf("CHR: A:%04x V:%02x 0:%02x\n", A, V, EXPREGS[0]);*/ + uint32_t bank; switch (submapper) { - case 0: V = (EXPREGS[0] << 7) | (V & 0x7F); break; - case 1: V = (EXPREGS[0] << 7) | (V & 0x7F); break; - case 2: V = (EXPREGS[0] << 8) | (V & 0xFF); break; - case 3: V = (EXPREGS[0] << 8) | (V & 0xFF); break; - case 4: V = (EXPREGS[0] << 7) | (V & 0x7F); break; + default: bank = (EXPREGS[0] << 7) | (V & 0x7F); break; + case 1: bank = (EXPREGS[0] << 7) | (V & 0x7F); break; + case 2: bank = (EXPREGS[0] << 8) | (V & 0xFF); break; + case 3: bank = (EXPREGS[0] << 8) | (V & 0xFF); break; + case 4: bank = (EXPREGS[0] << 7) | (V & 0x7F); break; } - setchr1(A, V); + setchr1(A, bank); } static void M313PW(uint32 A, uint8 V) { /*FCEU_printf("PRG: A:%04x V:%02x 0:%02x\n", A, V, EXPREGS[0]);*/ + uint32_t bank; switch (submapper) { - case 0: V = (EXPREGS[0] << 4) | (V & 0x0F); break; - case 1: V = (EXPREGS[0] << 5) | (V & 0x1F); break; - case 2: V = (EXPREGS[0] << 4) | (V & 0x0F); break; - case 3: V = (EXPREGS[0] << 5) | (V & 0x1F); break; + default: bank = (EXPREGS[0] << 4) | (V & 0x0F); break; + case 1: bank = (EXPREGS[0] << 5) | (V & 0x1F); break; + case 2: bank = (EXPREGS[0] << 4) | (V & 0x0F); break; + case 3: bank = (EXPREGS[0] << 5) | (V & 0x1F); break; case 4: if (EXPREGS[0] == 0) - V = (EXPREGS[0] << 5) | (V & 0x1F); + bank = (EXPREGS[0] << 5) | (V & 0x1F); else - V = (EXPREGS[0] << 4) | (V & 0x0F); + bank = (EXPREGS[0] << 4) | (V & 0x0F); break; } - setprg8(A, V); + setprg8(A, bank); } static void M313Reset(void) {