More regression fixes, actually fix Pinball Deluxe this time
This commit is contained in:
parent
544ca2be4c
commit
1149c266cf
@ -607,22 +607,22 @@ void GB_display_run(GB_gameboy_t *gb, uint8_t cycles)
|
|||||||
while (true) {
|
while (true) {
|
||||||
/* Lines 0 - 143 */
|
/* Lines 0 - 143 */
|
||||||
for (; gb->current_line < LINES; gb->current_line++) {
|
for (; gb->current_line < LINES; gb->current_line++) {
|
||||||
|
GB_SLEEP(gb, display, 6, 3);
|
||||||
gb->io_registers[GB_IO_LY] = gb->current_line;
|
gb->io_registers[GB_IO_LY] = gb->current_line;
|
||||||
gb->oam_read_blocked = true;
|
gb->oam_read_blocked = true;
|
||||||
gb->oam_write_blocked = false;
|
gb->oam_write_blocked = false;
|
||||||
gb->ly_for_comparison = gb->current_line? -1 : gb->current_line;
|
gb->ly_for_comparison = gb->current_line? -1 : gb->current_line;
|
||||||
GB_STAT_update(gb);
|
|
||||||
GB_SLEEP(gb, display, 6, 3);
|
|
||||||
|
|
||||||
/* The OAM STAT interrupt occurs 1 T-cycle before STAT actually changes, except on line 1.
|
/* The OAM STAT interrupt occurs 1 T-cycle before STAT actually changes, except on line 0.
|
||||||
PPU glitch? */
|
PPU glitch? */
|
||||||
if (gb->current_line != 0) {
|
if (gb->current_line != 0) {
|
||||||
gb->io_registers[GB_IO_STAT] &= ~3;
|
gb->io_registers[GB_IO_STAT] &= ~3;
|
||||||
gb->io_registers[GB_IO_STAT] |= 2;
|
gb->io_registers[GB_IO_STAT] |= 2;
|
||||||
GB_STAT_update(gb);
|
|
||||||
gb->io_registers[GB_IO_STAT] &= ~3;
|
|
||||||
search_oam(gb);
|
|
||||||
}
|
}
|
||||||
|
GB_STAT_update(gb);
|
||||||
|
gb->io_registers[GB_IO_STAT] &= ~3;
|
||||||
|
|
||||||
|
search_oam(gb);
|
||||||
GB_SLEEP(gb, display, 7, 1);
|
GB_SLEEP(gb, display, 7, 1);
|
||||||
|
|
||||||
gb->io_registers[GB_IO_STAT] &= ~3;
|
gb->io_registers[GB_IO_STAT] &= ~3;
|
||||||
@ -826,12 +826,12 @@ void GB_display_run(GB_gameboy_t *gb, uint8_t cycles)
|
|||||||
gb->io_registers[GB_IO_LY] = 153;
|
gb->io_registers[GB_IO_LY] = 153;
|
||||||
gb->ly_for_comparison = -1;
|
gb->ly_for_comparison = -1;
|
||||||
GB_STAT_update(gb);
|
GB_STAT_update(gb);
|
||||||
GB_SLEEP(gb, display, 14, 4);
|
GB_SLEEP(gb, display, 14, 6);
|
||||||
|
|
||||||
gb->io_registers[GB_IO_LY] = 0;
|
gb->io_registers[GB_IO_LY] = 0;
|
||||||
gb->ly_for_comparison = 153;
|
gb->ly_for_comparison = 153;
|
||||||
GB_STAT_update(gb);
|
GB_STAT_update(gb);
|
||||||
GB_SLEEP(gb, display, 15, 4);
|
GB_SLEEP(gb, display, 15, 2);
|
||||||
|
|
||||||
gb->ly_for_comparison = -1;
|
gb->ly_for_comparison = -1;
|
||||||
GB_STAT_update(gb);
|
GB_STAT_update(gb);
|
||||||
|
Loading…
Reference in New Issue
Block a user