notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
32x: add other timing hacks
[picodrive.git]
/
pico
/
32x
/
32x.c
diff --git
a/pico/32x/32x.c
b/pico/32x/32x.c
index
3743eb9
..
9bfbefa
100644
(file)
--- 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
#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;
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))
{
while (CYCLES_GT(target, now))
{
@@
-507,8
+512,6
@@
void sync_sh2s_normal(unsigned int m68k_target)
Pico32x.comm_dirty = 0;
}
Pico32x.comm_dirty = 0;
}
-#define STEP_68K 24
-
void sync_sh2s_lockstep(unsigned int m68k_target)
{
unsigned int mcycles;
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 = ssh2.m68krcycles_done;
while (mcycles < m68k_target) {
- mcycles += STEP_
68K
;
+ mcycles += STEP_
LS
;
sync_sh2s_normal(mcycles);
}
}
sync_sh2s_normal(mcycles);
}
}