diff --git a/core/cd_hw/cdc.c b/core/cd_hw/cdc.c index 4936233..fb30e53 100644 --- a/core/cd_hw/cdc.c +++ b/core/cd_hw/cdc.c @@ -444,8 +444,11 @@ void cdc_dma_update(unsigned int cycles) /* SUB-CPU idle on register $04 polling ? */ if (s68k.stopped & (1<<0x04)) { - /* sync SUB-CPU with CDC DMA */ - s68k.cycles = cdc.cycles[0]; + /* sync SUB-CPU with CDC DMA (only if not already ahead) */ + if (s68k.cycles < cdc.cycles[0]) + { + s68k.cycles = cdc.cycles[0]; + } /* restart SUB-CPU */ s68k.stopped = 0;