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) {