From 3d70e69f6c9fbdcb890c6986096330e4f6611a32 Mon Sep 17 00:00:00 2001 From: Peter Fors Date: Thu, 29 May 2025 19:19:59 +0200 Subject: added mapper_tick() functionality, regressed 200fps, and optimized it back up to ~1940fps --- mappers/mapper_066_0.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'mappers/mapper_066_0.c') 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; } - -- cgit v1.2.3