From 4bb77cac099e9ae2c9714d29a42b0e6684f99541 Mon Sep 17 00:00:00 2001 From: Nezarn Date: Wed, 1 Jul 2020 12:37:59 +0200 Subject: [PATCH] - Homura (Nesica): fix mouse in windowed mode - Homura (Nesica): fix mouse in windowed mode --- .../Functions/Games/Nesica/NesicaGeneric.cpp | 24 +++++++++++++++++++ OpenParrot/src/Utility/GameDetect.cpp | 2 +- OpenParrot/src/Utility/GameID.h | 3 ++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/OpenParrot/src/Functions/Games/Nesica/NesicaGeneric.cpp b/OpenParrot/src/Functions/Games/Nesica/NesicaGeneric.cpp index 83e2641..9d72398 100644 --- a/OpenParrot/src/Functions/Games/Nesica/NesicaGeneric.cpp +++ b/OpenParrot/src/Functions/Games/Nesica/NesicaGeneric.cpp @@ -322,6 +322,30 @@ static InitFunction initFunction_DoNotFall([]() #endif }, GameID::DoNotFall); +static InitFunction initFunction_HomuraNesica([]() +{ + 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 + if (ToBool(config["General"]["Windowed"])) + { + // don't set cursor POS to X=240 Y=320 + injector::MakeNOP(imageBase + 0x123394, 16, true); + injector::MakeNOP(imageBase + 0x1235AE, 16, true); + + // show cursor + injector::WriteMemory(imageBase + 0x1233A5, 0x01, true); + injector::WriteMemory(imageBase + 0x1235BF, 0x01, true); + } + +}, GameID::HomuraNesica); + static InitFunction initFunction_Theatrhythm([]() { uintptr_t imageBase = (uintptr_t)GetModuleHandleA(0); diff --git a/OpenParrot/src/Utility/GameDetect.cpp b/OpenParrot/src/Utility/GameDetect.cpp index 67eab85..cc7c541 100644 --- a/OpenParrot/src/Utility/GameDetect.cpp +++ b/OpenParrot/src/Utility/GameDetect.cpp @@ -155,7 +155,7 @@ void GameDetect::DetectCurrentGame() isNesica = true; break; case 0xabc41e0a: // Homura - currentGame = GameID::Nesica; + currentGame = GameID::HomuraNesica; NesicaKey = NesicaKey::None; isNesica = true; break; diff --git a/OpenParrot/src/Utility/GameID.h b/OpenParrot/src/Utility/GameID.h index aa4a830..1fc8f93 100644 --- a/OpenParrot/src/Utility/GameID.h +++ b/OpenParrot/src/Utility/GameID.h @@ -81,5 +81,6 @@ enum class GameID KOF98Nesica, VampireSavior, ChaosCode, - DoNotFall + DoNotFall, + HomuraNesica }; \ No newline at end of file