From e090a92c7e6d69be530837b988198d51d40d4439 Mon Sep 17 00:00:00 2001 From: pierre Date: Sun, 3 Jul 2011 20:48:22 +0000 Subject: [PATCH] VideoCommon: Always update pixel shader constants when tevregs change Fixes texts staying visible and strange colors in Metroid Prime 3. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7665 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/VideoCommon/Src/BPStructs.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Core/VideoCommon/Src/BPStructs.cpp b/Source/Core/VideoCommon/Src/BPStructs.cpp index bd9e9ac5f7..df72b2d5de 100644 --- a/Source/Core/VideoCommon/Src/BPStructs.cpp +++ b/Source/Core/VideoCommon/Src/BPStructs.cpp @@ -553,11 +553,12 @@ void BPWritten(const BPCmd& bp) case BPMEM_TEV_REGISTER_H+4: case BPMEM_TEV_REGISTER_L+6: // Reg 4 case BPMEM_TEV_REGISTER_H+6: - if (bp.address & 1) // only run this code for the _H! is this right? what if L is set independently? + // some games only send the _L part, so always update { // don't compare with changes! int num = (bp.address >> 1) & 0x3; PixelShaderManager::SetColorChanged(bpmem.tevregs[num].high.type, num); + //is .low.type used for anything in the real HW? } break;