From 6a0bbea9c505e7bf3ab9ab70810f573358f62cdc Mon Sep 17 00:00:00 2001 From: refractionpcsx2 Date: Fri, 22 Dec 2023 12:14:58 +0000 Subject: [PATCH] GS/HW: Fix 16bit depth conversion in shuffles + fix NFSU CRC --- pcsx2/GS/Renderers/HW/GSHwHack.cpp | 4 ++-- pcsx2/GS/Renderers/HW/GSRendererHW.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pcsx2/GS/Renderers/HW/GSHwHack.cpp b/pcsx2/GS/Renderers/HW/GSHwHack.cpp index 7b3bbde4ce528..a4a0ad2364ef3 100644 --- a/pcsx2/GS/Renderers/HW/GSHwHack.cpp +++ b/pcsx2/GS/Renderers/HW/GSHwHack.cpp @@ -636,9 +636,9 @@ bool GSHwHack::GSC_NFSUndercover(GSRendererHW& r, int& skip) v[0].XYZ.Y = static_cast(RCONTEXT->XYOFFSET.OFY + (r.m_r.w << 4)); v[0].U = r.m_r.z << 4; v[0].V = r.m_r.w << 4; - RCONTEXT->scissor.in.z = r.m_r.z; + RCONTEXT->scissor.in.z = r.m_r.z * 2; RCONTEXT->scissor.in.w = r.m_r.w; - r.m_vt.m_max.p.x = r.m_r.z; + r.m_vt.m_max.p.x = r.m_r.z * 2; r.m_vt.m_max.p.y = r.m_r.w; r.m_vt.m_max.t.x = r.m_r.z; r.m_vt.m_max.t.y = r.m_r.w; diff --git a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp index fff26245e1926..d63d83c4fd76b 100644 --- a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp +++ b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp @@ -4298,7 +4298,7 @@ __ri void GSRendererHW::EmulateTextureSampler(const GSTextureCache::Target* rt, // Require a float conversion if the texure is a depth otherwise uses Integral scaling if (psm.depth) { - m_conf.ps.depth_fmt = (tex->m_texture->GetType() != GSTexture::Type::DepthStencil) ? 3 : 1; + m_conf.ps.depth_fmt = (tex->m_texture->GetType() != GSTexture::Type::DepthStencil) ? 3 : tex->m_32_bits_fmt ? 1 : 2; } // Shuffle is a 16 bits format, so aem is always required