From 473cfffa0c03dd0bb2a2f579fb0220f75423c61e Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Sun, 15 Nov 2020 21:54:07 +1000 Subject: [PATCH] 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. --- src/core/gpu.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/gpu.cpp b/src/core/gpu.cpp index f02d9b0b6..a2fe8957b 100644 --- a/src/core/gpu.cpp +++ b/src/core/gpu.cpp @@ -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: