From 6e8c080968a3de33166c258512bd69e08b73aa69 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Thu, 25 Apr 2019 20:03:00 +0700 Subject: [PATCH] Updates to nifm, irs and nvdrv services (#679) --- .../HOS/Services/Friend/IFriendService.cs | 18 ++++++++++++++ .../HOS/Services/Irs/IIrSensorServer.cs | 20 ++++++++++++---- Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs | 24 ++++++++++++------- 3 files changed, 50 insertions(+), 12 deletions(-) diff --git a/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs b/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs index 54d85ea5..1a60a78b 100644 --- a/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs +++ b/Ryujinx.HLE/HOS/Services/Friend/IFriendService.cs @@ -17,6 +17,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend _commands = new Dictionary { { 10101, GetFriendList }, + { 10600, DeclareOpenOnlinePlaySession }, { 10601, DeclareCloseOnlinePlaySession }, { 10610, UpdateUserPresence } }; @@ -61,6 +62,23 @@ namespace Ryujinx.HLE.HOS.Services.Friend return 0; } + // DeclareOpenOnlinePlaySession(nn::account::Uid) + public long DeclareOpenOnlinePlaySession(ServiceCtx context) + { + UInt128 uuid = new UInt128( + context.RequestData.ReadInt64(), + context.RequestData.ReadInt64()); + + if (context.Device.System.State.TryGetUser(uuid, out UserProfile profile)) + { + profile.OnlinePlayState = OpenCloseState.Open; + } + + Logger.PrintStub(LogClass.ServiceFriend, new { UserId = uuid.ToString(), profile.OnlinePlayState }); + + return 0; + } + // DeclareCloseOnlinePlaySession(nn::account::Uid) public long DeclareCloseOnlinePlaySession(ServiceCtx context) { diff --git a/Ryujinx.HLE/HOS/Services/Irs/IIrSensorServer.cs b/Ryujinx.HLE/HOS/Services/Irs/IIrSensorServer.cs index 500d5f10..f0864c58 100644 --- a/Ryujinx.HLE/HOS/Services/Irs/IIrSensorServer.cs +++ b/Ryujinx.HLE/HOS/Services/Irs/IIrSensorServer.cs @@ -20,10 +20,11 @@ namespace Ryujinx.HLE.HOS.Services.Irs { _commands = new Dictionary { - { 302, ActivateIrsensor }, - { 303, DeactivateIrsensor }, - { 304, GetIrsensorSharedMemoryHandle }, - { 311, GetNpadIrCameraHandle } + { 302, ActivateIrsensor }, + { 303, DeactivateIrsensor }, + { 304, GetIrsensorSharedMemoryHandle }, + { 311, GetNpadIrCameraHandle }, + { 319, ActivateIrsensorWithFunctionLevel } }; _irsSharedMem = irsSharedMem; @@ -103,5 +104,16 @@ namespace Ryujinx.HLE.HOS.Services.Irs default: throw new ArgumentOutOfRangeException(nameof(npadId)); } } + + // ActivateIrsensorWithFunctionLevel(nn::applet::AppletResourceUserId, nn::irsensor::PackedFunctionLevel, pid) + public long ActivateIrsensorWithFunctionLevel(ServiceCtx context) + { + long appletResourceUserId = context.RequestData.ReadInt64(); + long packedFunctionLevel = context.RequestData.ReadInt64(); + + Logger.PrintStub(LogClass.ServiceIrs, new { appletResourceUserId, packedFunctionLevel }); + + return 0; + } } } \ No newline at end of file diff --git a/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs b/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs index d93372e2..600a9667 100644 --- a/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs +++ b/Ryujinx.HLE/HOS/Services/Nv/INvDrvServices.cs @@ -42,14 +42,15 @@ namespace Ryujinx.HLE.HOS.Services.Nv { _commands = new Dictionary() { - { 0, Open }, - { 1, Ioctl }, - { 2, Close }, - { 3, Initialize }, - { 4, QueryEvent }, - { 8, SetClientPid }, - { 11, Ioctl }, - { 13, FinishInitialize } + { 0, Open }, + { 1, Ioctl }, + { 2, Close }, + { 3, Initialize }, + { 4, QueryEvent }, + { 8, SetClientPid }, + { 9, DumpGraphicsMemoryInfo }, + { 11, Ioctl }, + { 13, FinishInitialize } }; _event = new KEvent(system); @@ -148,6 +149,13 @@ namespace Ryujinx.HLE.HOS.Services.Nv return 0; } + public long DumpGraphicsMemoryInfo(ServiceCtx context) + { + Logger.PrintStub(LogClass.ServiceNv); + + return 0; + } + public long FinishInitialize(ServiceCtx context) { Logger.PrintStub(LogClass.ServiceNv);