gsdx: Merge Sly 2 and 3 crc hacks.

Upscaling issue with texture shuffle on dx and gl. Also removes shadows
on gl.
Bbox issue on dx.

Dumps from Sly 2 and 3 look fine after the merge.

Also add a crc id BF1739E2 for a prototype Sly2. I don't remember who
game me the dump or if it's official.
This commit is contained in:
lightningterror 2019-01-28 21:58:30 +01:00
parent ee7749452d
commit f02c683178
2 changed files with 11 additions and 27 deletions

View File

@ -323,6 +323,7 @@ CRC::Game CRC::m_games[] =
{0x615EA2DB, Sly2, JP, 0}, // Kaitou Sly Cooper 2
{0xFDA1CBF6, Sly2, EU, 0},
{0x15DD1F6F, Sly2, NoRegion, 0},
{0xBF1739E2, Sly2, NoRegion, 0}, // Prototype maybe, is it official ? I don't remember, found it when testing my dumps (LT).
{0xA9C82AB9, DemonStone, US, 0},
{0x7C7578F3, DemonStone, EU, 0},
{0x22425C19, DemonStone, KO, 0},

View File

@ -1254,32 +1254,15 @@ bool GSC_TenchuGames(const GSFrameInfo& fi, int& skip)
return true;
}
bool GSC_Sly3(const GSFrameInfo& fi, int& skip)
bool GSC_SlyGames(const GSFrameInfo& fi, int& skip)
{
if(skip == 0)
{
if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x00700 || fi.FBP == 0x00a80 || fi.FBP == 0x00e00) && fi.FPSM == fi.TPSM && (fi.TBP0 == 0x00000 || fi.TBP0 == 0x00700 || fi.TBP0 == 0x00a80 || fi.TBP0 == 0x00e00) && fi.TPSM == PSM_PSMCT16)
{
skip = 1000;
}
}
else
{
if(fi.TME && fi.FPSM == fi.TPSM && fi.TPSM == PSM_PSMCT16 && fi.FBMSK == 0x03FFF)
{
skip = 3;
}
}
return true;
}
bool GSC_Sly2(const GSFrameInfo& fi, int& skip)
{
if(skip == 0)
{
if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x00700 || fi.FBP == 0x00800 || fi.FBP == 0x008c0) && fi.FPSM == fi.TPSM && fi.TPSM == PSM_PSMCT16 && fi.FBMSK == 0x03FFF)
if(fi.TME && fi.FPSM == fi.TPSM && (fi.FBP == 0x00000 || fi.FBP == 0x00700 || fi.FBP == 0x00800 || fi.FBP == 0x008c0 || fi.FBP == 0x00a80 || fi.FBP == 0x00e00) && fi.TPSM == PSM_PSMCT16 && fi.FBMSK == 0x03FFF)
// 0x00a80, 0x00e00 from Sly 3
{
// Upscaling issue with texture shuffle on dx and gl. Also removes shadows on gl.
// Bbox issue on dx.
skip = 1000;
}
}
@ -1854,17 +1837,12 @@ void GSState::SetupCrcHack()
lut[CRC::Yakuza] = GSC_YakuzaGames;
lut[CRC::Yakuza2] = GSC_YakuzaGames;
// Depth + Texture cache issue + Date (AKA a real mess)
lut[CRC::HauntingGround] = GSC_HauntingGround;
// Not tested but must be fixed with texture shuffle
lut[CRC::CrashNburn] = GSC_CrashNburn; // seem to be a basic depth effect
// Those games might requires accurate fbmask
lut[CRC::OnePieceGrandAdventure] = GSC_OnePieceGrandAdventure;
lut[CRC::OnePieceGrandBattle] = GSC_OnePieceGrandBattle;
lut[CRC::Sly2] = GSC_Sly2;
lut[CRC::Sly3] = GSC_Sly3;
// Those games require accurate_colclip (perf)
lut[CRC::CastlevaniaCoD] = GSC_CastlevaniaGames;
@ -1873,6 +1851,11 @@ void GSState::SetupCrcHack()
// Unknown status
lut[CRC::Grandia3] = GSC_Grandia3;
// Bounding box issue
lut[CRC::HauntingGround] = GSC_HauntingGround; // + Texture cache issue + Date
lut[CRC::Sly2] = GSC_SlyGames; // + Upscaling issue
lut[CRC::Sly3] = GSC_SlyGames; // + Upscaling issue
// Dedicated shader for channel effect
lut[CRC::TalesOfAbyss] = GSC_TalesOfAbyss;