From 97a9c46a9de9869d903b042f48a0337e4552fbc2 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 3 Apr 2026 13:54:36 +0200 Subject: [PATCH 1/2] DolphinQt: Add page table fastmem to JIT menu This can be useful for experimenting with how a game behaves with and without page table fastmem. As with everything in the JIT menu, this is only available if Dolphin's debugger is enabled. I didn't add this in 989a95a when I added the setting itself because we were under a string freeze for Dolphin 2603a at the time. --- Source/Core/DolphinQt/MenuBar.cpp | 7 +++++++ Source/Core/DolphinQt/MenuBar.h | 1 + 2 files changed, 8 insertions(+) diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp index 5015eb5fee..b89ce4041a 100644 --- a/Source/Core/DolphinQt/MenuBar.cpp +++ b/Source/Core/DolphinQt/MenuBar.cpp @@ -926,6 +926,13 @@ void MenuBar::AddJITMenu() connect(m_jit_disable_fastmem, &QAction::toggled, [](bool enabled) { Config::SetBaseOrCurrent(Config::MAIN_FASTMEM, !enabled); }); + m_jit_disable_page_table_fastmem = m_jit->addAction(tr("Disable Page Table Fastmem")); + m_jit_disable_page_table_fastmem->setCheckable(true); + m_jit_disable_page_table_fastmem->setChecked(!Config::Get(Config::MAIN_PAGE_TABLE_FASTMEM)); + connect(m_jit_disable_page_table_fastmem, &QAction::toggled, [](bool enabled) { + Config::SetBaseOrCurrent(Config::MAIN_PAGE_TABLE_FASTMEM, !enabled); + }); + m_jit_disable_fastmem_arena = m_jit->addAction(tr("Disable Fastmem Arena")); m_jit_disable_fastmem_arena->setCheckable(true); m_jit_disable_fastmem_arena->setChecked(!Config::Get(Config::MAIN_FASTMEM_ARENA)); diff --git a/Source/Core/DolphinQt/MenuBar.h b/Source/Core/DolphinQt/MenuBar.h index 2cd56f4e54..8b84d10992 100644 --- a/Source/Core/DolphinQt/MenuBar.h +++ b/Source/Core/DolphinQt/MenuBar.h @@ -288,6 +288,7 @@ private: QAction* m_jit_block_linking; QAction* m_jit_disable_cache; QAction* m_jit_disable_fastmem; + QAction* m_jit_disable_page_table_fastmem; QAction* m_jit_disable_fastmem_arena; QAction* m_jit_disable_large_entry_points_map; QAction* m_jit_clear_cache; From 4aaecbb148c0df175b20ae9bddaafb33f1ae81d0 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 3 Apr 2026 14:14:56 +0200 Subject: [PATCH 2/2] Android: Add page table fastmem to Debug settings --- .../dolphinemu/features/settings/model/BooleanSetting.kt | 1 + .../features/settings/ui/SettingsFragmentPresenter.kt | 8 ++++++++ Source/Android/app/src/main/res/values/strings.xml | 1 + 3 files changed, 10 insertions(+) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt index b6a03e6b61..cd0ea42d94 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt @@ -14,6 +14,7 @@ enum class BooleanSetting( MAIN_SKIP_IPL(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "SkipIPL", true), MAIN_DSP_HLE(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "DSPHLE", true), MAIN_FASTMEM(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "Fastmem", true), + MAIN_PAGE_TABLE_FASTMEM(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "PageTableFastmem", true), MAIN_FASTMEM_ARENA(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "FastmemArena", true), MAIN_LARGE_ENTRY_POINTS_MAP(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "LargeEntryPointsMap", true), MAIN_CPU_THREAD(Settings.FILE_DOLPHIN, Settings.SECTION_INI_CORE, "CPUThread", true), diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt index 4603411c52..32a7a64025 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt @@ -2215,6 +2215,14 @@ class SettingsFragmentPresenter( 0 ) ) + sl.add( + InvertedSwitchSetting( + context, + BooleanSetting.MAIN_PAGE_TABLE_FASTMEM, + R.string.debug_page_table_fastmem, + 0 + ) + ) sl.add( InvertedSwitchSetting( context, diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 5c2e978d48..04c48bcba4 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -424,6 +424,7 @@ Debug Warning: Debug settings will slow emulation Disable Fastmem + Disable Page Table Fastmem Disable Fastmem Arena Disable Large Entry Points Map Jit Profiling