if (Pico_mcd->scd.Status_CDC & 0x08)
Update_CDC_TRansfer(Pico_mcd->s68k_regs[4] & 7);
}
- if (Pico_mcd->pcm.update_cycles == 0)
+
+ diff = cycles - Pico_mcd->pcm.update_cycles;
+ if ((unsigned int)diff > 12500000/50)
Pico_mcd->pcm.update_cycles = cycles;
// reschedule
\r
pcd_sync_s68k(SekCyclesDone(), 0);\r
Pico_mcd->s68k_regs[a] = d;\r
- if (Pico_mcd->m.s68k_poll_a == (a & ~1)\r
- && Pico_mcd->m.s68k_poll_cnt > POLL_LIMIT)\r
+ if (Pico_mcd->m.s68k_poll_a == (a & ~1))\r
{\r
- SekSetStopS68k(0);\r
+ if (Pico_mcd->m.s68k_poll_cnt > POLL_LIMIT) {\r
+ elprintf(EL_CDPOLL, "s68k poll release, a=%02x", a);\r
+ SekSetStopS68k(0);\r
+ }\r
Pico_mcd->m.s68k_poll_a = 0;\r
- elprintf(EL_CDPOLL, "s68k poll release, a=%02x", a);\r
}\r
}\r
\r
return;\r
}\r
\r
- PicoWrite16_io(a, d);\r
+ PicoWrite8_io(a, d);\r
}\r
\r
void PicoWrite16_mcd_io(u32 a, u32 d)\r
elprintf(EL_CDREGS, "m68k_regs w16: [%02x] %04x @%06x",\r
a & 0x3f, d, SekPc);\r
\r
- m68k_reg_write8(a, d >> 8);\r
+ m68k_reg_write8(a, d >> 8);\r
if ((a & 0x3e) != 0x0e) // special case\r
m68k_reg_write8(a + 1, d & 0xff);\r
return;\r