From 825f659e0785705c960bdd43d09a0a2c3ff04749 Mon Sep 17 00:00:00 2001 From: Starlet Date: Wed, 1 May 2019 17:29:08 -0400 Subject: [PATCH] fix some things i guess. --- Ryujinx.HLE/HOS/Services/Am/ISelfController.cs | 8 ++++++-- Ryujinx.HLE/HOS/Services/Time/IStaticService.cs | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs b/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs index a119a39c3f..12ac1d1f39 100644 --- a/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs +++ b/Ryujinx.HLE/HOS/Services/Am/ISelfController.cs @@ -1,6 +1,7 @@ using Ryujinx.Common.Logging; using Ryujinx.HLE.HOS.Ipc; using Ryujinx.HLE.HOS.Kernel.Common; +using Ryujinx.HLE.HOS.Kernel.Process; using Ryujinx.HLE.HOS.Kernel.Threading; using System; using System.Collections.Generic; @@ -42,7 +43,8 @@ namespace Ryujinx.HLE.HOS.Services.Am { 91, GetAccumulatedSuspendedTickChangedEvent } }; - _launchableEvent = new KEvent(system); + _launchableEvent = new KEvent(system); + _accumulatedSuspendedTickChangedEvent = new KEvent(system); } @@ -190,9 +192,11 @@ namespace Ryujinx.HLE.HOS.Services.Am // GetAccumulatedSuspendedTickChangedEvent() -> handle public long GetAccumulatedSuspendedTickChangedEvent(ServiceCtx context) { + KHandleTable handleTable = context.Process.HandleTable; + _accumulatedSuspendedTickChangedEvent.ReadableEvent.Signal(); - if (context.Process.HandleTable.GenerateHandle(_accumulatedSuspendedTickChangedEvent.ReadableEvent, out int handle) != KernelResult.Success) + if (handleTable.GenerateHandle(_accumulatedSuspendedTickChangedEvent.ReadableEvent, out int handle) != KernelResult.Success) { throw new InvalidOperationException("Out of handles!"); } diff --git a/Ryujinx.HLE/HOS/Services/Time/IStaticService.cs b/Ryujinx.HLE/HOS/Services/Time/IStaticService.cs index ef846b9685..87f8a10d89 100644 --- a/Ryujinx.HLE/HOS/Services/Time/IStaticService.cs +++ b/Ryujinx.HLE/HOS/Services/Time/IStaticService.cs @@ -1,5 +1,6 @@ using Ryujinx.HLE.HOS.Ipc; using Ryujinx.HLE.HOS.Kernel.Common; +using Ryujinx.HLE.HOS.Kernel.Process; using System; using System.Collections.Generic; @@ -65,7 +66,10 @@ namespace Ryujinx.HLE.HOS.Services.Time // GetSharedMemoryNativeHandle() -> handle public long GetSharedMemoryNativeHandle(ServiceCtx context) { - if (context.Process.HandleTable.GenerateHandle(context.Device.System.TimeSharedMem, out int handle) != KernelResult.Success) + Horizon system = context.Device.System; + KHandleTable handleTable = context.Process.HandleTable; + + if (handleTable.GenerateHandle(system.TimeSharedMem, out int handle) != KernelResult.Success) { throw new InvalidOperationException("Out of handles!"); }