diff --git a/plugins/GSdx/GSRendererHW.cpp b/plugins/GSdx/GSRendererHW.cpp index 40625e5c37..860e6ca346 100644 --- a/plugins/GSdx/GSRendererHW.cpp +++ b/plugins/GSdx/GSRendererHW.cpp @@ -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)(); } diff --git a/plugins/GSdx/GSState.cpp b/plugins/GSdx/GSState.cpp index 5e7ff3b351..8a75469597 100644 --- a/plugins/GSdx/GSState.cpp +++ b/plugins/GSdx/GSState.cpp @@ -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) {