SPU2-X: Fixed Core1 writeback areas; probably fixes quite a few things.

Details: (0x1800 to 0x1fff were being mis-written to 0x2000->0x2800, roughly).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3206 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2010-06-13 01:54:59 +00:00
parent c9dc18053f
commit f752038f65
1 changed files with 6 additions and 6 deletions

View File

@ -596,8 +596,8 @@ static __forceinline StereoOut32 MixVoice( uint coreidx, uint voiceidx )
}
// Write-back of raw voice data (some zeros since the voice is "dead")
if (voiceidx==1) spu2M_WriteFast( 0x400 + (coreidx<<12) + OutPos, 0 );
else if (voiceidx==3) spu2M_WriteFast( 0x600 + (coreidx<<12) + OutPos, 0 );
if (voiceidx==1) spu2M_WriteFast( ( (0==coreidx) ? 0x400 : 0xc00 ) + OutPos, 0 );
else if (voiceidx==3) spu2M_WriteFast( ( (0==coreidx) ? 0x600 : 0xe00 ) + OutPos, 0 );
return StereoOut32( 0, 0 );
}
@ -630,10 +630,10 @@ StereoOut32 V_Core::Mix( const VoiceMixSet& inVoices, const StereoOut32& Input,
const VoiceMixSet Voices( clamp_mix( inVoices.Dry ), clamp_mix( inVoices.Wet ) );
// Write Mixed results To Output Area
spu2M_WriteFast( 0x1000 + (Index<<12) + OutPos, Voices.Dry.Left );
spu2M_WriteFast( 0x1200 + (Index<<12) + OutPos, Voices.Dry.Right );
spu2M_WriteFast( 0x1400 + (Index<<12) + OutPos, Voices.Wet.Left );
spu2M_WriteFast( 0x1600 + (Index<<12) + OutPos, Voices.Wet.Right );
spu2M_WriteFast( ( (0==Index) ? 0x1000 : 0x1800 ) + OutPos, Voices.Dry.Left );
spu2M_WriteFast( ( (0==Index) ? 0x1200 : 0x1A00 ) + OutPos, Voices.Dry.Right );
spu2M_WriteFast( ( (0==Index) ? 0x1400 : 0x1C00 ) + OutPos, Voices.Wet.Left );
spu2M_WriteFast( ( (0==Index) ? 0x1600 : 0x1E00 ) + OutPos, Voices.Wet.Right );
// Write mixed results to logfile (if enabled)