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