From b93fe5979a290097b3bd4cf7810e774a7e2ee834 Mon Sep 17 00:00:00 2001 From: Ac_K Date: Fri, 19 Feb 2021 20:18:13 +0100 Subject: [PATCH] nifm: Fix returned buffer size of GetClientId (#2036) This PR fix an issue introduced on last IPC rewrite PRs where some returned buffer size have to be explicit now. `GetClientId` without an explicit buffer size return some garbage to the guest and then `nifm` service crashes because of a wrong ClientId. It's fixed now. Horizon Chase Turbo and Doom regression are fixed now. (Probably some other games too) --- Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs b/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs index 1b170f4b..944186d3 100644 --- a/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs +++ b/Ryujinx.HLE/HOS/Services/Nifm/StaticService/IGeneralService.cs @@ -27,7 +27,8 @@ namespace Ryujinx.HLE.HOS.Services.Nifm.StaticService public ResultCode GetClientId(ServiceCtx context) { long position = context.Request.RecvListBuff[0].Position; - long size = context.Request.RecvListBuff[0].Size; + + context.Response.PtrBuff[0] = context.Response.PtrBuff[0].WithSize(4); context.Memory.Write((ulong)position, _generalServiceDetail.ClientId);