Committing a hack KrossX prepared (thanks) ;)
It can be used to fix bad character sprites in Gust games.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5101 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
ramapcsx2 2012-02-22 19:53:59 +00:00
parent 78c1667a9c
commit 7e435329ca
10 changed files with 82 additions and 40 deletions

View File

@ -173,6 +173,7 @@ public:
uint32 ltf:1; uint32 ltf:1;
uint32 colclip:2; uint32 colclip:2;
uint32 date:2; uint32 date:2;
uint32 spritehack;
}; };
uint32 key; uint32 key;

View File

@ -282,6 +282,7 @@ void GSRendererDX::DrawPrims(GSTexture* rt, GSTexture* ds, GSTextureCache::Sourc
ps_sel.tcc = context->TEX0.TCC; ps_sel.tcc = context->TEX0.TCC;
ps_sel.ltf = m_filter == 2 ? m_vt.IsLinear() : m_filter; ps_sel.ltf = m_filter == 2 ? m_vt.IsLinear() : m_filter;
ps_sel.rt = tex->m_target; ps_sel.rt = tex->m_target;
ps_sel.spritehack = tex->m_spritehack_t;
int w = tex->m_texture->GetWidth(); int w = tex->m_texture->GetWidth();
int h = tex->m_texture->GetHeight(); int h = tex->m_texture->GetHeight();

View File

@ -109,6 +109,7 @@ void GSSettingsDlg::OnInit()
// Hacks // Hacks
CheckDlgButton(m_hWnd, IDC_ALPHAHACK, theApp.GetConfig("UserHacks_AlphaHack", 0)); CheckDlgButton(m_hWnd, IDC_ALPHAHACK, theApp.GetConfig("UserHacks_AlphaHack", 0));
CheckDlgButton(m_hWnd, IDC_OFFSETHACK, theApp.GetConfig("UserHacks_HalfPixelOffset", 0)); CheckDlgButton(m_hWnd, IDC_OFFSETHACK, theApp.GetConfig("UserHacks_HalfPixelOffset", 0));
CheckDlgButton(m_hWnd, IDC_SPRITEHACK, theApp.GetConfig("UserHacks_SpriteHack", 0));
SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETRANGE, 0, MAKELPARAM(1000, 0)); 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)); SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_SETPOS, 0, MAKELPARAM(theApp.GetConfig("UserHacks_SkipDraw", 0), 0));
@ -275,6 +276,7 @@ bool GSSettingsDlg::OnCommand(HWND hWnd, UINT id, UINT code)
// Hacks // Hacks
theApp.SetConfig("UserHacks_AlphaHack", (int)IsDlgButtonChecked(m_hWnd, IDC_ALPHAHACK)); theApp.SetConfig("UserHacks_AlphaHack", (int)IsDlgButtonChecked(m_hWnd, IDC_ALPHAHACK));
theApp.SetConfig("UserHacks_HalfPixelOffset", (int)IsDlgButtonChecked(m_hWnd, IDC_OFFSETHACK)); theApp.SetConfig("UserHacks_HalfPixelOffset", (int)IsDlgButtonChecked(m_hWnd, IDC_OFFSETHACK));
theApp.SetConfig("UserHacks_SpriteHack", (int)IsDlgButtonChecked(m_hWnd, IDC_SPRITEHACK));
theApp.SetConfig("UserHacks_SkipDraw", (int)SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_GETPOS, 0, 0)); theApp.SetConfig("UserHacks_SkipDraw", (int)SendMessage(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), UDM_GETPOS, 0, 0));
} }
@ -287,6 +289,7 @@ void GSSettingsDlg::UpdateControls()
INT_PTR i; INT_PTR i;
bool allowHacks = !!theApp.GetConfig("allowHacks", 0); bool allowHacks = !!theApp.GetConfig("allowHacks", 0);
theApp.SetConfig("allowHacks", (int)allowHacks);
int scaling = 1; // in case reading the combo doesn't work, enable the custom res control anyway int scaling = 1; // in case reading the combo doesn't work, enable the custom res control anyway
@ -324,12 +327,14 @@ void GSSettingsDlg::UpdateControls()
EnableWindow(GetDlgItem(m_hWnd, IDC_MSAA), hw); EnableWindow(GetDlgItem(m_hWnd, IDC_MSAA), hw);
//ShowWindow(GetDlgItem(m_hWnd, IDC_USERHACKS), allowHacks && hw) ? SW_SHOW : SW_HIDE; //Don't disable the "Hacks" frame //ShowWindow(GetDlgItem(m_hWnd, IDC_USERHACKS), allowHacks && hw) ? SW_SHOW : SW_HIDE; //Don't disable the "Hacks" frame
ShowWindow(GetDlgItem(m_hWnd, IDC_HACKDISABLED), !(allowHacks && hw)) ? SW_SHOW : SW_HIDE;
ShowWindow(GetDlgItem(m_hWnd, IDC_MSAAEDIT), allowHacks && hw) ? SW_SHOW : SW_HIDE; ShowWindow(GetDlgItem(m_hWnd, IDC_MSAAEDIT), allowHacks && hw) ? SW_SHOW : SW_HIDE;
ShowWindow(GetDlgItem(m_hWnd, IDC_MSAA), allowHacks && hw) ? SW_SHOW : SW_HIDE; ShowWindow(GetDlgItem(m_hWnd, IDC_MSAA), allowHacks && hw) ? SW_SHOW : SW_HIDE;
ShowWindow(GetDlgItem(m_hWnd, IDC_STATIC_TEXT_HWAA), allowHacks && hw) ? SW_SHOW : SW_HIDE; ShowWindow(GetDlgItem(m_hWnd, IDC_STATIC_TEXT_HWAA), allowHacks && hw) ? SW_SHOW : SW_HIDE;
ShowWindow(GetDlgItem(m_hWnd, IDC_ALPHAHACK), allowHacks && hw) ? SW_SHOW : SW_HIDE; ShowWindow(GetDlgItem(m_hWnd, IDC_ALPHAHACK), allowHacks && hw) ? SW_SHOW : SW_HIDE;
ShowWindow(GetDlgItem(m_hWnd, IDC_OFFSETHACK), allowHacks && hw) ? SW_SHOW : SW_HIDE; ShowWindow(GetDlgItem(m_hWnd, IDC_OFFSETHACK), allowHacks && hw) ? SW_SHOW : SW_HIDE;
ShowWindow(GetDlgItem(m_hWnd, IDC_SPRITEHACK), allowHacks && hw) ? SW_SHOW : SW_HIDE;
ShowWindow(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACKEDIT), allowHacks && hw) ? SW_SHOW : SW_HIDE; ShowWindow(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACKEDIT), allowHacks && hw) ? SW_SHOW : SW_HIDE;
ShowWindow(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), allowHacks && hw) ? SW_SHOW : SW_HIDE; ShowWindow(GetDlgItem(m_hWnd, IDC_SKIPDRAWHACK), allowHacks && hw) ? SW_SHOW : SW_HIDE;

