summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-01-09 01:51:21 +0000
committerSND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-01-09 01:51:21 +0000
commit7a8afe38dd2b25fa6045a60c87b588af5def659e (patch)
tree697e1dbba4ab3ebf4b5e1c573f91ca460498c4e8 /plugins
parentf5df9147d46216814d91b0b902307329833ae5c2 (diff)
downloadpcsxr-7a8afe38dd2b25fa6045a60c87b588af5def659e.tar.gz
spu: don't subtract cycles on bIRQReturn
this was causing underflows, because no samples were generated, but cycles were used up, breaking FMVs (Chrono Cross intro FMV). git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@82138 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'plugins')
-rwxr-xr-xplugins/dfsound/spu.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/plugins/dfsound/spu.c b/plugins/dfsound/spu.c
index c19be6e9..5f5ecf11 100755
--- a/plugins/dfsound/spu.c
+++ b/plugins/dfsound/spu.c
@@ -1125,8 +1125,6 @@ void CALLBACK SPUasync(unsigned long cycle)
iSpuAsyncWait++;
if(iSpuAsyncWait<=64) return;
iSpuAsyncWait=0;
-
- cpu_cycles = cycle;
}
#ifdef _WINDOWS
@@ -1155,7 +1153,9 @@ void CALLBACK SPUasync(unsigned long cycle)
MAINThread(0); // -> linux high-compat mode
#endif
- cpu_cycles -= CPU_CLOCK / 44100 * NSSIZE;
+ if (iSpuAsyncWait)
+ break;
+ cpu_cycles -= CPU_CLOCK / 44100 * NSSIZE;
}
}
}