From 216938424500750f7175f75eadf8be70a9176c5a Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Sat, 4 Apr 2020 16:55:59 +0700 Subject: [PATCH] Set default clip ratio to - 2 for F3DEX2 and .Rej, - 1 for F3DEX and other fast3d ucodes, except .Rej --- src/GBI.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/GBI.cpp b/src/GBI.cpp index daee1b7a..4400b580 100644 --- a/src/GBI.cpp +++ b/src/GBI.cpp @@ -195,6 +195,7 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent) RDP_Init(); G_TRI1 = G_TRI2 = G_TRIX = G_QUAD = -1; // For correct work of gSPFlushTriangles() + gSP.clipRatio = 1U; switch (m_pCurrent->type) { case F3D: @@ -204,10 +205,12 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent) case F3DEX: F3DEX_Init(); m_hwlSupported = true; + gSP.clipRatio = m_pCurrent->Rej ? 2U : 1U; break; case F3DEX2: F3DEX2_Init(); m_hwlSupported = true; + gSP.clipRatio = 2U; break; case L3D: L3D_Init(); @@ -216,10 +219,12 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent) case L3DEX: L3DEX_Init(); m_hwlSupported = false; + gSP.clipRatio = m_pCurrent->Rej ? 2U : 1U; break; case L3DEX2: L3DEX2_Init(); m_hwlSupported = false; + gSP.clipRatio = 2U; break; case S2DEX_1_03: S2DEX_1_03_Init(); @@ -280,10 +285,12 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent) case F3DZEX2OOT: F3DZEX2_Init(); m_hwlSupported = true; + gSP.clipRatio = 2U; break; case F3DZEX2MM: F3DZEX2_Init(); m_hwlSupported = false; + gSP.clipRatio = 2U; break; case F3DTEXA: F3DTEXA_Init(); @@ -296,6 +303,7 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent) case F3DEX2ACCLAIM: F3DEX2ACCLAIM_Init(); m_hwlSupported = false; + gSP.clipRatio = 2U; break; case F5Rogue: F5Rogue_Init(); @@ -304,6 +312,7 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent) case F3DFLX2: F3DFLX2_Init(); m_hwlSupported = true; + gSP.clipRatio = 2U; break; case ZSortBOSS: ZSortBOSS_Init(); @@ -323,7 +332,6 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent) GBI_SetGBI(G_RDPHALF_1, F3DBETA_RDPHALF_1, F3D_RDPHalf_1); GBI_SetGBI(G_RDPHALF_2, F3DBETA_RDPHALF_2, F3D_RDPHalf_2); } - gSP.clipRatio = m_pCurrent->Rej ? 2U : 1U; } else if (m_pCurrent->NoN != _pCurrent->NoN) { if (_pCurrent->NoN) gfxContext.setClampMode(graphics::ClampMode::NoNearPlaneClipping);