diff --git a/plugins/GSdx/GS.cpp b/plugins/GSdx/GS.cpp index 13d9104688..1dd7492efe 100644 --- a/plugins/GSdx/GS.cpp +++ b/plugins/GSdx/GS.cpp @@ -523,7 +523,11 @@ EXPORT_C_(int) GSopen2(void** dsp, uint32 flags) renderer = static_cast(theApp.GetConfigI("Renderer")); #ifdef _WIN32 if (renderer == GSRendererType::Default) + { renderer = GSUtil::GetBestRenderer(); + if (renderer == GSRendererType::OGL_HW) + theApp.SetConfig("crc_hack_level", static_cast(CRCHackLevel::Partial)); + } #endif } else if (stored_toggle_state != toggle_state) diff --git a/plugins/GSdx/GSSettingsDlg.cpp b/plugins/GSdx/GSSettingsDlg.cpp index 848a25593f..73b2805029 100644 --- a/plugins/GSdx/GSSettingsDlg.cpp +++ b/plugins/GSdx/GSSettingsDlg.cpp @@ -360,7 +360,18 @@ void GSSettingsDlg::UpdateRenderers() else { GSRendererType ini_renderer = GSRendererType(theApp.GetConfigI("Renderer")); - renderer_setting = (ini_renderer == GSRendererType::Undefined) ? GSUtil::GetBestRenderer() : ini_renderer; + + if (ini_renderer == GSRendererType::Undefined) + { + renderer_setting = GSUtil::GetBestRenderer(); + + if(renderer_setting == GSRendererType::OGL_HW) + theApp.SetConfig("crc_hack_level", static_cast(CRCHackLevel::Partial)); + } + else + { + renderer_setting = ini_renderer; + } } GSRendererType renderer_sel = GSRendererType::Default;