Amadeus: Fix multi-channel PCM sources on REV8 (#1536)
This add a missing offset on the output buffer of the DataSourceVersion2Command. This fix music only playing on the left channel on Fairy Tail, Family Mysteries: Poisonous Promises, SEGA AGES Sonic the Hedgehog 2 and probably more.
This commit is contained in:
parent
e7d09a8080
commit
6aef271661
2 changed files with 3 additions and 1 deletions
|
@ -63,7 +63,7 @@ namespace Ryujinx.Audio.Renderer.Dsp.Command
|
||||||
SrcQuality = serverState.SrcQuality;
|
SrcQuality = serverState.SrcQuality;
|
||||||
CommandType = GetCommandTypeBySampleFormat(SampleFormat);
|
CommandType = GetCommandTypeBySampleFormat(SampleFormat);
|
||||||
|
|
||||||
OutputBufferIndex = outputBufferIndex;
|
OutputBufferIndex = (ushort)(channelIndex + outputBufferIndex);
|
||||||
SampleRate = serverState.SampleRate;
|
SampleRate = serverState.SampleRate;
|
||||||
Pitch = serverState.Pitch;
|
Pitch = serverState.Pitch;
|
||||||
|
|
||||||
|
|
|
@ -107,6 +107,8 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
|
|
||||||
if (!voiceState.WasPlaying)
|
if (!voiceState.WasPlaying)
|
||||||
{
|
{
|
||||||
|
Debug.Assert(voiceState.SampleFormat != SampleFormat.Adpcm || channelIndex == 0);
|
||||||
|
|
||||||
if (_rendererContext.BehaviourContext.IsWaveBufferVersion2Supported())
|
if (_rendererContext.BehaviourContext.IsWaveBufferVersion2Supported())
|
||||||
{
|
{
|
||||||
_commandBuffer.GenerateDataSourceVersion2(ref voiceState,
|
_commandBuffer.GenerateDataSourceVersion2(ref voiceState,
|
||||||
|
|
Reference in a new issue