stub(qlaunch-19.0.1): handle missing service calls for stability

This commit is contained in:
Jacobwasbeast 2025-02-10 12:54:20 -06:00
parent f67cf6a87c
commit c218305bc0
21 changed files with 312 additions and 14 deletions

View File

@ -73,12 +73,14 @@ namespace Ryujinx.HLE.HOS.Services.Account.Acc
} }
[CommandCmif(51)] [CommandCmif(51)]
[CommandCmif(52)]
// TrySelectUserWithoutInteraction(bool) -> nn::account::Uid // TrySelectUserWithoutInteraction(bool) -> nn::account::Uid
public ResultCode TrySelectUserWithoutInteraction(ServiceCtx context) public ResultCode TrySelectUserWithoutInteraction(ServiceCtx context)
{ {
return _applicationServiceServer.TrySelectUserWithoutInteraction(context); return _applicationServiceServer.TrySelectUserWithoutInteraction(context);
} }
[CommandCmif(102)] [CommandCmif(102)]
// GetBaasAccountManagerForSystemService(nn::account::Uid) -> object<nn::account::baas::IManagerForApplication> // GetBaasAccountManagerForSystemService(nn::account::Uid) -> object<nn::account::baas::IManagerForApplication>
public ResultCode GetBaasAccountManagerForSystemService(ServiceCtx context) public ResultCode GetBaasAccountManagerForSystemService(ServiceCtx context)

View File

@ -106,7 +106,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService
// GetHomeMenuFunctions() -> object<nn::am::service::IHomeMenuFunctions> // GetHomeMenuFunctions() -> object<nn::am::service::IHomeMenuFunctions>
public ResultCode GetHomeMenuFunctions(ServiceCtx context) public ResultCode GetHomeMenuFunctions(ServiceCtx context)
{ {
MakeObject(context, new IHomeMenuFunctions(context.Device.System)); MakeObject(context, new IHomeMenuFunctions(context.Device.System, _pid));
return ResultCode.Success; return ResultCode.Success;
} }

View File

@ -69,7 +69,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService
// GetHomeMenuFunctions() -> object<nn::am::service::IHomeMenuFunctions> // GetHomeMenuFunctions() -> object<nn::am::service::IHomeMenuFunctions>
public ResultCode GetHomeMenuFunctions(ServiceCtx context) public ResultCode GetHomeMenuFunctions(ServiceCtx context)
{ {
MakeObject(context, new IHomeMenuFunctions(context.Device.System)); MakeObject(context, new IHomeMenuFunctions(context.Device.System, _pid));
return ResultCode.Success; return ResultCode.Success;
} }
@ -87,7 +87,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService
// GetApplicationCreator() -> object<nn::am::service::IApplicationCreator> // GetApplicationCreator() -> object<nn::am::service::IApplicationCreator>
public ResultCode GetApplicationCreator(ServiceCtx context) public ResultCode GetApplicationCreator(ServiceCtx context)
{ {
MakeObject(context, new IApplicationCreator(context.Device.Processes.ActiveApplication.ProcessId)); MakeObject(context, new IApplicationCreator(_pid));
return ResultCode.Success; return ResultCode.Success;
} }

View File

@ -6,6 +6,15 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
{ {
public IAppletCommonFunctions() { } public IAppletCommonFunctions() { }
[CommandCmif(51)]
// GetHomeButtonDoubleClickEnabled() -> bool
public ResultCode GetHomeButtonDoubleClickEnabled(ServiceCtx context)
{
context.ResponseData.Write(true);
Logger.Info?.PrintStub(LogClass.ServiceAm);
return ResultCode.Success;
}
[CommandCmif(70)] [CommandCmif(70)]
// SetCpuBoostRequestPriority(s32) -> void // SetCpuBoostRequestPriority(s32) -> void
public ResultCode SetCpuBoostRequestPriority(ServiceCtx context) public ResultCode SetCpuBoostRequestPriority(ServiceCtx context)

View File

@ -169,9 +169,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
public ResultCode GetNsRightsEnvironmentHandle(ServiceCtx context) public ResultCode GetNsRightsEnvironmentHandle(ServiceCtx context)
{ {
Logger.Stub?.PrintStub(LogClass.ServiceAm); Logger.Stub?.PrintStub(LogClass.ServiceAm);
KEvent eventObj = new KEvent(_kernelContext); context.ResponseData.Write(0xdeadbeef);
context.Process.HandleTable.GenerateHandle(eventObj.ReadableEvent, out int handle);
context.ResponseData.Write(handle);
return ResultCode.Success; return ResultCode.Success;
} }
} }

