[Core/MCD] improved Sub-CPU synchronization with Main-CPU (fixes "Soul Star")

This commit is contained in:
EkeEke 2013-10-21 00:20:28 +02:00
parent 14d4074f11
commit 2fe81791ef

View File

@ -498,6 +498,15 @@ unsigned int ctrl_io_read_word(unsigned int address)
/* default registers */ /* default registers */
if (index < 0x30) if (index < 0x30)
{ {
/* relative SUB-CPU cycle counter */
unsigned int cycles = (m68k.cycles * SCYCLES_PER_LINE) / MCYCLES_PER_LINE;
/* sync SUB-CPU with MAIN-CPU (Soul Star) */
if (!s68k.stopped && (s68k.cycles < cycles))
{
s68k_run(cycles);
}
/* SUB-CPU communication words */ /* SUB-CPU communication words */
if (index >= 0x20) if (index >= 0x20)
{ {