From 478b66fd49aa03fe7b4e78453246db4a2ab89975 Mon Sep 17 00:00:00 2001 From: sh0inx Date: Fri, 30 Jan 2026 20:48:41 -0600 Subject: [PATCH] HLE: Stubbed IUserLocalCommuniationService SetProtocol (106) (ryubing/ryujinx!253) See merge request ryubing/ryujinx!253 --- .../IUserLocalCommunicationService.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IUserLocalCommunicationService.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IUserLocalCommunicationService.cs index 62a86ad91..71d1623f3 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IUserLocalCommunicationService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/IUserLocalCommunicationService.cs @@ -5,6 +5,7 @@ using Ryujinx.Common.Logging; using Ryujinx.Common.Memory; using Ryujinx.Common.Utilities; using Ryujinx.Cpu; +using Ryujinx.HLE.Exceptions; using Ryujinx.HLE.HOS.Ipc; using Ryujinx.HLE.HOS.Kernel.Threading; using Ryujinx.HLE.HOS.Services.Ldn.Types; @@ -14,6 +15,7 @@ using Ryujinx.HLE.HOS.Services.Ldn.UserServiceCreator.Types; using Ryujinx.Horizon.Common; using Ryujinx.Memory; using System; +using System.ComponentModel; using System.IO; using System.Net; using System.Net.NetworkInformation; @@ -487,6 +489,23 @@ namespace Ryujinx.HLE.HOS.Services.Ldn.UserServiceCreator return ResultCode.Success; } + [CommandCmif(106)] // 20.0.0+ + // SetProtocol + public ResultCode SetProtocol(ServiceCtx context) + { + uint protocolValue = context.RequestData.ReadUInt32(); + + // On NX only input value 1 or 3 is allowed, with an error being thrown otherwise. + + if (protocolValue != 1 && protocolValue != 3) + { + throw new ArgumentException($"{GetType().FullName}: Protocol value is not 1 or 3!! Protocol value: {protocolValue}"); + } + + Logger.Stub?.PrintStub(LogClass.ServiceLdn, $"Protocol value: {protocolValue}"); + return ResultCode.Success; + } + [CommandCmif(200)] // OpenAccessPoint() public ResultCode OpenAccessPoint(ServiceCtx context)