From 860302a1198d7bf13853e7b8a390de9ce46dfe0a Mon Sep 17 00:00:00 2001 From: nastys <@> Date: Sat, 18 Sep 2021 00:54:54 +0200 Subject: [PATCH] Minimalist build configuration; move toon to keyconfig --- appveyor.yml | 9 +- source-code/PD-Loader.sln | 18 ++ .../source/PD-Loader/PD-Loader.vcxproj | 50 +++++ .../PD-Loader/Patches/PatchApplier710.h | 202 +++++++++--------- .../PD-Loader/Patches/patches-framework.h | 16 +- source-code/source/PD-Loader/dllmain.cpp | 4 +- source-code/source/PD-Loader/templates.h | 18 ++ source-code/source/fakedll/fakedll.vcxproj | 45 ++++ .../plugins/DSCRemote/DSCRemote.vcxproj | 41 ++++ .../plugins/DivaMovie/DivaMovie.vcxproj | 39 ++++ .../plugins/DivaSound/DivaSound.vcxproj | 38 ++++ .../source/plugins/DivaWig/DivaWig.vcxproj | 39 ++++ .../source/plugins/Launcher/Launcher.vcxproj | 40 ++++ .../source/plugins/Launcher/framework.h | 20 ++ source-code/source/plugins/Launcher/ui.h | 40 +++- .../source/plugins/Novidia/Novidia.vcxproj | 38 ++++ .../plugins/ShaderPatch/ShaderPatch.vcxproj | 36 ++++ .../TLAC/Components/Input/InputEmulator.cpp | 11 +- .../TLAC/Components/Input/InputEmulator.h | 2 + source-code/source/plugins/TLAC/TLAC.vcxproj | 48 +++++ 20 files changed, 640 insertions(+), 114 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 6684b2e..9ae4826 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,6 +2,7 @@ version: '{build}' image: Visual Studio 2019 configuration: - Release +- Minimalist platform: x64 build: project: source-code/PD-Loader.sln @@ -16,11 +17,13 @@ after_build: md "%TMP%\full\plugins\Novidia Shaders" + if "%CONFIGURATION%" == "Release" ( md %TMP%\full\plugins\zh-Hans\ md %TMP%\full\plugins\pt-BR\ md %TMP%\full\plugins\it-IT\ + ) md %TMP%\full\ram\ @@ -32,11 +35,15 @@ after_build: copy %APPVEYOR_BUILD_FOLDER%\source-code\x64\%CONFIGURATION%\*.dva %TMP%\full\plugins\ + if "%CONFIGURATION%" == "Release" ( + copy %APPVEYOR_BUILD_FOLDER%\source-code\data\patches\custom_freeplay_text_example.p %TMP%\full\patches\ + copy %APPVEYOR_BUILD_FOLDER%\source-code\x64\%CONFIGURATION%\zh-Hans\*.dll %TMP%\full\plugins\zh-Hans\ copy %APPVEYOR_BUILD_FOLDER%\source-code\x64\%CONFIGURATION%\pt-BR\*.dll %TMP%\full\plugins\pt-BR\ copy %APPVEYOR_BUILD_FOLDER%\source-code\x64\%CONFIGURATION%\pt-BR\*.dll %TMP%\full\plugins\it-IT\ + ) copy "%APPVEYOR_BUILD_FOLDER%\source-code\data\README - PD Loader.url" %TMP%\full\ @@ -50,8 +57,6 @@ after_build: copy %APPVEYOR_BUILD_FOLDER%\source-code\data\ram\databank_template\*.dat %TMP%\full\ram\databank_template\ - copy %APPVEYOR_BUILD_FOLDER%\source-code\data\patches\custom_freeplay_text_example.p %TMP%\full\patches\ - cd %TMP%\full\ diff --git a/source-code/PD-Loader.sln b/source-code/PD-Loader.sln index 43dfada..a160530 100644 --- a/source-code/PD-Loader.sln +++ b/source-code/PD-Loader.sln @@ -26,47 +26,65 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 + Minimalist|x64 = Minimalist|x64 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {CA479467-D518-46A2-AC86-3098ADA99FE5}.Debug|x64.ActiveCfg = Debug|x64 {CA479467-D518-46A2-AC86-3098ADA99FE5}.Debug|x64.Build.0 = Debug|x64 + {CA479467-D518-46A2-AC86-3098ADA99FE5}.Minimalist|x64.ActiveCfg = Minimalist|x64 + {CA479467-D518-46A2-AC86-3098ADA99FE5}.Minimalist|x64.Build.0 = Minimalist|x64 {CA479467-D518-46A2-AC86-3098ADA99FE5}.Release|x64.ActiveCfg = Release|x64 {CA479467-D518-46A2-AC86-3098ADA99FE5}.Release|x64.Build.0 = Release|x64 {2B5533BB-04A1-424F-9BCA-1CA963B46B7F}.Debug|x64.ActiveCfg = Debug|x64 {2B5533BB-04A1-424F-9BCA-1CA963B46B7F}.Debug|x64.Build.0 = Debug|x64 + {2B5533BB-04A1-424F-9BCA-1CA963B46B7F}.Minimalist|x64.ActiveCfg = Minimalist|x64 + {2B5533BB-04A1-424F-9BCA-1CA963B46B7F}.Minimalist|x64.Build.0 = Minimalist|x64 {2B5533BB-04A1-424F-9BCA-1CA963B46B7F}.Release|x64.ActiveCfg = Release|x64 {2B5533BB-04A1-424F-9BCA-1CA963B46B7F}.Release|x64.Build.0 = Release|x64 {60D5E9F4-335F-402B-9A07-D78674DFFC9B}.Debug|x64.ActiveCfg = Debug|x64 {60D5E9F4-335F-402B-9A07-D78674DFFC9B}.Debug|x64.Build.0 = Debug|x64 + {60D5E9F4-335F-402B-9A07-D78674DFFC9B}.Minimalist|x64.ActiveCfg = Minimalist|x64 + {60D5E9F4-335F-402B-9A07-D78674DFFC9B}.Minimalist|x64.Build.0 = Minimalist|x64 {60D5E9F4-335F-402B-9A07-D78674DFFC9B}.Release|x64.ActiveCfg = Release|x64 {60D5E9F4-335F-402B-9A07-D78674DFFC9B}.Release|x64.Build.0 = Release|x64 {B49C6ABE-931C-4F91-9A94-21A41A305FEE}.Debug|x64.ActiveCfg = Debug|x64 {B49C6ABE-931C-4F91-9A94-21A41A305FEE}.Debug|x64.Build.0 = Debug|x64 + {B49C6ABE-931C-4F91-9A94-21A41A305FEE}.Minimalist|x64.ActiveCfg = Minimalist|x64 {B49C6ABE-931C-4F91-9A94-21A41A305FEE}.Release|x64.ActiveCfg = Release|x64 {B49C6ABE-931C-4F91-9A94-21A41A305FEE}.Release|x64.Build.0 = Release|x64 {EE1A551A-49A0-40F2-8C2E-862D0AE55B43}.Debug|x64.ActiveCfg = Debug|x64 {EE1A551A-49A0-40F2-8C2E-862D0AE55B43}.Debug|x64.Build.0 = Debug|x64 + {EE1A551A-49A0-40F2-8C2E-862D0AE55B43}.Minimalist|x64.ActiveCfg = Minimalist|x64 + {EE1A551A-49A0-40F2-8C2E-862D0AE55B43}.Minimalist|x64.Build.0 = Minimalist|x64 {EE1A551A-49A0-40F2-8C2E-862D0AE55B43}.Release|x64.ActiveCfg = Release|x64 {EE1A551A-49A0-40F2-8C2E-862D0AE55B43}.Release|x64.Build.0 = Release|x64 {1994C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Debug|x64.ActiveCfg = Debug|x64 {1994C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Debug|x64.Build.0 = Debug|x64 + {1994C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Minimalist|x64.ActiveCfg = Minimalist|x64 + {1994C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Minimalist|x64.Build.0 = Minimalist|x64 {1994C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Release|x64.ActiveCfg = Release|x64 {1994C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Release|x64.Build.0 = Release|x64 {C07E495E-A16F-48FA-80E4-0296B5234F0B}.Debug|x64.ActiveCfg = Debug|x64 {C07E495E-A16F-48FA-80E4-0296B5234F0B}.Debug|x64.Build.0 = Debug|x64 + {C07E495E-A16F-48FA-80E4-0296B5234F0B}.Minimalist|x64.ActiveCfg = Minimalist|x64 + {C07E495E-A16F-48FA-80E4-0296B5234F0B}.Minimalist|x64.Build.0 = Minimalist|x64 {C07E495E-A16F-48FA-80E4-0296B5234F0B}.Release|x64.ActiveCfg = Release|x64 {C07E495E-A16F-48FA-80E4-0296B5234F0B}.Release|x64.Build.0 = Release|x64 {2394C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Debug|x64.ActiveCfg = Debug|x64 {2394C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Debug|x64.Build.0 = Debug|x64 + {2394C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Minimalist|x64.ActiveCfg = Minimalist|x64 {2394C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Release|x64.ActiveCfg = Release|x64 {2394C586-F73B-4EF2-BA3E-2A0FC3034B1A}.Release|x64.Build.0 = Release|x64 {8544C599-F73B-4EF2-BA3E-2A0FC3034B1A}.Debug|x64.ActiveCfg = Debug|x64 {8544C599-F73B-4EF2-BA3E-2A0FC3034B1A}.Debug|x64.Build.0 = Debug|x64 + {8544C599-F73B-4EF2-BA3E-2A0FC3034B1A}.Minimalist|x64.ActiveCfg = Minimalist|x64 {8544C599-F73B-4EF2-BA3E-2A0FC3034B1A}.Release|x64.ActiveCfg = Release|x64 {8544C599-F73B-4EF2-BA3E-2A0FC3034B1A}.Release|x64.Build.0 = Release|x64 {47181A1D-C22C-4C9C-B4E0-CB6CE886A1D8}.Debug|x64.ActiveCfg = Debug|x64 {47181A1D-C22C-4C9C-B4E0-CB6CE886A1D8}.Debug|x64.Build.0 = Debug|x64 + {47181A1D-C22C-4C9C-B4E0-CB6CE886A1D8}.Minimalist|x64.ActiveCfg = Minimalist|x64 + {47181A1D-C22C-4C9C-B4E0-CB6CE886A1D8}.Minimalist|x64.Build.0 = Minimalist|x64 {47181A1D-C22C-4C9C-B4E0-CB6CE886A1D8}.Release|x64.ActiveCfg = Release|x64 {47181A1D-C22C-4C9C-B4E0-CB6CE886A1D8}.Release|x64.Build.0 = Release|x64 EndGlobalSection diff --git a/source-code/source/PD-Loader/PD-Loader.vcxproj b/source-code/source/PD-Loader/PD-Loader.vcxproj index 63d7db9..cd0ba34 100644 --- a/source-code/source/PD-Loader/PD-Loader.vcxproj +++ b/source-code/source/PD-Loader/PD-Loader.vcxproj @@ -5,6 +5,10 @@ Debug x64 + + Minimalist + x64 + Release x64 @@ -34,6 +38,14 @@ Unicode false + + DynamicLibrary + false + v142 + true + Unicode + false + @@ -45,6 +57,9 @@ + + + true @@ -54,6 +69,10 @@ false dnsapi + + false + dnsapi + NotUsing @@ -107,6 +126,37 @@ + + + NotUsing + Level3 + MaxSpeed + true + true + true + MINIMALIST;_CRT_SECURE_NO_WARNINGS;NDEBUG;PDLOADER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + pch.h + ..\..\dependencies\freeglut\include;..\..\dependencies\PluginConfigApi;..\..\dependencies\detours\include;..\..\dependencies\MemoryModule;%(AdditionalIncludeDirectories) + stdcpp17 + MultiThreadedDLL + -d2FH4- /utf-8 %(AdditionalOptions) + + + Windows + true + true + true + false + x64.def + -d2:-FH4- %(AdditionalOptions) + ..\..\dependencies\freeglut\lib;..\..\dependencies\detours\lib + + + + + + diff --git a/source-code/source/PD-Loader/Patches/PatchApplier710.h b/source-code/source/PD-Loader/Patches/PatchApplier710.h index feab975..44c57b9 100644 --- a/source-code/source/PD-Loader/Patches/PatchApplier710.h +++ b/source-code/source/PD-Loader/Patches/PatchApplier710.h @@ -268,6 +268,7 @@ class PatchApplier710 : public PatchApplier { // Freeze PV selection timer InjectCode((void*)0x00000001405BDFBF, { 0x90, 0x90, 0x90, 0x90 }); } +#ifndef MINIMALIST // Disable timer sprite if (nNoTimerSprite) { @@ -275,49 +276,6 @@ class PatchApplier710 : public PatchApplier { InjectCode((void*)0x0000000140A3D3F0, { 0x00 }); // time_in InjectCode((void*)0x0000000140A3D3F8, { 0x00 }); // time_out } - // Enhanced Stage Manager - if (nEStageManager > 0) - { - // Replace the function that provides the number of stages and compact some of it - InjectCode((void*)0x000000014038AEF0, { 0x48, 0x8B, 0x88, 0x40, 0x01, 0x00, 0x00, 0x48, 0x89, 0x4C, 0x24, 0x20, 0x48, 0x8B, 0xD0, 0x48, 0x8B, 0x88, 0x48, 0x01, 0x00, 0x00, 0x48, 0x89, 0x4C, 0x24, 0x28, 0x8B, 0x88, 0x50, 0x01, 0x00, 0x00, 0x89, 0x4C, 0x24, 0x30, 0x8B, 0x88, 0x54, 0x01, 0x00, 0x00, 0x8B, 0x80, 0x58, 0x01, 0x00, 0x00, 0x89, 0x44, 0x24, 0x38, 0x8B, 0x82, 0x5C, 0x01, 0x00, 0x00, 0x89, 0x4C, 0x24, 0x34, 0x89, 0x44, 0x24, 0x3C, 0x48, 0x8B, 0x82, 0x60, 0x01, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24, 0x40, 0x48, 0x8B, 0x82, 0x68, 0x01, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24, 0x48, 0x48, 0x8B, 0x82, 0x70, 0x01, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24, 0x50, 0x8B, 0x82, 0x78, 0x01, 0x00, 0x00, 0x89, 0x44, 0x24, 0x58, 0x84, 0xC0, 0x74, 0x2A, 0x48, 0x8B, 0x44, 0x24, 0x38, 0x48, 0xC1, 0xE8, 0x20, 0x85, 0xC0, 0x75, 0x1D, 0xE8, 0xD9, 0xD9, 0xE5, 0xFF, 0x48, 0x85, 0xC0, 0x74, 0x13, 0x48, 0x8D, 0x48, 0x10, 0xE8, 0xFB, 0xD3, 0xE5, 0xFF, 0xB9, 0x03, 0x00, 0x00, 0x00, 0x85, 0xC0, 0x0F, 0x45, 0xD9, 0x8B, 0x1D, 0x1B, 0x0C, 0x00, 0x00, 0x83, 0x3D, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x74, 0x06, 0x8B, 0x1D, 0x10, 0x0C, 0x00, 0x00, 0x8B, 0xC3, 0x48, 0x83, 0xC4, 0x60, 0x5B, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC }); - - // Jump to another section by addding some code to replace the values (Jump 1) - InjectCode((void*)0x000000014038AFF4, { 0xE9, 0x87, 0x0B, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC }); - - // Jump to another section by addding some code to replace the values (Replace 1/2) while some reserving space for values - InjectCode((void*)0x000000014038BB40, { 0xFF, 0x05, 0x76, 0x00, 0x00, 0x00, 0x8B, 0x0D, 0x70, 0x00, 0x00, 0x00, 0xBA, 0x02, 0x00, 0x00, 0x00, 0x83, 0x3D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x74, 0x02, 0xFF, 0xC2, 0x39, 0xD1, 0x0F, 0x4D, 0xCA, 0x89, 0x48, 0x08, 0xB9, 0x0E, 0x00, 0x00, 0x00, 0xE8, 0x92, 0x98, 0xE0, 0xFF, 0xB0, 0x01, 0x48, 0x83, 0xC4, 0x28, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x44, 0x89, 0x61, 0x08, 0x44, 0x88, 0x61, 0x0C, 0x4C, 0x89, 0x61, 0x10, 0x44, 0x89, 0x25, 0x29, 0x00, 0x00, 0x00, 0xE9, 0x68, 0xF4, 0xFF, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }); - - // Use the value from our own address instead of the original one - InjectCode((void*)0x00000001403F65AF, { 0x48, 0x8D, 0x05, 0x4A, 0x18, 0xDA, 0x00, 0x8B, 0x1D, 0x00, 0x56 }); - - // Jump to another section by addding some code to replace the values (Jump 2) - InjectCode((void*)0x00000001403F6638, { 0xE9, 0x03, 0x55, 0xF9, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC }); - - DWORD StageCountProtect; - VirtualProtect((int32_t*)0x14038BBB0, 0x10, PAGE_EXECUTE_READWRITE, &StageCountProtect); - - int* ESM = (int*)0x000000014038BBB0; - - if (nEStageManagerEncore) - ESM[1] = nEStageManager; - else - ESM[0] = nEStageManager; - - ESM[2] = nEStageManagerEncore; - - printf("[Patches] Enhanced Stage Manager enabled\n"); - } - // OpenGL Patches - /*if (nOGLPatchA) - { - // (call cs:glGetError) -> (xor eax, eax); (nop); (nop); (nop); (nop); - InjectCode((void*)0x000000014069D21D, { 0x31, 0xC0, 0x90, 0x90, 0x90, 0x90 }); - } - if (nOGLPatchB) - { - // (js loc_14069BC32) -> (nop)... - InjectCode((void*)0x000000014069BAF4, { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 }); - }*/ // Unlock PSEUDO modules (which will all default to Miku, unless we also patch them to match the first performer) if (nUnlockPseudo) { @@ -332,12 +290,6 @@ class PatchApplier710 : public PatchApplier { { InjectCode((void*)0x0000000140565E6B, { 0x90, 0x90 }); } - // The original slider update needs to run for hardware sliders to work -- only patch it when using emulation - if (!nHardwareSlider) - { - // Don't update the touch slider state so we can write our own - InjectCode((void*)0x000000014061579B, { 0x90, 0x90, 0x90, 0x8B, 0x42, 0xE0, 0x90, 0x90, 0x90 }); - } // Quick start { if (nQuickStart == 1) // skip the card/guest screen @@ -681,17 +633,6 @@ class PatchApplier710 : public PatchApplier { InjectCode((void*)(0x14050294f), { 0xc3 }); // RET } - // lag compensation - if (nLagCompensation>0 && nLagCompensation<=500) - { - InjectCode((void*)(0x14011e44e), { 0xf3, 0x0f, 0x10, 0x05, 0x8a, 0xcf, 0x9c, 0x00 }); // hijack xmm0 - InjectCode((void*)(0x14011e46b), { 0xf3, 0x0f, 0x11, 0x44, 0x24, 0x20 }); // get value from xmm0 instead of xmm1 - float startPos = (float)nLagCompensation / 1000.0f; - InjectCode((void*)(0x140aeB3e0), { *((uint8_t*)(&startPos)), *((uint8_t*)(&startPos)+1), *((uint8_t*)(&startPos) + 2), *((uint8_t*)(&startPos) + 3) }); - - printf("[Patches] Lag Compensation: %f\n", startPos); - } - // no message bar if (nNoMessageBar) { @@ -723,6 +664,107 @@ class PatchApplier710 : public PatchApplier { InjectCode((void*)(0x1404728C0), { 0xC3 }); InjectCode((void*)(0x1404789C3), { 0x0D }); } + // gamma + if (nGamma != 100) + { + float gamma_float = (float)nGamma / 100.0f; + InjectCode((void*)(0x1404a863b), { *((uint8_t*)(&gamma_float)), *((uint8_t*)(&gamma_float) + 1), *((uint8_t*)(&gamma_float) + 2), *((uint8_t*)(&gamma_float) + 3) }); + + printf("[Patches] Gamma: %f\n", gamma_float); + } + + // modpack redirection + /*{ + wchar_t* mpstr = NULL; + mpstr = (wchar_t*)malloc(256); + memset(mpstr, 0, 256); + GetPrivateProfileStringW(L"Mods", L"Modpack", L"", mpstr, 256, CONFIG_FILE_NAME); + std::string modpack_name(std::filesystem::path(mpstr).string()); + free(mpstr); + std::cout << "[Patches] Modpack name: " << modpack_name << std::endl; + + if (modpack_name != "") + { + // ram + std::string modpack_path = "modpacks\\" + modpack_name; + std::cout << "[Patches] New ram path: " << modpack_path << std::endl; + char* mpstr_path = (char*)malloc(modpack_path.size()); + memcpy(mpstr_path, modpack_path.c_str(), modpack_path.size()); + InjectLong((void*)0x0000000014096C120, (long)mpstr_path); + + // mdata + std::string modpack_mdata = "modpacks\\" + modpack_name + "\\mdata"; + std::cout << "[Patches] New mdata path: " << modpack_mdata << std::endl; + char* mpstr_mdata = (char*)malloc(modpack_mdata.size()); + memcpy(mpstr_mdata, modpack_mdata.c_str(), modpack_mdata.size()); + InjectCode((void*)0x000000014066CEA0, { 0x48, 0xC7, 0xC2 }); + InjectInt((void*)0x000000014066CEA3, (int)mpstr_mdata); + InjectCode((void*)0x000000014066CE9C, { (unsigned char)modpack_mdata.size() }); + InjectCode((void*)0x000000014066CEAE, { (unsigned char)modpack_mdata.size() }); + } + }*/ +#endif + // Enhanced Stage Manager + if (nEStageManager > 0) + { + // Replace the function that provides the number of stages and compact some of it + InjectCode((void*)0x000000014038AEF0, { 0x48, 0x8B, 0x88, 0x40, 0x01, 0x00, 0x00, 0x48, 0x89, 0x4C, 0x24, 0x20, 0x48, 0x8B, 0xD0, 0x48, 0x8B, 0x88, 0x48, 0x01, 0x00, 0x00, 0x48, 0x89, 0x4C, 0x24, 0x28, 0x8B, 0x88, 0x50, 0x01, 0x00, 0x00, 0x89, 0x4C, 0x24, 0x30, 0x8B, 0x88, 0x54, 0x01, 0x00, 0x00, 0x8B, 0x80, 0x58, 0x01, 0x00, 0x00, 0x89, 0x44, 0x24, 0x38, 0x8B, 0x82, 0x5C, 0x01, 0x00, 0x00, 0x89, 0x4C, 0x24, 0x34, 0x89, 0x44, 0x24, 0x3C, 0x48, 0x8B, 0x82, 0x60, 0x01, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24, 0x40, 0x48, 0x8B, 0x82, 0x68, 0x01, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24, 0x48, 0x48, 0x8B, 0x82, 0x70, 0x01, 0x00, 0x00, 0x48, 0x89, 0x44, 0x24, 0x50, 0x8B, 0x82, 0x78, 0x01, 0x00, 0x00, 0x89, 0x44, 0x24, 0x58, 0x84, 0xC0, 0x74, 0x2A, 0x48, 0x8B, 0x44, 0x24, 0x38, 0x48, 0xC1, 0xE8, 0x20, 0x85, 0xC0, 0x75, 0x1D, 0xE8, 0xD9, 0xD9, 0xE5, 0xFF, 0x48, 0x85, 0xC0, 0x74, 0x13, 0x48, 0x8D, 0x48, 0x10, 0xE8, 0xFB, 0xD3, 0xE5, 0xFF, 0xB9, 0x03, 0x00, 0x00, 0x00, 0x85, 0xC0, 0x0F, 0x45, 0xD9, 0x8B, 0x1D, 0x1B, 0x0C, 0x00, 0x00, 0x83, 0x3D, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x74, 0x06, 0x8B, 0x1D, 0x10, 0x0C, 0x00, 0x00, 0x8B, 0xC3, 0x48, 0x83, 0xC4, 0x60, 0x5B, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC }); + + // Jump to another section by addding some code to replace the values (Jump 1) + InjectCode((void*)0x000000014038AFF4, { 0xE9, 0x87, 0x0B, 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC }); + + // Jump to another section by addding some code to replace the values (Replace 1/2) while some reserving space for values + InjectCode((void*)0x000000014038BB40, { 0xFF, 0x05, 0x76, 0x00, 0x00, 0x00, 0x8B, 0x0D, 0x70, 0x00, 0x00, 0x00, 0xBA, 0x02, 0x00, 0x00, 0x00, 0x83, 0x3D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x74, 0x02, 0xFF, 0xC2, 0x39, 0xD1, 0x0F, 0x4D, 0xCA, 0x89, 0x48, 0x08, 0xB9, 0x0E, 0x00, 0x00, 0x00, 0xE8, 0x92, 0x98, 0xE0, 0xFF, 0xB0, 0x01, 0x48, 0x83, 0xC4, 0x28, 0xC3, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x44, 0x89, 0x61, 0x08, 0x44, 0x88, 0x61, 0x0C, 0x4C, 0x89, 0x61, 0x10, 0x44, 0x89, 0x25, 0x29, 0x00, 0x00, 0x00, 0xE9, 0x68, 0xF4, 0xFF, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }); + + // Use the value from our own address instead of the original one + InjectCode((void*)0x00000001403F65AF, { 0x48, 0x8D, 0x05, 0x4A, 0x18, 0xDA, 0x00, 0x8B, 0x1D, 0x00, 0x56 }); + + // Jump to another section by addding some code to replace the values (Jump 2) + InjectCode((void*)0x00000001403F6638, { 0xE9, 0x03, 0x55, 0xF9, 0xFF, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC }); + + DWORD StageCountProtect; + VirtualProtect((int32_t*)0x14038BBB0, 0x10, PAGE_EXECUTE_READWRITE, &StageCountProtect); + + int* ESM = (int*)0x000000014038BBB0; + + if (nEStageManagerEncore) + ESM[1] = nEStageManager; + else + ESM[0] = nEStageManager; + + ESM[2] = nEStageManagerEncore; + + printf("[Patches] Enhanced Stage Manager enabled\n"); + } + // OpenGL Patches + /*if (nOGLPatchA) + { + // (call cs:glGetError) -> (xor eax, eax); (nop); (nop); (nop); (nop); + InjectCode((void*)0x000000014069D21D, { 0x31, 0xC0, 0x90, 0x90, 0x90, 0x90 }); + } + if (nOGLPatchB) + { + // (js loc_14069BC32) -> (nop)... + InjectCode((void*)0x000000014069BAF4, { 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 }); + }*/ + // The original slider update needs to run for hardware sliders to work -- only patch it when using emulation + if (!nHardwareSlider) + { + // Don't update the touch slider state so we can write our own + InjectCode((void*)0x000000014061579B, { 0x90, 0x90, 0x90, 0x8B, 0x42, 0xE0, 0x90, 0x90, 0x90 }); + } + + + // lag compensation + if (nLagCompensation>0 && nLagCompensation<=500) + { + InjectCode((void*)(0x14011e44e), { 0xf3, 0x0f, 0x10, 0x05, 0x8a, 0xcf, 0x9c, 0x00 }); // hijack xmm0 + InjectCode((void*)(0x14011e46b), { 0xf3, 0x0f, 0x11, 0x44, 0x24, 0x20 }); // get value from xmm0 instead of xmm1 + float startPos = (float)nLagCompensation / 1000.0f; + InjectCode((void*)(0x140aeB3e0), { *((uint8_t*)(&startPos)), *((uint8_t*)(&startPos)+1), *((uint8_t*)(&startPos) + 2), *((uint8_t*)(&startPos) + 3) }); + + printf("[Patches] Lag Compensation: %f\n", startPos); + } // debug scaling by somewhatlurker if (nDwguiScaling) @@ -764,45 +806,5 @@ class PatchApplier710 : public PatchApplier { InjectCode((void*)(0x140300a82), { 0x90, 0x90, 0x90 }); // NOPs InjectCode((void*)(0x140300a88), { 0x90, 0x90, 0x90 }); // NOPs } - - // gamma - if (nGamma != 100) - { - float gamma_float = (float)nGamma / 100.0f; - InjectCode((void*)(0x1404a863b), { *((uint8_t*)(&gamma_float)), *((uint8_t*)(&gamma_float) + 1), *((uint8_t*)(&gamma_float) + 2), *((uint8_t*)(&gamma_float) + 3) }); - - printf("[Patches] Gamma: %f\n", gamma_float); - } - - // modpack redirection - /*{ - wchar_t* mpstr = NULL; - mpstr = (wchar_t*)malloc(256); - memset(mpstr, 0, 256); - GetPrivateProfileStringW(L"Mods", L"Modpack", L"", mpstr, 256, CONFIG_FILE_NAME); - std::string modpack_name(std::filesystem::path(mpstr).string()); - free(mpstr); - std::cout << "[Patches] Modpack name: " << modpack_name << std::endl; - - if (modpack_name != "") - { - // ram - std::string modpack_path = "modpacks\\" + modpack_name; - std::cout << "[Patches] New ram path: " << modpack_path << std::endl; - char* mpstr_path = (char*)malloc(modpack_path.size()); - memcpy(mpstr_path, modpack_path.c_str(), modpack_path.size()); - InjectLong((void*)0x0000000014096C120, (long)mpstr_path); - - // mdata - std::string modpack_mdata = "modpacks\\" + modpack_name + "\\mdata"; - std::cout << "[Patches] New mdata path: " << modpack_mdata << std::endl; - char* mpstr_mdata = (char*)malloc(modpack_mdata.size()); - memcpy(mpstr_mdata, modpack_mdata.c_str(), modpack_mdata.size()); - InjectCode((void*)0x000000014066CEA0, { 0x48, 0xC7, 0xC2 }); - InjectInt((void*)0x000000014066CEA3, (int)mpstr_mdata); - InjectCode((void*)0x000000014066CE9C, { (unsigned char)modpack_mdata.size() }); - InjectCode((void*)0x000000014066CEAE, { (unsigned char)modpack_mdata.size() }); - } - }*/ } }; \ No newline at end of file diff --git a/source-code/source/PD-Loader/Patches/patches-framework.h b/source-code/source/PD-Loader/Patches/patches-framework.h index 99fc12d..1ee5178 100644 --- a/source-code/source/PD-Loader/Patches/patches-framework.h +++ b/source-code/source/PD-Loader/Patches/patches-framework.h @@ -82,21 +82,24 @@ auto nNoLyrics = GetPrivateProfileIntW(L"patches", L"no_lyrics", FALSE, CONFIG_F auto nNoMovies = GetPrivateProfileIntW(L"patches", L"no_movies", FALSE, CONFIG_FILE); auto nNoError = GetPrivateProfileIntW(L"patches", L"no_error", FALSE, CONFIG_FILE); auto nNoTimer = GetPrivateProfileIntW(L"patches", L"no_timer", TRUE, CONFIG_FILE); -auto nNoTimerSprite = GetPrivateProfileIntW(L"patches", L"no_timer_sprite", TRUE, CONFIG_FILE); auto nEStageManager = GetPrivateProfileIntW(L"patches", L"enhanced_stage_manager", 0, CONFIG_FILE); auto nEStageManagerEncore = GetPrivateProfileIntW(L"patches", L"enhanced_stage_manager_encore", TRUE, CONFIG_FILE); -auto nUnlockPseudo = GetPrivateProfileIntW(L"patches", L"unlock_pseudo", FALSE, CONFIG_FILE); -auto nCard = GetPrivateProfileIntW(L"patches", L"card", TRUE, CONFIG_FILE); auto nHardwareSlider = GetPrivateProfileIntW(L"patches", L"hardware_slider", FALSE, CONFIG_FILE); //auto nOGLPatchA = GetPrivateProfileIntW(L"patches", L"opengl_patch_a", FALSE, CONFIG_FILE); //auto nOGLPatchB = GetPrivateProfileIntW(L"patches", L"opengl_patch_b", FALSE, CONFIG_FILE); auto nTAA = GetPrivateProfileIntW(L"graphics", L"taa", TRUE, CONFIG_FILE); auto nMLAA = GetPrivateProfileIntW(L"graphics", L"mlaa", TRUE, CONFIG_FILE); -auto nDoF = GetPrivateProfileIntW(L"graphics", L"dof", TRUE, CONFIG_FILE); -auto nMAG = GetPrivateProfileIntW(L"graphics", L"mag", 0, CONFIG_FILE); auto nStereo = GetPrivateProfileIntW(L"patches", L"stereo", TRUE, CONFIG_FILE); auto nBuiltinPatches = GetPrivateProfileIntW(L"global", L"builtin_patches", TRUE, CONFIG_FILE); auto nCustomPatches = GetPrivateProfileIntW(L"global", L"custom_patches", TRUE, CONFIG_FILE); +auto nLagCompensation = GetPrivateProfileIntW(L"graphics", L"lag_compensation", 0, CONFIG_FILE); +auto nDwguiScaling = GetPrivateProfileIntW(L"patches", L"dwgui_scaling", FALSE, CONFIG_FILE); +#ifndef MINIMALIST +auto nNoTimerSprite = GetPrivateProfileIntW(L"patches", L"no_timer_sprite", TRUE, CONFIG_FILE); +auto nUnlockPseudo = GetPrivateProfileIntW(L"patches", L"unlock_pseudo", FALSE, CONFIG_FILE); +auto nCard = GetPrivateProfileIntW(L"patches", L"card", TRUE, CONFIG_FILE); +auto nDoF = GetPrivateProfileIntW(L"graphics", L"dof", TRUE, CONFIG_FILE); +auto nMAG = GetPrivateProfileIntW(L"graphics", L"mag", 0, CONFIG_FILE); auto nQuickStart = GetPrivateProfileIntW(L"patches", L"quick_start", 1, CONFIG_FILE); auto nNoScrollingSfx = GetPrivateProfileIntW(L"patches", L"no_scrolling_sfx", FALSE, CONFIG_FILE); auto nNoHandScaling = GetPrivateProfileIntW(L"patches", L"no_hand_scaling", FALSE, CONFIG_FILE); @@ -118,8 +121,7 @@ auto nReflectResWidth = GetPrivateProfileIntW(L"graphics", L"reflect_res_width", auto nReflectResHeight = GetPrivateProfileIntW(L"graphics", L"reflect_res_height", 256, CONFIG_FILE); auto nRefractResWidth = GetPrivateProfileIntW(L"graphics", L"refract_res_width", 512, CONFIG_FILE); auto nRefractResHeight = GetPrivateProfileIntW(L"graphics", L"refract_res_height", 256, CONFIG_FILE); -auto nLagCompensation = GetPrivateProfileIntW(L"graphics", L"lag_compensation", 0, CONFIG_FILE); auto nNoMessageBar = GetPrivateProfileIntW(L"patches", L"no_message_bar", FALSE, CONFIG_FILE); auto nNoStageText = GetPrivateProfileIntW(L"patches", L"no_stage_text", FALSE, CONFIG_FILE); auto nNoOpd = GetPrivateProfileIntW(L"patches", L"no_opd", FALSE, CONFIG_FILE); -auto nDwguiScaling = GetPrivateProfileIntW(L"patches", L"dwgui_scaling", FALSE, CONFIG_FILE); +#endif diff --git a/source-code/source/PD-Loader/dllmain.cpp b/source-code/source/PD-Loader/dllmain.cpp index 6154ea8..d07fdb5 100644 --- a/source-code/source/PD-Loader/dllmain.cpp +++ b/source-code/source/PD-Loader/dllmain.cpp @@ -780,10 +780,12 @@ void Init() writeTemplate(config_template, CONFIG_FILE); WritePrivateProfileStringW(L"global", L"pc", this_pcname, CONFIG_FILE); WritePrivateProfileStringW(L"plugins", L"Launcher.dva", L"1", CONFIG_FILE); - WritePrivateProfileStringW(L"plugins", L"DivaSound.dva", L"1", CONFIG_FILE); WritePrivateProfileStringW(L"plugins", L"TLAC.dva", L"1", CONFIG_FILE); +#ifndef MINIMALIST + WritePrivateProfileStringW(L"plugins", L"DivaSound.dva", L"1", CONFIG_FILE); WritePrivateProfileStringW(L"plugins", L"Novidia.dva", L"1", CONFIG_FILE); WritePrivateProfileStringW(L"plugins", L"ShaderPatch.dva", L"1", CONFIG_FILE); +#endif } const auto COMPONENTS = L"plugins\\components.ini"; if (!PathFileExistsW(COMPONENTS)) writeTemplate(components_template, COMPONENTS); diff --git a/source-code/source/PD-Loader/templates.h b/source-code/source/PD-Loader/templates.h index 6f1021b..15cdcca 100644 --- a/source-code/source/PD-Loader/templates.h +++ b/source-code/source/PD-Loader/templates.h @@ -28,14 +28,18 @@ char config_template[] = "Skip=0\n" "# Disables unsupported GPU warning dialogs.\n" "No_GPU_Dialog=0\n" +#ifndef MINIMALIST "# Sets the dark colour scheme in the launcher.\n" "Dark_Launcher=0\n" +#endif "# Command line arguments\n" "Command_Line=\n" +#ifndef MINIMALIST "# Launches divahook.bat intead of diva.exe.\n" "Use_divahook_bat=0\n" "# Language -- 0=auto, 1=en, 2=zh-Hans, 3=pt-BR, 4=it-IT\n" "Launcher_Language=0\n" +#endif "\n" "[Patches]\n" "# Disable movies (enable this if the game hangs when loading certain PVs)\n" @@ -44,15 +48,18 @@ char config_template[] = "Cursor=1\n" "# Use 2 channels instead of 4 (when not using DivaSound)\n" "Stereo=1\n" +#ifndef MINIMALIST "# Skip one or more menus -- 0=disabled, 1=guest, 2=guest+normal\n" "Quick_Start=1\n" "# Disable the scrolling sound effect\n" "No_Scrolling_SFX=0\n" +#endif "# Enhanced Stage Manager (sets a custom number of stages; \"stage_manager\" should be disabled in \"components.ini\")\n" "# Number of stages (0 = disabled)\n" "Enhanced_Stage_Manager=0\n" "# Use encore stages or not\n" "Enhanced_Stage_Manager_Encore=1\n" +#ifndef MINIMALIST "# Change the mouth animations -- 0=default, 1=force PDA, 2=force FT\n" "Force_Mouth=0\n" "# Change the expressions -- 0=default, 1=force PDA, 2=force FT\n" @@ -63,10 +70,13 @@ char config_template[] = "No_Hand_Scaling=0\n" "# Default hand size -- -1=default, 12200=PDA\n" "Default_Hand_Size=-1\n" +#endif "# Show \"FREE PLAY\" instead of \"CREDIT(S)\" and don't require credits\n" "Freeplay=1\n" +#ifndef MINIMALIST "# Sing missed notes\n" "Sing_Missed=0\n" +#endif "# Hide the volume and SE control buttons\n" "Hide_Volume=0\n" "# Remove the photo controls during PV playback\n" @@ -85,6 +95,7 @@ char config_template[] = "PDLoaderText=1\n" "# Freeze the timer\n" "No_Timer=1\n" +#ifndef MINIMALIST "# Disable the timer sprite\n" "No_Timer_Sprite=1\n" "# Disable Message Bar\n" @@ -97,12 +108,15 @@ char config_template[] = "Card=0\n" "# Disable Extended Data (may break physics in some edits) AKA Skyth's no-opd patch\n" "No_Opd=0\n" +#endif "# Scale Debug Windows above HD internal resolution AKA somewhatlurker's dwgui patch\n" "Dwgui_Scaling=0\n" "# Allow using a real arcade slider attached to COM11 (or PS4 official FT controller)\n" "Hardware_Slider=0\n" +#ifndef MINIMALIST "# Prevent data deletion\n" "Prevent_Data_Deletion=0\n" +#endif "\n" "[Graphics]\n" "# Lag Compensation\n" @@ -118,6 +132,7 @@ char config_template[] = "TAA=1\n" "# Morphological Anti-Aliasing\n" "MLAA=1\n" +#ifndef MINIMALIST "# MAG Filter -- 0=default (bilinear), 1=nearest-neighbour, 2=sharpen, 3=cone (smooth)\n" "MAG=0\n" "# Depth of Field\n" @@ -142,6 +157,7 @@ char config_template[] = "NPR1=0\n" "# Disable all 3D passes. WARNING: The extended data will be deleted unless Prevent Data Deletion is enabled. Don't enable on Intel GPUs, enable no_opd instead.\n" "2D=0\n" +#endif "# FrameRateManager motion rate (fps)\n" "FRM.Motion.Rate=400\n" "\n" @@ -358,6 +374,8 @@ char keyconfig_template[] = "MENU_R = Right, Down, Ds4_R1, XINPUT_RS, Ds4_DPad_Right, Ds4_DPad_Down, XINPUT_RIGHT, XINPUT_DOWN, E, O, Ds4_L_Stick_Right, XINPUT_LRIGHT, Ds4_L_Stick_Down, XINPUT_LDOWN, Ds4_R_Stick_Right, XINPUT_RRIGHT, Ds4_R_Stick_Down, XINPUT_RDOWN\n" "MENU_CIRCLE = Spacebar\n" "\n" +"TOON = F9\n" +"\n" "COIN = F10\n" "\n" "WIREFRAME = F12\n" diff --git a/source-code/source/fakedll/fakedll.vcxproj b/source-code/source/fakedll/fakedll.vcxproj index 6944db8..159ccef 100644 --- a/source-code/source/fakedll/fakedll.vcxproj +++ b/source-code/source/fakedll/fakedll.vcxproj @@ -5,6 +5,10 @@ Debug x64 + + Minimalist + x64 + Release x64 @@ -34,6 +38,14 @@ Unicode false + + DynamicLibrary + false + v142 + true + Unicode + false + @@ -45,6 +57,9 @@ + + + true @@ -54,6 +69,10 @@ false fakednsapi + + false + fakednsapi + NotUsing @@ -101,6 +120,32 @@ -d2:-FH4- %(AdditionalOptions) + + + NotUsing + Level3 + MaxSpeed + true + true + true + MINIMALIST;_CRT_SECURE_NO_WARNINGS;NDEBUG;PDLOADER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + pch.h + ..\dependencies\MemoryModule;%(AdditionalIncludeDirectories) + stdcpp17 + MultiThreadedDLL + -d2FH4- /utf-8 %(AdditionalOptions) + + + Windows + true + true + true + false + x64.def + -d2:-FH4- %(AdditionalOptions) + + diff --git a/source-code/source/plugins/DSCRemote/DSCRemote.vcxproj b/source-code/source/plugins/DSCRemote/DSCRemote.vcxproj index fd6d48a..4fdb89f 100644 --- a/source-code/source/plugins/DSCRemote/DSCRemote.vcxproj +++ b/source-code/source/plugins/DSCRemote/DSCRemote.vcxproj @@ -5,6 +5,10 @@ Debug x64 + + Minimalist + x64 + Release x64 @@ -30,6 +34,13 @@ true MultiByte + + DynamicLibrary + false + v142 + true + MultiByte + @@ -41,6 +52,9 @@ + + + .dva @@ -48,6 +62,9 @@ .dva + + .dva + Level3 @@ -87,6 +104,30 @@ -d2:-FH4- %(AdditionalOptions) + + + Level3 + MaxSpeed + true + true + true + true + ..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories) + MultiThreaded + -d2FH4- /utf-8 %(AdditionalOptions) + + + MINIMALIST;_WINDLL;%(PreprocessorDefinitions) + + + Console + true + true + detours.lib;evr.lib;mfplat.lib;mfuuid.lib;syelog.lib;%(AdditionalDependencies) + ..\..\..\dependencies\detours\lib;%(AdditionalLibraryDirectories) + -d2:-FH4- %(AdditionalOptions) + + diff --git a/source-code/source/plugins/DivaMovie/DivaMovie.vcxproj b/source-code/source/plugins/DivaMovie/DivaMovie.vcxproj index cc0317f..3c9ae04 100644 --- a/source-code/source/plugins/DivaMovie/DivaMovie.vcxproj +++ b/source-code/source/plugins/DivaMovie/DivaMovie.vcxproj @@ -5,6 +5,10 @@ Debug x64 + + Minimalist + x64 + Release x64 @@ -30,6 +34,13 @@ true MultiByte + + DynamicLibrary + false + v142 + true + MultiByte + @@ -41,6 +52,9 @@ + + + .dva @@ -48,6 +62,9 @@ .dva + + .dva + Level3 @@ -85,6 +102,28 @@ -d2:-FH4- %(AdditionalOptions) + + + Level3 + MaxSpeed + true + true + true + true + ..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories) + MultiThreadedDLL + -d2FH4- /utf-8 %(AdditionalOptions) + MINIMALIST;_WINDLL;%(PreprocessorDefinitions) + + + Console + true + true + detours.lib;evr.lib;mfplat.lib;mfuuid.lib;syelog.lib;%(AdditionalDependencies) + ..\..\..\dependencies\detours\lib;%(AdditionalLibraryDirectories) + -d2:-FH4- %(AdditionalOptions) + + diff --git a/source-code/source/plugins/DivaSound/DivaSound.vcxproj b/source-code/source/plugins/DivaSound/DivaSound.vcxproj index 17f03ed..1b3336b 100644 --- a/source-code/source/plugins/DivaSound/DivaSound.vcxproj +++ b/source-code/source/plugins/DivaSound/DivaSound.vcxproj @@ -5,6 +5,10 @@ Debug x64 + + Minimalist + x64 + Release x64 @@ -30,6 +34,13 @@ MultiByte v142 + + DynamicLibrary + false + true + MultiByte + v142 + @@ -41,6 +52,9 @@ + + + .dva @@ -48,6 +62,9 @@ .dva + + .dva + Level3 @@ -82,6 +99,27 @@ -d2:-FH4- %(AdditionalOptions) + + + Level3 + MaxSpeed + true + true + true + stdcpp17 + ..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;miniaudio;bassasio + MultiThreadedDLL + -d2FH4- /utf-8 %(AdditionalOptions) + MINIMALIST;_WINDLL;%(PreprocessorDefinitions) + + + true + true + detours.lib;syelog.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + ..\..\..\dependencies\detours\lib;bassasio + -d2:-FH4- %(AdditionalOptions) + + diff --git a/source-code/source/plugins/DivaWig/DivaWig.vcxproj b/source-code/source/plugins/DivaWig/DivaWig.vcxproj index 1eebdf0..adbdbcc 100644 --- a/source-code/source/plugins/DivaWig/DivaWig.vcxproj +++ b/source-code/source/plugins/DivaWig/DivaWig.vcxproj @@ -5,6 +5,10 @@ Debug x64 + + Minimalist + x64 + Release x64 @@ -30,6 +34,13 @@ true MultiByte + + DynamicLibrary + false + v142 + true + MultiByte + @@ -41,6 +52,9 @@ + + + .dva @@ -48,6 +62,9 @@ .dva + + .dva + Level3 @@ -85,6 +102,28 @@ -d2:-FH4- %(AdditionalOptions) + + + Level3 + MaxSpeed + true + true + true + true + ..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories) + MultiThreadedDLL + -d2FH4- /utf-8 %(AdditionalOptions) + MINIMALIST;_WINDLL;%(PreprocessorDefinitions) + + + Console + true + true + detours.lib;evr.lib;mfplat.lib;mfuuid.lib;syelog.lib;%(AdditionalDependencies) + ..\..\..\dependencies\detours\lib;%(AdditionalLibraryDirectories) + -d2:-FH4- %(AdditionalOptions) + + diff --git a/source-code/source/plugins/Launcher/Launcher.vcxproj b/source-code/source/plugins/Launcher/Launcher.vcxproj index 1757bc3..9044002 100644 --- a/source-code/source/plugins/Launcher/Launcher.vcxproj +++ b/source-code/source/plugins/Launcher/Launcher.vcxproj @@ -5,6 +5,10 @@ Debug x64 + + Minimalist + x64 + Release x64 @@ -34,6 +38,13 @@ true Unicode + + DynamicLibrary + false + v142 + true + Unicode + @@ -45,6 +56,9 @@ + + + true @@ -55,6 +69,11 @@ .dva $(ProjectName) + + false + .dva + $(ProjectName) + NotUsing @@ -97,6 +116,27 @@ -d2:-FH4- %(AdditionalOptions) + + + NotUsing + + + Level3 + MINIMALIST;NDEBUG;%(PreprocessorDefinitions) + ..\..\..\dependencies\simpleini;..\..\..\dependencies\WineVer;..\..\..\dependencies\GPUModel;..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\freeglut\include;..\..\..\dependencies\detours\include;%(AdditionalIncludeDirectories) + stdcpp17 + MultiThreadedDLL + -d2FH4- /utf-8 %(AdditionalOptions) + + + User32.lib + Windows + + + ..\..\..\dependencies\detours\lib;..\..\..\dependencies\freeglut\lib;%(AdditionalLibraryDirectories) + -d2:-FH4- %(AdditionalOptions) + + diff --git a/source-code/source/plugins/Launcher/framework.h b/source-code/source/plugins/Launcher/framework.h index 4de2b6a..1fcd4dd 100644 --- a/source-code/source/plugins/Launcher/framework.h +++ b/source-code/source/plugins/Launcher/framework.h @@ -65,7 +65,9 @@ LPCWSTR KEYCONFIG_SECTION = L"keyconfig"; int nSkipLauncher = GetPrivateProfileIntW(LAUNCHER_SECTION, L"skip", FALSE, CONFIG_FILE); int nNoGPUDialog = GetPrivateProfileIntW(LAUNCHER_SECTION, L"no_gpu_dialog", FALSE, CONFIG_FILE); +#ifndef MINIMALIST int nLanguage = GetPrivateProfileIntW(LAUNCHER_SECTION, L"launcher_language", FALSE, CONFIG_FILE); +#endif std::vector languages = std::vector({ L"LANG_AUTO", L"en", L"zh-Hans", L"pt-BR", L"it-IT"}); @@ -184,6 +186,7 @@ ConfigOptionBase* graphicsArray[] = { new DropdownOption(L"model", L"GPU", CONFIG_FILE, L"MODEL_NAME", L"MODEL_HINT", -1, std::vector({ L"MODEL_AUTOMATIC", L"Kepler", L"Maxwell", L"Turing", L"Ampere" }), -1), new BooleanOption(L"TAA", GRAPHICS_SECTION, CONFIG_FILE, L"TAA_NAME", L"TAA_HINT", true, false), new BooleanOption(L"MLAA", GRAPHICS_SECTION, CONFIG_FILE, L"MLAA_NAME", L"MLAA_HINT", true, false), +#ifndef MINIMALIST new DropdownOption(L"MAG", GRAPHICS_SECTION, CONFIG_FILE, L"MAG_NAME", L"MAG_HINT", 0, std::vector({ L"MAG_BILINEAR", L"MAG_NEAREST", L"MAG_SHARPEN", L"MAG_CONE" })), new BooleanOption(L"DOF", GRAPHICS_SECTION, CONFIG_FILE, L"DOF_NAME", L"DOF_HINT", true, false), new BooleanOption(L"reflections", GRAPHICS_SECTION, CONFIG_FILE, L"REFLECTIONS_NAME", L"REFLECTIONS_HINT", true, false), @@ -196,6 +199,7 @@ ConfigOptionBase* graphicsArray[] = { new BooleanOption(L"shader", GRAPHICS_SECTION, CONFIG_FILE, L"SHADER_NAME", L"SHADER_HINT", true, false), new DropdownOption(L"NPR1", GRAPHICS_SECTION, CONFIG_FILE, L"NPR1_NAME", L"NPR1_HINT", 0, std::vector({ L"Default", L"Force on", L"Force off" })), new BooleanOption(L"2D", GRAPHICS_SECTION, CONFIG_FILE, L"2D_NAME", L"2D_HINT", false, false), +#endif }; ConfigOptionBase* optionsArray[] = { @@ -209,8 +213,10 @@ ConfigOptionBase* optionsArray[] = { new OptionMetaSectionLabel(L"SECTION_COMPATIBILITY"), new BooleanOption(L"no_movies", PATCHES_SECTION, CONFIG_FILE, L"NO_MOVIES_NAME", L"NO_MOVIES_HINT", false, false), new BooleanOption(L"stereo", PATCHES_SECTION, CONFIG_FILE, L"STEREO_NAME", L"STEREO_HINT", true, false), +#ifndef MINIMALIST new BooleanOption(L"prevent_data_deletion", PATCHES_SECTION, CONFIG_FILE, L"PREVENT_DATA_DELETION_NAME", L"PREVENT_DATA_DELETION_HINT", false, false), new BooleanOption(L"no_opd", PATCHES_SECTION, CONFIG_FILE, L"NO_OPD_NAME", L"NO_OPD_HINT", false, false), +#endif new OptionMetaSeparator(), new OptionMetaSpacer(8), @@ -231,27 +237,37 @@ ConfigOptionBase* optionsArray[] = { new OptionMetaSpacer(8), new OptionMetaSectionLabel(L"SECTION_LAUNCHER"), +#ifndef MINIMALIST new DropdownOption(L"launcher_language",LAUNCHER_SECTION,CONFIG_FILE, L"LAUNCHER_LANGUAGE_NAME",L"LAUNCHER_LANGUAGE_HINT", 0, languages), new BooleanOption(L"dark_launcher", LAUNCHER_SECTION, CONFIG_FILE, L"DARK_LAUNCHER_NAME", L"DARK_LAUNCHER_HINT", false, false), //new BooleanOption(L"acrylic_blur", LAUNCHER_SECTION, CONFIG_FILE, L"ACRYLIC_BLUR_NAME", L"ACRYLIC_BLUR_HINT", false, false), +#endif new BooleanOption(L"no_gpu_dialog", LAUNCHER_SECTION, CONFIG_FILE, L"NO_GPU_DIALOG_NAME", L"NO_GPU_DIALOG_HINT", false, false), +#ifndef MINIMALIST new BooleanOption(L"use_divahook_bat", LAUNCHER_SECTION, CONFIG_FILE, L"USE_DIVAHOOK_BAT_NAME", L"USE_DIVAHOOK_BAT_HINT", false, false), +#endif new StringOption(L"command_line", LAUNCHER_SECTION, CONFIG_FILE, L"COMMAND_LINE_NAME", L"COMMAND_LINE_HINT", L"", false), }; ConfigOptionBase* options2Array[] = { new OptionMetaSectionLabel(L"SECTION_PV_SELECTOR"), +#ifndef MINIMALIST new DropdownOption(L"quick_start", PATCHES_SECTION, CONFIG_FILE, L"QUICK_START_NAME", L"QUICK_START_HINT", 1, std::vector({ L"Disabled", L"Guest", L"Guest + Normal" })), +#endif new BooleanOption(L"freeplay", PATCHES_SECTION, CONFIG_FILE, L"FREEPLAY_NAME", L"FREEPLAY_HINT", true, false), +#ifndef MINIMALIST new BooleanOption(L"no_scrolling_sfx", PATCHES_SECTION, CONFIG_FILE, L"NO_SCROLLING_SFX_NAME", L"NO_SCROLLING_SFX_HINT", false, false), new BooleanOption(L"unlock_pseudo", PATCHES_SECTION, CONFIG_FILE, L"UNLOCK_PSEUDO_NAME", L"UNLOCK_PSEUDO_HINT", false, false), +#endif new OptionMetaSeparator(), new OptionMetaSpacer(8), new OptionMetaSectionLabel(L"SECTION_ESM"), new NumericOption(L"Enhanced_Stage_Manager", PATCHES_SECTION, CONFIG_FILE, L"ENHANCED_STAGE_MANAGER_NAME", L"ENHANCED_STAGE_MANAGER_HINT", 0, 0, INT_MAX), new BooleanOption(L"Enhanced_Stage_Manager_Encore", PATCHES_SECTION, CONFIG_FILE, L"ENHANCED_STAGE_MANAGER_ENCORE_NAME", L"ENHANCED_STAGE_MANAGER_ENCORE_HINT", true, false), +#ifndef MINIMALIST new BooleanOption(L"sing_missed", PATCHES_SECTION, CONFIG_FILE, L"SING_MISSED_NAME", L"SING_MISSED_HINT", false, false), +#endif new BooleanOption(L"autopause", KEYCONFIG_SECTION, KEYCONFIG_FILE, L"AUTOPAUSE_NAME", L"AUTOPAUSE_HINT", true, true), new OptionMetaSeparator(), new OptionMetaSpacer(8), @@ -267,11 +283,14 @@ ConfigOptionBase* options2Array[] = { new BooleanOption(L"hide_freeplay", PATCHES_SECTION, CONFIG_FILE, L"HIDE_FREEPLAY_NAME", L"HIDE_FREEPLAY_HINT", false, false), new BooleanOption(L"pdloadertext", PATCHES_SECTION, CONFIG_FILE, L"PDLOADERTEXT_NAME", L"PDLOADERTEXT_HINT", true, false), new BooleanOption(L"no_timer", PATCHES_SECTION, CONFIG_FILE, L"NO_TIMER_NAME", L"NO_TIMER_HINT", true, false), +#ifndef MINIMALIST new BooleanOption(L"no_timer_sprite", PATCHES_SECTION, CONFIG_FILE, L"NO_TIMER_SPRITE_NAME", L"NO_TIMER_SPRITE_HINT", true, false), new BooleanOption(L"no_message_bar", PATCHES_SECTION, CONFIG_FILE, L"NO_MESSAGE_BAR_NAME", L"NO_MESSAGE_BAR_HINT", false, false), new BooleanOption(L"no_stage_text", PATCHES_SECTION, CONFIG_FILE, L"NO_STAGE_TEXT_NAME", L"NO_STAGE_TEXT_HINT", false, false), new BooleanOption(L"card", PATCHES_SECTION, CONFIG_FILE, L"CARD_NAME", L"CARD_HINT", false, false), +#endif new BooleanOption(L"dwgui_scaling", PATCHES_SECTION, CONFIG_FILE, L"DWGUI_SCALING_NAME", L"DWGUI_SCALING_HINT", false, false), +#ifndef MINIMALIST new OptionMetaSeparator(), new OptionMetaSpacer(8), @@ -283,6 +302,7 @@ ConfigOptionBase* options2Array[] = { new NumericOption(L"default_hand_size", PATCHES_SECTION, CONFIG_FILE, L"DEFAULT_HAND_SIZE_NAME", L"DEFAULT_HAND_SIZE_HINT", -1, -1, INT_MAX), new OptionMetaSeparator(), new OptionMetaSpacer(8), +#endif }; ConfigOptionBase* playerdataArray[] = { diff --git a/source-code/source/plugins/Launcher/ui.h b/source-code/source/plugins/Launcher/ui.h index e38f2ca..fa42cf9 100644 --- a/source-code/source/plugins/Launcher/ui.h +++ b/source-code/source/plugins/Launcher/ui.h @@ -36,7 +36,9 @@ namespace Launcher { public: ui(void) { +#ifndef MINIMALIST SetLanguage(); +#endif InitializeComponent(); @@ -228,7 +230,9 @@ namespace Launcher { updateLagCompMsec(); +#ifndef MINIMALIST scanModpacks(); +#endif int window = glutCreateWindow("glut"); // a context must be created to use glGetString @@ -427,21 +431,26 @@ namespace Launcher { void updateStyle() { +#ifndef MINIMALIST int nDarkLauncher = GetPrivateProfileIntW(LAUNCHER_SECTION, L"dark_launcher", FALSE, CONFIG_FILE); - int nAcrylicLauncher = GetPrivateProfileIntW(LAUNCHER_SECTION, L"acrylic_blur", FALSE, CONFIG_FILE); + //int nAcrylicLauncher = GetPrivateProfileIntW(LAUNCHER_SECTION, L"acrylic_blur", FALSE, CONFIG_FILE); +#endif //bool useAcrylic = nAcrylicLauncher && setBlur(hWnd, AccentState::ACCENT_ENABLE_ACRYLICBLURBEHIND); Color colourBg, colourBg2, colourFg; System::Windows::Forms::FlatStyle cbxStyle; +#ifndef MINIMALIST if (nDarkLauncher) { +#endif setDarkTheme(hWnd); colourFg = Color::White; colourBg = Color::FromArgb(255, 32, 32, 32); // tabControl colourBg2 = Color::FromArgb(255, 25, 25, 25); cbxStyle = System::Windows::Forms::FlatStyle::Flat; +#ifndef MINIMALIST } else { @@ -451,6 +460,9 @@ namespace Launcher { colourBg2 = Color::FromArgb(255, 242, 242, 242); cbxStyle = System::Windows::Forms::FlatStyle::System; } +#else + this->Text += (" - Minimalist Edition"); +#endif /*if (useAcrylic) { @@ -479,8 +491,10 @@ namespace Launcher { this->tabPage_Plugins->ForeColor = colourFg; this->tabPage_Components->BackColor = colourBg; this->tabPage_Components->ForeColor = colourFg; +#ifndef MINIMALIST this->tabPage_Modpacks->BackColor = colourBg; this->tabPage_Modpacks->ForeColor = colourFg; +#endif this->creditsTextBox->BackColor = colourBg; this->creditsTextBox->ForeColor = colourFg; this->tabPage_Update->BackColor = colourBg; @@ -521,9 +535,12 @@ namespace Launcher { SetBackCol(this->panel_Components, colourBg, cbxStyle); SetBackCol(this->panel_Plugins, colourBg, cbxStyle); +#ifndef MINIMALIST tabPage_Modpacks->Enabled = false; +#endif } +#ifndef MINIMALIST void updateLanguage() { int language = GetPrivateProfileIntW(LAUNCHER_SECTION, L"launcher_language", FALSE, CONFIG_FILE); if (nLanguage == language) @@ -536,7 +553,9 @@ namespace Launcher { this->InitializeComponent(); this->addOptions(); } +#endif +#ifndef MINIMALIST void SetLanguage() { if (nLanguage == 0) { Thread::CurrentThread->CurrentUICulture = gcnew CultureInfo(GetUserDefaultLCID()); @@ -544,6 +563,7 @@ namespace Launcher { Thread::CurrentThread->CurrentUICulture = CultureInfo::CreateSpecificCulture(gcnew String(languages[nLanguage])); } } +#endif private: @@ -595,6 +615,7 @@ private: System::Windows::Forms::LinkLabel^ linkLabel_Official_Discord; private: System::Windows::Forms::LinkLabel^ linkLabel_Help; private: System::Windows::Forms::LinkLabel^ linkLabel_Repo; private: System::Windows::Forms::CheckBox^ checkBox_nofsopt; +#ifndef MINIMALIST private: System::Windows::Forms::TabPage^ tabPage_Modpacks; private: System::Windows::Forms::CheckBox^ checkBox_ModPatches; private: System::Windows::Forms::Button^ button_ModDelete; @@ -607,6 +628,7 @@ private: System::Windows::Forms::ListBox^ listBox_Mods; private: System::Windows::Forms::Button^ button_ModFiles; private: System::Windows::Forms::Button^ button_ModRescan; private: System::Windows::Forms::Button^ button_ModRename; +#endif private: System::Windows::Forms::LinkLabel^ linkLabel_Console; private: System::Windows::Forms::Panel^ panel_Patches2; private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel1; @@ -673,6 +695,7 @@ private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel2; this->tabPage_Plugins = (gcnew System::Windows::Forms::TabPage()); this->panel_Custom = (gcnew System::Windows::Forms::Panel()); this->panel_Plugins = (gcnew System::Windows::Forms::Panel()); +#ifndef MINIMALIST this->tabPage_Modpacks = (gcnew System::Windows::Forms::TabPage()); this->button_ModRename = (gcnew System::Windows::Forms::Button()); this->button_ModRescan = (gcnew System::Windows::Forms::Button()); @@ -682,6 +705,7 @@ private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel2; this->button_ModClone = (gcnew System::Windows::Forms::Button()); this->button_ModSetActive = (gcnew System::Windows::Forms::Button()); this->listBox_Mods = (gcnew System::Windows::Forms::ListBox()); +#endif this->tabPage_Credits = (gcnew System::Windows::Forms::TabPage()); this->creditsTextBox = (gcnew System::Windows::Forms::TextBox()); this->tabPage_Update = (gcnew System::Windows::Forms::TabPage()); @@ -714,7 +738,9 @@ private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel2; this->tabPage_Playerdata->SuspendLayout(); this->tabPage_Components->SuspendLayout(); this->tabPage_Plugins->SuspendLayout(); +#ifndef MINIMALIST this->tabPage_Modpacks->SuspendLayout(); +#endif this->tabPage_Credits->SuspendLayout(); this->tabPage_Update->SuspendLayout(); this->flowLayoutPanel1->SuspendLayout(); @@ -758,7 +784,9 @@ private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel2; this->tabControl->Controls->Add(this->tabPage_Playerdata); this->tabControl->Controls->Add(this->tabPage_Components); this->tabControl->Controls->Add(this->tabPage_Plugins); +#ifndef MINIMALIST this->tabControl->Controls->Add(this->tabPage_Modpacks); +#endif this->tabControl->Controls->Add(this->tabPage_Credits); this->tabControl->Controls->Add(this->tabPage_Update); resources->ApplyResources(this->tabControl, L"tabControl"); @@ -903,6 +931,7 @@ private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel2; // resources->ApplyResources(this->panel_Plugins, L"panel_Plugins"); this->panel_Plugins->Name = L"panel_Plugins"; +#ifndef MINIMALIST // // tabPage_Modpacks // @@ -975,6 +1004,7 @@ private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel2; resources->ApplyResources(this->listBox_Mods, L"listBox_Mods"); this->listBox_Mods->Name = L"listBox_Mods"; this->listBox_Mods->SelectedValueChanged += gcnew System::EventHandler(this, &ui::listBox_Mods_SelectedValueChanged); +#endif // // tabPage_Credits // @@ -1167,8 +1197,10 @@ private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel2; this->tabPage_Components->ResumeLayout(false); this->tabPage_Components->PerformLayout(); this->tabPage_Plugins->ResumeLayout(false); +#ifndef MINIMALIST this->tabPage_Modpacks->ResumeLayout(false); this->tabPage_Modpacks->PerformLayout(); +#endif this->tabPage_Credits->ResumeLayout(false); this->tabPage_Credits->PerformLayout(); this->tabPage_Update->ResumeLayout(false); @@ -1181,6 +1213,7 @@ private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel2; } #pragma endregion +#ifndef MINIMALIST private: System::Void scanModpacks() { button_ModSetActive->Enabled = false; button_ModClone->Enabled = false; @@ -1203,6 +1236,7 @@ private: System::Windows::Forms::FlowLayoutPanel^ flowLayoutPanel2; std::cout << "[Launcher] File system error " << e.what() << " " << e.path1() << " " << e.path2() << " " << e.code() << std::endl; } } +#endif private: System::Void SaveSettings() { if (*ResolutionConfigChanged) { @@ -1424,7 +1458,9 @@ private: System::Void button_github_Click(System::Object^ sender, System::EventA } private: System::Void button_Apply_Click(System::Object^ sender, System::EventArgs^ e) { SaveSettings(); +#ifndef MINIMALIST updateLanguage(); +#endif updateStyle(); } private: System::Void Ui_KeyDown(System::Object^ sender, System::Windows::Forms::KeyEventArgs^ e) { @@ -1501,6 +1537,7 @@ private: System::Void linkLabel_Console_LinkClicked(System::Object^ sender, Syst ShowWindow(consoleHandle, SW_SHOW); linkLabel_Console->Visible = false; } +#ifndef MINIMALIST private: System::Void listBox_Mods_SelectedValueChanged(System::Object^ sender, System::EventArgs^ e) { button_ModSetActive->Enabled = true; button_ModClone->Enabled = true; @@ -1542,6 +1579,7 @@ private: System::Void tabPage_Modpacks_Enter(System::Object^ sender, System::Eve listBox_Mods->SelectedIndex = listBox_Mods->FindString(gcnew String(mpstr)); free(mpstr); } +#endif private: System::Void label_Update_1_Click(System::Object^ sender, System::EventArgs^ e) { } }; diff --git a/source-code/source/plugins/Novidia/Novidia.vcxproj b/source-code/source/plugins/Novidia/Novidia.vcxproj index bc98675..9198abd 100644 --- a/source-code/source/plugins/Novidia/Novidia.vcxproj +++ b/source-code/source/plugins/Novidia/Novidia.vcxproj @@ -5,6 +5,10 @@ Debug x64 + + Minimalist + x64 + Release x64 @@ -31,6 +35,13 @@ true Unicode + + DynamicLibrary + false + v142 + true + Unicode + @@ -42,6 +53,9 @@ + + + true @@ -51,6 +65,10 @@ false .dva + + false + .dva + Level3 @@ -87,6 +105,26 @@ opengl32.lib;detours.lib;syelog.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + Level3 + true + true + true + MINIMALIST;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + ..\..\..\dependencies\GPUModel;..\..\..\dependencies\xdelta3;..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include; + -d2FH4- /utf-8 %(AdditionalOptions) + + + Console + true + true + true + ..\..\..\dependencies\detours\lib;%(AdditionalLibraryDirectories) + opengl32.lib;detours.lib;syelog.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + diff --git a/source-code/source/plugins/ShaderPatch/ShaderPatch.vcxproj b/source-code/source/plugins/ShaderPatch/ShaderPatch.vcxproj index e8df705..97c8855 100644 --- a/source-code/source/plugins/ShaderPatch/ShaderPatch.vcxproj +++ b/source-code/source/plugins/ShaderPatch/ShaderPatch.vcxproj @@ -5,6 +5,10 @@ Debug x64 + + Minimalist + x64 + Release x64 @@ -29,6 +33,13 @@ true MultiByte + + DynamicLibrary + false + v142 + true + MultiByte + @@ -40,6 +51,9 @@ + + + .dva @@ -47,6 +61,9 @@ .dva + + .dva + Level3 @@ -78,6 +95,25 @@ -d2:-FH4- %(AdditionalOptions) + + + Level3 + MaxSpeed + true + true + true + ..\..\..\dependencies\GPUModel;..\..\..\dependencies\detours\include;..\..\..\dependencies\PluginConfigApi + MultiThreadedDLL + -d2FH4- /utf-8 %(AdditionalOptions) + MINIMALIST;_WINDLL;%(PreprocessorDefinitions) + + + true + true + ..\..\..\dependencies\detours\lib + -d2:-FH4- %(AdditionalOptions) + + diff --git a/source-code/source/plugins/TLAC/Components/Input/InputEmulator.cpp b/source-code/source/plugins/TLAC/Components/Input/InputEmulator.cpp index ec29b6f..7cff089 100644 --- a/source-code/source/plugins/TLAC/Components/Input/InputEmulator.cpp +++ b/source-code/source/plugins/TLAC/Components/Input/InputEmulator.cpp @@ -50,6 +50,8 @@ namespace TLAC::Components delete CoinBinding; + delete ToonBinding; + delete WireframeBinding; } @@ -87,6 +89,8 @@ namespace TLAC::Components CoinBinding = new Binding(); + ToonBinding = new Binding(); + WireframeBinding = new Binding(); FileSystem::ConfigFile configFile(framework::GetModuleDirectory(), KEY_CONFIG_FILE_NAME); @@ -106,6 +110,7 @@ namespace TLAC::Components Config::BindConfigKeys(configFile.ConfigMap, "MENU_L", *MenuLBinding, { "Left", "Up" }); Config::BindConfigKeys(configFile.ConfigMap, "MENU_R", *MenuRBinding, { "Down", "Right" }); Config::BindConfigKeys(configFile.ConfigMap, "MENU_CIRCLE", *MenuCircleBinding, { "D", "L", "Spacebar" }); + Config::BindConfigKeys(configFile.ConfigMap, "TOON", *ToonBinding, { "F9" }); Config::BindConfigKeys(configFile.ConfigMap, "COIN", *CoinBinding, { "F10" }); Config::BindConfigKeys(configFile.ConfigMap, "WIREFRAME", *WireframeBinding, { "F12" }); @@ -179,6 +184,9 @@ namespace TLAC::Components if (CoinBinding->AnyTapped()) addCoin(); + if (ToonBinding->AnyTapped()) + toggleNpr1(); + if (WireframeBinding->AnyTapped()) toggleWireframe(); } @@ -355,9 +363,6 @@ namespace TLAC::Components if (keyboard->IsIntervalTapped(VK_SPACE)) inputKey = 0x20; - if (keyboard->IsIntervalTapped(VK_F9)) - toggleNpr1(); - if (keyboard->IsDoubleTapped(VK_ESCAPE)) *(bool*)SHOULD_EXIT_BOOL_ADDRESS = true; diff --git a/source-code/source/plugins/TLAC/Components/Input/InputEmulator.h b/source-code/source/plugins/TLAC/Components/Input/InputEmulator.h index 2c266e3..3efc766 100644 --- a/source-code/source/plugins/TLAC/Components/Input/InputEmulator.h +++ b/source-code/source/plugins/TLAC/Components/Input/InputEmulator.h @@ -40,6 +40,8 @@ namespace TLAC::Components Input::Binding* CoinBinding; + Input::Binding* ToonBinding; + Input::Binding* WireframeBinding; InputEmulator(); diff --git a/source-code/source/plugins/TLAC/TLAC.vcxproj b/source-code/source/plugins/TLAC/TLAC.vcxproj index 4209e81..d25d637 100644 --- a/source-code/source/plugins/TLAC/TLAC.vcxproj +++ b/source-code/source/plugins/TLAC/TLAC.vcxproj @@ -5,6 +5,10 @@ Debug x64 + + Minimalist + x64 + Release x64 @@ -31,6 +35,13 @@ true Unicode + + DynamicLibrary + false + v142 + true + Unicode + @@ -42,12 +53,20 @@ + + + false $(ProjectName) .dva + + false + $(ProjectName) + .dva + true $(ProjectName) @@ -82,6 +101,35 @@ -d2:-FH4- %(AdditionalOptions) + + + NotUsing + Level3 + MaxSpeed + true + true + true + MINIMALIST;NDEBUG;TLAC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + + + stdcpp17 + ..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories) + MultiThreadedDLL + -d2FH4- /utf-8 %(AdditionalOptions) + + + Windows + true + true + true + false + XINPUT9_1_0.LIB;dinput8.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + Xinput.h + ..\..\..\dependencies\detours\lib;..\..\..\dependencies\freeglut\lib;%(AdditionalLibraryDirectories) + -d2:-FH4- %(AdditionalOptions) + + NotUsing