mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 05:09:34 -06:00
VideoCommon: Always update pixel shader constants when tevregs change
This time, it doesn't break the games i tested, and still fixes Metroid Prime 3 texts/colors. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7668 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -553,11 +553,16 @@ 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
|
||||
// there actually are 2 register behind each of these
|
||||
// addresses, selected by the type bit.
|
||||
{
|
||||
// don't compare with changes!
|
||||
int num = (bp.address >> 1) & 0x3;
|
||||
PixelShaderManager::SetColorChanged(bpmem.tevregs[num].high.type, num);
|
||||
if ((bp.address & 1) == 0)
|
||||
PixelShaderManager::SetColorChanged(bpmem.tevregs[num].low.type, num, false);
|
||||
else
|
||||
PixelShaderManager::SetColorChanged(bpmem.tevregs[num].high.type, num, true);
|
||||
}
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user