Compare commits

..

4 Commits

4 changed files with 34 additions and 22 deletions

View File

@@ -57,6 +57,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UEngine", "UEngine\UEngine.
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Silent Hill f", "SilentHillF\SilentHillf.vcxproj", "{03B6F97F-7AF9-4A21-8DC1-EAE3E873DDE0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "includes", "includes", "{994ABCB9-8633-4AD7-8035-48BB86A7F725}"
ProjectSection(SolutionItems) = preProject
external\includes\GameInformations.h = external\includes\GameInformations.h
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64

View File

@@ -98,7 +98,7 @@
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile />
<AdditionalIncludeDirectories>$(SolutionDir)Memory;$(SolutionDir)Maths;$(SolutionDir)Obfuscate;$(SolutionDir)external;$(SolutionDir)external\safetyhook\include;$(SolutionDir)external\zydis\dependencies\zycore\include;$(SolutionDir)external\zydis\include;$(SolutionDir)zydis\src;$(SolutionDir)external\MinHook\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)Memory;$(SolutionDir)Maths;$(SolutionDir)Obfuscate;$(SolutionDir)external\includes;$(SolutionDir)external;$(SolutionDir)external\safetyhook\include;$(SolutionDir)external\zydis\dependencies\zycore\include;$(SolutionDir)external\zydis\include;$(SolutionDir)zydis\src;$(SolutionDir)external\MinHook\include;%(AdditionalIncludeDirectories);$(SolutionDir)external\includes;$(SolutionDir)external\includes</AdditionalIncludeDirectories>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<LanguageStandard>stdcpp23</LanguageStandard>
@@ -125,7 +125,7 @@
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile />
<AdditionalIncludeDirectories>$(SolutionDir)Memory;$(SolutionDir)Maths;$(SolutionDir)Obfuscate;$(SolutionDir)external;$(SolutionDir)external\safetyhook\include;$(SolutionDir)external\zydis\dependencies\zycore\include;$(SolutionDir)external\zydis\include;$(SolutionDir)zydis\src;$(SolutionDir)external\MinHook\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)Memory;$(SolutionDir)Maths;$(SolutionDir)Obfuscate;$(SolutionDir)external\includes;$(SolutionDir)external;$(SolutionDir)external\safetyhook\include;$(SolutionDir)external\zydis\dependencies\zycore\include;$(SolutionDir)external\zydis\include;$(SolutionDir)zydis\src;$(SolutionDir)external\MinHook\include;%(AdditionalIncludeDirectories);$(SolutionDir)external\includes;$(SolutionDir)external\includes</AdditionalIncludeDirectories>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<LanguageStandard>stdcpp23</LanguageStandard>
@@ -150,7 +150,7 @@
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile />
<AdditionalIncludeDirectories>$(SolutionDir)Memory;$(SolutionDir)Maths;$(SolutionDir)Obfuscate;$(SolutionDir)external;$(SolutionDir)external\safetyhook\include;$(SolutionDir)external\zydis\dependencies\zycore\include;$(SolutionDir)external\zydis\include;$(SolutionDir)zydis\src;$(SolutionDir)external\MinHook\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)Memory;$(SolutionDir)Maths;$(SolutionDir)Obfuscate;$(SolutionDir)external\includes;$(SolutionDir)external;$(SolutionDir)external\safetyhook\include;$(SolutionDir)external\zydis\dependencies\zycore\include;$(SolutionDir)external\zydis\include;$(SolutionDir)zydis\src;$(SolutionDir)external\MinHook\include;%(AdditionalIncludeDirectories);$(SolutionDir)external\includes;$(SolutionDir)external\includes</AdditionalIncludeDirectories>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<LanguageStandard>stdcpp23</LanguageStandard>
@@ -177,7 +177,7 @@
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile />
<AdditionalIncludeDirectories>$(SolutionDir)Memory;$(SolutionDir)Maths;$(SolutionDir)Obfuscate;$(SolutionDir)UEngine;$(SolutionDir)external;$(SolutionDir)external\safetyhook\include;$(SolutionDir)external\zydis\dependencies\zycore\include;$(SolutionDir)external\zydis\include;$(SolutionDir)zydis\src;$(SolutionDir)external\MinHook\include;$(ProjectDir)SDK;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir)Memory;$(SolutionDir)Maths;$(SolutionDir)Obfuscate;$(SolutionDir)external\includes;$(SolutionDir)UEngine;$(SolutionDir)external;$(SolutionDir)external\safetyhook\include;$(SolutionDir)external\zydis\dependencies\zycore\include;$(SolutionDir)external\zydis\include;$(SolutionDir)zydis\src;$(SolutionDir)external\MinHook\include;$(ProjectDir)SDK;%(AdditionalIncludeDirectories);$(SolutionDir)external\includes;$(SolutionDir)external\includes</AdditionalIncludeDirectories>
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<LanguageStandard>stdcpp23</LanguageStandard>

