From 9835275efee640afbb3926b72fc0e7eb0b996122 Mon Sep 17 00:00:00 2001 From: TL431 <tl43one@gmail.com> Date: Sun, 3 Dec 2023 15:12:23 +0100 Subject: [PATCH] Added RE8 fix and updated RE4 fix --- .github/README.md | 23 ++- Windows-Game-Patches.sln | 10 ++ source/RE4.Sharpness/RE4.Sharpness.vcxproj | 2 +- source/RE4.Sharpness/dllmain.cpp | 2 +- source/RE8.NoTAA/RE8.NoTAA.filters | 32 ++++ source/RE8.NoTAA/RE8.NoTAA.sln | 31 ++++ source/RE8.NoTAA/RE8.NoTAA.vcxproj | 195 +++++++++++++++++++++ source/RE8.NoTAA/RE8.NoTAA.vcxproj.filters | 36 ++++ source/RE8.NoTAA/RE8.NoTAA.vcxproj.user | 4 + source/RE8.NoTAA/dllmain.cpp | 118 +++++++++++++ 10 files changed, 446 insertions(+), 7 deletions(-) create mode 100644 source/RE8.NoTAA/RE8.NoTAA.filters create mode 100644 source/RE8.NoTAA/RE8.NoTAA.sln create mode 100644 source/RE8.NoTAA/RE8.NoTAA.vcxproj create mode 100644 source/RE8.NoTAA/RE8.NoTAA.vcxproj.filters create mode 100644 source/RE8.NoTAA/RE8.NoTAA.vcxproj.user create mode 100644 source/RE8.NoTAA/dllmain.cpp diff --git a/.github/README.md b/.github/README.md index 391fd93..9fc9844 100644 --- a/.github/README.md +++ b/.github/README.md @@ -51,7 +51,7 @@ </summary> - Disable TAA - - Disable Sharpness + - Disable Forced Sharpening #### Installation @@ -97,7 +97,7 @@ </summary> - Disable TAA - - Disable Sharpness + - Disable Forced Sharpening #### Installation @@ -154,7 +154,7 @@ </summary> - Disable TAA - - Disable Sharpness + - Disable Forced Sharpening #### Installation @@ -168,7 +168,7 @@ ### Resident Evil 4 Remake </summary> - - Remove Forced Sharpening + - Disable Forced Sharpening #### Installation - **Note:** ***Please make sure any executable hex edits are removed/reverted first***. @@ -176,6 +176,19 @@ - Extract `RE4.Sharpness.asi` from the release zip in the folder `RESIDENT EVIL 4 BIOHAZARD RE4\reframework\plugins` and rename it into `RE4.Sharpness.dll`. </details> <details><summary> + +### Resident Evil Village +</summary> + + - Disable TAA and Forced Sharpening + - Disable Forced Sharpening only + +#### Installation +- **Note:** ***Please make sure any executable hex edits are removed/reverted first***. + - Download [REFramework](https://github.com/praydog/REFramework) and extract `dinput8.dll` into the game root folder. + - Extract `RE8.NoTAA.asi` from the release zip in the folder `Resident Evil Village BIOHAZARD VILLAGE\reframework\plugins` and rename it into `RE8.NoTAA.dll`. +</details> +<details><summary> ### Uncharted 4 + The Lost Legacy </summary> @@ -195,7 +208,7 @@ - `Enter`: Enter\Select Dev Menu Entry - Skip Intro Logo Videos - Disable TAA - - Disable Sharpness + - Disable Forced Sharpening - Disable Barrel Distortion - Disable Screen Zoom - Disable Chromatic Aberration diff --git a/Windows-Game-Patches.sln b/Windows-Game-Patches.sln index 768d674..668b544 100644 --- a/Windows-Game-Patches.sln +++ b/Windows-Game-Patches.sln @@ -31,6 +31,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Uncharted4TLL.NoTAA", "sour EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Hitman3.NoTAA", "source\Hitman3.NoTAA\Hitman3.NoTAA.vcxproj", "{621EDE9D-FFF4-465A-BFA7-B9A3D0F9CEBC}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RE8.NoTAA", "source\RE8.NoTAA\RE8.NoTAA.vcxproj", "{F2F2A0BD-8F71-4290-95E5-950639D9397C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -151,6 +153,14 @@ Global {621EDE9D-FFF4-465A-BFA7-B9A3D0F9CEBC}.Release|x64.Build.0 = Release|x64 {621EDE9D-FFF4-465A-BFA7-B9A3D0F9CEBC}.Release|x86.ActiveCfg = Release|Win32 {621EDE9D-FFF4-465A-BFA7-B9A3D0F9CEBC}.Release|x86.Build.0 = Release|Win32 + {F2F2A0BD-8F71-4290-95E5-950639D9397C}.Debug|x64.ActiveCfg = Debug|x64 + {F2F2A0BD-8F71-4290-95E5-950639D9397C}.Debug|x64.Build.0 = Debug|x64 + {F2F2A0BD-8F71-4290-95E5-950639D9397C}.Debug|x86.ActiveCfg = Debug|Win32 + {F2F2A0BD-8F71-4290-95E5-950639D9397C}.Debug|x86.Build.0 = Debug|Win32 + {F2F2A0BD-8F71-4290-95E5-950639D9397C}.Release|x64.ActiveCfg = Release|x64 + {F2F2A0BD-8F71-4290-95E5-950639D9397C}.Release|x64.Build.0 = Release|x64 + {F2F2A0BD-8F71-4290-95E5-950639D9397C}.Release|x86.ActiveCfg = Release|Win32 + {F2F2A0BD-8F71-4290-95E5-950639D9397C}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/source/RE4.Sharpness/RE4.Sharpness.vcxproj b/source/RE4.Sharpness/RE4.Sharpness.vcxproj index 41e24c2..7ae2581 100644 --- a/source/RE4.Sharpness/RE4.Sharpness.vcxproj +++ b/source/RE4.Sharpness/RE4.Sharpness.vcxproj @@ -22,7 +22,7 @@ <VCProjectVersion>16.0</VCProjectVersion> <Keyword>Win32Proj</Keyword> <ProjectGuid>{D9DB74DD-4579-4244-BA7A-4236CF585026}</ProjectGuid> - <RootNamespace>BrightMemoryInfiniteNoTAA</RootNamespace> + <RootNamespace>RE4Sharpness</RootNamespace> <WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> diff --git a/source/RE4.Sharpness/dllmain.cpp b/source/RE4.Sharpness/dllmain.cpp index e3ab09b..198b0ef 100644 --- a/source/RE4.Sharpness/dllmain.cpp +++ b/source/RE4.Sharpness/dllmain.cpp @@ -52,7 +52,7 @@ void ReadConfig(void) void DisableSharpness(void) { - const unsigned char patch[] = { 0xC6, 0x80, 0xB3, 0x01, 0x00, 0x00, 0x01, 0x90, 0x90 }; + const unsigned char patch[] = { 0xC6, 0x80, 0xB3, 0x01, 0x00, 0x00, 0x01, 0xEB, 0x49 }; WritePatchPattern(L"80 B8 B3 01 00 00 00 75 49", patch, sizeof(patch), L"Disable Sharpness", 0); } diff --git a/source/RE8.NoTAA/RE8.NoTAA.filters b/source/RE8.NoTAA/RE8.NoTAA.filters new file mode 100644 index 0000000..e4ec8cd --- /dev/null +++ b/source/RE8.NoTAA/RE8.NoTAA.filters @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dllmain.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="stdafx.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\include\stdafx.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\include\helper.hpp"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="resource.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/source/RE8.NoTAA/RE8.NoTAA.sln b/source/RE8.NoTAA/RE8.NoTAA.sln new file mode 100644 index 0000000..91adc78 --- /dev/null +++ b/source/RE8.NoTAA/RE8.NoTAA.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33424.131 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RE8.NoTAA", "RE8.NoTAA.vcxproj", "{AB7A871D-2A06-48C6-863F-B8A0FE8F8E0B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AB7A871D-2A06-48C6-863F-B8A0FE8F8E0B}.Debug|x64.ActiveCfg = Debug|x64 + {AB7A871D-2A06-48C6-863F-B8A0FE8F8E0B}.Debug|x64.Build.0 = Debug|x64 + {AB7A871D-2A06-48C6-863F-B8A0FE8F8E0B}.Debug|x86.ActiveCfg = Debug|Win32 + {AB7A871D-2A06-48C6-863F-B8A0FE8F8E0B}.Debug|x86.Build.0 = Debug|Win32 + {AB7A871D-2A06-48C6-863F-B8A0FE8F8E0B}.Release|x64.ActiveCfg = Release|x64 + {AB7A871D-2A06-48C6-863F-B8A0FE8F8E0B}.Release|x64.Build.0 = Release|x64 + {AB7A871D-2A06-48C6-863F-B8A0FE8F8E0B}.Release|x86.ActiveCfg = Release|Win32 + {AB7A871D-2A06-48C6-863F-B8A0FE8F8E0B}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CDD207AD-54BC-44A9-933A-5DFEDBD97F44} + EndGlobalSection +EndGlobal diff --git a/source/RE8.NoTAA/RE8.NoTAA.vcxproj b/source/RE8.NoTAA/RE8.NoTAA.vcxproj new file mode 100644 index 0000000..b733825 --- /dev/null +++ b/source/RE8.NoTAA/RE8.NoTAA.vcxproj @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <VCProjectVersion>16.0</VCProjectVersion> + <Keyword>Win32Proj</Keyword> + <ProjectGuid>{F2F2A0BD-8F71-4290-95E5-950639D9397C}</ProjectGuid> + <RootNamespace>RE8NoTAA</RootNamespace> + <WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>v143</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <PlatformToolset>ClangCL</PlatformToolset> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <PlatformToolset>ClangCL</PlatformToolset> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>Unicode</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="Shared"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <IncludePath>\..\include\;$(IncludePath)</IncludePath> + <TargetExt>.asi</TargetExt> + <OutDir>$(SolutionDir)$(Configuration)\</OutDir> + <IntDir>$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <IncludePath>\..\include\;$(IncludePath)</IncludePath> + <TargetExt>.asi</TargetExt> + <OutDir>$(SolutionDir)$(Configuration)\</OutDir> + <IntDir>$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <TargetExt>.asi</TargetExt> + <IntDir>$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <TargetExt>.asi</TargetExt> + <IntDir>$(Configuration)\</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>UNICODE;_UNICODE;_CRT_SECURE_NO_WARNINGS;_USRDLL</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <AdditionalIncludeDirectories>..\..\include\;..\..\external\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>true</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>UNICODE;_UNICODE;_CRT_SECURE_NO_WARNINGS;_USRDLL</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <AdditionalIncludeDirectories>..\..\include\;..\..\external\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>UNICODE;_UNICODE;_USRDLL</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <AdditionalIncludeDirectories>..\..\include\;..\..\external\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <LanguageStandard_C>Default</LanguageStandard_C> + <UndefinePreprocessorDefinitions> + </UndefinePreprocessorDefinitions> + <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>false</IntrinsicFunctions> + <SDLCheck>true</SDLCheck> + <PreprocessorDefinitions>UNICODE;_UNICODE;_USRDLL</PreprocessorDefinitions> + <ConformanceMode>true</ConformanceMode> + <PrecompiledHeader>NotUsing</PrecompiledHeader> + <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> + <AdditionalIncludeDirectories>..\..\include\;..\..\external\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <LanguageStandard_C>Default</LanguageStandard_C> + <UndefinePreprocessorDefinitions> + </UndefinePreprocessorDefinitions> + <EnableEnhancedInstructionSet>NotSet</EnableEnhancedInstructionSet> + <Optimization>Disabled</Optimization> + </ClCompile> + <Link> + <SubSystem>Windows</SubSystem> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <GenerateDebugInformation>true</GenerateDebugInformation> + <EnableUAC>false</EnableUAC> + </Link> + <PreBuildEvent> + <Command>call $(MSBuildStartupDirectory)\set_git_ver.cmd</Command> + </PreBuildEvent> + <PostBuildEvent> + <Command> + </Command> + </PostBuildEvent> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\Shared\helper.cpp" /> + <ClCompile Include="..\Shared\memory.cpp" /> + <ClCompile Include="..\Shared\stdafx.cpp" /> + <ClCompile Include="dllmain.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\include\memory.hpp" /> + <ClInclude Include="..\..\include\helper.hpp" /> + <ClInclude Include="..\..\include\stdafx.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> \ No newline at end of file diff --git a/source/RE8.NoTAA/RE8.NoTAA.vcxproj.filters b/source/RE8.NoTAA/RE8.NoTAA.vcxproj.filters new file mode 100644 index 0000000..d39fb11 --- /dev/null +++ b/source/RE8.NoTAA/RE8.NoTAA.vcxproj.filters @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <ClInclude Include="..\..\include\helper.hpp"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\include\stdafx.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\include\memory.hpp"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{16c871b0-d17d-439d-9186-0e1d2b9b9507}</UniqueIdentifier> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{ac747f53-a621-40bf-b440-0e576d4c6cec}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="dllmain.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Shared\helper.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Shared\stdafx.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\Shared\memory.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> +</Project> \ No newline at end of file diff --git a/source/RE8.NoTAA/RE8.NoTAA.vcxproj.user b/source/RE8.NoTAA/RE8.NoTAA.vcxproj.user new file mode 100644 index 0000000..88a5509 --- /dev/null +++ b/source/RE8.NoTAA/RE8.NoTAA.vcxproj.user @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup /> +</Project> \ No newline at end of file diff --git a/source/RE8.NoTAA/dllmain.cpp b/source/RE8.NoTAA/dllmain.cpp new file mode 100644 index 0000000..6c47279 --- /dev/null +++ b/source/RE8.NoTAA/dllmain.cpp @@ -0,0 +1,118 @@ +#include "stdafx.h" +#include "helper.hpp" +#include "memory.hpp" +#include "git_ver.h" + +HMODULE baseModule = GetModuleHandle(NULL); + +#define wstr(s) L#s +#define wxstr(s) wstr(s) +#define _PROJECT_NAME L"RE8.NoTAA" +#define _PROJECT_LOG_PATH _PROJECT_NAME L".log" + +wchar_t exePath[_MAX_PATH] = { 0 }; + +// INI Variables +bool bDisableSharpnessOnly; +bool bDisableTAA; + +void ReadConfig(void) +{ + inipp::Ini<wchar_t> ini; + // Get game name and exe path + LOG(_PROJECT_NAME " Built: " __TIME__ " @ " __DATE__ "\n"); + LOG(L"" GIT_COMMIT "\n"); + LOG(L"" GIT_VER "\n"); + LOG(L"" GIT_NUM "\n"); + LOG(L"Game Name: %s\n", Memory::GetVersionProductName().c_str()); + LOG(L"Game Path: %s\n", exePath); + + // Initialize config + std::wstring config_path = _PROJECT_NAME L".ini"; + std::wifstream iniFile(config_path); + if (!iniFile) + { + // no ini, lets generate one. + LOG(L"Failed to load config file.\n"); + std::wstring ini_defaults = L"[Settings]\n" + wstr(bDisableTAA)" = true\n" + wstr(bDisableSharpnessOnly)" = false\n"; + std::wofstream iniFile(config_path); + iniFile << ini_defaults; + bDisableTAA = true; + bDisableSharpnessOnly = false; + LOG(L"Created default config file.\n"); + } + else + { + ini.parse(iniFile); + inipp::get_value(ini.sections[L"Settings"], wstr(bDisableTAA), bDisableTAA); + inipp::get_value(ini.sections[L"Settings"], wstr(bDisableSharpnessOnly), bDisableSharpnessOnly); + } + + // Log config parse + LOG(L"%s: %s (%i)\n", wstr(bDisableTAA), GetBoolStr(bDisableTAA), bDisableTAA); + LOG(L"%s: %s (%i)\n", wstr(bDisableSharpnessOnly), GetBoolStr(bDisableSharpnessOnly) , bDisableSharpnessOnly); +} + +void DisableSharpnessOnly(void) +{ + // 00007FF71DF983ED | 80B8 5A010000 00 | cmp byte ptr ds:[rax+15A],0 | --> C680 5A010000 01 | mov byte ptr ds:[rax+15A],1 + // 00007FF71DF983F4 | 75 49 | jne re8.7FF71DF9843F | --> EB 49 | jmp re8.7FF71DF9843F + // 00007FF71DF983F6 | 83B8 F8010000 05 | cmp dword ptr ds : [rax + 1F8] , 5 | + // 00007FF71DF983FD | 74 40 | je re8.7FF71DF9843F | + const unsigned char patch[] = { 0xC6, 0x80, 0x5A, 0x01, 0x00, 0x00, 0x01, 0xEB, 0x49 }; + WritePatchPattern(L"80 B8 5A 01 00 00 00 75 49", patch, sizeof(patch), L"Disable Sharpness", 0); +} + +void DisableTAA(void) +{ + // 00007FF71DF983ED | 80B8 5A010000 00 | cmp byte ptr ds:[rax+15A],0 | + // 00007FF71DF983F4 | 75 49 | jne re8.7FF71DF9843F | + // 00007FF71DF983F6 | 83B8 F8010000 05 | cmp dword ptr ds : [rax + 1F8] , 5 | --> C680 F8010000 05 | mov byte ptr ds : [rax + 1F8] , 5 + // 00007FF71DF983FD | 74 40 | je re8.7FF71DF9843F | --> EB 40 | jmp re8.7FF71DF9843F | + const unsigned char patch[] = { 0xC6, 0x80, 0xF8, 0x01, 0x00, 0x00, 0x05, 0xEB, 0x40 }; + WritePatchPattern(L"83 B8 F8 01 00 00 05 74 40", patch, sizeof(patch), L"Disable TAA", 0); +} + +DWORD __stdcall Main(void*) +{ + bLoggingEnabled = false; + wchar_t LogPath[_MAX_PATH] = { 0 }; + wcscpy_s(exePath, _countof(exePath), GetRunningPath(exePath)); + _snwprintf_s(LogPath, _countof(LogPath), _TRUNCATE, L"%s\\%s", exePath, _PROJECT_LOG_PATH); + LoggingInit(_PROJECT_NAME, LogPath); + ReadConfig(); + + // Enforce TAA patch, as it already disables the sharpening filter + if (bDisableTAA) + DisableTAA(); + else + { + if (bDisableSharpnessOnly) + DisableSharpnessOnly(); + } + + LOG(L"Shutting down " wstr(fp_log) " file handle.\n"); + fclose(fp_log); + return true; +} + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + { + CreateThread(NULL, 0, Main, 0, NULL, 0); + } + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +}