From da9c237f2e1b315ff6762e32a8cdf7f30b5cecdd Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 16 Jan 2024 09:14:27 +0100 Subject: [PATCH 1/5] FRAMEWORK: prepare_emulator is now prepare_component --- functions/dialogs.sh | 6 +- functions/functions.sh | 4 +- functions/global.sh | 6 +- functions/multi_user.sh | 4 +- functions/post_update.sh | 14 ++-- ...epare_emulator.sh => prepare_component.sh} | 76 +++++++++---------- retrodeck.sh | 20 ++--- tools/configurator.sh | 8 +- 8 files changed, 69 insertions(+), 69 deletions(-) rename functions/{prepare_emulator.sh => prepare_component.sh} (95%) diff --git a/functions/dialogs.sh b/functions/dialogs.sh index db5298fd..af005e63 100644 --- a/functions/dialogs.sh +++ b/functions/dialogs.sh @@ -118,9 +118,9 @@ configurator_move_folder_dialog() { if [[ -d "$dest_root/$rd_dir_path" ]]; then # If the move succeeded declare -g "$rd_dir_name=$dest_root/$rd_dir_path" # Set the new path for that folder variable in retrodeck.cfg if [[ "$rd_dir_name" == "rdhome" ]]; then # If the whole retrodeck folder was moved... - prepare_emulator "postmove" "retrodeck" + prepare_component "postmove" "retrodeck" fi - prepare_emulator "postmove" "all" # Update all the appropriate emulator path settings + prepare_component "postmove" "all" # Update all the appropriate emulator path settings conf_write # Write the settings to retrodeck.cfg if [[ -z $(ls -1 "$source_root/retrodeck") ]]; then # Cleanup empty old_path/retrodeck folder if it was left behind rmdir "$source_root/retrodeck" @@ -150,7 +150,7 @@ configurator_move_folder_dialog() { configurator_generic_dialog "RetroDECK Configurator - Move Folder" "The $(basename $dir_to_move) folder was not found at the expected location.\n\nThis may have happened if the folder was moved manually.\n\nPlease select the current location of the folder." dir_to_move=$(directory_browse "RetroDECK $(basename $dir_to_move) directory location") declare -g "$rd_dir_name=$dir_to_move" - prepare_emulator "postmove" "all" + prepare_component "postmove" "all" conf_write configurator_generic_dialog "RetroDECK Configurator - Move Folder" "RetroDECK $(basename $dir_to_move) folder now configured at\n$dir_to_move." configurator_move_folder_dialog "$rd_dir_name" diff --git a/functions/functions.sh b/functions/functions.sh index 3b3719fb..6593a3b0 100644 --- a/functions/functions.sh +++ b/functions/functions.sh @@ -404,7 +404,7 @@ finit() { esac - prepare_emulator "reset" "retrodeck" # Parse the [paths] section of retrodeck.cfg and set the value of / create all needed folders + prepare_component "reset" "retrodeck" # Parse the [paths] section of retrodeck.cfg and set the value of / create all needed folders conf_write # Write the new values to retrodeck.cfg @@ -420,7 +420,7 @@ finit() { --text="RetroDECK will now install the needed files, which can take up to one minute.\nRetroDECK will start once the process is completed.\n\nPress OK to continue." ( - prepare_emulator "reset" "all" + prepare_component "reset" "all" build_retrodeck_current_presets deploy_helper_files diff --git a/functions/global.sh b/functions/global.sh index 954acdda..5c61ecd3 100644 --- a/functions/global.sh +++ b/functions/global.sh @@ -10,7 +10,7 @@ source /app/libexec/functions.sh source /app/libexec/multi_user.sh source /app/libexec/patching.sh source /app/libexec/post_update.sh -source /app/libexec/prepare_emulator.sh +source /app/libexec/prepare_component.sh source /app/libexec/presets.sh # Static variables @@ -177,8 +177,8 @@ else new_home_path=$(directory_browse "RetroDECK folder location") set_setting_value $rd_conf "rdhome" "$new_home_path" retrodeck "paths" conf_read - prepare_emulator "retrodeck" "postmove" - prepare_emulator "all" "postmove" + prepare_component "retrodeck" "postmove" + prepare_component "all" "postmove" conf_write fi diff --git a/functions/multi_user.sh b/functions/multi_user.sh index 08d9bf4d..6a744814 100644 --- a/functions/multi_user.sh +++ b/functions/multi_user.sh @@ -208,7 +208,7 @@ multi_user_setup_new_user() { do if [[ ! -z $(grep "^$emu_conf$" "$multi_user_emulator_config_dirs") ]]; then unlink "/var/config/$emu_conf" - prepare_emulator "reset" "$emu_conf" + prepare_component "reset" "$emu_conf" fi done for emu_conf in $(find "/var/config" -mindepth 1 -maxdepth 1 -type d -printf '%f\n') # For all the currently non-linked config folders, like from a newly-added emulator @@ -238,7 +238,7 @@ multi_user_link_current_user_files() { if [[ -d "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" ]]; then # If the current user already has a config folder for this emulator ln -sfT "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "retrodeck/config/$emu_conf" else # If the current user doesn't have a config folder for this emulator, init it and then link it - prepare_emulator "reset" "$emu_conf" + prepare_component "reset" "$emu_conf" dir_prep "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "/var/config/$emu_conf" fi fi diff --git a/functions/post_update.sh b/functions/post_update.sh index bf68a2c2..9a402d01 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -21,7 +21,7 @@ post_update() { # - Fix PICO-8 folder structure. ROM and save folders are now sane and binary files will go into ~/retrodeck/bios/pico-8/ rm -rf /var/config/primehack # Purge old Primehack config files. Saves are safe as they are linked into /var/data/primehack. - prepare_emulator "reset" "primehack" + prepare_component "reset" "primehack" dir_prep "$rdhome/saves/duckstation" "/var/data/duckstation/memcards" dir_prep "$rdhome/states/duckstation" "/var/data/duckstation/savestates" @@ -212,14 +212,14 @@ post_update() { set_setting_value "$ppssppconf" "AutoLoadSaveState" "0" "ppsspp" "General" - prepare_emulator "reset" "cemu" + prepare_component "reset" "cemu" - prepare_emulator "reset" "pico8" + prepare_component "reset" "pico8" configurator_generic_dialog "RetroDECK 0.7.0b Upgrade" "Would you like to install the official controller profile?\n(this will reset your custom emulator settings)\n\nAfter installation you can enable it from from Controller Settings -> Templates." if [[ $(configurator_generic_question_dialog "RetroDECK Official Controller Profile" "Would you like to install the official RetroDECK controller profile?") == "true" ]]; then install_retrodeck_controller_profile - prepare_emulator "reset" "all" + prepare_component "reset" "all" fi fi if [[ $prev_version -le "071" ]]; then @@ -267,9 +267,9 @@ post_update() { if [[ $prev_version -le "075" ]]; then # In version 0.7.5b, the following changes were made: - prepare_emulator "reset" "vita3k" - prepare_emulator "reset" "mame" - prepare_emulator "reset" "boilr" + prepare_component "reset" "vita3k" + prepare_component "reset" "mame" + prepare_component "reset" "boilr" if [ -d "$rdhome/.logs" ]; then mv "$rdhome/.logs" "$logs_folder" log i "Logs folder renamed successfully" diff --git a/functions/prepare_emulator.sh b/functions/prepare_component.sh similarity index 95% rename from functions/prepare_emulator.sh rename to functions/prepare_component.sh index d7352d69..ab090246 100644 --- a/functions/prepare_emulator.sh +++ b/functions/prepare_component.sh @@ -1,19 +1,19 @@ #!/bin/bash -prepare_emulator() { - # This function will perform one of several actions on one or more emulators +prepare_component() { + # This function will perform one of several actions on one or more components # The actions currently include "reset" and "postmove" - # The "reset" action will initialize the emulator - # The "postmove" action will update the emulator settings after one or more RetroDECK folders were moved - # An emulator can be called by name, by parent folder name in the /var/config root or use the option "all" to perform the action on all emulators equally + # The "reset" action will initialize the component + # The "postmove" action will update the component settings after one or more RetroDECK folders were moved + # An component can be called by name, by parent folder name in the /var/config root or use the option "all" to perform the action on all components equally # The function will also behave differently depending on if the initial request was from the Configurator, the CLI interface or a normal function call if needed - # USAGE: prepare_emulator "$action" "$emulator" "$call_source(optional)" + # USAGE: prepare_component "$action" "$component" "$call_source(optional)" action="$1" - emulator="$2" + component="$2" call_source="$3" - if [[ "$emulator" == "retrodeck" ]]; then + if [[ "$component" == "retrodeck" ]]; then if [[ "$action" == "reset" ]]; then # Update the paths of all folders in retrodeck.cfg and create them while read -r config_line; do local current_setting_name=$(get_setting_name "$config_line" "retrodeck") @@ -37,7 +37,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(emulationstation|all)$ ]]; then # For use after ESDE-related folders are moved or a reset + if [[ "$component" =~ ^(emulationstation|all)$ ]]; then # For use after ESDE-related folders are moved or a reset if [[ "$action" == "reset" ]]; then rm -rf /var/config/emulationstation/ mkdir -p /var/config/emulationstation/.emulationstation/ @@ -57,7 +57,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(retroarch|RetroArch|all)$ ]]; then + if [[ "$component" =~ ^(retroarch|RetroArch|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands if [[ $multi_user_mode == "true" ]]; then # Multi-user actions rm -rf "$multi_user_data_folder/$SteamAppUser/config/retroarch" @@ -154,7 +154,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(cemu|Cemu|all)$ ]]; then + if [[ "$component" =~ ^(cemu|Cemu|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "----------------------" echo "Initializing CEMU" @@ -183,7 +183,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(citra|citra-emu|Citra|all)$ ]]; then + if [[ "$component" =~ ^(citra|citra-emu|Citra|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "------------------------" echo "Initializing CITRA" @@ -230,7 +230,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(dolphin|dolphin-emu|Dolphin|all)$ ]]; then + if [[ "$component" =~ ^(dolphin|dolphin-emu|Dolphin|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "----------------------" echo "Initializing DOLPHIN" @@ -285,7 +285,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(duckstation|Duckstation|all)$ ]]; then + if [[ "$component" =~ ^(duckstation|Duckstation|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "------------------------" echo "Initializing DUCKSTATION" @@ -332,7 +332,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(melonds|melonDS|MelonDS|all)$ ]]; then + if [[ "$component" =~ ^(melonds|melonDS|MelonDS|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "----------------------" echo "Initializing MELONDS" @@ -372,7 +372,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(pcsx2|PCSX2|all)$ ]]; then + if [[ "$component" =~ ^(pcsx2|PCSX2|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "----------------------" echo "Initializing PCSX2" @@ -418,7 +418,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(pico8|pico-8|all)$ ]]; then + if [[ "$component" =~ ^(pico8|pico-8|all)$ ]]; then if [[ ("$action" == "reset") || ("$action" == "postmove") ]]; then dir_prep "$bios_folder/pico-8" "$HOME/.lexaloffle/pico-8" # Store binary and config files together. The .lexaloffle directory is a hard-coded location for the PICO-8 config file, cannot be changed dir_prep "$roms_folder/pico8" "$bios_folder/pico-8/carts" # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway) @@ -428,7 +428,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(ppsspp|PPSSPP|all)$ ]]; then + if [[ "$component" =~ ^(ppsspp|PPSSPP|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "------------------------" echo "Initializing PPSSPPSDL" @@ -458,7 +458,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(primehack|Primehack|all)$ ]]; then + if [[ "$component" =~ ^(primehack|Primehack|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "----------------------" echo "Initializing Primehack" @@ -502,7 +502,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(rpcs3|RPCS3|all)$ ]]; then + if [[ "$component" =~ ^(rpcs3|RPCS3|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "------------------------" echo "Initializing RPCS3" @@ -512,7 +512,7 @@ prepare_emulator() { mkdir -pv "$multi_user_data_folder/$SteamAppUser/config/rpcs3/" cp -fr "$emuconfigs/rpcs3/"* "$multi_user_data_folder/$SteamAppUser/config/rpcs3/" # This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name. - sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$multi_user_data_folder/$SteamAppUser/config/rpcs3/vfs.yml" + sed -i 's^\^$(componentDir): .*^$(componentDir): '"$bios_folder/rpcs3/"'^' "$multi_user_data_folder/$SteamAppUser/config/rpcs3/vfs.yml" set_setting_value "$multi_user_data_folder/$SteamAppUser/config/rpcs3/vfs.yml" "/games/" "$roms_folder/ps3/" "rpcs3" dir_prep "$multi_user_data_folder/$SteamAppUser/config/rpcs3" "/var/config/rpcs3" else # Single-user actions @@ -520,7 +520,7 @@ prepare_emulator() { mkdir -pv /var/config/rpcs3/ cp -fr "$emuconfigs/rpcs3/"* /var/config/rpcs3/ # This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name. - sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$rpcs3vfsconf" + sed -i 's^\^$(componentDir): .*^$(componentDir): '"$bios_folder/rpcs3/"'^' "$rpcs3vfsconf" set_setting_value "$rpcs3vfsconf" "/games/" "$roms_folder/ps3/" "rpcs3" dir_prep "$saves_folder/ps3/rpcs3" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" fi @@ -535,12 +535,12 @@ prepare_emulator() { fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands # This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name. - sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3"'^' "$rpcs3vfsconf" + sed -i 's^\^$(componentDir): .*^$(componentDir): '"$bios_folder/rpcs3"'^' "$rpcs3vfsconf" set_setting_value "$rpcs3vfsconf" "/games/" "$roms_folder/ps3" "rpcs3" fi fi - if [[ "$emulator" =~ ^(ryujunx|Ryujinx|all)$ ]]; then + if [[ "$component" =~ ^(ryujunx|Ryujinx|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "------------------------" echo "Initializing RYUJINX" @@ -567,7 +567,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(xemu|XEMU|all)$ ]]; then + if [[ "$component" =~ ^(xemu|XEMU|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "------------------------" echo "Initializing XEMU" @@ -583,12 +583,12 @@ prepare_emulator() { set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files" 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/config/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where component will look 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/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 component 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" @@ -612,7 +612,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(yuzu|Yuzu|all)$ ]]; then + if [[ "$component" =~ ^(yuzu|Yuzu|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "----------------------" echo "Initializing YUZU" @@ -668,7 +668,7 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(vita3k|Vita3K|all)$ ]]; then + if [[ "$component" =~ ^(vita3k|Vita3K|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands echo "----------------------" echo "Initializing Vita3K" @@ -676,13 +676,13 @@ prepare_emulator() { if [[ $multi_user_mode == "true" ]]; then # Multi-user actions echo "Figure out what Vita3k needs for multi-user" else # Single-user actions - # NOTE: the emulator is writing in "." so it must be placed in the rw filesystem. A symlink of the binary is already placed in /app/bin/Vita3K + # NOTE: the component is writing in "." so it must be placed in the rw filesystem. A symlink of the binary is already placed in /app/bin/Vita3K rm -rf "/var/data/Vita3K" mkdir -p "/var/data/Vita3K" unzip "/app/retrodeck/vita3k.zip" -d "/var/data/Vita3K" chmod +x "/var/data/Vita3K/Vita3K" rm -f "/var/data/Vita3K/update-vita3k.sh" - cp -fvr "$emuconfigs/vita3k/config.yml" "/var/data/Vita3K" # Emulator config + cp -fvr "$emuconfigs/vita3k/config.yml" "/var/data/Vita3K" # component config cp -fvr "$emuconfigs/vita3k/ux0" "$bios_folder/Vita3K/Vita3K" # User config set_setting_value "$vita3kconf" "pref-path" "$rdhome/bios/Vita3K/Vita3K/" "vita3k" fi @@ -702,9 +702,9 @@ prepare_emulator() { fi fi - if [[ "$emulator" =~ ^(mame|MAME|all)$ ]]; then + if [[ "$component" =~ ^(mame|MAME|all)$ ]]; then # TODO: do a proper script - # This is just a placeholder script to test the emulator's flow + # This is just a placeholder script to test the component's flow echo "----------------------" echo "Initializing MAME" echo "----------------------" @@ -719,9 +719,9 @@ prepare_emulator() { fi - if [[ "$emulator" =~ ^(gzdoom|GZDOOM|all)$ ]]; then + if [[ "$component" =~ ^(gzdoom|GZDOOM|all)$ ]]; then # TODO: do a proper script - # This is just a placeholder script to test the emulator's flow + # This is just a placeholder script to test the component's flow echo "----------------------" echo "Initializing GZDOOM" echo "----------------------" @@ -735,7 +735,7 @@ prepare_emulator() { sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON fi - if [[ "$emulator" =~ ^(boilr|BOILR|all)$ ]]; then + if [[ "$component" =~ ^(boilr|BOILR|all)$ ]]; then echo "----------------------" echo "Initializing BOILR" echo "----------------------" @@ -745,8 +745,8 @@ prepare_emulator() { fi - # Update presets for all emulators after any reset or move - if [[ ! "$emulator" == "retrodeck" ]]; then + # Update presets for all components after any reset or move + if [[ ! "$component" == "retrodeck" ]]; then build_retrodeck_current_presets fi } diff --git a/retrodeck.sh b/retrodeck.sh index daeb3cc8..c8dca185 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -19,7 +19,7 @@ Arguments: --configurator Starts the RetroDECK Configurator --compress-one Compresses target file to a compatible format --compress-all Compresses all supported games into compatible format. Available formats are \"chd\", \"zip\", \"rvz\" and \"all\". - --reset-emulator Reset one or more emulator configs to the default values + --reset-component Reset one or more component configs to the default values --reset-emulationstation Reset EmulationStation DE to default settings --reset-retrodeck Starts the initial RetroDECK installer (backup your data first!) @@ -55,14 +55,14 @@ https://retrodeck.net shift fi ;; - --reset-emulator*) - echo "You are about to reset one or more RetroDECK emulators." - echo "Available options are: retroarch cemu citra dolphin duckstation melonds pcsx2 ppsspp primehack rpcs3 xemu yuzu all-emulators" - read -p "Please enter the emulator you would like to reset: " emulator - if [[ "$emulator" =~ ^(retroarch|cemu|citra|dolphin|duckstation|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all-emulators)$ ]]; then - read -p "You are about to reset $emulator to default settings. Enter 'y' to continue, 'n' to stop: " response + --reset-component*) + echo "You are about to reset one or more RetroDECK components." + echo "Available options are: retroarch cemu citra dolphin duckstation melonds pcsx2 ppsspp primehack rpcs3 xemu yuzu all-components" + read -p "Please enter the component you would like to reset: " component + if [[ "$component" =~ ^(retroarch|cemu|citra|dolphin|duckstation|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all-components)$ ]]; then + read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response if [[ $response == [yY] ]]; then - prepare_emulator "reset" "$emulator" "cli" + prepare_component "reset" "$component" "cli" read -p "The process has been completed, press Enter key to start RetroDECK." shift # Continue launch after previous command is finished else @@ -70,7 +70,7 @@ https://retrodeck.net exit fi else - echo "$emulator is not a valid selection, exiting..." + echo "$component is not a valid selection, exiting..." exit fi ;; @@ -78,7 +78,7 @@ https://retrodeck.net echo "You are about to reset EmulationStation DE to default settings. Your scraped media, downloaded themes and gamelists will remain untouched." read -p "Enter 'y' to continue, 'n' to stop: " response if [[ $response == [yY] ]]; then - prepare_emulator "reset" "emulationstation" "cli" + prepare_component "reset" "emulationstation" "cli" read -p "The process has been completed, press Enter key to start RetroDECK." shift # Continue launch after previous command is finished else diff --git a/tools/configurator.sh b/tools/configurator.sh index cebebeab..c35a95cc 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -1019,7 +1019,7 @@ configurator_reset_dialog() { "RetroArch" | "Vita3k" | "XEMU" ) # Emulators that require network access if [[ $(check_network_connectivity) == "true" ]]; then if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then - prepare_emulator "reset" "$emulator_to_reset" "configurator" + prepare_component "reset" "$emulator_to_reset" "configurator" configurator_process_complete_dialog "resetting $emulator_to_reset" else configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." @@ -1033,7 +1033,7 @@ configurator_reset_dialog() { "Cemu" | "Citra" | "Dolphin" | "Duckstation" | "MelonDS" | "PCSX2" | "PPSSPP" | "Primehack" | "RPCS3" | "Ryujinx" | "Yuzu" ) if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then - prepare_emulator "reset" "$emulator_to_reset" "configurator" + prepare_component "reset" "$emulator_to_reset" "configurator" configurator_process_complete_dialog "resetting $emulator_to_reset" else configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." @@ -1052,7 +1052,7 @@ configurator_reset_dialog() { if [[ $(check_network_connectivity) == "true" ]]; then if [[ $(configurator_reset_confirmation_dialog "all emulators" "Are you sure you want to reset all emulators to default settings?\n\nThis process cannot be undone.") == "true" ]]; then ( - prepare_emulator "reset" "all" + prepare_component "reset" "all" ) | zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ @@ -1075,7 +1075,7 @@ configurator_reset_dialog() { --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator Utility - Reset EmulationStation DE" \ --text="You are resetting EmulationStation DE to its default settings.\n\nAfter the process is complete you will need to exit RetroDECK and run it again." - prepare_emulator "reset" "emulationstation" "configurator" + prepare_component "reset" "emulationstation" "configurator" configurator_process_complete_dialog "resetting EmulationStation DE" else configurator_generic_dialog "RetroDeck Configurator - EmulationStation DE: Reset" "Reset process cancelled." From bde0f1be5aaf902b3f6548e6a209484abe5cf316 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Wed, 24 Jan 2024 16:24:30 +0100 Subject: [PATCH 2/5] CONFIGURATOR: created a component menu to sort the non-emulators --- functions/prepare_component.sh | 2 +- tools/configurator.sh | 62 +++++++++++++++++++++------------- 2 files changed, 39 insertions(+), 25 deletions(-) diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index ab090246..2260e2ee 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -37,7 +37,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(emulationstation|all)$ ]]; then # For use after ESDE-related folders are moved or a reset + if [[ "$component" =~ ^(es-de|ES-DE|all)$ ]]; then # For use after ESDE-related folders are moved or a reset if [[ "$action" == "reset" ]]; then rm -rf /var/config/emulationstation/ mkdir -p /var/config/emulationstation/.emulationstation/ diff --git a/tools/configurator.sh b/tools/configurator.sh index c35a95cc..2d841b94 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -985,14 +985,14 @@ configurator_reset_dialog() { --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ --column="Choice" --column="Action" \ "Reset Specific Emulator" "Reset only one specific emulator to default settings" \ - "Reset All Emulators" "Reset all emulators to default settings" \ - "Reset EmulationStation DE" "Reset the ES-DE frontend" \ + "Reset RetroDECK Component" "Reset a single component, components are parts of RetroDECK that are not emulators" \ + "Reset All Emulators and Components" "Reset all emulators and components to default settings" \ "Reset RetroDECK" "Reset RetroDECK to default settings" ) case $choice in "Reset Specific Emulator" ) - emulator_to_reset=$(zenity --list \ + component_to_reset=$(zenity --list \ --title "RetroDECK Configurator Utility - Reset Specific Standalone Emulator" --cancel-label="Back" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ --text="Which emulator do you want to reset to default?" \ @@ -1014,13 +1014,13 @@ configurator_reset_dialog() { "XEMU" "Reset the XBOX emulator XEMU to default settings" \ "Yuzu" "Reset the Switch emulator Yuzu to default settings" ) - case $emulator_to_reset in + case $component_to_reset in "RetroArch" | "Vita3k" | "XEMU" ) # Emulators that require network access if [[ $(check_network_connectivity) == "true" ]]; then - if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then - prepare_component "reset" "$emulator_to_reset" "configurator" - configurator_process_complete_dialog "resetting $emulator_to_reset" + if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset the $component_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then + prepare_component "reset" "$component_to_reset" "configurator" + configurator_process_complete_dialog "resetting $component_to_reset" else configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." configurator_reset_dialog @@ -1032,9 +1032,37 @@ configurator_reset_dialog() { ;; "Cemu" | "Citra" | "Dolphin" | "Duckstation" | "MelonDS" | "PCSX2" | "PPSSPP" | "Primehack" | "RPCS3" | "Ryujinx" | "Yuzu" ) - if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then - prepare_component "reset" "$emulator_to_reset" "configurator" - configurator_process_complete_dialog "resetting $emulator_to_reset" + if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset the $component_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then + prepare_component "reset" "$component_to_reset" "configurator" + configurator_process_complete_dialog "resetting $component_to_reset" + else + configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." + configurator_reset_dialog + fi + ;; + + "" ) # No selection made or Back button clicked + configurator_reset_dialog + ;; + + esac + ;; + + "Reset RetroDECK Component" ) + component_to_reset=$(zenity --list \ + --title "RetroDECK Configurator Utility - Reset Specific RetroDECK Component" --cancel-label="Back" \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ + --text="Which component do you want to reset to default?" \ + --column="Component" --column="Action" \ + "BoilR" "Reset BoilR that manages the sync and scraping toward Steam library" \ + "ES-DE" "Reset the ES-DE frontend" \ ) + + case $component_to_reset in + + "BoilR" | "ES-DE" ) + if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset $component_to_reset to default settings?\n\nThis process cannot be undone.") == "true" ]]; then + prepare_component "reset" "$component_to_reset" "configurator" + configurator_process_complete_dialog "resetting $component_to_reset" else configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." configurator_reset_dialog @@ -1069,20 +1097,6 @@ configurator_reset_dialog() { fi ;; -"Reset EmulationStation DE" ) - if [[ $(configurator_reset_confirmation_dialog "EmulationStation DE" "Are you sure you want to reset EmulationStation DE to default settings?\n\nYour scraped media, downloaded themes and gamelists will not be touched.\n\nThis process cannot be undone.") == "true" ]]; then - zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ - --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ - --title "RetroDECK Configurator Utility - Reset EmulationStation DE" \ - --text="You are resetting EmulationStation DE to its default settings.\n\nAfter the process is complete you will need to exit RetroDECK and run it again." - prepare_component "reset" "emulationstation" "configurator" - configurator_process_complete_dialog "resetting EmulationStation DE" - else - configurator_generic_dialog "RetroDeck Configurator - EmulationStation DE: Reset" "Reset process cancelled." - configurator_reset_dialog - fi -;; - "Reset RetroDECK" ) if [[ $(configurator_reset_confirmation_dialog "RetroDECK" "Are you sure you want to reset RetroDECK entirely?\n\nThis process cannot be undone.") == "true" ]]; then zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ From 016f241f69352c2ac97c5a0ac914cf59e2e16591 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Wed, 24 Jan 2024 16:28:05 +0100 Subject: [PATCH 3/5] CONFIGURATOR: removed unused entries, added todos, and enhanced texts --- tools/configurator.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tools/configurator.sh b/tools/configurator.sh index 2d841b94..fc3fa9dc 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -984,7 +984,7 @@ configurator_reset_dialog() { choice=$(zenity --list --title="RetroDECK Configurator Utility - RetroDECK: Reset" --cancel-label="Back" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ --column="Choice" --column="Action" \ - "Reset Specific Emulator" "Reset only one specific emulator to default settings" \ + "Reset Specific Emulator" "Reset only one specific emulator or engine to default settings" \ "Reset RetroDECK Component" "Reset a single component, components are parts of RetroDECK that are not emulators" \ "Reset All Emulators and Components" "Reset all emulators and components to default settings" \ "Reset RetroDECK" "Reset RetroDECK to default settings" ) @@ -995,7 +995,7 @@ configurator_reset_dialog() { component_to_reset=$(zenity --list \ --title "RetroDECK Configurator Utility - Reset Specific Standalone Emulator" --cancel-label="Back" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ - --text="Which emulator do you want to reset to default?" \ + --text="Which emulator or engine do you want to reset to default?" \ --column="Emulator" --column="Action" \ "RetroArch" "Reset the multi-emulator frontend RetroArch to default settings" \ "Cemu" "Reset the Wii U emulator Cemu to default settings" \ @@ -1009,11 +1009,12 @@ configurator_reset_dialog() { "PPSSPP" "Reset the PSP emulator PPSSPP to default settings" \ "Primehack" "Reset the Metroid Prime emulator Primehack to default settings" \ "RPCS3" "Reset the PS3 emulator RPCS3 to default settings" \ - "Ryujinx" "Reset the Switch emulator Ryujinx to default settings" \ "Vita3k" "Reset the PS Vita emulator Vita3k to default settings" \ "XEMU" "Reset the XBOX emulator XEMU to default settings" \ "Yuzu" "Reset the Switch emulator Yuzu to default settings" ) + # "Ryujinx" "Reset the Switch emulator Ryujinx to default settings" \ + case $component_to_reset in "RetroArch" | "Vita3k" | "XEMU" ) # Emulators that require network access @@ -1056,10 +1057,11 @@ configurator_reset_dialog() { --column="Component" --column="Action" \ "BoilR" "Reset BoilR that manages the sync and scraping toward Steam library" \ "ES-DE" "Reset the ES-DE frontend" \ ) + # TODO: "GyroDSU" "Reset the gyroscope manager GyroDSU" case $component_to_reset in - "BoilR" | "ES-DE" ) + "BoilR" | "ES-DE" ) # TODO: GyroDSU if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset $component_to_reset to default settings?\n\nThis process cannot be undone.") == "true" ]]; then prepare_component "reset" "$component_to_reset" "configurator" configurator_process_complete_dialog "resetting $component_to_reset" From 08864e64985c56e86dcf6815dc13d3c07c025f37 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Wed, 24 Jan 2024 17:01:10 +0100 Subject: [PATCH 4/5] PREPARE_COMPONENT: fixed the wrong replacement for RPCS3 --- functions/prepare_component.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index 2260e2ee..f6e3696a 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -512,7 +512,7 @@ prepare_component() { mkdir -pv "$multi_user_data_folder/$SteamAppUser/config/rpcs3/" cp -fr "$emuconfigs/rpcs3/"* "$multi_user_data_folder/$SteamAppUser/config/rpcs3/" # This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name. - sed -i 's^\^$(componentDir): .*^$(componentDir): '"$bios_folder/rpcs3/"'^' "$multi_user_data_folder/$SteamAppUser/config/rpcs3/vfs.yml" + sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$multi_user_data_folder/$SteamAppUser/config/rpcs3/vfs.yml" set_setting_value "$multi_user_data_folder/$SteamAppUser/config/rpcs3/vfs.yml" "/games/" "$roms_folder/ps3/" "rpcs3" dir_prep "$multi_user_data_folder/$SteamAppUser/config/rpcs3" "/var/config/rpcs3" else # Single-user actions @@ -520,7 +520,7 @@ prepare_component() { mkdir -pv /var/config/rpcs3/ cp -fr "$emuconfigs/rpcs3/"* /var/config/rpcs3/ # This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name. - sed -i 's^\^$(componentDir): .*^$(componentDir): '"$bios_folder/rpcs3/"'^' "$rpcs3vfsconf" + sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$rpcs3vfsconf" set_setting_value "$rpcs3vfsconf" "/games/" "$roms_folder/ps3/" "rpcs3" dir_prep "$saves_folder/ps3/rpcs3" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" fi @@ -535,7 +535,7 @@ prepare_component() { fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands # This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name. - sed -i 's^\^$(componentDir): .*^$(componentDir): '"$bios_folder/rpcs3"'^' "$rpcs3vfsconf" + sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3"'^' "$rpcs3vfsconf" set_setting_value "$rpcs3vfsconf" "/games/" "$roms_folder/ps3" "rpcs3" fi fi From 84f2fb667e7b0d85a7d7259fcb63119c7aad472e Mon Sep 17 00:00:00 2001 From: XargonWan Date: Wed, 24 Jan 2024 17:07:51 +0100 Subject: [PATCH 5/5] RESET_COMPONENT_CLI: added missing emulators, fixed es-de and other stuff --- retrodeck.sh | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index c8dca185..80c62e2d 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -13,15 +13,15 @@ for i in "$@"; do flatpak run [FLATPAK-RUN-OPTION] net.retrodeck-retrodeck [ARGUMENTS] Arguments: - -h, --help Print this help - -v, --version Print RetroDECK version - --info-msg Print paths and config informations - --configurator Starts the RetroDECK Configurator - --compress-one Compresses target file to a compatible format - --compress-all Compresses all supported games into compatible format. Available formats are \"chd\", \"zip\", \"rvz\" and \"all\". - --reset-component Reset one or more component configs to the default values - --reset-emulationstation Reset EmulationStation DE to default settings - --reset-retrodeck Starts the initial RetroDECK installer (backup your data first!) + -h, --help Print this help + -v, --version Print RetroDECK version + --info-msg Print paths and config informations + --configurator Starts the RetroDECK Configurator + --compress-one Compresses target file to a compatible format + --compress-all Compresses all supported games into compatible format. Available formats are \"chd\", \"zip\", \"rvz\" and \"all\". + --reset-component Reset one or more component or emulator configs to the default values + --reset-es-de Reset EmulationStation DE to default settings + --reset-retrodeck Starts the initial RetroDECK installer (backup your data first!) For flatpak run specific options please run: flatpak run -h @@ -56,10 +56,10 @@ https://retrodeck.net fi ;; --reset-component*) - echo "You are about to reset one or more RetroDECK components." - echo "Available options are: retroarch cemu citra dolphin duckstation melonds pcsx2 ppsspp primehack rpcs3 xemu yuzu all-components" + echo "You are about to reset one or more RetroDECK components or emulators." + echo "Available options are: es-de, retroarch, cemu, citra, dolphin, duckstation, melonds, pcsx3, pico8, ppsspp, primehack, rpcs3, xemu, yuzu, vita3k, mame, gzdoom, boilr, all" read -p "Please enter the component you would like to reset: " component - if [[ "$component" =~ ^(retroarch|cemu|citra|dolphin|duckstation|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all-components)$ ]]; then + if [[ "$component" =~ ^(es-de | retroarch | cemu | citra | dolphin | duckstation | melonds | pcsx3 | pico8 | ppsspp | primehack | rpcs3 | xemu | yuzu | vita3k | mame | gzdoom | boilr | all)$ ]]; then read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response if [[ $response == [yY] ]]; then prepare_component "reset" "$component" "cli" @@ -74,11 +74,11 @@ https://retrodeck.net exit fi ;; - --reset-emulationstation*) - echo "You are about to reset EmulationStation DE to default settings. Your scraped media, downloaded themes and gamelists will remain untouched." + --reset-es-de*) + echo "You are about to reset ES-DE to default settings. Your scraped media, downloaded themes and gamelists will remain untouched." read -p "Enter 'y' to continue, 'n' to stop: " response if [[ $response == [yY] ]]; then - prepare_component "reset" "emulationstation" "cli" + prepare_component "reset" "ES-DE" "cli" read -p "The process has been completed, press Enter key to start RetroDECK." shift # Continue launch after previous command is finished else