apply patch #159 from tracker to add hack for softrasterizer text rendering improvement in some games
This commit is contained in:
parent
fd3b89bac2
commit
443b24cac2
|
@ -499,6 +499,7 @@ extern struct TCommonSettings {
|
||||||
, GFX3D_LineHack(true)
|
, GFX3D_LineHack(true)
|
||||||
, GFX3D_Zelda_Shadow_Depth_Hack(0)
|
, GFX3D_Zelda_Shadow_Depth_Hack(0)
|
||||||
, GFX3D_Renderer_Multisample(false)
|
, GFX3D_Renderer_Multisample(false)
|
||||||
|
, GFX3D_TXTHack(false)
|
||||||
, jit_max_block_size(100)
|
, jit_max_block_size(100)
|
||||||
, loadToMemory(false)
|
, loadToMemory(false)
|
||||||
, UseExtBIOS(false)
|
, UseExtBIOS(false)
|
||||||
|
@ -557,6 +558,7 @@ extern struct TCommonSettings {
|
||||||
bool GFX3D_LineHack;
|
bool GFX3D_LineHack;
|
||||||
int GFX3D_Zelda_Shadow_Depth_Hack;
|
int GFX3D_Zelda_Shadow_Depth_Hack;
|
||||||
bool GFX3D_Renderer_Multisample;
|
bool GFX3D_Renderer_Multisample;
|
||||||
|
bool GFX3D_TXTHack;
|
||||||
|
|
||||||
bool loadToMemory;
|
bool loadToMemory;
|
||||||
|
|
||||||
|
|
|
@ -477,13 +477,34 @@ public:
|
||||||
|
|
||||||
//finally, we can use floor here. but, it is slower than we want.
|
//finally, we can use floor here. but, it is slower than we want.
|
||||||
//the best solution is probably to wait until the pipeline is full of fixed point
|
//the best solution is probably to wait until the pipeline is full of fixed point
|
||||||
|
|
||||||
|
//add TXT Hack options - tkd3
|
||||||
|
if(CommonSettings.GFX3D_TXTHack==false)
|
||||||
|
{
|
||||||
s32 iu = s32floor(u);
|
s32 iu = s32floor(u);
|
||||||
s32 iv = s32floor(v);
|
s32 iv = s32floor(v);
|
||||||
sampler.dowrap(iu,iv);
|
sampler.dowrap(iu,iv);
|
||||||
|
|
||||||
FragmentColor color;
|
FragmentColor color;
|
||||||
color.color = ((u32*)lastTexKey->decoded)[(iv<<sampler.wshift)+iu];
|
color.color = ((u32*)lastTexKey->decoded)[(iv<<sampler.wshift)+iu];
|
||||||
return color;
|
return color;
|
||||||
|
}else{
|
||||||
|
s32 iu = round_s(u);
|
||||||
|
s32 iv = round_s(v);
|
||||||
|
sampler.dowrap(iu,iv);
|
||||||
|
FragmentColor color;
|
||||||
|
color.color = ((u32*)lastTexKey->decoded)[(iv<<sampler.wshift)+iu];
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//round function - tkd3
|
||||||
|
float round_s(double val){
|
||||||
|
if (val > 0.0 ){
|
||||||
|
return floorf(val*256.0f+0.5f)/256.0f; //this value(256.0) is good result.(I think)
|
||||||
|
} else {
|
||||||
|
return -1.0*floorf(fabs(val)*256.0f+0.5f)/256.0f;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Shader
|
struct Shader
|
||||||
|
|
|
@ -3335,6 +3335,7 @@ int _main()
|
||||||
CommonSettings.GFX3D_Fog = GetPrivateProfileBool("3D", "EnableFog", 1, IniName);
|
CommonSettings.GFX3D_Fog = GetPrivateProfileBool("3D", "EnableFog", 1, IniName);
|
||||||
CommonSettings.GFX3D_Texture = GetPrivateProfileBool("3D", "EnableTexture", 1, IniName);
|
CommonSettings.GFX3D_Texture = GetPrivateProfileBool("3D", "EnableTexture", 1, IniName);
|
||||||
CommonSettings.GFX3D_LineHack = GetPrivateProfileBool("3D", "EnableLineHack", 1, IniName);
|
CommonSettings.GFX3D_LineHack = GetPrivateProfileBool("3D", "EnableLineHack", 1, IniName);
|
||||||
|
CommonSettings.GFX3D_TXTHack = GetPrivateProfileBool("3D", "EnableTXTHack", 0, IniName); //default is off.
|
||||||
Change3DCoreWithFallbackAndSave(cur3DCore);
|
Change3DCoreWithFallbackAndSave(cur3DCore);
|
||||||
|
|
||||||
#ifdef BETA_VERSION
|
#ifdef BETA_VERSION
|
||||||
|
@ -6320,6 +6321,7 @@ LRESULT CALLBACK GFX3DSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp)
|
||||||
CheckDlgButton(hw,IDC_3DSETTINGS_FOG,CommonSettings.GFX3D_Fog);
|
CheckDlgButton(hw,IDC_3DSETTINGS_FOG,CommonSettings.GFX3D_Fog);
|
||||||
CheckDlgButton(hw,IDC_3DSETTINGS_TEXTURE,CommonSettings.GFX3D_Texture);
|
CheckDlgButton(hw,IDC_3DSETTINGS_TEXTURE,CommonSettings.GFX3D_Texture);
|
||||||
CheckDlgButton(hw,IDC_3DSETTINGS_LINEHACK, CommonSettings.GFX3D_LineHack);
|
CheckDlgButton(hw,IDC_3DSETTINGS_LINEHACK, CommonSettings.GFX3D_LineHack);
|
||||||
|
CheckDlgButton(hw,IDC_TXTHACK, CommonSettings.GFX3D_TXTHack);
|
||||||
SetDlgItemInt (hw,IDC_ZELDA_SHADOW_DEPTH_HACK,CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack,FALSE);
|
SetDlgItemInt (hw,IDC_ZELDA_SHADOW_DEPTH_HACK,CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack,FALSE);
|
||||||
//CheckDlgButton(hw,IDC_ALTERNATEFLUSH,CommonSettings.gfx3d_flushMode);
|
//CheckDlgButton(hw,IDC_ALTERNATEFLUSH,CommonSettings.gfx3d_flushMode);
|
||||||
|
|
||||||
|
@ -6343,6 +6345,7 @@ LRESULT CALLBACK GFX3DSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp)
|
||||||
CommonSettings.GFX3D_Texture = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_TEXTURE);
|
CommonSettings.GFX3D_Texture = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_TEXTURE);
|
||||||
CommonSettings.GFX3D_LineHack = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_LINEHACK);
|
CommonSettings.GFX3D_LineHack = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_LINEHACK);
|
||||||
CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack = GetDlgItemInt(hw,IDC_ZELDA_SHADOW_DEPTH_HACK,NULL,FALSE);
|
CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack = GetDlgItemInt(hw,IDC_ZELDA_SHADOW_DEPTH_HACK,NULL,FALSE);
|
||||||
|
CommonSettings.GFX3D_TXTHack = IsDlgCheckboxChecked(hw,IDC_TXTHACK);
|
||||||
|
|
||||||
Change3DCoreWithFallbackAndSave(ComboBox_GetCurSel(GetDlgItem(hw, IDC_3DCORE)));
|
Change3DCoreWithFallbackAndSave(ComboBox_GetCurSel(GetDlgItem(hw, IDC_3DCORE)));
|
||||||
WritePrivateProfileBool("3D", "HighResolutionInterpolateColor", CommonSettings.GFX3D_HighResolutionInterpolateColor, IniName);
|
WritePrivateProfileBool("3D", "HighResolutionInterpolateColor", CommonSettings.GFX3D_HighResolutionInterpolateColor, IniName);
|
||||||
|
@ -6351,6 +6354,7 @@ LRESULT CALLBACK GFX3DSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp)
|
||||||
WritePrivateProfileBool("3D", "EnableTexture", CommonSettings.GFX3D_Texture, IniName);
|
WritePrivateProfileBool("3D", "EnableTexture", CommonSettings.GFX3D_Texture, IniName);
|
||||||
WritePrivateProfileInt ("3D", "ZeldaShadowDepthHack", CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack, IniName);
|
WritePrivateProfileInt ("3D", "ZeldaShadowDepthHack", CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack, IniName);
|
||||||
WritePrivateProfileInt ("3D", "EnableLineHack", CommonSettings.GFX3D_LineHack, IniName);
|
WritePrivateProfileInt ("3D", "EnableLineHack", CommonSettings.GFX3D_LineHack, IniName);
|
||||||
|
WritePrivateProfileInt ("3D", "EnableTXTHack", CommonSettings.GFX3D_TXTHack, IniName);
|
||||||
//WritePrivateProfileInt("3D", "AlternateFlush", CommonSettings.gfx3d_flushMode, IniName);
|
//WritePrivateProfileInt("3D", "AlternateFlush", CommonSettings.gfx3d_flushMode, IniName);
|
||||||
}
|
}
|
||||||
case IDCANCEL:
|
case IDCANCEL:
|
||||||
|
|
|
@ -1054,6 +1054,8 @@
|
||||||
#define IDM_RENDER_LQ2XS 60083
|
#define IDM_RENDER_LQ2XS 60083
|
||||||
#define IDC_SAVETYPE 64000
|
#define IDC_SAVETYPE 64000
|
||||||
#define IDC_AUTOLOADLUA 64001
|
#define IDC_AUTOLOADLUA 64001
|
||||||
|
#define IDC_TXTHACK 64002
|
||||||
|
#define ID_LABEL_TXTHACK1 64003
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
|
|
|
@ -112,26 +112,28 @@ BEGIN
|
||||||
PUSHBUTTON "&Cancel",IDCANCEL,127,94,50,16
|
PUSHBUTTON "&Cancel",IDCANCEL,127,94,50,16
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_3DSETTINGS DIALOGEX 0, 0, 190, 210
|
IDD_3DSETTINGS DIALOGEX 0, 0, 190, 225
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "3D settings"
|
CAPTION "3D settings"
|
||||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
DEFPUSHBUTTON "OK",IDOK,67,188,50,14
|
DEFPUSHBUTTON "OK",IDOK,80,203,50,14
|
||||||
PUSHBUTTON "Cancel",IDCANCEL,121,188,50,14
|
PUSHBUTTON "Cancel",IDCANCEL,135,203,50,14
|
||||||
PUSHBUTTON "Default",IDC_DEFAULT,11,188,50,14
|
PUSHBUTTON "Default",IDC_DEFAULT,8,203,50,14
|
||||||
GROUPBOX "Renderer:",IDC_STATIC,7,7,174,39
|
GROUPBOX "Renderer:",IDC_STATIC,7,7,174,39
|
||||||
COMBOBOX IDC_3DCORE,15,23,153,138,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_3DCORE,15,23,153,138,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
CONTROL "Unrealistically High-Precision Color Interpolation",IDC_INTERPOLATECOLOR,
|
CONTROL "Unrealistically High-Precision Color Interpolation",IDC_INTERPOLATECOLOR,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,64,165,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,64,165,10
|
||||||
GROUPBOX "SoftRasterizer Options",IDC_STATIC,7,52,176,97
|
GROUPBOX "SoftRasterizer Options",IDC_STATIC,7,52,176,114
|
||||||
CONTROL "Enable Edge Marking",IDC_3DSETTINGS_EDGEMARK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,76,84,10
|
CONTROL "Enable Edge Marking",IDC_3DSETTINGS_EDGEMARK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,76,84,10
|
||||||
CONTROL "Enable Fog",IDC_3DSETTINGS_FOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,88,52,10
|
CONTROL "Enable Fog",IDC_3DSETTINGS_FOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,88,52,10
|
||||||
CONTROL "Enable Textures",IDC_3DSETTINGS_TEXTURE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,100,67,10
|
CONTROL "Enable Textures",IDC_3DSETTINGS_TEXTURE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,100,67,10
|
||||||
LTEXT "Depth Comparison Threshold : \n -0=normal behavior (recommended) \n -bigger value can help Zelda PH/ST shadow issue\n -works only in SoftRasterizer mode ",ID_LABEL_ZELDA_SHADOW_DEPTH_HACK,14,112,165,35
|
LTEXT "Depth Comparison Threshold : \n -0=normal behavior (recommended) \n -bigger value can help Zelda PH/ST shadow issue",ID_LABEL_ZELDA_SHADOW_DEPTH_HACK,15,113,165,35
|
||||||
EDITTEXT IDC_ZELDA_SHADOW_DEPTH_HACK,109,111,44,12
|
EDITTEXT IDC_ZELDA_SHADOW_DEPTH_HACK,109,109,44,12
|
||||||
LTEXT "Fixes some graphical bugs involving lines, but causes some other bugs. Not many games use lines.",ID_LABEL_ZELDA_SHADOW_DEPTH_HACK2,7,164,169,19
|
LTEXT "Fixes some graphical bugs involving lines, but causes some other bugs. Not many games use lines.",ID_LABEL_ZELDA_SHADOW_DEPTH_HACK2,17,182,170,19
|
||||||
CONTROL "Enable Line Hack",IDC_3DSETTINGS_LINEHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,8,154,73,10
|
CONTROL "Enable Line Hack",IDC_3DSETTINGS_LINEHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,170,73,10
|
||||||
|
LTEXT "Fixes text bugs in some games.(e.g. Etrian Odyssey)",ID_LABEL_TXTHACK1,15,153,165,11
|
||||||
|
CONTROL "Enable TXT Hack",IDC_TXTHACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,141,73,10
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_ABOUT_BOX DIALOGEX 0, 0, 268, 198
|
IDD_ABOUT_BOX DIALOGEX 0, 0, 268, 198
|
||||||
|
@ -1836,7 +1838,7 @@ BEGIN
|
||||||
|
|
||||||
IDD_3DSETTINGS, DIALOG
|
IDD_3DSETTINGS, DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
BOTTOMMARGIN, 202
|
BOTTOMMARGIN, 217
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_CHEAT_ADD, DIALOG
|
IDD_CHEAT_ADD, DIALOG
|
||||||
|
|
Loading…
Reference in New Issue