Add Unreal Engine include. Cutscenes support improvement
This commit is contained in:
@@ -4,26 +4,7 @@
|
|||||||
#include "UEWidgets.hpp"
|
#include "UEWidgets.hpp"
|
||||||
#include "UEvars.hpp"
|
#include "UEvars.hpp"
|
||||||
#include "Logger.hpp"
|
#include "Logger.hpp"
|
||||||
#include "SDK/Basic.hpp"
|
#include "SDK.h"
|
||||||
#include "SDK/Engine_classes.hpp"
|
|
||||||
#include "SDK/SandFall_classes.hpp"
|
|
||||||
#include "SDK/BP_jRPG_GM_Bootstrap_classes.hpp"
|
|
||||||
#include "SDK/BP_jRPG_Character_World_classes.hpp"
|
|
||||||
#include "SDK/BP_jRPG_Character_Battle_Base_classes.hpp"
|
|
||||||
#include "SDK/AC_jRPG_CharacterBattleStats_classes.hpp"
|
|
||||||
#include "SDK/AC_jRPG_BattleManager_classes.hpp"
|
|
||||||
#include "SDK/BP_jRPG_Enemy_World_Base_Seamless_classes.hpp"
|
|
||||||
#include "SDK/WBP_CinematicTransition_classes.hpp"
|
|
||||||
#include "SDK/WBP_PauseMenu_classes.hpp"
|
|
||||||
#include "SDK/WBP_HUD_BattleScreen_classes.hpp"
|
|
||||||
#include "SDK/WBP_GM_MainMenuContainer_classes.hpp"
|
|
||||||
#include "SDK/WBP_GameMenu_v3_classes.hpp"
|
|
||||||
#include "SDK/WBP_GM_CharacterMenuContainer_classes.hpp"
|
|
||||||
#include "SDK/WBP_Merchant_Panel_classes.hpp"
|
|
||||||
#include "SDK/WBP_WidescreenRatioBox_classes.hpp"
|
|
||||||
#include "SDK/WBP_DialogNotifBox_classes.hpp"
|
|
||||||
#include "SDK/WBP_PromptContainer_classes.hpp"
|
|
||||||
#include "SDK/WBP_Exploration_HUD_classes.hpp"
|
|
||||||
|
|
||||||
using namespace SDK;
|
using namespace SDK;
|
||||||
|
|
||||||
@@ -81,7 +62,8 @@ static float g_Camera_Out = 280.f;
|
|||||||
static uint8_t* FOVaddress = nullptr;
|
static uint8_t* FOVaddress = nullptr;
|
||||||
static uint8_t* CameraComponentaddress = nullptr;
|
static uint8_t* CameraComponentaddress = nullptr;
|
||||||
static uint8_t* Cameraaddress = nullptr;
|
static uint8_t* Cameraaddress = nullptr;
|
||||||
static uint8_t* CutscenesFPSaddress = nullptr;
|
static uint8_t* CutscenesFPSaddress1 = nullptr;
|
||||||
|
static uint8_t* CutscenesFPSaddress2 = nullptr;
|
||||||
static uint8_t* CAaddress = nullptr;
|
static uint8_t* CAaddress = nullptr;
|
||||||
static uint8_t* DOFaddress = nullptr;
|
static uint8_t* DOFaddress = nullptr;
|
||||||
static uint8_t* Fogaddress = nullptr;
|
static uint8_t* Fogaddress = nullptr;
|
||||||
@@ -117,7 +99,8 @@ extern "C" __declspec(dllexport) void SetFixEnabled(bool enabled, bool init) {
|
|||||||
logger->info("--------------- AOB scan started ---------------");
|
logger->info("--------------- AOB scan started ---------------");
|
||||||
constexpr auto CameraComponentStringObfuscated = make_obfuscated<0xF3>("EB ?? F3 0F ?? ?? ?? ?? ?? ?? F3 0F ?? ?? ?? 8B 83");
|
constexpr auto CameraComponentStringObfuscated = make_obfuscated<0xF3>("EB ?? F3 0F ?? ?? ?? ?? ?? ?? F3 0F ?? ?? ?? 8B 83");
|
||||||
constexpr auto FOVStringObfuscated = make_obfuscated<0xF3>("77 ?? 48 ?? ?? FF 90 ?? ?? ?? ?? F3 0F ?? ?? ?? 48 83 ?? ?? C3");
|
constexpr auto FOVStringObfuscated = make_obfuscated<0xF3>("77 ?? 48 ?? ?? FF 90 ?? ?? ?? ?? F3 0F ?? ?? ?? 48 83 ?? ?? C3");
|
||||||
constexpr auto CutscenesFPSStringObfuscated = make_obfuscated<0x0F>("EB ?? 0F ?? ?? 48 8B ?? ?? ?? 0F 28 ?? ?? ?? 44 0F ?? ?? ?? ?? 44 0F");
|
constexpr auto CutscenesFPS1StringObfuscated = make_obfuscated<0x0F>("EB ?? 0F ?? ?? 48 8B ?? ?? ?? 0F 28 ?? ?? ?? 44 0F ?? ?? ?? ?? 44 0F");
|
||||||
|
constexpr auto CutscenesFPS2StringObfuscated = make_obfuscated<0x0F>("0F 84 ?? ?? ?? ?? 48 8D ?? ?? ?? 48 89 ?? ?? ?? E8 ?? ?? ?? ?? 83 78");
|
||||||
constexpr auto CameraStruct1StringObfuscated = make_obfuscated<0x48>("48 89 ?? ?? ?? 57 48 83 ?? ?? 0F ?? ?? 48 8B FA 48 ?? ?? 0F ?? ?? F2 0F 10");
|
constexpr auto CameraStruct1StringObfuscated = make_obfuscated<0x48>("48 89 ?? ?? ?? 57 48 83 ?? ?? 0F ?? ?? 48 8B FA 48 ?? ?? 0F ?? ?? F2 0F 10");
|
||||||
constexpr auto CameraStringObfuscated = make_obfuscated<0x28>("F2 0F 10 ?? ?? ?? 0F 28 ?? ?? ?? ?? ?? F2 0F ?? ?? ?? F2 0F ?? ?? ?? 0F ?? ?? 0F");
|
constexpr auto CameraStringObfuscated = make_obfuscated<0x28>("F2 0F 10 ?? ?? ?? 0F 28 ?? ?? ?? ?? ?? F2 0F ?? ?? ?? F2 0F ?? ?? ?? 0F ?? ?? 0F");
|
||||||
constexpr auto CAStringObfuscated = make_obfuscated<0x39>("7F ?? 44 89 ?? ?? ?? ?? ?? 43 8B ?? ?? 39 05 ?? ?? ?? ?? 0F 8F");
|
constexpr auto CAStringObfuscated = make_obfuscated<0x39>("7F ?? 44 89 ?? ?? ?? ?? ?? 43 8B ?? ?? 39 05 ?? ?? ?? ?? 0F 8F");
|
||||||
@@ -132,7 +115,8 @@ extern "C" __declspec(dllexport) void SetFixEnabled(bool enabled, bool init) {
|
|||||||
std::vector<AOBScanEntry> signatures = {
|
std::vector<AOBScanEntry> signatures = {
|
||||||
Make(&CameraComponentaddress, CameraComponentStringObfuscated, "Camera component"),
|
Make(&CameraComponentaddress, CameraComponentStringObfuscated, "Camera component"),
|
||||||
Make(&FOVaddress, FOVStringObfuscated, "FOV"),
|
Make(&FOVaddress, FOVStringObfuscated, "FOV"),
|
||||||
Make(&CutscenesFPSaddress, CutscenesFPSStringObfuscated, "FPS unlock"),
|
Make(&CutscenesFPSaddress1, CutscenesFPS1StringObfuscated, "FPS unlock"),
|
||||||
|
Make(&CutscenesFPSaddress2, CutscenesFPS2StringObfuscated, "FPS unlock"),
|
||||||
Make(&CameraStructaddress, CameraStruct1StringObfuscated, "Camera struct"),
|
Make(&CameraStructaddress, CameraStruct1StringObfuscated, "Camera struct"),
|
||||||
Make(&Cameraaddress, CameraStringObfuscated, "Camera"),
|
Make(&Cameraaddress, CameraStringObfuscated, "Camera"),
|
||||||
Make(&CAaddress, CAStringObfuscated, "Chromatic aberrations"),
|
Make(&CAaddress, CAStringObfuscated, "Chromatic aberrations"),
|
||||||
@@ -145,7 +129,7 @@ extern "C" __declspec(dllexport) void SetFixEnabled(bool enabled, bool init) {
|
|||||||
Memory::AOBScanBatch(signatures, logger);
|
Memory::AOBScanBatch(signatures, logger);
|
||||||
|
|
||||||
if (FOVaddress && DOFaddress && Fogaddress && WorldTimedilationaddress && Timedilationaddress &&
|
if (FOVaddress && DOFaddress && Fogaddress && WorldTimedilationaddress && Timedilationaddress &&
|
||||||
CutscenesFPSaddress && CAaddress && CameraComponentaddress && CameraStructaddress && Cameraaddress)
|
CutscenesFPSaddress1 && CutscenesFPSaddress1 && CAaddress && CameraComponentaddress && CameraStructaddress && Cameraaddress)
|
||||||
logger->info("All AOB signatures found. Ready to patch...");
|
logger->info("All AOB signatures found. Ready to patch...");
|
||||||
|
|
||||||
if (!GObjectsaddress || !AppendStringaddress || !ProcessEventaddress) {
|
if (!GObjectsaddress || !AppendStringaddress || !ProcessEventaddress) {
|
||||||
@@ -173,7 +157,7 @@ extern "C" __declspec(dllexport) void SetFixEnabled(bool enabled, bool init) {
|
|||||||
|
|
||||||
if (!init && FOVaddress) FOVFixEnabled();
|
if (!init && FOVaddress) FOVFixEnabled();
|
||||||
if (!init && CameraStructaddress) UltraWideFixEnabled(GameFixes::UltraWide);
|
if (!init && CameraStructaddress) UltraWideFixEnabled(GameFixes::UltraWide);
|
||||||
if (!init && CutscenesFPSaddress) CutscenesFPSFixEnabled();
|
if (!init && CutscenesFPSaddress1) CutscenesFPSFixEnabled();
|
||||||
if (!init && Cameraaddress) CameraFixEnabled();
|
if (!init && Cameraaddress) CameraFixEnabled();
|
||||||
if (!init) HUDUpdate(true);
|
if (!init) HUDUpdate(true);
|
||||||
if (!init && DOFaddress) DOFFixEnabled();
|
if (!init && DOFaddress) DOFFixEnabled();
|
||||||
@@ -387,15 +371,19 @@ static void CameraFixEnabled() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void CutscenesFPSFixEnabled() {
|
static void CutscenesFPSFixEnabled() {
|
||||||
if (!CutscenesFPSaddress) return;
|
if (!CutscenesFPSaddress1 || !CutscenesFPSaddress2) return;
|
||||||
if (g_fix_enabled && g_CutscenesFPS_fix_enabled) {
|
if (g_fix_enabled && g_CutscenesFPS_fix_enabled) {
|
||||||
if (!CutscenesFPSHook) CutscenesFPSHook = safetyhook::create_mid(CutscenesFPSaddress + 0xa,
|
if (!CutscenesFPSHook) CutscenesFPSHook = safetyhook::create_mid(CutscenesFPSaddress1 + 0xa,
|
||||||
[](SafetyHookContext& ctx) {
|
[](SafetyHookContext& ctx) {
|
||||||
ctx.xmm0.f32[0] = 0.f;
|
ctx.xmm0.f32[0] = 0.f;
|
||||||
});
|
});
|
||||||
else CutscenesFPSHook.enable();
|
else CutscenesFPSHook.enable();
|
||||||
|
Memory::PatchBytes(CutscenesFPSaddress2,"\x90\xE9",2);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (CutscenesFPSHook) CutscenesFPSHook.disable();
|
||||||
|
Memory::RestoreBytes(CutscenesFPSaddress2);
|
||||||
}
|
}
|
||||||
else if (CutscenesFPSHook) CutscenesFPSHook.disable();
|
|
||||||
|
|
||||||
logger->info("Cutscenes FPS unlocker fix {}", g_fix_enabled && g_CutscenesFPS_fix_enabled ? "enabled" : "disabled");
|
logger->info("Cutscenes FPS unlocker fix {}", g_fix_enabled && g_CutscenesFPS_fix_enabled ? "enabled" : "disabled");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user