diff options
Diffstat (limited to 'mapper_nrom.c')
| -rw-r--r-- | mapper_nrom.c | 23 |
1 files changed, 13 insertions, 10 deletions
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; } |
