GPU: Only accept DMA writes when FIFO is empty or command incomplete

Fixes a bunch of games, including Red Asphalt, Little Princess, Vampire
Hunter D main menu when combined with tight DMA sync.
This commit is contained in:
Connor McLaughlin 2020-11-15 21:54:07 +10:00
parent df12f08ac3
commit 473cfffa0c

View file

@ -246,7 +246,7 @@ void GPU::UpdateDMARequest()
{
case BlitterState::Idle:
m_GPUSTAT.ready_to_send_vram = false;
m_GPUSTAT.ready_to_recieve_dma = (m_fifo.GetSize() < m_fifo_size);
m_GPUSTAT.ready_to_recieve_dma = (m_fifo.IsEmpty() || m_fifo.GetSize() < m_command_total_words);
break;
case BlitterState::WritingVRAM: