From 792bff030b682cb886f3b2fb5a03e8038d730e3a Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 18 May 2023 09:10:50 -0400 Subject: [PATCH 1/7] Stop deletion of patch file if it doesn't exist --- functions/patching.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/functions/patching.sh b/functions/patching.sh index 9d4ec3c6..84fa4312 100644 --- a/functions/patching.sh +++ b/functions/patching.sh @@ -267,7 +267,9 @@ generate_single_patch() { local patch_file="$3" local system="$4" - rm "$patch_file" # Remove old patch file (maybe change this to create a backup instead?) + if [[ -f "$patch_file" ]]; then + rm "$patch_file" # Remove old patch file (maybe change this to create a backup instead?) + fi while read -r current_setting_line; # Look for changes from the original file to the modified one do From 3c6af3a2fe2ee8441f1b73625d19b5e618b50e62 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 18 May 2023 09:28:07 -0400 Subject: [PATCH 2/7] Update Xemu config file path --- functions/multi_user.sh | 4 ++-- functions/prepare_emulator.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/functions/multi_user.sh b/functions/multi_user.sh index 188a4467..08d9bf4d 100644 --- a/functions/multi_user.sh +++ b/functions/multi_user.sh @@ -161,10 +161,10 @@ multi_user_return_to_single_user() { mv -f "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg" "/var/config/retroarch/retroarch-core-options.cfg" # XEMU one-offs, because it stores its config in /var/data, not /var/config like everything else unlink "/var/config/xemu" - unlink "/var/data/xemu" + unlink "/var/data/xemu/xemu" mkdir -p "/var/config/xemu" mv -f "$multi_user_data_folder/$single_user/config/xemu"/{.[!.],}* "/var/config/xemu" - dir_prep "/var/config/xemu" "/var/data/xemu" + dir_prep "/var/config/xemu" "/var/data/xemu/xemu" mkdir -p "$saves_folder" mkdir -p "$states_folder" mv -f "$multi_user_data_folder/$single_user/saves"/{.[!.],}* "$saves_folder" diff --git a/functions/prepare_emulator.sh b/functions/prepare_emulator.sh index 9fc314c9..ec507349 100644 --- a/functions/prepare_emulator.sh +++ b/functions/prepare_emulator.sh @@ -515,11 +515,11 @@ prepare_emulator() { set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "eeprom_path" "$saves_folder/xbox/xemu/xbox-eeprom.bin" "xemu" "sys.files" set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "hdd_path" "'$bios_folder/xbox_hdd.qcow2'" "xemu" "sys.files" dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/config/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look - dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/data/xemu" + dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/data/xemu/xemu" else # Single-user actions rm -rf /var/config/xemu rm -rf /var/data/xemu - dir_prep "/var/config/xemu" "/var/data/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look + dir_prep "/var/config/xemu" "/var/data/xemu/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look cp -fv $emuconfigs/xemu/xemu.toml "$xemuconf" set_setting_value "$xemuconf" "screenshot_dir" "'$screenshots_folder'" "xemu" "General" set_setting_value "$xemuconf" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files" From d0d1034f5430fcab52d1757df2ecd5e7739de3e0 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 18 May 2023 10:23:05 -0400 Subject: [PATCH 3/7] Improve Cheevos logout Move Install RD Starter Pack to Dev Options menu Add texture packs folders to RA-Mesen, RA-Mupen64Plus, Duckstation, PCSX2 and PPSSPP Fix CLI Configurator exit trap --- functions/patching.sh | 2 +- functions/post_update.sh | 6 ++++++ functions/prepare_emulator.sh | 23 ++++++++++++++++++---- tools/configurator.sh | 37 +++++++++++++++++++++++------------ 4 files changed, 50 insertions(+), 18 deletions(-) diff --git a/functions/patching.sh b/functions/patching.sh index 84fa4312..32380327 100644 --- a/functions/patching.sh +++ b/functions/patching.sh @@ -2,7 +2,7 @@ set_setting_value() { # Function for editing settings - # USAGE: set_setting_value $setting_file "$setting_name" "$new_setting_value" $system $section_name(optional) + # USAGE: set_setting_value "$setting_file" "$setting_name" "$new_setting_value" "$system" "$section_name(optional)" local setting_name_to_change=$(sed -e 's^\\^\\\\^g;s^`^\\`^g' <<< "$2") local setting_value_to_change=$(sed -e 's^\\^\\\\^g;s^`^\\`^g' <<< "$3") diff --git a/functions/post_update.sh b/functions/post_update.sh index 98a219ca..5ce89e92 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -113,6 +113,12 @@ post_update() { dir_prep "$mods_folder/Citra" "/var/data/citra-emu/load/mods" dir_prep "$texture_packs_folder/Citra" "/var/data/citra-emu/load/textures" dir_prep "$mods_folder/Yuzu" "/var/data/yuzu/load" + dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks" + dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES" + dir_prep "$texture_packs_folder/PCSX2" "/var/config/PCSX2/textures" + dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64Plus/cache" + dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64Plus/hires_texture" + dir_prep "$texture_packs_folder/Duckstation" "/var/config/duckstation/textures" dir_prep "$rdhome/gamelists" "/var/config/emulationstation/.emulationstation/gamelists" diff --git a/functions/prepare_emulator.sh b/functions/prepare_emulator.sh index ec507349..be4d600b 100644 --- a/functions/prepare_emulator.sh +++ b/functions/prepare_emulator.sh @@ -59,12 +59,12 @@ prepare_emulator() { if [[ "$emulator" =~ ^(retroarch|RetroArch|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands - if [[ $multi_user_mode == "true" ]]; then + if [[ $multi_user_mode == "true" ]]; then # Multi-user actions rm -rf "$multi_user_data_folder/$SteamAppUser/config/retroarch" mkdir -p "$multi_user_data_folder/$SteamAppUser/config/retroarch" cp -fv $emuconfigs/retroarch/retroarch.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/" cp -fv $emuconfigs/retroarch/retroarch-core-options.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/" - else + else # Single-user actions rm -rf /var/config/retroarch mkdir -p /var/config/retroarch dir_prep "$bios_folder" "/var/config/retroarch/system" @@ -84,6 +84,7 @@ prepare_emulator() { set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch" set_setting_value "$raconf" "log_dir" "$logs_folder" "retroarch" fi + # Shared actions # PPSSPP echo "--------------------------------" @@ -105,11 +106,18 @@ prepare_emulator() { echo "-----------------------------------------------------------" cp -rf "/app/retrodeck/extras/MSX/Databases" "$bios_folder/Databases" cp -rf "/app/retrodeck/extras/MSX/Machines" "$bios_folder/Machines" + + dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks" + dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64Plus/cache" + dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64Plus/hires_texture" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands dir_prep "$bios_folder" "/var/config/retroarch/system" dir_prep "$logs_folder/retroarch" "/var/config/retroarch/logs" dir_prep "$rdhome/shaders/retroarch" "/var/config/retroarch/shaders" + dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks" + dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64Plus/cache" + dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64Plus/hires_texture" set_setting_value "$raconf" "savefile_directory" "$saves_folder" "retroarch" set_setting_value "$raconf" "savestate_directory" "$states_folder" "retroarch" set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch" @@ -213,7 +221,8 @@ prepare_emulator() { set_setting_value "$dolphinconf" "ISOPath0" "$roms_folder/wii" "dolphin" "General" set_setting_value "$dolphinconf" "ISOPath1" "$roms_folder/gc" "dolphin" "General" set_setting_value "$dolphinconf" "WiiSDCardPath" "$saves_folder/wii/dolphin/sd.raw" "dolphin" "General" - fi # Shared actions + fi + # Shared actions dir_prep "$saves_folder/gc/dolphin/EU" "/var/data/dolphin-emu/GC/EUR" # TODO: Multi-user one-off dir_prep "$saves_folder/gc/dolphin/US" "/var/data/dolphin-emu/GC/USA" # TODO: Multi-user one-off dir_prep "$saves_folder/gc/dolphin/JP" "/var/data/dolphin-emu/GC/JAP" # TODO: Multi-user one-off @@ -265,8 +274,9 @@ prepare_emulator() { set_setting_value "$duckstationconf" "Directory" "$saves_folder/psx/duckstation/memcards" "duckstation" "MemoryCards" set_setting_value "$duckstationconf" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList" fi - dir_prep "$saves_folder/psx/duckstation/memcards" "/var/config/duckstation/memcards" # TODO: This shouldn't be needed anymore, verify + # Shared actions dir_prep "$states_folder/psx/duckstation" "/var/config/duckstation/savestates" # This is hard-coded in Duckstation, always needed + dir_prep "$texture_packs_folder/Duckstation" "/var/config/duckstation/textures" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands set_setting_value "$duckstationconf" "SearchDirectory" "$bios_folder" "duckstation" "BIOS" @@ -275,6 +285,7 @@ prepare_emulator() { set_setting_value "$duckstationconf" "Directory" "$saves_folder/psx/duckstation/memcards" "duckstation" "MemoryCards" set_setting_value "$duckstationconf" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList" dir_prep "$states_folder/psx/duckstation" "/var/config/duckstation/savestates" # This is hard-coded in Duckstation, always needed + dir_prep "$texture_packs_folder/Duckstation" "/var/config/duckstation/textures" fi fi @@ -346,6 +357,7 @@ prepare_emulator() { # Shared actions mkdir -pv "$saves_folder/ps2/pcsx2/memcards" mkdir -pv "$states_folder/ps2/pcsx2" + dir_prep "$texture_packs_folder/PCSX2" "/var/config/PCSX2/textures" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands set_setting_value "$pcsx2conf" "Bios" "$bios_folder" "pcsx2" "Folders" @@ -353,6 +365,7 @@ prepare_emulator() { set_setting_value "$pcsx2conf" "SaveStates" "$states_folder/ps2/pcsx2" "pcsx2" "Folders" set_setting_value "$pcsx2conf" "MemoryCards" "$saves_folder/ps2/pcsx2/memcards" "pcsx2" "Folders" set_setting_value "$pcsx2conf" "RecursivePaths" "$roms_folder/ps2" "pcsx2" "GameList" + dir_prep "$texture_packs_folder/PCSX2" "/var/config/PCSX2/textures" fi fi @@ -384,11 +397,13 @@ prepare_emulator() { # Shared actions dir_prep "$saves_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/SAVEDATA" dir_prep "$states_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/PPSSPP_STATE" + dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands set_setting_value "$ppssppconf" "CurrentDirectory" "$roms_folder/psp" "ppsspp" "General" dir_prep "$saves_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/SAVEDATA" dir_prep "$states_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/PPSSPP_STATE" + dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES" fi fi diff --git a/tools/configurator.sh b/tools/configurator.sh index 45333176..4d21f8a5 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -12,7 +12,8 @@ source /app/libexec/global.sh # - Presets & Settings # - Global: Presets & Settings # - Enable/Disable widescreen -# - Log in to RetroAchievements +# - RetroAchievements Login +# - RetroAchievements Logout # - Enable/Disable RetroAchievements Hardcore Mode # - RetroArch: Presets & Settings # - Enable/Disable borders @@ -53,7 +54,6 @@ source /app/libexec/global.sh # - Compress Multiple Games - All Formats # - Compress All Games # - Install: RetroDECK Controller Profile -# - Install: RetroDECK Starter Pack # - Install: PS3 firmware # - RetroDECK: Troubleshooting # - Backup: RetroDECK Userdata @@ -85,6 +85,8 @@ source /app/libexec/global.sh # - Change Update channel # - Change Update check setting # - Browse the wiki +# - USB Import tool +# - Install: RetroDECK Starter Pack # DIALOG TREE FUNCTIONS @@ -178,7 +180,7 @@ configurator_global_presets_and_settings_dialog() { --column="Choice" --column="Action" \ "Enable/Disable Widescreen" "Enable or disable widescreen in supported systems" \ "RetroAchievements Login" "Log into the RetroAchievements service in supported systems" \ - "RetroAchievements Logout" "Disable RetroAchievements service in supported systems" \ + "RetroAchievements Logout" "Disable RetroAchievements service in ALL supported systems" \ "RetroAchievements Hardcore Mode" "Enable RetroAchievements hardcore mode (no cheats, rewind, save states etc.) in supported emulators" \ "Nintendo Button Layout" "Enable or disable Nintendo button layout (swapped A/B and X/Y) in supported systems" ) @@ -202,7 +204,12 @@ configurator_global_presets_and_settings_dialog() { ;; "RetroAchievements Logout" ) # This is a workaround to allow disabling cheevos without having to enter login credentials - change_preset_dialog "cheevos" + local cheevos_emulators=$(sed -n '/\[cheevos\]/, /\[/{ /\[cheevos\]/! { /\[/! p } }' $rd_conf | sed '/^$/d') + for emulator in $cheevos_emulators; do + set_setting_value "$rdconf" "$emulator" "false" "retrodeck" "cheevos" + build_preset_config "$emulator" "cheevos" + done + configurator_generic_dialog "RetroDECK Configurator Utility - RetroAchievements" "RetroAchievements has been disabled in all supported systems." configurator_global_presets_and_settings_dialog ;; @@ -484,7 +491,6 @@ configurator_retrodeck_tools_dialog() { "RetroDECK: Move Tool" "Move RetroDECK folders between internal/SD card or to a custom location" \ "RetroDECK: Compression Tool" "Compress games for systems that support it" \ "Install: RetroDECK Controller Profile" "Install the optional custom RetroDECK controller profile" \ - "Install: RetroDECK Starter Pack" "Install the optional RetroDECK starter pack" \ "Install: PS3 Firmware" "Download and install PS3 firmware for use with the RPCS3 emulator" ) case $choice in @@ -507,13 +513,6 @@ configurator_retrodeck_tools_dialog() { configurator_retrodeck_tools_dialog ;; - "Install: RetroDECK Starter Pack" ) - if [[ $(configurator_generic_question_dialog "Install: RetroDECK Starter Pack" "The RetroDECK creators have put together a collection of classic retro games you might enjoy!\n\nWould you like to have them automatically added to your library?") == "true" ]]; then - install_retrodeck_starterpack - fi - configurator_retrodeck_tools_dialog - ;; - "Install: PS3 Firmware" ) if [[ $(check_network_connectivity) == "true" ]]; then configurator_generic_dialog "RetroDECK Configurator - Install: PS3 firmware" "This tool will download firmware required by RPCS3 to emulate PS3 games.\n\nThe process will take several minutes, and the emulator will launch to finish the installation.\nPlease close RPCS3 manually once the installation is complete." @@ -1072,7 +1071,8 @@ configurator_developer_dialog() { "Change Update Channel" "Change between normal and cooker builds" \ "Change Update Check Setting" "Enable or disable online checks for new versions of RetroDECK" \ "Browse the Wiki" "Browse the RetroDECK wiki online" \ - "USB Import" "Prepare a USB device for ROMs or import an existing collection" ) + "USB Import" "Prepare a USB device for ROMs or import an existing collection" \ + "Install RetroDECK Starter Pack" "Install the optional RetroDECK starter pack" ) case $choice in @@ -1096,6 +1096,13 @@ configurator_developer_dialog() { configurator_usb_import_dialog ;; + "Install RetroDECK Starter Pack" ) + if [[ $(configurator_generic_question_dialog "Install: RetroDECK Starter Pack" "The RetroDECK creators have put together a collection of classic retro games you might enjoy!\n\nWould you like to have them automatically added to your library?") == "true" ]]; then + install_retrodeck_starterpack + fi + configurator_developer_dialog + ;; + "" ) # No selection made or Back button clicked configurator_welcome_dialog ;; @@ -1289,4 +1296,8 @@ trap 'launch_retrodeck_after_configurator_close' EXIT # START THE CONFIGURATOR +if [[ "$1" == "cli" ]]; then + launched_from_cli="true" +fi + configurator_welcome_dialog From 8520c1db92102a37d67ad83b201af6d3050f8fe7 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 18 May 2023 10:42:11 -0400 Subject: [PATCH 4/7] Add Citra & Yuzu to nintendo button layout preset --- emu-configs/defaults/retrodeck/presets/citra_presets.cfg | 7 +++++++ emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg | 7 +++++++ .../retrodeck/reference_lists/pretty_system_names.cfg | 2 ++ emu-configs/defaults/retrodeck/retrodeck.cfg | 2 ++ 4 files changed, 18 insertions(+) create mode 100644 emu-configs/defaults/retrodeck/presets/citra_presets.cfg create mode 100644 emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg diff --git a/emu-configs/defaults/retrodeck/presets/citra_presets.cfg b/emu-configs/defaults/retrodeck/presets/citra_presets.cfg new file mode 100644 index 00000000..84379ca3 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/citra_presets.cfg @@ -0,0 +1,7 @@ +config_file_format^citra +target_file^$citraconf +defaults_file^$emuconfigs/citra/qt-config.ini +change^nintendo_button_layout^profiles\1\button_a^button:1,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls +change^nintendo_button_layout^profiles\1\button_b^button:0,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls +change^nintendo_button_layout^profiles\1\button_x^button:3,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls +change^nintendo_button_layout^profiles\1\button_y^button:2,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls diff --git a/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg b/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg new file mode 100644 index 00000000..063a9b00 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg @@ -0,0 +1,7 @@ +config_file_format^yuzu +target_file^$yuzuconf +defaults_file^$emuconfigs/yuzu/qt-config.ini +change^nintendo_button_layout^player_0_button_a^pad:0,button:0,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls +change^nintendo_button_layout^player_0_button_b^pad:0,button:1,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls +change^nintendo_button_layout^player_0_button_x^pad:0,button:2,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls +change^nintendo_button_layout^player_0_button_y^pad:0,button:3,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls diff --git a/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg b/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg index 3de52da0..fb26b52c 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg @@ -1,3 +1,4 @@ +citra^Citra (Nintendo 3DS Standalone) duckstation^Duckstation (Sony Playstation Standalone) gb^Nintendo GameBoy gba^Nintendo GameBoy Advance @@ -9,3 +10,4 @@ pcsx2^PCSX2 (Sony Playstation 2 Standalone) psx_ra^Sony Playstation (RetroArch Core) retroarch^RetroArch (Multi-emulator Frontend) snes^Nintendo Super Nintendo +yuzu^Yuzu (Nintendo Switch Standalone) diff --git a/emu-configs/defaults/retrodeck/retrodeck.cfg b/emu-configs/defaults/retrodeck/retrodeck.cfg index 68536de5..a3ccf9a7 100644 --- a/emu-configs/defaults/retrodeck/retrodeck.cfg +++ b/emu-configs/defaults/retrodeck/retrodeck.cfg @@ -55,11 +55,13 @@ psx_ra=false snes=false [nintendo_button_layout] +citra=false gb=false gba=false gbc=false n64=false snes=false +yuzu=false [savestate_auto_load] retroarch=true From 9ea04038799634622ce221779586ec3f33699d1f Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 18 May 2023 11:38:20 -0400 Subject: [PATCH 5/7] Add PPSSPP to savestate_auto_load preset Add Citra/Dolphin/Duckstation/PCSX2/Primehack/Yuzu to ask_to_exit preset Reconfigure defaults and existing installs for proper preset functions Add Ask-to-Exit menu item in Configurator --- emu-configs/citra/qt-config.ini | 6 +++--- .../defaults/retrodeck/presets/citra_presets.cfg | 2 ++ .../defaults/retrodeck/presets/dolphin_presets.cfg | 4 ++++ .../retrodeck/presets/duckstation_presets.cfg | 1 + .../defaults/retrodeck/presets/pcsx2_presets.cfg | 1 + .../defaults/retrodeck/presets/ppsspp_presets.cfg | 4 ++++ .../defaults/retrodeck/presets/primehack_presets.cfg | 4 ++++ .../defaults/retrodeck/presets/yuzu_presets.cfg | 2 ++ .../reference_lists/pretty_system_names.cfg | 11 +++++++---- emu-configs/defaults/retrodeck/retrodeck.cfg | 9 +++++++++ emu-configs/dolphin/Dolphin.ini | 4 ++-- emu-configs/duckstation/settings.ini | 2 +- emu-configs/ppssppsdl/ppsspp.ini | 4 ++-- emu-configs/primehack/Dolphin.ini | 2 +- functions/global.sh | 6 +++++- functions/post_update.sh | 12 +++++++++++- tools/configurator.sh | 9 ++++++++- 17 files changed, 67 insertions(+), 16 deletions(-) create mode 100644 emu-configs/defaults/retrodeck/presets/dolphin_presets.cfg create mode 100644 emu-configs/defaults/retrodeck/presets/ppsspp_presets.cfg create mode 100644 emu-configs/defaults/retrodeck/presets/primehack_presets.cfg diff --git a/emu-configs/citra/qt-config.ini b/emu-configs/citra/qt-config.ini index cb966272..6a74fd56 100644 --- a/emu-configs/citra/qt-config.ini +++ b/emu-configs/citra/qt-config.ini @@ -474,8 +474,8 @@ Updater\update_on_close=false Updater\update_on_close\default=true calloutFlags=1 calloutFlags\default=false -confirmClose=true -confirmClose\default=true +confirmClose=false +confirmClose\default=false displayTitleBars=true displayTitleBars\default=true enable_discord_presence=true @@ -532,4 +532,4 @@ citra_username=RetroDECK enable_telemetry=false enable_telemetry\default=false web_api_url=https://api.citra-emu.org -web_api_url\default=true \ No newline at end of file +web_api_url\default=true diff --git a/emu-configs/defaults/retrodeck/presets/citra_presets.cfg b/emu-configs/defaults/retrodeck/presets/citra_presets.cfg index 84379ca3..9211d5c0 100644 --- a/emu-configs/defaults/retrodeck/presets/citra_presets.cfg +++ b/emu-configs/defaults/retrodeck/presets/citra_presets.cfg @@ -1,6 +1,8 @@ config_file_format^citra target_file^$citraconf defaults_file^$emuconfigs/citra/qt-config.ini +change^ask_to_exit^confirmClose^true^UI +change^ask_to_exit^confirmClose\default^true^UI change^nintendo_button_layout^profiles\1\button_a^button:1,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls change^nintendo_button_layout^profiles\1\button_b^button:0,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls change^nintendo_button_layout^profiles\1\button_x^button:3,engine:sdl,guid:030079f6de280000ff11000001000000,port:0^Controls diff --git a/emu-configs/defaults/retrodeck/presets/dolphin_presets.cfg b/emu-configs/defaults/retrodeck/presets/dolphin_presets.cfg new file mode 100644 index 00000000..234012e9 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/dolphin_presets.cfg @@ -0,0 +1,4 @@ +config_file_format^dolphin +target_file^$dolphinconf +defaults_file^$emuconfigs/dolphin/Dolphin.ini +change^ask_to_exit^ConfirmStop^True^Interface diff --git a/emu-configs/defaults/retrodeck/presets/duckstation_presets.cfg b/emu-configs/defaults/retrodeck/presets/duckstation_presets.cfg index d25d2deb..76c9f926 100644 --- a/emu-configs/defaults/retrodeck/presets/duckstation_presets.cfg +++ b/emu-configs/defaults/retrodeck/presets/duckstation_presets.cfg @@ -7,3 +7,4 @@ change^cheevos^Token^$cheevos_token^Cheevos change^cheevos^LoginTimestamp^$cheevos_login_timestamp^Cheevos change^cheevos_hardcore^ChallengeMode^true^Cheevos change^savestate_auto_save^SaveStateOnExit^true^Main +change^ask_to_exit^ConfirmPowerOff^true^Main diff --git a/emu-configs/defaults/retrodeck/presets/pcsx2_presets.cfg b/emu-configs/defaults/retrodeck/presets/pcsx2_presets.cfg index 829c66d2..ba01d17c 100644 --- a/emu-configs/defaults/retrodeck/presets/pcsx2_presets.cfg +++ b/emu-configs/defaults/retrodeck/presets/pcsx2_presets.cfg @@ -7,3 +7,4 @@ change^cheevos^Token^$cheevos_token^Achievements change^cheevos^LoginTimestamp^$cheevos_login_timestamp^Achievements change^cheevos_hardcore^ChallengeMode^true^Achievements change^savestate_auto_save^SaveStateOnShutdown^true^EmuCore +change^ask_to_exit^ConfirmShutdown^true^UI diff --git a/emu-configs/defaults/retrodeck/presets/ppsspp_presets.cfg b/emu-configs/defaults/retrodeck/presets/ppsspp_presets.cfg new file mode 100644 index 00000000..90094d5e --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/ppsspp_presets.cfg @@ -0,0 +1,4 @@ +config_file_format^ppsspp +target_file^$ppssppconf +defaults_file^$emuconfigs/PCSX2/PCSX2.ini +change^savestate_auto_load^AutoLoadSaveState^2^General diff --git a/emu-configs/defaults/retrodeck/presets/primehack_presets.cfg b/emu-configs/defaults/retrodeck/presets/primehack_presets.cfg new file mode 100644 index 00000000..3abf4ba5 --- /dev/null +++ b/emu-configs/defaults/retrodeck/presets/primehack_presets.cfg @@ -0,0 +1,4 @@ +config_file_format^primehack +target_file^$primehackconf +defaults_file^$emuconfigs/primehack/Dolphin.ini +change^ask_to_exit^ConfirmStop^True^Interface diff --git a/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg b/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg index 063a9b00..e6c915fc 100644 --- a/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg +++ b/emu-configs/defaults/retrodeck/presets/yuzu_presets.cfg @@ -1,6 +1,8 @@ config_file_format^yuzu target_file^$yuzuconf defaults_file^$emuconfigs/yuzu/qt-config.ini +change^ask_to_exit^confirmClose^true^UI +change^ask_to_exit^confirmClose\default^true^UI change^nintendo_button_layout^player_0_button_a^pad:0,button:0,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls change^nintendo_button_layout^player_0_button_b^pad:0,button:1,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls change^nintendo_button_layout^player_0_button_x^pad:0,button:2,port:0,guid:03000000de280000ff11000001000000,engine:sdl^Controls diff --git a/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg b/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg index fb26b52c..94bf763a 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/pretty_system_names.cfg @@ -1,13 +1,16 @@ -citra^Citra (Nintendo 3DS Standalone) -duckstation^Duckstation (Sony Playstation Standalone) +citra^Citra (Nintendo 3DS Standalone Emulator) +dolphin^Dolphin (GameCube / Wii Standalone Emulator) +duckstation^Duckstation (Sony Playstation Standalone Emulator) gb^Nintendo GameBoy gba^Nintendo GameBoy Advance gbc^Nintendo GameBoy Color genesis^Sega Genesis/Master System gg^Sega GameGear n64^Nintendo 64 -pcsx2^PCSX2 (Sony Playstation 2 Standalone) +pcsx2^PCSX2 (Sony Playstation 2 Standalone Emulator) +ppsspp^PPSSPP (Sony PSP Standalone Emulator) +primehack^Primehack (Metroid Prime Standalone Emulator) psx_ra^Sony Playstation (RetroArch Core) retroarch^RetroArch (Multi-emulator Frontend) snes^Nintendo Super Nintendo -yuzu^Yuzu (Nintendo Switch Standalone) +yuzu^Yuzu (Nintendo Switch Standalone Emulator) diff --git a/emu-configs/defaults/retrodeck/retrodeck.cfg b/emu-configs/defaults/retrodeck/retrodeck.cfg index a3ccf9a7..b821b596 100644 --- a/emu-configs/defaults/retrodeck/retrodeck.cfg +++ b/emu-configs/defaults/retrodeck/retrodeck.cfg @@ -64,9 +64,18 @@ snes=false yuzu=false [savestate_auto_load] +ppsspp=true retroarch=true [savestate_auto_save] duckstation=true pcsx2=true retroarch=true + +[ask_to_exit] +citra=false +dolphin=false +duckstation=false +pcsx2=false +primehack=false +yuzu=false diff --git a/emu-configs/dolphin/Dolphin.ini b/emu-configs/dolphin/Dolphin.ini index dddeea88..07a56ad8 100644 --- a/emu-configs/dolphin/Dolphin.ini +++ b/emu-configs/dolphin/Dolphin.ini @@ -51,10 +51,10 @@ DSPThread = True Backend = Pulse EnableJIT = False [Interface] -ConfirmStop = True +ConfirmStop = False CursorVisibility = 0 OnScreenDisplayMessages = True PauseOnFocusLost = True ShowActiveTitle = True UseBuiltinTitleDatabase = True -UsePanicHandlers = True \ No newline at end of file +UsePanicHandlers = True diff --git a/emu-configs/duckstation/settings.ini b/emu-configs/duckstation/settings.ini index 75136809..88f5c7c0 100644 --- a/emu-configs/duckstation/settings.ini +++ b/emu-configs/duckstation/settings.ini @@ -11,7 +11,7 @@ StartFullscreen = false PauseOnFocusLoss = true PauseOnMenu = true SaveStateOnExit = false -ConfirmPowerOff = true +ConfirmPowerOff = false LoadDevicesFromSaveStates = true ApplyGameSettings = true AutoLoadCheats = true diff --git a/emu-configs/ppssppsdl/ppsspp.ini b/emu-configs/ppssppsdl/ppsspp.ini index c2228f5a..66fa6b67 100644 --- a/emu-configs/ppssppsdl/ppsspp.ini +++ b/emu-configs/ppssppsdl/ppsspp.ini @@ -12,7 +12,7 @@ Language = en_US ForceLagSync2 = False DiscordPresence = True UISound = False -AutoLoadSaveState = 2 +AutoLoadSaveState = 0 EnableCheats = False CwCheatRefreshRate = 77 CwCheatScrollPosition = 0.000000 @@ -515,4 +515,4 @@ VRRescaleHUD = True VRCameraPitch = 0 VRHeadRotationScale = 5.000000 VRHeadRotationEnabled = False -VRHeadRotationSmoothing = False \ No newline at end of file +VRHeadRotationSmoothing = False diff --git a/emu-configs/primehack/Dolphin.ini b/emu-configs/primehack/Dolphin.ini index 89663dd0..d2e83c39 100644 --- a/emu-configs/primehack/Dolphin.ini +++ b/emu-configs/primehack/Dolphin.ini @@ -48,7 +48,7 @@ DisableScreenSaver = True KeepWindowOnTop = False Fullscreen = True [Interface] -ConfirmStop = True +ConfirmStop = False LanguageCode = OnScreenDisplayMessages = True PauseOnFocusLost = False diff --git a/functions/global.sh b/functions/global.sh index 1bb7740b..32d78f68 100644 --- a/functions/global.sh +++ b/functions/global.sh @@ -52,7 +52,6 @@ pretty_system_names_reference_list="$emuconfigs/defaults/retrodeck/reference_lis citraconf="/var/config/citra-emu/qt-config.ini" duckstationconf="/var/config/duckstation/settings.ini" melondsconf="/var/config/melonDS/melonDS.ini" -ppssppconf="/var/config/ppsspp/PSP/SYSTEM/ppsspp.ini" ryujinxconf="/var/config/Ryujinx/Config.json" xemuconf="/var/config/xemu/xemu.toml" yuzuconf="/var/config/yuzu/qt-config.ini" @@ -86,6 +85,11 @@ pcsx2gsconf="/var/config/PCSX2/inis/GS.ini" # This file should be deprecated sin pcsx2uiconf="/var/config/PCSX2/inis/PCSX2_ui.ini" # This file should be deprecated since moving to PCSX2-QT pcsx2vmconf="/var/config/PCSX2/inis/PCSX2_vm.ini" # This file should be deprecated since moving to PCSX2-QT +# PPSSPPDL config files + +ppssppconf="/var/config/ppsspp/PSP/SYSTEM/ppsspp.ini" +ppssppcontrolsconf="/var/config/ppsspp/PSP/SYSTEM/controls.ini" + # Primehack config files primehackconf="/var/config/primehack/Dolphin.ini" diff --git a/functions/post_update.sh b/functions/post_update.sh index 5ce89e92..493196d7 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -82,7 +82,9 @@ post_update() { # - Move Dolphin and Primehack save folder names # - Move PPSSPP saves/states to appropriate folders # - Set ESDE user themes folder directly - # - Disable auto-save/load in RA / PCSX2 / Duckstation for proper preset functionality + # - Disable auto-save/load in existing RA / PCSX2 / Duckstation installs for proper preset functionality + # - Disable ask-on-exit in existing Citra / Dolphin / Duckstation / Primehack installs for proper preset functionality + # - Disable auto-load-state in existing PPSSPP installs for proper preset functionality # - Init Cemu as it is a new emulator update_rd_conf # Expand retrodeck.cfg to latest template @@ -200,6 +202,14 @@ post_update() { set_setting_value "$duckstationconf" "SaveStateOnExit" "false" "duckstation" "Main" set_setting_value "$duckstationconf" "Enabled" "false" "duckstation" "Cheevos" + set_setting_value "$citraconf" "confirmClose" "false" "citra" "UI" + set_setting_value "$citraconf" "confirmClose\default" "false" "citra" "UI" + set_setting_value "$dolphinconf" "ConfirmStop" "False" "dolphin" "Interface" + set_setting_value "$duckstationconf" "ConfirmPowerOff" "false" "duckstation" "Main" + set_setting_value "$primehackconf" "ConfirmStop" "False" "primehack" "Interface" + + set_setting_value "$ppssppconf" "AutoLoadSaveState" "0" "ppsspp" "General" + prepare_emulator "reset" "cemu" fi diff --git a/tools/configurator.sh b/tools/configurator.sh index 4d21f8a5..91c08fd3 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -11,7 +11,8 @@ source /app/libexec/global.sh # Welcome # - Presets & Settings # - Global: Presets & Settings -# - Enable/Disable widescreen +# - Enable/Disable Widescreen +# - Enable/Disable Ask-To-Exit # - RetroAchievements Login # - RetroAchievements Logout # - Enable/Disable RetroAchievements Hardcore Mode @@ -179,6 +180,7 @@ configurator_global_presets_and_settings_dialog() { --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ --column="Choice" --column="Action" \ "Enable/Disable Widescreen" "Enable or disable widescreen in supported systems" \ + "Enable/Disable Ask-to-Exit" "Enable or disable emulators confirming when quitting in supported systems" \ "RetroAchievements Login" "Log into the RetroAchievements service in supported systems" \ "RetroAchievements Logout" "Disable RetroAchievements service in ALL supported systems" \ "RetroAchievements Hardcore Mode" "Enable RetroAchievements hardcore mode (no cheats, rewind, save states etc.) in supported emulators" \ @@ -191,6 +193,11 @@ configurator_global_presets_and_settings_dialog() { configurator_global_presets_and_settings_dialog ;; + "Enable/Disable Ask-to-Exit" ) + change_preset_dialog "ask_to_exit" + configurator_global_presets_and_settings_dialog + ;; + "RetroAchievements Login" ) local cheevos_creds=$(get_cheevos_token_dialog) if [[ ! "$cheevos_creds" == "failed" ]]; then From 26bf3f5dfc976962f54c3fa7dfe485f464c1d57e Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 18 May 2023 12:12:13 -0400 Subject: [PATCH 6/7] Clarify cooker reset wording new start-rd-on-exit method for Configurator --- rd-submodules/retroarch | 2 +- rd-submodules/shared-modules | 2 +- retrodeck.sh | 13 ++++++++----- tools/configurator.sh | 16 ---------------- 4 files changed, 10 insertions(+), 23 deletions(-) diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch index 78786102..0b1cfb79 160000 --- a/rd-submodules/retroarch +++ b/rd-submodules/retroarch @@ -1 +1 @@ -Subproject commit 78786102fc04cf104ef9bf2f0ebcacbdda357ae0 +Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409 diff --git a/rd-submodules/shared-modules b/rd-submodules/shared-modules index 50314360..a2441b96 160000 --- a/rd-submodules/shared-modules +++ b/rd-submodules/shared-modules @@ -1 +1 @@ -Subproject commit 50314360ded6fa3b9f0b602513b1164b7a6636ed +Subproject commit a2441b964afefd8cd1cebcdf562c7878670daf42 diff --git a/retrodeck.sh b/retrodeck.sh index e6297aed..9ff19a18 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -47,9 +47,12 @@ https://retrodeck.net cli_compress_all_games "$2" ;; --configurator*) - launched_from_cli="true" sh /app/tools/configurator.sh - exit + if [[ $(configurator_generic_question_dialog "RetroDECK Configurator" "Would you like to launch RetroDECK after closing the Configurator?") == "false" ]]; then + exit + else + shift + fi ;; --reset-emulator*) echo "You are about to reset one or more RetroDECK emulators." @@ -104,16 +107,16 @@ if [ -f "$lockfile" ]; then echo "Config file's version is $version but the actual version is $hard_version" if grep -qF "cooker" <<< $hard_version; then # If newly-installed version is a "cooker" build cooker_base_version=$(echo $hard_version | cut -d'-' -f2) - choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Upgrade" --extra-button="Don't Upgrade" --extra-button="Fresh Install" \ + choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Upgrade" --extra-button="Don't Upgrade" --extra-button="Full Wipe and Fresh Install" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Cooker Upgrade" \ - --text="You appear to be upgrading to a \"cooker\" build of RetroDECK.\n\nWould you like to perform the standard post-update process, skip the post-update process or remove ALL existing RetroDECK data to start from a fresh install?\n\nPerforming the normal post-update process multiple times may lead to unexpected results.") + --text="You appear to be upgrading to a \"cooker\" build of RetroDECK.\n\nWould you like to perform the standard post-update process, skip the post-update process or remove ALL existing RetroDECK folders and data (including ROMs and saves) to start from a fresh install?\n\nPerforming the normal post-update process multiple times may lead to unexpected results.") rc=$? # Capture return code, as "Yes" button has no text value if [[ $rc == "1" ]]; then # If any button other than "Yes" was clicked if [[ $choice == "Don't Upgrade" ]]; then # If user wants to bypass the post_update.sh process this time. echo "Skipping upgrade process for cooker build, updating stored version in retrodeck.cfg" set_setting_value $rd_conf "version" "$hard_version" retrodeck # Set version of currently running RetroDECK to updated retrodeck.cfg - elif [[ $choice == "Fresh Install" ]]; then # Remove all RetroDECK data and start a fresh install + elif [[ $choice == "Full Wipe and Fresh Install" ]]; then # Remove all RetroDECK data and start a fresh install echo "Removing RetroDECK data and starting fresh" rm -rf /var rm -rf "$HOME/retrodeck" diff --git a/tools/configurator.sh b/tools/configurator.sh index 91c08fd3..f29cfa8d 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -1289,22 +1289,6 @@ configurator_usb_import_dialog() { } -# Functions to run at exit, without keeping Configurator running in background - -launch_retrodeck_after_configurator_close() { - if [[ $(check_desktop_mode) == "true" && "$launched_from_cli" == "true" ]]; then - if [[ $(configurator_generic_question_dialog "RetroDECK Configurator" "Would you like to launch RetroDECK after closing the Configurator?") == "true" ]]; then - start_retrodeck - fi - fi -} - -trap 'launch_retrodeck_after_configurator_close' EXIT - # START THE CONFIGURATOR -if [[ "$1" == "cli" ]]; then - launched_from_cli="true" -fi - configurator_welcome_dialog From b91c451fdd279cc5078f155747d9d9bc3e59b2a2 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 18 May 2023 12:23:45 -0400 Subject: [PATCH 7/7] Added more safety around the cooker reset option --- retrodeck.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index 9ff19a18..cf721e9a 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -106,6 +106,7 @@ if [ -f "$lockfile" ]; then if [ "$hard_version" != "$version" ]; then echo "Config file's version is $version but the actual version is $hard_version" if grep -qF "cooker" <<< $hard_version; then # If newly-installed version is a "cooker" build + configurator_generic_dialog "RetroDECK Cooker Warning" "RUNNING COOKER VERSIONS OF RETRODECK CAN BE EXTREMELY DANGEROUS AND ALL OF YOUR RETRODECK DATA\n(INCLUDING BIOS FILES, BORDERS, DOWNLOADED MEDIA, GAMELISTS, MODS, ROMS, SAVES, STATES, SCREENSHOTS, TEXTURE PACKS AND THEMES)\nARE AT RISK BY CONTINUING!" cooker_base_version=$(echo $hard_version | cut -d'-' -f2) choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Upgrade" --extra-button="Don't Upgrade" --extra-button="Full Wipe and Fresh Install" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ @@ -117,11 +118,20 @@ if [ -f "$lockfile" ]; then echo "Skipping upgrade process for cooker build, updating stored version in retrodeck.cfg" set_setting_value $rd_conf "version" "$hard_version" retrodeck # Set version of currently running RetroDECK to updated retrodeck.cfg elif [[ $choice == "Full Wipe and Fresh Install" ]]; then # Remove all RetroDECK data and start a fresh install - echo "Removing RetroDECK data and starting fresh" - rm -rf /var - rm -rf "$HOME/retrodeck" - source /app/libexec/global.sh - finit + if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "This is going to remove all of the data in all locations used by RetroDECK!\n\n(INCLUDING BIOS FILES, BORDERS, DOWNLOADED MEDIA, GAMELISTS, MODS, ROMS, SAVES, STATES, SCREENSHOTS, TEXTURE PACKS AND THEMES)\n\nAre you sure you want to contine?") == "true" ]]; then + if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "Are you super sure?\n\nThere is no going back from this process, everything is gonzo.\nDust in the wind.\n\nYesterdays omelette.") == "true" ]]; then + if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "But are you super DUPER sure? We REAAAALLLLLYY want to make sure you know what is happening here.\n\nThe ~/retrodeck and ~/.var/app/net.retrodeck.retrodeck folders and ALL of their contents\nare about to be PERMANENTLY removed.\n\nStill sure you want to proceed?") == "true" ]]; then + configurator_generic_dialog "RetroDECK Cooker Reset" "Ok, if you're that sure, here we go!" + if [[ $(configurator_generic_question_dialog "RetroDECK Cooker Reset" "(Are you actually being serious here? Because we are...\n\nNo backsies.)") == "true" ]]; then + echo "Removing RetroDECK data and starting fresh" + rm -rf /var + rm -rf "$HOME/retrodeck" + source /app/libexec/global.sh + finit + fi + fi + fi + fi fi else echo "Performing normal upgrade process for version" $cooker_base_version