gsdx: Add an option to control auto skip of depth texture

Default is 1 if the user enable hack.

It fixes GTA sun effect and likely others bugs.

Please someone add a windows GUI option.
This commit is contained in:
Gregory Hainaut 2015-05-07 23:52:00 +02:00
parent 51a67029cf
commit 544a923e32
3 changed files with 5 additions and 1 deletions

View File

@ -386,6 +386,7 @@ void populate_hack_table(GtkWidget* hack_table)
GtkWidget* hack_tco_entry = CreateTextBox("UserHacks_TCOffset");
GtkWidget* hack_logz_check = CreateCheckBox("Log Depth Hack", "logz", true);
GtkWidget* align_sprite_check = CreateCheckBox("Align sprite hack", "UserHacks_align_sprite_X");
GtkWidget* auto_skip_check = CreateCheckBox("Auto Skip depth Texture", "UserHacks_AutoSkipDrawDepth");
GtkWidget* hack_sprite_box = CreateComboBoxFromVector(theApp.m_gs_hack, "UserHacks_SpriteHack");
GtkWidget* hack_sprite_label = gtk_label_new("Alpha-Sprite Hack:");
@ -415,6 +416,7 @@ void populate_hack_table(GtkWidget* hack_table)
InsertWidgetInTable(hack_table , hack_alpha_check , hack_offset_check);
InsertWidgetInTable(hack_table , hack_logz_check , hack_date_check);
InsertWidgetInTable(hack_table , hack_wild_check , align_sprite_check);
InsertWidgetInTable(hack_table , auto_skip_check);
InsertWidgetInTable(hack_table , hack_sprite_label , hack_sprite_box );
InsertWidgetInTable(hack_table , stretch_hack_label , stretch_hack_box );
InsertWidgetInTable(hack_table , hack_skipdraw_label , hack_skipdraw_spin);

View File

@ -66,6 +66,7 @@ GSState::GSState()
UserHacks_AggressiveCRC = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_AggressiveCRC", 0) : 0;
UserHacks_DisableCrcHacks = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig( "UserHacks_DisableCrcHacks", 0 ) : 0;
UserHacks_WildHack = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_WildHack", 0) : 0;
UserHacks_AutoSkipDrawDepth = !!theApp.GetConfig("UserHacks", 0) ? theApp.GetConfig("UserHacks_AutoSkipDrawDepth", 1) : false;
memset(&m_v, 0, sizeof(m_v));
memset(&m_vertex, 0, sizeof(m_vertex));
@ -5490,7 +5491,7 @@ bool GSState::IsBadFrame(int& skip, int UserHacks_SkipDraw)
}
// Mimic old GSdx behavior (skipping all depth textures with a skip value of 1), to avoid floods of bug reports
// that games are broken, when the user hasn't found the skiphack yet. (God of War, sigh...)
else if (skip == 0)
else if ((skip == 0) && UserHacks_AutoSkipDrawDepth)
{
if(fi.TME)
{

View File

@ -145,6 +145,7 @@ protected:
int UserHacks_AggressiveCRC;
int UserHacks_DisableCrcHacks;
int UserHacks_WildHack;
bool UserHacks_AutoSkipDrawDepth;
bool isPackedUV_HackFlag;
GSVertex m_v;