Config: Port SyncOnSkipIdle setting to new config system.

This commit is contained in:
Admiral H. Curtiss
2022-01-06 01:42:31 +01:00
parent e613cbf395
commit 88d725c918
5 changed files with 4 additions and 12 deletions

View File

@ -72,7 +72,6 @@ public:
private: private:
bool valid = false; bool valid = false;
bool bCPUThread = false; bool bCPUThread = false;
bool bSyncGPUOnSkipIdleHack = false;
bool bMMU = false; bool bMMU = false;
bool bSyncGPU = false; bool bSyncGPU = false;
int iSyncGpuMaxDistance = 0; int iSyncGpuMaxDistance = 0;
@ -88,7 +87,6 @@ void ConfigCache::SaveConfig(const SConfig& config)
valid = true; valid = true;
bCPUThread = config.bCPUThread; bCPUThread = config.bCPUThread;
bSyncGPUOnSkipIdleHack = config.bSyncGPUOnSkipIdleHack;
bMMU = config.bMMU; bMMU = config.bMMU;
bSyncGPU = config.bSyncGPU; bSyncGPU = config.bSyncGPU;
iSyncGpuMaxDistance = config.iSyncGpuMaxDistance; iSyncGpuMaxDistance = config.iSyncGpuMaxDistance;
@ -115,7 +113,6 @@ void ConfigCache::RestoreConfig(SConfig* config)
valid = false; valid = false;
config->bCPUThread = bCPUThread; config->bCPUThread = bCPUThread;
config->bSyncGPUOnSkipIdleHack = bSyncGPUOnSkipIdleHack;
config->bMMU = bMMU; config->bMMU = bMMU;
config->bSyncGPU = bSyncGPU; config->bSyncGPU = bSyncGPU;
config->iSyncGpuMaxDistance = iSyncGpuMaxDistance; config->iSyncGpuMaxDistance = iSyncGpuMaxDistance;
@ -171,8 +168,6 @@ bool BootCore(std::unique_ptr<BootParameters> boot, const WindowSystemInfo& wsi)
IniFile::Section* controls_section = game_ini.GetOrCreateSection("Controls"); IniFile::Section* controls_section = game_ini.GetOrCreateSection("Controls");
core_section->Get("CPUThread", &StartUp.bCPUThread, StartUp.bCPUThread); 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("MMU", &StartUp.bMMU, StartUp.bMMU);
core_section->Get("SyncGPU", &StartUp.bSyncGPU, StartUp.bSyncGPU); core_section->Get("SyncGPU", &StartUp.bSyncGPU, StartUp.bSyncGPU);
@ -248,7 +243,6 @@ bool BootCore(std::unique_ptr<BootParameters> boot, const WindowSystemInfo& wsi)
config_cache.bSetEXIDevice[0] = true; config_cache.bSetEXIDevice[0] = true;
config_cache.bSetEXIDevice[1] = true; config_cache.bSetEXIDevice[1] = true;
config_cache.bSetEXIDevice[2] = true; config_cache.bSetEXIDevice[2] = true;
StartUp.bSyncGPUOnSkipIdleHack = netplay_settings.m_SyncOnSkipIdle;
StartUp.bSyncGPU = netplay_settings.m_SyncGPU; StartUp.bSyncGPU = netplay_settings.m_SyncGPU;
StartUp.iSyncGpuMaxDistance = netplay_settings.m_SyncGpuMaxDistance; StartUp.iSyncGpuMaxDistance = netplay_settings.m_SyncGpuMaxDistance;
StartUp.iSyncGpuMinDistance = netplay_settings.m_SyncGpuMinDistance; StartUp.iSyncGpuMinDistance = netplay_settings.m_SyncGpuMinDistance;

View File

@ -102,6 +102,7 @@ bool IsSettingSaveable(const Config::Location& config_location)
&Config::MAIN_GPU_DETERMINISM_MODE.GetLocation(), &Config::MAIN_GPU_DETERMINISM_MODE.GetLocation(),
&Config::MAIN_DISABLE_ICACHE.GetLocation(), &Config::MAIN_DISABLE_ICACHE.GetLocation(),
&Config::MAIN_FAST_DISC_SPEED.GetLocation(), &Config::MAIN_FAST_DISC_SPEED.GetLocation(),
&Config::MAIN_SYNC_ON_SKIP_IDLE.GetLocation(),
// UI.General // UI.General

