diff options
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; |
