gsdx-hw: Purge crc hacks that had their half screen issues resolved (Texture shuffle case).

DBZBT2, DBZBT3, MetalGearSolid3.
This commit is contained in:
lightningterror 2019-04-25 15:08:51 +02:00
parent 34ac15f7eb
commit 8eab618502
3 changed files with 6 additions and 93 deletions

View File

@ -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},

View File

@ -96,7 +96,6 @@ public:
LordOfTheRingsThirdAge,
MajokkoALaMode2,
Manhunt2,
MetalGearSolid3,
MetalSlug6,
MidnightClub3,
NanoBreaker,

View File

@ -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<uptr state_addr>
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>;