notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
FAME integration finished, some adjustments of CPU core stuff
[picodrive.git]
/
Pico
/
cd
/
Pico.c
diff --git
a/Pico/cd/Pico.c
b/Pico/cd/Pico.c
index
16a25da
..
2550c3d
100644
(file)
--- a/
Pico/cd/Pico.c
+++ b/
Pico/cd/Pico.c
@@
-69,8
+69,8
@@
PICO_INTERNAL int PicoResetMCD(int hard)
Reset_CD();
LC89510_Reset();
gfx_cd_reset();
Reset_CD();
LC89510_Reset();
gfx_cd_reset();
-#ifdef _ASM_CD_MEMORY_C
PicoMemResetCD(1);
PicoMemResetCD(1);
+#ifdef _ASM_CD_MEMORY_C
//PicoMemResetCDdecode(1); // don't have to call this in 2M mode
#endif
//PicoMemResetCDdecode(1); // don't have to call this in 2M mode
#endif
@@
-89,12
+89,15
@@
static __inline void SekRunM68k(int cyc)
SekCycleAim+=cyc;
if((cyc_do=SekCycleAim-SekCycleCnt) < 0) return;
#if defined(EMU_C68K)
SekCycleAim+=cyc;
if((cyc_do=SekCycleAim-SekCycleCnt) < 0) return;
#if defined(EMU_C68K)
- PicoCpu.cycles=cyc_do;
- CycloneRun(&PicoCpu);
- SekCycleCnt+=cyc_do-PicoCpu.cycles;
+ PicoCpu
CM68k
.cycles=cyc_do;
+ CycloneRun(&PicoCpu
CM68k
);
+ SekCycleCnt+=cyc_do-PicoCpu
CM68k
.cycles;
#elif defined(EMU_M68K)
#elif defined(EMU_M68K)
- m68k_set_context(&Pico
M68kCPU
);
+ m68k_set_context(&Pico
CpuMM68k
);
SekCycleCnt+=m68k_execute(cyc_do);
SekCycleCnt+=m68k_execute(cyc_do);
+#elif defined(EMU_F68K)
+ g_m68kcontext=&PicoCpuFM68k;
+ SekCycleCnt+=m68k_emulate(cyc_do);
#endif
}
#endif
}
@@
-104,12
+107,15
@@
static __inline void SekRunS68k(int cyc)
SekCycleAimS68k+=cyc;
if((cyc_do=SekCycleAimS68k-SekCycleCntS68k) < 0) return;
#if defined(EMU_C68K)
SekCycleAimS68k+=cyc;
if((cyc_do=SekCycleAimS68k-SekCycleCntS68k) < 0) return;
#if defined(EMU_C68K)
- PicoCpuS68k.cycles=cyc_do;
- CycloneRun(&PicoCpuS68k);
- SekCycleCntS68k+=cyc_do-PicoCpuS68k.cycles;
+ PicoCpu
C
S68k.cycles=cyc_do;
+ CycloneRun(&PicoCpu
C
S68k);
+ SekCycleCntS68k+=cyc_do-PicoCpu
C
S68k.cycles;
#elif defined(EMU_M68K)
#elif defined(EMU_M68K)
- m68k_set_context(&Pico
S68kCPU
);
+ m68k_set_context(&Pico
CpuMS68k
);
SekCycleCntS68k+=m68k_execute(cyc_do);
SekCycleCntS68k+=m68k_execute(cyc_do);
+#elif defined(EMU_F68K)
+ g_m68kcontext=&PicoCpuFS68k;
+ SekCycleCntS68k+=m68k_emulate(cyc_do);
#endif
}
#endif
}
@@
-122,7
+128,6
@@
void SekRunPS(int cyc_m68k, int cyc_s68k);
static __inline void SekRunPS(int cyc_m68k, int cyc_s68k)
{
int cycn, cycn_s68k, cyc_do;
static __inline void SekRunPS(int cyc_m68k, int cyc_s68k)
{
int cycn, cycn_s68k, cyc_do;
- int ex;
SekCycleAim+=cyc_m68k;
SekCycleAimS68k+=cyc_s68k;
SekCycleAim+=cyc_m68k;
SekCycleAimS68k+=cyc_s68k;
@@
-132,26
+137,31
@@
static __inline void SekRunPS(int cyc_m68k, int cyc_s68k)
/* loop 488 downto 0 in steps of PS_STEP */
for (cycn = (488<<16)-PS_STEP_M68K; cycn >= 0; cycn -= PS_STEP_M68K)
{
/* loop 488 downto 0 in steps of PS_STEP */
for (cycn = (488<<16)-PS_STEP_M68K; cycn >= 0; cycn -= PS_STEP_M68K)
{
- ex = 0;
cycn_s68k = (cycn + cycn/2 + cycn/8) >> 16;
if ((cyc_do = SekCycleAim-SekCycleCnt-(cycn>>16)) > 0) {
#if defined(EMU_C68K)
cycn_s68k = (cycn + cycn/2 + cycn/8) >> 16;
if ((cyc_do = SekCycleAim-SekCycleCnt-(cycn>>16)) > 0) {
#if defined(EMU_C68K)
- PicoCpu.cycles = cyc_do;
- CycloneRun(&PicoCpu);
- SekCycleCnt += cyc_do - PicoCpu.cycles;
+ PicoCpu
CM68k
.cycles = cyc_do;
+ CycloneRun(&PicoCpu
CM68k
);
+ SekCycleCnt += cyc_do - PicoCpu
CM68k
.cycles;
#elif defined(EMU_M68K)
#elif defined(EMU_M68K)
- m68k_set_context(&PicoM68kCPU);
- SekCycleCnt += (ex = m68k_execute(cyc_do));
+ m68k_set_context(&PicoCpuMM68k);
+ SekCycleCnt += m68k_execute(cyc_do);
+#elif defined(EMU_F68K)
+ g_m68kcontext = &PicoCpuFM68k;
+ SekCycleCnt += m68k_emulate(cyc_do);
#endif
}
if ((cyc_do = SekCycleAimS68k-SekCycleCntS68k-cycn_s68k) > 0) {
#if defined(EMU_C68K)
#endif
}
if ((cyc_do = SekCycleAimS68k-SekCycleCntS68k-cycn_s68k) > 0) {
#if defined(EMU_C68K)
- PicoCpuS68k.cycles = cyc_do;
- CycloneRun(&PicoCpuS68k);
- SekCycleCntS68k += cyc_do - PicoCpuS68k.cycles;
+ PicoCpu
C
S68k.cycles = cyc_do;
+ CycloneRun(&PicoCpu
C
S68k);
+ SekCycleCntS68k += cyc_do - PicoCpu
C
S68k.cycles;
#elif defined(EMU_M68K)
#elif defined(EMU_M68K)
- m68k_set_context(&PicoS68kCPU);
- SekCycleCntS68k += (ex = m68k_execute(cyc_do));
+ m68k_set_context(&PicoCpuMS68k);
+ SekCycleCntS68k += m68k_execute(cyc_do);
+#elif defined(EMU_F68K)
+ g_m68kcontext = &PicoCpuFS68k;
+ SekCycleCntS68k += m68k_emulate(cyc_do);
#endif
}
}
#endif
}
}