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 \