I guess I should've tried this from the beginning. Actually, I did, but it wasn't quite the same code and rama benchmarked it instead of me. Other optimisations are irrelevant, speed is now within measuring error of r2634, I feel like an idiot.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2638 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
sudonim1 2010-02-25 07:32:55 +00:00
parent a564d4bbae
commit ea766db4ce
1 changed files with 6 additions and 4 deletions

View File

@ -554,11 +554,13 @@ static __forceinline StereoOut32 MixVoice( uint coreidx, uint voiceidx )
else
{
// Continue processing voice, even if it's "off". Or else we miss interrupts! (Fatal Frame engine died because of this.)
UpdatePitch(coreidx, voiceidx);
if ((vc.LoopFlags & 3) != 3 || vc.LoopStartA != (vc.NextA & ~7)) {
UpdatePitch(coreidx, voiceidx);
while (vc.SP > 0) {
GetNextDataDummy(thiscore, voiceidx); // Dummy is enough
vc.SP -= 16384;
while (vc.SP > 0) {
GetNextDataDummy(thiscore, voiceidx); // Dummy is enough
vc.SP -= 16384;
}
}
// Write-back of raw voice data (some zeros since the voice is "dead")