diff --git a/Source/Core/DolphinWX/Src/ISOProperties.cpp b/Source/Core/DolphinWX/Src/ISOProperties.cpp index 17fac658fd..fea9107397 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.cpp +++ b/Source/Core/DolphinWX/Src/ISOProperties.cpp @@ -337,6 +337,7 @@ void CISOProperties::CreateGUIControls(bool IsWad) sbVideoOverrides = new wxStaticBoxSizer(wxVERTICAL, m_GameConfig, _("Video")); ForceFiltering = new wxCheckBox(m_GameConfig, ID_FORCEFILTERING, _("Force Filtering"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); EFBCopyEnable = new wxCheckBox(m_GameConfig, ID_EFBCOPYENABLE, _("Enable Copy to EFB"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); + EFBAccessEnable = new wxCheckBox(m_GameConfig, ID_EFBACCESSENABLE, _("Enable CPU Access"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); EFBToTextureEnable = new wxCheckBox(m_GameConfig, ID_EFBTOTEXTUREENABLE, _("Enable EFB To Texture"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); SafeTextureCache = new wxCheckBox(m_GameConfig, ID_SAFETEXTURECACHE, _("Accurate Texture Cache"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); DstAlphaPass = new wxCheckBox(m_GameConfig, ID_DSTALPHAPASS, _("Distance Alpha Pass"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator); @@ -381,6 +382,7 @@ void CISOProperties::CreateGUIControls(bool IsWad) sbWiiOverrides->Add(EnableWideScreen, 0, wxEXPAND|wxLEFT, 5); sbVideoOverrides->Add(ForceFiltering, 0, wxEXPAND|wxLEFT, 5); sbVideoOverrides->Add(EFBCopyEnable, 0, wxEXPAND|wxLEFT, 5); + sbVideoOverrides->Add(EFBAccessEnable, 0, wxEXPAND|wxLEFT, 5); sbVideoOverrides->Add(EFBToTextureEnable, 0, wxEXPAND|wxLEFT, 5); sbVideoOverrides->Add(SafeTextureCache, 0, wxEXPAND|wxLEFT, 5); sbVideoOverrides->Add(DstAlphaPass, 0, wxEXPAND|wxLEFT, 5); @@ -881,6 +883,11 @@ void CISOProperties::LoadGameConfig() else EFBCopyEnable->Set3StateValue(wxCHK_UNDETERMINED); + if (GameIni.Get("Video", "EFBAccessEnable", &bTemp)) + EFBAccessEnable->Set3StateValue((wxCheckBoxState)bTemp); + else + EFBAccessEnable->Set3StateValue(wxCHK_UNDETERMINED); + if (GameIni.Get("Video", "EFBToTextureEnable", &bTemp)) EFBToTextureEnable->Set3StateValue((wxCheckBoxState)bTemp); else @@ -992,6 +999,11 @@ bool CISOProperties::SaveGameConfig() else GameIni.Set("Video", "EFBCopyEnable", EFBCopyEnable->Get3StateValue()); + if (EFBAccessEnable->Get3StateValue() == wxCHK_UNDETERMINED) + GameIni.DeleteKey("Video", "EFBAccessEnable"); + else + GameIni.Set("Video", "EFBAccessEnable", EFBAccessEnable->Get3StateValue()); + if (EFBToTextureEnable->Get3StateValue() == wxCHK_UNDETERMINED) GameIni.DeleteKey("Video", "EFBToTextureEnable"); else diff --git a/Source/Core/DolphinWX/Src/ISOProperties.h b/Source/Core/DolphinWX/Src/ISOProperties.h index 662eb315ee..91c107c34e 100644 --- a/Source/Core/DolphinWX/Src/ISOProperties.h +++ b/Source/Core/DolphinWX/Src/ISOProperties.h @@ -90,7 +90,7 @@ class CISOProperties : public wxDialog wxCheckBox *EnableProgressiveScan, *EnableWideScreen; // Video wxCheckBox *ForceFiltering, - *EFBCopyEnable, *EFBToTextureEnable, + *EFBCopyEnable, *EFBAccessEnable, *EFBToTextureEnable, *SafeTextureCache, *DstAlphaPass, *UseXFB, *UseZTPSpeedupHack, *DListCache; wxStaticText *Hacktext; @@ -172,6 +172,7 @@ class CISOProperties : public wxDialog ID_MERGEBLOCKS, ID_FORCEFILTERING, ID_EFBCOPYENABLE, + ID_EFBACCESSENABLE, ID_EFBTOTEXTUREENABLE, ID_SAFETEXTURECACHE, ID_DSTALPHAPASS, diff --git a/Source/Core/VideoCommon/Src/VideoConfig.cpp b/Source/Core/VideoCommon/Src/VideoConfig.cpp index 9c00aff9de..e1ac9c693e 100644 --- a/Source/Core/VideoCommon/Src/VideoConfig.cpp +++ b/Source/Core/VideoCommon/Src/VideoConfig.cpp @@ -135,6 +135,8 @@ void VideoConfig::GameIniLoad(const char *ini_file) iniFile.Get("Video", "EFBCopyEnable", &bEFBCopyEnable); if (iniFile.Exists("Video", "EFBCopyDisableHotKey")) iniFile.Get("Video", "EFBCopyDisableHotKey", &bOSDHotKey); + if (iniFile.Exists("Video", "EFBAccessEnable")) + iniFile.Get("Video", "EFBAccessEnable", &bEFBAccessEnable); if (iniFile.Exists("Video", "EFBToTextureEnable")) iniFile.Get("Video", "EFBToTextureEnable", &bCopyEFBToTexture); if (iniFile.Exists("Video", "EFBScaledCopy"))