View File

@ -25,6 +25,7 @@
GSTextureCache::GSTextureCache(GSRenderer* r) GSTextureCache::GSTextureCache(GSRenderer* r)
: m_renderer(r) : m_renderer(r)
{ {
m_spritehack = !!theApp.GetConfig("UserHacks_SpriteHack", 0);
m_paltex = !!theApp.GetConfig("paltex", 0); m_paltex = !!theApp.GetConfig("paltex", 0);
m_temp = (uint8*)_aligned_malloc(1024 * 1024 * sizeof(uint32), 32); m_temp = (uint8*)_aligned_malloc(1024 * 1024 * sizeof(uint32), 32);
@ -584,6 +585,11 @@ GSTextureCache::Source* GSTextureCache::CreateSource(const GIFRegTEX0& TEX0, con
if(dst == NULL) if(dst == NULL)
{ {
if(m_spritehack && TEX0.CPSM == 2 && (TEX0.PSM == 19 || TEX0.PSM == 27))
src->m_spritehack_t = true;
else
src->m_spritehack_t = false;
if(m_paltex && GSLocalMemory::m_psm[TEX0.PSM].pal > 0) if(m_paltex && GSLocalMemory::m_psm[TEX0.PSM].pal > 0)
{ {
src->m_fmt = FMT_8; src->m_fmt = FMT_8;

View File

@ -75,6 +75,7 @@ public:
bool m_target; bool m_target;
bool m_complete; bool m_complete;
bool m_repeating; bool m_repeating;
bool m_spritehack_t;
vector<GSVector2i>* m_p2t; vector<GSVector2i>* m_p2t;
public: public:
@ -118,6 +119,7 @@ protected:
SourceMap m_src; SourceMap m_src;
list<Target*> m_dst[2]; list<Target*> m_dst[2];
bool m_paltex; bool m_paltex;
bool m_spritehack;
uint8* m_temp; uint8* m_temp;
virtual Source* CreateSource(const GIFRegTEX0& TEX0, const GIFRegTEXA& TEXA, Target* t = NULL); virtual Source* CreateSource(const GIFRegTEX0& TEX0, const GIFRegTEXA& TEXA, Target* t = NULL);

View File

@ -177,7 +177,7 @@ void GSDevice11::SetupPS(PSSelector sel, const PSConstantBuffer* cb, PSSamplerSe
if(i == m_ps.end()) if(i == m_ps.end())
{ {
string str[15]; string str[16];
str[0] = format("%d", sel.fst); str[0] = format("%d", sel.fst);
str[1] = format("%d", sel.wms); str[1] = format("%d", sel.wms);
@ -194,6 +194,7 @@ void GSDevice11::SetupPS(PSSelector sel, const PSConstantBuffer* cb, PSSamplerSe
str[12] = format("%d", sel.ltf); str[12] = format("%d", sel.ltf);
str[13] = format("%d", sel.colclip); str[13] = format("%d", sel.colclip);
str[14] = format("%d", sel.date); str[14] = format("%d", sel.date);
str[15] = format("%d", sel.spritehack);
D3D11_SHADER_MACRO macro[] = D3D11_SHADER_MACRO macro[] =
{ {
@ -212,6 +213,7 @@ void GSDevice11::SetupPS(PSSelector sel, const PSConstantBuffer* cb, PSSamplerSe
{"PS_LTF", str[12].c_str()}, {"PS_LTF", str[12].c_str()},
{"PS_COLCLIP", str[13].c_str()}, {"PS_COLCLIP", str[13].c_str()},
{"PS_DATE", str[14].c_str()}, {"PS_DATE", str[14].c_str()},
{"PS_SPRITEHACK", str[15].c_str()},
{NULL, NULL}, {NULL, NULL},
}; };

View File

@ -135,7 +135,7 @@ void GSDevice9::SetupPS(PSSelector sel, const PSConstantBuffer* cb, PSSamplerSel
if(i == m_ps.end()) if(i == m_ps.end())
{ {
string str[14]; string str[15];
str[0] = format("%d", sel.fst); str[0] = format("%d", sel.fst);
str[1] = format("%d", sel.wms); str[1] = format("%d", sel.wms);
@ -151,6 +151,7 @@ void GSDevice9::SetupPS(PSSelector sel, const PSConstantBuffer* cb, PSSamplerSel
str[11] = format("%d", sel.ltf); str[11] = format("%d", sel.ltf);
str[12] = format("%d", sel.colclip); str[12] = format("%d", sel.colclip);
str[13] = format("%d", sel.date); str[13] = format("%d", sel.date);
str[14] = format("%d", sel.spritehack);
D3DXMACRO macro[] = D3DXMACRO macro[] =
{ {
@ -168,6 +169,7 @@ void GSDevice9::SetupPS(PSSelector sel, const PSConstantBuffer* cb, PSSamplerSel
{"PS_LTF", str[11].c_str()}, {"PS_LTF", str[11].c_str()},
{"PS_COLCLIP", str[12].c_str()}, {"PS_COLCLIP", str[12].c_str()},
{"PS_DATE", str[13].c_str()}, {"PS_DATE", str[13].c_str()},
{"PS_SPRITEHACK", str[14].c_str()},
{NULL, NULL}, {NULL, NULL},
}; };

View File

@ -72,7 +72,7 @@ IDB_LOGO10 BITMAP "res\\logo10.bmp"
// Dialog // Dialog
// //
IDD_CONFIG DIALOGEX 0, 0, 189, 351 IDD_CONFIG DIALOGEX 0, 0, 189, 327
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Settings..." CAPTION "Settings..."
FONT 8, "MS Shell Dlg", 400, 0, 0x1 FONT 8, "MS Shell Dlg", 400, 0, 0x1
@ -87,8 +87,8 @@ BEGIN
COMBOBOX IDC_INTERLACE,71,86,111,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_INTERLACE,71,86,111,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Aspect Ratio (F6):",IDC_STATIC,7,104,60,8 LTEXT "Aspect Ratio (F6):",IDC_STATIC,7,104,60,8
COMBOBOX IDC_ASPECTRATIO,71,101,111,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_ASPECTRATIO,71,101,111,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "OK",IDOK,43,323,50,14 DEFPUSHBUTTON "OK",IDOK,43,303,50,14
PUSHBUTTON "Cancel",IDCANCEL,96,323,50,14 PUSHBUTTON "Cancel",IDCANCEL,96,303,50,14
CONTROL "Windowed",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,231,93,10 CONTROL "Windowed",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,231,93,10
LTEXT "D3D internal res:",IDC_STATIC,18,135,55,8 LTEXT "D3D internal res:",IDC_STATIC,18,135,55,8
EDITTEXT IDC_RESX_EDIT,82,132,35,13,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_RESX_EDIT,82,132,35,13,ES_AUTOHSCROLL | ES_NUMBER
@ -99,9 +99,9 @@ BEGIN
COMBOBOX IDC_UPSCALE_MULTIPLIER,82,147,74,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_UPSCALE_MULTIPLIER,82,147,74,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Or use Scaling:",IDC_STATIC,18,150,49,8 LTEXT "Or use Scaling:",IDC_STATIC,18,150,49,8
LTEXT "Or use original PS2 resolution :",IDC_STATIC,18,165,99,8 LTEXT "Or use original PS2 resolution :",IDC_STATIC,18,165,99,8
EDITTEXT IDC_MSAAEDIT,75,258,35,13,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_MSAAEDIT,45,259,35,13,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_MSAA,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,109,261,11,14 CONTROL "",IDC_MSAA,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,76,261,11,14
LTEXT "HW Anti Aliasing",IDC_STATIC_TEXT_HWAA,18,261,53,8 LTEXT "HW AA",IDC_STATIC_TEXT_HWAA,18,261,24,8
GROUPBOX "D3D Enhancements (can cause glitches)",IDC_STATIC,7,117,175,66 GROUPBOX "D3D Enhancements (can cause glitches)",IDC_STATIC,7,117,175,66
LTEXT "Extra rendering threads:",IDC_STATIC,7,189,80,8 LTEXT "Extra rendering threads:",IDC_STATIC,7,189,80,8
EDITTEXT IDC_SWTHREADS_EDIT,89,187,35,13,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_SWTHREADS_EDIT,89,187,35,13,ES_AUTOHSCROLL | ES_NUMBER
@ -111,12 +111,14 @@ BEGIN
CONTROL "Allow 8-bit textures",IDC_PALTEX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,217,82,10 CONTROL "Allow 8-bit textures",IDC_PALTEX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,217,82,10
CONTROL "Alpha correction (FBA)",IDC_FBA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,217,93,10 CONTROL "Alpha correction (FBA)",IDC_FBA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,89,217,93,10
CONTROL "Edge anti-aliasing",IDC_AA1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,231,72,10 CONTROL "Edge anti-aliasing",IDC_AA1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,231,72,10
CONTROL "Alpha Hack",IDC_ALPHAHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,20,279,51,10 CONTROL "Alpha Hack",IDC_ALPHAHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,280,51,10
CONTROL "Offset Hack",IDC_OFFSETHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,85,279,51,10 CONTROL "Offset Hack",IDC_OFFSETHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,67,280,51,10
GROUPBOX "Hacks",IDC_USERHACKS,13,244,161,71,BS_CENTER GROUPBOX "Hacks",IDC_USERHACKS,7,244,175,53,BS_CENTER
EDITTEXT IDC_SKIPDRAWHACKEDIT,55,291,40,14,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_SKIPDRAWHACKEDIT,122,259,40,14,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_SKIPDRAWHACK,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,94,293,11,14 CONTROL "",IDC_SKIPDRAWHACK,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,161,261,11,14
LTEXT "SkipDraw:",IDC_STATIC_TEXT_SKIPDRAW,20,293,33,8 LTEXT "SkipDraw:",IDC_STATIC_TEXT_SKIPDRAW,89,261,33,8
CONTROL "Sprite Hack",IDC_SPRITEHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,123,280,51,10
LTEXT "HACKS DISABLED",IDC_HACKDISABLED,64,268,57,8,WS_DISABLED
END END
IDD_CAPTURE DIALOGEX 0, 0, 279, 71 IDD_CAPTURE DIALOGEX 0, 0, 279, 71
@ -163,48 +165,50 @@ BEGIN
CONTROL "Windowed",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,129,157,49,10 CONTROL "Windowed",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,129,157,49,10
END END
IDD_CONFIG2 DIALOGEX 0, 0, 187, 341 IDD_CONFIG2 DIALOGEX 0, 0, 187, 325
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Settings..." CAPTION "Settings..."
FONT 8, "MS Shell Dlg", 400, 0, 0x1 FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN BEGIN
CONTROL 2022,IDC_LOGO11,"Static",SS_BITMAP,6,6,173,42 CONTROL 2022,IDC_LOGO11,"Static",SS_BITMAP,6,6,173,42
DEFPUSHBUTTON "OK",IDOK,41,312,50,14 DEFPUSHBUTTON "OK",IDOK,41,301,50,14
LTEXT "Renderer:",IDC_STATIC,6,57,34,8 LTEXT "Renderer:",IDC_STATIC,6,57,34,8
COMBOBOX IDC_RENDERER,70,55,111,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_RENDERER,70,55,111,118,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Interlacing (F5):",IDC_STATIC,6,73,81,8 LTEXT "Interlacing (F5):",IDC_STATIC,6,73,81,8
COMBOBOX IDC_INTERLACE,70,70,111,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_INTERLACE,70,70,111,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Custom resolution:",IDC_STATIC,26,135,65,8 LTEXT "Custom resolution:",IDC_STATIC,26,134,65,8
EDITTEXT IDC_RESX_EDIT,92,132,35,13,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_RESX_EDIT,92,132,35,13,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_RESX,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,120,135,11,14 CONTROL "",IDC_RESX,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,120,135,11,14
EDITTEXT IDC_RESY_EDIT,130,132,35,13,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_RESY_EDIT,130,132,35,13,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_RESY,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,154,130,11,14 CONTROL "",IDC_RESY,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,154,130,11,14
CONTROL "Native",IDC_NATIVERES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,105,33,10 CONTROL "Native",IDC_NATIVERES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,105,33,10
LTEXT "Extra rendering threads:",IDC_STATIC,19,214,80,8 LTEXT "Extra rendering threads:",IDC_STATIC,11,214,80,8
EDITTEXT IDC_SWTHREADS_EDIT,102,212,35,13,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_SWTHREADS_EDIT,94,212,35,13,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_SWTHREADS,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,135,215,11,14 CONTROL "",IDC_SWTHREADS,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,127,215,11,14
COMBOBOX IDC_UPSCALE_MULTIPLIER,92,117,74,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_UPSCALE_MULTIPLIER,92,117,74,98,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Or use Scaling:",IDC_STATIC,38,120,49,8 LTEXT "Or use Scaling:",IDC_STATIC,38,119,49,8
LTEXT "Original PS2 resolution :",IDC_STATIC,10,105,80,8 LTEXT "Original PS2 resolution :",IDC_STATIC,10,105,80,8
CONTROL "Edge anti-aliasing (AA1)",IDC_AA1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,230,93,10 CONTROL "Edge anti-aliasing (AA1)",IDC_AA1,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,230,93,10
PUSHBUTTON "Cancel",IDCANCEL,95,312,50,14 PUSHBUTTON "Cancel",IDCANCEL,95,301,50,14
CONTROL 2021,IDC_LOGO9,"Static",SS_BITMAP,6,6,175,44 CONTROL 2021,IDC_LOGO9,"Static",SS_BITMAP,6,6,175,44
CONTROL "Alpha Hack",IDC_ALPHAHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,275,51,10 CONTROL "Alpha Hack",IDC_ALPHAHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,279,51,10
CONTROL "Offset Hack",IDC_OFFSETHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,87,275,51,10 CONTROL "Offset Hack",IDC_OFFSETHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,65,279,51,10
GROUPBOX "Hacks",IDC_USERHACKS,6,250,175,55,BS_CENTER GROUPBOX "Hacks",IDC_USERHACKS,6,250,175,45,BS_CENTER
EDITTEXT IDC_SKIPDRAWHACKEDIT,65,286,40,14,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_SKIPDRAWHACKEDIT,125,260,40,14,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_SKIPDRAWHACK,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,104,288,11,14 CONTROL "",IDC_SKIPDRAWHACK,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,164,262,11,14
LTEXT "Skipdraw Hack:",IDC_STATIC_TEXT_SKIPDRAW,11,289,50,8 LTEXT "Skipdraw",IDC_STATIC_TEXT_SKIPDRAW,93,262,30,8
EDITTEXT IDC_MSAAEDIT,69,260,35,13,ES_AUTOHSCROLL | ES_NUMBER EDITTEXT IDC_MSAAEDIT,38,260,35,13,ES_AUTOHSCROLL | ES_NUMBER
CONTROL "",IDC_MSAA,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,103,263,11,14 CONTROL "",IDC_MSAA,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,72,263,11,14
GROUPBOX "D3D Internal resolution (can cause glitches)",IDC_STATIC,6,87,175,64,BS_CENTER GROUPBOX "D3D Internal resolution (can cause glitches)",IDC_STATIC,6,87,175,64,BS_CENTER
GROUPBOX "Software Mode Settings",IDC_STATIC,6,198,175,50,BS_CENTER GROUPBOX "Software Mode Settings",IDC_STATIC,6,198,175,50,BS_CENTER
GROUPBOX "Hardware Mode Settings",IDC_STATIC,6,152,175,45,BS_CENTER GROUPBOX "Hardware Mode Settings",IDC_STATIC,6,152,175,45,BS_CENTER
CONTROL "Logarithmic Z",IDC_LOGZ,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,88,166,58,10 CONTROL "Logarithmic Z",IDC_LOGZ,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,166,58,10
CONTROL "Alpha correction (FBA)",IDC_FBA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,88,179,87,10 CONTROL "Alpha correction (FBA)",IDC_FBA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,92,179,87,10
CONTROL "Allow 8-bit textures",IDC_PALTEX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,179,82,10 CONTROL "Allow 8-bit textures",IDC_PALTEX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,179,82,10
CONTROL "Texture filtering",IDC_FILTER,"Button",BS_AUTO3STATE | WS_TABSTOP,6,165,67,10 CONTROL "Texture filtering",IDC_FILTER,"Button",BS_AUTO3STATE | WS_TABSTOP,10,165,67,10
LTEXT "HW Anti Aliasing",IDC_STATIC_TEXT_HWAA,11,263,53,8 LTEXT "HW AA",IDC_STATIC_TEXT_HWAA,11,262,24,8
CONTROL "Sprite Hack",IDC_SPRITEHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,125,279,51,10
LTEXT "HACKS DISABLED",IDC_HACKDISABLED,62,268,57,8,WS_DISABLED
END END
@ -224,7 +228,7 @@ BEGIN
VERTGUIDE, 89 VERTGUIDE, 89
VERTGUIDE, 182 VERTGUIDE, 182
TOPMARGIN, 7 TOPMARGIN, 7
BOTTOMMARGIN, 344 BOTTOMMARGIN, 320
HORZGUIDE, 49 HORZGUIDE, 49
END END
@ -252,7 +256,7 @@ BEGIN
RIGHTMARGIN, 181 RIGHTMARGIN, 181
VERTGUIDE, 87 VERTGUIDE, 87
TOPMARGIN, 6 TOPMARGIN, 6
BOTTOMMARGIN, 334 BOTTOMMARGIN, 318
END END
END END
#endif // APSTUDIO_INVOKED #endif // APSTUDIO_INVOKED

View File

@ -36,6 +36,7 @@
#define PS_LTF 1 #define PS_LTF 1
#define PS_COLCLIP 0 #define PS_COLCLIP 0
#define PS_DATE 0 #define PS_DATE 0
#define PS_SPRITEHACK 0
#endif #endif
struct VS_INPUT struct VS_INPUT
@ -412,7 +413,19 @@ float4 sample(float2 st, float q)
if(PS_LTF) if(PS_LTF)
{ {
#if PS_SPRITEHACK
c[0].rgb *= c[0].a;
c[1].rgb *= c[1].a;
c[2].rgb *= c[2].a;
c[3].rgb *= c[3].a;
#endif
t = lerp(lerp(c[0], c[1], dd.x), lerp(c[2], c[3], dd.x), dd.y); t = lerp(lerp(c[0], c[1], dd.x), lerp(c[2], c[3], dd.x), dd.y);
#if PS_SPRITEHACK
t.rgb /= t.a;
if(t.a < 0.25) t.a = 0;
#endif
} }
else else
{ {
@ -422,6 +435,10 @@ float4 sample(float2 st, float q)
if(PS_FMT == FMT_32) if(PS_FMT == FMT_32)
{ {
#if PS_SPRITEHACK
if(t.a < 0.25) t.a = 0;
#endif
#if SHADER_MODEL <= 0x300 #if SHADER_MODEL <= 0x300
if(PS_RT) t.a *= 128.0f / 255; if(PS_RT) t.a *= 128.0f / 255;
#endif #endif

View File

@ -74,6 +74,8 @@
#define IDC_USERHACKS 2047 #define IDC_USERHACKS 2047
#define IDC_SKIPDRAWHACKEDIT 2048 #define IDC_SKIPDRAWHACKEDIT 2048
#define IDC_STATIC10 2049 #define IDC_STATIC10 2049
#define IDC_HACKDISABLED 2050
#define IDC_SPRITEHACK 2051
#define IDC_COLORSPACE 3000 #define IDC_COLORSPACE 3000
#define IDR_CONVERT_FX 10000 #define IDR_CONVERT_FX 10000
#define IDR_TFX_FX 10001 #define IDR_TFX_FX 10001
@ -89,7 +91,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 10007 #define _APS_NEXT_RESOURCE_VALUE 10007
#define _APS_NEXT_COMMAND_VALUE 32771 #define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 2050 #define _APS_NEXT_CONTROL_VALUE 2052
#define _APS_NEXT_SYMED_VALUE 5000 #define _APS_NEXT_SYMED_VALUE 5000
#endif #endif
#endif #endif