diff options
| author | Peter Fors <peter.fors@mindkiller.com> | 2025-05-29 19:19:59 +0200 |
|---|---|---|
| committer | Peter Fors <peter.fors@mindkiller.com> | 2025-05-29 19:19:59 +0200 |
| commit | 3d70e69f6c9fbdcb890c6986096330e4f6611a32 (patch) | |
| tree | 9f1ce34365ec376f10f6c6e68c1ca64fa4d4d63d /mappers/mapper_066_0.c | |
| parent | 7cca3bdbec289328b537c8256b43dcfedc5d56b8 (diff) | |
added mapper_tick() functionality, regressed 200fps, and optimized it back up to ~1940fps
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; } - |
