GSdx: Move/add GT4 CRC

Moved a CRC hack to Aggressive that can cause or fix VRAM and RAM spikes.
This way people can switch between each config if they experience problems with either.
Varies on userconfig , game version and maybe hardware.

Added missing CRC game version for GT4 pal.

Note: The issue might be the same on GT3 and GTConcept , the code might
need to be removed for those games as well.
This commit is contained in:
lightningterror 2017-04-14 19:09:01 +02:00 committed by Gregory Hainaut
parent 99180f5afb
commit 303564fd70
2 changed files with 13 additions and 7 deletions

View File

@ -137,6 +137,7 @@ CRC::Game CRC::m_games[] =
{0x29C28734, ICO, CH, 0}, {0x29C28734, ICO, CH, 0},
{0xAEAD1CA3, GT4, JP, 0}, {0xAEAD1CA3, GT4, JP, 0},
{0x30E41D93, GT4, KO, 0}, {0x30E41D93, GT4, KO, 0},
{0x715CF2EC, GT4, EU, 0},
{0x44A61C8F, GT4, EU, 0}, {0x44A61C8F, GT4, EU, 0},
{0x0086E35B, GT4, EU, 0}, {0x0086E35B, GT4, EU, 0},
{0x77E61C8A, GT4, US, 0}, {0x77E61C8A, GT4, US, 0},

View File

@ -1336,13 +1336,18 @@ bool GSC_GT4(const GSFrameInfo& fi, int& skip)
// Game requires to extract source from RT (block boundary) (texture cache limitation) // Game requires to extract source from RT (block boundary) (texture cache limitation)
if(skip == 0) if(skip == 0)
{ {
if(fi.TME && fi.FBP >= 0x02f00 && fi.FPSM == PSM_PSMCT32 && (fi.TBP0 == 0x00000 || fi.TBP0 == 0x01180 /*|| fi.TBP0 == 0x01a40*/) && fi.TPSM == PSM_PSMT8) //TBP0 0x1a40 progressive if(Aggressive)
{ {
skip = 770; //ntsc, progressive 1540 // Removes layer obscuring the screen when the in-game brightness or contrast setting is set to any value but 0.
} // The hack can cause VRAM/RAM spikes when both brightness and contrast settings are set to 0.
if(g_crc_region == CRC::EU && fi.TME && fi.FBP >= 0x03400 && fi.FPSM == PSM_PSMCT32 && (fi.TBP0 == 0x00000 || fi.TBP0 == 0x01400 ) && fi.TPSM == PSM_PSMT8) if(fi.TME && fi.FBP >= 0x02f00 && fi.FPSM == PSM_PSMCT32 && (fi.TBP0 == 0x00000 || fi.TBP0 == 0x01180 /*|| fi.TBP0 == 0x01a40*/) && fi.TPSM == PSM_PSMT8) //TBP0 0x1a40 progressive
{ {
skip = 880; //pal skip = 770; // ntsc, progressive 1540
}
if(g_crc_region == CRC::EU && fi.TME && fi.FBP >= 0x03400 && fi.FPSM == PSM_PSMCT32 && (fi.TBP0 == 0x00000 || fi.TBP0 == 0x01400 ) && fi.TPSM == PSM_PSMT8)
{
skip = 880; // pal
}
} }
else if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x01400) && fi.FPSM == PSM_PSMCT24 && fi.TBP0 >= 0x03420 && fi.TPSM == PSM_PSMT8) else if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x01400) && fi.FPSM == PSM_PSMCT24 && fi.TBP0 >= 0x03420 && fi.TPSM == PSM_PSMT8)
{ {
@ -2541,8 +2546,8 @@ void GSState::SetupCrcHack()
lut[CRC::StarWarsBattlefront] = GSC_StarWarsBattlefront; lut[CRC::StarWarsBattlefront] = GSC_StarWarsBattlefront;
// Dedicated shader for channel effect // 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::GT4] = GSC_GT4;
lut[CRC::GT3] = GSC_GT3;
lut[CRC::GTConcept] = GSC_GTConcept; lut[CRC::GTConcept] = GSC_GTConcept;
lut[CRC::TalesOfAbyss] = GSC_TalesOfAbyss; lut[CRC::TalesOfAbyss] = GSC_TalesOfAbyss;
lut[CRC::Tekken5] = GSC_Tekken5; lut[CRC::Tekken5] = GSC_Tekken5;