View File

@@ -3,6 +3,7 @@
#include <spdlog/sinks/rotating_file_sink.h>
#include <filesystem>
#include <safetyhook.hpp>
#include "GameInformations.h"
#include "ObfuscateString.h"
#include "Memory.hpp";
#include "Maths.hpp";
@@ -21,11 +22,6 @@ const float BASE_ASPECT = 1.777777791;
// Logger
std::shared_ptr<spdlog::logger> logger;
// Screen informations
static int screenWidth = GetSystemMetrics(SM_CXSCREEN);
static int screenHeight = GetSystemMetrics(SM_CYSCREEN);
static float aspectRatio = (float)screenWidth / screenHeight;
// Plugin states
static bool AOBScanDone = false;
static bool g_fix_enabled = false;
@@ -39,9 +35,10 @@ static int g_AdditionalFOVValue = 0;
static float g_CameraDistance = 1.f;
// Shared values
static float g_reference_FOV = 65.f;
static float g_FOV_In = 0.f;
static float g_FOV_Out = 0.f;
static float g_FOV_In = 65.f;
static float g_FOV_Out = 65.f;
static float g_Camera_In = 230.f;
static float g_Camera_Out = 230.f;
static bool g_Console_Enabled = false;
// AOB Unreal Engine offsets addresses
@@ -175,7 +172,7 @@ extern "C" __declspec(dllexport) void SetFixEnabled(bool enabled)
}
}
if (FOVaddress && DOFaddress && CAaddress && Vignettingaddress && VolumetricFogaddress) {
if (FOVaddress && Cameraaddress && DOFaddress && CAaddress && Vignettingaddress && VolumetricFogaddress) {
logger->info("All AOB signatures found. Ready to patch...");
AOBScanDone = true;
}
@@ -290,16 +287,14 @@ extern "C" __declspec(dllexport) void SetCameraDistance(float multiplier) {
}
// Getters for Reshade addon call
extern "C" __declspec(dllexport) float GetFOVIn() {
return g_FOV_In;
}
extern "C" __declspec(dllexport) void GetGameInfos(GameInfos* infos) {
if (!infos) return;
extern "C" __declspec(dllexport) float GetFOVOut() {
return g_FOV_Out;
}
extern "C" __declspec(dllexport) bool GetConsoleEnabled() {
return g_Console_Enabled;
infos->FOVIn = g_FOV_In;
infos->FOVOut = g_FOV_Out;
infos->cameraIn = g_Camera_In;
infos->cameraOut = g_Camera_Out;
infos->consoleEnabled = g_Console_Enabled;
}
// Code injection functions
@@ -328,7 +323,9 @@ static void CameraFixEnabled() {
if (!CameraHook) {
CameraHook = safetyhook::create_mid(Cameraaddress,
[](SafetyHookContext& ctx) {
g_Camera_In = ctx.xmm0.f32[0];
ctx.xmm0.f32[0] *= g_CameraDistance;
g_Camera_Out = ctx.xmm0.f32[0];
});
}
else CameraHook.enable();

10
external/includes/GameInformations.h vendored Normal file
View File

@@ -0,0 +1,10 @@
#pragma once
// Shared structure values with Core dll
struct GameInfos {
float FOVIn;
float FOVOut;
float cameraIn;
float cameraOut;
bool consoleEnabled;
};