diff --git a/extras/menus/vshmenu/advanced.c b/extras/menus/vshmenu/advanced.c index 06ff95f1d..4cb02c154 100644 --- a/extras/menus/vshmenu/advanced.c +++ b/extras/menus/vshmenu/advanced.c @@ -533,6 +533,8 @@ int submenu_ctrl(u32 button_on) { return 13; // Import Classic Plugins flag case SUBMENU_DELETE_HIBERNATION: return 10; // Delete Hibernation flag + case SUBMENU_RESET_ARK_SETTINGS: + return 15; // Reset ARK Settings flag case SUBMENU_RANDOM_GAME: return 14; // Random Game flag case SUBMENU_ACTIVATE_FLASH_WMA: diff --git a/extras/menus/vshmenu/config.c b/extras/menus/vshmenu/config.c index 82e95ad17..88dd23fdd 100644 --- a/extras/menus/vshmenu/config.c +++ b/extras/menus/vshmenu/config.c @@ -174,6 +174,32 @@ void config_recreate_umd_keys(void) { kuKernelCall(hookImport, &args); } + +void reset_ark_settings(vsh_Menu *vsh){ + const char settings[] = "always, usbcharge, on\nalways, overclock, on\nalways, powersave, off\nalways, defaultclock, off\nalways, launcher, off\nalways, disablepause, off\nalways, highmem, off\nalways, mscache, on\nalways, infernocache:lru, on\nalways, oldplugin, on\nalways, skiplogos, off\nalways, hidepics, off\nalways, hibblock, on\nalways, hidemac, on\nalways, hidedlc, off\nalways, noled, off\nalways, noumd, off\nalways, noanalog, off\nalways, qaflags, on\n# Luxor doesn't like Inferno Cache\nULUS10201, infernocache, off"; + + char arkMenuPath[ARK_PATH_SIZE]; + char arkSettingsPath[ARK_PATH_SIZE]; + scePaf_strcpy(arkMenuPath, vsh->config.ark.arkpath); + scePaf_strcpy(arkSettingsPath, vsh->config.ark.arkpath); + strcat(arkMenuPath, "ARKMENU.BIN"); + strcat(arkSettingsPath, "SETTINGS.TXT"); + int fd = sceIoOpen(arkMenuPath, PSP_O_RDONLY, 0); + if(fd) { + sceIoClose(fd); + sceIoRemove(arkMenuPath); + sceIoRemove(arkSettingsPath); + sceKernelDelayThread(8000); + int settings_file = sceIoOpen(arkSettingsPath, PSP_O_CREAT | PSP_O_WRONLY, 0777); + sceIoWrite(settings_file, settings, sizeof(settings)); + sceKernelDelayThread(8000); + sceIoClose(settings_file); + + } + vsh->status.reset_vsh = 1; + +} + void import_classic_plugins(vsh_Menu *vsh, int devpath) { SceUID game, vsh_id, pops, plugins; int i = 0; diff --git a/extras/menus/vshmenu/include/advanced.h b/extras/menus/vshmenu/include/advanced.h index bb5a85d3e..6542cbcf5 100644 --- a/extras/menus/vshmenu/include/advanced.h +++ b/extras/menus/vshmenu/include/advanced.h @@ -46,6 +46,7 @@ enum { SUBMENU_IMPORT_CLASSIC_PLUGINS, SUBMENU_ACTIVATE_FLASH_WMA, SUBMENU_DELETE_HIBERNATION, + SUBMENU_RESET_ARK_SETTINGS, SUBMENU_RANDOM_GAME, SUBMENU_GO_BACK, SUBMENU_MAX diff --git a/extras/menus/vshmenu/include/common.h b/extras/menus/vshmenu/include/common.h index 9b6d33798..9e1b41bd9 100644 --- a/extras/menus/vshmenu/include/common.h +++ b/extras/menus/vshmenu/include/common.h @@ -55,6 +55,7 @@ enum { MSG_IMPORT_CLASSIC_PLUGINS, MSG_ACTIVATE_FLASH_WMA, MSG_DELETE_HIBERNATION, + MSG_RESET_ARK_SETTINGS, MSG_RANDOM_GAME, MSG_GO_BACK, MSG_NO_HIBERNATION, diff --git a/extras/menus/vshmenu/main.c b/extras/menus/vshmenu/main.c index f3a12f7b9..608d61356 100644 --- a/extras/menus/vshmenu/main.c +++ b/extras/menus/vshmenu/main.c @@ -237,6 +237,9 @@ int TSRThread(SceSize args, void *argp) { config_check(vsh); exec_random_game(vsh); break; + case 15: + reset_ark_settings(vsh); + break; } config_check(vsh); diff --git a/extras/menus/vshmenu/trans_en.c b/extras/menus/vshmenu/trans_en.c index 659fe17cf..3fe5e561f 100644 --- a/extras/menus/vshmenu/trans_en.c +++ b/extras/menus/vshmenu/trans_en.c @@ -57,6 +57,7 @@ const char *g_messages_en[] = { "IMPORT CLASSIC PLUGINS", "ACTIVATE FLASH AND WMA", "DELETE HIBERNATION", + "RESET ARK SETTINGS", "BOOT RANDOM ISO", "GO BACK", "NO HIBERNATION SUPPORT",