From 456252541f58d83757bb952df743ecc7b090ff51 Mon Sep 17 00:00:00 2001 From: Nezarn Date: Wed, 29 Jul 2020 20:12:36 +0200 Subject: [PATCH] - Add support for BlazBlue Central Fiction 2.01 - Add support for BlazBlue Central Fiction 2.01 --- .../Functions/Games/Nesica/NesicaGeneric.cpp | 23 +++++++++++++++++++ .../src/Functions/Nesica_Libs/CryptoPipe.h | 2 +- OpenParrot/src/Utility/GameDetect.cpp | 7 +++++- OpenParrot/src/Utility/GameID.h | 3 ++- 4 files changed, 32 insertions(+), 3 deletions(-) diff --git a/OpenParrot/src/Functions/Games/Nesica/NesicaGeneric.cpp b/OpenParrot/src/Functions/Games/Nesica/NesicaGeneric.cpp index 013985e..933df87 100644 --- a/OpenParrot/src/Functions/Games/Nesica/NesicaGeneric.cpp +++ b/OpenParrot/src/Functions/Games/Nesica/NesicaGeneric.cpp @@ -430,6 +430,29 @@ static InitFunction initFunction_KOF2002([]() #endif }, GameID::KOF2002); +static InitFunction initFunction_BlazBlueCF201([]() +{ + uintptr_t imageBase = (uintptr_t)GetModuleHandleA(0); + init_FastIoEmu(); + init_RfidEmu(); + init_RegHooks(); + if (GameDetect::enableNesysEmu) + init_NesysEmu(); +#if _M_IX86 + init_CryptoPipe(GameDetect::NesicaKey); +#endif + + // skip nesys error + injector::MakeNOP(imageBase + 0x7D932, 6, true); + injector::MakeJMP(imageBase + 0x7D932, imageBase + 0x7DA03, true); + + // unlock colors + injector::WriteMemory(imageBase + 0x1B0408, 0x18, true); + injector::WriteMemory(imageBase + 0x1B04D2, 0x18, true); + injector::WriteMemory(imageBase + 0x1B04FD, 0x75, true); + +}, GameID::BlazBlueCF201); + static InitFunction initFunction_Theatrhythm([]() { uintptr_t imageBase = (uintptr_t)GetModuleHandleA(0); diff --git a/OpenParrot/src/Functions/Nesica_Libs/CryptoPipe.h b/OpenParrot/src/Functions/Nesica_Libs/CryptoPipe.h index 3dbf912..0b4dbf0 100644 --- a/OpenParrot/src/Functions/Nesica_Libs/CryptoPipe.h +++ b/OpenParrot/src/Functions/Nesica_Libs/CryptoPipe.h @@ -3,7 +3,7 @@ enum class NesicaKey { None = -1, MagicalBeat = 0, - BlazBlueCentralFriction = 1, + BlazBlueCentralFiction = 1, Persona4Arena = 2, BlazBlueChronoPhantasma = 3, KOFXIIIClimax = 4, diff --git a/OpenParrot/src/Utility/GameDetect.cpp b/OpenParrot/src/Utility/GameDetect.cpp index 58b2b77..69f05ff 100644 --- a/OpenParrot/src/Utility/GameDetect.cpp +++ b/OpenParrot/src/Utility/GameDetect.cpp @@ -47,7 +47,7 @@ void GameDetect::DetectCurrentGame() break; case 0x6e67076f: currentGame = GameID::Nesica; - NesicaKey = NesicaKey::BlazBlueCentralFriction; + NesicaKey = NesicaKey::BlazBlueCentralFiction; isNesica = true; break; case 0xd98bed41: // Crimzon Clover @@ -580,6 +580,11 @@ void GameDetect::DetectCurrentGame() NesicaKey = NesicaKey::None; isNesica = true; break; + case 0x31e72d72: // BlazBlue Central Fiction 2.01 + currentGame = GameID::BlazBlueCF201; + NesicaKey = NesicaKey::BlazBlueCentralFiction; + isNesica = true; + break; #ifdef _AMD64_ case 0x80ebd207: currentGame = GameID::Theatrhythm; diff --git a/OpenParrot/src/Utility/GameID.h b/OpenParrot/src/Utility/GameID.h index f67a469..b3d0e9c 100644 --- a/OpenParrot/src/Utility/GameID.h +++ b/OpenParrot/src/Utility/GameID.h @@ -89,5 +89,6 @@ enum class GameID TroubleWitchesNesica, Yatagarasu, Exception, - KOF2002 + KOF2002, + BlazBlueCF201 }; \ No newline at end of file