diff options
| author | Peter Fors <peter.fors@mindkiller.com> | 2025-03-31 20:31:05 +0200 |
|---|---|---|
| committer | Peter Fors <peter.fors@mindkiller.com> | 2025-03-31 20:31:05 +0200 |
| commit | a386ef64f6376b3ef8434a6cdf456495287fcbca (patch) | |
| tree | e2da9f72ce0a565b4fac2fc8be19ab3497286b36 /mapper_nrom.c | |
| parent | d5486a5af100fb37fac08b60d862ac14943853ce (diff) | |
currently 90% working
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; } |
