2022-11-18 20:10:17 +00:00
#!/bin/bash
post_update( ) {
# post update script
echo "Executing post-update script"
2022-11-19 21:47:45 +00:00
local prev_version = $( sed -e 's/[\.a-z]//g' <<< $version )
2022-11-18 20:10:17 +00:00
2023-01-10 16:41:09 +00:00
if [ [ $prev_version -le "050" ] ] ; then # If updating from prior to save sorting change at 0.5.0b
2023-03-09 14:18:06 +00:00
save_migration
2022-11-19 21:47:45 +00:00
fi
2022-11-18 20:10:17 +00:00
2023-02-25 16:02:05 +00:00
# Everything within the following ( <code> ) will happen behind the Zenity dialog. The save migration was a long process so it has its own individual dialogs.
2022-11-18 20:10:17 +00:00
(
2023-02-25 16:02:05 +00:00
if [ [ $prev_version -le "062" ] ] ; then
# In version 0.6.2b, the following changes were made that required config file updates/reset:
2023-03-07 15:36:14 +00:00
# - Primehack preconfiguration completely redone. "Stop emulation" hotkey set to Start+Select, Xbox and Nintendo keymap profiles were created, Xbox set as default.
# - Duckstation save and state locations were dir_prep'd to the rdhome/save and /state folders, which was not previously done. Much safer now!
2023-03-14 14:33:24 +00:00
# - Fix PICO-8 folder structure. ROM and save folders are now sane and binary files will go into ~/retrodeck/bios/pico-8/
2023-03-15 23:58:02 +00:00
2023-02-25 16:11:40 +00:00
rm -rf /var/config/primehack # Purge old Primehack config files. Saves are safe as they are linked into /var/data/primehack.
2023-04-17 20:03:29 +00:00
prepare_emulator "reset" "primehack"
2023-03-07 15:36:14 +00:00
dir_prep " $rdhome /saves/duckstation " "/var/data/duckstation/memcards"
dir_prep " $rdhome /states/duckstation " "/var/data/duckstation/savestates"
2023-03-14 14:33:24 +00:00
mv " $bios_folder /pico8 " " $bios_folder /pico8_olddata " # Move legacy (and incorrect / non-functional ) PICO-8 location for future cleanup / less confusion
2023-03-16 00:01:53 +00:00
dir_prep " $bios_folder /pico-8 " " $HOME /.lexaloffle/pico-8 " # Store binary and config files together. The .lexaloffle directory is a hard-coded location for the PICO-8 config file, cannot be changed
2023-03-14 14:33:24 +00:00
dir_prep " $roms_folder /pico8 " " $bios_folder /pico-8/carts " # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway)
dir_prep " $bios_folder /pico-8/cdata " " $saves_folder /pico-8 " # PICO-8 saves folder
2023-02-25 16:02:05 +00:00
fi
2023-03-16 15:14:25 +00:00
if [ [ $prev_version -le "063" ] ] ; then
2023-03-31 19:45:46 +00:00
# In version 0.6.3b, the following changes were made that required config file updates/reset:
2023-03-16 15:14:25 +00:00
# - Put Dolphin and Primehack save states in different folders inside $rd_home/states
# - Fix symlink to hard-coded PICO-8 config folder (dir_prep doesn't like ~)
2023-03-21 15:11:20 +00:00
# - Overwrite Citra and Yuzu configs, as controller mapping was broken due to emulator updates.
2023-04-10 13:02:06 +00:00
2023-03-16 15:14:25 +00:00
dir_prep " $rdhome /states/dolphin " "/var/data/dolphin-emu/StateSaves"
dir_prep " $rdhome /states/primehack " "/var/data/primehack/StateSaves"
rm -rf " $HOME /~/ " # Remove old incorrect location from 0.6.2b
2023-03-22 16:41:26 +00:00
rm -f " $HOME /.lexaloffle/pico-8 " # Remove old symlink to prevent recursion
2023-03-16 15:14:25 +00:00
dir_prep " $bios_folder /pico-8 " " $HOME /.lexaloffle/pico-8 " # Store binary and config files together. The .lexaloffle directory is a hard-coded location for the PICO-8 config file, cannot be changed
2023-03-22 20:45:43 +00:00
dir_prep " $saves_folder /pico-8 " " $bios_folder /pico-8/cdata " # PICO-8 saves folder structure was backwards, fixing for consistency.
2023-03-21 15:11:20 +00:00
cp -fv $emuconfigs /citra/qt-config.ini /var/config/citra-emu/qt-config.ini
2023-03-21 20:00:30 +00:00
sed -i 's#RETRODECKHOMEDIR#' $rdhome '#g' /var/config/citra-emu/qt-config.ini
2023-03-21 15:11:20 +00:00
cp -fvr $emuconfigs /yuzu/* /var/config/yuzu/
2023-03-21 20:00:30 +00:00
sed -i 's#RETRODECKHOMEDIR#' $rdhome '#g' /var/config/yuzu/qt-config.ini
2023-03-22 18:42:06 +00:00
# Remove unneeded tools folder, as location has changed to RO space
rm -rfv /var/config/retrodeck/tools/
2023-03-16 15:14:25 +00:00
fi
2023-03-31 19:45:46 +00:00
if [ [ $prev_version -le "064" ] ] ; then
# In version 0.6.4b, the following changes were made:
# Changed settings in Primehack: The audio output was not selected by default, default AR was also incorrect.
# Changed settings in Duckstation and PCSX2: The "ask on exit" was disabled and "save on exit" was enabled.
# The default configs have been updated for new installs and resets, a patch was created to address existing installs.
deploy_multi_patch "emu-configs/patches/updates/064b_update.patch"
fi
2023-04-06 20:22:27 +00:00
if [ [ $prev_version -le "065" ] ] ; then
# In version 0.6.5b, the following changes were made:
# Change Yuzu GPU accuracy to normal for better performance
set_setting_value $yuzuconf "gpu_accuracy" "0" "yuzu" "Renderer"
fi
2023-03-10 21:54:07 +00:00
if [ [ $prev_version -le "070" ] ] ; then
# In version 0.7.0b, the following changes were made that required config file updates/reset or other changes to the filesystem:
# - New ~/retrodeck/mods and ~/retrodeck/texture_packs directories are added and symlinked to multiple different emulators (where supported)
2023-03-16 15:38:01 +00:00
# - Expose ES-DE gamelists folder to user at ~/retrodeck/gamelists
2023-04-05 18:21:50 +00:00
# - Add new sections [paths] and [options] headers to retrodeck.cfg
2023-04-07 20:10:12 +00:00
# - Prepackaged DOOM!
2023-03-10 21:54:07 +00:00
mkdir -p " $mods_folder "
mkdir -p " $texture_packs_folder "
2023-03-17 14:26:31 +00:00
dir_prep " $mods_folder /Primehack " "/var/data/primehack/Load/GraphicMods"
dir_prep " $texture_packs_folder /Primehack " "/var/data/primehack/Load/Textures"
dir_prep " $mods_folder /Dolphin " "/var/data/dolphin-emu/Load/GraphicMods"
dir_prep " $texture_packs_folder /Dolphin " "/var/data/dolphin-emu/Load/Textures"
dir_prep " $mods_folder /Citra " "/var/data/citra-emu/load/mods"
dir_prep " $texture_packs_folder /Citra " "/var/data/citra-emu/load/textures"
dir_prep " $mods_folder /Yuzu " "/var/data/yuzu/load"
2023-03-16 15:38:01 +00:00
dir_prep " $rdhome /gamelists " "/var/config/emulationstation/.emulationstation/gamelists"
2023-04-05 18:21:50 +00:00
sed -i '/version=.*/G' $rd_conf
sed -i '3i [paths]' $rd_conf
2023-04-17 17:45:53 +00:00
sed -i '/^power_user_warning=.*/i [options]' $rd_conf
2023-04-07 20:10:12 +00:00
cp /app/retrodeck/extras/doom1.wad " $roms_folder /doom/doom1.wad " # No -f in case the user already has it
2023-04-17 17:45:53 +00:00
mkdir -p "/var/config/emulationstation/.emulationstation/gamelists/doom"
cp "/app/retrodeck/rd_prepacks/doom/gamelist.xml" "/var/config/emulationstation/.emulationstation/gamelists/doom/gamelist.xml"
mkdir -p " $media_folder /doom "
unzip -q "/app/retrodeck/rd_prepacks/doom/doom.zip" -d " $media_folder /doom/ "
2023-03-10 21:54:07 +00:00
fi
2023-02-25 16:02:05 +00:00
# The following commands are run every time.
2023-04-10 13:02:06 +00:00
tools_init
2023-03-10 19:22:19 +00:00
update_splashscreens
2023-03-08 14:51:13 +00:00
update_rd_conf
2022-11-18 20:10:17 +00:00
) |
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
2023-04-17 17:45:53 +00:00
}