diff options
Diffstat (limited to 'mappers/mapper_066_0.c')
| -rw-r--r-- | mappers/mapper_066_0.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/mappers/mapper_066_0.c b/mappers/mapper_066_0.c index ccd00fe..bd4c124 100644 --- a/mappers/mapper_066_0.c +++ b/mappers/mapper_066_0.c @@ -3,23 +3,18 @@ __attribute__((section(".mapper_066_0"))) static uint8_t mapper_066_0_prg_rom_read(struct nes_state *state, uint32_t addr) { struct mapper_066_0 *mapper = &state->mapper_data.m066_0; - if(addr >= 0x8000) { - return state->prg_rom[addr & 0x7fff]; - } - return 0; + return mapper->prg_offset[addr & 0x7fff]; } __attribute__((section(".mapper_066_0"))) static void mapper_066_0_prg_rom_write(struct nes_state *state, uint32_t addr, uint8_t value) { struct mapper_066_0 *mapper = &state->mapper_data.m066_0; - if(addr >= 0x8000) { - uint32_t prg_bank = (value >> 4) & 3; - uint32_t chr_bank = (value >> 0) & 3; + uint32_t prg_bank = (value >> 4) & 3; + uint32_t chr_bank = (value >> 0) & 3; - mapper->prg_offset = state->prg_rom + (prg_bank * 0x8000); - mapper->chr_offset = state->chr_rom + (chr_bank * 0x2000); - } + mapper->prg_offset = state->prg_rom + (prg_bank * 0x8000); + mapper->chr_offset = state->chr_rom + (chr_bank * 0x2000); } __attribute__((section(".mapper_066_0"))) @@ -39,4 +34,3 @@ static void mapper_066_0_init(struct nes_state *state) { state->mapper_function.prg_rom_write = mapper_066_0_prg_rom_write; state->mapper_function.chr_read = mapper_066_0_chr_read; } - |
