From d4bf7d3c2b870e0ff6677dc50dbcbea04396a4f9 Mon Sep 17 00:00:00 2001 From: GreemDev <1-greem@users.noreply.git.ryujinx.app> Date: Thu, 20 Mar 2025 07:57:03 +0000 Subject: [PATCH 1/2] HLE: Implement missing service calls needed for Xenoblade Chronicles X DE --- .../HOS/Services/Ssl/ISslService.cs | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs b/src/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs index 5e4a0c53b..17fde279c 100644 --- a/src/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs +++ b/src/Ryujinx.HLE/HOS/Services/Ssl/ISslService.cs @@ -9,6 +9,7 @@ using System.Runtime.InteropServices; namespace Ryujinx.HLE.HOS.Services.Ssl { [Service("ssl")] + [Service("ssl:s")] class ISslService : IpcService { // NOTE: The SSL service is used by games to connect it to various official online services, which we do not intend to support. @@ -123,5 +124,48 @@ namespace Ryujinx.HLE.HOS.Services.Ssl return ResultCode.Success; } + + [CommandCmif(100)] + // CreateContextForSystem(u64 pid, nn::ssl::sf::SslVersion, u64) + public ResultCode CreateContextForSystem(ServiceCtx context) + { + ulong pid = context.RequestData.ReadUInt64(); + SslVersion sslVersion = (SslVersion)context.RequestData.ReadUInt32(); + ulong pidPlaceholder = context.RequestData.ReadUInt64(); + + Logger.Stub?.PrintStub(LogClass.ServiceSsl, new { pid, sslVersion, pidPlaceholder }); + + return ResultCode.Success; + } + + [CommandCmif(101)] + // SetThreadCoreMask(u64 mask) + public ResultCode SetThreadCoreMask(ServiceCtx context) + { + ulong mask = context.RequestData.ReadUInt64(); + + Logger.Stub?.PrintStub(LogClass.ServiceSsl, new { mask }); + + return ResultCode.Success; + } + + [CommandCmif(102)] + // GetThreadCoreMask() -> u64 + public ResultCode GetThreadCoreMask(ServiceCtx context) + { + Logger.Stub?.PrintStub(LogClass.ServiceSsl); + + return ResultCode.Success; + } + + [CommandCmif(103)] + // VerifySignature(buffer<0x5> unknownInput1, buffer<0x5> unknownInput2, buffer<0x5> unknownInput3, buffer unknown1) + public ResultCode VerifySignature(ServiceCtx context) + { + // I would log these values like a proper stub, but I genuinely don't know how. + Logger.Stub?.PrintStub(LogClass.ServiceSsl); + + return ResultCode.Success; + } } } From e250d83e2aabc6342f58b289e271233744325aa6 Mon Sep 17 00:00:00 2001 From: Daenorth Date: Thu, 20 Mar 2025 08:26:00 +0000 Subject: [PATCH 2/2] Added Xenoblade X DE to RPC and compat list --- docs/compatibility.csv | 1 + src/Ryujinx.Common/TitleIDs.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/compatibility.csv b/docs/compatibility.csv index ccaafa283..c46a0d1e9 100644 --- a/docs/compatibility.csv +++ b/docs/compatibility.csv @@ -3375,6 +3375,7 @@ 0100E95004038000,"Xenoblade Chronicles™ 2",deadlock;amd-vendor-bug,ingame,2024-03-28 14:31:41 010074F013262000,"Xenoblade Chronicles™ 3",gpu;crash;nvdec;vulkan-backend-bug;amd-vendor-bug,ingame,2024-08-06 19:56:44 0100FF500E34A000,"Xenoblade Chronicles™ Definitive Edition",nvdec,playable,2024-05-04 20:12:41 +0100453019aa8000,"Xenoblade Chronicles: X Definitive Edition",,ingame,2025-03-20 06:51:00 010028600BA16000,"Xenon Racer",nvdec;UE4,playable,2022-08-31 22:05:30 010064200C324000,"Xenon Valkyrie+",,playable,2021-06-07 20:25:53 0100928005BD2000,"Xenoraid",,playable,2022-09-03 13:01:10 diff --git a/src/Ryujinx.Common/TitleIDs.cs b/src/Ryujinx.Common/TitleIDs.cs index 76a8a7126..3201a5c6b 100644 --- a/src/Ryujinx.Common/TitleIDs.cs +++ b/src/Ryujinx.Common/TitleIDs.cs @@ -163,6 +163,7 @@ namespace Ryujinx.Common "0100ff500e34a000", // Xenoblade Chronicles - Definitive Edition "0100e95004038000", // Xenoblade Chronicles 2 "010074f013262000", // Xenoblade Chronicles 3 + "0100453019aa8000", // Xenoblade Chronicles: X Definitive Edition //Misc Games "010056e00853a000", // A Hat in Time