From 07e3a2aa46d1b8e9e28fdc3b306d1628e5c92f3e Mon Sep 17 00:00:00 2001 From: crueter Date: Tue, 10 Mar 2026 05:36:12 +0100 Subject: [PATCH] [settings] Disable fastmem on Linux systems with non-4kb page sizes (#3669) Asahi, etc Signed-off-by: crueter Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3669 Reviewed-by: Lizzie Reviewed-by: CamilleLaVey --- src/common/settings.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index c952567e63..4197c99663 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -27,6 +27,10 @@ #include "common/settings.h" #include "common/time_zone.h" +#if defined(__linux__ ) && defined(ARCHITECTURE_arm64) +#include +#endif + namespace Settings { // Clang 14 and earlier have errors when explicitly instantiating these classes @@ -178,7 +182,11 @@ bool IsFastmemEnabled() { return bool(values.cpuopt_fastmem); else if (values.cpu_accuracy.GetValue() == CpuAccuracy::Unsafe) return bool(values.cpuopt_unsafe_host_mmu); -#if !defined(__APPLE__) && !defined(__linux__) && !defined(__ANDROID__) && !defined(_WIN32) +#if defined(__linux__) && defined(ARCHITECTURE_arm64) + // Only 4kb systems support host MMU right now + // TODO: Support this + return getpagesize() == 4096; +#elif !defined(__APPLE__) && !defined(__ANDROID__) && !defined(_WIN32) && !defined(__linux__) return false; #else return true;