diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp index 17df570de3..60760b4fd7 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.cpp +++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp @@ -260,6 +260,7 @@ void CISOProperties::CreateGUIControls() SkipIdle = new wxCheckBox(m_GameConfig, ID_IDLESKIP, _("Enable Idle Skipping"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); OptimizeQuantizers = new wxCheckBox(m_GameConfig, ID_OPTIMIZEQUANTIZERS, _("Optimize Quantizers"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); TLBHack = new wxCheckBox(m_GameConfig, ID_TLBHACK, _("TLB Hack"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); + ProjHack1 = new wxCheckBox(m_GameConfig, ID_PROJHACK1, _("Projection Hack"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); EnableProgressiveScan = new wxCheckBox(m_GameConfig, ID_ENABLEPROGRESSIVESCAN, _("[Wii] Enable Progressive Scan"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); EnableWideScreen = new wxCheckBox(m_GameConfig, ID_ENABLEWIDESCREEN, _("[Wii] Enable WideScreen"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); @@ -306,6 +307,7 @@ void CISOProperties::CreateGUIControls() sCoreOverrides->Add(UseDualCore, 0, wxEXPAND|wxLEFT, 5); sCoreOverrides->Add(SkipIdle, 0, wxEXPAND|wxLEFT, 5); sCoreOverrides->Add(TLBHack, 0, wxEXPAND|wxLEFT, 5); + sCoreOverrides->Add(ProjHack1, 0, wxEXPAND|wxLEFT, 5); sCoreOverrides->Add(OptimizeQuantizers, 0, wxEXPAND|wxLEFT, 5); sCoreOverrides->Add(EnableProgressiveScan, 0, wxEXPAND|wxLEFT, 5); sCoreOverrides->Add(EnableWideScreen, 0, wxEXPAND|wxLEFT, 5); @@ -566,6 +568,11 @@ void CISOProperties::LoadGameConfig() else TLBHack->Set3StateValue(wxCHK_UNDETERMINED); + if (GameIni.Get("Video", "ProjectionHax1", &bTemp)) + ProjHack1->Set3StateValue((wxCheckBoxState)bTemp); + else + ProjHack1->Set3StateValue(wxCHK_UNDETERMINED); + if (GameIni.Get("Wii", "ProgressiveScan", &bTemp)) EnableProgressiveScan->Set3StateValue((wxCheckBoxState)bTemp); else @@ -611,15 +618,23 @@ bool CISOProperties::SaveGameConfig() GameIni.DeleteKey("Core", "OptimizeQuantizers"); else GameIni.Set("Core", "OptimizeQuantizers", OptimizeQuantizers->Get3StateValue()); + if (TLBHack->Get3StateValue() == wxCHK_UNDETERMINED) GameIni.DeleteKey("Core", "TLBHack"); else GameIni.Set("Core", "TLBHack", TLBHack->Get3StateValue()); + + if (ProjHack1->Get3StateValue() == wxCHK_UNDETERMINED) + GameIni.DeleteKey("Video", "ProjectionHax1"); + else + GameIni.Set("Video", "ProjectionHax1", ProjHack1->Get3StateValue()); + if (EnableProgressiveScan->Get3StateValue() == wxCHK_UNDETERMINED) GameIni.DeleteKey("Wii", "ProgressiveScan"); else GameIni.Set("Wii", "ProgressiveScan", EnableProgressiveScan->Get3StateValue()); + if (EnableWideScreen->Get3StateValue() == wxCHK_UNDETERMINED) GameIni.DeleteKey("Wii", "Widescreen"); else diff --git a/Source/Core/DolphinWX/Src/ISOProperties.h b/Source/Core/DolphinWX/Src/ISOProperties.h index 5b64c29730..582a7b4efd 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.h +++ b/Source/Core/DolphinWX/Src/ISOProperties.h @@ -82,6 +82,7 @@ class CISOProperties : public wxDialog wxStaticText *OverrideText; wxCheckBox *UseDualCore, *SkipIdle, *OptimizeQuantizers, *TLBHack; + wxCheckBox *ProjHack1; // Video wxCheckBox *EnableProgressiveScan, *EnableWideScreen; // Wii wxButton *EditConfig; @@ -151,6 +152,7 @@ class CISOProperties : public wxDialog ID_USEDUALCORE, ID_IDLESKIP, ID_TLBHACK, + ID_PROJHACK1, ID_ENABLEPROGRESSIVESCAN, ID_ENABLEWIDESCREEN, ID_OPTIMIZEQUANTIZERS,