diff --git a/plugins/GSdx/GSSettingsDlg.cpp b/plugins/GSdx/GSSettingsDlg.cpp index bd035c0f8a..b6bccc52a8 100644 --- a/plugins/GSdx/GSSettingsDlg.cpp +++ b/plugins/GSdx/GSSettingsDlg.cpp @@ -411,7 +411,7 @@ void GSHacksDlg::OnInit() cb2msaa[j] = i; char text[32] = {0}; - sprintf(text, "%dx ????", i); + sprintf(text, "%dx ", i); SendMessage(GetDlgItem(m_hWnd, IDC_MSAACB), CB_ADDSTRING, 0, (LPARAM)text); } @@ -425,15 +425,70 @@ void GSHacksDlg::OnInit() SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETRANGE, 0, MAKELPARAM(1000, 0)); SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfig("UserHacks_SkipDraw", 0), 0)); + + + // Hacks descriptions + SetWindowText(GetDlgItem(m_hWnd, IDC_HACK_DESCRIPTION), ""); // Blank it + + sprintf(Hack[HK_MSAA].description, "Multisample Anti-Aliasing\n\nEnables hardware Anti-Aliasing. Needs lots of memory." + " The Z-24 modes might need to have LogarithmicZ to compensate for the bits lost (DX9 mode)."); + sprintf(Hack[HK_SKIPDRAW].description, "Skipdraw\n\nSkips drawing n surfaces completely. " + "Use it, for example, to try and get rid of messed up post processing effects." + " Try values between 1 and 100."); + sprintf(Hack[HK_ALPHA].description, "Alpha Hack\n\nDifferent alpha handling. Works around some shadow problems."); + sprintf(Hack[HK_OFFSET].description, "Halfpixel\n\nMight fix some misaligned fog, bloom, or blend effect."); + sprintf(Hack[HK_SPRITE].description, "Sprite Hack\n\nHelps getting rid of black inner lines in some filtered sprites." + " Half option should be the preferred one, for Mana Khemia and ArTonelico for example." + " Full should be used for Tales of Destiny."); + sprintf(Hack[HK_WILD].description, "WildArms\n\nLowers the GS precission to avoid gaps between pixels when" + " upscaling. Full option fixes the text on WildArms games, while Half option might improve portraits" + " in ArTonelico for example."); + + SetNotHover(-1); } void GSHacksDlg::UpdateControls() {} -bool GSHacksDlg::OnMessage(UINT message, WPARAM wParam, LPARAM lParam) +void GSHacksDlg::SetNotHover(int skip) { - switch(message) + for(int i=0; i= 20 && pos.x <= 120) + { + int isHovering = -1; + + if(pos.y >= 28 && pos.y <= 52) isHovering = HK_MSAA; + else if(pos.y >= 54 && pos.y <= 82) isHovering = HK_SKIPDRAW; + else if(pos.y >= 84 && pos.y <= 106) isHovering = HK_ALPHA; + else if(pos.y >= 112 && pos.y <= 134) isHovering = HK_OFFSET; + else if(pos.y >= 140 && pos.y <= 164) isHovering = HK_SPRITE; + else if (pos.y >= 168 && pos.y <= 190) isHovering = HK_WILD; + + if(isHovering > -1 && !Hack[isHovering].isHovered) + { + Hack[isHovering].isHovered = true; + SetWindowText(GetDlgItem(m_hWnd, IDC_HACK_DESCRIPTION), Hack[isHovering].description); + SetNotHover(isHovering); + } + } + + + } break; + case WM_COMMAND: { int id = LOWORD(wParam); diff --git a/plugins/GSdx/GSSettingsDlg.h b/plugins/GSdx/GSSettingsDlg.h index 5cd3945304..76eb3729e7 100644 --- a/plugins/GSdx/GSSettingsDlg.h +++ b/plugins/GSdx/GSSettingsDlg.h @@ -47,7 +47,25 @@ class GSHacksDlg : public GSDialog bool isdx9; + enum + { + HK_MSAA, + HK_SKIPDRAW, + HK_ALPHA, + HK_OFFSET, + HK_SPRITE, + HK_WILD, + HK_SIZE + }; + + struct + { + bool isHovered; + char description[1024]; + } Hack[HK_SIZE]; + void UpdateControls(); + void SetNotHover(int i); protected: void OnInit(); diff --git a/plugins/GSdx/GSdx.rc b/plugins/GSdx/GSdx.rc index 40adf9b42a..c542348150 100644 --- a/plugins/GSdx/GSdx.rc +++ b/plugins/GSdx/GSdx.rc @@ -89,15 +89,10 @@ BEGIN CONTROL "Alpha",IDC_ALPHAHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,54,34,10 CONTROL "Half-pixel Offset",IDC_OFFSETHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,71,65,10 CONTROL "Sprite",IDC_SPRITEHACK,"Button",BS_AUTO3STATE | WS_TABSTOP,14,88,35,10 - LTEXT "It tickles your GPU's fancy",IDC_STATIC,92,20,82,8 - LTEXT "Makes Kratos a sad panda. Don't try with values over 9000.",IDC_STATIC,92,37,187,8 - LTEXT "Works around some shadow problems",IDC_STATIC,92,54,120,8 - LTEXT "May fix displaced fog or blend effects",IDC_STATIC,92,71,117,8 - LTEXT "Fixes character sprites in some 2D games",IDC_STATIC,92,88,129,8 LTEXT "USE AT YOUR OWN RISK!",IDC_STATIC,7,182,84,8,WS_DISABLED COMBOBOX IDC_MSAACB,35,18,44,63,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP CONTROL "WildArmsOffset",IDC_WILDHACK,"Button",BS_AUTO3STATE | WS_TABSTOP,14,105,64,10 - LTEXT "Lowers GS precission. Can fix text in Wild Arms and others.",IDC_STATIC,92,105,200,11 + LTEXT "TEXT_GOES_HERE",IDC_HACK_DESCRIPTION,92,20,209,145 END IDD_SHADEBOOST DIALOGEX 0, 0, 316, 129 diff --git a/plugins/GSdx/resource.h b/plugins/GSdx/resource.h index 8bcb3fcb2f..eea77d33f1 100644 --- a/plugins/GSdx/resource.h +++ b/plugins/GSdx/resource.h @@ -89,6 +89,7 @@ #define IDC_MSAACB 2070 #define IDC_HACKSBUTTON 2071 #define IDC_WILDHACK 2072 +#define IDC_HACK_DESCRIPTION 2073 #define IDC_COLORSPACE 3000 #define IDR_CONVERT_FX 10000 #define IDR_TFX_FX 10001 @@ -107,7 +108,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 10012 #define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 2073 +#define _APS_NEXT_CONTROL_VALUE 2074 #define _APS_NEXT_SYMED_VALUE 5000 #endif #endif