diff --git a/plugins/GSdx/GSCrc.cpp b/plugins/GSdx/GSCrc.cpp index 9434fbc21b..53b20f6266 100644 --- a/plugins/GSdx/GSCrc.cpp +++ b/plugins/GSdx/GSCrc.cpp @@ -77,22 +77,6 @@ CRC::Game CRC::m_games[] = {0x21068223, Okami, US, 0}, {0x891F223F, Okami, EU, 0}, // PAL DE, ES & FR. {0xC5DEFEA0, Okami, JP, 0}, - {0x086273D2, MetalGearSolid3, EU, 0}, // - PAL UK & FR - {0x26A6E286, MetalGearSolid3, DE, 0}, - {0x9F185CE1, MetalGearSolid3, EU, 0}, - {0x98D4BC93, MetalGearSolid3, ES, 0}, - {0x79ED26AD, MetalGearSolid3, EU, 0}, - {0x5E31EA42, MetalGearSolid3, EU, 0}, - {0xD7ED797D, MetalGearSolid3, DE, 0}, - {0x053D2239, MetalGearSolid3, US, 0}, // Metal Gear Solid 3 Subsistence disc1 - {0x01B2FA7F, MetalGearSolid3, US, 0}, // Metal Gear Solid 3 Subsistence disc2 - {0xAA31B5BF, MetalGearSolid3, US, 0}, - {0x86BC3040, MetalGearSolid3, US, 0}, // Metal Gear Solid 3 Subsistence disc1 - {0x0481AD8A, MetalGearSolid3, JP, 0}, - {0xC69ACB6F, MetalGearSolid3, KO, 0}, // Metal Gear Solid 3 Snake Eater - {0xB0D195EF, MetalGearSolid3, KO, 0}, // Metal Gear Solid 3 Subsistence disc1 - {0x3EBABC9C, MetalGearSolid3, KO, 0}, // Metal Gear Solid 3 Subsistence disc2 - {0x8A5C25A7, MetalGearSolid3, ES, 0}, // Metal Gear Solid 3 Subsistence Spanish version {0x278722BF, DBZBT2, EU, 0}, {0xFE961D28, DBZBT2, US, 0}, {0x0393B6BE, DBZBT2, EU, 0}, diff --git a/plugins/GSdx/GSCrc.h b/plugins/GSdx/GSCrc.h index 330cd23d94..22297db70f 100644 --- a/plugins/GSdx/GSCrc.h +++ b/plugins/GSdx/GSCrc.h @@ -96,7 +96,6 @@ public: LordOfTheRingsThirdAge, MajokkoALaMode2, Manhunt2, - MetalGearSolid3, MetalSlug6, MidnightClub3, NanoBreaker, diff --git a/plugins/GSdx/Renderers/HW/GSHwHack.cpp b/plugins/GSdx/Renderers/HW/GSHwHack.cpp index 6bf019bbe8..f15fcebba7 100644 --- a/plugins/GSdx/Renderers/HW/GSHwHack.cpp +++ b/plugins/GSdx/Renderers/HW/GSHwHack.cpp @@ -79,22 +79,7 @@ bool GSC_DBZBT2(const GSFrameInfo& fi, int& skip) { if(skip == 0) { - if(fi.TME && /*fi.FBP == 0x00000 && fi.FPSM == PSM_PSMCT16 &&*/ (fi.TBP0 == 0x01c00 || fi.TBP0 == 0x02000) && fi.TPSM == PSM_PSMZ16) - { - // Sky effect. Depth on texture shuffle. - // The hack also causes issues with the blur effects, breaking them. - // Note: (PAL skip 5) = (NTSC skip 4) - if(g_crc_region == CRC::EU) - { - // Keep the hack on partial level because we have a half screen issue on EU region. - skip = 5; - } - else if(Aggressive) - { - skip = 4; - } - } - else if((g_crc_region == CRC::EU || Aggressive || !s_nativeres) && !fi.TME && (fi.FBP == 0x02a00 || fi.FBP == 0x03000) && fi.FPSM == PSM_PSMCT16) + if((g_crc_region == CRC::EU || Aggressive || !s_nativeres) && !fi.TME && (fi.FBP == 0x02a00 || fi.FBP == 0x03000) && fi.FPSM == PSM_PSMCT16) { // Character outlines. // Glow/blur effect. Causes ghosting on upscaled resolution. @@ -111,23 +96,7 @@ bool GSC_DBZBT3(const GSFrameInfo& fi, int& skip) { if(skip == 0) { - if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x00e00 || fi.FBP == 0x01000) && fi.FPSM == PSM_PSMCT16 && fi.TPSM == PSM_PSMZ16) - { - // Sky effect. Depth on texture shuffle. - // The hack also causes issues with the blur effects, breaking them. - // Note: Depth Emulation should be disabled when running this hack. It may cause some ground glitches otherwise. - // Note2: (PAL skip 5) = (NTSC skip 4) - if(g_crc_region == CRC::EU) - { - // Keep the hack on partial level because we have a half screen issue on EU region. - skip = 5; - } - else if(Aggressive) - { - skip = 4; - } - } - else if((g_crc_region == CRC::EU || Aggressive || !s_nativeres) && fi.TME && (fi.FBP == 0x03400 || fi.FBP == 0x02e00) && fi.FPSM == fi.TPSM && fi.TBP0 == 0x03f00 && fi.TPSM == PSM_PSMCT32) + if((g_crc_region == CRC::EU || Aggressive || !s_nativeres) && fi.TME && (fi.FBP == 0x03400 || fi.FBP == 0x02e00) && fi.FPSM == fi.TPSM && fi.TBP0 == 0x03f00 && fi.TPSM == PSM_PSMCT32) { // Ghosting/Blur effect. Upscaling issue. // Can be fixed with TC X,Y offsets. @@ -824,7 +793,6 @@ bool GSC_SonicUnleashed(const GSFrameInfo& fi, int& skip) if(fi.TME && fi.FPSM == PSM_PSMCT16S && fi.TBP0 == 0x00000 && fi.TPSM == PSM_PSMCT16) { // Improper Texture shuffle emulation. - // Half Screen bottom issue. skip = 1000; // shadow } } @@ -1318,43 +1286,6 @@ bool GSC_GTASanAndreas(const GSFrameInfo& fi, int& skip) return true; } -bool GSC_MetalGearSolid3(const GSFrameInfo& fi, int& skip) -{ - // Halfscreen bottom issue - // Hack is old that was used to remove channel shuffle and likely needs to be updated. - if(skip == 0) - { - if(fi.TME && fi.FBP == 0x02000 && fi.FPSM == PSM_PSMCT32 && (fi.TBP0 == 0x00000 || fi.TBP0 == 0x01000) && fi.TPSM == PSM_PSMCT24) - { - skip = 1000; // 76, 79 - } - else if(fi.TME && fi.FBP == 0x02800 && fi.FPSM == PSM_PSMCT24 && (fi.TBP0 == 0x00000 || fi.TBP0 == 0x01000) && fi.TPSM == PSM_PSMCT32) - { - skip = 1000; // 69 - } - } - else - { - if(!fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x01000) && fi.FPSM == PSM_PSMCT32) - { - skip = 0; - } - else if(!fi.TME && fi.FBP == fi.TBP0 && fi.TBP0 == 0x2000 && fi.FPSM == PSM_PSMCT32 && fi.TPSM == PSM_PSMCT24) - { - if(g_crc_region == CRC::US || g_crc_region == CRC::JP || g_crc_region == CRC::KO) - { - skip = 119; //ntsc - } - else - { - skip = 136; //pal - } - } - } - - return true; -} - template bool GSC_SMTNocturneDDS(const GSFrameInfo& fi, int& skip) { @@ -1677,8 +1608,6 @@ void GSState::SetupCrcHack() lut[CRC::BurnoutTakedown] = GSC_BurnoutGames; // Half Screen bottom issue - lut[CRC::DBZBT2] = GSC_DBZBT2; // Half screen on depth format 16bit - lut[CRC::DBZBT3] = GSC_DBZBT3; // Half screen on depth format 16bit lut[CRC::DemonStone] = GSC_DemonStone; // Half screen on texture shuffle lut[CRC::Tekken5] = GSC_Tekken5; @@ -1686,12 +1615,14 @@ void GSState::SetupCrcHack() lut[CRC::Genji] = GSC_Genji; // Texture shuffle - lut[CRC::BigMuthaTruckers] = GSC_BigMuthaTruckers; // + Half screen on texture shuffle + lut[CRC::BigMuthaTruckers] = GSC_BigMuthaTruckers; lut[CRC::DeathByDegreesTekkenNinaWilliams] = GSC_DeathByDegreesTekkenNinaWilliams; // + Upscaling issues - lut[CRC::SonicUnleashed] = GSC_SonicUnleashed; // + Half screen on texture shuffle + lut[CRC::SonicUnleashed] = GSC_SonicUnleashed; // Upscaling hacks lut[CRC::Bully] = GSC_Bully; + lut[CRC::DBZBT2] = GSC_DBZBT2; + lut[CRC::DBZBT3] = GSC_DBZBT3; lut[CRC::EvangelionJo] = GSC_EvangelionJo; lut[CRC::FightingBeautyWulong] = GSC_FightingBeautyWulong; lut[CRC::GodOfWar2] = GSC_GodOfWar2; @@ -1740,7 +1671,6 @@ void GSState::SetupCrcHack() lut[CRC::FFX2] = GSC_FFXGames; lut[CRC::FFX] = GSC_FFXGames; lut[CRC::FFXII] = GSC_FFXGames; - lut[CRC::MetalGearSolid3] = GSC_MetalGearSolid3; // Half screen issue + accurate blending lut[CRC::ResidentEvil4] = GSC_ResidentEvil4; lut[CRC::ShinOnimusha] = GSC_ShinOnimusha; lut[CRC::SMTDDS1] = GSC_SMTNocturneDDS<0x203BA820>;