mirror of https://github.com/PCSX2/pcsx2.git
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:
parent
a564d4bbae
commit
ea766db4ce
|
@ -554,12 +554,14 @@ static __forceinline StereoOut32 MixVoice( uint coreidx, uint voiceidx )
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Continue processing voice, even if it's "off". Or else we miss interrupts! (Fatal Frame engine died because of this.)
|
// Continue processing voice, even if it's "off". Or else we miss interrupts! (Fatal Frame engine died because of this.)
|
||||||
|
if ((vc.LoopFlags & 3) != 3 || vc.LoopStartA != (vc.NextA & ~7)) {
|
||||||
UpdatePitch(coreidx, voiceidx);
|
UpdatePitch(coreidx, voiceidx);
|
||||||
|
|
||||||
while (vc.SP > 0) {
|
while (vc.SP > 0) {
|
||||||
GetNextDataDummy(thiscore, voiceidx); // Dummy is enough
|
GetNextDataDummy(thiscore, voiceidx); // Dummy is enough
|
||||||
vc.SP -= 16384;
|
vc.SP -= 16384;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Write-back of raw voice data (some zeros since the voice is "dead")
|
// Write-back of raw voice data (some zeros since the voice is "dead")
|
||||||
if (voiceidx==1) spu2M_WriteFast( 0x400 + (coreidx<<12) + OutPos, 0 );
|
if (voiceidx==1) spu2M_WriteFast( 0x400 + (coreidx<<12) + OutPos, 0 );
|
||||||
|
|
Loading…
Reference in New Issue