From 201ab08043652aded20349a2e99bae5937ce6257 Mon Sep 17 00:00:00 2001 From: Anthony Miles Date: Wed, 3 Jun 2020 00:07:02 +1200 Subject: [PATCH] Treat X_D3DSCM_NORESERVEDCONSTANTS as a flag --- src/core/hle/D3D8/Direct3D9/Direct3D9.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp index 86e681e3f..b522a5d34 100644 --- a/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp +++ b/src/core/hle/D3D8/Direct3D9/Direct3D9.cpp @@ -3905,8 +3905,9 @@ void UpdateViewPortOffsetAndScaleConstants() // Store viewport offset and scale in constant registers 58 (c-38) and // 59 (c-37) used for screen space transformation. // We only do this if X_D3DSCM_NORESERVEDCONSTANTS is not set, since enabling this flag frees up these registers for shader used - if (g_Xbox_VertexShaderConstantMode != X_D3DSCM_NORESERVEDCONSTANTS) - { + // Treat this as a flag + // Test Case: GTA III, Soldier of Fortune II + if (!(g_Xbox_VertexShaderConstantMode & X_D3DSCM_NORESERVEDCONSTANTS)) { g_pD3DDevice->SetVertexShaderConstantF(X_D3DSCM_RESERVED_CONSTANT_SCALE + X_D3DSCM_CORRECTION, vScale, 1); g_pD3DDevice->SetVertexShaderConstantF(X_D3DSCM_RESERVED_CONSTANT_OFFSET + X_D3DSCM_CORRECTION, vOffset, 1); }