aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2026-03-10 05:36:12 +0100
committercrueter <crueter@eden-emu.dev>2026-03-10 05:36:12 +0100
commit07e3a2aa46d1b8e9e28fdc3b306d1628e5c92f3e (patch)
treebb91d813d2a7cac668db45a96ee89b8a77ff283a /src/common
parenta1b50e9339fc4ad003ea55de6fdaabf92a12e163 (diff)
[settings] Disable fastmem on Linux systems with non-4kb page sizes (#3669)
Asahi, etc Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3669 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Diffstat (limited to 'src/common')
-rw-r--r--src/common/settings.cpp10
1 files changed, 9 insertions, 1 deletions
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 <unistd.h>
+#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;