From f54b79c274483708f2efee57b888df4e6ef147aa Mon Sep 17 00:00:00 2001 From: lightningterror Date: Wed, 29 Jan 2020 23:40:05 +0100 Subject: [PATCH] gsdx-hw: Move GSC_XenosagaE3 crc hacks to Aggressive state. It will allow D3D11 to render Texture shuffle effects. Keep the crc hacks on aggressive instead of removing them as they might still be useful. --- plugins/GSdx/Renderers/HW/GSHwHack.cpp | 62 +++++++++++++------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/plugins/GSdx/Renderers/HW/GSHwHack.cpp b/plugins/GSdx/Renderers/HW/GSHwHack.cpp index 795cfac46..0768589b4 100644 --- a/plugins/GSdx/Renderers/HW/GSHwHack.cpp +++ b/plugins/GSdx/Renderers/HW/GSHwHack.cpp @@ -1040,36 +1040,6 @@ bool GSC_SlyGames(const GSFrameInfo& fi, int& skip) return true; } -bool GSC_XenosagaE3(const GSFrameInfo& fi, int& skip) -{ - if(skip == 0) - { - if(fi.TPSM == PSM_PSMT8H && fi.FBMSK >= 0xEFFFFFFF) - { - skip = 73; // Animation - } - else if(fi.TME && fi.FBP ==0x03800 && fi.TBP0 && fi.TPSM ==0 && fi.FBMSK == 0) - { - skip = 1; // Ghosting - } - else - { - if(fi.TME) - { - // depth textures (bully, mgs3s1 intro, Front Mission 5) - if( (fi.TPSM == PSM_PSMZ32 || fi.TPSM == PSM_PSMZ24 || fi.TPSM == PSM_PSMZ16 || fi.TPSM == PSM_PSMZ16S) || - // General, often problematic post processing - (GSUtil::HasSharedBits(fi.FBP, fi.FPSM, fi.TBP0, fi.TPSM)) ) - { - skip = 1; - } - } - } - } - - return true; -} - bool GSC_Grandia3(const GSFrameInfo& fi, int& skip) { if(skip == 0) @@ -1263,6 +1233,36 @@ bool GSC_ShinOnimusha(const GSFrameInfo& fi, int& skip) return true; } +bool GSC_XenosagaE3(const GSFrameInfo& fi, int& skip) +{ + if(skip == 0) + { + if(fi.TPSM == PSM_PSMT8H && fi.FBMSK >= 0xEFFFFFFF) + { + skip = 73; // Animation + } + else if(fi.TME && fi.FBP ==0x03800 && fi.TBP0 && fi.TPSM ==0 && fi.FBMSK == 0) + { + skip = 1; // Ghosting + } + else + { + if(fi.TME) + { + // depth textures (bully, mgs3s1 intro, Front Mission 5) + if( (fi.TPSM == PSM_PSMZ32 || fi.TPSM == PSM_PSMZ24 || fi.TPSM == PSM_PSMZ16 || fi.TPSM == PSM_PSMZ16S) || + // General, often problematic post processing + (GSUtil::HasSharedBits(fi.FBP, fi.FPSM, fi.TBP0, fi.TPSM)) ) + { + skip = 1; + } + } + } + } + + return true; +} + //////////////////////////////////////////////////////////////////////////////// #ifdef ENABLE_DYNAMIC_CRC_HACK @@ -1486,7 +1486,6 @@ void GSState::SetupCrcHack() // Needs testing lut[CRC::Grandia3] = GSC_Grandia3; - lut[CRC::XenosagaE3] = GSC_XenosagaE3; // These games emulate a stencil buffer with the alpha channel of the RT (too slow to move to Aggressive) // Needs at least Basic Blending, @@ -1508,6 +1507,7 @@ void GSState::SetupCrcHack() lut[CRC::SMTDDS2] = GSC_SMTNocturneDDS<0x20435BF0>; lut[CRC::SMTNocturne] = GSC_SMTNocturneDDS<0x2054E870>; lut[CRC::SoTC] = GSC_SoTC; + lut[CRC::XenosagaE3] = GSC_XenosagaE3; // Upscaling issues lut[CRC::GodOfWar] = GSC_GodOfWar;