diff --git a/core/compat/pentazemin/syspatch.c b/core/compat/pentazemin/syspatch.c index 7a892715..f47afb1c 100644 --- a/core/compat/pentazemin/syspatch.c +++ b/core/compat/pentazemin/syspatch.c @@ -396,7 +396,7 @@ void AdrenalineOnModuleStart(SceModule2 * mod){ } if(strcmp(mod->modname, "game_plugin_module") == 0) { - if (se_config->skiplogos) { + if (se_config->skiplogos == 1 || se_config->skiplogos == 2) { patch_GameBoot(mod); } goto flush; @@ -409,7 +409,7 @@ void AdrenalineOnModuleStart(SceModule2 * mod){ if (strcmp(mod->modname, "vsh_module") == 0) { is_vsh = 1; - if (se_config->skiplogos){ + if (se_config->skiplogos == 1 || se_config->skiplogos == 2){ // patch GameBoot hookImportByNID(sceKernelFindModuleByName("sceVshBridge_Driver"), "sceDisplay_driver", 0x3552AB11, 0); } @@ -505,7 +505,7 @@ int StartModuleHandler(int modid, SceSize argsize, void * argp, int * modstatus, SceModule2* mod = (SceModule2*) sceKernelFindModuleByUID(modid); - if ((se_config->launcher_mode||se_config->skiplogos) && mod != NULL && 0 == strcmp(mod->modname, "vsh_module") ) { + if (mod && (se_config->launcher_mode || se_config->skiplogos == 1 || se_config->skiplogos == 3) && 0 == strcmp(mod->modname, "vsh_module") ) { u32* vshmain_args = oe_malloc(1024); memset(vshmain_args, 0, 1024); diff --git a/core/compat/psp/syspatch.c b/core/compat/psp/syspatch.c index 8d42c926..c238b8c2 100644 --- a/core/compat/psp/syspatch.c +++ b/core/compat/psp/syspatch.c @@ -287,7 +287,7 @@ void PSPOnModuleStart(SceModule2 * mod){ } if (strcmp(mod->modname, "game_plugin_module") == 0) { - if (se_config->skiplogos) { + if (se_config->skiplogos == 1 || se_config->skiplogos == 2) { patch_GameBoot(mod); } goto flush; @@ -315,7 +315,7 @@ void PSPOnModuleStart(SceModule2 * mod){ if (se_config->umdregion){ patch_vsh_region_check(mod); } - if (se_config->skiplogos){ + if (se_config->skiplogos == 1 || se_config->skiplogos == 2){ // patch GameBoot hookImportByNID(sceKernelFindModuleByName("sceVshBridge_Driver"), "sceDisplay_driver", 0x3552AB11, 0); } @@ -388,7 +388,7 @@ int StartModuleHandler(int modid, SceSize argsize, void * argp, int * modstatus, SceModule2* mod = (SceModule2*) sceKernelFindModuleByUID(modid); - if (se_config->skiplogos && mod != NULL && ark_config->launcher[0] == 0 && 0 == strcmp(mod->modname, "vsh_module") ) { + if (mod && (se_config->skiplogos == 1 || se_config->skiplogos == 3) && ark_config->launcher[0] == 0 && 0 == strcmp(mod->modname, "vsh_module") ) { u32* vshmain_args = oe_malloc(1024); memset(vshmain_args, 0, 1024); diff --git a/core/systemctrl/src/plugin.c b/core/systemctrl/src/plugin.c index 06a2feb3..560d578f 100644 --- a/core/systemctrl/src/plugin.c +++ b/core/systemctrl/src/plugin.c @@ -506,8 +506,13 @@ static void settingsHandler(char* path, u8 enabled){ else if (strcasecmp(path, "hibblock") == 0){ // block hibernation se_config.hibblock = enabled; } - else if (strcasecmp(path, "skiplogos") == 0){ // skip sony logo and gameboot + else if (strncasecmp(path, "skiplogos", 12) == 0){ + char* c = strchr(path, ':'); se_config.skiplogos = enabled; + if (enabled && c){ + if (strcasecmp(c+1, "gameboot") == 0) se_config.skiplogos = 2; + else if (strcasecmp(c+1, "coldboot") == 0) se_config.skiplogos = 3; + } } else if (strcasecmp(path, "hidemac") == 0){ // hide mac address se_config.hidemac = enabled; diff --git a/core/vshctrl/vshpatch.c b/core/vshctrl/vshpatch.c index 558d2cac..3aaf962b 100644 --- a/core/vshctrl/vshpatch.c +++ b/core/vshctrl/vshpatch.c @@ -100,7 +100,7 @@ static int vshpatch_module_chain(SceModule2 *mod) if(0 == strcmp(mod->modname, "sceVshBridge_Driver")) { - if (se_config->skiplogos){ + if (se_config->skiplogos == 1 || se_config->skiplogos == 2){ patch_Gameboot(mod); } diff --git a/extras/menus/arkMenu/include/ark_settings.h b/extras/menus/arkMenu/include/ark_settings.h index bbd94692..fc484c49 100644 --- a/extras/menus/arkMenu/include/ark_settings.h +++ b/extras/menus/arkMenu/include/ark_settings.h @@ -225,10 +225,10 @@ static struct { char* options[MAX_ARK_OPTIONS]; } skiplogos = { "Skip Sony logos in XMB", - 2, + 4, 0, &(cfw_config.skiplogos), - {"Off", "On"} + {"Off", "All", "GameBoot", "ColdBoot"} }; static struct { @@ -550,7 +550,7 @@ static unsigned char* configConvert(string conf){ else if (strcasecmp(conf.c_str(), "oldplugin") == 0){ return &(cfw_config.oldplugin); } - else if (strcasecmp(conf.c_str(), "skiplogos") == 0){ + else if (strncasecmp(conf.c_str(), "skiplogos", 9) == 0){ return &(cfw_config.skiplogos); } else if (strcasecmp(conf.c_str(), "hidepics") == 0){ @@ -629,6 +629,15 @@ static void processConfig(string line, string runlevel, string conf, string enab else if (strcasecmp(c+1, "rr") == 0) cfw_config.infernocache = 2; } } + else if (strncasecmp(conf.c_str(), "skiplogos", 9) == 0){ + char* c = strchr(conf.c_str(), ':'); + FIX_BOOLEAN(config); + cfw_config.skiplogos = config; + if (config && c){ + if (strcasecmp(c+1, "gameboot") == 0) cfw_config.skiplogos = 2; + else if (strcasecmp(c+1, "coldboot") == 0) cfw_config.skiplogos = 3; + } + } } else { if (strcasecmp(conf.c_str(), "overclock") == 0){ @@ -720,7 +729,6 @@ void loadSettings(){ FIX_BOOLEAN(cfw_config.launcher); FIX_BOOLEAN(cfw_config.highmem); FIX_BOOLEAN(cfw_config.disablepause); - FIX_BOOLEAN(cfw_config.skiplogos); FIX_BOOLEAN(cfw_config.hidepics); FIX_BOOLEAN(cfw_config.hibblock); FIX_BOOLEAN(cfw_config.hidemac); @@ -786,7 +794,12 @@ void saveSettings(){ output << processSetting("disablepause", cfw_config.disablepause) << endl; output << processSetting("oldplugin", cfw_config.oldplugin) << endl; output << processSetting("hibblock", cfw_config.hibblock) << endl; - output << processSetting("skiplogos", cfw_config.skiplogos) << endl; + switch (cfw_config.skiplogos){ + case 0: output << processSetting("skiplogos", 0) << endl; break; + case 1: output << processSetting("skiplogos", 1) << endl; break; + case 2: output << processSetting("skiplogos:gameboot", 1) << endl; break; + case 3: output << processSetting("skiplogos:coldboot", 1) << endl; break; + } output << processSetting("hidepics", cfw_config.hidepics) << endl; output << processSetting("hidemac", cfw_config.hidemac) << endl; output << processSetting("hidedlc", cfw_config.hidedlc) << endl; diff --git a/extras/menus/recovery/submenu.c b/extras/menus/recovery/submenu.c index e7d79ca1..c8092fa3 100644 --- a/extras/menus/recovery/submenu.c +++ b/extras/menus/recovery/submenu.c @@ -64,6 +64,13 @@ char* ark_settings_infernocache[] = { (char*)"RR" }; +char* ark_skiplogos_options[] = { + (char*)"Off", + (char*)"All", + (char*)"GameBoot", + (char*)"ColdBoot" +}; + // PSP 1K Setting settings_items_1k[] = { @@ -73,7 +80,7 @@ Setting settings_items_1k[] = { 2, &(config.launcher), "Autoboot Launcher", ark_settings_boolean }, { N_OPTS, &(config.mscache), "Memory Stick Speedup", ark_settings_options }, { 3, &(config.infernocache), "Inferno Cache", ark_settings_infernocache }, - { 2, &(config.skiplogos), "Skip Sony Logos", ark_settings_boolean }, + { 4, &(config.skiplogos), "Skip Sony Logos", ark_skiplogos_options }, { 2, &(config.hidepics), "Hide PIC0 and PIC1", ark_settings_boolean }, { 2, &(config.hidemac), "Hide MAC Address", ark_settings_boolean }, { 2, &(config.hidedlc), "Hide DLC", ark_settings_boolean }, @@ -96,7 +103,7 @@ Setting settings_items_slim[] = { 2, &(config.highmem), "Use Extra Memory", ark_settings_boolean2 }, { N_OPTS, &(config.mscache), "Memory Stick Speedup", ark_settings_options }, { 3, &(config.infernocache), "Inferno Cache", ark_settings_infernocache }, - { 2, &(config.skiplogos), "Skip Sony Logos", ark_settings_boolean }, + { 4, &(config.skiplogos), "Skip Sony Logos", ark_skiplogos_options }, { 2, &(config.hidepics), "Hide PIC0 and PIC1", ark_settings_boolean }, { 2, &(config.hidemac), "Hide MAC Address", ark_settings_boolean }, { 2, &(config.hidedlc), "Hide DLC", ark_settings_boolean }, @@ -122,7 +129,7 @@ Setting settings_items_go[] = { 2, &(config.disablepause), "Disable Pause Feature", ark_settings_boolean2 }, { N_OPTS, &(config.oldplugin), "Old Plugin Support on ef0", ark_settings_options }, { 2, &(config.hibblock), "Prevent hibernation deletion", ark_settings_boolean }, - { 2, &(config.skiplogos), "Skip Sony Logos", ark_settings_boolean }, + { 4, &(config.skiplogos), "Skip Sony Logos", ark_skiplogos_options }, { 2, &(config.hidepics), "Hide PIC0 and PIC1", ark_settings_boolean }, { 2, &(config.hidemac), "Hide MAC Address", ark_settings_boolean }, { 2, &(config.hidedlc), "Hide DLC", ark_settings_boolean }, @@ -143,7 +150,7 @@ Setting settings_items_street[] = { 2, &(config.highmem), "Use Extra Memory", ark_settings_boolean2 }, { N_OPTS, &(config.mscache), "Memory Stick Speedup", ark_settings_options }, { 3, &(config.infernocache), "Inferno Cache", ark_settings_infernocache }, - { 2, &(config.skiplogos), "Skip Sony Logos", ark_settings_boolean }, + { 4, &(config.skiplogos), "Skip Sony Logos", ark_skiplogos_options }, { 2, &(config.hidepics), "Hide PIC0 and PIC1", ark_settings_boolean }, { 2, &(config.hidedlc), "Hide DLC", ark_settings_boolean }, { N_OPTS, &(config.noled), "Turn off LEDs", ark_settings_options }, @@ -162,7 +169,7 @@ Setting settings_items_adr[] = { 2, &(config.highmem), "Use Extra Memory", ark_settings_boolean2 }, { N_OPTS, &(config.mscache), "Memory Stick Speedup", ark_settings_options }, { 3, &(config.infernocache), "Inferno Cache", ark_settings_infernocache }, - { 2, &(config.skiplogos), "Skip Sony Logos", ark_settings_boolean }, + { 4, &(config.skiplogos), "Skip Sony Logos", ark_skiplogos_options }, { 2, &(config.hidepics), "Hide PIC0 and PIC1", ark_settings_boolean }, { 2, &(config.hidemac), "Hide MAC Address", ark_settings_boolean }, { 2, &(config.hidedlc), "Hide DLC", ark_settings_boolean }, diff --git a/extras/modules/xmbctrl/config.c b/extras/modules/xmbctrl/config.c index f852011c..3fb7fc85 100644 --- a/extras/modules/xmbctrl/config.c +++ b/extras/modules/xmbctrl/config.c @@ -95,8 +95,14 @@ static int processConfigLine(char* runlevel, char* path, char* enabled){ config.oldplugin = opt; return 1; } - else if (strcasecmp(path, "skiplogos") == 0){ + else if (strncasecmp(path, "skiplogos", 9) == 0){ + char* c = strchr(path, ':'); + FIX_BOOLEAN(opt); config.skiplogos = opt; + if (opt && c){ + if (strcasecmp(c+1, "gameboot") == 0) config.skiplogos = 2; + else if (strcasecmp(c+1, "coldboot") == 0) config.skiplogos = 3; + } return 1; } else if (strcasecmp(path, "hidepics") == 0){ @@ -243,7 +249,13 @@ void saveSettings(){ processSetting(fd, line, "disablepause", config.disablepause); processSetting(fd, line, "oldplugin", config.oldplugin); processSetting(fd, line, "hibblock", config.hibblock); - processSetting(fd, line, "skiplogos", config.skiplogos); + //processSetting(fd, line, "skiplogos", config.skiplogos); + switch (config.skiplogos){ + case 0: processSetting(fd, line, "skiplogos", 0); break; + case 1: processSetting(fd, line, "skiplogos", 1); break; + case 2: processSetting(fd, line, "skiplogos:gameboot", 1); break; + case 3: processSetting(fd, line, "skiplogos:coldboot", 1); break; + } processSetting(fd, line, "hidepics", config.hidepics); processSetting(fd, line, "hidemac", config.hidemac); processSetting(fd, line, "hidedlc", config.hidedlc); diff --git a/extras/modules/xmbctrl/main.c b/extras/modules/xmbctrl/main.c index 44bf6c2b..189f719e 100644 --- a/extras/modules/xmbctrl/main.c +++ b/extras/modules/xmbctrl/main.c @@ -123,6 +123,13 @@ char* ark_clock_settings[] = { (char*)"PowerSave" }; +char* ark_skiplogos_settings[] = { + (char*)"Off", + (char*)"All", + (char*)"GameBoot", + (char*)"ColdBoot" +}; + char* ark_settings_boolean[] = { (char*)"Off", (char*)"On" @@ -162,7 +169,7 @@ struct { {2, ark_settings_boolean2}, // Disable Go Pause {N_OPTS, ark_settings_options}, // Old Plugins on ef0 {2, ark_settings_boolean}, // Prevent hib delete - {2, ark_settings_boolean}, // Skip Sony logos + {4, ark_skiplogos_settings}, // Skip Sony logos {2, ark_settings_boolean}, // Hide PIC0 and PIC1 {2, ark_settings_boolean}, // Hide MAC {2, ark_settings_boolean}, // Hide DLC