mirror of https://github.com/PCSX2/pcsx2.git
gsdx: move Tekken5/Tales of Abyss CRC to Dx level
This commit is contained in:
parent
ecbcc566fe
commit
fb6a6f73c4
|
@ -295,31 +295,6 @@ bool GSC_AceCombat4(const GSFrameInfo& fi, int& skip)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GSC_Tekken5(const GSFrameInfo& fi, int& skip)
|
|
||||||
{
|
|
||||||
if(skip == 0)
|
|
||||||
{
|
|
||||||
if(fi.TME && (fi.FBP == 0x02d60 || fi.FBP == 0x02d80 || fi.FBP == 0x02ea0 || fi.FBP == 0x03620) && fi.FPSM == fi.TPSM && fi.TBP0 == 0x00000 && fi.TPSM == PSM_PSMCT32)
|
|
||||||
{
|
|
||||||
skip = 95;
|
|
||||||
}
|
|
||||||
else if(fi.TME && (fi.FBP == 0x02bc0 || fi.FBP == 0x02be0 || fi.FBP == 0x02d00) && fi.FPSM == fi.TPSM && fi.TBP0 == 0x00000 && fi.TPSM == PSM_PSMCT32)
|
|
||||||
{
|
|
||||||
skip = 2;
|
|
||||||
}
|
|
||||||
else if(fi.TME)
|
|
||||||
{
|
|
||||||
if( (fi.TPSM == PSM_PSMZ32 || fi.TPSM == PSM_PSMZ24 || fi.TPSM == PSM_PSMZ16 || fi.TPSM == PSM_PSMZ16S) ||
|
|
||||||
(GSUtil::HasSharedBits(fi.FBP, fi.FPSM, fi.TBP0, fi.TPSM)) )
|
|
||||||
{
|
|
||||||
skip = 24;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GSC_IkkiTousen(const GSFrameInfo& fi, int& skip)
|
bool GSC_IkkiTousen(const GSFrameInfo& fi, int& skip)
|
||||||
{
|
{
|
||||||
if(skip == 0)
|
if(skip == 0)
|
||||||
|
@ -354,30 +329,6 @@ bool GSC_Onimusha3(const GSFrameInfo& fi, int& skip)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GSC_TalesOfAbyss(const GSFrameInfo& fi, int& skip)
|
|
||||||
{
|
|
||||||
if(skip == 0)
|
|
||||||
{
|
|
||||||
if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x00e00) && fi.TBP0 == 0x01c00 && fi.TPSM == PSM_PSMT8) // copies the z buffer to the alpha channel of the fb
|
|
||||||
{
|
|
||||||
skip = 1000;
|
|
||||||
}
|
|
||||||
else if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x00e00) && (fi.TBP0 == 0x03560 || fi.TBP0 == 0x038e0) && fi.TPSM == PSM_PSMCT32)
|
|
||||||
{
|
|
||||||
skip = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if(fi.TME && fi.TPSM != PSM_PSMT8)
|
|
||||||
{
|
|
||||||
skip = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GSC_Genji(const GSFrameInfo& fi, int& skip)
|
bool GSC_Genji(const GSFrameInfo& fi, int& skip)
|
||||||
{
|
{
|
||||||
if( !skip && fi.TME && (fi.FBP == 0x700 || fi.FBP == 0x0) && fi.TBP0 == 0x1500 && fi.TPSM )
|
if( !skip && fi.TME && (fi.FBP == 0x700 || fi.FBP == 0x0) && fi.TBP0 == 0x1500 && fi.TPSM )
|
||||||
|
@ -1358,6 +1309,56 @@ bool GSC_SteambotChronicles(const GSFrameInfo& fi, int& skip)
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Correctly emulated on OpenGL but can be used as potential speed hack
|
// Correctly emulated on OpenGL but can be used as potential speed hack
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
bool GSC_TalesOfAbyss(const GSFrameInfo& fi, int& skip)
|
||||||
|
{
|
||||||
|
if(skip == 0)
|
||||||
|
{
|
||||||
|
if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x00e00) && fi.TBP0 == 0x01c00 && fi.TPSM == PSM_PSMT8) // copies the z buffer to the alpha channel of the fb
|
||||||
|
{
|
||||||
|
skip = 1000;
|
||||||
|
}
|
||||||
|
else if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x00e00) && (fi.TBP0 == 0x03560 || fi.TBP0 == 0x038e0) && fi.TPSM == PSM_PSMCT32)
|
||||||
|
{
|
||||||
|
skip = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(fi.TME && fi.TPSM != PSM_PSMT8)
|
||||||
|
{
|
||||||
|
skip = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GSC_Tekken5(const GSFrameInfo& fi, int& skip)
|
||||||
|
{
|
||||||
|
if(skip == 0)
|
||||||
|
{
|
||||||
|
if(fi.TME && (fi.FBP == 0x02d60 || fi.FBP == 0x02d80 || fi.FBP == 0x02ea0 || fi.FBP == 0x03620) && fi.FPSM == fi.TPSM && fi.TBP0 == 0x00000 && fi.TPSM == PSM_PSMCT32)
|
||||||
|
{
|
||||||
|
skip = 95;
|
||||||
|
}
|
||||||
|
else if(fi.TME && (fi.FBP == 0x02bc0 || fi.FBP == 0x02be0 || fi.FBP == 0x02d00) && fi.FPSM == fi.TPSM && fi.TBP0 == 0x00000 && fi.TPSM == PSM_PSMCT32)
|
||||||
|
{
|
||||||
|
skip = 2;
|
||||||
|
}
|
||||||
|
else if(fi.TME)
|
||||||
|
{
|
||||||
|
if( (fi.TPSM == PSM_PSMZ32 || fi.TPSM == PSM_PSMZ24 || fi.TPSM == PSM_PSMZ16 || fi.TPSM == PSM_PSMZ16S) ||
|
||||||
|
(GSUtil::HasSharedBits(fi.FBP, fi.FPSM, fi.TBP0, fi.TPSM)) )
|
||||||
|
{
|
||||||
|
skip = 24;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool GSC_DeathByDegreesTekkenNinaWilliams(const GSFrameInfo& fi, int& skip)
|
bool GSC_DeathByDegreesTekkenNinaWilliams(const GSFrameInfo& fi, int& skip)
|
||||||
{
|
{
|
||||||
if(skip == 0)
|
if(skip == 0)
|
||||||
|
@ -2491,10 +2492,8 @@ void GSState::SetupCrcHack()
|
||||||
lut[CRC::Spartan] = GSC_Spartan;
|
lut[CRC::Spartan] = GSC_Spartan;
|
||||||
lut[CRC::StarWarsForceUnleashed] = GSC_StarWarsForceUnleashed;
|
lut[CRC::StarWarsForceUnleashed] = GSC_StarWarsForceUnleashed;
|
||||||
lut[CRC::SteambotChronicles] = GSC_SteambotChronicles;
|
lut[CRC::SteambotChronicles] = GSC_SteambotChronicles;
|
||||||
lut[CRC::TalesOfAbyss] = GSC_TalesOfAbyss;
|
|
||||||
lut[CRC::TalesOfLegendia] = GSC_TalesOfLegendia;
|
lut[CRC::TalesOfLegendia] = GSC_TalesOfLegendia;
|
||||||
lut[CRC::TalesofSymphonia] = GSC_TalesofSymphonia;
|
lut[CRC::TalesofSymphonia] = GSC_TalesofSymphonia;
|
||||||
lut[CRC::Tekken5] = GSC_Tekken5;
|
|
||||||
lut[CRC::TimeSplitters2] = GSC_TimeSplitters2;
|
lut[CRC::TimeSplitters2] = GSC_TimeSplitters2;
|
||||||
lut[CRC::TombRaiderAnniversary] = GSC_TombRaider;
|
lut[CRC::TombRaiderAnniversary] = GSC_TombRaider;
|
||||||
lut[CRC::TombRaiderLegend] = GSC_TombRaiderLegend;
|
lut[CRC::TombRaiderLegend] = GSC_TombRaiderLegend;
|
||||||
|
@ -2567,15 +2566,18 @@ void GSState::SetupCrcHack()
|
||||||
|
|
||||||
// Channel Effect
|
// Channel Effect
|
||||||
lut[CRC::DeathByDegreesTekkenNinaWilliams] = GSC_DeathByDegreesTekkenNinaWilliams;
|
lut[CRC::DeathByDegreesTekkenNinaWilliams] = GSC_DeathByDegreesTekkenNinaWilliams;
|
||||||
lut[CRC::GT3] = GSC_GT3;
|
|
||||||
lut[CRC::GT4] = GSC_GT4;
|
|
||||||
lut[CRC::GTConcept] = GSC_GTConcept;
|
|
||||||
lut[CRC::JamesBondEverythingOrNothing] = GSC_JamesBondEverythingOrNothing;
|
lut[CRC::JamesBondEverythingOrNothing] = GSC_JamesBondEverythingOrNothing;
|
||||||
lut[CRC::MetalGearSolid3] = GSC_MetalGearSolid3; // + accurate blending
|
lut[CRC::MetalGearSolid3] = GSC_MetalGearSolid3; // + accurate blending
|
||||||
lut[CRC::SkyGunner] = GSC_SkyGunner;
|
lut[CRC::SkyGunner] = GSC_SkyGunner;
|
||||||
lut[CRC::StarWarsBattlefront2] = GSC_StarWarsBattlefront2;
|
lut[CRC::StarWarsBattlefront2] = GSC_StarWarsBattlefront2;
|
||||||
lut[CRC::StarWarsBattlefront] = GSC_StarWarsBattlefront;
|
lut[CRC::StarWarsBattlefront] = GSC_StarWarsBattlefront;
|
||||||
|
// Dedicated shader for channel effect
|
||||||
lut[CRC::TouristTrophy] = GSC_TouristTrophy;
|
lut[CRC::TouristTrophy] = GSC_TouristTrophy;
|
||||||
|
lut[CRC::GT3] = GSC_GT3;
|
||||||
|
lut[CRC::GT4] = GSC_GT4;
|
||||||
|
lut[CRC::GTConcept] = GSC_GTConcept;
|
||||||
|
lut[CRC::TalesOfAbyss] = GSC_TalesOfAbyss;
|
||||||
|
lut[CRC::Tekken5] = GSC_Tekken5;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_gsc = lut[m_game.title];
|
m_gsc = lut[m_game.title];
|
||||||
|
|
Loading…
Reference in New Issue