diff options
| author | Peter Fors <peter.fors@mindkiller.com> | 2025-11-02 09:16:03 +0100 |
|---|---|---|
| committer | Peter Fors <peter.fors@mindkiller.com> | 2025-11-02 09:16:03 +0100 |
| commit | ed41715142f419021ed8fef5522ea1f363f16441 (patch) | |
| tree | 9cf0049db6ac5b0da5552bba9e0376b82eaeb2b4 /mknes_ppu_registers.c | |
| parent | e137c881d835703d1030746cd7262899de7169c6 (diff) | |
fix multiple mappers
Diffstat (limited to 'mknes_ppu_registers.c')
| -rw-r--r-- | mknes_ppu_registers.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/mknes_ppu_registers.c b/mknes_ppu_registers.c index 6720958..0defd0c 100644 --- a/mknes_ppu_registers.c +++ b/mknes_ppu_registers.c @@ -47,11 +47,13 @@ static inline void ppu_write(struct nes_state *state, uint32_t offset, uint8_t v case 7: { uint32_t addr = ppu->vram_addr; - if(addr <= 0x1fff) { + if(addr < 0x2000) { state->mapper_function.chr_write(state, addr, value); - } else if(addr >= 0x2000 && addr <= 0x3eff) { + + } else if(addr < 0x3f00) { state->mapper_function.ciram_write(state, addr, value); - } else if(addr >= 0x3f00 && addr <= 0x3fff) { + + } else if(addr < 0x4000) { uint32_t pal_addr = addr & 0x1f; if((pal_addr & 3) == 0) { pal_addr &= ~0x10; @@ -92,13 +94,15 @@ static inline uint8_t ppu_read(struct nes_state *state, uint32_t offset) { case 7: { uint32_t addr = ppu->vram_addr; - if(addr <= 0x1fff) { + if(addr < 0x2000) { result = ppu->vram_read_buffer; ppu->vram_read_buffer = state->mapper_function.chr_read(state, addr); - } else if(addr >= 0x2000 && addr <= 0x3eff) { + + } else if(addr < 0x3f00) { result = ppu->vram_read_buffer; ppu->vram_read_buffer = state->mapper_function.ciram_read(state, addr); - } else if(addr >= 0x3f00 && addr <= 0x3fff) { + + } else if(addr < 0x4000) { uint32_t pal_addr = addr & 0x1f; if((pal_addr & 0x13) == 0x10) { pal_addr &= ~0x10; |
