Config: Add a boolean for PAL60, like the Progressive Scan one.

This decouples the Dolphin PAL60 option from the currently set value in the Wii SYSCONF file.
This commit is contained in:
Admiral H. Curtiss 2015-06-13 02:09:19 +02:00
parent 740e344847
commit 92447fb052
5 changed files with 14 additions and 6 deletions

View File

@ -226,8 +226,7 @@ bool CBoot::BootUp()
g_symbolDB.Clear(); g_symbolDB.Clear();
// PAL Wii uses NTSC framerate and linecount in 60Hz modes // PAL Wii uses NTSC framerate and linecount in 60Hz modes
const bool bPAL60 = _StartupPara.bWii && SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.E60"); VideoInterface::Preset(_StartupPara.bNTSC || (_StartupPara.bWii && _StartupPara.bPAL60));
VideoInterface::Preset(_StartupPara.bNTSC || bPAL60);
switch (_StartupPara.m_BootType) switch (_StartupPara.m_BootType)
{ {

View File

@ -48,7 +48,7 @@ namespace BootManager
struct ConfigCache struct ConfigCache
{ {
bool valid, bCPUThread, bSkipIdle, bSyncGPUOnSkipIdleHack, bFPRF, bAccurateNaNs, bMMU, bDCBZOFF, m_EnableJIT, bDSPThread, bool valid, bCPUThread, bSkipIdle, bSyncGPUOnSkipIdleHack, bFPRF, bAccurateNaNs, bMMU, bDCBZOFF, m_EnableJIT, bDSPThread,
bSyncGPU, bFastDiscSpeed, bDSPHLE, bHLE_BS2, bProgressive; bSyncGPU, bFastDiscSpeed, bDSPHLE, bHLE_BS2, bProgressive, bPAL60;
int iSelectedLanguage; int iSelectedLanguage;
int iCPUCore, Volume; int iCPUCore, Volume;
int iWiimoteSource[MAX_BBMOTES]; int iWiimoteSource[MAX_BBMOTES];
@ -121,6 +121,7 @@ bool BootCore(const std::string& _rFilename)
config_cache.framelimit = SConfig::GetInstance().m_Framelimit; config_cache.framelimit = SConfig::GetInstance().m_Framelimit;
config_cache.frameSkip = SConfig::GetInstance().m_FrameSkip; config_cache.frameSkip = SConfig::GetInstance().m_FrameSkip;
config_cache.bProgressive = StartUp.bProgressive; config_cache.bProgressive = StartUp.bProgressive;
config_cache.bPAL60 = StartUp.bPAL60;
config_cache.iSelectedLanguage = StartUp.SelectedLanguage; config_cache.iSelectedLanguage = StartUp.SelectedLanguage;
for (unsigned int i = 0; i < MAX_BBMOTES; ++i) for (unsigned int i = 0; i < MAX_BBMOTES; ++i)
{ {
@ -256,6 +257,7 @@ bool BootCore(const std::string& _rFilename)
} }
SConfig::GetInstance().m_SYSCONF->SetData("IPL.PGS", StartUp.bProgressive); SConfig::GetInstance().m_SYSCONF->SetData("IPL.PGS", StartUp.bProgressive);
SConfig::GetInstance().m_SYSCONF->SetData("IPL.E60", StartUp.bPAL60);
// Run the game // Run the game
// Init the core // Init the core
@ -298,6 +300,8 @@ void Stop()
StartUp.bProgressive = config_cache.bProgressive; StartUp.bProgressive = config_cache.bProgressive;
StartUp.SelectedLanguage = config_cache.iSelectedLanguage; StartUp.SelectedLanguage = config_cache.iSelectedLanguage;
SConfig::GetInstance().m_SYSCONF->SetData("IPL.PGS", config_cache.bProgressive); SConfig::GetInstance().m_SYSCONF->SetData("IPL.PGS", config_cache.bProgressive);
StartUp.bPAL60 = config_cache.bPAL60;
SConfig::GetInstance().m_SYSCONF->SetData("IPL.E60", config_cache.bPAL60);
// Only change these back if they were actually set by game ini, since they can be changed while a game is running. // Only change these back if they were actually set by game ini, since they can be changed while a game is running.
if (config_cache.bSetFramelimit) if (config_cache.bSetFramelimit)

View File

@ -52,7 +52,8 @@ SConfig::SConfig()
iRenderWindowWidth(640), iRenderWindowHeight(480), iRenderWindowWidth(640), iRenderWindowHeight(480),
bRenderWindowAutoSize(false), bKeepWindowOnTop(false), bRenderWindowAutoSize(false), bKeepWindowOnTop(false),
bFullscreen(false), bRenderToMain(false), bFullscreen(false), bRenderToMain(false),
bProgressive(false), bDisableScreenSaver(false), bProgressive(false), bPAL60(false),
bDisableScreenSaver(false),
iPosX(100), iPosY(100), iWidth(800), iHeight(600), iPosX(100), iPosY(100), iWidth(800), iHeight(600),
bLoopFifoReplay(true) bLoopFifoReplay(true)
{ {
@ -173,6 +174,7 @@ void SConfig::SaveDisplaySettings(IniFile& ini)
display->Set("RenderWindowAutoSize", bRenderWindowAutoSize); display->Set("RenderWindowAutoSize", bRenderWindowAutoSize);
display->Set("KeepWindowOnTop", bKeepWindowOnTop); display->Set("KeepWindowOnTop", bKeepWindowOnTop);
display->Set("ProgressiveScan", bProgressive); display->Set("ProgressiveScan", bProgressive);
display->Set("PAL60", bPAL60);
display->Set("DisableScreenSaver", bDisableScreenSaver); display->Set("DisableScreenSaver", bDisableScreenSaver);
display->Set("ForceNTSCJ", bForceNTSCJ); display->Set("ForceNTSCJ", bForceNTSCJ);
} }
@ -415,6 +417,7 @@ void SConfig::LoadDisplaySettings(IniFile& ini)
display->Get("RenderWindowAutoSize", &bRenderWindowAutoSize, false); display->Get("RenderWindowAutoSize", &bRenderWindowAutoSize, false);
display->Get("KeepWindowOnTop", &bKeepWindowOnTop, false); display->Get("KeepWindowOnTop", &bKeepWindowOnTop, false);
display->Get("ProgressiveScan", &bProgressive, false); display->Get("ProgressiveScan", &bProgressive, false);
display->Get("PAL60", &bPAL60, true);
display->Get("DisableScreenSaver", &bDisableScreenSaver, true); display->Get("DisableScreenSaver", &bDisableScreenSaver, true);
display->Get("ForceNTSCJ", &bForceNTSCJ, false); display->Get("ForceNTSCJ", &bForceNTSCJ, false);
} }

View File

@ -120,7 +120,8 @@ struct SConfig : NonCopyable
int iRenderWindowWidth, iRenderWindowHeight; int iRenderWindowWidth, iRenderWindowHeight;
bool bRenderWindowAutoSize, bKeepWindowOnTop; bool bRenderWindowAutoSize, bKeepWindowOnTop;
bool bFullscreen, bRenderToMain; bool bFullscreen, bRenderToMain;
bool bProgressive, bDisableScreenSaver; bool bProgressive, bPAL60;
bool bDisableScreenSaver;
int iPosX, iPosY, iWidth, iHeight; int iPosX, iPosY, iWidth, iHeight;

View File

@ -84,7 +84,7 @@ void WiiConfigPane::InitializeGUI()
void WiiConfigPane::LoadGUIValues() void WiiConfigPane::LoadGUIValues()
{ {
m_screensaver_checkbox->SetValue(!!SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.SSV")); m_screensaver_checkbox->SetValue(!!SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.SSV"));
m_pal60_mode_checkbox->SetValue(!!SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.E60")); m_pal60_mode_checkbox->SetValue(SConfig::GetInstance().bPAL60);
m_aspect_ratio_choice->SetSelection(SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.AR")); m_aspect_ratio_choice->SetSelection(SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.AR"));
m_system_language_choice->SetSelection(SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.LNG")); m_system_language_choice->SetSelection(SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.LNG"));
@ -110,6 +110,7 @@ void WiiConfigPane::OnScreenSaverCheckBoxChanged(wxCommandEvent& event)
void WiiConfigPane::OnPAL60CheckBoxChanged(wxCommandEvent& event) void WiiConfigPane::OnPAL60CheckBoxChanged(wxCommandEvent& event)
{ {
SConfig::GetInstance().bPAL60 = m_pal60_mode_checkbox->IsChecked();
SConfig::GetInstance().m_SYSCONF->SetData("IPL.E60", m_pal60_mode_checkbox->IsChecked()); SConfig::GetInstance().m_SYSCONF->SetData("IPL.E60", m_pal60_mode_checkbox->IsChecked());
} }