Quick Startup; Novidia disabled by default; Credits now require coins if Freeplay is disabled on 7.10
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user