From 67e292a8198b6cbde5ce5d20144759a078aac669 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Thu, 13 Oct 2022 16:51:27 -0400 Subject: [PATCH 01/22] Citra sysdata missing fix --- retrodeck.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/retrodeck.sh b/retrodeck.sh index 2770fcd8..fa116dec 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -144,6 +144,7 @@ standalones_init() { mkdir -pv /var/config/citra-emu/ mkdir -pv "$rdhome/saves/n3ds/citra/nand/" mkdir -pv "$rdhome/saves/n3ds/citra/sdmc/" + dir_prep "$rdhome/bios/citra/sysdata" "/var/data/citra-emu/sysdata" dir_prep "$rdhome/.logs/citra" "/var/data/citra-emu/log" cp -fv $emuconfigs/citra-qt-config.ini /var/config/citra-emu/qt-config.ini sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini From 9fdc9bf5a83028123c342bc32fa27134e1818460 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Thu, 13 Oct 2022 19:55:20 -0400 Subject: [PATCH 02/22] Expose Yuzu save folders to user --- retrodeck.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/retrodeck.sh b/retrodeck.sh index fa116dec..985b6901 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -89,6 +89,9 @@ standalones_init() { dir_prep "$rdhome/bios/switch/keys" "/var/data/yuzu/keys" # initializing the firmware folder dir_prep "$rdhome/bios/switch/registered" "/var/data/yuzu/nand/system/Contents/registered" + # initializing the save folders + dir_prep "$rdhome/saves/switch/yuzu/nand" "/var/data/yuzu/nand" + dir_prep "$rdhome/saves/switch/yuzy/sdmc" "/var/data/yuzu/sdmc" # configuring Yuzu dir_prep "$rdhome/.logs/yuzu" "/var/data/yuzu/log" mkdir -pv /var/config/yuzu/ From d3b31bde3a74d9b3241b6dd7960b1aa739a4898e Mon Sep 17 00:00:00 2001 From: XargonWan <XargonWan@gmail.com> Date: Fri, 14 Oct 2022 10:54:09 +0200 Subject: [PATCH 03/22] Fixed flathub_push_main --- .github/workflows/flathub_push_main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/flathub_push_main.yml b/.github/workflows/flathub_push_main.yml index 2957a537..1b031490 100644 --- a/.github/workflows/flathub_push_main.yml +++ b/.github/workflows/flathub_push_main.yml @@ -28,6 +28,8 @@ jobs: git clone --recursive https://github.com/XargonWan/RetroDECK RetroDECK cd $gits_folder/RetroDECK + relname="main-"$(git rev-parse --short HEAD) + git checkout $rd_branch git submodule init git submodule update @@ -75,4 +77,4 @@ jobs: git add * git commit -m "Updated flathub/net.retrodeck.retrodeck from RetroDECK/$rd_branch" - git push --force https://${{ secrets.TRIGGER_BUILD_TOKEN }}@github.com/flathub/net.retrodeck.retrodeck.git master + git push --force https://${{ secrets.TRIGGER_BUILD_TOKEN }}@github.com/flathub/net.retrodeck.retrodeck.git $relname From ef29a3644bc9b96f27e27138efe611fb63a79aac Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Fri, 14 Oct 2022 10:21:08 -0400 Subject: [PATCH 04/22] Fix update check, save RA cfg after 0.5.0b update --- retrodeck.sh | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index fa116dec..8d2c5f24 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -203,9 +203,12 @@ ra_init() { mkdir -pv /var/config/retroarch/cores/ cp /app/share/libretro/cores/* /var/config/retroarch/cores/ cp -fv $emuconfigs/retroarch.cfg /var/config/retroarch/ + if [[ overwrite_configs ]]; then cp -fv $emuconfigs/retroarch-core-options.cfg /var/config/retroarch/ - #rm -rf $rdhome/bios/bios # in some situations a double bios symlink is created sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/retroarch/retroarch.cfg + fi + #rm -rf $rdhome/bios/bios # in some situations a double bios symlink is created + # PPSSPP echo "--------------------------------" @@ -289,18 +292,21 @@ post_update() { # 0.4 -> 0.5 # Perform save and state migration if needed - # Moving PCSX2 Saves - mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2 - mv -fv /var/config/PCSX2/memcards/* $rdhome/saves/ps2/memcards - - # Moving Citra saves from legacy location to 0.5.0b structure + # Moving PCSX2 Saves if needed + if [[ -d /var/config/PCSX2 ]]; then + mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2 + mv -fv /var/config/PCSX2/memcards/* $rdhome/saves/ps2/memcards + fi + # Moving Citra saves from legacy location to 0.5.0b structure if needed + if [[ -d $rdhome/saves/Citra ]]; then mv -fv $rdhome/saves/Citra/* $rdhome/saves/n3ds/citra rmdir $rdhome/saves/Citra # Old folder cleanup + fi versionwheresaveschanged="0.4.5b" # Hardcoded break point between unsorted and sorted saves - if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $hard_version) == $(sed -e "s/\.//g" <<< $version) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5 + if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5 migration_logfile=$rdhome/.logs/savemove_"$(date +"%Y_%m_%d_%I_%M_%p").log" save_backup_file=$rdhome/savebackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" state_backup_file=$rdhome/statesbackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" @@ -421,11 +427,17 @@ post_update() { echo "Version" $version "is after the save and state organization was changed, no need to sort again" fi + if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]]; then # Check if user is upgrading from the version where save organization was changed. + overwrite_configs=true + fi + ra_init standalones_init tools_init create_lock + + overwrite_configs=false } start_retrodeck() { From 76fb748bbcee7d2d643ea76b4dce339d5f67f109 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Fri, 14 Oct 2022 10:31:23 -0400 Subject: [PATCH 05/22] Added "In progress" window to upgrade process --- retrodeck.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/retrodeck.sh b/retrodeck.sh index 9de1d11c..b8430314 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -434,9 +434,18 @@ post_update() { overwrite_configs=true fi + ( ra_init standalones_init tools_init + ) | + zenity --progress --pulsate \ + --icon-name=net.retrodeck.retrodeck \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title="Finishing upgrade" \ + --text="Finishing upgrade, please wait." \ + --no-cancel \ + --auto-close create_lock From 9fa49ff9047f90c9677a2e86182c8c061e886505 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Fri, 14 Oct 2022 10:43:11 -0400 Subject: [PATCH 06/22] Fix overwrite check --- retrodeck.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retrodeck.sh b/retrodeck.sh index b8430314..fe8d2fd0 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -206,7 +206,7 @@ ra_init() { mkdir -pv /var/config/retroarch/cores/ cp /app/share/libretro/cores/* /var/config/retroarch/cores/ cp -fv $emuconfigs/retroarch.cfg /var/config/retroarch/ - if [[ overwrite_configs ]]; then + if [ $overwrite_configs = true ]; then cp -fv $emuconfigs/retroarch-core-options.cfg /var/config/retroarch/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/retroarch/retroarch.cfg fi From 9e50cdf4a8d07a52ae2a4ae6918de7daea823334 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Fri, 14 Oct 2022 10:51:45 -0400 Subject: [PATCH 07/22] More setting retention fixes --- retrodeck.sh | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index fe8d2fd0..069c6e0c 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -95,8 +95,10 @@ standalones_init() { # configuring Yuzu dir_prep "$rdhome/.logs/yuzu" "/var/data/yuzu/log" mkdir -pv /var/config/yuzu/ + if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fvr $emuconfigs/yuzu/* /var/config/yuzu/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/yuzu/qt-config.ini + fi dir_prep "$rdhome/screenshots" "/var/data/yuzu/screenshots" # Dolphin @@ -104,8 +106,10 @@ standalones_init() { echo "Initializing DOLPHIN" echo "----------------------" mkdir -pv /var/config/dolphin-emu/ + if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fvr "$emuconfigs/dolphin/"* /var/config/dolphin-emu/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/dolphin-emu/Dolphin.ini + fi dir_prep "$rdhome/saves/gc/dolphin/EUR" "/var/data/dolphin-emu/GC/EUR" dir_prep "$rdhome/saves/gc/dolphin/USA" "/var/data/dolphin-emu/GC/USA" dir_prep "$rdhome/saves/gc/dolphin/JAP" "/var/data/dolphin-emu/GC/JAP" @@ -120,9 +124,11 @@ standalones_init() { mkdir -pv "/var/config/PCSX2/inis" mkdir -pv "$rdhome/saves/ps2/pcsx2/memcards" mkdir -pv "$rdhome/states/ps2/pcsx2" + if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fvr $emuconfigs/PCSX2/* /var/config/PCSX2/inis/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2_ui.ini sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2.ini + fi #dir_prep "$rdhome/states/ps2/pcsx2" "/var/config/PCSX2/sstates" #dir_prep "$rdhome/screenshots" "/var/config/PCSX2/snaps" #dir_prep "$rdhome/.logs" "/var/config/PCSX2/logs" @@ -136,9 +142,11 @@ standalones_init() { mkdir -pv "$rdhome/saves/nds/melonds" mkdir -pv "$rdhome/states/nds/melonds" dir_prep "$rdhome/bios" "/var/config/melonDS/bios" + if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fvr $emuconfigs/melonDS.ini /var/config/melonDS/ # Replace ~/retrodeck with $rdhome as ~ cannot be understood by MelonDS sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/melonDS/melonDS.ini + fi # CITRA echo "------------------------" @@ -149,8 +157,10 @@ standalones_init() { mkdir -pv "$rdhome/saves/n3ds/citra/sdmc/" dir_prep "$rdhome/bios/citra/sysdata" "/var/data/citra-emu/sysdata" dir_prep "$rdhome/.logs/citra" "/var/data/citra-emu/log" + if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fv $emuconfigs/citra-qt-config.ini /var/config/citra-emu/qt-config.ini sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini + fi #TODO: do the same with roms folders after new variables is pushed (check even the others qt-emu) #But actually everything is always symlinked to retrodeck/roms so it might be not needed #sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini @@ -160,16 +170,20 @@ standalones_init() { echo "Initializing RPCS3" echo "------------------------" mkdir -pv /var/config/rpcs3/ + if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fvr $emuconfigs/rpcs3/* /var/config/rpcs3/ sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/rpcs3/vfs.yml + fi # XEMU echo "------------------------" echo "Initializing XEMU" echo "------------------------" mkdir -pv $rdhome/saves/xbox/xemu/ + if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fv $emuconfigs/xemu.toml /var/data/xemu/xemu.toml sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/data/xemu/xemu.toml + fi # Preparing HD dummy Image if the image is not found if [ ! -f $rdhome/bios/xbox_hdd.qcow2 ] then @@ -183,16 +197,20 @@ standalones_init() { echo "Initializing PPSSPPSDL" echo "------------------------" mkdir -p /var/config/ppsspp/PSP/SYSTEM/ + if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fv $emuconfigs/ppssppsdl/* /var/config/ppsspp/PSP/SYSTEM/ sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/ppsspp/PSP/SYSTEM/ppsspp.ini + fi # DUCKSTATION echo "------------------------" echo "Initializing DUCKSTATION" echo "------------------------" mkdir -p /var/config/duckstation/ + if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fv $emuconfigs/duckstation/* /var/config/duckstation sed -i 's#/home/deck/retrodeck/bios#'$rdhome/bios'#g' /var/config/ppsspp/PSP/SYSTEM/settings.ini + if [ $overwrite_configs = true ]; then # Initializing config after major version update # PICO-8 @@ -204,9 +222,9 @@ ra_init() { dir_prep "$rdhome/bios" "/var/config/retroarch/system" dir_prep "$rdhome/.logs/retroarch" "/var/config/retroarch/logs" mkdir -pv /var/config/retroarch/cores/ - cp /app/share/libretro/cores/* /var/config/retroarch/cores/ - cp -fv $emuconfigs/retroarch.cfg /var/config/retroarch/ + cp -fv /app/share/libretro/cores/* /var/config/retroarch/cores/ if [ $overwrite_configs = true ]; then + cp -fv $emuconfigs/retroarch.cfg /var/config/retroarch/ cp -fv $emuconfigs/retroarch-core-options.cfg /var/config/retroarch/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/retroarch/retroarch.cfg fi @@ -607,11 +625,15 @@ finit() { # PICO-8 dir_prep "$roms_folder/pico8" "$rdhome/bios/pico8/bbs/carts" #this is the folder where pico-8 is saving the carts + overwrite_configs=true + ra_init standalones_init tools_init create_lock + overwrite_configs=false + zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK" \ @@ -658,11 +680,15 @@ https://retrodeck.net exit ;; --reset-ra*) + overwrite_configs=true ra_init + overwrite_configs=false shift # past argument with no value ;; --reset-sa*) + overwrite_configs=true standalones_init + overwrite_configs=false shift # past argument with no value ;; --reset-tools*) From e89f9f27259359fc972c1a89e42642f1ded1822b Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Fri, 14 Oct 2022 11:55:57 -0400 Subject: [PATCH 08/22] Preserve ES cfg if not doing major update --- retrodeck.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index 069c6e0c..e726bd02 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -306,10 +306,6 @@ post_update() { mkdir -pv $rdhome/.logs #this was added later, maybe safe to remove in a few versions - # Resetting es_settings, now we need it but in the future I should think a better solution, maybe with sed - cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml - - # 0.4 -> 0.5 # Perform save and state migration if needed @@ -452,6 +448,10 @@ post_update() { overwrite_configs=true fi + if [ $overwrite_configs = true ]; then + cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml # preserve settings if not performing a major update + fi + ( ra_init standalones_init From b378d537de6eb7524c847edfd53c0db52cf9da04 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Mon, 17 Oct 2022 10:03:27 -0400 Subject: [PATCH 09/22] Fix PS3 default emu and RA shaders --- emu-configs/retroarch.cfg | 2 +- es-configs/es_systems.xml | 2 +- retrodeck.sh | 3 +++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/emu-configs/retroarch.cfg b/emu-configs/retroarch.cfg index 752a0596..202e3d34 100644 --- a/emu-configs/retroarch.cfg +++ b/emu-configs/retroarch.cfg @@ -3147,7 +3147,7 @@ video_scale = "3.000000" video_scale_integer = "false" video_scale_integer_overscale = "false" video_shader_delay = "0" -video_shader_dir = "/app/retrodeck/overlays/shaders" +video_shader_dir = "/var/config/retroarch/shaders" video_shader_enable = "true" video_shader_preset_save_reference_enable = "true" video_shader_remember_last_dir = "false" diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index 07087026..67b34bf2 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -1083,8 +1083,8 @@ <fullname>Sony PlayStation 3</fullname> <path>%ROMPATH%/ps3</path> <extension>.desktop .ps3 .PS3 .ps3dir .PS3DIR</extension> - <command label="RPCS3 Shortcut (Standalone)">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command> <command label="RPCS3 Directory (Standalone)">%EMULATOR_RPCS3% --no-gui %ROM%</command> + <command label="RPCS3 Shortcut (Standalone)">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command> <platform>ps3</platform> <theme>ps3</theme> </system> diff --git a/retrodeck.sh b/retrodeck.sh index e726bd02..da77d677 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -221,6 +221,9 @@ standalones_init() { ra_init() { dir_prep "$rdhome/bios" "/var/config/retroarch/system" dir_prep "$rdhome/.logs/retroarch" "/var/config/retroarch/logs" + mkdir -pv /var/config/retroarch/shaders/ + cp -rfv /app/share/libretro/shaders /var/config/retroarch/ + dir_prep "$rdhome/shaders/retroarch" "/var/config/retroarch/shaders" mkdir -pv /var/config/retroarch/cores/ cp -fv /app/share/libretro/cores/* /var/config/retroarch/cores/ if [ $overwrite_configs = true ]; then From de252afee7fcce54977017dd059916d3a42a33ea Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Mon, 17 Oct 2022 11:42:53 -0400 Subject: [PATCH 10/22] Legacy PS2 save location cleanup --- retrodeck.sh | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index da77d677..9b972a67 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -312,18 +312,6 @@ post_update() { # 0.4 -> 0.5 # Perform save and state migration if needed - # Moving PCSX2 Saves if needed - if [[ -d /var/config/PCSX2 ]]; then - mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2 - mv -fv /var/config/PCSX2/memcards/* $rdhome/saves/ps2/memcards - fi - - # Moving Citra saves from legacy location to 0.5.0b structure if needed - if [[ -d $rdhome/saves/Citra ]]; then - mv -fv $rdhome/saves/Citra/* $rdhome/saves/n3ds/citra - rmdir $rdhome/saves/Citra # Old folder cleanup - fi - versionwheresaveschanged="0.4.5b" # Hardcoded break point between unsorted and sorted saves if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5 @@ -455,6 +443,22 @@ post_update() { cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml # preserve settings if not performing a major update fi + # Moving PCSX2 Saves if needed + if [[ -d /var/config/PCSX2 ]]; then + mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2 + mv -fv /var/config/PCSX2/memcards/* $rdhome/saves/ps2/memcards + fi + if [[ -d $rdhome/saves/PS2 ]] # This appears to have been a legacy location that no longer works under the new structure. + mv -fv $rdhome/saves/PS2/* $rdhome/saves/ps2 + rmdir $rdhome/saves/PS2 + fi + + # Moving Citra saves from legacy location to 0.5.0b structure if needed + if [[ -d $rdhome/saves/Citra ]]; then + mv -fv $rdhome/saves/Citra/* $rdhome/saves/n3ds/citra + rmdir $rdhome/saves/Citra # Old folder cleanup + fi + ( ra_init standalones_init From fbc8fe099b17e63d470aca46ebf21fcc621c5af4 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Tue, 18 Oct 2022 10:07:43 -0400 Subject: [PATCH 11/22] Revert "Preserve ES cfg if not doing major update" This reverts commit e89f9f27259359fc972c1a89e42642f1ded1822b. --- retrodeck.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index 9b972a67..2c2c6e38 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -309,6 +309,10 @@ post_update() { mkdir -pv $rdhome/.logs #this was added later, maybe safe to remove in a few versions + # Resetting es_settings, now we need it but in the future I should think a better solution, maybe with sed + cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml + + # 0.4 -> 0.5 # Perform save and state migration if needed @@ -439,10 +443,6 @@ post_update() { overwrite_configs=true fi - if [ $overwrite_configs = true ]; then - cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml # preserve settings if not performing a major update - fi - # Moving PCSX2 Saves if needed if [[ -d /var/config/PCSX2 ]]; then mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2 From 341ed10bf834df3eeefa2700be2a2a716b5ce101 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Tue, 18 Oct 2022 10:10:21 -0400 Subject: [PATCH 12/22] Revert "More setting retention fixes" This reverts commit 9e50cdf4a8d07a52ae2a4ae6918de7daea823334. --- retrodeck.sh | 30 ++---------------------------- 1 file changed, 2 insertions(+), 28 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index 2c2c6e38..0aa63af5 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -95,10 +95,8 @@ standalones_init() { # configuring Yuzu dir_prep "$rdhome/.logs/yuzu" "/var/data/yuzu/log" mkdir -pv /var/config/yuzu/ - if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fvr $emuconfigs/yuzu/* /var/config/yuzu/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/yuzu/qt-config.ini - fi dir_prep "$rdhome/screenshots" "/var/data/yuzu/screenshots" # Dolphin @@ -106,10 +104,8 @@ standalones_init() { echo "Initializing DOLPHIN" echo "----------------------" mkdir -pv /var/config/dolphin-emu/ - if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fvr "$emuconfigs/dolphin/"* /var/config/dolphin-emu/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/dolphin-emu/Dolphin.ini - fi dir_prep "$rdhome/saves/gc/dolphin/EUR" "/var/data/dolphin-emu/GC/EUR" dir_prep "$rdhome/saves/gc/dolphin/USA" "/var/data/dolphin-emu/GC/USA" dir_prep "$rdhome/saves/gc/dolphin/JAP" "/var/data/dolphin-emu/GC/JAP" @@ -124,11 +120,9 @@ standalones_init() { mkdir -pv "/var/config/PCSX2/inis" mkdir -pv "$rdhome/saves/ps2/pcsx2/memcards" mkdir -pv "$rdhome/states/ps2/pcsx2" - if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fvr $emuconfigs/PCSX2/* /var/config/PCSX2/inis/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2_ui.ini sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2.ini - fi #dir_prep "$rdhome/states/ps2/pcsx2" "/var/config/PCSX2/sstates" #dir_prep "$rdhome/screenshots" "/var/config/PCSX2/snaps" #dir_prep "$rdhome/.logs" "/var/config/PCSX2/logs" @@ -142,11 +136,9 @@ standalones_init() { mkdir -pv "$rdhome/saves/nds/melonds" mkdir -pv "$rdhome/states/nds/melonds" dir_prep "$rdhome/bios" "/var/config/melonDS/bios" - if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fvr $emuconfigs/melonDS.ini /var/config/melonDS/ # Replace ~/retrodeck with $rdhome as ~ cannot be understood by MelonDS sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/melonDS/melonDS.ini - fi # CITRA echo "------------------------" @@ -157,10 +149,8 @@ standalones_init() { mkdir -pv "$rdhome/saves/n3ds/citra/sdmc/" dir_prep "$rdhome/bios/citra/sysdata" "/var/data/citra-emu/sysdata" dir_prep "$rdhome/.logs/citra" "/var/data/citra-emu/log" - if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fv $emuconfigs/citra-qt-config.ini /var/config/citra-emu/qt-config.ini sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini - fi #TODO: do the same with roms folders after new variables is pushed (check even the others qt-emu) #But actually everything is always symlinked to retrodeck/roms so it might be not needed #sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini @@ -170,20 +160,16 @@ standalones_init() { echo "Initializing RPCS3" echo "------------------------" mkdir -pv /var/config/rpcs3/ - if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fvr $emuconfigs/rpcs3/* /var/config/rpcs3/ sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/rpcs3/vfs.yml - fi # XEMU echo "------------------------" echo "Initializing XEMU" echo "------------------------" mkdir -pv $rdhome/saves/xbox/xemu/ - if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fv $emuconfigs/xemu.toml /var/data/xemu/xemu.toml sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/data/xemu/xemu.toml - fi # Preparing HD dummy Image if the image is not found if [ ! -f $rdhome/bios/xbox_hdd.qcow2 ] then @@ -197,20 +183,16 @@ standalones_init() { echo "Initializing PPSSPPSDL" echo "------------------------" mkdir -p /var/config/ppsspp/PSP/SYSTEM/ - if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fv $emuconfigs/ppssppsdl/* /var/config/ppsspp/PSP/SYSTEM/ sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/ppsspp/PSP/SYSTEM/ppsspp.ini - fi # DUCKSTATION echo "------------------------" echo "Initializing DUCKSTATION" echo "------------------------" mkdir -p /var/config/duckstation/ - if [ $overwrite_configs = true ]; then # Initializing config after major version update cp -fv $emuconfigs/duckstation/* /var/config/duckstation sed -i 's#/home/deck/retrodeck/bios#'$rdhome/bios'#g' /var/config/ppsspp/PSP/SYSTEM/settings.ini - if [ $overwrite_configs = true ]; then # Initializing config after major version update # PICO-8 @@ -225,9 +207,9 @@ ra_init() { cp -rfv /app/share/libretro/shaders /var/config/retroarch/ dir_prep "$rdhome/shaders/retroarch" "/var/config/retroarch/shaders" mkdir -pv /var/config/retroarch/cores/ - cp -fv /app/share/libretro/cores/* /var/config/retroarch/cores/ - if [ $overwrite_configs = true ]; then + cp /app/share/libretro/cores/* /var/config/retroarch/cores/ cp -fv $emuconfigs/retroarch.cfg /var/config/retroarch/ + if [ $overwrite_configs = true ]; then cp -fv $emuconfigs/retroarch-core-options.cfg /var/config/retroarch/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/retroarch/retroarch.cfg fi @@ -632,15 +614,11 @@ finit() { # PICO-8 dir_prep "$roms_folder/pico8" "$rdhome/bios/pico8/bbs/carts" #this is the folder where pico-8 is saving the carts - overwrite_configs=true - ra_init standalones_init tools_init create_lock - overwrite_configs=false - zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK" \ @@ -687,15 +665,11 @@ https://retrodeck.net exit ;; --reset-ra*) - overwrite_configs=true ra_init - overwrite_configs=false shift # past argument with no value ;; --reset-sa*) - overwrite_configs=true standalones_init - overwrite_configs=false shift # past argument with no value ;; --reset-tools*) From 2e78ba5d5a20e86d4b90c48c1bd6443b3a310068 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Tue, 18 Oct 2022 10:10:32 -0400 Subject: [PATCH 13/22] Revert "Fix overwrite check" This reverts commit 9fa49ff9047f90c9677a2e86182c8c061e886505. --- retrodeck.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retrodeck.sh b/retrodeck.sh index 0aa63af5..243a54e4 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -209,7 +209,7 @@ ra_init() { mkdir -pv /var/config/retroarch/cores/ cp /app/share/libretro/cores/* /var/config/retroarch/cores/ cp -fv $emuconfigs/retroarch.cfg /var/config/retroarch/ - if [ $overwrite_configs = true ]; then + if [[ overwrite_configs ]]; then cp -fv $emuconfigs/retroarch-core-options.cfg /var/config/retroarch/ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/retroarch/retroarch.cfg fi From d6d4fb4ac1a04fa73b66912f9feedf93eba6cbbb Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Tue, 18 Oct 2022 10:11:24 -0400 Subject: [PATCH 14/22] Revert "Fix update check, save RA cfg after 0.5.0b update" This reverts commit ef29a3644bc9b96f27e27138efe611fb63a79aac. --- retrodeck.sh | 39 +++++++++++---------------------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index 243a54e4..838c639a 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -209,12 +209,9 @@ ra_init() { mkdir -pv /var/config/retroarch/cores/ cp /app/share/libretro/cores/* /var/config/retroarch/cores/ cp -fv $emuconfigs/retroarch.cfg /var/config/retroarch/ - if [[ overwrite_configs ]]; then cp -fv $emuconfigs/retroarch-core-options.cfg /var/config/retroarch/ - sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/retroarch/retroarch.cfg - fi #rm -rf $rdhome/bios/bios # in some situations a double bios symlink is created - + sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/retroarch/retroarch.cfg # PPSSPP echo "--------------------------------" @@ -298,9 +295,18 @@ post_update() { # 0.4 -> 0.5 # Perform save and state migration if needed + # Moving PCSX2 Saves + mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2 + mv -fv /var/config/PCSX2/memcards/* $rdhome/saves/ps2/memcards + + # Moving Citra saves from legacy location to 0.5.0b structure + + mv -fv $rdhome/saves/Citra/* $rdhome/saves/n3ds/citra + rmdir $rdhome/saves/Citra # Old folder cleanup + versionwheresaveschanged="0.4.5b" # Hardcoded break point between unsorted and sorted saves - if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5 + if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $hard_version) == $(sed -e "s/\.//g" <<< $version) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5 migration_logfile=$rdhome/.logs/savemove_"$(date +"%Y_%m_%d_%I_%M_%p").log" save_backup_file=$rdhome/savebackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" state_backup_file=$rdhome/statesbackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" @@ -421,27 +427,6 @@ post_update() { echo "Version" $version "is after the save and state organization was changed, no need to sort again" fi - if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]]; then # Check if user is upgrading from the version where save organization was changed. - overwrite_configs=true - fi - - # Moving PCSX2 Saves if needed - if [[ -d /var/config/PCSX2 ]]; then - mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2 - mv -fv /var/config/PCSX2/memcards/* $rdhome/saves/ps2/memcards - fi - if [[ -d $rdhome/saves/PS2 ]] # This appears to have been a legacy location that no longer works under the new structure. - mv -fv $rdhome/saves/PS2/* $rdhome/saves/ps2 - rmdir $rdhome/saves/PS2 - fi - - # Moving Citra saves from legacy location to 0.5.0b structure if needed - if [[ -d $rdhome/saves/Citra ]]; then - mv -fv $rdhome/saves/Citra/* $rdhome/saves/n3ds/citra - rmdir $rdhome/saves/Citra # Old folder cleanup - fi - - ( ra_init standalones_init tools_init @@ -455,8 +440,6 @@ post_update() { --auto-close create_lock - - overwrite_configs=false } start_retrodeck() { From 34bbde65343dc2d91ecef34f78c533de5a742d2f Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Tue, 18 Oct 2022 15:15:06 -0400 Subject: [PATCH 15/22] Fix update check again --- retrodeck.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/retrodeck.sh b/retrodeck.sh index 838c639a..9234f3e3 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -306,7 +306,7 @@ post_update() { versionwheresaveschanged="0.4.5b" # Hardcoded break point between unsorted and sorted saves - if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $hard_version) == $(sed -e "s/\.//g" <<< $version) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5 + if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5 migration_logfile=$rdhome/.logs/savemove_"$(date +"%Y_%m_%d_%I_%M_%p").log" save_backup_file=$rdhome/savebackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" state_backup_file=$rdhome/statesbackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" From 0a44c524eac0f6c36d811e227cbcb5f35c1756c6 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Tue, 18 Oct 2022 16:18:42 -0400 Subject: [PATCH 16/22] This progress window is broken in some way --- retrodeck.sh | 303 +++++++++++++++++++++++++-------------------------- 1 file changed, 148 insertions(+), 155 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index 9234f3e3..0cf06dad 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -256,190 +256,183 @@ create_lock() { } post_update() { - # post update script - echo "Executing post-update script" + # post update script + echo "Executing post-update script" - # Finding existing ROMs folder - if [ -d "$default_sd/retrodeck" ] - then - # ROMs on SD card - roms_folder="$default_sd/retrodeck/roms" - else - # ROMs on Internal - roms_folder="$HOME/retrodeck/roms" - fi - echo "ROMs folder found at $roms_folder" + # Finding existing ROMs folder + if [ -d "$default_sd/retrodeck" ] + then + # ROMs on SD card + roms_folder="$default_sd/retrodeck/roms" + else + # ROMs on Internal + roms_folder="$HOME/retrodeck/roms" + fi + echo "ROMs folder found at $roms_folder" - # Unhiding downloaded media from the previous versions - if [ -d "$rdhome/.downloaded_media" ] - then - mv -fv "$rdhome/.downloaded_media" "$media_folder" - fi + # Unhiding downloaded media from the previous versions + if [ -d "$rdhome/.downloaded_media" ] + then + mv -fv "$rdhome/.downloaded_media" "$media_folder" + fi - # Unhiding themes folder from the previous versions - if [ -d "$rdhome/.themes" ] - then - mv -fv "$rdhome/.themes" "$themes_folder" - fi + # Unhiding themes folder from the previous versions + if [ -d "$rdhome/.themes" ] + then + mv -fv "$rdhome/.themes" "$themes_folder" + fi - # Doing the dir prep as we don't know from which version we came - dir_prep "$media_folder" "/var/config/emulationstation/.emulationstation/downloaded_media" - dir_prep "$themes_folder" "/var/config/emulationstation/.emulationstation/themes" - mkdir -pv $rdhome/.logs #this was added later, maybe safe to remove in a few versions + # Doing the dir prep as we don't know from which version we came + dir_prep "$media_folder" "/var/config/emulationstation/.emulationstation/downloaded_media" + dir_prep "$themes_folder" "/var/config/emulationstation/.emulationstation/themes" + mkdir -pv $rdhome/.logs #this was added later, maybe safe to remove in a few versions - # Resetting es_settings, now we need it but in the future I should think a better solution, maybe with sed - cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml + # Resetting es_settings, now we need it but in the future I should think a better solution, maybe with sed + cp -fv /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml - # 0.4 -> 0.5 - # Perform save and state migration if needed + # 0.4 -> 0.5 + # Perform save and state migration if needed - # Moving PCSX2 Saves - mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2 - mv -fv /var/config/PCSX2/memcards/* $rdhome/saves/ps2/memcards + # Moving PCSX2 Saves + mv -fv /var/config/PCSX2/sstates/* $rdhome/states/ps2/pcsx2 + mv -fv /var/config/PCSX2/memcards/* $rdhome/saves/ps2/memcards - # Moving Citra saves from legacy location to 0.5.0b structure + # Moving Citra saves from legacy location to 0.5.0b structure - mv -fv $rdhome/saves/Citra/* $rdhome/saves/n3ds/citra - rmdir $rdhome/saves/Citra # Old folder cleanup + mv -fv $rdhome/saves/Citra/* $rdhome/saves/n3ds/citra + rmdir $rdhome/saves/Citra # Old folder cleanup - versionwheresaveschanged="0.4.5b" # Hardcoded break point between unsorted and sorted saves + versionwheresaveschanged="0.4.5b" # Hardcoded break point between unsorted and sorted saves - if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5 - migration_logfile=$rdhome/.logs/savemove_"$(date +"%Y_%m_%d_%I_%M_%p").log" - save_backup_file=$rdhome/savebackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" - state_backup_file=$rdhome/statesbackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" + if [[ $(sed -e "s/\.//g" <<< $hard_version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]] && [[ ! $(sed -e "s/\.//g" <<< $version) > $(sed -e "s/\.//g" <<< $versionwheresaveschanged) ]]; then # Check if user is upgrading from the version where save organization was changed. Try not to reuse this, it things 0.4.5b is newer than 0.4.5 + migration_logfile=$rdhome/.logs/savemove_"$(date +"%Y_%m_%d_%I_%M_%p").log" + save_backup_file=$rdhome/savebackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" + state_backup_file=$rdhome/statesbackup_"$(date +"%Y_%m_%d_%I_%M_%p").zip" - zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ - --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ - --title "RetroDECK" \ - --text="You are updating to a version of RetroDECK where save file locations have changed!\n\nYour existing files will be backed up for safety and then sorted automatically.\n\nIf a file cannot be sorted automatically it will remain where it is for manual sorting.\n\nPLEASE BE PATIENT! This process can take several minutes if you have a large ROM library." + zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK" \ + --text="You are updating to a version of RetroDECK where save file locations have changed!\n\nYour existing files will be backed up for safety and then sorted automatically.\n\nIf a file cannot be sorted automatically it will remain where it is for manual sorting.\n\nPLEASE BE PATIENT! This process can take several minutes if you have a large ROM library." - allgames=($(find "$roms_folder" -maxdepth 2 -mindepth 2 ! -name "systeminfo.txt" ! -name "systems.txt" ! -name "gc" ! -name "n3ds" ! -name "nds" ! -name "wii" ! -name "xbox" ! -name "*^*" | sed -e "s/ /\^/g")) # Build an array of all games and multi-disc-game-containing folders, adding whitespace placeholder + allgames=($(find "$roms_folder" -maxdepth 2 -mindepth 2 ! -name "systeminfo.txt" ! -name "systems.txt" ! -name "gc" ! -name "n3ds" ! -name "nds" ! -name "wii" ! -name "xbox" ! -name "*^*" | sed -e "s/ /\^/g")) # Build an array of all games and multi-disc-game-containing folders, adding whitespace placeholder - allsaves=($(find "$saves_folder" -mindepth 1 -maxdepth 1 -name "*.*" ! -name "gc" ! -name "n3ds" ! -name "nds" ! -name "wii" ! -name "xbox" | sed -e "s/ /\^/g")) # Build an array of all save files, ignoring standalone emulator sub-folders, adding whitespace placeholder + allsaves=($(find "$saves_folder" -mindepth 1 -maxdepth 1 -name "*.*" ! -name "gc" ! -name "n3ds" ! -name "nds" ! -name "wii" ! -name "xbox" | sed -e "s/ /\^/g")) # Build an array of all save files, ignoring standalone emulator sub-folders, adding whitespace placeholder - allstates=($(find "$states_folder" -mindepth 1 -maxdepth 1 -name "*.*" ! -name "gc" ! -name "n3ds" ! -name "nds" ! -name "wii" ! -name "xbox" | sed -e "s/ /\^/g")) # Build an array of all state files, ignoring standalone emulator sub-folders, adding whitespace placeholder + allstates=($(find "$states_folder" -mindepth 1 -maxdepth 1 -name "*.*" ! -name "gc" ! -name "n3ds" ! -name "nds" ! -name "wii" ! -name "xbox" | sed -e "s/ /\^/g")) # Build an array of all state files, ignoring standalone emulator sub-folders, adding whitespace placeholder - totalsaves=${#allsaves[@]} - totalstates=${#allstates[@]} - filesleft= - current_dest_folder= - gamestoskip= + totalsaves=${#allsaves[@]} + totalstates=${#allstates[@]} + filesleft= + current_dest_folder= + gamestoskip= - tar -C $rdhome -czf $save_backup_file saves # Backup save directory for safety - echo "Saves backed up to" $save_backup_file >> $migration_logfile - tar -C $rdhome -czf $state_backup_file states # Backup state directory for safety - echo "States backed up to" $state_backup_file >> $migration_logfile + tar -C $rdhome -czf $save_backup_file saves # Backup save directory for safety + echo "Saves backed up to" $save_backup_file >> $migration_logfile + tar -C $rdhome -czf $state_backup_file states # Backup state directory for safety + echo "States backed up to" $state_backup_file >> $migration_logfile - ( - movefile() { # Take matching save and rom files and sort save into appropriate system folder - echo "# $filesleft $currentlybeingmoved remaining..." # These lines update the Zenity progress bar - progress=$(( 100 - (( 100 / "$totalfiles" ) * "$filesleft" ))) - echo $progress - filesleft=$((filesleft-1)) - if [[ ! " ${gamestoskip[*]} " =~ " ${1} " ]]; then # If the current game name exists multiple times in array ie. /roms/snes/Mortal Kombat 3.zip and /roms/genesis/Mortal Kombat 3.zip, skip and alert user to sort manually - game=$(sed -e "s/\^/ /g" <<< "$1") # Remove whitespace placeholder - gamebasename=$(basename "$game" | sed -e 's/\..*//') # Extract pure file name ie. /roms/snes/game1.zip becomes game1 - systemdir="$(basename "$(dirname "$1")")" # Extract parent directory identifying system ROM belongs to - matches=($(find "$roms_folder" -maxdepth 2 -mindepth 2 -name "$gamebasename"".*" | sed -e 's/ /^/g' | sed -e 's/\..*//')) # Search for multiple instances of pure game name, adding to skip list if found - if [[ ${#matches[@]} -gt 1 ]]; then - echo "ERROR: Multiple ROMS found with name:" $gamebasename "Please sort saves and states for these ROMS manually" >> $migration_logfile - gamestoskip+=("$1") - return - fi - echo "INFO: Examining ROM file:" "$game" >> $migration_logfile - echo "INFO: System detected as" $systemdir >> $migration_logfile - sosfile=$(sed -e "s/\^/ /g" <<< "$2") # Remove whitespace placeholder from s-ave o-r s-tate file - sospurebasename="$(basename "$sosfile")" # Extract pure file name ie. /saves/game1.sav becomes game1 - echo "INFO: Current save or state being examined for match:" $sosfile >> $migration_logfile - echo "INFO: Matching save or state" $sosfile "and game" $game "found." >> $migration_logfile - echo "INFO: Moving save or state to" $current_dest_folder"/"$systemdir"/"$sosbasename >> $migration_logfile - if [[ ! -d $current_dest_folder"/"$systemdir ]]; then # If system directory doesn't exist for save yet, create it - echo "WARNING: Creating missing system directory" $current_dest_folder"/"$systemdir - mkdir $current_dest_folder/$systemdir - fi - mv "$sosfile" -t $current_dest_folder/$systemdir # Move save to appropriate system directory + ( + movefile() { # Take matching save and rom files and sort save into appropriate system folder + echo "# $filesleft $currentlybeingmoved remaining..." # These lines update the Zenity progress bar + progress=$(( 100 - (( 100 / "$totalfiles" ) * "$filesleft" ))) + echo $progress + filesleft=$((filesleft-1)) + if [[ ! " ${gamestoskip[*]} " =~ " ${1} " ]]; then # If the current game name exists multiple times in array ie. /roms/snes/Mortal Kombat 3.zip and /roms/genesis/Mortal Kombat 3.zip, skip and alert user to sort manually + game=$(sed -e "s/\^/ /g" <<< "$1") # Remove whitespace placeholder + gamebasename=$(basename "$game" | sed -e 's/\..*//') # Extract pure file name ie. /roms/snes/game1.zip becomes game1 + systemdir="$(basename "$(dirname "$1")")" # Extract parent directory identifying system ROM belongs to + matches=($(find "$roms_folder" -maxdepth 2 -mindepth 2 -name "$gamebasename"".*" | sed -e 's/ /^/g' | sed -e 's/\..*//')) # Search for multiple instances of pure game name, adding to skip list if found + if [[ ${#matches[@]} -gt 1 ]]; then + echo "ERROR: Multiple ROMS found with name:" $gamebasename "Please sort saves and states for these ROMS manually" >> $migration_logfile + gamestoskip+=("$1") return - else - echo "WARNING: Game with name" "$(basename "$1" | sed -e "s/\^/ /g")" "already found. Skipping to next game..." >> $migration_logfile # Inform user of game being skipped due to duplicate ROM names fi - } - - find "$roms_folder" -mindepth 2 -maxdepth 2 -name "*\^*" -exec echo "ERROR: Game named" {} "found, please move save manually" \; >> $migration_logfile # Warn user if any of their files have the whitespace replacement character used by the script - - totalfiles=$totalsaves #set variables for save file migration - filesleft=$totalsaves - currentlybeingmoved="saves" - current_dest_folder=$saves_folder - - for i in "${allsaves[@]}"; do # For each save file, compare to every ROM file name looking for a match - found= - currentsave=($(basename "$i" | sed -e 's/\..*//')) # Extract pure file name ie. /saves/game1.sav becomes game1 - for j in "${allgames[@]}"; do - currentgame=($(basename "$j" | sed -e 's/\..*//')) # Extract pure file name ie. /roms/snes/game1.zip becomes game1 - [[ $currentgame == $currentsave ]] && { found=1; break; } # If names match move to next stage, otherwise skip - done - [[ -n $found ]] && movefile $j $i || echo "ERROR: No ROM match found for save file" $i | sed -e 's/\^/ /g' >> $migration_logfile # If a match is found, run movefile() otherwise warn user of stranded save file - done - - totalfiles=$totalstates #set variables for state file migration - filesleft=$totalstates - currentlybeingmoved="states" - current_dest_folder=$states_folder - - for i in "${allstates[@]}"; do # For each state file, compare to every ROM file name looking for a match - found= - currentstate=($(basename "$i" | sed -e 's/\..*//')) # Extract pure file name ie. /states/game1.sav becomes game1 - for j in "${allgames[@]}"; do - currentgame=($(basename "$j" | sed -e 's/\..*//')) # Extract pure file name ie. /roms/snes/game1.zip becomes game1 - [[ $currentgame == $currentstate ]] && { found=1; break; } # If names match move to next stage, otherwise skip - done - [[ -n $found ]] && movefile $j $i || echo "ERROR: No ROM match found for state file" $i | sed -e 's/\^/ /g' >> $migration_logfile # If a match is found, run movefile() otherwise warn user of stranded state file - done - - ) | - zenity --progress \ - --icon-name=net.retrodeck.retrodeck \ - --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ - --title="Processing Files" \ - --text="# files remaining..." \ - --percentage=0 \ - --no-cancel \ - --auto-close - - if [[ $(cat $migration_logfile | grep "ERROR" | wc -l) -eq 0 ]]; then - zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ - --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ - --title "RetroDECK" \ - --text="The migration process has sorted all of your files automatically.\n\nEverything should be working normally, if you experience any issues please check the RetroDECK wiki or contact us directly on the Discord." - + echo "INFO: Examining ROM file:" "$game" >> $migration_logfile + echo "INFO: System detected as" $systemdir >> $migration_logfile + sosfile=$(sed -e "s/\^/ /g" <<< "$2") # Remove whitespace placeholder from s-ave o-r s-tate file + sospurebasename="$(basename "$sosfile")" # Extract pure file name ie. /saves/game1.sav becomes game1 + echo "INFO: Current save or state being examined for match:" $sosfile >> $migration_logfile + echo "INFO: Matching save or state" $sosfile "and game" $game "found." >> $migration_logfile + echo "INFO: Moving save or state to" $current_dest_folder"/"$systemdir"/"$sosbasename >> $migration_logfile + if [[ ! -d $current_dest_folder"/"$systemdir ]]; then # If system directory doesn't exist for save yet, create it + echo "WARNING: Creating missing system directory" $current_dest_folder"/"$systemdir + mkdir $current_dest_folder/$systemdir + fi + mv "$sosfile" -t $current_dest_folder/$systemdir # Move save to appropriate system directory + return else - cat $migration_logfile | grep "ERROR" > "$rdhome/manual_sort_needed.log" - zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ - --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ - --title "RetroDECK" \ - --text="The migration process was unable to sort $(cat $migration_logfile | grep "ERROR" | wc -l) files automatically.\n\nThese files will need to be moved manually to their new locations, find more detail on the RetroDECK wiki.\n\nA log of the files that need manual sorting can be found at $rdhome/manual_sort_needed.log" + echo "WARNING: Game with name" "$(basename "$1" | sed -e "s/\^/ /g")" "already found. Skipping to next game..." >> $migration_logfile # Inform user of game being skipped due to duplicate ROM names fi + } + + find "$roms_folder" -mindepth 2 -maxdepth 2 -name "*\^*" -exec echo "ERROR: Game named" {} "found, please move save manually" \; >> $migration_logfile # Warn user if any of their files have the whitespace replacement character used by the script + + totalfiles=$totalsaves #set variables for save file migration + filesleft=$totalsaves + currentlybeingmoved="saves" + current_dest_folder=$saves_folder + + for i in "${allsaves[@]}"; do # For each save file, compare to every ROM file name looking for a match + found= + currentsave=($(basename "$i" | sed -e 's/\..*//')) # Extract pure file name ie. /saves/game1.sav becomes game1 + for j in "${allgames[@]}"; do + currentgame=($(basename "$j" | sed -e 's/\..*//')) # Extract pure file name ie. /roms/snes/game1.zip becomes game1 + [[ $currentgame == $currentsave ]] && { found=1; break; } # If names match move to next stage, otherwise skip + done + [[ -n $found ]] && movefile $j $i || echo "ERROR: No ROM match found for save file" $i | sed -e 's/\^/ /g' >> $migration_logfile # If a match is found, run movefile() otherwise warn user of stranded save file + done + + totalfiles=$totalstates #set variables for state file migration + filesleft=$totalstates + currentlybeingmoved="states" + current_dest_folder=$states_folder + + for i in "${allstates[@]}"; do # For each state file, compare to every ROM file name looking for a match + found= + currentstate=($(basename "$i" | sed -e 's/\..*//')) # Extract pure file name ie. /states/game1.sav becomes game1 + for j in "${allgames[@]}"; do + currentgame=($(basename "$j" | sed -e 's/\..*//')) # Extract pure file name ie. /roms/snes/game1.zip becomes game1 + [[ $currentgame == $currentstate ]] && { found=1; break; } # If names match move to next stage, otherwise skip + done + [[ -n $found ]] && movefile $j $i || echo "ERROR: No ROM match found for state file" $i | sed -e 's/\^/ /g' >> $migration_logfile # If a match is found, run movefile() otherwise warn user of stranded state file + done + + ) | + zenity --progress \ + --icon-name=net.retrodeck.retrodeck \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title="Processing Files" \ + --text="# files remaining..." \ + --percentage=0 \ + --no-cancel \ + --auto-close + + if [[ $(cat $migration_logfile | grep "ERROR" | wc -l) -eq 0 ]]; then + zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK" \ + --text="The migration process has sorted all of your files automatically.\n\nEverything should be working normally, if you experience any issues please check the RetroDECK wiki or contact us directly on the Discord." else - echo "Version" $version "is after the save and state organization was changed, no need to sort again" + cat $migration_logfile | grep "ERROR" > "$rdhome/manual_sort_needed.log" + zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK" \ + --text="The migration process was unable to sort $(cat $migration_logfile | grep "ERROR" | wc -l) files automatically.\n\nThese files will need to be moved manually to their new locations, find more detail on the RetroDECK wiki.\n\nA log of the files that need manual sorting can be found at $rdhome/manual_sort_needed.log" fi - ra_init - standalones_init - tools_init - ) | - zenity --progress --pulsate \ - --icon-name=net.retrodeck.retrodeck \ - --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ - --title="Finishing upgrade" \ - --text="Finishing upgrade, please wait." \ - --no-cancel \ - --auto-close + else + echo "Version" $version "is after the save and state organization was changed, no need to sort again" + fi - create_lock + ra_init + standalones_init + tools_init + + + create_lock } start_retrodeck() { From 89992be641d32424fd004ad3ecf842575b0457ab Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Tue, 18 Oct 2022 17:19:00 -0400 Subject: [PATCH 17/22] Fixed, zenity didn't like non-quiet unzip --- retrodeck.sh | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/retrodeck.sh b/retrodeck.sh index 0cf06dad..f4ecbbd2 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -174,7 +174,7 @@ standalones_init() { if [ ! -f $rdhome/bios/xbox_hdd.qcow2 ] then wget "https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip" -P $rdhome/bios/ - unzip $rdhome/bios/xbox_hdd.qcow2.zip $rdhome/bios/ + unzip -q $rdhome/bios/xbox_hdd.qcow2.zip $rdhome/bios/ rm -rfv $rdhome/bios/xbox_hdd.qcow2.zip fi @@ -225,7 +225,7 @@ ra_init() { #if [ ! -f "$rdhome/bios/PPSSPP/ppge_atlas.zim" ] #then wget "https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip" -P $rdhome/bios/PPSSPP - unzip "$rdhome/bios/PPSSPP/master.zip" -d $rdhome/bios/PPSSPP/ + unzip -q "$rdhome/bios/PPSSPP/master.zip" -d $rdhome/bios/PPSSPP/ mv "$rdhome/bios/PPSSPP/ppsspp-master/assets/"* "$rdhome/bios/PPSSPP/" rm -rfv "$rdhome/bios/PPSSPP/master.zip" rm -rfv "$rdhome/bios/PPSSPP/ppsspp-master" @@ -241,7 +241,7 @@ ra_init() { echo "Initializing MSX / SVI / ColecoVision / SG-1000 LIBRETRO" echo "-----------------------------------------------------------" wget "http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip" -P $rdhome/bios/MSX - unzip "$rdhome/bios/MSX/blueMSXv282full.zip" $rdhome/bios/MSX + unzip -q "$rdhome/bios/MSX/blueMSXv282full.zip" $rdhome/bios/MSX mv -rfv $rdhome/bios/MSX/Databases $rdhome/bios/Databases mv -rfv $rdhome/bios/MSX/Machines $rdhome/bios/Machines rm -rfv $rdhome/bios/MSX @@ -427,10 +427,15 @@ post_update() { echo "Version" $version "is after the save and state organization was changed, no need to sort again" fi + ( ra_init standalones_init tools_init - + ) | + zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK Finishing Upgrade" \ + --text="RetroDECK is finishing the upgrade process, please wait." create_lock } From 8c2ce740737a5e2f497304909dcd69c7f3835885 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Fri, 21 Oct 2022 15:03:33 -0400 Subject: [PATCH 18/22] Change PSP and 3DS defaults to standalones --- es-configs/es_systems.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index 67b34bf2..f94ec2c1 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -824,9 +824,9 @@ <fullname>Nintendo 3DS</fullname> <path>%ROMPATH%/n3ds</path> <extension>.3ds .3DS .3dsx .3DSX .app .APP .axf .AXF .cci .CCI .cxi .CXI .elf .ELF .7z .7Z .zip .ZIP</extension> + <command label="Citra (Standalone)">%EMULATOR_CITRA% %ROM%</command> <command label="Citra">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/citra_libretro.so %ROM%</command> <command label="Citra 2018">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/citra2018_libretro.so %ROM%</command> - <command label="Citra (Standalone)">%EMULATOR_CITRA% %ROM%</command> <platform>n3ds</platform> <theme>n3ds</theme> </system> @@ -1102,8 +1102,8 @@ <fullname>Sony PlayStation Portable</fullname> <path>%ROMPATH%/psp</path> <extension>.elf .ELF .iso .ISO .cso .CSO .prx .PRX .pbp .PBP .7z .7Z .zip .ZIP</extension> - <command label="PPSSPP">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/ppsspp_libretro.so %ROM%</command> <command label="PPSSPP (Standalone)">%EMULATOR_PPSSPP% %ROM%</command> + <command label="PPSSPP">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/ppsspp_libretro.so %ROM%</command> <platform>psp</platform> <theme>psp</theme> </system> From 3f9063af002b527befe4b90a6a997641e7230791 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Fri, 21 Oct 2022 15:21:07 -0400 Subject: [PATCH 19/22] Symlink rom folder back to ~/retrodeck to fix #170 --- retrodeck.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/retrodeck.sh b/retrodeck.sh index f4ecbbd2..89866bf7 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -264,6 +264,9 @@ post_update() { then # ROMs on SD card roms_folder="$default_sd/retrodeck/roms" + if [[ ! -L $rdhome && ! -L $rdhome/roms ]]; then # Add a roms folder symlink back to ~/retrodeck if missing, to fix things like PS2 autosaves until user migrates whole ~retrodeck directory + ln -s $roms_folder $rdhome/roms + fi else # ROMs on Internal roms_folder="$HOME/retrodeck/roms" From c9d85b5f30499097e1e9d2f8f885ffd0bc0bd41b Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Fri, 21 Oct 2022 17:17:27 -0400 Subject: [PATCH 20/22] Fix PPSSPP RA core save issues --- emu-configs/retroarch-core-overrides/PPSSPP/PPSSPP.cfg | 1 + retrodeck.sh | 1 + 2 files changed, 2 insertions(+) create mode 100644 emu-configs/retroarch-core-overrides/PPSSPP/PPSSPP.cfg diff --git a/emu-configs/retroarch-core-overrides/PPSSPP/PPSSPP.cfg b/emu-configs/retroarch-core-overrides/PPSSPP/PPSSPP.cfg new file mode 100644 index 00000000..677a054e --- /dev/null +++ b/emu-configs/retroarch-core-overrides/PPSSPP/PPSSPP.cfg @@ -0,0 +1 @@ +sort_savefiles_by_content_enable = "false" \ No newline at end of file diff --git a/retrodeck.sh b/retrodeck.sh index 89866bf7..84ae6b3d 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -210,6 +210,7 @@ ra_init() { cp /app/share/libretro/cores/* /var/config/retroarch/cores/ cp -fv $emuconfigs/retroarch.cfg /var/config/retroarch/ cp -fv $emuconfigs/retroarch-core-options.cfg /var/config/retroarch/ + cp -rfv $emuconfigs/retroarch-core-overrides/* /var/config/retroarch/config #rm -rf $rdhome/bios/bios # in some situations a double bios symlink is created sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/retroarch/retroarch.cfg From 9926efba8b473a803db0e28b8efba7a3fe05a504 Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Fri, 21 Oct 2022 17:48:54 -0400 Subject: [PATCH 21/22] Revert PSP emulator priority --- es-configs/es_systems.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index f94ec2c1..1a9909c0 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -1102,8 +1102,8 @@ <fullname>Sony PlayStation Portable</fullname> <path>%ROMPATH%/psp</path> <extension>.elf .ELF .iso .ISO .cso .CSO .prx .PRX .pbp .PBP .7z .7Z .zip .ZIP</extension> - <command label="PPSSPP (Standalone)">%EMULATOR_PPSSPP% %ROM%</command> <command label="PPSSPP">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/ppsspp_libretro.so %ROM%</command> + <command label="PPSSPP (Standalone)">%EMULATOR_PPSSPP% %ROM%</command> <platform>psp</platform> <theme>psp</theme> </system> From e0326f3b4d471fb59b05ee628921cdae712e77cc Mon Sep 17 00:00:00 2001 From: icenine451 <benjamin.r.shelton@protonmail.com> Date: Fri, 21 Oct 2022 18:01:19 -0400 Subject: [PATCH 22/22] Re-add this progress dialog --- retrodeck.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/retrodeck.sh b/retrodeck.sh index 84ae6b3d..95f73f05 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -599,9 +599,15 @@ finit() { # PICO-8 dir_prep "$roms_folder/pico8" "$rdhome/bios/pico8/bbs/carts" #this is the folder where pico-8 is saving the carts + ( ra_init standalones_init tools_init + ) | + zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK Finishing Upgrade" \ + --text="RetroDECK is finishing the upgrade process, please wait." create_lock zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \