0
0
Fork 0

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:
Mary 2020-09-06 21:54:33 +02:00 committed by GitHub
parent e7d09a8080
commit 6aef271661
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 1 deletions

View file

@ -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;

View file

@ -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,