DSP: Add address mask for physical pointers to audio data buffers
Hardware testing indicated that FFFFFFFC is the correct mask for all audio formats (mono and stereo PCM8, mono and stereo PCM16, and ADPCM). This fixes broken audio in Luigi's Mansion: Dark Moon and a few other games.
This commit is contained in:
parent
11bc9028bb
commit
3aff585f32
|
@ -284,7 +284,7 @@ bool Source::DequeueBuffer() {
|
||||||
state.adpcm_state.yn2 = buf.adpcm_yn[1];
|
state.adpcm_state.yn2 = buf.adpcm_yn[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
const u8* const memory = Memory::GetPhysicalPointer(buf.physical_address);
|
const u8* const memory = Memory::GetPhysicalPointer(buf.physical_address & 0xFFFFFFFC);
|
||||||
if (memory) {
|
if (memory) {
|
||||||
const unsigned num_channels = buf.mono_or_stereo == MonoOrStereo::Stereo ? 2 : 1;
|
const unsigned num_channels = buf.mono_or_stereo == MonoOrStereo::Stereo ? 2 : 1;
|
||||||
switch (buf.format) {
|
switch (buf.format) {
|
||||||
|
|
Reference in New Issue