-#ifndef PICO_CD
-#define CPUS_RUN(m68k_cycles,s68k_cycles) \
-{ \
- SekRunM68k(m68k_cycles); \
- RUN_SH2S \
-}
-#else
-#define CPUS_RUN(m68k_cycles,s68k_cycles) \
-{ \
- if ((PicoOpt&POPT_EN_MCD_PSYNC) && (Pico_mcd->m.busreq&3) == 1) { \
- SekRunPS(m68k_cycles, s68k_cycles); /* "better/perfect sync" */ \
- } else { \
- SekRunM68k(m68k_cycles); \
- if ((Pico_mcd->m.busreq&3) == 1) /* no busreq/no reset */ \
- SekRunS68k(s68k_cycles); \
- } \
-}
+static __inline void SekRunM68k(int cyc)
+{
+ int cyc_do;
+ pprof_start(m68k);
+ pevt_log_m68k_o(EVT_RUN_START);
+
+ SekCycleAim+=cyc;
+ if ((cyc_do=SekCycleAim-SekCycleCnt) <= 0)
+ goto out;
+
+#if defined(EMU_CORE_DEBUG)
+ // this means we do run-compare
+ SekCycleCnt+=CM_compareRun(cyc_do, 0);
+#elif defined(EMU_C68K)
+ PicoCpuCM68k.cycles=cyc_do;
+ CycloneRun(&PicoCpuCM68k);
+ SekCycleCnt+=cyc_do-PicoCpuCM68k.cycles;
+#elif defined(EMU_M68K)
+ SekCycleCnt+=m68k_execute(cyc_do);
+#elif defined(EMU_F68K)
+ SekCycleCnt+=fm68k_emulate(cyc_do, 0, 0);