diff --git a/Core/Config.cpp b/Core/Config.cpp index b82cf41ff3..8b4cbe05ab 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -1603,6 +1603,13 @@ void Config::PostSaveCleanup(bool gameSpecific) { } } +void Config::NotifyUpdatedCpuCore() { + if (jitForcedOff && g_Config.iCpuCore == (int)CPUCore::IR_JIT) { + // No longer forced off, the user set it to IR jit. + jitForcedOff = false; + } +} + // Use for debugging the version check without messing with the server #if 0 #define PPSSPP_GIT_VERSION "v0.0.1-gaaaaaaaaa" diff --git a/Core/Config.h b/Core/Config.h index a87fbc005d..17f198f920 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -568,6 +568,8 @@ public: bool LoadAppendedConfig(); void SetAppendedConfigIni(const Path &path); + void NotifyUpdatedCpuCore(); + protected: void LoadStandardControllerIni(); void LoadLangValuesMapping(); diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 454eec0d03..6c8f8469f3 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -1774,6 +1774,10 @@ void DeveloperToolsScreen::CreateViews() { static const char *cpuCores[] = {"Interpreter", "Dynarec (JIT)", "IR Interpreter"}; PopupMultiChoice *core = list->Add(new PopupMultiChoice(&g_Config.iCpuCore, gr->T("CPU Core"), cpuCores, 0, ARRAY_SIZE(cpuCores), sy->GetName(), screenManager())); core->OnChoice.Handle(this, &DeveloperToolsScreen::OnJitAffectingSetting); + core->OnChoice.Add([](UI::EventParams &) { + g_Config.NotifyUpdatedCpuCore(); + return UI::EVENT_DONE; + }); if (!canUseJit) { core->HideChoice(1); }