View File

@ -325,6 +325,15 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
return (ResultCode)_apmSystemManagerServer.GetCurrentPerformanceConfiguration(context); return (ResultCode)_apmSystemManagerServer.GetCurrentPerformanceConfiguration(context);
} }
[CommandCmif(200)]
// GetOperationModeSystemInfo() -> u32
public ResultCode GetOperationModeSystemInfo(ServiceCtx context)
{
context.ResponseData.Write(0);
Logger.Stub?.PrintStub(LogClass.ServiceAm);
return ResultCode.Success;
}
[CommandCmif(300)] // 9.0.0+ [CommandCmif(300)] // 9.0.0+
// GetSettingsPlatformRegion() -> u8 // GetSettingsPlatformRegion() -> u8
public ResultCode GetSettingsPlatformRegion(ServiceCtx context) public ResultCode GetSettingsPlatformRegion(ServiceCtx context)

View File

@ -103,6 +103,17 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(20)]
// ClearCaptureBuffer(u8, s32, u32)
public ResultCode ClearCaptureBuffer(ServiceCtx context)
{
byte unknown1 = context.RequestData.ReadByte();
int captureSharedBuffer = context.RequestData.ReadInt32();
uint color = context.RequestData.ReadUInt32();
Logger.Stub?.PrintStub(LogClass.ServiceAm, new { unknown1, captureSharedBuffer });
return ResultCode.Success;
}
[CommandCmif(22)] [CommandCmif(22)]
// AcquireLastApplicationCaptureSharedBuffer() -> (b8, u32) // AcquireLastApplicationCaptureSharedBuffer() -> (b8, u32)
public ResultCode AcquireLastApplicationCaptureSharedBuffer(ServiceCtx context) public ResultCode AcquireLastApplicationCaptureSharedBuffer(ServiceCtx context)
@ -113,6 +124,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(24)]
[CommandCmif(26)] [CommandCmif(26)]
// AcquireCallerAppletCaptureSharedBuffer() -> (b8, u32) // AcquireCallerAppletCaptureSharedBuffer() -> (b8, u32)

View File

@ -8,16 +8,20 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
{ {
class IHomeMenuFunctions : IpcService class IHomeMenuFunctions : IpcService
{ {
private ulong _pid;
private int _channelEventHandle; private int _channelEventHandle;
public IHomeMenuFunctions(Horizon system) { } public IHomeMenuFunctions(Horizon system, ulong pid)
{
_pid = pid;
}
[CommandCmif(10)] [CommandCmif(10)]
// RequestToGetForeground() // RequestToGetForeground()
public ResultCode RequestToGetForeground(ServiceCtx context) public ResultCode RequestToGetForeground(ServiceCtx context)
{ {
Logger.Stub?.PrintStub(LogClass.ServiceAm); Logger.Stub?.PrintStub(LogClass.ServiceAm);
context.Device.System.WindowSystem.RequestApplicationToGetForeground(context.Process.Pid); context.Device.System.WindowSystem.RequestApplicationToGetForeground(_pid);
return ResultCode.Success; return ResultCode.Success;
} }

View File

@ -1,7 +1,31 @@
namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy using Ryujinx.Common.Logging;
namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.SystemAppletProxy
{ {
class IRemoteStorageController : IpcService class IRemoteStorageController : IpcService
{ {
[CommandCmif(14)]
// GetDataNewnessByApplicationId()
public ResultCode GetAutonomyTaskStatus(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceAm);
return ResultCode.Success;
}
[CommandCmif(18)] // [7.0.0+]
// GetDataInfo()
public ResultCode GetDataInfo(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceAm);
return ResultCode.Success;
}
[CommandCmif(22)] // [11.0.0+]
// GetLoadedDataInfo()
public ResultCode GetLoadedDataInfo(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceAm);
return ResultCode.Success;
}
} }
} }

View File

@ -77,5 +77,21 @@ namespace Ryujinx.HLE.HOS.Services.BluetoothManager.BtmSystem
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(14)] // [13.0.0+]
// AcquireAudioDeviceConnectionEvent() -> handle<copy>
public ResultCode AcquireAudioDeviceConnectionEvent(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceBtm);
return ResultCode.Success;
}
[CommandCmif(20)] // [13.0.0+]
// GetPairedAudioDevices()
public ResultCode GetPairedAudioDevices(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceBtm);
return ResultCode.Success;
}
} }
} }

