/*
* PicoDrive
- * (C) notaz, 2009,2010
+ * (C) notaz, 2009,2010,2013
*
* This work is licensed under the terms of MAME license.
* See COPYING file in the top-level directory.
typedef void (event_cb)(unsigned int now);
-static unsigned int event_times[P32X_EVENT_COUNT];
+unsigned int event_times[P32X_EVENT_COUNT];
static unsigned int event_time_next;
static event_cb *event_cbs[] = {
[P32X_EVENT_PWM] = pwm_irq_event,
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))
}
}
+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