X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2F32x%2F32x.c;h=cec05e8aa2d9aa01cb4ee9a01ab91832aadab841;hb=27e2627380215963acbf38bf899a4a864446d826;hp=dbd3fa8739d1c0328c926cee4ac0c1a18a75c069;hpb=5f0ca48fedc1517d849df86085bc8d1c59780ed8;p=picodrive.git diff --git a/pico/32x/32x.c b/pico/32x/32x.c index dbd3fa8..cec05e8 100644 --- a/pico/32x/32x.c +++ b/pico/32x/32x.c @@ -301,8 +301,10 @@ void sync_sh2s_normal(unsigned int m68k_target) elprintf(EL_32X, "sh2 sync to %u", m68k_target); - if (!(Pico32x.regs[0] & P32XS_nRES)) + if (!(Pico32x.regs[0] & P32XS_nRES)) { + msh2.m68krcycles_done = ssh2.m68krcycles_done = m68k_target; return; // rare + } now = msh2.m68krcycles_done; if (CYCLES_GT(now, ssh2.m68krcycles_done)) @@ -416,4 +418,18 @@ void Pico32xSetClocks(int msh2_hz, int ssh2_hz) } } +void Pico32xStateLoaded(int is_early) +{ + if (is_early) { + Pico32xMemStateLoaded(); + return; + } + + sh2s[0].m68krcycles_done = sh2s[1].m68krcycles_done = SekCycleCntT; + p32x_update_irls(0); + p32x_poll_event(3, 0); + p32x_timers_recalc(); + run_events(SekCycleCntT); +} + // vim:shiftwidth=2:ts=2:expandtab