aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Guillemard <thog@protonmail.com>2018-08-21 18:05:12 +0200
committergdkchan <gab.dark.100@gmail.com>2018-08-21 13:05:12 -0300
commitb08d889f952b76145e38427f13736824cd8b6f06 (patch)
treede02bb9fbe1faf13466dc249b98703fca3d41819
parentafc44850be37f57d96e981925229964771a3e9e0 (diff)
SvcSetHeapSize: match kernel check for invalid size (#374)
This fix games like DK Country
-rw-r--r--Ryujinx.HLE/HOS/Kernel/SvcMemory.cs6
1 files changed, 3 insertions, 3 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/SvcMemory.cs b/Ryujinx.HLE/HOS/Kernel/SvcMemory.cs
index b9bca74a..b9e71b18 100644
--- a/Ryujinx.HLE/HOS/Kernel/SvcMemory.cs
+++ b/Ryujinx.HLE/HOS/Kernel/SvcMemory.cs
@@ -9,9 +9,9 @@ namespace Ryujinx.HLE.HOS.Kernel
{
private void SvcSetHeapSize(AThreadState ThreadState)
{
- long Size = (long)ThreadState.X1;
+ ulong Size = ThreadState.X1;
- if ((Size & 0x1fffff) != 0 || Size != (uint)Size)
+ if ((Size & 0xFFFFFFFE001FFFFF) != 0)
{
Device.Log.PrintWarning(LogClass.KernelSvc, $"Heap size 0x{Size:x16} is not aligned!");
@@ -20,7 +20,7 @@ namespace Ryujinx.HLE.HOS.Kernel
return;
}
- long Result = Process.MemoryManager.TrySetHeapSize(Size, out long Position);
+ long Result = Process.MemoryManager.TrySetHeapSize((long)Size, out long Position);
ThreadState.X0 = (ulong)Result;