add troulouliou's depth compare hack
This commit is contained in:
parent
74ff219aa9
commit
af035533a0
|
@ -511,6 +511,7 @@ extern struct TCommonSettings {
|
||||||
, GFX3D_EdgeMark(true)
|
, GFX3D_EdgeMark(true)
|
||||||
, GFX3D_Fog(true)
|
, GFX3D_Fog(true)
|
||||||
, GFX3D_Texture(true)
|
, GFX3D_Texture(true)
|
||||||
|
, GFX3D_Zelda_Shadow_Depth_Hack(0)
|
||||||
, UseExtBIOS(false)
|
, UseExtBIOS(false)
|
||||||
, SWIFromBIOS(false)
|
, SWIFromBIOS(false)
|
||||||
, PatchSWI3(false)
|
, PatchSWI3(false)
|
||||||
|
@ -548,6 +549,7 @@ extern struct TCommonSettings {
|
||||||
bool GFX3D_EdgeMark;
|
bool GFX3D_EdgeMark;
|
||||||
bool GFX3D_Fog;
|
bool GFX3D_Fog;
|
||||||
bool GFX3D_Texture;
|
bool GFX3D_Texture;
|
||||||
|
int GFX3D_Zelda_Shadow_Depth_Hack;
|
||||||
|
|
||||||
bool UseExtBIOS;
|
bool UseExtBIOS;
|
||||||
char ARM9BIOS[256];
|
char ARM9BIOS[256];
|
||||||
|
|
|
@ -52,10 +52,12 @@ CommandLine::CommandLine()
|
||||||
, _rigorous_timing(0)
|
, _rigorous_timing(0)
|
||||||
, _advanced_timing(-1)
|
, _advanced_timing(-1)
|
||||||
, _slot1(NULL)
|
, _slot1(NULL)
|
||||||
|
, depth_threshold(-1)
|
||||||
|
, load_slot(-1)
|
||||||
|
, arm9_gdb_port(0)
|
||||||
|
, arm7_gdb_port(0)
|
||||||
|
, start_paused(FALSE)
|
||||||
{
|
{
|
||||||
load_slot = -1;
|
|
||||||
arm9_gdb_port = arm7_gdb_port = 0;
|
|
||||||
start_paused = FALSE;
|
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
disable_sound = 0;
|
disable_sound = 0;
|
||||||
disable_limiter = 0;
|
disable_limiter = 0;
|
||||||
|
@ -92,6 +94,7 @@ void CommandLine::loadCommonOptions()
|
||||||
{ "rigorous-timing", 0, 0, G_OPTION_ARG_INT, &_rigorous_timing, "Use some rigorous timings instead of unrealistically generous (default 0)", "RIGOROUS_TIMING"},
|
{ "rigorous-timing", 0, 0, G_OPTION_ARG_INT, &_rigorous_timing, "Use some rigorous timings instead of unrealistically generous (default 0)", "RIGOROUS_TIMING"},
|
||||||
{ "advanced-timing", 0, 0, G_OPTION_ARG_INT, &_advanced_timing, "Use advanced BUS-level timing (default 1)", "ADVANCED_TIMING"},
|
{ "advanced-timing", 0, 0, G_OPTION_ARG_INT, &_advanced_timing, "Use advanced BUS-level timing (default 1)", "ADVANCED_TIMING"},
|
||||||
{ "slot1", 0, 0, G_OPTION_ARG_STRING, &_slot1, "Device to load in slot 1 (default retail)", "SLOT1"},
|
{ "slot1", 0, 0, G_OPTION_ARG_STRING, &_slot1, "Device to load in slot 1 (default retail)", "SLOT1"},
|
||||||
|
{ "depth-threshold", 0, 0, G_OPTION_ARG_INT, &depth_threshold, "Depth comparison threshold (default 0)", "DEPTHTHRESHOLD"},
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
{ "disable-sound", 0, 0, G_OPTION_ARG_NONE, &disable_sound, "Disables the sound emulation", NULL},
|
{ "disable-sound", 0, 0, G_OPTION_ARG_NONE, &disable_sound, "Disables the sound emulation", NULL},
|
||||||
{ "disable-limiter", 0, 0, G_OPTION_ARG_NONE, &disable_limiter, "Disables the 60fps limiter", NULL},
|
{ "disable-limiter", 0, 0, G_OPTION_ARG_NONE, &disable_limiter, "Disables the 60fps limiter", NULL},
|
||||||
|
@ -127,6 +130,8 @@ bool CommandLine::parse(int argc,char **argv)
|
||||||
if(_num_cores != -1) CommonSettings.num_cores = _num_cores;
|
if(_num_cores != -1) CommonSettings.num_cores = _num_cores;
|
||||||
if(_rigorous_timing) CommonSettings.rigorous_timing = true;
|
if(_rigorous_timing) CommonSettings.rigorous_timing = true;
|
||||||
if(_advanced_timing != -1) CommonSettings.advanced_timing = _advanced_timing==1;
|
if(_advanced_timing != -1) CommonSettings.advanced_timing = _advanced_timing==1;
|
||||||
|
if(depth_threshold != -1)
|
||||||
|
CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack = depth_threshold;
|
||||||
|
|
||||||
//TODO MAX PRIORITY! change ARM9BIOS etc to be a std::string
|
//TODO MAX PRIORITY! change ARM9BIOS etc to be a std::string
|
||||||
if(_bios_arm9) { CommonSettings.UseExtBIOS = true; strcpy(CommonSettings.ARM9BIOS,_bios_arm9); }
|
if(_bios_arm9) { CommonSettings.UseExtBIOS = true; strcpy(CommonSettings.ARM9BIOS,_bios_arm9); }
|
||||||
|
|
|
@ -40,6 +40,7 @@ class CommandLine
|
||||||
public:
|
public:
|
||||||
//actual options: these may move to another sturct
|
//actual options: these may move to another sturct
|
||||||
int load_slot;
|
int load_slot;
|
||||||
|
int depth_threshold;
|
||||||
std::string nds_file;
|
std::string nds_file;
|
||||||
std::string play_movie_file;
|
std::string play_movie_file;
|
||||||
std::string record_movie_file;
|
std::string record_movie_file;
|
||||||
|
|
|
@ -546,10 +546,23 @@ public:
|
||||||
|
|
||||||
if(polyAttr.decalMode)
|
if(polyAttr.decalMode)
|
||||||
{
|
{
|
||||||
if(depth != destFragment.depth)
|
if ( CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack > 0)
|
||||||
{
|
{
|
||||||
goto depth_fail;
|
if(depth<destFragment.depth - CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack
|
||||||
|
|| depth>destFragment.depth + CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack)
|
||||||
|
{
|
||||||
|
goto depth_fail;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(depth != destFragment.depth)
|
||||||
|
{
|
||||||
|
goto depth_fail;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -2583,6 +2583,8 @@ int _main()
|
||||||
CommonSettings.spu_advanced = GetPrivateProfileBool("Sound", "SpuAdvanced", false, IniName);
|
CommonSettings.spu_advanced = GetPrivateProfileBool("Sound", "SpuAdvanced", false, IniName);
|
||||||
CommonSettings.advanced_timing = GetPrivateProfileBool("Emulation", "AdvancedTiming", true, IniName);
|
CommonSettings.advanced_timing = GetPrivateProfileBool("Emulation", "AdvancedTiming", true, IniName);
|
||||||
|
|
||||||
|
CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack = GetPrivateProfileInt("3D", "ZeldaShadowDepthHack", 0, IniName);
|
||||||
|
|
||||||
lostFocusPause = GetPrivateProfileBool("Focus", "BackgroundPause", false, IniName);
|
lostFocusPause = GetPrivateProfileBool("Focus", "BackgroundPause", false, IniName);
|
||||||
|
|
||||||
//Get Ram-Watch values
|
//Get Ram-Watch values
|
||||||
|
@ -5491,6 +5493,7 @@ LRESULT CALLBACK GFX3DSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp)
|
||||||
CheckDlgButton(hw,IDC_3DSETTINGS_EDGEMARK,CommonSettings.GFX3D_EdgeMark);
|
CheckDlgButton(hw,IDC_3DSETTINGS_EDGEMARK,CommonSettings.GFX3D_EdgeMark);
|
||||||
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);
|
||||||
|
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);
|
||||||
|
|
||||||
for(i = 0; core3DList[i] != NULL; i++)
|
for(i = 0; core3DList[i] != NULL; i++)
|
||||||
|
@ -5511,11 +5514,14 @@ LRESULT CALLBACK GFX3DSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp)
|
||||||
CommonSettings.GFX3D_EdgeMark = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_EDGEMARK);
|
CommonSettings.GFX3D_EdgeMark = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_EDGEMARK);
|
||||||
CommonSettings.GFX3D_Fog = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_FOG);
|
CommonSettings.GFX3D_Fog = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_FOG);
|
||||||
CommonSettings.GFX3D_Texture = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_TEXTURE);
|
CommonSettings.GFX3D_Texture = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_TEXTURE);
|
||||||
|
CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack = GetDlgItemInt(hw,IDC_ZELDA_SHADOW_DEPTH_HACK,NULL,FALSE);
|
||||||
|
|
||||||
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);
|
||||||
WritePrivateProfileBool("3D", "EnableEdgeMark", CommonSettings.GFX3D_EdgeMark, IniName);
|
WritePrivateProfileBool("3D", "EnableEdgeMark", CommonSettings.GFX3D_EdgeMark, IniName);
|
||||||
WritePrivateProfileBool("3D", "EnableFog", CommonSettings.GFX3D_Fog, IniName);
|
WritePrivateProfileBool("3D", "EnableFog", CommonSettings.GFX3D_Fog, IniName);
|
||||||
WritePrivateProfileBool("3D", "EnableTexture", CommonSettings.GFX3D_Texture, IniName);
|
WritePrivateProfileBool("3D", "EnableTexture", CommonSettings.GFX3D_Texture, IniName);
|
||||||
|
WritePrivateProfileInt ("3D", "ZeldaShadowDepthHack", CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack, IniName);
|
||||||
//CommonSettings.gfx3d_flushMode = (IsDlgButtonChecked(hw,IDC_ALTERNATEFLUSH) == BST_CHECKED)?1:0;
|
//CommonSettings.gfx3d_flushMode = (IsDlgButtonChecked(hw,IDC_ALTERNATEFLUSH) == BST_CHECKED)?1:0;
|
||||||
//WritePrivateProfileInt("3D", "AlternateFlush", CommonSettings.gfx3d_flushMode, IniName);
|
//WritePrivateProfileInt("3D", "AlternateFlush", CommonSettings.gfx3d_flushMode, IniName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -779,6 +779,12 @@
|
||||||
#define IDC_USENOISE 5010
|
#define IDC_USENOISE 5010
|
||||||
#define IDC_CPU 6000
|
#define IDC_CPU 6000
|
||||||
#define IDC_IOREG 6001
|
#define IDC_IOREG 6001
|
||||||
|
|
||||||
|
//ZELDA SHADOW HACK
|
||||||
|
#define ID_LABEL_ZELDA_SHADOW_DEPTH_HACK 9000
|
||||||
|
#define IDC_ZELDA_SHADOW_DEPTH_HACK 9001
|
||||||
|
|
||||||
|
|
||||||
#define IDD_CHEAT_ADD_XX_CODE 10005
|
#define IDD_CHEAT_ADD_XX_CODE 10005
|
||||||
#define IDD_GBASLOT_GUITARGRIP 10009
|
#define IDD_GBASLOT_GUITARGRIP 10009
|
||||||
#define IDD_GBASLOT_PIANO 10010
|
#define IDD_GBASLOT_PIANO 10010
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue