aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS
diff options
context:
space:
mode:
authorMary-nyan <mary@mary.zone>2022-11-28 08:28:45 +0100
committerGitHub <noreply@github.com>2022-11-28 08:28:45 +0100
commitdff138229c79483c189be6f3829ed88a5f95575d (patch)
tree2e5c37fdc4c6dcd44ad3a0a294885d8d81bed91d /Ryujinx.HLE/HOS
parent472119c8da7edaf7bf60fa75e87812e5cb16e33b (diff)
amadeus: Fixes and initial 15.0.0 support (#3908)
* amadeus: Allow OOB read of GC-ADPCM coefficients Fixes "Ninja Gaiden Sigma 2" and possibly "NINJA GAIDEN 3: Razor's Edge" * amadeus: Fix wrong variable usage in delay effect We should transform the delay line values, not the input. * amadeus: Update GroupedBiquadFilterCommand documentation * amadeus: Simplify PoolMapper alignment checks * amadeus: Update Surround delay effect matrix to REV11 * amadeus: Add drop parameter support and use 32 bits integers for estimate time Also implement accurate ExecuteAudioRendererRendering stub. * Address gdkchan's comments * Address gdkchan's other comments * Address gdkchan's comment
Diffstat (limited to 'Ryujinx.HLE/HOS')
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/AudioRenderer.cs12
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/AudioRendererServer.cs29
-rw-r--r--Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/IAudioRenderer.cs2
3 files changed, 42 insertions, 1 deletions
diff --git a/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/AudioRenderer.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/AudioRenderer.cs
index d69bde03..5b682bf8 100644
--- a/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/AudioRenderer.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/AudioRenderer.cs
@@ -16,7 +16,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRenderer
public ResultCode ExecuteAudioRendererRendering()
{
- throw new NotImplementedException();
+ return (ResultCode)_impl.ExecuteAudioRendererRendering();
}
public uint GetMixBufferCount()
@@ -108,5 +108,15 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRenderer
_impl.Dispose();
}
}
+
+ public void SetVoiceDropParameter(float voiceDropParameter)
+ {
+ _impl.SetVoiceDropParameter(voiceDropParameter);
+ }
+
+ public float GetVoiceDropParameter()
+ {
+ return _impl.GetVoiceDropParameter();
+ }
}
}
diff --git a/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/AudioRendererServer.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/AudioRendererServer.cs
index dd48a666..b2ddb697 100644
--- a/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/AudioRendererServer.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/AudioRendererServer.cs
@@ -172,6 +172,35 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRenderer
return result;
}
+ [CommandHipc(11)] // 3.0.0+
+ // ExecuteAudioRendererRendering()
+ public ResultCode ExecuteAudioRendererRendering(ServiceCtx context)
+ {
+ return _impl.ExecuteAudioRendererRendering();
+ }
+
+ [CommandHipc(12)] // 15.0.0+
+ // SetVoiceDropParameter(f32 voiceDropParameter)
+ public ResultCode SetVoiceDropParameter(ServiceCtx context)
+ {
+ float voiceDropParameter = context.RequestData.ReadSingle();
+
+ _impl.SetVoiceDropParameter(voiceDropParameter);
+
+ return ResultCode.Success;
+ }
+
+ [CommandHipc(13)] // 15.0.0+
+ // GetVoiceDropParameter() -> f32 voiceDropParameter
+ public ResultCode GetVoiceDropParameter(ServiceCtx context)
+ {
+ float voiceDropParameter = _impl.GetVoiceDropParameter();
+
+ context.ResponseData.Write(voiceDropParameter);
+
+ return ResultCode.Success;
+ }
+
protected override void Dispose(bool isDisposing)
{
if (isDisposing)
diff --git a/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/IAudioRenderer.cs b/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/IAudioRenderer.cs
index a59c94e9..404bf4c1 100644
--- a/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/IAudioRenderer.cs
+++ b/Ryujinx.HLE/HOS/Services/Audio/AudioRenderer/IAudioRenderer.cs
@@ -16,5 +16,7 @@ namespace Ryujinx.HLE.HOS.Services.Audio.AudioRenderer
void SetRenderingTimeLimit(uint percent);
uint GetRenderingTimeLimit();
ResultCode ExecuteAudioRendererRendering();
+ void SetVoiceDropParameter(float voiceDropParameter);
+ float GetVoiceDropParameter();
}
}