X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=pico%2Fcd%2Fpico.c;h=8b65f4fadb9ce4b8dcb80c05eaa89b49b61021c3;hb=80599a42dbc06f3e86a09dae9dc98dccbb84b48c;hp=733515802eac7ae29aaa837cf7afb5c6db4668ae;hpb=ef090115c8ea74938ed44e36a42e4a53d4447a9e;p=picodrive.git diff --git a/pico/cd/pico.c b/pico/cd/pico.c index 7335158..8b65f4f 100644 --- a/pico/cd/pico.c +++ b/pico/cd/pico.c @@ -45,13 +45,12 @@ PICO_INTERNAL int PicoResetMCD(void) Reset_CD(); LC89510_Reset(); gfx_cd_reset(); - PicoMemResetCD(1); #ifdef _ASM_CD_MEMORY_C //PicoMemResetCDdecode(1); // don't have to call this in 2M mode #endif // use SRam.data for RAM cart - if (PicoOpt&POPT_EN_MCD_RAMCART) { + if (PicoOpt & POPT_EN_MCD_RAMCART) { if (SRam.data == NULL) SRam.data = calloc(1, 0x12000); } @@ -212,6 +211,16 @@ static __inline void update_chips(void) #define PICO_CD +#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); \ + } \ +} #include "../pico_cmn.c"