From 50729041621e1a93894fe4aa0d9dbc19dc7006eb Mon Sep 17 00:00:00 2001 From: Martin Bai Date: Thu, 2 Jul 2026 20:27:02 +0000 Subject: [PATCH] Fixed boot loop of Rhythm Heaven Groove (#156) Fixed return value of GetSharedFontInOrderOfPriority to avoid being constantly rejected by the game, causing the boot loop. Reviewed-on: https://git.ryujinx.app/projects/Ryubing/pulls/156 Reviewed-by: sh0inx --- src/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs b/src/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs index 45c4ce7e1..5f78028e0 100644 --- a/src/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs +++ b/src/Ryujinx.HLE/HOS/Services/Sdb/Pl/ISharedFontManager.cs @@ -103,8 +103,12 @@ namespace Ryujinx.HLE.HOS.Services.Sdb.Pl loadedCount++; } + // The first return value is a boolean "fonts_are_loaded" flag (u8), not a count. + // Some titles (e.g. newer SDK builds) validate it strictly against 1, so writing + // the font count here (e.g. 6) makes them reject the result and spin re-opening pl:u. + context.ResponseData.Write(1); context.ResponseData.Write(loadedCount); - context.ResponseData.Write((int)SharedFontType.Count); + // context.ResponseData.Write((int)SharedFontType.Count); return ResultCode.Success; }