diff --git a/appveyor.yml b/appveyor.yml
index 68df3d6..4114e4f 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -14,20 +14,10 @@ after_build:
md %TMP%\full\plugins\
- md %TMP%\full\plugins\pv_equip\
-
md %TMP%\full\ram\
- md %TMP%\full\ram\databank\
-
- md %TMP%\update\
-
- md %TMP%\update\patches\
-
- md %TMP%\update\plugins\
-
- md %TMP%\update\plugins\pv_equip\
-
+ md %TMP%\full\ram\databank_template\
+
md %TMP%\amd-pack\
md %TMP%\amd-pack\plugins\
@@ -40,27 +30,7 @@ after_build:
- copy %APPVEYOR_BUILD_FOLDER%\source-code\x64\%CONFIGURATION%\dinput8.dll %TMP%\update\
-
- copy %APPVEYOR_BUILD_FOLDER%\source-code\x64\%CONFIGURATION%\*.dva %TMP%\update\plugins\
-
- del %TMP%\update\plugins\Novidia.dva
-
- copy "%APPVEYOR_BUILD_FOLDER%\source-code\data\README - PD Loader.url" %TMP%\update\
-
- copy %APPVEYOR_BUILD_FOLDER%\source-code\data\verify_base_game.sfv %TMP%\update\
-
- copy %APPVEYOR_BUILD_FOLDER%\source-code\data\verify_base_game.md5 %TMP%\update\
-
- copy %APPVEYOR_BUILD_FOLDER%\source-code\data\verify_mount_data.sfv %TMP%\update\
-
- copy %APPVEYOR_BUILD_FOLDER%\source-code\data\verify_mount_data.md5 %TMP%\update\
-
- copy %APPVEYOR_BUILD_FOLDER%\source-code\data\plugins\ShaderPatch.ini %TMP%\update\plugins\
-
- copy %APPVEYOR_BUILD_FOLDER%\source-code\data\patches\custom_freeplay_text_example.p %TMP%\update\patches\
-
- copy %APPVEYOR_BUILD_FOLDER%\source-code\x64\%CONFIGURATION%\dinput8.dll %TMP%\full\
+ copy %APPVEYOR_BUILD_FOLDER%\source-code\x64\%CONFIGURATION%\dnsapi.dll %TMP%\full\
copy %APPVEYOR_BUILD_FOLDER%\source-code\x64\%CONFIGURATION%\*.dva %TMP%\full\plugins\
@@ -80,9 +50,7 @@ after_build:
copy %APPVEYOR_BUILD_FOLDER%\source-code\data\plugins\*.* %TMP%\full\plugins\
- copy %APPVEYOR_BUILD_FOLDER%\source-code\data\plugins\pv_equip\*.* %TMP%\full\plugins\pv_equip\
-
- copy %APPVEYOR_BUILD_FOLDER%\source-code\data\ram\databank\*.dat %TMP%\full\ram\databank\
+ 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\
@@ -98,28 +66,8 @@ after_build:
cd %TMP%\full\
- echo del dnsapi.dll > "DELETE DNSAPI.DLL.bat"
-
7z a %APPVEYOR_BUILD_FOLDER%\PD-Loader-%CONFIGURATION%-AppVeyor.zip *
-
- ren dinput8.dll dnsapi.dll
-
- del "DELETE DNSAPI.DLL.bat"
-
- 7z a %APPVEYOR_BUILD_FOLDER%\PD-Loader-%CONFIGURATION%-AppVeyor-Vista7.zip *
-
- cd %TMP%\update\
-
- echo del dnsapi.dll > "DELETE DNSAPI.DLL.bat"
-
- 7z a %APPVEYOR_BUILD_FOLDER%\PD-Loader-%CONFIGURATION%-Update-AppVeyor.zip *
-
- ren dinput8.dll dnsapi.dll
-
- del "DELETE DNSAPI.DLL.bat"
-
- 7z a %APPVEYOR_BUILD_FOLDER%\PD-Loader-%CONFIGURATION%-Update-AppVeyor-Vista7.zip *
-
+
cd %TMP%\amd-pack\amd-tools\
C:\Python38\python.exe -m pip install cx_freeze
diff --git a/source-code/data/plugins/DivaSound.ini b/source-code/data/plugins/DivaSound_template.bin
similarity index 100%
rename from source-code/data/plugins/DivaSound.ini
rename to source-code/data/plugins/DivaSound_template.bin
diff --git a/source-code/data/plugins/ShaderPatchConfig.ini b/source-code/data/plugins/ShaderPatchConfig_template.bin
similarity index 100%
rename from source-code/data/plugins/ShaderPatchConfig.ini
rename to source-code/data/plugins/ShaderPatchConfig_template.bin
diff --git a/source-code/data/plugins/ShaderPatch.ini b/source-code/data/plugins/ShaderPatch_template.bin
similarity index 100%
rename from source-code/data/plugins/ShaderPatch.ini
rename to source-code/data/plugins/ShaderPatch_template.bin
diff --git a/source-code/data/plugins/components.ini b/source-code/data/plugins/components_template.bin
similarity index 91%
rename from source-code/data/plugins/components.ini
rename to source-code/data/plugins/components_template.bin
index ac72645..8cfa27b 100644
--- a/source-code/data/plugins/components.ini
+++ b/source-code/data/plugins/components_template.bin
@@ -23,10 +23,6 @@ player_data_manager = true
# adjusts 2D and 3D animations to retain their original speed at different frame rates.
frame_rate_manager = false
-# sets an unlimited per session play count for the normal game mode.
-# this means the player won't be sent back to the title screen after 2 plays.
-stage_manager = false
-
# skip unnecessary DATA_INITIALIZE loading time, speed up SYSTEM_STARTUP and skip the startup WARNING message.
# further improvements can be achieved by shortening the duration of the pv_999 script file as it's test loaded during the SYSTEM_STARTUP.
fast_loader = true
diff --git a/source-code/data/plugins/config.ini b/source-code/data/plugins/config_template.bin
similarity index 100%
rename from source-code/data/plugins/config.ini
rename to source-code/data/plugins/config_template.bin
diff --git a/source-code/data/plugins/genericusbinput.ini b/source-code/data/plugins/genericusbinput.ini
deleted file mode 100644
index e58a7b4..0000000
--- a/source-code/data/plugins/genericusbinput.ini
+++ /dev/null
@@ -1,10 +0,0 @@
-#Check you Vendor ID and Product ID in Device Manager or dxdiag tool
-
-[genericusbinput]
-
-VID = 046D
-PID = C216
-
-[customkeymapping]
-
-GU_BUTTON8 = GU_BUTTON1 + GU_BUTTON2 + GU_BUTTON3 + GU_BUTTON4
diff --git a/source-code/data/plugins/keyconfig.ini b/source-code/data/plugins/keyconfig_template.bin
similarity index 97%
rename from source-code/data/plugins/keyconfig.ini
rename to source-code/data/plugins/keyconfig_template.bin
index e4a7ca4..840c8de 100644
--- a/source-code/data/plugins/keyconfig.ini
+++ b/source-code/data/plugins/keyconfig_template.bin
@@ -18,6 +18,11 @@ touch_slider_emulation_speed = 750.0
# Preferred Xinput controller (0-3)
xinput_preferred =0
+# DirectInput Vendor ID and Product ID
+# Check them in Device Manager or dxdiag.exe
+VID = 046D
+PID = C216
+
# Rumble (Xinput)
rumble =true
diff --git a/source-code/data/plugins/playerdata.ini b/source-code/data/plugins/playerdata_template.bin
similarity index 100%
rename from source-code/data/plugins/playerdata.ini
rename to source-code/data/plugins/playerdata_template.bin
diff --git a/source-code/data/plugins/pv_equip/modules.ini b/source-code/data/plugins/pv_equip/modules.ini
deleted file mode 100644
index 614255b..0000000
--- a/source-code/data/plugins/pv_equip/modules.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[modules]
-# Manual editing is NOT recommended as the game will save here during gameplay
\ No newline at end of file
diff --git a/source-code/data/plugins/pv_equip/sfx.ini b/source-code/data/plugins/pv_equip/sfx.ini
deleted file mode 100644
index 4334136..0000000
--- a/source-code/data/plugins/pv_equip/sfx.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[SFX]
-# INI Format = ' pv.xxx.btn = sfx id (ex. 5) '
-# pv.001.btn=2 for example
-# pv.xxx.btn, pv.xxx.chain, pv.xxx.slide & pv.xxx.touch can all be assigned using the format
\ No newline at end of file
diff --git a/source-code/data/plugins/pv_equip/skins.ini b/source-code/data/plugins/pv_equip/skins.ini
deleted file mode 100644
index 431c606..0000000
--- a/source-code/data/plugins/pv_equip/skins.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[skins]
-# INI Format = ' pv.xxx.skin = skin ID (ex. 123) '
-# pv.001.skin=100 for example
diff --git a/source-code/data/ram/databank/PvList0_SBZV_7.10_26176_1558979190.dat b/source-code/data/ram/databank_template/PvList0_SBZV_7.10_26176_1558979190.dat
similarity index 100%
rename from source-code/data/ram/databank/PvList0_SBZV_7.10_26176_1558979190.dat
rename to source-code/data/ram/databank_template/PvList0_SBZV_7.10_26176_1558979190.dat
diff --git a/source-code/data/ram/databank/PvList1_SBZV_7.10_48303_1558979196.dat b/source-code/data/ram/databank_template/PvList1_SBZV_7.10_48303_1558979196.dat
similarity index 100%
rename from source-code/data/ram/databank/PvList1_SBZV_7.10_48303_1558979196.dat
rename to source-code/data/ram/databank_template/PvList1_SBZV_7.10_48303_1558979196.dat
diff --git a/source-code/data/ram/databank/PvList2_SBZV_7.10_25220_1558979199.dat b/source-code/data/ram/databank_template/PvList2_SBZV_7.10_25220_1558979199.dat
similarity index 100%
rename from source-code/data/ram/databank/PvList2_SBZV_7.10_25220_1558979199.dat
rename to source-code/data/ram/databank_template/PvList2_SBZV_7.10_25220_1558979199.dat
diff --git a/source-code/data/ram/databank/PvList3_SBZV_7.10_51748_1558979202.dat b/source-code/data/ram/databank_template/PvList3_SBZV_7.10_51748_1558979202.dat
similarity index 100%
rename from source-code/data/ram/databank/PvList3_SBZV_7.10_51748_1558979202.dat
rename to source-code/data/ram/databank_template/PvList3_SBZV_7.10_51748_1558979202.dat
diff --git a/source-code/data/ram/databank/PvList4_SBZV_7.10_48392_1558979205.dat b/source-code/data/ram/databank_template/PvList4_SBZV_7.10_48392_1558979205.dat
similarity index 100%
rename from source-code/data/ram/databank/PvList4_SBZV_7.10_48392_1558979205.dat
rename to source-code/data/ram/databank_template/PvList4_SBZV_7.10_48392_1558979205.dat
diff --git a/source-code/source/PD-Loader/PD-Loader.vcxproj b/source-code/source/PD-Loader/PD-Loader.vcxproj
index aaec096..c8675a5 100644
--- a/source-code/source/PD-Loader/PD-Loader.vcxproj
+++ b/source-code/source/PD-Loader/PD-Loader.vcxproj
@@ -52,7 +52,7 @@
false
- dinput8
+ dnsapi
@@ -100,6 +100,10 @@
x64.def
-d2:-FH4- %(AdditionalOptions)
+
+
+
+
diff --git a/source-code/source/PD-Loader/dllmain.cpp b/source-code/source/PD-Loader/dllmain.cpp
index 17637c1..8a94733 100644
--- a/source-code/source/PD-Loader/dllmain.cpp
+++ b/source-code/source/PD-Loader/dllmain.cpp
@@ -1,5 +1,14 @@
#include "framework.h"
#include "exception.hpp"
+#include
+#include
+#pragma comment(lib, "Shlwapi.lib")
+#include
+#include
+#include
+#pragma comment(linker,"\"/manifestdependency:type='win32' \
+name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
+processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
HMODULE hm;
std::vector iniPaths;
@@ -180,7 +189,7 @@ void LoadDVA(std::wstring &path, LPCWSTR dir, LPCWSTR fileName)
default:
msg.append(L"\n\nAre all dependencies installed?");
}
- msg.append(L"\nPlease refer to the quick start guide or the wiki.");
+ msg.append(L"\nPlease refer to the quick start guide or the wiki.\n\nAlso, please note that 3rd-party plugins may require additional libraries.");
MessageBoxW(0, msg.c_str(), L"PD Loader", MB_ICONERROR);
}
}
@@ -718,12 +727,90 @@ LONG WINAPI CustomUnhandledExceptionFilter(LPEXCEPTION_POINTERS ExceptionInfo)
void Init()
{
+ SetProcessDPIAware();
+
+ auto dir = GetModuleFileNameW(hm).substr(0, GetModuleFileNameW(hm).find_last_of(L"/\\") + 1);
+ SetCurrentDirectoryW(dir.c_str());
+
std::wstring modulePath = GetModuleFileNameW(hm);
std::wstring moduleName = modulePath.substr(modulePath.find_last_of(L"/\\") + 1);
moduleName.resize(moduleName.find_last_of(L'.'));
modulePath.resize(modulePath.find_last_of(L"/\\") + 1);
iniPaths.emplace_back(modulePath + moduleName + L".ini");
- iniPaths.emplace_back(modulePath + L"plugins\\config.ini");
+ const auto CONFIG_FILE = L"plugins\\config.ini";
+ const auto CONFIG_FILE_TEMPLATE = L"plugins\\config_template.bin";
+ iniPaths.emplace_back(modulePath + CONFIG_FILE);
+
+
+ // initialize configuration files.
+ CopyFileW(CONFIG_FILE_TEMPLATE, CONFIG_FILE, true);
+ const auto COMPONENTS_TEMPLATE = L"plugins\\components_template.bin";
+ const auto COMPONENTS = L"plugins\\components.ini";
+ CopyFileW(COMPONENTS_TEMPLATE, COMPONENTS, true);
+ const auto KEYCONFIG_TEMPLATE = L"plugins\\keyconfig_template.bin";
+ const auto KEYCONFIG = L"plugins\\keyconfig.ini";
+ CopyFileW(KEYCONFIG_TEMPLATE, KEYCONFIG, true);
+ const auto PLAYERDATA_TEMPLATE = L"plugins\\playerdata_template.bin";
+ const auto PLAYERDATA = L"plugins\\playerdata.ini";
+ CopyFileW(PLAYERDATA_TEMPLATE, PLAYERDATA, true);
+ const auto DIVASOUND_TEMPLATE = L"plugins\\DivaSound_template.bin";
+ const auto DIVASOUND = L"plugins\\DivaSound.ini";
+ CopyFileW(DIVASOUND_TEMPLATE, DIVASOUND, true);
+ const auto SHADERPATCH_TEMPLATE = L"plugins\\ShaderPatch_template.bin";
+ const auto SHADERPATCH = L"plugins\\ShaderPatch.ini";
+ CopyFileW(SHADERPATCH_TEMPLATE, SHADERPATCH, true);
+ const auto SHADERPATCHCONFIG_TEMPLATE = L"plugins\\ShaderPatchConfig_template.bin";
+ const auto SHADERPATCHCONFIG = L"plugins\\ShaderPatchConfig.ini";
+ CopyFileW(SHADERPATCHCONFIG_TEMPLATE, SHADERPATCHCONFIG, true);
+
+ if ((PathFileExistsW(CONFIG_FILE_TEMPLATE) && !PathFileExistsW(CONFIG_FILE)) ||
+ (PathFileExistsW(COMPONENTS_TEMPLATE) && !PathFileExistsW(COMPONENTS)) ||
+ (PathFileExistsW(KEYCONFIG_TEMPLATE) && !PathFileExistsW(KEYCONFIG)) ||
+ (PathFileExistsW(PLAYERDATA_TEMPLATE) && !PathFileExistsW(PLAYERDATA)) ||
+ (PathFileExistsW(DIVASOUND_TEMPLATE) && !PathFileExistsW(DIVASOUND)) ||
+ (PathFileExistsW(SHADERPATCH_TEMPLATE) && !PathFileExistsW(SHADERPATCH)) ||
+ (PathFileExistsW(SHADERPATCHCONFIG_TEMPLATE) && !PathFileExistsW(SHADERPATCHCONFIG))
+ )
+ MessageBoxW(0, L"Could not install configuration files. Is the game in a read-only folder?", L"PD Loader", MB_ICONWARNING);
+
+ CreateDirectoryW(L"plugins\\pv_equip", NULL);
+ const auto eq_modules = L"plugins\\pv_equip\\modules.ini";
+ if (!PathFileExistsW(eq_modules))
+ {
+ std::ofstream stream(eq_modules);
+ stream << "[modules]\n# Manual editing is NOT recommended as the game will save here during gameplay";
+ stream.close();
+ }
+ const auto eq_sfx = L"plugins\\pv_equip\\sfx.ini";
+ if (!PathFileExistsW(eq_sfx))
+ {
+ std::ofstream stream(eq_sfx);
+ stream << "[SFX]\n# INI Format = ' pv.xxx.btn = sfx id (ex. 5) '\n# pv.001.btn=2 for example\n# pv.xxx.btn, pv.xxx.chain, pv.xxx.slide & pv.xxx.touch can all be assigned using the format";
+ stream.close();
+ }
+ const auto eq_skins = L"plugins\\pv_equip\\skins.ini";
+ if (!PathFileExistsW(eq_skins))
+ {
+ std::ofstream stream(eq_skins);
+ stream << "[skins]\n# INI Format = ' pv.xxx.skin = skin ID (ex. 123) '\n# pv.001.skin=100 for example";
+ stream.close();
+ }
+
+ const std::filesystem::path databank_template = L"ram\\databank_template";
+ const std::filesystem::path databank = L"ram\\databank";
+ if (!std::filesystem::exists(databank)&&std::filesystem::exists(databank_template))
+ {
+ try
+ {
+ std::filesystem::create_directories(databank);
+ std::filesystem::copy(databank_template, databank, std::filesystem::copy_options::recursive);
+ }
+ catch (std::exception& e)
+ {
+ std::cout << "[PD Loader] databank copy exception: " << e.what() << std::endl;
+ MessageBoxW(0, L"Could not install databank files. Is the game in a read-only folder?\n\n", L"PD Loader", MB_ICONWARNING);
+ }
+ }
std::wstring m = GetModuleFileNameW(NULL);
m = m.substr(0, m.find_last_of(L"/\\") + 1) + L"logs";
@@ -745,19 +832,59 @@ void Init()
VirtualProtect(&SetUnhandledExceptionFilter, sizeof(ret), protect[0], &protect[1]);
}
-
- auto szSelfName = GetSelfName();
- if (iequals(szSelfName, L"dinput8.dll"))
+ DeleteFileW(L"~dinput8.dll");
+ std::wstring szSelfName = GetSelfName();
+ if (iequals(szSelfName, L"DINPUT8.dll"))
{
- auto dir = GetCurrentDirectoryW();
WIN32_FIND_DATAW fd;
HANDLE dnsloader = FindFirstFileW(L"dnsapi.dll", &fd);
if (dnsloader != INVALID_HANDLE_VALUE)
{
- MessageBoxW(0, L"PD Loader was loaded from dinput8.dll, but dnsapi.dll was found. Aborting.\nPlease refer to the quick start guide or the wiki.", L"PD Loader", MB_ICONERROR);
+ MessageBoxW(0, L"PD Loader was loaded from \"dinput8.dll\", but \"dnsapi.dll\" was found. Aborting.\nPlease refer to the quick start guide or the wiki.", L"PD Loader", MB_ICONERROR);
exit(1);
}
}
+ else if (iequals(szSelfName, L"DNSAPI.dll"))
+ {
+ WIN32_FIND_DATAW fd;
+ HANDLE dnsloader = FindFirstFileW(L"dinput8.dll", &fd);
+ if (dnsloader != INVALID_HANDLE_VALUE)
+ {
+ auto dinput_handle = GetModuleHandleW(L"DINPUT8.dll");
+ if (dinput_handle&&!FreeLibrary(dinput_handle))
+ {
+ MessageBoxW(0, L"PD Loader was loaded from \"dnsapi.dll\", but \"dinput8.dll\" was found and PD Loader could not unload it. Please delete \"dinput8.dll\".", L"PD Loader", MB_ICONERROR);
+ exit(1);
+ }
+ else if (!MoveFileExW(L"dinput8.dll", L"~dinput8.dll", MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH))
+ {
+ MessageBoxW(0, L"PD Loader was loaded from \"dnsapi.dll\", but \"dinput8.dll\" was found and PD Loader could not delete it automatically\nIs it read-only?", L"PD Loader", MB_ICONERROR);
+ exit(1);
+ }
+ }
+ if(IsWindows8OrGreater())
+ {
+ if (MoveFileExW(L"dnsapi.dll", L"dinput8.dll", MOVEFILE_REPLACE_EXISTING | MOVEFILE_WRITE_THROUGH))
+ {
+ WCHAR DIVA_EXECUTABLE[MAX_PATH];
+ GetModuleFileNameW(NULL, DIVA_EXECUTABLE, MAX_PATH);
+ LPWSTR DIVA_COMMAND_LINE = GetCommandLineW();
+ STARTUPINFOW si;
+ PROCESS_INFORMATION pi;
+ ZeroMemory(&si, sizeof(si));
+ si.cb = sizeof(si);
+ ZeroMemory(&pi, sizeof(pi));
+ CreateProcessW(DIVA_EXECUTABLE, DIVA_COMMAND_LINE, NULL, NULL, false, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
+ exit(0);
+ }
+ else MessageBoxW(0, L"It is highly recommended to rename \"dnsapi.dll\" \"dinput8.dll\" on Windows 8/8.1/10 to avoid issues, but PD Loader could not rename the file automatically.\nIs it read-only?", L"PD Loader", MB_ICONWARNING);
+ }
+ }
+ else
+ {
+ MessageBoxW(0, L"Supported file names:\n\"dnsapi.dll\" (Windows Vista/7)\n\"dinput8.dll\"", L"PD Loader", MB_ICONERROR);
+ exit(1);
+ }
LoadEverything();
diff --git a/source-code/source/plugins/Launcher/ConfigOption.h b/source-code/source/plugins/Launcher/ConfigOption.h
index 32d3ea0..4e2a12f 100644
--- a/source-code/source/plugins/Launcher/ConfigOption.h
+++ b/source-code/source/plugins/Launcher/ConfigOption.h
@@ -927,10 +927,15 @@ public:
int width = GetPrivateProfileIntW(_iniSectionName, _iniVarName, -39, _iniFilePath);
int height = GetPrivateProfileIntW(_iniSectionName, _iniVarName2, -39, _iniFilePath);
if (width == -39 || height == -39) {
- tempSysStr = Convert::ToInt32(_defaultVal.width).ToString() + L"x" + Convert::ToInt32(_defaultVal.height).ToString();
- combobox->Text = tempSysStr;
+ if (_defaultVal.width == -1 || _defaultVal.height == -1)
+ width = -1;
+ else
+ {
+ tempSysStr = Convert::ToInt32(_defaultVal.width).ToString() + L"x" + Convert::ToInt32(_defaultVal.height).ToString();
+ combobox->Text = tempSysStr;
+ }
}
- else if (width == -1 || height == -1) { // -1 -> Match window/screen
+ if (width == -1 || height == -1) { // -1 -> Match window/screen
if (_opts & RESOPT_INCLUDE_MATCH_WINDOW)
combobox->Text = RESOPT_MATCH_WINDOW_TEXT;
else if (_opts & RESOPT_INCLUDE_MATCH_SCREEN)
diff --git a/source-code/source/plugins/Launcher/framework.h b/source-code/source/plugins/Launcher/framework.h
index 8b5d168..87254b5 100644
--- a/source-code/source/plugins/Launcher/framework.h
+++ b/source-code/source/plugins/Launcher/framework.h
@@ -273,9 +273,7 @@ ConfigOptionBase* componentsArray[] = {
new BooleanOption(L"player_data_manager", COMPONENTS_SECTION, COMPONENTS_FILE, L"Player Data Manager", L"Loads user-defined values into the PlayerData struct.\nRequired for modules and game mode modifiers.", false, true),
- new BooleanOption(L"frame_rate_manager", COMPONENTS_SECTION, COMPONENTS_FILE, L"Frame Rate Manager", L"Adjusts animations to the correct speed at different frame rates.\nOnly needed when FPS isn't locket at 60.", false, true),
-
- new BooleanOption(L"stage_manager", COMPONENTS_SECTION, COMPONENTS_FILE, L"Stage Manager", L"Allows for playing unlimited songs per session.", false, true),
+ new BooleanOption(L"frame_rate_manager", COMPONENTS_SECTION, COMPONENTS_FILE, L"Frame Rate Manager", L"Adjusts animations to the correct speed at different frame rates.\nOnly needed when FPS isn't locked at 60.", false, true),
new BooleanOption(L"fast_loader", COMPONENTS_SECTION, COMPONENTS_FILE, L"Fast Loader", L"Skip or speed up unnecessary loading steps.", false, true),
diff --git a/source-code/source/plugins/Launcher/ui.h b/source-code/source/plugins/Launcher/ui.h
index 1f22ec2..169e8d8 100644
--- a/source-code/source/plugins/Launcher/ui.h
+++ b/source-code/source/plugins/Launcher/ui.h
@@ -33,17 +33,18 @@ namespace Launcher {
this->ClientSize = Drawing::Size(444, 323);
TabPadding^ tabpad = gcnew TabPadding(tabControl);
-
// if components.ini has no section name, add one
if (!IsLineInFile("[components]", COMPONENTS_FILE))
{
PrependFile("[components]\n", COMPONENTS_FILE);
+ *ComponentsConfigChanged = true;
}
// if playerdata.ini has no section name, add one
if (!IsLineInFile("[playerdata]", PLAYERDATA_FILE))
{
PrependFile("[playerdata]\n", PLAYERDATA_FILE);
+ *PlayerdataConfigChanged = true;
}
// if keyconfig.ini has no section name, add one
diff --git a/source-code/source/plugins/TLAC/Components/ComponentsManager.cpp b/source-code/source/plugins/TLAC/Components/ComponentsManager.cpp
index c505d9c..30f8a66 100644
--- a/source-code/source/plugins/TLAC/Components/ComponentsManager.cpp
+++ b/source-code/source/plugins/TLAC/Components/ComponentsManager.cpp
@@ -7,7 +7,6 @@
#include "PlayerDataManager.h"
#include "FrameRateManager.h"
#include "FastLoader.h"
-#include "StageManager.h"
#include "CameraController.h"
#include "DebugComponent.h"
#include "ScaleComponent.h"
@@ -43,7 +42,6 @@ namespace TLAC::Components
new FastLoader(),
new ScaleComponent(),
new ScoreSaver(),
- new StageManager(),
new CameraController(),
new DebugComponent(),
};
diff --git a/source-code/source/plugins/TLAC/Components/StageManager.cpp b/source-code/source/plugins/TLAC/Components/StageManager.cpp
deleted file mode 100644
index 91edff9..0000000
--- a/source-code/source/plugins/TLAC/Components/StageManager.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-#include "StageManager.h"
-#include "../Constants.h"
-#include
-
-namespace TLAC::Components
-{
- StageManager::StageManager()
- {
- }
-
- StageManager::~StageManager()
- {
- }
-
- const char* StageManager::GetDisplayName()
- {
- return "stage_manager";
- }
-
- void StageManager::Initialize(ComponentsManager*)
- {
- // add the offset between moving 2 into ebx and the start of the function
- int32_t* playCount = (int32_t*)(((uint8_t*)PLAYS_PER_SESSION_GETTER_ADDRESS) + 0x7);
-
- DWORD oldProtect;
- VirtualProtect(playCount, sizeof(int32_t), PAGE_EXECUTE_READWRITE, &oldProtect);
-
- // set 通常モード per session play count
- *playCount = GetPlayCount();
- }
-
- void StageManager::Update()
- {
- return;
- }
-
- int32_t StageManager::GetPlayCount()
- {
- return INT32_MAX;
- }
-}
\ No newline at end of file
diff --git a/source-code/source/plugins/TLAC/Components/StageManager.h b/source-code/source/plugins/TLAC/Components/StageManager.h
deleted file mode 100644
index c6ae946..0000000
--- a/source-code/source/plugins/TLAC/Components/StageManager.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma once
-#include "EmulatorComponent.h"
-#include
-
-namespace TLAC::Components
-{
- class StageManager : public EmulatorComponent
- {
- public:
- StageManager();
- ~StageManager();
-
- virtual const char* GetDisplayName() override;
-
- virtual void Initialize(ComponentsManager*) override;
- virtual void Update() override;
-
- private:
- int32_t GetPlayCount();
- };
-}
\ No newline at end of file
diff --git a/source-code/source/plugins/TLAC/Input/DirectInput/GenericUsb/GenericUsbInput.cpp b/source-code/source/plugins/TLAC/Input/DirectInput/GenericUsb/GenericUsbInput.cpp
index 8a7983e..eb0e4a7 100644
--- a/source-code/source/plugins/TLAC/Input/DirectInput/GenericUsb/GenericUsbInput.cpp
+++ b/source-code/source/plugins/TLAC/Input/DirectInput/GenericUsb/GenericUsbInput.cpp
@@ -5,7 +5,7 @@
#include "../../../FileSystem/ConfigFile.h"
#include
-const std::string GU_CONFIG_FILE_NAME = "genericusbinput.ini";
+const std::string GU_CONFIG_FILE_NAME = "keyconfig.ini";
namespace TLAC::Input
{
diff --git a/source-code/source/plugins/TLAC/TLAC.vcxproj b/source-code/source/plugins/TLAC/TLAC.vcxproj
index 46efea8..9d088f2 100644
--- a/source-code/source/plugins/TLAC/TLAC.vcxproj
+++ b/source-code/source/plugins/TLAC/TLAC.vcxproj
@@ -133,7 +133,6 @@
-
@@ -192,7 +191,6 @@
-
diff --git a/source-code/source/plugins/TLAC/TLAC.vcxproj.filters b/source-code/source/plugins/TLAC/TLAC.vcxproj.filters
index 836d77b..2066332 100644
--- a/source-code/source/plugins/TLAC/TLAC.vcxproj.filters
+++ b/source-code/source/plugins/TLAC/TLAC.vcxproj.filters
@@ -51,9 +51,6 @@
Header Files
-
- Header Files
-
Header Files
@@ -245,9 +242,6 @@
Source Files
-
- Source Files
-
Source Files