DMA: Support delaying transfers

Fixes Syphon Filter 2/3.
This commit is contained in:
Connor McLaughlin
2019-11-15 23:27:54 +10:00
parent e02ebb1b2a
commit 30fd7a6683
3 changed files with 103 additions and 21 deletions

View File

@ -367,6 +367,9 @@ bool System::SetExpansionROM(const char* filename)
void System::Synchronize()
{
const TickCount pending_ticks = m_cpu->GetPendingTicks();
if (pending_ticks == 0)
return;
m_cpu->ResetPendingTicks();
m_cpu->ResetDowncount();
@ -378,6 +381,7 @@ void System::Synchronize()
m_pad->Execute(pending_ticks);
m_spu->Execute(pending_ticks);
m_mdec->Execute(pending_ticks);
m_dma->Execute(pending_ticks);
}
void System::SetDowncount(TickCount downcount)