From f29b9df918f29b2171d4029d080c9e4a759e9e89 Mon Sep 17 00:00:00 2001
From: icenine451 <benjamin.r.shelton@protonmail.com>
Date: Sat, 31 Dec 2022 10:29:13 -0500
Subject: [PATCH 1/2] Fix symlink creation after migration

---
 tools/configurator.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/configurator.sh b/tools/configurator.sh
index e851fa06..fbb90070 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -417,7 +417,7 @@ configurator_move_dialog() {
             fi
 
             if [[ ! -L "$HOME/retrodeck" ]]; then # Always link back to original directory
-              ln -svf "$sdcard/retrodeck" "$HOME/retrodeck"
+              ln -svf "$sdcard/retrodeck" "$HOME"
             fi
 
             rdhome="$sdcard/retrodeck"
@@ -466,7 +466,7 @@ configurator_move_dialog() {
           fi
 
           if [[ ! -L "$HOME/retrodeck" ]]; then
-            ln -svf "$custom_dest/retrodeck" "$HOME/retrodeck"
+            ln -svf "$custom_dest/retrodeck" "$HOME"
           fi
 
           rdhome="$custom_dest/retrodeck"

From 8d59554986a8e3da4791d05e13da21a1c9671e8a Mon Sep 17 00:00:00 2001
From: icenine451 <benjamin.r.shelton@protonmail.com>
Date: Sat, 31 Dec 2022 11:37:12 -0500
Subject: [PATCH 2/2] Added Primehack specific options

---
 functions.sh          | 33 +++++++++++++++++++++++++++++----
 tools/configurator.sh | 24 ++++++++++++++++++------
 2 files changed, 47 insertions(+), 10 deletions(-)

diff --git a/functions.sh b/functions.sh
index 41862417..8fe5ae7e 100644
--- a/functions.sh
+++ b/functions.sh
@@ -565,6 +565,22 @@ dolphin_init() {
   dir_prep "$rdhome/saves/wii/dolphin" "/var/data/dolphin-emu/Wii"
 }
 
+primehack_init() {
+  echo "----------------------"
+  echo "Initializing Primehack"
+  echo "----------------------"
+  mkdir -pv /var/config/primehack/
+  cp -fvr "$emuconfigs/primehack/"* /var/config/primehack/
+  sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/primehack/Dolphin.ini
+  dir_prep "$rdhome/saves/gc/primehack/EUR" "/var/data/primehack/GC/EUR"
+  dir_prep "$rdhome/saves/gc/primehack/USA" "/var/data/primehack/GC/USA"
+  dir_prep "$rdhome/saves/gc/primehack/JAP" "/var/data/primehack/GC/JAP"
+  dir_prep "$rdhome/screenshots" "/var/data/primehack/ScreenShots"
+  dir_prep "$rdhome/states" "/var/data/primehack/StateSaves"
+  mkdir -pv /var/data/primehack/Wii/
+  dir_prep "$rdhome/saves/wii/primehack" "/var/data/primehack/Wii"
+}
+
 pcsx2_init() {
   echo "----------------------"
   echo "Initializing PCSX2"
@@ -670,17 +686,17 @@ standalones_init() {
   echo "------------------------------------"
   echo "Initializing standalone emulators"
   echo "------------------------------------"
-
-  yuzu_init
   citra_init
   dolphin_init
+  duckstation_init
   melonds_init
   pcsx2_init
   ppssppsdl_init
+  primehack_init
   rpcs3_init
-  xemu_init
-  duckstation_init
   ryujinx_init
+  xemu_init
+  yuzu_init
 }
 
 emulators_post_move() {
@@ -713,6 +729,15 @@ emulators_post_move() {
   dir_prep "$rdhome/states" "/var/data/dolphin-emu/StateSaves"
   dir_prep "$rdhome/saves/wii/dolphin" "/var/data/dolphin-emu/Wii/"
 
+  # Primehack section
+  sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/primehack/Dolphin.ini
+  dir_prep "$rdhome/saves/gc/primehack/EUR" "/var/data/primehack/GC/EUR"
+  dir_prep "$rdhome/saves/gc/primehack/USA" "/var/data/primehack/GC/USA"
+  dir_prep "$rdhome/saves/gc/primehack/JAP" "/var/data/primehack/GC/JAP"
+  dir_prep "$rdhome/screenshots" "/var/data/primehack/ScreenShots"
+  dir_prep "$rdhome/states" "/var/data/primehack/StateSaves"
+  dir_prep "$rdhome/saves/wii/primehack" "/var/data/primehack/Wii/"
+
   # PCSX2 section
   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
diff --git a/tools/configurator.sh b/tools/configurator.sh
index fbb90070..9f15adf8 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -23,16 +23,17 @@ source /app/libexec/functions.sh # uncomment for flatpak testing
 #     - Reset RetroDECK
 #       - Reset RetroArch
 #       - Reset Specific Standalone Emulator
-#           - Reset Yuzu
-#           - Reset Dolphin
-#           - Reset PCSX2
-#           - Reset MelonDS
 #           - Reset Citra
+#           - Reset Dolphin
+#           - Reset Duckstation
+#           - Reset MelonDS
+#           - Reset PCSX2
+#           - Reset PPSSPP
+#           - Reset Primehack
 #           - Reset RPCS3
 #           - Reset Ryujinx
 #           - Reset XEMU
-#           - Reset PPSSPP
-#           - Reset Duckstation
+#           - Reset Yuzu
 #       - Reset All Standalone Emulators
 #       - Reset Tools
 #       - Reset All
@@ -72,6 +73,7 @@ configurator_reset_dialog() {
     "MelonDS" \
     "PCSX2" \
     "PPSSPP" \
+    "Primehack" \
     "RPCS3" \
     "Ryujinx" \
     "XEMU" \
@@ -114,6 +116,11 @@ configurator_reset_dialog() {
       configurator_process_complete_dialog "resetting $emulator_to_reset"
     ;;
 
+    "Primehack" )
+      primehack_init
+      configurator_process_complete_dialog "resetting $emulator_to_reset"
+    ;;
+
     "RPCS3" )
       rpcs3_init
       configurator_process_complete_dialog "resetting $emulator_to_reset"
@@ -216,6 +223,7 @@ configurator_power_user_changes_dialog() {
     "PCSX2-QT" \
     "PCSX2-Legacy" \
     "PPSSPP" \
+    "Primehack" \
     "RPCS3" \
     "Ryujinx" \
     "XEMU" \
@@ -255,6 +263,10 @@ configurator_power_user_changes_dialog() {
       PPSSPPSDL
     ;;
 
+    "Primehack" )
+      primehack-wrapper
+    ;;
+
     "RPCS3" )
       rpcs3
     ;;