|
|
|
@@ -25,6 +25,7 @@ uint8_t nes_ppu_read(nes_ppu* ppu, uint16_t addr) { |
|
|
|
if (ppu_reg_status == addr) { |
|
|
|
val = ppu->status; |
|
|
|
ppu->latch = 0; |
|
|
|
ppu->status &= ~ppu_Status_VBlank; |
|
|
|
|
|
|
|
} else if (oam_reg_data == addr) { |
|
|
|
OAM_LOG("PPU: OAM READ %02x > %02x\n", ppu->oam_addr, val); |
|
|
|
@@ -274,13 +275,13 @@ nes_ppu_Result nes_ppu_run(nes_ppu* ppu, int cycles) { |
|
|
|
ppu->frame++; |
|
|
|
result = ppu_Result_VBlank_Off; |
|
|
|
|
|
|
|
} else if (ppu->scanline >= nes_ppu_active) { |
|
|
|
} else if (ppu->scanline == nes_ppu_active) { |
|
|
|
ppu->status |= ppu_Status_VBlank; |
|
|
|
if (ppu->control & ppu_Control_VBlank) { |
|
|
|
result = ppu_Result_VBlank_On; |
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
} else if (ppu->scanline < nes_ppu_active) { |
|
|
|
if ( ppu->scanline > nes_ppu_prerender && |
|
|
|
ppu->scanline < nes_ppu_render) { |
|
|
|
ppu->scroll_y++; |
|
|
|
|