mirror of https://github.com/PCSX2/pcsx2.git
GSdx: CRC hackfix for Burnout games, removes garbage from screen.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4790 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
7ecd913a7d
commit
5f20a11cd5
|
@ -279,6 +279,12 @@ CRC::Game CRC::m_games[] =
|
|||
{0x7ADCB24A, DevilMayCry3, EU, 0},
|
||||
{0x79C952B0, DevilMayCry3, JP, 0}, //SE
|
||||
{0x7F3DDEAB, DevilMayCry3, JP, 0},
|
||||
{0xBEBF8793, BurnoutTakedown, US, 0},
|
||||
{0x75BECC18, BurnoutTakedown, EU, 0},
|
||||
{0xD224D348, BurnoutRevenge, US, 0},
|
||||
{0x7E83CC5B, BurnoutRevenge, EU, 0},
|
||||
{0x8C9576A1, BurnoutDominator, US, 0},
|
||||
{0x8C9576B4, BurnoutDominator, EU, 0},
|
||||
};
|
||||
|
||||
hash_map<uint32, CRC::Game*> CRC::m_map;
|
||||
|
|
|
@ -111,6 +111,9 @@ public:
|
|||
StarWarsBattlefront2,
|
||||
BlackHawkDown,
|
||||
DevilMayCry3,
|
||||
BurnoutTakedown,
|
||||
BurnoutRevenge,
|
||||
BurnoutDominator,
|
||||
TitleCount,
|
||||
};
|
||||
|
||||
|
|
|
@ -2998,6 +2998,27 @@ bool GSC_DevilMayCry3(const GSFrameInfo& fi, int& skip)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool GSC_Burnout(const GSFrameInfo& fi, int& skip)
|
||||
{
|
||||
if(skip == 0)
|
||||
{
|
||||
if(fi.TME && (fi.FBP == 0x01dc0 || fi.FBP == 0x02200) && fi.FPSM == fi.TPSM && (fi.TBP0 == 0x01dc0 || fi.TBP0 == 0x02200) && fi.TPSM == PSM_PSMCT32)
|
||||
{
|
||||
skip = 4;
|
||||
}
|
||||
else if (fi.TME && (fi.FBP == 0x008c0 || fi.FBP == 0x00a00) && fi.FPSM == PSM_PSMCT16 && (fi.TBP0 == 0x01a40 || fi.TBP0 == 0x01e00) && fi.TPSM == PSM_PSMZ16)
|
||||
{
|
||||
skip = 4; //fog
|
||||
}
|
||||
else if (fi.TME && (fi.FBP == 0x02d60 || fi.FBP == 0x033a0) && fi.FPSM == fi.TPSM && (fi.TBP0 == 0x02d60 || fi.TBP0 == 0x033a0) && fi.TPSM == PSM_PSMCT32 && fi.FBMSK == 0x0)
|
||||
{
|
||||
skip = 2; //impact screen
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool GSState::IsBadFrame(int& skip, int UserHacks_SkipDraw)
|
||||
{
|
||||
|
@ -3079,6 +3100,9 @@ bool GSState::IsBadFrame(int& skip, int UserHacks_SkipDraw)
|
|||
map[CRC::StarWarsBattlefront2] = GSC_StarWarsBattlefront2;
|
||||
map[CRC::BlackHawkDown] = GSC_BlackHawkDown;
|
||||
map[CRC::DevilMayCry3] = GSC_DevilMayCry3;
|
||||
map[CRC::BurnoutTakedown] = GSC_Burnout;
|
||||
map[CRC::BurnoutRevenge] = GSC_Burnout;
|
||||
map[CRC::BurnoutDominator] = GSC_Burnout;
|
||||
}
|
||||
|
||||
// TODO: just set gsc in SetGameCRC once
|
||||
|
|
Loading…
Reference in New Issue