Parcourir la source

Make VBlank flags hew more closely to console behavior

master
Nathaniel Walizer il y a 10 mois
Parent
révision
42ed8daebc
1 fichiers modifiés avec 3 ajouts et 2 suppressions
  1. +3
    -2
      src/ppu.c

+ 3
- 2
src/ppu.c Voir le fichier

@@ -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++;


Chargement…
Annuler
Enregistrer