From 0a0073dc9fae7d867d737623d30917cc4b285b16 Mon Sep 17 00:00:00 2001 From: notaz Date: Sun, 28 Jan 2018 19:13:01 +0200 Subject: [PATCH] fix a corner case with h-int --- pico/pico_cmn.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pico/pico_cmn.c b/pico/pico_cmn.c index 95b6b10..1f89da9 100644 --- a/pico/pico_cmn.c +++ b/pico/pico_cmn.c @@ -113,9 +113,7 @@ static int PicoFrameHints(void) z80_resetCycles(); PsndStartFrame(); - // Load H-Int counter - hint = (pv->status & PVS_ACTIVE) ? pv->hint_cnt : pv->reg[10]; - + hint = pv->hint_cnt; pv->status |= PVS_ACTIVE; for (y = 0; ; y++) @@ -306,11 +304,14 @@ static int PicoFrameHints(void) PAD_DELAY(); - if ((pv->status & PVS_ACTIVE) && --hint < 0) - { - hint = pv->reg[10]; // Reload H-Int counter - do_hint(pv); + if (unlikely(pv->status & PVS_ACTIVE)) { + if (--hint < 0) { + hint = pv->reg[10]; // Reload H-Int counter + do_hint(pv); + } } + else + hint = pv->reg[10]; // Run scanline: Pico.t.m68c_line_start = Pico.t.m68c_aim; -- 2.39.2