diff --git a/Core/Config.cpp b/Core/Config.cpp index d010fe6466..1dbf006dc4 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -249,6 +249,7 @@ static const ConfigSetting generalSettings[] = { ConfigSetting("DebugOverlay", &g_Config.iDebugOverlay, 0, CfgFlag::DONT_SAVE), ConfigSetting("DefaultTab", &g_Config.iDefaultTab, 0, CfgFlag::DEFAULT), ConfigSetting("DisableHLEFlags", &g_Config.iDisableHLE, 0, CfgFlag::PER_GAME), + ConfigSetting("ForceEnableHLEFlags", &g_Config.iForceEnableHLE, 0, CfgFlag::PER_GAME), ConfigSetting("ScreenshotMode", &g_Config.iScreenshotMode, 0, CfgFlag::DEFAULT), ConfigSetting("ScreenshotsAsPNG", &g_Config.bScreenshotsAsPNG, false, CfgFlag::PER_GAME), diff --git a/UI/DeveloperToolsScreen.cpp b/UI/DeveloperToolsScreen.cpp index 01653643be..457b9708e5 100644 --- a/UI/DeveloperToolsScreen.cpp +++ b/UI/DeveloperToolsScreen.cpp @@ -251,7 +251,7 @@ void DeveloperToolsScreen::CreateHLETab(UI::LinearLayout *list) { for (int i = 0; i < (int)DisableHLEFlags::Count; i++) { DisableHLEFlags flag = (DisableHLEFlags)(1 << i); - // Show a checkbox, unless the setting has graduated to always on. + // Show a checkbox, unless the setting has graduated to always disabled. if (!(flag & AlwaysDisableHLEFlags())) { const HLEModuleMeta *meta = GetHLEModuleMetaByFlag(flag); if (meta) { @@ -260,6 +260,21 @@ void DeveloperToolsScreen::CreateHLETab(UI::LinearLayout *list) { } } } + + list->Add(new ItemHeader(dev->T("Force-enable HLE"))); + + for (int i = 0; i < (int)DisableHLEFlags::Count; i++) { + DisableHLEFlags flag = (DisableHLEFlags)(1 << i); + + // Show a checkbox, only if the setting has graduated to always disabled (and thus it makes sense to force-enable it). + if (flag & AlwaysDisableHLEFlags()) { + const HLEModuleMeta *meta = GetHLEModuleMetaByFlag(flag); + if (meta) { + BitCheckBox *checkBox = list->Add(new BitCheckBox(&g_Config.iForceEnableHLE, (int)flag, meta->modname)); + checkBox->SetEnabled(!PSP_IsInited()); + } + } + } } void DeveloperToolsScreen::CreateMIPSTracerTab(UI::LinearLayout *list) {