GSdx: Adjust Yakuza games crc hacks and do some reformatting.

Add a missing crc id for the US version,
, move the crc to DX level - effect is emulated correctly on OpenGL with
depth,
merge the two Yakuza hacks together and reformat it making it easier to
be read.
Skip 3 also seems to work on Yakuza 2.
Related commit:

7f0f19ee02

Reformat the code a bit, ocd satisfaction.
This commit is contained in:
lightningterror 2018-09-03 04:36:11 +02:00
parent 93d5b52df3
commit 38366c084e
2 changed files with 98 additions and 122 deletions

View File

@ -443,6 +443,7 @@ CRC::Game CRC::m_games[] =
{0xA60C2E65, Yakuza2, EU, 0},
{0x800E3E5A, Yakuza2, EU, 0},
{0x97E9C87E, Yakuza2, US, 0},
{0xB1EBD841, Yakuza2, US, 0},
{0xC6B95C48, Yakuza2, JP, 0},
{0x9000252A, SkyGunner, JP, 0},
{0x93092623, SkyGunner, JP, 0},

View File

@ -239,6 +239,7 @@ bool GSC_SacredBlaze(const GSFrameInfo& fi, int& skip)
skip = 1;
}
}
return true;
}
@ -564,6 +565,7 @@ bool GSC_TombRaider(const GSFrameInfo& fi, int& skip)
skip = 1;
}
}
return true;
}
@ -775,54 +777,6 @@ bool GSC_Kunoichi(const GSFrameInfo& fi, int& skip)
return true;
}
bool GSC_Yakuza(const GSFrameInfo& fi, int& skip)
{
if(1
&& !skip
&& !fi.TME
&& (0
|| fi.FBP == 0x1c20 && fi.TBP0 == 0xe00 //ntsc (EU and US DVDs)
|| fi.FBP == 0x1e20 && fi.TBP0 == 0x1000 //pal1
|| fi.FBP == 0x1620 && fi.TBP0 == 0x800 //pal2
)
&& fi.TPSM == PSM_PSMZ24
&& fi.FPSM == PSM_PSMCT32
/*
&& fi.FBMSK ==0xffffff
&& fi.TZTST
&& !GSUtil::HasSharedBits(fi.FBP, fi.FPSM, fi.TBP0, fi.TPSM)
*/
)
{
skip=3;
}
return true;
}
bool GSC_Yakuza2(const GSFrameInfo& fi, int& skip)
{
if(1
&& !skip
&& !fi.TME
&& (0
|| fi.FBP == 0x1c20 && fi.TBP0 == 0xe00 //ntsc (EU DVD)
|| fi.FBP == 0x1e20 && fi.TBP0 == 0x1000 //pal1
|| fi.FBP == 0x1620 && fi.TBP0 == 0x800 //pal2
)
&& fi.TPSM == PSM_PSMZ24
&& fi.FPSM == PSM_PSMCT32
/*
&& fi.FBMSK ==0xffffff
&& fi.TZTST
&& !GSUtil::HasSharedBits(fi.FBP, fi.FPSM, fi.TBP0, fi.TPSM)
*/
)
{
skip=17;
}
return true;
}
bool GSC_ZettaiZetsumeiToshi2(const GSFrameInfo& fi, int& skip)
{
if(skip == 0)
@ -1007,6 +961,7 @@ bool GSC_Simple2000Vol114(const GSFrameInfo& fi, int& skip)
skip = 1;
}
}
return true;
}
@ -1019,6 +974,7 @@ bool GSC_UrbanReign(const GSFrameInfo& fi, int& skip)
skip = 1;
}
}
return true;
}
@ -1056,6 +1012,7 @@ bool GSC_SteambotChronicles(const GSFrameInfo& fi, int& skip)
}
}
}
return true;
}
@ -1243,6 +1200,7 @@ bool GSC_DeathByDegreesTekkenNinaWilliams(const GSFrameInfo& fi, int& skip)
skip = 1;
}
}
return true;
}
@ -1828,6 +1786,7 @@ bool GSC_XE3(const GSFrameInfo& fi, int& skip)
}
}
}
return true;
}
@ -1841,7 +1800,6 @@ bool GSC_Grandia3(const GSFrameInfo& fi, int& skip)
}
}
return true;
}
@ -1858,6 +1816,21 @@ bool GSC_GTASanAndreas(const GSFrameInfo& fi, int& skip)
return true;
}
bool GSC_YakuzaGames(const GSFrameInfo& fi, int& skip)
{
if(skip == 0)
{
if(!fi.TME && (fi.FBP == 0x1c20 || fi.FBP == 0x1e20 || fi.FBP == 0x1620) && (fi.TBP0 == 0xe00 || fi.TBP0 == 0x1000 || fi.TBP0 == 0x800) && fi.TPSM == PSM_PSMZ24 && fi.FPSM == PSM_PSMCT32
/*&& fi.FBMSK == 0xffffff && fi.TZTST && !GSUtil::HasSharedBits(fi.FBP, fi.FPSM, fi.TBP0, fi.TPSM)*/)
{
// Removes depth effect not rendered properly on D3D.
skip = 3;
}
}
return true;
}
////////////////////////////////////////////////////////////////////////////////
// Aggressive only hack
////////////////////////////////////////////////////////////////////////////////
@ -1916,6 +1889,7 @@ bool GSC_SMTNocturneDDS(const GSFrameInfo& fi, int& skip)
if (state == 23 || state == 24 || state == 25)
skip = 1;
}
return true;
}
@ -1928,6 +1902,7 @@ bool GSC_LegoBatman(const GSFrameInfo& fi, int& skip)
skip = 3;
}
}
return true;
}
@ -2227,8 +2202,6 @@ void GSState::SetupCrcHack()
lut[CRC::UrbanReign] = GSC_UrbanReign;
lut[CRC::WildArms4] = GSC_WildArmsGames;
lut[CRC::WildArms5] = GSC_WildArmsGames;
lut[CRC::Yakuza2] = GSC_Yakuza2;
lut[CRC::Yakuza] = GSC_Yakuza;
lut[CRC::ZettaiZetsumeiToshi2] = GSC_ZettaiZetsumeiToshi2;
// Channel Effect
@ -2283,6 +2256,8 @@ void GSState::SetupCrcHack()
lut[CRC::TenchuFS] = GSC_Tenchu;
lut[CRC::TenchuWoH] = GSC_Tenchu;
lut[CRC::XE3] = GSC_XE3;
lut[CRC::Yakuza] = GSC_YakuzaGames;
lut[CRC::Yakuza2] = GSC_YakuzaGames;
// Depth + Texture cache issue + Date (AKA a real mess)
lut[CRC::HauntingGround] = GSC_HauntingGround;