From 83fcd4bd1f787b5dc5bb582cc1a7a053efcedc31 Mon Sep 17 00:00:00 2001 From: refractionpcsx2 Date: Thu, 4 Nov 2021 20:13:18 +0000 Subject: [PATCH] SPU: Kind of revert last ADMA change. Clear as reading. This is a temporary measure while we run some hardware tests, the previous change broke Burnout 3's engine sounds. --- pcsx2/SPU2/ReadInput.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pcsx2/SPU2/ReadInput.cpp b/pcsx2/SPU2/ReadInput.cpp index dd4e9ff5b0..563bf13bfa 100644 --- a/pcsx2/SPU2/ReadInput.cpp +++ b/pcsx2/SPU2/ReadInput.cpp @@ -111,11 +111,17 @@ StereoOut32 V_Core::ReadInput() SetIrqCall(i); // PlayMode & 2 is Bypass Mode, so it doesn't go through the SPU - if ((AutoDMACtrl & (Index + 1)) && !(Index == 0 && (PlayMode & 2) != 0)) + if ((Index == 1) || !(Index == 0 && (PlayMode & 2) != 0)) { retval = StereoOut32( (s32)(*GetMemPtr(0x2000 + (Index << 10) + ReadIndex)), (s32)(*GetMemPtr(0x2200 + (Index << 10) + ReadIndex))); + + // Not accurate behaviour but shouldn't hurt for now, need to run some tests + // to see why Prince of Persia Warrior Within buzzes when going in to the map + // since it starts an ADMA of music, then kills ADMA, so it loops on a few ms of data. + GetMemPtr(0x2000 + (Index << 10) + ReadIndex)[0] = 0; + GetMemPtr(0x2200 + (Index << 10) + ReadIndex)[0] = 0; } #ifdef PCSX2_DEVBUILD