From f559c088a1eff7988e71feb7e05dde303c944f10 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Wed, 28 Mar 2018 15:44:32 +0300 Subject: [PATCH] rsx: Dubious fix for broken B8 swizzle remap --- rpcs3/Emu/RSX/RSXTexture.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/RSX/RSXTexture.cpp b/rpcs3/Emu/RSX/RSXTexture.cpp index c5ee48d702..522837227b 100644 --- a/rpcs3/Emu/RSX/RSXTexture.cpp +++ b/rpcs3/Emu/RSX/RSXTexture.cpp @@ -24,7 +24,7 @@ namespace rsx (((/*alphakill*/0) << 2) | (/*maxaniso*/0) << 4) | ((/*maxlod*/0xc00) << 7) | ((/*minlod*/0) << 19) | ((/*enable*/0) << 31); // Control1 - registers[NV4097_SET_TEXTURE_CONTROL1 + (m_index * 8)] = 0xE4; + registers[NV4097_SET_TEXTURE_CONTROL1 + (m_index * 8)] = 0xAAE4; // Filter registers[NV4097_SET_TEXTURE_FILTER + (m_index * 8)] = @@ -206,6 +206,18 @@ namespace rsx remap_ctl &= 0xFFFF; break; } + case CELL_GCM_TEXTURE_B8: + { + //Low bit in remap control seems to affect whether the A component is forced to 1 + //Only seen in BLUS31604 + //TODO: Verify with a hardware test + if (remap_override) + { + //Set remap lookup for A component to FORCE_ONE + remap_ctl = remap_ctl & ~(3 << 8) | (1 << 8); + } + break; + } default: break; }