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},
|
{0x7ADCB24A, DevilMayCry3, EU, 0},
|
||||||
{0x79C952B0, DevilMayCry3, JP, 0}, //SE
|
{0x79C952B0, DevilMayCry3, JP, 0}, //SE
|
||||||
{0x7F3DDEAB, DevilMayCry3, JP, 0},
|
{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;
|
hash_map<uint32, CRC::Game*> CRC::m_map;
|
||||||
|
|
|
@ -111,6 +111,9 @@ public:
|
||||||
StarWarsBattlefront2,
|
StarWarsBattlefront2,
|
||||||
BlackHawkDown,
|
BlackHawkDown,
|
||||||
DevilMayCry3,
|
DevilMayCry3,
|
||||||
|
BurnoutTakedown,
|
||||||
|
BurnoutRevenge,
|
||||||
|
BurnoutDominator,
|
||||||
TitleCount,
|
TitleCount,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -2998,6 +2998,27 @@ bool GSC_DevilMayCry3(const GSFrameInfo& fi, int& skip)
|
||||||
return true;
|
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)
|
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::StarWarsBattlefront2] = GSC_StarWarsBattlefront2;
|
||||||
map[CRC::BlackHawkDown] = GSC_BlackHawkDown;
|
map[CRC::BlackHawkDown] = GSC_BlackHawkDown;
|
||||||
map[CRC::DevilMayCry3] = GSC_DevilMayCry3;
|
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
|
// TODO: just set gsc in SetGameCRC once
|
||||||
|
|
Loading…
Reference in New Issue