From a386ef64f6376b3ef8434a6cdf456495287fcbca Mon Sep 17 00:00:00 2001 From: Peter Fors Date: Mon, 31 Mar 2025 20:31:05 +0200 Subject: currently 90% working --- mapper_nrom.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'mapper_nrom.c') diff --git a/mapper_nrom.c b/mapper_nrom.c index 425db31..f618211 100644 --- a/mapper_nrom.c +++ b/mapper_nrom.c @@ -1,27 +1,30 @@ -static void mapper_nrom_init(struct state *state) { +static void mapper_nrom_init(struct nes_state *state) { // Nothing to initialize for NROM } -static uint8_t mapper_nrom_read(struct state *state, uint16_t addr) { +static uint8_t mapper_nrom_read(struct nes_state *state, uint32_t addr) { uint32_t prg_size = state->ines.prg_size; - if(state->ines.prg_size == 16384) { - return state->rom[addr & 0x3fff]; - } else { - return state->rom[addr - 0x8000]; - } - return 0; + uint32_t mask = (state->ines.prg_size == 16384) ? 0x3fff : 0x7fff; + return state->rom[addr & mask]; + + // if(state->ines.prg_size == 16384) { + // return state->rom[addr & 0x3fff]; + // } else { + // return state->rom[addr - 0x8000]; + // } + // return 0; } -static void mapper_nrom_write(struct state *state, uint16_t addr, uint8_t value) { +static void mapper_nrom_write(struct nes_state *state, uint32_t addr, uint8_t value) { (void)state; (void)addr; (void)value; } -static void mapper_nrom_tick(struct state *state) { +static void mapper_nrom_tick(struct nes_state *state) { (void)state; } -- cgit v1.2.3