From b93fe5979a290097b3bd4cf7810e774a7e2ee834 Mon Sep 17 00:00:00 2001
From: Ac_K <Acoustik666@gmail.com>
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);