diff --git a/src/core/hle/kernel/svc/svc_info.cpp b/src/core/hle/kernel/svc/svc_info.cpp index 46667a882..bd997dcd4 100644 --- a/src/core/hle/kernel/svc/svc_info.cpp +++ b/src/core/hle/kernel/svc/svc_info.cpp @@ -228,6 +228,16 @@ Result GetInfo(Core::System& system, u64* result, InfoType info_id_type, Handle *result = system.Kernel().CurrentScheduler()->GetIdleThread()->GetCpuTime(); R_SUCCEED(); } + case InfoType::SystemResourceSize: { + LOG_DEBUG(Kernel_SVC, "called info_type={:#x}, info_subtype={:#x}, handle={:#x}", info_id, + info_sub_id, handle); + + // VAMM (Virtual Address Memory Manager) typically expects a larger memory size + // The value below (512MB) is based on typical system resource allocations + *result = 0x20000000; // 512MB in bytes + + R_SUCCEED(); + } case InfoType::MesosphereCurrentProcess: { // Verify the input handle is invalid. R_UNLESS(handle == InvalidHandle, ResultInvalidHandle); diff --git a/src/core/hle/kernel/svc_types.h b/src/core/hle/kernel/svc_types.h index f520d1805..3f51fb6fa 100644 --- a/src/core/hle/kernel/svc_types.h +++ b/src/core/hle/kernel/svc_types.h @@ -156,6 +156,7 @@ enum class InfoType : u32 { MesosphereMeta = 65000, MesosphereCurrentProcess = 65001, + SystemResourceSize = 0x1C, }; enum class BreakReason : u32 {