SPU2: Allow loop rewrite of LOOPSTART if block header already passed

This commit is contained in:
refractionpcsx2 2023-01-03 17:03:22 +00:00
parent 06aa051162
commit c50e1800ec
2 changed files with 4 additions and 2 deletions

View File

@ -19841,6 +19841,8 @@ SLES-54549:
SLES-54550:
name: "White Van Racer"
region: "PAL-E"
gameFixes:
- InstantDMAHack # Fixes DMA timeout errors.
SLES-54551:
name: "Premier Manager 2006-2007"
region: "PAL-G"

View File

@ -1208,7 +1208,7 @@ static void RegWrite_VoiceAddr(u16 value)
case 2:
{
u32* LoopReg;
if ((Cycles - thisvoice.PlayCycle) < 4)
if ((Cycles - thisvoice.PlayCycle) < 4 && (int)(thisvoice.LoopCycle - thisvoice.PlayCycle) < 0)
{
LoopReg = &thisvoice.PendingLoopStartA;
thisvoice.PendingLoopStart = true;
@ -1226,7 +1226,7 @@ static void RegWrite_VoiceAddr(u16 value)
case 3:
{
u32* LoopReg;
if ((Cycles - thisvoice.PlayCycle) < 4)
if ((Cycles - thisvoice.PlayCycle) < 4 && (int)(thisvoice.LoopCycle - thisvoice.PlayCycle) < 0)
{
LoopReg = &thisvoice.PendingLoopStartA;
thisvoice.PendingLoopStart = true;