fix bug in rasterizer linehack rendering, add 3d config option since it still breaks hotel dusk, and make nocash debug messages always show up, even with no #define DEVELOPER.
This commit is contained in:
parent
ce73043bec
commit
eb3963bc37
|
@ -472,6 +472,7 @@ extern struct TCommonSettings {
|
|||
, GFX3D_EdgeMark(true)
|
||||
, GFX3D_Fog(true)
|
||||
, GFX3D_Texture(true)
|
||||
, GFX3D_LineHack(true)
|
||||
, GFX3D_Zelda_Shadow_Depth_Hack(0)
|
||||
, UseExtBIOS(false)
|
||||
, SWIFromBIOS(false)
|
||||
|
@ -512,6 +513,7 @@ extern struct TCommonSettings {
|
|||
bool GFX3D_EdgeMark;
|
||||
bool GFX3D_Fog;
|
||||
bool GFX3D_Texture;
|
||||
bool GFX3D_LineHack;
|
||||
int GFX3D_Zelda_Shadow_Depth_Hack;
|
||||
|
||||
bool UseExtBIOS;
|
||||
|
|
|
@ -2818,6 +2818,8 @@ void GFX3D_Clipper::clipPoly(POLY* poly, VERT** verts)
|
|||
// "Workaround" for line poly
|
||||
bool gfx3d_IsLinePoly(POLY *poly)
|
||||
{
|
||||
if(!CommonSettings.GFX3D_LineHack) return false;
|
||||
|
||||
int type = poly->type;
|
||||
VERT *vert1, *vert2;
|
||||
|
||||
|
|
|
@ -817,7 +817,7 @@ public:
|
|||
runctr++;
|
||||
|
||||
//HACK: special handling for horizontal line poly
|
||||
if (lineHack && left->Height == 0 && right->Height == 0)
|
||||
if (lineHack && left->Height == 0 && right->Height == 0 && left->Y<192 && left->Y>=0)
|
||||
{
|
||||
bool draw = (!SLI || (left->Y & SLI_MASK) == SLI_VALUE);
|
||||
if(draw) drawscanline(left,right,lineHack);
|
||||
|
|
|
@ -1066,7 +1066,6 @@ TEMPLATE static u32 FASTCALL OP_B_COND(const u32 i)
|
|||
|
||||
TEMPLATE static u32 FASTCALL OP_B_UNCOND(const u32 i)
|
||||
{
|
||||
#ifdef DEVELOPER
|
||||
//nocash message detection
|
||||
const u16 last = _MMU_read16<PROCNUM,MMU_AT_DEBUG>(cpu->instruct_adr-2);
|
||||
const u16 next = _MMU_read16<PROCNUM,MMU_AT_DEBUG>(cpu->instruct_adr+2);
|
||||
|
@ -1075,7 +1074,6 @@ TEMPLATE static u32 FASTCALL OP_B_UNCOND(const u32 i)
|
|||
{
|
||||
NocashMessage(cpu);
|
||||
}
|
||||
#endif
|
||||
|
||||
cpu->R[15] += (SIGNEEXT_IMM11(i)<<1);
|
||||
cpu->next_instruction = cpu->R[15];
|
||||
|
|
|
@ -2884,7 +2884,7 @@ int _main()
|
|||
CommonSettings.GFX3D_EdgeMark = GetPrivateProfileBool("3D", "EnableEdgeMark", 1, IniName);
|
||||
CommonSettings.GFX3D_Fog = GetPrivateProfileBool("3D", "EnableFog", 1, IniName);
|
||||
CommonSettings.GFX3D_Texture = GetPrivateProfileBool("3D", "EnableTexture", 1, IniName);
|
||||
//CommonSettings.gfx3d_flushMode = GetPrivateProfileInt("3D", "AlternateFlush", 0, IniName);
|
||||
CommonSettings.GFX3D_LineHack = GetPrivateProfileBool("3D", "EnableLineHack", 1, IniName);
|
||||
Change3DCoreWithFallbackAndSave(cur3DCore);
|
||||
|
||||
#ifdef BETA_VERSION
|
||||
|
@ -5626,6 +5626,7 @@ LRESULT CALLBACK GFX3DSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp)
|
|||
CheckDlgButton(hw,IDC_3DSETTINGS_EDGEMARK,CommonSettings.GFX3D_EdgeMark);
|
||||
CheckDlgButton(hw,IDC_3DSETTINGS_FOG,CommonSettings.GFX3D_Fog);
|
||||
CheckDlgButton(hw,IDC_3DSETTINGS_TEXTURE,CommonSettings.GFX3D_Texture);
|
||||
CheckDlgButton(hw,IDC_3DSETTINGS_LINEHACK, CommonSettings.GFX3D_LineHack);
|
||||
SetDlgItemInt (hw,IDC_ZELDA_SHADOW_DEPTH_HACK,CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack,FALSE);
|
||||
//CheckDlgButton(hw,IDC_ALTERNATEFLUSH,CommonSettings.gfx3d_flushMode);
|
||||
|
||||
|
@ -5647,6 +5648,7 @@ LRESULT CALLBACK GFX3DSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp)
|
|||
CommonSettings.GFX3D_EdgeMark = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_EDGEMARK);
|
||||
CommonSettings.GFX3D_Fog = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_FOG);
|
||||
CommonSettings.GFX3D_Texture = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_TEXTURE);
|
||||
CommonSettings.GFX3D_LineHack = IsDlgCheckboxChecked(hw,IDC_3DSETTINGS_LINEHACK);
|
||||
CommonSettings.GFX3D_Zelda_Shadow_Depth_Hack = GetDlgItemInt(hw,IDC_ZELDA_SHADOW_DEPTH_HACK,NULL,FALSE);
|
||||
|
||||
Change3DCoreWithFallbackAndSave(ComboBox_GetCurSel(GetDlgItem(hw, IDC_3DCORE)));
|
||||
|
@ -5655,7 +5657,7 @@ LRESULT CALLBACK GFX3DSettingsDlgProc(HWND hw, UINT msg, WPARAM wp, LPARAM lp)
|
|||
WritePrivateProfileBool("3D", "EnableFog", CommonSettings.GFX3D_Fog, 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;
|
||||
WritePrivateProfileInt ("3D", "EnableLineHack", CommonSettings.GFX3D_LineHack, IniName);
|
||||
//WritePrivateProfileInt("3D", "AlternateFlush", CommonSettings.gfx3d_flushMode, IniName);
|
||||
}
|
||||
case IDCANCEL:
|
||||
|
|
|
@ -709,6 +709,7 @@
|
|||
#define ID_LABEL_HK4 4468
|
||||
#define IDC_GI_ICON 4469
|
||||
#define ID_LABEL_HK5 4469
|
||||
#define IDC_3DSETTINGS_LINEHACK 4469
|
||||
#define IDC_GI_TITLE 4470
|
||||
#define ID_LABEL_HK6 4470
|
||||
#define IDC_GI_TITLEEN 4471
|
||||
|
@ -791,6 +792,7 @@
|
|||
#define IDC_IOREG 6001
|
||||
#define ID_LABEL_ZELDA_SHADOW_DEPTH_HACK 9000
|
||||
#define IDC_ZELDA_SHADOW_DEPTH_HACK 9001
|
||||
#define ID_LABEL_ZELDA_SHADOW_DEPTH_HACK2 9003
|
||||
#define IDD_CHEAT_ADD_XX_CODE 10005
|
||||
#define IDD_GBASLOT_GUITARGRIP 10009
|
||||
#define IDD_GBASLOT_PIANO 10010
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue