From ee78c1c6bc07aa1ed3b426076efd021638bbd1be Mon Sep 17 00:00:00 2001 From: Rygnus Date: Thu, 19 Jul 2018 14:25:19 +0100 Subject: [PATCH] Improve stubs --- .../OsHle/Services/Am/ISelfController.cs | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/Ryujinx.HLE/OsHle/Services/Am/ISelfController.cs b/Ryujinx.HLE/OsHle/Services/Am/ISelfController.cs index 740e299cad..6e94e249ca 100644 --- a/Ryujinx.HLE/OsHle/Services/Am/ISelfController.cs +++ b/Ryujinx.HLE/OsHle/Services/Am/ISelfController.cs @@ -12,11 +12,14 @@ namespace Ryujinx.HLE.OsHle.Services.Am public override IReadOnlyDictionary Commands => m_Commands; private KEvent LaunchableEvent; + + public bool IsExitLocked = false; public ISelfController() { m_Commands = new Dictionary() { + { 0, Exit }, { 1, LockExit }, { 2, UnlockExit }, { 9, GetLibraryAppletLaunchableEvent }, @@ -32,13 +35,33 @@ namespace Ryujinx.HLE.OsHle.Services.Am LaunchableEvent = new KEvent(); } + public long Exit(ServiceCtx Context) + { + if(IsExitLocked == false) + { + Context.Ns.Log.PrintInfo("Applet requested exit (IsExitLocked = false)"); + //Exit the applet + } + else + { + Context.Ns.Log.PrintInfo("Applet requested exit, but not allowed (IsExitLocked = true)"); + } + + Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); + return 0; + } + public long LockExit(ServiceCtx Context) { + Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); + IsExitLocked = true; return 0; } public long UnlockExit(ServiceCtx Context) { + Context.Ns.Log.PrintStub(LogClass.ServiceAm, "Stubbed."); + IsExitLocked = false; return 0; }