diff --git a/plugins/GSdx/GSdx.cpp b/plugins/GSdx/GSdx.cpp index 6534b0aaa1..9121abadf8 100644 --- a/plugins/GSdx/GSdx.cpp +++ b/plugins/GSdx/GSdx.cpp @@ -244,6 +244,10 @@ void GSdxApp::Init() m_gs_max_anisotropy.push_back(GSSetting(8, "8x", "")); m_gs_max_anisotropy.push_back(GSSetting(16, "16x", "")); + m_gs_dithering.push_back(GSSetting(0, "Off", "")); + m_gs_dithering.push_back(GSSetting(1, "Scaled", "")); + m_gs_dithering.push_back(GSSetting(2, "Unscaled", "Default")); + m_gs_bifilter.push_back(GSSetting(static_cast(BiFiltering::Nearest), "Nearest", "")); m_gs_bifilter.push_back(GSSetting(static_cast(BiFiltering::Forced_But_Sprite), "Bilinear", "Forced excluding sprite")); m_gs_bifilter.push_back(GSSetting(static_cast(BiFiltering::Forced), "Bilinear", "Forced")); @@ -332,7 +336,7 @@ void GSdxApp::Init() m_default_configuration["debug_glsl_shader"] = "0"; m_default_configuration["debug_opengl"] = "0"; m_default_configuration["disable_hw_gl_draw"] = "0"; - m_default_configuration["dithering_ps2"] = "1"; + m_default_configuration["dithering_ps2"] = "2"; m_default_configuration["dump"] = "0"; m_default_configuration["extrathreads"] = "2"; m_default_configuration["extrathreads_height"] = "4"; diff --git a/plugins/GSdx/GSdx.h b/plugins/GSdx/GSdx.h index 13d00bdc83..54eeaeef6e 100644 --- a/plugins/GSdx/GSdx.h +++ b/plugins/GSdx/GSdx.h @@ -70,6 +70,7 @@ public: std::vector m_gs_aspectratio; std::vector m_gs_upscale_multiplier; std::vector m_gs_max_anisotropy; + std::vector m_gs_dithering; std::vector m_gs_bifilter; std::vector m_gs_trifilter; std::vector m_gs_hack; diff --git a/plugins/GSdx/GSdx.rc b/plugins/GSdx/GSdx.rc index 75d11878e2..0e34829276 100644 --- a/plugins/GSdx/GSdx.rc +++ b/plugins/GSdx/GSdx.rc @@ -251,7 +251,7 @@ BEGIN COMBOBOX IDC_COLORSPACE,102,47,48,32,CBS_DROPDOWNLIST | WS_TABSTOP END -IDD_CONFIG DIALOGEX 0, 0, 242, 371 +IDD_CONFIG DIALOGEX 0, 0, 242, 373 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "GSdx Settings" FONT 8, "MS Shell Dlg", 400, 0, 0x1 @@ -268,37 +268,39 @@ BEGIN COMBOBOX IDC_INTERLACE,70,85,166,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP LTEXT "Texture Filtering:",IDC_FILTER_TEXT,6,102,79,8 COMBOBOX IDC_FILTER,70,100,166,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - PUSHBUTTON "OSD Configuration",IDC_OSDBUTTON,10,325,108,14 - PUSHBUTTON "Shader Configuration",IDC_SHADEBUTTON,124,325,108,14 - DEFPUSHBUTTON "OK",IDOK,68,351,50,14 - PUSHBUTTON "Cancel",IDCANCEL,124,351,50,14 + PUSHBUTTON "OSD Configuration",IDC_OSDBUTTON,10,332,108,14 + PUSHBUTTON "Shader Configuration",IDC_SHADEBUTTON,124,332,108,14 + DEFPUSHBUTTON "OK",IDOK,68,352,50,14 + PUSHBUTTON "Cancel",IDCANCEL,124,352,50,14 // Hardware Renderer Settings: - GROUPBOX "Hardware Renderer Settings",IDC_STATIC,6,132,230,139,BS_CENTER - CONTROL "Allow 8-Bit Textures",IDC_PALTEX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,144,90,10 - CONTROL "Large Framebuffer",IDC_LARGE_FB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,104,144,90,10 - LTEXT "Internal Resolution:",IDC_UPSCALE_MULTIPLIER_TEXT,22,160,79,8 - COMBOBOX IDC_UPSCALE_MULTIPLIER,104,158,127,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Anisotropic Filtering:",IDC_AFCOMBO_TEXT,22,176,79,8 - COMBOBOX IDC_AFCOMBO,104,174,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Mipmapping (Ins):",IDC_MIPMAP_HW_TEXT,22,192,79,8 - COMBOBOX IDC_MIPMAP_HW,104,190,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "CRC Hack Level:",IDC_CRC_LEVEL_TEXT,22,208,79,8 - COMBOBOX IDC_CRC_LEVEL,104,206,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "DATE Accuracy:",IDC_ACCURATE_DATE_TEXT,22,224,79,8 - COMBOBOX IDC_ACCURATE_DATE,104,222,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Blending Accuracy:",IDC_ACCURATE_BLEND_UNIT_TEXT,22,240,79,8 - COMBOBOX IDC_ACCURATE_BLEND_UNIT,104,238,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_ACCURATE_BLEND_UNIT_D3D11,104,238,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - CONTROL "Enable HW Hacks",IDC_HACKS_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,256,71,10 - PUSHBUTTON "Advanced Settings and Hacks",IDC_HACKSBUTTON,104,253,127,14 + GROUPBOX "Hardware Renderer Settings",IDC_STATIC,6,121,230,155,BS_CENTER + CONTROL "Allow 8-Bit Textures",IDC_PALTEX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,132,90,10 + CONTROL "Large Framebuffer",IDC_LARGE_FB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,124,132,90,10 + LTEXT "Internal Resolution:",IDC_UPSCALE_MULTIPLIER_TEXT,22,149,79,8 + COMBOBOX IDC_UPSCALE_MULTIPLIER,104,147,127,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Anisotropic Filtering:",IDC_AFCOMBO_TEXT,22,165,79,8 + COMBOBOX IDC_AFCOMBO,104,163,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Dithering (PgDn):",IDC_DITHERING_TEXT,22,181,79,8 + COMBOBOX IDC_DITHERING,104,179,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Mipmapping (Ins):",IDC_MIPMAP_HW_TEXT,22,197,79,8 + COMBOBOX IDC_MIPMAP_HW,104,195,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "CRC Hack Level:",IDC_CRC_LEVEL_TEXT,22,213,79,8 + COMBOBOX IDC_CRC_LEVEL,104,211,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "DATE Accuracy:",IDC_ACCURATE_DATE_TEXT,22,229,79,8 + COMBOBOX IDC_ACCURATE_DATE,104,227,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Blending Accuracy:",IDC_ACCURATE_BLEND_UNIT_TEXT,22,245,79,8 + COMBOBOX IDC_ACCURATE_BLEND_UNIT,104,243,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_ACCURATE_BLEND_UNIT_D3D11,104,243,127,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "Enable HW Hacks",IDC_HACKS_ENABLED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,260,71,10 + PUSHBUTTON "Advanced Settings and Hacks",IDC_HACKSBUTTON,104,258,127,14 // Software Renderer Settings: - GROUPBOX "Software Renderer Settings",IDC_STATIC,6,279,230,41,BS_CENTER - CONTROL "Auto Flush",IDC_AUTO_FLUSH_SW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,290,91,10 - CONTROL "Edge Anti-aliasing (Del)",IDC_AA1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,124,290,91,10 - LTEXT "Rendering threads:",IDC_SWTHREADS_TEXT,124,305,65,8 - EDITTEXT IDC_SWTHREADS_EDIT,197,303,34,13,ES_AUTOHSCROLL | ES_NUMBER + GROUPBOX "Software Renderer Settings",IDC_STATIC,6,282,230,44,BS_CENTER + CONTROL "Auto Flush",IDC_AUTO_FLUSH_SW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,294,90,10 + CONTROL "Edge Anti-aliasing (Del)",IDC_AA1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,124,294,90,10 + LTEXT "Rendering threads:",IDC_SWTHREADS_TEXT,124,310,65,8 + EDITTEXT IDC_SWTHREADS_EDIT,197,308,34,13,ES_AUTOHSCROLL | ES_NUMBER CONTROL "",IDC_SWTHREADS,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,0,0,11,14 - CONTROL "Mipmapping",IDC_MIPMAP_SW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,306,90,10 + CONTROL "Mipmapping",IDC_MIPMAP_SW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,310,90,10 END diff --git a/plugins/GSdx/Window/GSSettingsDlg.cpp b/plugins/GSdx/Window/GSSettingsDlg.cpp index 760b994107..54da920be1 100644 --- a/plugins/GSdx/Window/GSSettingsDlg.cpp +++ b/plugins/GSdx/Window/GSSettingsDlg.cpp @@ -101,6 +101,7 @@ void GSSettingsDlg::OnInit() ComboBoxInit(IDC_ACCURATE_BLEND_UNIT, theApp.m_gs_acc_blend_level, theApp.GetConfigI("accurate_blending_unit")); ComboBoxInit(IDC_ACCURATE_BLEND_UNIT_D3D11, theApp.m_gs_acc_blend_level_d3d11, theApp.GetConfigI("accurate_blending_unit_d3d11")); ComboBoxInit(IDC_CRC_LEVEL, theApp.m_gs_crc_level, theApp.GetConfigI("crc_hack_level")); + ComboBoxInit(IDC_DITHERING, theApp.m_gs_dithering, theApp.GetConfigI("dithering_ps2")); CheckDlgButton(m_hWnd, IDC_PALTEX, theApp.GetConfigB("paltex")); CheckDlgButton(m_hWnd, IDC_LARGE_FB, theApp.GetConfigB("large_framebuffer")); @@ -246,6 +247,11 @@ bool GSSettingsDlg::OnCommand(HWND hWnd, UINT id, UINT code) theApp.SetConfig("MaxAnisotropy", (int)data); } + if (ComboBoxGetSelData(IDC_DITHERING, data)) + { + theApp.SetConfig("dithering_ps2", (int)data); + } + theApp.SetConfig("mipmap", (int)IsDlgButtonChecked(m_hWnd, IDC_MIPMAP_SW)); theApp.SetConfig("paltex", (int)IsDlgButtonChecked(m_hWnd, IDC_PALTEX)); theApp.SetConfig("large_framebuffer", (int)IsDlgButtonChecked(m_hWnd, IDC_LARGE_FB)); @@ -337,6 +343,7 @@ void GSSettingsDlg::UpdateControls() EnableWindow(GetDlgItem(m_hWnd, IDC_UPSCALE_MULTIPLIER), hw); EnableWindow(GetDlgItem(m_hWnd, IDC_UPSCALE_MULTIPLIER_TEXT), hw); EnableWindow(GetDlgItem(m_hWnd, IDC_PALTEX), hw); + EnableWindow(GetDlgItem(m_hWnd, IDC_DITHERING), hw); INT_PTR filter; if (ComboBoxGetSelData(IDC_FILTER, filter)) diff --git a/plugins/GSdx/resource.h b/plugins/GSdx/resource.h index 6193ce9ff3..d062a025dc 100644 --- a/plugins/GSdx/resource.h +++ b/plugins/GSdx/resource.h @@ -37,6 +37,8 @@ #define IDC_ACCURATE_BLEND_UNIT 2043 #define IDC_ACCURATE_BLEND_UNIT_D3D11 2044 #define IDC_ACCURATE_BLEND_UNIT_TEXT 2045 +#define IDC_DITHERING 2046 +#define IDC_DITHERING_TEXT 2047 // Software Renderer Settings: #define IDC_MIPMAP_SW 2060 #define IDC_AA1 2061