From 643e01944d3f962e9406330e23379189b6419593 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