mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
32x: fix savestates
This commit is contained in:
parent
5f0ca48fed
commit
27e2627380
5 changed files with 34 additions and 14 deletions
|
@ -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
|
||||
|
|
|
@ -121,8 +121,8 @@ void p32x_poll_event(int cpu_mask, int is_vdp)
|
|||
|
||||
// SH2 faking
|
||||
//#define FAKE_SH2
|
||||
int p32x_csum_faked;
|
||||
#ifdef FAKE_SH2
|
||||
static int p32x_csum_faked;
|
||||
static const u16 comm_fakevals[] = {
|
||||
0x4d5f, 0x4f4b, // M_OK
|
||||
0x535f, 0x4f4b, // S_OK
|
||||
|
@ -1612,16 +1612,12 @@ void PicoMemSetup32x(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
void Pico32xStateLoaded(void)
|
||||
void Pico32xMemStateLoaded(void)
|
||||
{
|
||||
sh2s[0].m68krcycles_done = sh2s[1].m68krcycles_done = SekCycleCntT;
|
||||
p32x_poll_event(3, 0);
|
||||
|
||||
bank_switch(Pico32x.regs[4 / 2]);
|
||||
Pico32xSwapDRAM((Pico32x.vdp_regs[0x0a / 2] & P32XV_FS) ^ P32XV_FS);
|
||||
Pico32x.dirty_pal = 1;
|
||||
memset(Pico32xMem->pwm, 0, sizeof(Pico32xMem->pwm));
|
||||
p32x_timers_recalc();
|
||||
Pico32x.dirty_pal = 1;
|
||||
#ifdef DRC_SH2
|
||||
sh2_drc_flush_all();
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue