From eb000f0f41f58a9214ac18536d05741fbede7784 Mon Sep 17 00:00:00 2001 From: lightningterror Date: Fri, 21 Dec 2018 05:03:45 +0100 Subject: [PATCH] GSdx: Move GSC_GTASanAndreas crc hack to aggressive state. Can be used as an upscaling hack, but it removes some nice effect so Aggressive only. --- plugins/GSdx/Renderers/HW/GSHwHack.cpp | 30 ++++++++++++-------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/plugins/GSdx/Renderers/HW/GSHwHack.cpp b/plugins/GSdx/Renderers/HW/GSHwHack.cpp index da2b524f30..a02917cf45 100644 --- a/plugins/GSdx/Renderers/HW/GSHwHack.cpp +++ b/plugins/GSdx/Renderers/HW/GSHwHack.cpp @@ -1546,19 +1546,6 @@ bool GSC_Grandia3(const GSFrameInfo& fi, int& skip) return true; } -bool GSC_GTASanAndreas(const GSFrameInfo& fi, int& skip) -{ - if(skip == 0) - { - if(fi.TME && (fi.FBP ==0x0a00 || fi.FBP ==0x08c0) && (fi.TBP0 ==0x1b80 || fi.TBP0 ==0x1a40) && fi.FPSM == fi.TPSM && fi.TPSM == PSM_PSMCT32) - { - skip = 1; // Ghosting - } - } - - return true; -} - bool GSC_YakuzaGames(const GSFrameInfo& fi, int& skip) { if(skip == 0) @@ -1611,6 +1598,19 @@ bool GSC_BleachBladeBattlers(const GSFrameInfo& fi, int& skip) return true; } +bool GSC_GTASanAndreas(const GSFrameInfo& fi, int& skip) +{ + if(Aggressive && skip == 0) + { + if(fi.TME && (fi.FBP ==0x0a00 || fi.FBP ==0x08c0) && (fi.TBP0 ==0x1b80 || fi.TBP0 ==0x1a40) && fi.FPSM == fi.TPSM && fi.TPSM == PSM_PSMCT32) + { + skip = 1; // Ghosting + } + } + + return true; +} + bool GSC_MetalGearSolid3(const GSFrameInfo& fi, int& skip) { // Halfscreen bottom issue @@ -1992,6 +1992,7 @@ void GSState::SetupCrcHack() lut[CRC::FFX2] = GSC_FFXGames; lut[CRC::FFX] = GSC_FFXGames; lut[CRC::FFXII] = GSC_FFXGames; + lut[CRC::GTASanAndreas] = GSC_GTASanAndreas; // RW frame buffer. UserHacks_AutoFlush allow to emulate it correctly. Can be used as an upscaling hack. lut[CRC::ResidentEvil4] = GSC_ResidentEvil4; lut[CRC::ShinOnimusha] = GSC_ShinOnimusha; lut[CRC::SimpsonsGame] = GSC_SimpsonsGame; @@ -2050,9 +2051,6 @@ void GSState::SetupCrcHack() // Dedicated shader for channel effect lut[CRC::TalesOfAbyss] = GSC_TalesOfAbyss; - // RW frame buffer. UserHacks_AutoFlush allow to emulate it correctly - lut[CRC::GTASanAndreas] = GSC_GTASanAndreas; - // Accumulation blend lut[CRC::NanoBreaker] = GSC_NanoBreaker; }