mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-09-13 07:02:18 -06:00
Merge branch 'fix-TotK/BotW-launch' into 'master'
SDK20 and REV15 support See merge request [ryubing/ryujinx!50](https://git.ryujinx.app/ryubing/ryujinx/-/merge_requests/50)
This commit is contained in:
@ -50,7 +50,7 @@ namespace Ryujinx.HLE.HOS.Services.Hid.Types.SharedMemory.Common
|
|||||||
|
|
||||||
ulong value = BinaryPrimitives.ReadUInt64LittleEndian(byteSpan);
|
ulong value = BinaryPrimitives.ReadUInt64LittleEndian(byteSpan);
|
||||||
|
|
||||||
return value;
|
return value << 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int GetSamplingNumberFieldOffset<T>(ref T sampledDataStruct) where T : unmanaged, ISampledDataStruct
|
private static int GetSamplingNumberFieldOffset<T>(ref T sampledDataStruct) where T : unmanaged, ISampledDataStruct
|
||||||
|
@ -33,11 +33,13 @@ namespace Ryujinx.Horizon.Audio
|
|||||||
AudioOutManager audioOutManager = new(_managers.AudioOutputManager);
|
AudioOutManager audioOutManager = new(_managers.AudioOutputManager);
|
||||||
AudioInManager audioInManager = new(_managers.AudioInputManager);
|
AudioInManager audioInManager = new(_managers.AudioInputManager);
|
||||||
FinalOutputRecorderManager finalOutputRecorderManager = new();
|
FinalOutputRecorderManager finalOutputRecorderManager = new();
|
||||||
|
AudioSnoopManager audioSnoopManager = new();
|
||||||
|
|
||||||
_serverManager.RegisterObjectForServer(audioRendererManager, ServiceName.Encode("audren:u"), MaxSessionsCount);
|
_serverManager.RegisterObjectForServer(audioRendererManager, ServiceName.Encode("audren:u"), MaxSessionsCount);
|
||||||
_serverManager.RegisterObjectForServer(audioOutManager, ServiceName.Encode("audout:u"), MaxSessionsCount);
|
_serverManager.RegisterObjectForServer(audioOutManager, ServiceName.Encode("audout:u"), MaxSessionsCount);
|
||||||
_serverManager.RegisterObjectForServer(audioInManager, ServiceName.Encode("audin:u"), MaxSessionsCount);
|
_serverManager.RegisterObjectForServer(audioInManager, ServiceName.Encode("audin:u"), MaxSessionsCount);
|
||||||
_serverManager.RegisterObjectForServer(finalOutputRecorderManager, ServiceName.Encode("audrec:u"), MaxSessionsCount);
|
_serverManager.RegisterObjectForServer(finalOutputRecorderManager, ServiceName.Encode("audrec:u"), MaxSessionsCount);
|
||||||
|
_serverManager.RegisterObjectForServer(audioSnoopManager, ServiceName.Encode("auddev"), MaxSessionsCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ServiceRequests()
|
public void ServiceRequests()
|
||||||
|
@ -1,30 +1,64 @@
|
|||||||
using Ryujinx.Horizon.Common;
|
using Ryujinx.Horizon.Common;
|
||||||
using Ryujinx.Horizon.Sdk.Sf;
|
using Ryujinx.Horizon.Sdk.Sf;
|
||||||
|
using Ryujinx.Horizon.Sdk.Sf.Hipc;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace Ryujinx.Horizon.Sdk.Audio.Detail
|
namespace Ryujinx.Horizon.Sdk.Audio.Detail
|
||||||
{
|
{
|
||||||
partial class AudioSnoopManager : IAudioSnoopManager
|
partial class AudioSnoopManager : IAudioSnoopManager
|
||||||
{
|
{
|
||||||
|
private byte[] _dspStatisticsParameter;
|
||||||
|
|
||||||
// Note: The interface changed completely on firmware 17.0.0, this implementation is for older firmware.
|
// Note: The interface changed completely on firmware 17.0.0, this implementation is for older firmware.
|
||||||
|
|
||||||
[CmifCommand(0)]
|
[CmifCommand(0)] // [6.0.0-16.1.0]
|
||||||
public Result EnableDspUsageMeasurement()
|
public Result EnableDspUsageMeasurement()
|
||||||
{
|
{
|
||||||
return Result.Success;
|
return Result.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
[CmifCommand(1)]
|
[CmifCommand(1)] // [6.0.0-16.1.0]
|
||||||
public Result DisableDspUsageMeasurement()
|
public Result DisableDspUsageMeasurement()
|
||||||
{
|
{
|
||||||
return Result.Success;
|
return Result.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
[CmifCommand(6)]
|
[CmifCommand(6)] // [6.0.0-16.1.0]
|
||||||
public Result GetDspUsage(out uint usage)
|
public Result GetDspUsage(out uint usage)
|
||||||
{
|
{
|
||||||
usage = 0;
|
usage = 0;
|
||||||
|
|
||||||
return Result.Success;
|
return Result.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[CmifCommand(0)] // 17.0.0+
|
||||||
|
public Result GetDspStatistics(out uint statistics) => GetDspUsage(out statistics);
|
||||||
|
|
||||||
|
[CmifCommand(1)] // 20.0.0+
|
||||||
|
public Result GetAppletStateSummaries([Buffer(HipcBufferFlags.Out | HipcBufferFlags.MapAlias)] Span<byte> summaries)
|
||||||
|
{
|
||||||
|
// Since we do not have any real applets, return empty state summaries.
|
||||||
|
summaries.Clear();
|
||||||
|
|
||||||
|
return Result.Success;
|
||||||
|
}
|
||||||
|
|
||||||
|
[CmifCommand(2)] // 20.0.0+
|
||||||
|
public Result SetDspStatisticsParameter([Buffer(HipcBufferFlags.In | HipcBufferFlags.MapAlias)] ReadOnlySpan<byte> parameter)
|
||||||
|
{
|
||||||
|
_dspStatisticsParameter = null;
|
||||||
|
_dspStatisticsParameter = new byte[0x100];
|
||||||
|
parameter.CopyTo(_dspStatisticsParameter);
|
||||||
|
|
||||||
|
return Result.Success;
|
||||||
|
}
|
||||||
|
|
||||||
|
[CmifCommand(3)] // 20.0.0+
|
||||||
|
public Result GetDspStatisticsParameter([Buffer(HipcBufferFlags.Out | HipcBufferFlags.MapAlias)] Span<byte> parameter)
|
||||||
|
{
|
||||||
|
_dspStatisticsParameter.CopyTo(parameter);
|
||||||
|
|
||||||
|
return Result.Success;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using Ryujinx.Horizon.Common;
|
using Ryujinx.Horizon.Common;
|
||||||
using Ryujinx.Horizon.Sdk.Sf;
|
using Ryujinx.Horizon.Sdk.Sf;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace Ryujinx.Horizon.Sdk.Audio.Detail
|
namespace Ryujinx.Horizon.Sdk.Audio.Detail
|
||||||
{
|
{
|
||||||
@ -8,5 +9,10 @@ namespace Ryujinx.Horizon.Sdk.Audio.Detail
|
|||||||
Result EnableDspUsageMeasurement();
|
Result EnableDspUsageMeasurement();
|
||||||
Result DisableDspUsageMeasurement();
|
Result DisableDspUsageMeasurement();
|
||||||
Result GetDspUsage(out uint usage);
|
Result GetDspUsage(out uint usage);
|
||||||
|
|
||||||
|
Result GetDspStatistics(out uint statistics);
|
||||||
|
Result GetAppletStateSummaries(Span<byte> summaries);
|
||||||
|
Result SetDspStatisticsParameter(ReadOnlySpan<byte> parameter);
|
||||||
|
Result GetDspStatisticsParameter(Span<byte> parameter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user