diff --git a/Source/Core/Core/BootManager.cpp b/Source/Core/Core/BootManager.cpp index a5b73a86a0..c7d9983efd 100644 --- a/Source/Core/Core/BootManager.cpp +++ b/Source/Core/Core/BootManager.cpp @@ -72,7 +72,6 @@ public: private: bool valid = false; bool bCPUThread = false; - bool bSyncGPUOnSkipIdleHack = false; bool bMMU = false; bool bSyncGPU = false; int iSyncGpuMaxDistance = 0; @@ -88,7 +87,6 @@ void ConfigCache::SaveConfig(const SConfig& config) valid = true; bCPUThread = config.bCPUThread; - bSyncGPUOnSkipIdleHack = config.bSyncGPUOnSkipIdleHack; bMMU = config.bMMU; bSyncGPU = config.bSyncGPU; iSyncGpuMaxDistance = config.iSyncGpuMaxDistance; @@ -115,7 +113,6 @@ void ConfigCache::RestoreConfig(SConfig* config) valid = false; config->bCPUThread = bCPUThread; - config->bSyncGPUOnSkipIdleHack = bSyncGPUOnSkipIdleHack; config->bMMU = bMMU; config->bSyncGPU = bSyncGPU; config->iSyncGpuMaxDistance = iSyncGpuMaxDistance; @@ -171,8 +168,6 @@ bool BootCore(std::unique_ptr boot, const WindowSystemInfo& wsi) IniFile::Section* controls_section = game_ini.GetOrCreateSection("Controls"); core_section->Get("CPUThread", &StartUp.bCPUThread, StartUp.bCPUThread); - core_section->Get("SyncOnSkipIdle", &StartUp.bSyncGPUOnSkipIdleHack, - StartUp.bSyncGPUOnSkipIdleHack); core_section->Get("MMU", &StartUp.bMMU, StartUp.bMMU); core_section->Get("SyncGPU", &StartUp.bSyncGPU, StartUp.bSyncGPU); @@ -248,7 +243,6 @@ bool BootCore(std::unique_ptr boot, const WindowSystemInfo& wsi) config_cache.bSetEXIDevice[0] = true; config_cache.bSetEXIDevice[1] = true; config_cache.bSetEXIDevice[2] = true; - StartUp.bSyncGPUOnSkipIdleHack = netplay_settings.m_SyncOnSkipIdle; StartUp.bSyncGPU = netplay_settings.m_SyncGPU; StartUp.iSyncGpuMaxDistance = netplay_settings.m_SyncGpuMaxDistance; StartUp.iSyncGpuMinDistance = netplay_settings.m_SyncGpuMinDistance; diff --git a/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp b/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp index 75b43c62a8..591df9aefe 100644 --- a/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp +++ b/Source/Core/Core/ConfigLoaders/IsSettingSaveable.cpp @@ -102,6 +102,7 @@ bool IsSettingSaveable(const Config::Location& config_location) &Config::MAIN_GPU_DETERMINISM_MODE.GetLocation(), &Config::MAIN_DISABLE_ICACHE.GetLocation(), &Config::MAIN_FAST_DISC_SPEED.GetLocation(), + &Config::MAIN_SYNC_ON_SKIP_IDLE.GetLocation(), // UI.General diff --git a/Source/Core/Core/ConfigManager.cpp b/Source/Core/Core/ConfigManager.cpp index faaedd4d64..41d1c5df67 100644 --- a/Source/Core/Core/ConfigManager.cpp +++ b/Source/Core/Core/ConfigManager.cpp @@ -102,7 +102,6 @@ void SConfig::SaveCoreSettings(IniFile& ini) core->Set("TimingVariance", iTimingVariance); core->Set("Fastmem", bFastmem); core->Set("CPUThread", bCPUThread); - core->Set("SyncOnSkipIdle", bSyncGPUOnSkipIdleHack); core->Set("SyncGPU", bSyncGPU); core->Set("SyncGpuMaxDistance", iSyncGpuMaxDistance); core->Set("SyncGpuMinDistance", iSyncGpuMinDistance); @@ -140,7 +139,6 @@ void SConfig::LoadCoreSettings(IniFile& ini) core->Get("Fastmem", &bFastmem, true); core->Get("TimingVariance", &iTimingVariance, 40); core->Get("CPUThread", &bCPUThread, true); - core->Get("SyncOnSkipIdle", &bSyncGPUOnSkipIdleHack, true); core->Get("SlotA", (int*)&m_EXIDevice[0], ExpansionInterface::EXIDEVICE_MEMORYCARDFOLDER); core->Get("SlotB", (int*)&m_EXIDevice[1], ExpansionInterface::EXIDEVICE_NONE); core->Get("SerialPort1", (int*)&m_EXIDevice[2], ExpansionInterface::EXIDEVICE_NONE); @@ -277,7 +275,6 @@ void SConfig::LoadDefaults() iTimingVariance = 40; bCPUThread = false; - bSyncGPUOnSkipIdleHack = true; bFastmem = true; bMMU = false; iBBDumpPort = -1; diff --git a/Source/Core/Core/ConfigManager.h b/Source/Core/Core/ConfigManager.h index c426a9790f..7cec9e4de2 100644 --- a/Source/Core/Core/ConfigManager.h +++ b/Source/Core/Core/ConfigManager.h @@ -67,7 +67,6 @@ struct SConfig int iTimingVariance = 40; // in milli secounds bool bCPUThread = true; - bool bSyncGPUOnSkipIdleHack = true; bool bCopyWiiSaveNetplay = true; bool bMMU = false; diff --git a/Source/Core/Core/CoreTiming.cpp b/Source/Core/Core/CoreTiming.cpp index f850c726d6..e90d367c5e 100644 --- a/Source/Core/Core/CoreTiming.cpp +++ b/Source/Core/Core/CoreTiming.cpp @@ -17,7 +17,6 @@ #include "Common/SPSCQueue.h" #include "Core/Config/MainSettings.h" -#include "Core/ConfigManager.h" #include "Core/Core.h" #include "Core/PowerPC/PowerPC.h" @@ -81,6 +80,7 @@ static EventType* s_ev_lost = nullptr; static size_t s_registered_config_callback_id; static float s_config_OC_factor; static float s_config_OC_inv_factor; +static bool s_config_sync_on_skip_idle; static void EmptyTimedCallback(u64 userdata, s64 cyclesLate) { @@ -161,6 +161,7 @@ void RefreshConfig() s_config_OC_factor = Config::Get(Config::MAIN_OVERCLOCK_ENABLE) ? Config::Get(Config::MAIN_OVERCLOCK) : 1.0f; s_config_OC_inv_factor = 1.0f / s_config_OC_factor; + s_config_sync_on_skip_idle = Config::Get(Config::MAIN_SYNC_ON_SKIP_IDLE); } void DoState(PointerWrap& p) @@ -388,7 +389,7 @@ void AdjustEventQueueTimes(u32 new_ppc_clock, u32 old_ppc_clock) void Idle() { - if (SConfig::GetInstance().bSyncGPUOnSkipIdleHack) + if (s_config_sync_on_skip_idle) { // When the FIFO is processing data we must not advance because in this way // the VI will be desynchronized. So, We are waiting until the FIFO finish and