Quick Startup; Novidia disabled by default; Credits now require coins if Freeplay is disabled on 7.10

This commit is contained in:
nastys
2020-08-05 02:34:45 +02:00
parent 93b8038554
commit 2852312cba
3 changed files with 59 additions and 30 deletions
+24 -19
View File
@@ -7,7 +7,7 @@
Enable=1
[GPU]
# Force GPU model (-1=auto; 0=Kepler; 1=Maxwell; 2=Turing)
# Force GPU model -- -1=auto, 0=Kepler, 1=Maxwell, 2=Turing
Model=-1
[Launcher]
@@ -25,38 +25,40 @@ Command_Line=
Use_divahook_bat=0
[Patches]
#Disable movies (enable this if the game hangs when loading certain PVs)
No_Movies=0
#Enable custom MP4 adv movies (experimental)
MP4_Movies=1
#Enable or disable mouse cursor
Cursor=1
#Use 2 channels instead of 4 (when not using DivaSound)
Stereo=1
#Skip one or more menus -- 0=disabled, 1=guest, 2=guest+normal
Quick_Start=1
#Disable the scrolling sound effect
No_Scrolling_SFX=0
#Hide the volume and SE control buttons
Hide_Volume=0
#Remove the photo controls during PV playback
No_PV_UI=0
#Hide the watermark that's usually shown in PV viewing mode
Hide_PV_Watermark=0
#Set the card reader and network status icons -- 0=default, 1=hidden, 2=error, 3=OK, 4=partial OK
Status_Icons=0
#Disable showing lyrics
No_Lyrics=0
#Disable the error banner
No_Error=1
#Hide "CREDIT(S)"/"FREE PLAY"
Hide_Freeplay=0
#Show "FREE PLAY" instead of "CREDIT(S)"
Freeplay=1
#Show "PD Loader <version>" instead of "FREE PLAY"
PDLoaderText=1
#Set the card reader and network status icons -- 0=default, 1=hidden, 2=error, 3=OK, 4=partial OK
Status_Icons=0
#Hide the watermark that's usually shown in PV viewing mode
Hide_PV_Watermark=0
#Permanently the photo controls during PV playback
No_PV_UI=0
#Disable showing lyrics
No_Lyrics=0
#Disable movies (enable this if the game hangs when loading certain PVs)
No_Movies=0
#Enable custom MP4 adv movies (experimental)
MP4_Movies=1
#Hide the volume and SE control buttons
Hide_Volume=0
#Disable the error banner
No_Error=1
#Freeze the timer
No_Timer=1
#Disable the timer sprite
No_Timer_Sprite=1
#Allow using a real arcade slider attached to COM11
Hardware_Slider=0
#Enhanced Stage Manager (sets a custom number of stages; "stage_manager" should be disabled in "components.ini")
#Number of stages (0 = disabled)
Enhanced_Stage_Manager=0
@@ -66,6 +68,8 @@ Enhanced_Stage_Manager_Encore=1
Unlock_Pseudo=0
#Enable the card menu (incomplete, it doesn't bypass the card prompt)
Card=1
#Allow using a real arcade slider attached to COM11
Hardware_Slider=0
#Enable custom patches
Custom_Patches=1
@@ -109,3 +113,4 @@ r.Height=1080
[plugins]
DivaWig.dva=0
DSCRemote.dva=0
Novidia.dva=0
@@ -159,25 +159,27 @@ ConfigOptionBase* internalResolutionArray[] = {
};
ConfigOptionBase* optionsArray[] = {
new BooleanOption(L"hide_freeplay", PATCHES_SECTION, CONFIG_FILE, L"Hide \"FREE PLAY\"/\"CREDIT(S)\"", L"Hide the \"FREE PLAY\"/\"CREDIT(S)\" text.", false, false),
new BooleanOption(L"freeplay", PATCHES_SECTION, CONFIG_FILE, L"FREE PLAY", L"Show \"FREE PLAY\" instead of \"CREDIT(S)\".", true, false),
new BooleanOption(L"pdloadertext", PATCHES_SECTION, CONFIG_FILE, L"PD Loader FREE PLAY", L"Show \"PD Loader\" instead of \"FREE PLAY\".", true, false),
new OptionMetaSpacer(8),
new BooleanOption(L"no_movies", PATCHES_SECTION, CONFIG_FILE, L"Disable Movies", L"Disable movies (enable this if the game hangs when loading certain PVs).", false, false),
new BooleanOption(L"mp4_movies", PATCHES_SECTION, CONFIG_FILE, L"Custom MP4 Adv Movies", L"Enable MP4 (instead of WMV) advertise/attract movies.", false, false),
new OptionMetaSpacer(8),
new BooleanOption(L"cursor", PATCHES_SECTION, CONFIG_FILE, L"Cursor", L"Enable or disable the mouse cursor.", true, false),
new BooleanOption(L"stereo", PATCHES_SECTION, CONFIG_FILE, L"Stereo", L"Use 2 channels instead of 4 (when not using DivaSound).", true, false),
new OptionMetaSpacer(8),
new DropdownOption(L"quick_start", PATCHES_SECTION, CONFIG_FILE, L"Quick Start:", L"Skip one or more menus.", 1, std::vector<LPCWSTR>({ L"Disabled", L"Guest", L"Guest + Normal" })),
new BooleanOption(L"no_scrolling_sfx", PATCHES_SECTION, CONFIG_FILE, L"Disable Scrolling SFX", L"Disable the scrolling sound effect.", false, false),
new OptionMetaSpacer(8),
new BooleanOption(L"hide_volume", PATCHES_SECTION, CONFIG_FILE, L"Hide Volume Buttons", L"Hide the volume and SE control buttons.", false, false),
new BooleanOption(L"no_pv_ui", PATCHES_SECTION, CONFIG_FILE, L"Disable PV UI", L"Remove the photo controls during PV playback.", false, false),
new BooleanOption(L"hide_pv_watermark", PATCHES_SECTION, CONFIG_FILE, L"Hide PV Watermark", L"Hide the watermark that's usually shown in PV viewing mode.", false, false),
new DropdownOption(L"status_icons", PATCHES_SECTION, CONFIG_FILE, L"Status Icons:", L"Set the state of card reader and network status icons.", 3, std::vector<LPCWSTR>({ L"Default", L"Hidden", L"Error", L"OK", L"Partial OK" })),
new BooleanOption(L"no_lyrics", PATCHES_SECTION, CONFIG_FILE, L"Disable Lyrics", L"Disable showing lyrics.", false, false),
new BooleanOption(L"no_error", PATCHES_SECTION, CONFIG_FILE, L"Disable Error Banner", L"Disable the error banner on the attract screen.", true, false),
new BooleanOption(L"hide_freeplay", PATCHES_SECTION, CONFIG_FILE, L"Hide \"FREE PLAY\"/\"CREDIT(S)\"", L"Hide the \"FREE PLAY\"/\"CREDIT(S)\" text.", false, false),
new BooleanOption(L"freeplay", PATCHES_SECTION, CONFIG_FILE, L"FREE PLAY", L"Show \"FREE PLAY\" instead of \"CREDIT(S)\".", true, false),
new BooleanOption(L"pdloadertext", PATCHES_SECTION, CONFIG_FILE, L"PD Loader FREE PLAY", L"Show \"PD Loader\" instead of \"FREE PLAY\".", true, false),
new BooleanOption(L"no_timer", PATCHES_SECTION, CONFIG_FILE, L"Freeze Timer", L"Disable the timer.", true, false),
new BooleanOption(L"no_timer_sprite", PATCHES_SECTION, CONFIG_FILE, L"Disable Timer Sprite", L"Disable the timer sprite.", true, false),
new DropdownOption(L"status_icons", PATCHES_SECTION, CONFIG_FILE, L"Status Icons:", L"Set the state of card reader and network status icons.", 3, std::vector<LPCWSTR>({ L"Default", L"Hidden", L"Error", L"OK", L"Partial OK" })),
new OptionMetaSpacer(8),
new BooleanOption(L"Enhanced_Stage_Manager_Encore", PATCHES_SECTION, CONFIG_FILE, L"Encore Stages", L"Enable encore stages.", true, false),
@@ -198,7 +200,7 @@ ConfigOptionBase* optionsArray[] = {
new NumericOption(L"frm.motion.rate", GRAPHICS_SECTION, CONFIG_FILE, L"FRM Motion Rate:", L"Sets the motion rate (fps) for the Frame Rate Manager component.\nLarger values should be smoother, but more CPU intensive and possibly buggier.", 300, 1, INT_MAX),
new OptionMetaSpacer(8),
new BooleanOption(L"autopause", KEYCONFIG_SECTION, KEYCONFIG_FILE, L"Pause automatically", L"Pause when focus is lost.", true, true),
new BooleanOption(L"autopause", KEYCONFIG_SECTION, KEYCONFIG_FILE, L"Pause Automatically", L"Pause when focus is lost.", true, true),
new OptionMetaSpacer(8),
new BooleanOption(L"rumble", KEYCONFIG_SECTION, KEYCONFIG_FILE, L"XInput Rumble", L"Enables rumble during chainslides.", true, true),
+24 -2
View File
@@ -137,8 +137,6 @@ void ApplyPatches() {
};
const struct { void* Address; std::vector<uint8_t> Data; } patches_710[] =
{
// Always return true for the SelCredit enter SelPv check
{ (void*)0x0000000140393610, { 0xB0, 0x01, 0xC3, 0x90, 0x90, 0x90 } },
// Just completely ignore all SYSTEM_STARTUP errors
{ (void*)0x00000001403F5080, { 0xC3 } },
// Always exit TASK_MODE_APP_ERROR on the first frame
@@ -176,6 +174,8 @@ void ApplyPatches() {
{ (void*)0x0000000140136CFA,{ 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 } },
// enable module selector without use_card
{ (void*)0x00000001405C513B,{ 0x01 } },
// fix back button
{ (void*)0x0000000140578FB8, { 0xE9, 0x73, 0xFF, 0xFF, 0xFF } },
// Force Hide IDs
{ (void*)0x00000001409A5918, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
{ (void*)0x00000001409A5928, { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } },
@@ -224,6 +224,8 @@ void ApplyPatches() {
auto nMLAA = GetPrivateProfileIntW(L"graphics", L"mlaa", TRUE, CONFIG_FILE);
auto nStereo = GetPrivateProfileIntW(L"patches", L"stereo", TRUE, CONFIG_FILE);
auto nCustomPatches = GetPrivateProfileIntW(L"patches", L"custom_patches", TRUE, 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);
std::string version_string = std::to_string(game_version);
version_string.insert(version_string.begin()+1, '.');
@@ -577,6 +579,9 @@ void ApplyPatches() {
// Enable "FREE PLAY" mode
if (nFreeplay || nHideFreeplay)
{
// Always return true for the SelCredit enter SelPv check
InjectCode((void*)0x0000000140393610, { 0xB0, 0x01, 0xC3, 0x90, 0x90, 0x90 });
InjectCode((void*)0x00000001403BABEA, { 0x75 });
printf("[Patches] Show FREE PLAY instead of CREDIT(S)\n");
@@ -771,6 +776,23 @@ void ApplyPatches() {
// 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
{
InjectCode((void*)0x0000000140578EA9, { 0xE9, 0x8E, 0x00, 0x00, 0x00 });
}
else if (nQuickStart == 2) // skip everything; normal mode
{
InjectCode((void*)0x0000000140578EA9, { 0xE9, 0xF1, 0x00, 0x00, 0x00 });
InjectCode((void*)0x0000000140578E9D, { 0xC7, 0x47, 0x68, 0x28, 0x00, 0x00, 0x00 }); // skip back button error
}
}
// Disable scrolling sound effect
if (nNoScrollingSfx)
{
InjectCode((void*)0x00000001405C84B3, { 0x90, 0x90, 0x90, 0x90, 0x90 });
}
}