View File

@ -120,6 +120,14 @@ namespace Ryujinx.HLE.HOS.Services.Hid
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(161)] // [7.0.0+]
// GetPlatformConfig()
public ResultCode GetPlatformConfig(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceHid);
return ResultCode.Success;
}
[CommandCmif(301)] [CommandCmif(301)]
// ActivateNpadSystem(u32) // ActivateNpadSystem(u32)
public ResultCode ActivateNpadSystem(ServiceCtx context) public ResultCode ActivateNpadSystem(ServiceCtx context)
@ -196,6 +204,22 @@ namespace Ryujinx.HLE.HOS.Services.Hid
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(514)]
// SendVibrationNotificationPattern()
public ResultCode SendVibrationNotificationPattern(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceHid);
return ResultCode.Success;
}
[CommandCmif(523)]
// IsJoyConRailEnabled() -> bool
public ResultCode IsJoyConRailEnabled(ServiceCtx context)
{
context.ResponseData.Write(true);
return ResultCode.Success;
}
[CommandCmif(525)] [CommandCmif(525)]
// IsJoyConAttachedOnAllRail() -> bool // IsJoyConAttachedOnAllRail() -> bool
public ResultCode IsJoyConAttachedOnAllRail(ServiceCtx context) public ResultCode IsJoyConAttachedOnAllRail(ServiceCtx context)

View File

@ -32,5 +32,21 @@ namespace Ryujinx.HLE.HOS.Services.News
Logger.Stub?.PrintStub(LogClass.Service); Logger.Stub?.PrintStub(LogClass.Service);
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(4)]
// UpdateIntegerValueWithAddition
public ResultCode UpdateIntegerValueWithAddition(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.Service);
return ResultCode.Success;
}
[CommandCmif(1000)]
// GetListEx(unknown<4>, buffer<unknown, 9>, buffer<unknown, 9>) -> (unknown<4>, buffer<unknown, 6>)
public ResultCode GetListEx(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.Service);
return ResultCode.Success;
}
} }
} }

View File

@ -26,5 +26,13 @@ namespace Ryujinx.HLE.HOS.Services.News
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(40101)]
// RequestAutoSubscription()
public ResultCode RequestAutoSubscription(ServiceCtx context)
{
// TODO: Implement this properly
Logger.Stub?.PrintStub(LogClass.Service);
return ResultCode.Success;
}
} }
} }

View File

@ -337,6 +337,14 @@ namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(36)] // [4.0.0+]
// GetCurrentAccessPoint()
public ResultCode GetCurrentAccessPoint(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceNifm);
return ResultCode.Success;
}
private (IPInterfaceProperties, UnicastIPAddressInformation) GetLocalInterface(ServiceCtx context) private (IPInterfaceProperties, UnicastIPAddressInformation) GetLocalInterface(ServiceCtx context)
{ {
if (!NetworkInterface.GetIsNetworkAvailable()) if (!NetworkInterface.GetIsNetworkAvailable())

View File

@ -134,6 +134,15 @@ namespace Ryujinx.HLE.HOS.Services.Ns
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(38)]
// CheckApplicationLaunchVersion(u64)
public ResultCode CheckApplicationLaunchVersion(ServiceCtx context)
{
ulong applicationId = context.RequestData.ReadUInt64();
Logger.Stub?.PrintStub(LogClass.ServiceNs, new { applicationId });
return ResultCode.Success;
}
[CommandCmif(44)] [CommandCmif(44)]
// GetSdCardMountStatusChangedEvent() -> handle<copy> // GetSdCardMountStatusChangedEvent() -> handle<copy>
public ResultCode GetSdCardMountStatusChangedEvent(ServiceCtx context) public ResultCode GetSdCardMountStatusChangedEvent(ServiceCtx context)
@ -294,6 +303,24 @@ namespace Ryujinx.HLE.HOS.Services.Ns
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(906)]
// IsApplicationUpdateRequested() -> bool
public ResultCode IsApplicationUpdateRequested(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceNs);
context.ResponseData.Write(false);
return ResultCode.Success;
}
[CommandCmif(1300)]
// IsAnyApplicationEntityInstalled() -> bool
public ResultCode IsAnyApplicationEntityInstalled(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceNs);
context.ResponseData.Write(true);
return ResultCode.Success;
}
[CommandCmif(1701)] [CommandCmif(1701)]
// GetApplicationView(buffer<unknown, 5>) -> buffer<unknown, 6> // GetApplicationView(buffer<unknown, 5>) -> buffer<unknown, 6>
public ResultCode GetApplicationView(ServiceCtx context) public ResultCode GetApplicationView(ServiceCtx context)
@ -332,6 +359,7 @@ namespace Ryujinx.HLE.HOS.Services.Ns
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(1704)] [CommandCmif(1704)]
// GetApplicationView(buffer<unknown, 5>) -> buffer<unknown, 6> // GetApplicationView(buffer<unknown, 5>) -> buffer<unknown, 6>
public ResultCode GetApplicationViewWithPromotionInfo(ServiceCtx context) public ResultCode GetApplicationViewWithPromotionInfo(ServiceCtx context)
@ -380,5 +408,13 @@ namespace Ryujinx.HLE.HOS.Services.Ns
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(2050)]
// GetApplicationRightsOnClient()
public ResultCode GetApplicationRightsOnClient(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceNs);
return ResultCode.Success;
}
} }
} }

