DSP: fix PDATA reads being one off

This commit is contained in:
Arisotura
2025-06-24 01:03:14 +02:00
parent 8e163296d3
commit 8cd2d972ab

View File

@ -348,7 +348,7 @@ void DSi_DSP::PDataDMACancel()
} }
u16 DSi_DSP::PDataDMAReadMMIO() u16 DSi_DSP::PDataDMAReadMMIO()
{ {
u16 ret; u16 ret = 0; // TODO: is this actually 0, or just open bus?
if (!PDATAReadFifo.IsEmpty()) if (!PDATAReadFifo.IsEmpty())
ret = PDATAReadFifo.Read(); ret = PDATAReadFifo.Read();
@ -362,15 +362,9 @@ u16 DSi_DSP::PDataDMAReadMMIO()
for (int i = 0; i < left; ++i) for (int i = 0; i < left; ++i)
PDataDMAFetch(); PDataDMAFetch();
ret = PDATAReadFifo.Read();
}
else
{
// ah, crap
ret = 0; // TODO: is this actually 0, or just open bus?
} }
// TODO only trigger IRQ if enabled!!
if (!PDATAReadFifo.IsEmpty() || PDATAReadFifo.IsFull()) if (!PDATAReadFifo.IsEmpty() || PDATAReadFifo.IsFull())
DSi.SetIRQ(0, IRQ_DSi_DSP); DSi.SetIRQ(0, IRQ_DSi_DSP);