From: notaz Date: Sun, 28 Jan 2018 17:13:01 +0000 (+0200) Subject: fix a corner case with h-int X-Git-Tag: v1.93~6 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a0073dc9fae7d867d737623d30917cc4b285b16;p=picodrive.git fix a corner case with h-int --- diff --git a/pico/pico_cmn.c b/pico/pico_cmn.c index 95b6b103..1f89da90 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;