From 540d00e097357f36b65c8dc88d03bd8197aa7aff Mon Sep 17 00:00:00 2001 From: Michael Scire Date: Sat, 15 Nov 2025 16:47:44 -0700 Subject: [PATCH] kern: 21.0.0 requires an even smaller memory pool... --- .../board/nintendo/nx/kern_k_system_control.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/libraries/libmesosphere/source/board/nintendo/nx/kern_k_system_control.cpp b/libraries/libmesosphere/source/board/nintendo/nx/kern_k_system_control.cpp index 58e86f152..f45bc89a8 100644 --- a/libraries/libmesosphere/source/board/nintendo/nx/kern_k_system_control.cpp +++ b/libraries/libmesosphere/source/board/nintendo/nx/kern_k_system_control.cpp @@ -361,10 +361,18 @@ namespace ams::kern::board::nintendo::nx { }(); /* Return (possibly) adjusted size. */ - /* NOTE: On 20.0.0+ the browser requires much more memory in the applet pool in order to function. */ + /* NOTE: On 20.0.0+ (and even more-so 21.0.0+) the browser requires much more memory in the applet pool in order to function. */ /* Thus, we have to reduce our extra system memory size by 26 MB to compensate. */ - const size_t ExtraSystemMemoryForAtmosphere = kern::GetTargetFirmware() >= ams::TargetFirmware_20_0_0 ? 14_MB : 40_MB; - return base_pool_size - ExtraSystemMemoryForAtmosphere - KTraceBufferSize; + if (kern::GetTargetFirmware() >= ams::TargetFirmware_21_0_0) { + constexpr size_t ExtraSystemMemoryForAtmosphere_21_0_0 = 8_MB; + return base_pool_size - ExtraSystemMemoryForAtmosphere_21_0_0 - KTraceBufferSize; + } else if (kern::GetTargetFirmware() >= ams::TargetFirmware_21_0_0) { + constexpr size_t ExtraSystemMemoryForAtmosphere_20_0_0 = 14_MB; + return base_pool_size - ExtraSystemMemoryForAtmosphere_20_0_0 - KTraceBufferSize; + } else { + constexpr size_t ExtraSystemMemoryForAtmosphere = 40_MB; + return base_pool_size - ExtraSystemMemoryForAtmosphere - KTraceBufferSize; + } } size_t KSystemControl::Init::GetMinimumNonSecureSystemPoolSize() {