|
|
|
@@ -133,14 +133,14 @@ void nes_ppu_write(nes_ppu* ppu, uint16_t addr, uint8_t val) { |
|
|
|
ppu->latch = !ppu->latch; |
|
|
|
|
|
|
|
} else if (ppu_reg_addr == addr) { |
|
|
|
VRAM_LOG("PPU: ADDR %02x\n", val); |
|
|
|
// VRAM_LOG("PPU: ADDR %02x\n", val); |
|
|
|
|
|
|
|
if (ppu->latch) { |
|
|
|
ppu->t &= 0xFF00U; |
|
|
|
ppu->t |= val; |
|
|
|
|
|
|
|
ppu->addr = (ppu->t & 0x3FFFU); |
|
|
|
VRAM_LOG("PPU: VRAM ADDR %04x\n", ppu->addr); |
|
|
|
VRAM_LOG("I: Core: PPU: ADDR %04X\n", ppu->addr); |
|
|
|
|
|
|
|
nes_ppu_internal_copy_x(ppu); |
|
|
|
nes_ppu_internal_copy_y(ppu); |
|
|
|
@@ -178,6 +178,7 @@ void nes_ppu_write(nes_ppu* ppu, uint16_t addr, uint8_t val) { |
|
|
|
vram_addr &= (nes_ppu_mem_vram_size - 1); |
|
|
|
} |
|
|
|
#ifdef DEBUG_VRAM |
|
|
|
#if 0 |
|
|
|
{ |
|
|
|
int page = vram_addr >> 10; |
|
|
|
int loc = vram_addr & 0x3FFU; |
|
|
|
@@ -191,13 +192,15 @@ void nes_ppu_write(nes_ppu* ppu, uint16_t addr, uint8_t val) { |
|
|
|
loc - 960, val); |
|
|
|
} |
|
|
|
} |
|
|
|
#else |
|
|
|
VRAM_LOG("I: Core: PPU W %04X < %02X\n", ppu->addr, val); |
|
|
|
#endif |
|
|
|
#endif // DEBUG_VRAM |
|
|
|
// printf("PPU: VRAM %04x < %02x\n", vram_addr, val); |
|
|
|
nes_vram_write(ppu->mapper, ppu->map_data, |
|
|
|
vram_addr, val); |
|
|
|
|
|
|
|
} else { |
|
|
|
// PPU_LOG("PPU: CHR MEM WRITE %04x > %02x\n", ppu->addr, val); |
|
|
|
VRAM_LOG("I: Core: PPU W %04X < %02X\n", ppu->addr, val); |
|
|
|
nes_chr_write(ppu->mapper, ppu->map_data, |
|
|
|
ppu->addr, val); |
|
|
|
} |
|
|
|
|