diff --git a/src/common/Settings.cpp b/src/common/Settings.cpp index 61d381656..ea1732275 100644 --- a/src/common/Settings.cpp +++ b/src/common/Settings.cpp @@ -59,7 +59,7 @@ uint16_t g_LibVersion_DSOUND = 0; // * 4: (LukeUsher), added network settings // * 5: (ergo720), added new input gui settings and revision to core /////////////////////////// -const unsigned int settings_version = 5; +const unsigned int settings_version = 6; Settings* g_Settings = nullptr; @@ -89,7 +89,7 @@ static struct { const char* AllowAdminPrivilege = "AllowAdminPrivilege"; const char* LoggedModules = "LoggedModules"; const char* LogLevel = "LogLevel"; - const char* LoaderExperiment = "LoaderExperiment"; + const char* LoaderExecutable = "LoaderExecutable"; } sect_core_keys; static const char* section_video = "video"; @@ -351,7 +351,7 @@ bool Settings::LoadConfig() index++; } - m_core.loaderExperiment = m_si.GetBoolValue(section_core, sect_core_keys.LoaderExperiment, /*Default=*/false); + m_core.bUseLoaderExec = m_si.GetBoolValue(section_core, sect_core_keys.LoaderExecutable, /*Default=*/true); // ==== Core End ============ @@ -528,7 +528,7 @@ bool Settings::Save(std::string file_path) m_si.SetValue(section_core, sect_core_keys.LoggedModules, stream.str().c_str(), nullptr, false); } - m_si.SetBoolValue(section_core, sect_core_keys.LoaderExperiment, m_core.loaderExperiment, nullptr, true); + m_si.SetBoolValue(section_core, sect_core_keys.LoaderExecutable, m_core.bUseLoaderExec, nullptr, true); // ==== Core End ============ @@ -872,6 +872,9 @@ void Settings::RemoveLegacyConfigs(unsigned int CurrentRevision) m_si.Delete(section_controller_port, nullptr, true); break; case 5: + m_si.Delete(section_core, "LoaderExperiment", true); + break; + case 6: default: break; } diff --git a/src/common/Settings.hpp b/src/common/Settings.hpp index 5df432b37..515d066cf 100644 --- a/src/common/Settings.hpp +++ b/src/common/Settings.hpp @@ -97,7 +97,7 @@ public: bool allowAdminPrivilege; unsigned int LoggedModules[NUM_INTEGERS_LOG]; int LogLevel = 1; - bool loaderExperiment; + bool bUseLoaderExec; bool Reserved3 = 0; bool Reserved4 = 0; int Reserved99[10] = { 0 }; diff --git a/src/gui/WndMain.cpp b/src/gui/WndMain.cpp index 3a58cc81a..6a967ae65 100644 --- a/src/gui/WndMain.cpp +++ b/src/gui/WndMain.cpp @@ -1242,6 +1242,13 @@ LRESULT CALLBACK WndMain::WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lP } break; #endif + case ID_USELOADEREXEC: + { + g_Settings->m_core.bUseLoaderExec = !g_Settings->m_core.bUseLoaderExec; + RefreshMenus(); + } + break; + case ID_EMULATION_START: if (m_Xbe != nullptr) { @@ -1718,8 +1725,8 @@ void WndMain::RefreshMenus() //chk_flag = (g_Settings->m_core.FlagsLLE & LLE_USB) ? MF_CHECKED : MF_UNCHECKED; // Reenable this when LLE USB actually works //CheckMenuItem(settings_menu, ID_EMULATION_LLE_USB, chk_flag); - chk_flag = g_Settings->m_core.loaderExperiment ? MF_CHECKED : MF_UNCHECKED; - CheckMenuItem(settings_menu, ID_EXPERIMENTAL_LOADERPROJECT, chk_flag); + chk_flag = g_Settings->m_core.bUseLoaderExec ? MF_CHECKED : MF_UNCHECKED; + CheckMenuItem(settings_menu, ID_USELOADEREXEC, chk_flag); chk_flag = (g_Settings->m_hacks.DisablePixelShaders) ? MF_CHECKED : MF_UNCHECKED; CheckMenuItem(settings_menu, ID_HACKS_DISABLEPIXELSHADERS, chk_flag); @@ -2235,7 +2242,7 @@ void WndMain::StartEmulation(HWND hwndParent, DebuggerState LocalDebuggerState / char szExeFileName[MAX_PATH]; GetModuleFileName(GetModuleHandle(nullptr), szExeFileName, MAX_PATH); - if (g_Settings->m_core.loaderExperiment) { + if (g_Settings->m_core.bUseLoaderExec) { PathRemoveFileSpec(szExeFileName); PathAppend(szExeFileName, "\\cxbxr-ldr.exe"); } diff --git a/src/gui/resource/Cxbx.rc b/src/gui/resource/Cxbx.rc index fce096496..6e9aa2e9f 100644 --- a/src/gui/resource/Cxbx.rc +++ b/src/gui/resource/Cxbx.rc @@ -667,7 +667,6 @@ BEGIN BEGIN MENUITEM "LLE &GPU", ID_EMULATION_LLE_GPU,MFT_STRING,MFS_GRAYED END - MENUITEM "Loader Project", ID_EXPERIMENTAL_LOADERPROJECT,MFT_STRING,MFS_GRAYED END POPUP "Hacks", 65535,MFT_STRING,MFS_ENABLED BEGIN @@ -678,6 +677,7 @@ BEGIN MENUITEM "Disable Pixel Shaders", ID_HACKS_DISABLEPIXELSHADERS,MFT_STRING,MFS_ENABLED MENUITEM "Skip rdtsc patching", ID_HACKS_SKIPRDTSCPATCHING,MFT_STRING,MFS_ENABLED END + MENUITEM "Use Loader Executable", ID_USELOADEREXEC,MFT_STRING,MFS_ENABLED MENUITEM "Allow Admin Privilege", ID_SETTINGS_ALLOWADMINPRIVILEGE,MFT_STRING,MFS_ENABLED MENUITEM "", -1, MFT_SEPARATOR MENUITEM "Reset To Defaults", ID_SETTINGS_INITIALIZE,MFT_STRING,MFS_ENABLED diff --git a/src/gui/resource/ResCxbx.h b/src/gui/resource/ResCxbx.h index 5616f36d7..06cbc1f7a 100644 --- a/src/gui/resource/ResCxbx.h +++ b/src/gui/resource/ResCxbx.h @@ -362,7 +362,7 @@ #define ID_SETTINGS_CONFIG_NETWORK 40111 #define ID_SYNC_CONFIG_INPUT 40112 #define ID_SETTINGS_EXPERIMENTAL 40113 -#define ID_EXPERIMENTAL_LOADERPROJECT 40114 +#define ID_USELOADEREXEC 40114 #define IDC_STATIC -1 // Next default values for new objects