Fixed a regression bug that made the first CGB frame blank instead of repeated.

This commit is contained in:
Lior Halphon 2020-01-31 01:29:59 +02:00
parent ce5153544c
commit 38ee020653

View File

@ -974,10 +974,16 @@ void GB_display_run(GB_gameboy_t *gb, uint8_t cycles)
GB_STAT_update(gb); GB_STAT_update(gb);
if (gb->frame_skip_state == GB_FRAMESKIP_LCD_TURNED_ON) { if (gb->frame_skip_state == GB_FRAMESKIP_LCD_TURNED_ON) {
if (!GB_is_sgb(gb) || gb->current_lcd_line < LINES) { if (GB_is_cgb(gb)) {
display_vblank(gb); GB_timing_sync(gb);
gb->frame_skip_state = GB_FRAMESKIP_FIRST_FRAME_SKIPPED;
}
else {
if (!GB_is_sgb(gb) || gb->current_lcd_line < LINES) {
display_vblank(gb);
}
gb->frame_skip_state = GB_FRAMESKIP_SECOND_FRAME_RENDERED;
} }
gb->frame_skip_state = GB_FRAMESKIP_SECOND_FRAME_RENDERED;
} }
else { else {
gb->frame_skip_state = GB_FRAMESKIP_SECOND_FRAME_RENDERED; gb->frame_skip_state = GB_FRAMESKIP_SECOND_FRAME_RENDERED;