mirror of https://github.com/PCSX2/pcsx2.git
gsdx: Don't set CRC function pointer when disabled
Less costly than an extra check for each draw calls
This commit is contained in:
parent
1699289162
commit
f765a195e2
|
@ -98,7 +98,7 @@ void GSRendererHW::SetGameCRC(uint32 crc, int options)
|
|||
|
||||
bool GSRendererHW::CanUpscale()
|
||||
{
|
||||
if(m_crc_hack_level && m_hacks.m_cu && !(this->*m_hacks.m_cu)())
|
||||
if(m_hacks.m_cu && !(this->*m_hacks.m_cu)())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -447,7 +447,7 @@ void GSRendererHW::Draw()
|
|||
#endif
|
||||
}
|
||||
|
||||
if(m_crc_hack_level && m_hacks.m_oi && !(this->*m_hacks.m_oi)(rt->m_texture, ds->m_texture, tex))
|
||||
if(m_hacks.m_oi && !(this->*m_hacks.m_oi)(rt->m_texture, ds->m_texture, tex))
|
||||
{
|
||||
s_n += 1; // keep counter sync
|
||||
GL_POP();
|
||||
|
@ -542,7 +542,7 @@ void GSRendererHW::Draw()
|
|||
|
||||
//
|
||||
|
||||
if(m_crc_hack_level && m_hacks.m_oo)
|
||||
if(m_hacks.m_oo)
|
||||
{
|
||||
(this->*m_hacks.m_oo)();
|
||||
}
|
||||
|
|
|
@ -2306,7 +2306,7 @@ void GSState::SetGameCRC(uint32 crc, int options)
|
|||
{
|
||||
m_crc = crc;
|
||||
m_options = options;
|
||||
m_game = CRC::Lookup(m_crc_hack_level < 2 ? 0 : crc);
|
||||
m_game = CRC::Lookup(m_crc_hack_level ? crc : 0);
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -5421,121 +5421,123 @@ bool GSState::IsBadFrame(int& skip, int UserHacks_SkipDraw)
|
|||
|
||||
memset(map, 0, sizeof(map));
|
||||
|
||||
map[CRC::Okami] = GSC_Okami;
|
||||
map[CRC::MetalGearSolid3] = GSC_MetalGearSolid3;
|
||||
map[CRC::DBZBT2] = GSC_DBZBT2;
|
||||
map[CRC::DBZBT3] = GSC_DBZBT3;
|
||||
map[CRC::SFEX3] = GSC_SFEX3;
|
||||
map[CRC::Bully] = GSC_Bully;
|
||||
map[CRC::BullyCC] = GSC_BullyCC;
|
||||
map[CRC::SoTC] = GSC_SoTC;
|
||||
map[CRC::OnePieceGrandAdventure] = GSC_OnePieceGrandAdventure;
|
||||
map[CRC::OnePieceGrandBattle] = GSC_OnePieceGrandBattle;
|
||||
map[CRC::ICO] = GSC_ICO;
|
||||
map[CRC::GT4] = GSC_GT4;
|
||||
map[CRC::GT3] = GSC_GT3;
|
||||
map[CRC::GTConcept] = GSC_GTConcept;
|
||||
map[CRC::WildArms4] = GSC_WildArms4;
|
||||
map[CRC::WildArms5] = GSC_WildArms5;
|
||||
map[CRC::Manhunt2] = GSC_Manhunt2;
|
||||
map[CRC::CrashBandicootWoC] = GSC_CrashBandicootWoC;
|
||||
map[CRC::ResidentEvil4] = GSC_ResidentEvil4;
|
||||
map[CRC::Spartan] = GSC_Spartan;
|
||||
map[CRC::AceCombat4] = GSC_AceCombat4;
|
||||
map[CRC::Drakengard2] = GSC_Drakengard2;
|
||||
map[CRC::Tekken5] = GSC_Tekken5;
|
||||
map[CRC::IkkiTousen] = GSC_IkkiTousen;
|
||||
map[CRC::GodOfWar] = GSC_GodOfWar;
|
||||
map[CRC::GodOfWar2] = GSC_GodOfWar2;
|
||||
map[CRC::GiTS] = GSC_GiTS;
|
||||
map[CRC::Onimusha3] = GSC_Onimusha3;
|
||||
map[CRC::TalesOfAbyss] = GSC_TalesOfAbyss;
|
||||
map[CRC::SonicUnleashed] = GSC_SonicUnleashed;
|
||||
map[CRC::SimpsonsGame] = GSC_SimpsonsGame;
|
||||
map[CRC::Genji] = GSC_Genji;
|
||||
map[CRC::RadiataStories] = GSC_RadiataStories;
|
||||
map[CRC::HauntingGround] = GSC_HauntingGround;
|
||||
map[CRC::EvangelionJo] = GSC_EvangelionJo;
|
||||
map[CRC::SuikodenTactics] = GSC_SuikodenTactics;
|
||||
map[CRC::CaptainTsubasa] = GSC_CaptainTsubasa;
|
||||
map[CRC::Oneechanbara2Special] = GSC_Oneechanbara2Special;
|
||||
map[CRC::NarutimateAccel] = GSC_NarutimateAccel;
|
||||
map[CRC::Naruto] = GSC_Naruto;
|
||||
map[CRC::EternalPoison] = GSC_EternalPoison;
|
||||
map[CRC::LegoBatman] = GSC_LegoBatman;
|
||||
map[CRC::SakuraTaisen] = GSC_SakuraTaisen;
|
||||
map[CRC::TenchuWoH] = GSC_Tenchu;
|
||||
map[CRC::TenchuFS] = GSC_Tenchu;
|
||||
map[CRC::Sly3] = GSC_Sly3;
|
||||
map[CRC::Sly2] = GSC_Sly2;
|
||||
map[CRC::ShadowofRome] = GSC_ShadowofRome;
|
||||
map[CRC::FFXII] = GSC_FFXII;
|
||||
map[CRC::FFX2] = GSC_FFX2;
|
||||
map[CRC::FFX] = GSC_FFX;
|
||||
map[CRC::ArctheLad] = GSC_ArctheLad;
|
||||
map[CRC::DemonStone] = GSC_DemonStone;
|
||||
map[CRC::BigMuthaTruckers] = GSC_BigMuthaTruckers;
|
||||
map[CRC::TimeSplitters2] = GSC_TimeSplitters2;
|
||||
map[CRC::ReZ] = GSC_ReZ;
|
||||
map[CRC::LordOfTheRingsTwoTowers] = GSC_LordOfTheRingsTwoTowers;
|
||||
map[CRC::LordOfTheRingsThirdAge] = GSC_LordOfTheRingsThirdAge;
|
||||
map[CRC::RedDeadRevolver] = GSC_RedDeadRevolver;
|
||||
map[CRC::HeavyMetalThunder] = GSC_HeavyMetalThunder;
|
||||
map[CRC::BleachBladeBattlers] = GSC_BleachBladeBattlers;
|
||||
map[CRC::CrashNburn] = GSC_CrashNburn;
|
||||
map[CRC::TombRaiderUnderworld] = GSC_TombRaiderUnderWorld;
|
||||
map[CRC::TombRaiderAnniversary] = GSC_TombRaider;
|
||||
map[CRC::TombRaiderLegend] = GSC_TombRaiderLegend;
|
||||
map[CRC::SSX3] = GSC_SSX3;
|
||||
map[CRC::Black] = GSC_Black;
|
||||
map[CRC::FFVIIDoC] = GSC_FFVIIDoC;
|
||||
map[CRC::StarWarsForceUnleashed] = GSC_StarWarsForceUnleashed;
|
||||
map[CRC::StarWarsBattlefront] = GSC_StarWarsBattlefront;
|
||||
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;
|
||||
map[CRC::MidnightClub3] = GSC_MidnightClub3;
|
||||
map[CRC::SpyroNewBeginning] = GSC_SpyroNewBeginning;
|
||||
map[CRC::SpyroEternalNight] = GSC_SpyroEternalNight;
|
||||
map[CRC::TalesOfLegendia] = GSC_TalesOfLegendia;
|
||||
map[CRC::NanoBreaker] = GSC_NanoBreaker;
|
||||
map[CRC::Kunoichi] = GSC_Kunoichi;
|
||||
map[CRC::Yakuza] = GSC_Yakuza;
|
||||
map[CRC::Yakuza2] = GSC_Yakuza2;
|
||||
map[CRC::SkyGunner] = GSC_SkyGunner;
|
||||
map[CRC::JamesBondEverythingOrNothing] = GSC_JamesBondEverythingOrNothing;
|
||||
map[CRC::ZettaiZetsumeiToshi2] = GSC_ZettaiZetsumeiToshi2;
|
||||
map[CRC::ShinOnimusha] = GSC_ShinOnimusha;
|
||||
map[CRC::XE3] = GSC_XE3;
|
||||
map[CRC::GetaWay] = GSC_GetaWay;
|
||||
map[CRC::GetaWayBlackMonday] = GSC_GetaWay;
|
||||
map[CRC::SakuraWarsSoLongMyLove] = GSC_SakuraWarsSoLongMyLove;
|
||||
map[CRC::FightingBeautyWulong] = GSC_FightingBeautyWulong;
|
||||
map[CRC::TouristTrophy] = GSC_TouristTrophy;
|
||||
map[CRC::GTASanAndreas] = GSC_GTASanAndreas;
|
||||
map[CRC::FrontMission5] = GSC_FrontMission5;
|
||||
map[CRC::GodHand] = GSC_GodHand;
|
||||
map[CRC::KnightsOfTheTemple2] = GSC_KnightsOfTheTemple2;
|
||||
map[CRC::UltramanFightingEvolution] = GSC_UltramanFightingEvolution;
|
||||
map[CRC::DeathByDegreesTekkenNinaWilliams] = GSC_DeathByDegreesTekkenNinaWilliams;
|
||||
map[CRC::AlpineRacer3] = GSC_AlpineRacer3;
|
||||
map[CRC::HummerBadlands] = GSC_HummerBadlands;
|
||||
map[CRC::SengokuBasara] = GSC_SengokuBasara;
|
||||
map[CRC::Grandia3] = GSC_Grandia3;
|
||||
map[CRC::FinalFightStreetwise] = GSC_FinalFightStreetwise;
|
||||
map[CRC::TalesofSymphonia] = GSC_TalesofSymphonia;
|
||||
map[CRC::SoulCalibur2] = GSC_SoulCalibur2;
|
||||
map[CRC::SoulCalibur3] = GSC_SoulCalibur3;
|
||||
map[CRC::Simple2000Vol114] = GSC_Simple2000Vol114;
|
||||
map[CRC::UrbanReign] = GSC_UrbanReign;
|
||||
map[CRC::SteambotChronicles] = GSC_SteambotChronicles;
|
||||
map[CRC::SacredBlaze] = GSC_SacredBlaze;
|
||||
map[CRC::SMTNocturne] = GSC_SMTNocturneDDS<0x2054E870>;
|
||||
map[CRC::SMTDDS1] = GSC_SMTNocturneDDS<0x203BA820>;
|
||||
map[CRC::SMTDDS2] = GSC_SMTNocturneDDS<0x20435BF0>;
|
||||
if (s_crc_hack_level > 1) {
|
||||
map[CRC::Okami] = GSC_Okami;
|
||||
map[CRC::MetalGearSolid3] = GSC_MetalGearSolid3;
|
||||
map[CRC::DBZBT2] = GSC_DBZBT2;
|
||||
map[CRC::DBZBT3] = GSC_DBZBT3;
|
||||
map[CRC::SFEX3] = GSC_SFEX3;
|
||||
map[CRC::Bully] = GSC_Bully;
|
||||
map[CRC::BullyCC] = GSC_BullyCC;
|
||||
map[CRC::SoTC] = GSC_SoTC;
|
||||
map[CRC::OnePieceGrandAdventure] = GSC_OnePieceGrandAdventure;
|
||||
map[CRC::OnePieceGrandBattle] = GSC_OnePieceGrandBattle;
|
||||
map[CRC::ICO] = GSC_ICO;
|
||||
map[CRC::GT4] = GSC_GT4;
|
||||
map[CRC::GT3] = GSC_GT3;
|
||||
map[CRC::GTConcept] = GSC_GTConcept;
|
||||
map[CRC::WildArms4] = GSC_WildArms4;
|
||||
map[CRC::WildArms5] = GSC_WildArms5;
|
||||
map[CRC::Manhunt2] = GSC_Manhunt2;
|
||||
map[CRC::CrashBandicootWoC] = GSC_CrashBandicootWoC;
|
||||
map[CRC::ResidentEvil4] = GSC_ResidentEvil4;
|
||||
map[CRC::Spartan] = GSC_Spartan;
|
||||
map[CRC::AceCombat4] = GSC_AceCombat4;
|
||||
map[CRC::Drakengard2] = GSC_Drakengard2;
|
||||
map[CRC::Tekken5] = GSC_Tekken5;
|
||||
map[CRC::IkkiTousen] = GSC_IkkiTousen;
|
||||
map[CRC::GodOfWar] = GSC_GodOfWar;
|
||||
map[CRC::GodOfWar2] = GSC_GodOfWar2;
|
||||
map[CRC::GiTS] = GSC_GiTS;
|
||||
map[CRC::Onimusha3] = GSC_Onimusha3;
|
||||
map[CRC::TalesOfAbyss] = GSC_TalesOfAbyss;
|
||||
map[CRC::SonicUnleashed] = GSC_SonicUnleashed;
|
||||
map[CRC::SimpsonsGame] = GSC_SimpsonsGame;
|
||||
map[CRC::Genji] = GSC_Genji;
|
||||
map[CRC::RadiataStories] = GSC_RadiataStories;
|
||||
map[CRC::HauntingGround] = GSC_HauntingGround;
|
||||
map[CRC::EvangelionJo] = GSC_EvangelionJo;
|
||||
map[CRC::SuikodenTactics] = GSC_SuikodenTactics;
|
||||
map[CRC::CaptainTsubasa] = GSC_CaptainTsubasa;
|
||||
map[CRC::Oneechanbara2Special] = GSC_Oneechanbara2Special;
|
||||
map[CRC::NarutimateAccel] = GSC_NarutimateAccel;
|
||||
map[CRC::Naruto] = GSC_Naruto;
|
||||
map[CRC::EternalPoison] = GSC_EternalPoison;
|
||||
map[CRC::LegoBatman] = GSC_LegoBatman;
|
||||
map[CRC::SakuraTaisen] = GSC_SakuraTaisen;
|
||||
map[CRC::TenchuWoH] = GSC_Tenchu;
|
||||
map[CRC::TenchuFS] = GSC_Tenchu;
|
||||
map[CRC::Sly3] = GSC_Sly3;
|
||||
map[CRC::Sly2] = GSC_Sly2;
|
||||
map[CRC::ShadowofRome] = GSC_ShadowofRome;
|
||||
map[CRC::FFXII] = GSC_FFXII;
|
||||
map[CRC::FFX2] = GSC_FFX2;
|
||||
map[CRC::FFX] = GSC_FFX;
|
||||
map[CRC::ArctheLad] = GSC_ArctheLad;
|
||||
map[CRC::DemonStone] = GSC_DemonStone;
|
||||
map[CRC::BigMuthaTruckers] = GSC_BigMuthaTruckers;
|
||||
map[CRC::TimeSplitters2] = GSC_TimeSplitters2;
|
||||
map[CRC::ReZ] = GSC_ReZ;
|
||||
map[CRC::LordOfTheRingsTwoTowers] = GSC_LordOfTheRingsTwoTowers;
|
||||
map[CRC::LordOfTheRingsThirdAge] = GSC_LordOfTheRingsThirdAge;
|
||||
map[CRC::RedDeadRevolver] = GSC_RedDeadRevolver;
|
||||
map[CRC::HeavyMetalThunder] = GSC_HeavyMetalThunder;
|
||||
map[CRC::BleachBladeBattlers] = GSC_BleachBladeBattlers;
|
||||
map[CRC::CrashNburn] = GSC_CrashNburn;
|
||||
map[CRC::TombRaiderUnderworld] = GSC_TombRaiderUnderWorld;
|
||||
map[CRC::TombRaiderAnniversary] = GSC_TombRaider;
|
||||
map[CRC::TombRaiderLegend] = GSC_TombRaiderLegend;
|
||||
map[CRC::SSX3] = GSC_SSX3;
|
||||
map[CRC::Black] = GSC_Black;
|
||||
map[CRC::FFVIIDoC] = GSC_FFVIIDoC;
|
||||
map[CRC::StarWarsForceUnleashed] = GSC_StarWarsForceUnleashed;
|
||||
map[CRC::StarWarsBattlefront] = GSC_StarWarsBattlefront;
|
||||
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;
|
||||
map[CRC::MidnightClub3] = GSC_MidnightClub3;
|
||||
map[CRC::SpyroNewBeginning] = GSC_SpyroNewBeginning;
|
||||
map[CRC::SpyroEternalNight] = GSC_SpyroEternalNight;
|
||||
map[CRC::TalesOfLegendia] = GSC_TalesOfLegendia;
|
||||
map[CRC::NanoBreaker] = GSC_NanoBreaker;
|
||||
map[CRC::Kunoichi] = GSC_Kunoichi;
|
||||
map[CRC::Yakuza] = GSC_Yakuza;
|
||||
map[CRC::Yakuza2] = GSC_Yakuza2;
|
||||
map[CRC::SkyGunner] = GSC_SkyGunner;
|
||||
map[CRC::JamesBondEverythingOrNothing] = GSC_JamesBondEverythingOrNothing;
|
||||
map[CRC::ZettaiZetsumeiToshi2] = GSC_ZettaiZetsumeiToshi2;
|
||||
map[CRC::ShinOnimusha] = GSC_ShinOnimusha;
|
||||
map[CRC::XE3] = GSC_XE3;
|
||||
map[CRC::GetaWay] = GSC_GetaWay;
|
||||
map[CRC::GetaWayBlackMonday] = GSC_GetaWay;
|
||||
map[CRC::SakuraWarsSoLongMyLove] = GSC_SakuraWarsSoLongMyLove;
|
||||
map[CRC::FightingBeautyWulong] = GSC_FightingBeautyWulong;
|
||||
map[CRC::TouristTrophy] = GSC_TouristTrophy;
|
||||
map[CRC::GTASanAndreas] = GSC_GTASanAndreas;
|
||||
map[CRC::FrontMission5] = GSC_FrontMission5;
|
||||
map[CRC::GodHand] = GSC_GodHand;
|
||||
map[CRC::KnightsOfTheTemple2] = GSC_KnightsOfTheTemple2;
|
||||
map[CRC::UltramanFightingEvolution] = GSC_UltramanFightingEvolution;
|
||||
map[CRC::DeathByDegreesTekkenNinaWilliams] = GSC_DeathByDegreesTekkenNinaWilliams;
|
||||
map[CRC::AlpineRacer3] = GSC_AlpineRacer3;
|
||||
map[CRC::HummerBadlands] = GSC_HummerBadlands;
|
||||
map[CRC::SengokuBasara] = GSC_SengokuBasara;
|
||||
map[CRC::Grandia3] = GSC_Grandia3;
|
||||
map[CRC::FinalFightStreetwise] = GSC_FinalFightStreetwise;
|
||||
map[CRC::TalesofSymphonia] = GSC_TalesofSymphonia;
|
||||
map[CRC::SoulCalibur2] = GSC_SoulCalibur2;
|
||||
map[CRC::SoulCalibur3] = GSC_SoulCalibur3;
|
||||
map[CRC::Simple2000Vol114] = GSC_Simple2000Vol114;
|
||||
map[CRC::UrbanReign] = GSC_UrbanReign;
|
||||
map[CRC::SteambotChronicles] = GSC_SteambotChronicles;
|
||||
map[CRC::SacredBlaze] = GSC_SacredBlaze;
|
||||
map[CRC::SMTNocturne] = GSC_SMTNocturneDDS<0x2054E870>;
|
||||
map[CRC::SMTDDS1] = GSC_SMTNocturneDDS<0x203BA820>;
|
||||
map[CRC::SMTDDS2] = GSC_SMTNocturneDDS<0x20435BF0>;
|
||||
}
|
||||
|
||||
// Hack that were fixed on openGL
|
||||
if (Dx_only) {
|
||||
|
|
Loading…
Reference in New Issue