static void do_timing_hacks_vb(void)
{
- if (Pico.m.dma_xfers)
+ if (unlikely(Pico.m.dma_xfers))
SekCyclesBurn(CheckDMA());
}
PAD_DELAY();
- if ((pv->status & PVS_ACTIVE) && --hint < 0)
+ if (unlikely(pv->status & PVS_ACTIVE) && --hint < 0)
{
hint = pv->reg[10]; // Reload H-Int counter
do_hint(pv);
pevt_log_m68k_o(EVT_NEXT_LINE);
}
+ if (unlikely(PicoIn.overclockM68k)) {
+ unsigned int l = PicoIn.overclockM68k * lines / 100;
+ while (l-- > 0) {
+ Pico.t.m68c_cnt -= CYCLES_M68K_LINE;
+ do_timing_hacks_vb();
+ SekSyncM68k();
+ }
+ }
+
pv->status &= ~(SR_VB | PVS_VB2);
pv->status |= ((pv->reg[1] >> 3) ^ SR_VB) & SR_VB; // forced blanking