From 32d1653af97cbd6ec6ac0b333b6349b99eade02a Mon Sep 17 00:00:00 2001 From: KeatonTheBot Date: Thu, 4 Dec 2025 20:13:42 -0600 Subject: [PATCH] Fix heap size for kernel check and DRAM selections --- .../HOS/Kernel/Memory/KPageTableBase.cs | 18 +++++++++--------- .../HOS/Kernel/SupervisorCall/Syscall.cs | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableBase.cs b/src/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableBase.cs index 432f4afa9..f633fa1f4 100644 --- a/src/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableBase.cs +++ b/src/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableBase.cs @@ -198,9 +198,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory aliasRegion.Size = 0x180000000; heapRegion.Size = memConfig switch { MemoryConfiguration.MemoryConfiguration6GiB => 0x180000000u, - MemoryConfiguration.MemoryConfiguration8GiB - or MemoryConfiguration.MemoryConfiguration10GiB - or MemoryConfiguration.MemoryConfiguration12GiB => 0x200000000u, + MemoryConfiguration.MemoryConfiguration8GiB => 0x200000000u, + MemoryConfiguration.MemoryConfiguration10GiB => 0x280000000u, + MemoryConfiguration.MemoryConfiguration12GiB => 0x300000000u, _ => 0x100000000u }; stackRegion.Size = 0; @@ -234,9 +234,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory aliasRegion.Size = 1UL << (addressSpaceWidth - 3); heapRegion.Size = memConfig switch { MemoryConfiguration.MemoryConfiguration6GiB => 0x180000000u, - MemoryConfiguration.MemoryConfiguration8GiB - or MemoryConfiguration.MemoryConfiguration10GiB - or MemoryConfiguration.MemoryConfiguration12GiB => 0x200000000u, + MemoryConfiguration.MemoryConfiguration8GiB => 0x200000000u, + MemoryConfiguration.MemoryConfiguration10GiB => 0x280000000u, + MemoryConfiguration.MemoryConfiguration12GiB => 0x300000000u, _ => 0x100000000u }; stackRegion.Size = 1UL << (addressSpaceWidth - 8); @@ -254,9 +254,9 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory aliasRegion.Size = 0x1000000000; heapRegion.Size = memConfig switch { MemoryConfiguration.MemoryConfiguration6GiB => 0x180000000u, - MemoryConfiguration.MemoryConfiguration8GiB - or MemoryConfiguration.MemoryConfiguration10GiB - or MemoryConfiguration.MemoryConfiguration12GiB => 0x200000000u, + MemoryConfiguration.MemoryConfiguration8GiB => 0x200000000u, + MemoryConfiguration.MemoryConfiguration10GiB => 0x280000000u, + MemoryConfiguration.MemoryConfiguration12GiB => 0x300000000u, _ => 0x100000000u }; stackRegion.Size = 0x80000000; diff --git a/src/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs b/src/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs index dba46bf54..4256d1c06 100644 --- a/src/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs +++ b/src/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall.cs @@ -881,7 +881,7 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall [Svc(1)] public Result SetHeapSize([PointerSized] out ulong address, [PointerSized] ulong size) { - if ((size & 0xfffffffe001fffff) != 0) + if ((size & 0xfffffffc001fffff) != 0) { address = 0;