View File

@ -1,19 +1,33 @@
namespace Ryujinx.HLE.HOS.Services.Ns using Ryujinx.Common.Logging;
namespace Ryujinx.HLE.HOS.Services.Ns
{ {
class IDynamicRightsInterface : IpcService class IDynamicRightsInterface : IpcService
{ {
[CommandCmif(5)] [CommandCmif(5)]
// VerifyActivatedRightsOwners(u64) // VerifyActivatedRightsOwners(u64)
public ResultCode VerifyActivatedRightsOwners(ServiceCtx context) => ResultCode.Success; public ResultCode VerifyActivatedRightsOwners(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceNs);
return ResultCode.Success;
}
[CommandCmif(13)] [CommandCmif(13)]
// GetRunningApplicationStatus() -> nn::ns::RunningApplicationStatus // GetRunningApplicationStatus() -> nn::ns::RunningApplicationStatus
public ResultCode GetRunningApplicationStatus(ServiceCtx context) public ResultCode GetRunningApplicationStatus(ServiceCtx context)
{ {
Logger.Stub?.PrintStub(LogClass.ServiceNs);
context.ResponseData.Write(0); context.ResponseData.Write(0);
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(18)]
// NotifyApplicationRightsCheckStart()
public ResultCode NotifyApplicationRightsCheckStart(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceNs);
return ResultCode.Success;
}
} }
} }

View File

@ -1,7 +1,39 @@
namespace Ryujinx.HLE.HOS.Services.Olsc using Ryujinx.Common.Logging;
namespace Ryujinx.HLE.HOS.Services.Olsc
{ {
class IDaemonController : IpcService class IDaemonController : IpcService
{ {
[CommandCmif(0)]
// GetApplicationAutoTransferSetting()
public ResultCode GetApplicationAutoTransferSetting(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceOlsc);
return ResultCode.Success;
}
[CommandCmif(2)]
// GetGlobalAutoUploadSetting()
public ResultCode GetGlobalAutoUploadSetting(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceOlsc);
return ResultCode.Success;
}
[CommandCmif(5)] // [11.0.0+]
// GetGlobalAutoDownloadSetting()
public ResultCode GetGlobalAutoUploadOrDownloadSetting(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceOlsc);
return ResultCode.Success;
}
[CommandCmif(12)]
// GetAutonomyTaskStatus()
public ResultCode GetAutonomyTaskStatus(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceOlsc);
return ResultCode.Success;
}
} }
} }

View File

@ -17,6 +17,14 @@ namespace Ryujinx.HLE.HOS.Services.Olsc.OlscServiceForSystemService
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(8)]
// StopNextTransferTaskExecution()
public ResultCode StopNextTransferTaskExecution(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceOlsc);
return ResultCode.Success;
}
[CommandCmif(9)] [CommandCmif(9)]
// GetNativeHandleHolderEx() -> object<nn::olsc::srv::INativeHandleHolder> // GetNativeHandleHolderEx() -> object<nn::olsc::srv::INativeHandleHolder>
public ResultCode GetNativeHandleHolderEx(ServiceCtx context) public ResultCode GetNativeHandleHolderEx(ServiceCtx context)
@ -27,5 +35,21 @@ namespace Ryujinx.HLE.HOS.Services.Olsc.OlscServiceForSystemService
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(24)]
// GetCurrentTransferTaskInfo()
public ResultCode GetCurrentTransferTaskInfo(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceOlsc);
return ResultCode.Success;
}
[CommandCmif(25)]
// FindTransferTaskInfo()
public ResultCode FindTransferTaskInfo(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceOlsc);
return ResultCode.Success;
}
} }
} }