View File

@ -102,7 +102,6 @@ void SConfig::SaveCoreSettings(IniFile& ini)
core->Set("TimingVariance", iTimingVariance); core->Set("TimingVariance", iTimingVariance);
core->Set("Fastmem", bFastmem); core->Set("Fastmem", bFastmem);
core->Set("CPUThread", bCPUThread); core->Set("CPUThread", bCPUThread);
core->Set("SyncOnSkipIdle", bSyncGPUOnSkipIdleHack);
core->Set("SyncGPU", bSyncGPU); core->Set("SyncGPU", bSyncGPU);
core->Set("SyncGpuMaxDistance", iSyncGpuMaxDistance); core->Set("SyncGpuMaxDistance", iSyncGpuMaxDistance);
core->Set("SyncGpuMinDistance", iSyncGpuMinDistance); core->Set("SyncGpuMinDistance", iSyncGpuMinDistance);
@ -140,7 +139,6 @@ void SConfig::LoadCoreSettings(IniFile& ini)
core->Get("Fastmem", &bFastmem, true); core->Get("Fastmem", &bFastmem, true);
core->Get("TimingVariance", &iTimingVariance, 40); core->Get("TimingVariance", &iTimingVariance, 40);
core->Get("CPUThread", &bCPUThread, true); core->Get("CPUThread", &bCPUThread, true);
core->Get("SyncOnSkipIdle", &bSyncGPUOnSkipIdleHack, true);
core->Get("SlotA", (int*)&m_EXIDevice[0], ExpansionInterface::EXIDEVICE_MEMORYCARDFOLDER); core->Get("SlotA", (int*)&m_EXIDevice[0], ExpansionInterface::EXIDEVICE_MEMORYCARDFOLDER);
core->Get("SlotB", (int*)&m_EXIDevice[1], ExpansionInterface::EXIDEVICE_NONE); core->Get("SlotB", (int*)&m_EXIDevice[1], ExpansionInterface::EXIDEVICE_NONE);
core->Get("SerialPort1", (int*)&m_EXIDevice[2], ExpansionInterface::EXIDEVICE_NONE); core->Get("SerialPort1", (int*)&m_EXIDevice[2], ExpansionInterface::EXIDEVICE_NONE);
@ -277,7 +275,6 @@ void SConfig::LoadDefaults()
iTimingVariance = 40; iTimingVariance = 40;
bCPUThread = false; bCPUThread = false;
bSyncGPUOnSkipIdleHack = true;
bFastmem = true; bFastmem = true;
bMMU = false; bMMU = false;
iBBDumpPort = -1; iBBDumpPort = -1;

View File

@ -67,7 +67,6 @@ struct SConfig
int iTimingVariance = 40; // in milli secounds int iTimingVariance = 40; // in milli secounds
bool bCPUThread = true; bool bCPUThread = true;
bool bSyncGPUOnSkipIdleHack = true;
bool bCopyWiiSaveNetplay = true; bool bCopyWiiSaveNetplay = true;
bool bMMU = false; bool bMMU = false;

View File

@ -17,7 +17,6 @@
#include "Common/SPSCQueue.h" #include "Common/SPSCQueue.h"
#include "Core/Config/MainSettings.h" #include "Core/Config/MainSettings.h"
#include "Core/ConfigManager.h"
#include "Core/Core.h" #include "Core/Core.h"
#include "Core/PowerPC/PowerPC.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 size_t s_registered_config_callback_id;
static float s_config_OC_factor; static float s_config_OC_factor;
static float s_config_OC_inv_factor; static float s_config_OC_inv_factor;
static bool s_config_sync_on_skip_idle;
static void EmptyTimedCallback(u64 userdata, s64 cyclesLate) static void EmptyTimedCallback(u64 userdata, s64 cyclesLate)
{ {
@ -161,6 +161,7 @@ void RefreshConfig()
s_config_OC_factor = s_config_OC_factor =
Config::Get(Config::MAIN_OVERCLOCK_ENABLE) ? Config::Get(Config::MAIN_OVERCLOCK) : 1.0f; 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_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) void DoState(PointerWrap& p)
@ -388,7 +389,7 @@ void AdjustEventQueueTimes(u32 new_ppc_clock, u32 old_ppc_clock)
void Idle() 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 // 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 // the VI will be desynchronized. So, We are waiting until the FIFO finish and