From 6c2041fea0f4624daa988b5edd2bd4b7f9c381a7 Mon Sep 17 00:00:00 2001 From: notaz Date: Tue, 28 Nov 2017 02:04:08 +0200 Subject: [PATCH] 32x: add other timing hacks For sdram sync, like NJTE. Still bad, but don't have a better solution for now (or ever?). --- pico/32x/32x.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pico/32x/32x.c b/pico/32x/32x.c index 3743eb9..9bfbefa 100644 --- a/pico/32x/32x.c +++ b/pico/32x/32x.c @@ -422,6 +422,9 @@ void p32x_sync_other_sh2(SH2 *sh2, unsigned int m68k_target) } } +#define STEP_LS 24 +#define STEP_N 440 + #define sync_sh2s_normal p32x_sync_sh2s //#define sync_sh2s_lockstep p32x_sync_sh2s @@ -451,6 +454,8 @@ void sync_sh2s_normal(unsigned int m68k_target) target = m68k_target; if (event_time_next && CYCLES_GT(target, event_time_next)) target = event_time_next; + if (CYCLES_GT(target, now + STEP_N)) + target = now + STEP_N; while (CYCLES_GT(target, now)) { @@ -507,8 +512,6 @@ void sync_sh2s_normal(unsigned int m68k_target) Pico32x.comm_dirty = 0; } -#define STEP_68K 24 - void sync_sh2s_lockstep(unsigned int m68k_target) { unsigned int mcycles; @@ -518,7 +521,7 @@ void sync_sh2s_lockstep(unsigned int m68k_target) mcycles = ssh2.m68krcycles_done; while (mcycles < m68k_target) { - mcycles += STEP_68K; + mcycles += STEP_LS; sync_sh2s_normal(mcycles); } } -- 2.39.2