View File

@ -113,6 +113,14 @@ namespace Ryujinx.HLE.HOS.Services.Pctl.ParentalControlServiceFactory
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(1002)]
// ConfirmLaunchApplicationPermission()
public ResultCode ConfirmLaunchApplicationPermission(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServicePctl);
return ResultCode.Success;
}
[CommandCmif(1006)] [CommandCmif(1006)]
// IsRestrictionTemporaryUnlocked() -> b8 // IsRestrictionTemporaryUnlocked() -> b8
public ResultCode IsRestrictionTemporaryUnlocked(ServiceCtx context) public ResultCode IsRestrictionTemporaryUnlocked(ServiceCtx context)

View File

@ -496,6 +496,16 @@ namespace Ryujinx.HLE.HOS.Services.Settings
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(120)] // [3.0.0+]
// GetPushNotificationActivityModeOnSleep()
public ResultCode GetPushNotificationActivityModeOnSleep(ServiceCtx context)
{
context.ResponseData.Write(false);
Logger.Stub?.PrintStub(LogClass.ServiceSet);
return ResultCode.Success;
}
[CommandCmif(124)] [CommandCmif(124)]
// GetErrorReportSharePermission() -> s32 // GetErrorReportSharePermission() -> s32
public ResultCode GetErrorReportSharePermission(ServiceCtx context) public ResultCode GetErrorReportSharePermission(ServiceCtx context)
@ -552,6 +562,14 @@ namespace Ryujinx.HLE.HOS.Services.Settings
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(203)]
// GetPanelCrcMode()
public ResultCode GetPanelCrcMode(ServiceCtx context)
{
Logger.Stub?.PrintStub(LogClass.ServiceSet);
return ResultCode.Success;
}
public byte[] GetFirmwareData(Switch device) public byte[] GetFirmwareData(Switch device)
{ {
const ulong SystemVersionTitleId = 0x0100000000000809; const ulong SystemVersionTitleId = 0x0100000000000809;

View File

@ -10,6 +10,15 @@ namespace Ryujinx.Horizon.Lbl.Ipc
private bool _vrModeEnabled; private bool _vrModeEnabled;
private float _currentBrightnessSettingForVrMode; private float _currentBrightnessSettingForVrMode;
[CmifCommand(0)]
// SaveCurrentSetting()
public Result SaveCurrentSetting()
{
Logger.Stub?.PrintStub(LogClass.ServiceLbl);
return Result.Success;
}
[CmifCommand(1)] [CmifCommand(1)]
// LoadCurrentSetting() // LoadCurrentSetting()
public Result LoadCurrentSetting() public Result LoadCurrentSetting()
@ -19,6 +28,24 @@ namespace Ryujinx.Horizon.Lbl.Ipc
return Result.Success; return Result.Success;
} }
[CmifCommand(3)]
// GetCurrentBrightnessSetting()
public Result GetCurrentBrightnessSetting()
{
Logger.Stub?.PrintStub(LogClass.ServiceLbl);
return Result.Success;
}
[CmifCommand(14)]
// IsAutoBrightnessControlEnabled()
public Result IsAutoBrightnessControlEnabled()
{
Logger.Stub?.PrintStub(LogClass.ServiceLbl);
return Result.Success;
}
[CmifCommand(17)] [CmifCommand(17)]
public Result SetBrightnessReflectionDelayLevel(float unknown0, float unknown1) public Result SetBrightnessReflectionDelayLevel(float unknown0, float unknown1)
{ {
@ -136,5 +163,14 @@ namespace Ryujinx.Horizon.Lbl.Ipc
return Result.Success; return Result.Success;
} }
[CmifCommand(29)]
// IsAutoBrightnessControlSupported()
public Result IsAutoBrightnessControlSupported()
{
Logger.Stub?.PrintStub(LogClass.ServiceLbl);
return Result.Success;
}
} }
} }