notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sh2 overclock and logging stuff, menu refactoring
[picodrive.git]
/
pico
/
32x
/
32x.c
diff --git
a/pico/32x/32x.c
b/pico/32x/32x.c
index
e7779b9
..
ffd4f1f
100644
(file)
--- a/
pico/32x/32x.c
+++ b/
pico/32x/32x.c
@@
-4,6
+4,9
@@
struct Pico32x Pico32x;
SH2 sh2s[2];
struct Pico32x Pico32x;
SH2 sh2s[2];
+int p32x_msh2_multiplier = MSH2_MULTI_DEFAULT;
+int p32x_ssh2_multiplier = SSH2_MULTI_DEFAULT;
+
static int REGPARM(2) sh2_irq_cb(SH2 *sh2, int level)
{
if (sh2->pending_irl > sh2->pending_int_irq) {
static int REGPARM(2) sh2_irq_cb(SH2 *sh2, int level)
{
if (sh2->pending_irl > sh2->pending_int_irq) {
@@
-194,6
+197,7
@@
static __inline void run_m68k(int cyc)
{
pprof_start(m68k);
{
pprof_start(m68k);
+p32x_poll_event(3, 0);
#if defined(EMU_C68K)
PicoCpuCM68k.cycles = cyc;
CycloneRun(&PicoCpuCM68k);
#if defined(EMU_C68K)
PicoCpuCM68k.cycles = cyc;
CycloneRun(&PicoCpuCM68k);
@@
-210,7
+214,8
@@
static __inline void run_m68k(int cyc)
// ~1463.8, but due to cache misses and slow mem
// it's much lower than that
//#define SH2_LINE_CYCLES 735
// ~1463.8, but due to cache misses and slow mem
// it's much lower than that
//#define SH2_LINE_CYCLES 735
-#define CYCLES_M68K2SH2(x) ((x) * 6 / 4)
+#define CYCLES_M68K2MSH2(x) (((x) * p32x_msh2_multiplier) >> 10)
+#define CYCLES_M68K2SSH2(x) (((x) * p32x_ssh2_multiplier) >> 10)
#define PICO_32X
#define CPUS_RUN_SIMPLE(m68k_cycles,s68k_cycles) \
#define PICO_32X
#define CPUS_RUN_SIMPLE(m68k_cycles,s68k_cycles) \
@@
-227,12
+232,12
@@
static __inline void run_m68k(int cyc)
elprintf(EL_32X, "slice %d", slice); \
if (!(Pico32x.emu_flags & (P32XF_SSH2POLL|P32XF_SSH2VPOLL))) { \
pprof_start(ssh2); \
elprintf(EL_32X, "slice %d", slice); \
if (!(Pico32x.emu_flags & (P32XF_SSH2POLL|P32XF_SSH2VPOLL))) { \
pprof_start(ssh2); \
- sh2_execute(&ssh2, CYCLES_M68K2SH2(slice)); \
+ sh2_execute(&ssh2, CYCLES_M68K2S
S
H2(slice)); \
pprof_end(ssh2); \
} \
if (!(Pico32x.emu_flags & (P32XF_MSH2POLL|P32XF_MSH2VPOLL))) { \
pprof_start(msh2); \
pprof_end(ssh2); \
} \
if (!(Pico32x.emu_flags & (P32XF_MSH2POLL|P32XF_MSH2VPOLL))) { \
pprof_start(msh2); \
- sh2_execute(&msh2, CYCLES_M68K2SH2(slice)); \
+ sh2_execute(&msh2, CYCLES_M68K2
M
SH2(slice)); \
pprof_end(msh2); \
} \
pprof_start(dummy); \
pprof_end(msh2); \
} \
pprof_start(dummy); \