From d0b45244d345e86eb5200c53e70c5bf7fc145c0d Mon Sep 17 00:00:00 2001 From: Jacobwasbeast Date: Sat, 18 Jan 2025 16:46:15 -0600 Subject: [PATCH] Added working guest user --- .../PlayerSelect/PlayerSelectApplet.cs | 21 ++++++++++++++++++- src/Ryujinx/Headless/WindowBase.cs | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/Ryujinx.HLE/HOS/Applets/PlayerSelect/PlayerSelectApplet.cs b/src/Ryujinx.HLE/HOS/Applets/PlayerSelect/PlayerSelectApplet.cs index 2b426787b..e4c79e2a6 100644 --- a/src/Ryujinx.HLE/HOS/Applets/PlayerSelect/PlayerSelectApplet.cs +++ b/src/Ryujinx.HLE/HOS/Applets/PlayerSelect/PlayerSelectApplet.cs @@ -1,3 +1,4 @@ +using Ryujinx.Common; using Ryujinx.Common.Logging; using Ryujinx.Common.Memory; using Ryujinx.HLE.HOS.Services.Account.Acc; @@ -29,7 +30,15 @@ namespace Ryujinx.HLE.HOS.Applets _interactiveSession = interactiveSession; UserProfile selected = _system.Device.UIHandler.ShowPlayerSelectDialog(); - _normalSession.Push(BuildResponse(selected)); + if (selected.UserId == new UserId("00000000000000000000000000000080")) + { + _normalSession.Push(BuildGuestResponse()); + Logger.Info?.Print(LogClass.Service,$"[Player Select] Guest Selected"); + } + else + { + _normalSession.Push(BuildResponse(selected)); + } AppletStateChanged?.Invoke(this, null); _system.ReturnFocus(); @@ -48,5 +57,15 @@ namespace Ryujinx.HLE.HOS.Applets return stream.ToArray(); } + + private byte[] BuildGuestResponse() + { + using MemoryStream stream = MemoryStreamManager.Shared.GetStream(); + using BinaryWriter writer = new(stream); + + writer.Write(new byte()); + + return stream.ToArray(); + } } } diff --git a/src/Ryujinx/Headless/WindowBase.cs b/src/Ryujinx/Headless/WindowBase.cs index 6ca11f51c..4e6848449 100644 --- a/src/Ryujinx/Headless/WindowBase.cs +++ b/src/Ryujinx/Headless/WindowBase.cs @@ -576,7 +576,7 @@ namespace Ryujinx.Headless public UserProfile ShowPlayerSelectDialog() { - throw new NotImplementedException(); + return AccountSaveDataManager.GetLastUsedUser(); } } }