mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2025-04-10 19:15:12 +00:00
Convert /var/config and /var/data paths to XDG environment variables for portability
Also fix a ton of improperly-quoted bash variables
This commit is contained in:
parent
79381909a4
commit
c8fc7f3f8e
|
@ -10,7 +10,7 @@ save_migration() {
|
|||
# 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"
|
||||
ln -s "$roms_folder" "$rdhome/roms"
|
||||
fi
|
||||
else
|
||||
# ROMs on Internal
|
||||
|
@ -31,19 +31,19 @@ save_migration() {
|
|||
fi
|
||||
|
||||
# Doing the dir prep as we don't know from which version we came
|
||||
dir_prep "$media_folder" "/var/config/ES-DE/downloaded_media"
|
||||
dir_prep "$themes_folder" "/var/config/ES-DE/themes"
|
||||
dir_prep "$media_folder" "$XDG_CONFIG_HOME/ES-DE/downloaded_media"
|
||||
dir_prep "$themes_folder" "$XDG_CONFIG_HOME/ES-DE/themes"
|
||||
create_dir "$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/ES-DE/settings/es_settings.xml
|
||||
cp -fv "/app/retrodeck/es_settings.xml" "$XDG_CONFIG_HOME/ES-DE/settings/es_settings.xml"
|
||||
|
||||
# 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"
|
||||
mv -fv "$XDG_CONFIG_HOME/PCSX2/sstates/"* "$rdhome/states/ps2/pcsx2"
|
||||
mv -fv "$XDG_CONFIG_HOME/PCSX2/memcards/"* "$rdhome/saves/ps2/memcards"
|
||||
|
||||
# Moving Citra saves from legacy location to 0.5.0b structure
|
||||
|
||||
|
@ -52,7 +52,7 @@ save_migration() {
|
|||
|
||||
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" <<< "$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"
|
||||
|
@ -74,16 +74,16 @@ save_migration() {
|
|||
current_dest_folder=
|
||||
gamestoskip=
|
||||
|
||||
tar -C "$rdhome" -czf $save_backup_file saves # Backup save directory for safety
|
||||
log i "Saves backed up to" $save_backup_file $migration_logfile
|
||||
tar -C "$rdhome" -czf $state_backup_file states # Backup state directory for safety
|
||||
log i "States backed up to" $state_backup_file $migration_logfile
|
||||
tar -C "$rdhome" -czf "$save_backup_file" saves # Backup save directory for safety
|
||||
log i "Saves backed up to" "$save_backup_file" "$migration_logfile"
|
||||
tar -C "$rdhome" -czf "$state_backup_file" states # Backup state directory for safety
|
||||
log i "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
|
||||
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
|
||||
|
@ -91,59 +91,59 @@ save_migration() {
|
|||
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
|
||||
echo "ERROR: Multiple ROMS found with name: $gamebasename Please sort saves and states for these ROMS manually" >> "$migration_logfile"
|
||||
gamestoskip+=("$1")
|
||||
return
|
||||
fi
|
||||
log i "Examining ROM file:" "$game" $migration_logfile
|
||||
log i "System detected as" $systemdir $migration_logfile
|
||||
log i "Examining ROM file:" "$game" "$migration_logfile"
|
||||
log i "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
|
||||
log i "Current save or state being examined for match:" $sosfile $migration_logfile
|
||||
log i "Matching save or state" $sosfile "and game" $game "found." $migration_logfile
|
||||
log i "Moving save or state to $current_dest_folder/$systemdir/$sosbasename" $migration_logfile
|
||||
log i "Current save or state being examined for match:" "$sosfile" "$migration_logfile"
|
||||
log i "Matching save or state $sosfile and game $game found." "$migration_logfile"
|
||||
log i "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
|
||||
log w "Creating missing system directory $current_dest_folder/$systemdir"
|
||||
mkdir $current_dest_folder/$systemdir
|
||||
mkdir "$current_dest_folder/$systemdir"
|
||||
fi
|
||||
mv "$sosfile" -t $current_dest_folder/$systemdir # Move save to appropriate system directory
|
||||
mv "$sosfile" -t "$current_dest_folder/$systemdir" # Move save to appropriate system directory
|
||||
return
|
||||
else
|
||||
local name="$(basename "$1" | sed -e "s/\^/ /g")"
|
||||
log w "Game with name \"$name\" already found. Skipping to next game..." $migration_logfile # Inform user of game being skipped due to duplicate ROM names
|
||||
log w "Game with name \"$name\" 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
|
||||
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
|
||||
totalfiles="$totalsaves" #set variables for save file migration
|
||||
filesleft="$totalsaves"
|
||||
currentlybeingmoved="saves"
|
||||
current_dest_folder=$saves_folder
|
||||
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
|
||||
[[ "$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
|
||||
[[ -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
|
||||
totalfiles="$totalstates" #set variables for state file migration
|
||||
filesleft="$totalstates"
|
||||
currentlybeingmoved="states"
|
||||
current_dest_folder=$states_folder
|
||||
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
|
||||
[[ "$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
|
||||
[[ -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
|
||||
|
||||
) |
|
||||
|
@ -156,18 +156,18 @@ save_migration() {
|
|||
--no-cancel \
|
||||
--auto-close
|
||||
|
||||
if [[ $(cat $migration_logfile | grep "ERROR" | wc -l) -eq 0 ]]; then
|
||||
if [[ $(cat "$migration_logfile" | grep "ERROR" | wc -l) -eq 0 ]]; then
|
||||
rd_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
|
||||
cat $migration_logfile | grep "ERROR" > "$rdhome/manual_sort_needed.log"
|
||||
cat "$migration_logfile" | grep "ERROR" > "$rdhome/manual_sort_needed.log"
|
||||
rd_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"
|
||||
--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
|
||||
|
||||
else
|
||||
|
|
|
@ -4,11 +4,11 @@ check_network_connectivity() {
|
|||
# This function will do a basic check for network availability and return "true" if it is working.
|
||||
# USAGE: if [[ $(check_network_connectivity) == "true" ]]; then
|
||||
|
||||
if [[ ! -z $(wget --spider -t 1 $remote_network_target_1 | grep "HTTP response 200") ]]; then
|
||||
if [[ ! -z $(wget --spider -t 1 "$remote_network_target_1" | grep "HTTP response 200") ]]; then
|
||||
local network_connected="true"
|
||||
elif [[ ! -z $(wget --spider -t 1 $remote_network_target_2 | grep "HTTP response 200") ]]; then
|
||||
elif [[ ! -z $(wget --spider -t 1 "$remote_network_target_2" | grep "HTTP response 200") ]]; then
|
||||
local network_connected="true"
|
||||
elif [[ ! -z $(wget --spider -t 1 $remote_network_target_3 | grep "HTTP response 200") ]]; then
|
||||
elif [[ ! -z $(wget --spider -t 1 "$remote_network_target_3" | grep "HTTP response 200") ]]; then
|
||||
local network_connected="true"
|
||||
else
|
||||
local network_connected="false"
|
||||
|
@ -21,7 +21,7 @@ check_desktop_mode() {
|
|||
# This function will do a basic check of if we are running in Steam Deck game mode or not, and return "true" if we are outside of game mode
|
||||
# USAGE: if [[ $(check_desktop_mode) == "true" ]]; then
|
||||
|
||||
if [[ ! $XDG_CURRENT_DESKTOP == "gamescope" ]]; then
|
||||
if [[ ! "$XDG_CURRENT_DESKTOP" == "gamescope" ]]; then
|
||||
echo "true"
|
||||
else
|
||||
echo "false"
|
||||
|
@ -32,7 +32,7 @@ check_is_steam_deck() {
|
|||
# This function will check the internal product ID for the Steam Deck codename and return "true" if RetroDECK is running on a real Deck
|
||||
# USAGE: if [[ $(check_is_steam_deck) == "true" ]]; then
|
||||
|
||||
if [[ $(cat /sys/devices/virtual/dmi/id/product_name) =~ ^(Jupiter|Galileo)$ ]]; then
|
||||
if [[ $(cat "/sys/devices/virtual/dmi/id/product_name") =~ ^(Jupiter|Galileo)$ ]]; then
|
||||
echo "true"
|
||||
else
|
||||
echo "false"
|
||||
|
@ -58,7 +58,7 @@ check_for_version_update() {
|
|||
fi
|
||||
|
||||
if [[ ! "$update_ignore" == "$online_version" ]]; then
|
||||
if [[ "$update_repo" == "RetroDECK" ]] && [[ $(sed -e 's/[\.a-z]//g' <<< $version) -le $(sed -e 's/[\.a-z]//g' <<< $online_version) ]]; then
|
||||
if [[ "$update_repo" == "RetroDECK" ]] && [[ $(sed -e 's/[\.a-z]//g' <<< "$version") -le $(sed -e 's/[\.a-z]//g' <<< "$online_version") ]]; then
|
||||
choice=$(rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" --extra-button="Ignore this version" \
|
||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||
--title "RetroDECK - New Update Available" \
|
||||
|
@ -66,7 +66,7 @@ check_for_version_update() {
|
|||
rc=$? # Capture return code, as "OK" button has no text value
|
||||
if [[ $rc == "1" ]]; then # If any button other than "OK" was clicked
|
||||
log i "Selected: \"OK\""
|
||||
set_setting_value $rd_conf "update_ignore" "$online_version" retrodeck "options" # Store version to ignore for future checks
|
||||
set_setting_value "$rd_conf" "update_ignore" "$online_version" retrodeck "options" # Store version to ignore for future checks
|
||||
fi
|
||||
elif [[ "$update_repo" == "$cooker_repository_name" ]] && [[ ! $version == $online_version ]]; then
|
||||
log i "Showing update request dialog as \"$online_version\" was found and is greater then \"$version\""
|
||||
|
@ -78,10 +78,10 @@ check_for_version_update() {
|
|||
if [[ $rc == "1" ]]; then # If any button other than "Yes" was clicked
|
||||
if [[ $choice == "Ignore this version" ]]; then
|
||||
log i "\"Ignore this version\" selected, updating \"$rd_conf\""
|
||||
set_setting_value $rd_conf "update_ignore" "$online_version" retrodeck "options" # Store version to ignore for future checks.
|
||||
set_setting_value "$rd_conf" "update_ignore" "$online_version" retrodeck "options" # Store version to ignore for future checks.
|
||||
fi
|
||||
else # User clicked "Yes"
|
||||
install_release $online_version
|
||||
install_release "$online_version"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -93,13 +93,13 @@ check_for_version_update() {
|
|||
validate_input() {
|
||||
while IFS="^" read -r input action || [[ -n "$input" ]];
|
||||
do
|
||||
if [[ ! $input == "#"* ]] && [[ ! -z "$input" ]]; then
|
||||
if [[ ! "$input" == "#"* ]] && [[ ! -z "$input" ]]; then
|
||||
if [[ "$input" == "$1" ]]; then
|
||||
eval "$action"
|
||||
input_validated="true"
|
||||
fi
|
||||
fi
|
||||
done < $input_validation
|
||||
done < "$input_validation"
|
||||
}
|
||||
|
||||
check_version_is_older_than() {
|
||||
|
@ -135,7 +135,7 @@ fi
|
|||
# Perform post_update commands for current version if it is a cooker or PR
|
||||
if grep -qF "cooker" <<< "$hard_version" || grep -qF "PR" <<< "$hard_version"; then
|
||||
# If newly-installed version is a "cooker" or "PR" build, always perform post_update commands for current version
|
||||
if [[ "$(echo $hard_version | cut -d'-' -f2)" == "$new_version" ]]; then
|
||||
if [[ "$(echo "$hard_version" | cut -d'-' -f2)" == "$new_version" ]]; then
|
||||
is_newer_version="true"
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -63,10 +63,10 @@ find_compatible_compression_format() {
|
|||
local system=$(echo "$1" | grep -oE "$roms_folder/[^/]+" | grep -oE "[^/]+$")
|
||||
|
||||
# Extract the relevant lists from the JSON file
|
||||
local chd_systems=$(jq -r '.compression_targets.chd[]' $features)
|
||||
local rvz_systems=$(jq -r '.compression_targets.rvz[]' $features)
|
||||
local zip_systems=$(jq -r '.compression_targets.zip[]' $features)
|
||||
local zip_compressable_extensions=$(jq -r '.zip_compressable_extensions[]' $features)
|
||||
local chd_systems=$(jq -r '.compression_targets.chd[]' "$features")
|
||||
local rvz_systems=$(jq -r '.compression_targets.rvz[]' "$features")
|
||||
local zip_systems=$(jq -r '.compression_targets.zip[]' "$features")
|
||||
local zip_compressable_extensions=$(jq -r '.zip_compressable_extensions[]' "$features")
|
||||
|
||||
if [[ $(validate_for_chd "$1") == "true" ]] && echo "$chd_systems" | grep -q "\b$system\b"; then
|
||||
echo "chd"
|
||||
|
@ -259,9 +259,9 @@ cli_compress_all_games() {
|
|||
local compressable_game=""
|
||||
local all_compressable_games=()
|
||||
if [[ $compression_format == "all" ]]; then
|
||||
local compressible_systems_list=$(jq -r '.compression_targets | to_entries[] | .value[]' $features)
|
||||
local compressible_systems_list=$(jq -r '.compression_targets | to_entries[] | .value[]' "$features")
|
||||
else
|
||||
local compressible_systems_list=$(jq -r '.compression_targets["'"$compression_format"'"][]' $features)
|
||||
local compressible_systems_list=$(jq -r '.compression_targets["'"$compression_format"'"][]' "$features")
|
||||
fi
|
||||
|
||||
read -p "Do you want to have the original files removed after compression is complete? Please answer y/n and press Enter: " post_compression_cleanup
|
||||
|
|
|
@ -51,13 +51,13 @@ find_empty_rom_folders() {
|
|||
}
|
||||
|
||||
configurator_check_multifile_game_structure() {
|
||||
local folder_games=($(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3"))
|
||||
local folder_games=($(find "$roms_folder" -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3"))
|
||||
if [[ ${#folder_games[@]} -gt 1 ]]; then
|
||||
echo "$(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3")" > $logs_folder/multi_file_games_"$(date +"%Y_%m_%d_%I_%M_%p").log"
|
||||
echo "$(find "$roms_folder" -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3")" > "$logs_folder"/multi_file_games_"$(date +"%Y_%m_%d_%I_%M_%p").log"
|
||||
rd_zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
|
||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||
--title "RetroDECK Configurator - Verify Multi-file Structure" \
|
||||
--text="The following games were found to have the incorrect folder structure:\n\n$(find $roms_folder -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3")\n\nIncorrect folder structure can result in failure to launch games or saves being in the incorrect location.\n\nPlease see the RetroDECK wiki for more details!\n\nYou can find this list of games in ~/retrodeck/logs"
|
||||
--text="The following games were found to have the incorrect folder structure:\n\n$(find "$roms_folder" -maxdepth 2 -mindepth 2 -type d ! -name "*.m3u" ! -name "*.ps3")\n\nIncorrect folder structure can result in failure to launch games or saves being in the incorrect location.\n\nPlease see the RetroDECK wiki for more details!\n\nYou can find this list of games in ~/retrodeck/logs"
|
||||
else
|
||||
configurator_generic_dialog "RetroDECK Configurator - Verify Multi-file Structure" "No incorrect multi-file game folder structures found."
|
||||
fi
|
||||
|
|
|
@ -65,7 +65,7 @@ configurator_destination_choice_dialog() {
|
|||
if [[ $rc == "0" ]] && [[ -z "$choice" ]]; then
|
||||
echo "Back"
|
||||
else
|
||||
echo $choice
|
||||
echo "$choice"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,7 @@ configurator_move_folder_dialog() {
|
|||
# USAGE: configurator_move_folder_dialog "folder_variable_name"
|
||||
local rd_dir_name="$1" # The folder variable name from retrodeck.cfg
|
||||
local dir_to_move="$(get_setting_value "$rd_conf" "$rd_dir_name" "retrodeck" "paths")/" # The path of that folder variable
|
||||
local source_root="$(echo $dir_to_move | sed -e 's/\(.*\)\/retrodeck\/.*/\1/')" # The root path of the folder, excluding retrodeck/<folder name>. So /home/deck/retrodeck/roms becomes /home/deck
|
||||
local source_root="$(echo "$dir_to_move" | sed -e 's/\(.*\)\/retrodeck\/.*/\1/')" # The root path of the folder, excluding retrodeck/<folder name>. So /home/deck/retrodeck/roms becomes /home/deck
|
||||
if [[ ! "$rd_dir_name" == "rdhome" ]]; then # If a sub-folder is being moved, find it's path without the source_root. So /home/deck/retrodeck/roms becomes retrodeck/roms
|
||||
local rd_dir_path="$(echo "$dir_to_move" | sed "s/.*\(retrodeck\/.*\)/\1/; s/\/$//")"
|
||||
else # Otherwise just set the retrodeck root folder
|
||||
|
@ -114,7 +114,7 @@ configurator_move_folder_dialog() {
|
|||
configurator_generic_dialog "RetroDECK Configurator - Move Folder" "The $(basename "$dir_to_move") folder is already at that location, please pick a new one."
|
||||
configurator_move_folder_dialog "$rd_dir_name"
|
||||
else
|
||||
if [[ $(verify_space "$(echo $dir_to_move | sed 's/\/$//')" "$dest_root") ]]; then # Make sure there is enough space at the destination
|
||||
if [[ $(verify_space "$(echo "$dir_to_move" | sed 's/\/$//')" "$dest_root") ]]; then # Make sure there is enough space at the destination
|
||||
configurator_generic_dialog "RetroDECK Configurator - Move Folder" "Moving $(basename "$dir_to_move") folder to $choice"
|
||||
unlink "$dest_root/$rd_dir_path" # In case there is already a symlink at the picked destination
|
||||
move "$dir_to_move" "$dest_root/$rd_dir_path"
|
||||
|
@ -168,28 +168,28 @@ changelog_dialog() {
|
|||
log d "Showing changelog dialog"
|
||||
|
||||
if [[ "$1" == "all" ]]; then
|
||||
> "/var/config/retrodeck/changelog-full.xml"
|
||||
for release in $(xml sel -t -m "//component/releases/release" -v "@version" -n $rd_metainfo); do
|
||||
echo "<h1>RetroDECK v$release</h1>" >> "/var/config/retrodeck/changelog-full.xml"
|
||||
xml sel -t -m "//component/releases/release[@version='$release']/description" -c . $rd_metainfo | tr -s '\n' | sed 's/^\s*//' >> "/var/config/retrodeck/changelog-full.xml"
|
||||
echo "" >> "/var/config/retrodeck/changelog-full.xml"
|
||||
> "$XDG_CONFIG_HOME/retrodeck/changelog-full.xml"
|
||||
for release in $(xml sel -t -m "//component/releases/release" -v "@version" -n "$rd_metainfo"); do
|
||||
echo "<h1>RetroDECK v$release</h1>" >> "$XDG_CONFIG_HOME/retrodeck/changelog-full.xml"
|
||||
xml sel -t -m "//component/releases/release[@version='"$release"']/description" -c . "$rd_metainfo" | tr -s '\n' | sed 's/^\s*//' >> "$XDG_CONFIG_HOME/retrodeck/changelog-full.xml"
|
||||
echo "" >> "$XDG_CONFIG_HOME/retrodeck/changelog-full.xml"
|
||||
done
|
||||
|
||||
#convert_to_markdown "/var/config/retrodeck/changelog-full.xml"
|
||||
#convert_to_markdown "$XDG_CONFIG_HOME/retrodeck/changelog-full.xml"
|
||||
|
||||
rd_zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \
|
||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||
--title "RetroDECK Changelogs" \
|
||||
--filename="/var/config/retrodeck/changelog-full.xml.md"
|
||||
--filename="$XDG_CONFIG_HOME/retrodeck/changelog-full.xml.md"
|
||||
else
|
||||
xml sel -t -m "//component/releases/release[@version='$1']/description" -c . $rd_metainfo | tr -s '\n' | sed 's/^\s*//' > "/var/config/retrodeck/changelog.xml"
|
||||
xml sel -t -m "//component/releases/release[@version='"$1"']/description" -c . "$rd_metainfo" | tr -s '\n' | sed 's/^\s*//' > "$XDG_CONFIG_HOME/retrodeck/changelog.xml"
|
||||
|
||||
convert_to_markdown "/var/config/retrodeck/changelog.xml"
|
||||
convert_to_markdown "$XDG_CONFIG_HOME/retrodeck/changelog.xml"
|
||||
|
||||
rd_zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \
|
||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||
--title "RetroDECK Changelogs" \
|
||||
--filename="/var/config/retrodeck/changelog.xml.md"
|
||||
--filename="$XDG_CONFIG_HOME/retrodeck/changelog.xml.md"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -204,9 +204,9 @@ get_cheevos_token_dialog() {
|
|||
--add-password="Password")
|
||||
|
||||
IFS='^' read -r cheevos_username cheevos_password < <(printf '%s\n' "$cheevos_info")
|
||||
local cheevos_response=$(curl --silent --data "r=login&u=$cheevos_username&p=$cheevos_password" $RA_API_URL)
|
||||
local cheevos_success=$(echo $cheevos_response | jq .Success | tr -d '"')
|
||||
local cheevos_token=$(echo $cheevos_response | jq .Token | tr -d '"')
|
||||
local cheevos_response=$(curl --silent --data "r=login&u=$cheevos_username&p=$cheevos_password" "$RA_API_URL")
|
||||
local cheevos_success=$(echo "$cheevos_response" | jq .Success | tr -d '"')
|
||||
local cheevos_token=$(echo "$cheevos_response" | jq .Token | tr -d '"')
|
||||
local cheevos_login_timestamp=$(date +%s)
|
||||
if [[ "$cheevos_success" == "true" ]]; then
|
||||
echo "$cheevos_username,$cheevos_token,$cheevos_login_timestamp"
|
||||
|
@ -235,7 +235,7 @@ desktop_mode_warning() {
|
|||
exit 1
|
||||
elif [[ $choice == "Never show this again" ]]; then
|
||||
log i "Selected: \"Never show this again\""
|
||||
set_setting_value $rd_conf "desktop_mode_warning" "false" retrodeck "options" # Store desktop mode warning variable for future checks
|
||||
set_setting_value "$rd_conf" "desktop_mode_warning" "false" retrodeck "options" # Store desktop mode warning variable for future checks
|
||||
fi
|
||||
else
|
||||
log i "Selected: \"Yes\""
|
||||
|
@ -258,7 +258,7 @@ low_space_warning() {
|
|||
--text="$message")
|
||||
if [[ $choice == "Never show this again" ]]; then
|
||||
log i "Selected: \"Never show this again\""
|
||||
set_setting_value $rd_conf "low_space_warning" "false" retrodeck "options" # Store low space warning variable for future checks
|
||||
set_setting_value "$rd_conf" "low_space_warning" "false" retrodeck "options" # Store low space warning variable for future checks
|
||||
fi
|
||||
fi
|
||||
log i "Selected: \"OK\""
|
||||
|
|
|
@ -141,7 +141,7 @@ get_setting_value() {
|
|||
|
||||
"dolphin" | "duckstation" | "pcsx2" | "ppsspp" | "primehack" | "xemu" ) # For files with this syntax - setting_name = setting_value
|
||||
if [[ -z $current_section_name ]]; then
|
||||
echo $(grep -o -P "(?<=^$current_setting_name = ).*" $1)
|
||||
echo $(grep -o -P "(?<=^$current_setting_name = ).*" "$1")
|
||||
else
|
||||
sed -n -E '\^\['"$current_section_name"'\]^,\^\^'"$current_setting_name"'|\[^{ \^\['"$current_section_name"'\]^! { \^\^'"$current_setting_name"'^ p } }' "$1" | grep -o -P "(?<=^$current_setting_name = ).*"
|
||||
fi
|
||||
|
@ -337,7 +337,7 @@ generate_single_patch() {
|
|||
current_setting_name=$(get_setting_name "$escaped_setting_line" "$system")
|
||||
if [[ (-z $(sed -n -E '\^\['"$current_section"'\]|\b'"$current_section"':$^,\^\b'"$current_setting_name"'\s*?[:=]^{ \^\['"$current_section"'\]|\b'"$current_section"':$^! { \^\b'"$(sed -E 's/^[ \t]*//;' <<< "$escaped_setting_line")"'$^ p } }' "$modified_file")) ]]; then # If the same setting line is not found in the same section of the modified file...
|
||||
if [[ ! -z $(sed -n -E '\^\['"$current_section"'\]|\b'"$current_section"':$^,\^\b'"$current_setting_name"'\s*?[:=]^{ \^\['"$current_section"'\]|\b'"$current_section"':$^! { \^\b'"$current_setting_name"'\s*?[:=]^ p } }' "$modified_file") ]]; then # But the setting exists in that section, only with a different value...
|
||||
new_setting_value=$(get_setting_value "$2" "$current_setting_name" "$system" $current_section)
|
||||
new_setting_value=$(get_setting_value "$2" "$current_setting_name" "$system" "$current_section")
|
||||
action="change"
|
||||
echo $action"^"$current_section"^"$(sed -e 's%\\\\%\\%g' <<< "$current_setting_name")"^"$new_setting_value"^"$system >> "$patch_file"
|
||||
fi
|
||||
|
@ -356,7 +356,7 @@ generate_single_patch() {
|
|||
if [[ (-z $(sed -n -E '\^\s*?\b'"$(sed -E 's/^[ \t]*//' <<< "$escaped_setting_line")"'$^p' "$modified_file")) ]]; then # If the same setting line is not found in the modified file...
|
||||
current_setting_name=$(get_setting_name "$escaped_setting_line" "$system")
|
||||
if [[ ! -z $(sed -n -E '\^\s*?\b'"$current_setting_name"'\s*?[:=]^p' "$modified_file") ]]; then # But the setting exists, only with a different value...
|
||||
new_setting_value=$(get_setting_value $2 "$current_setting_name" "$system")
|
||||
new_setting_value=$(get_setting_value "$2" "$current_setting_name" "$system")
|
||||
action="change"
|
||||
echo $action"^"$current_section"^"$(sed -e 's%\\\\%\\%g' <<< "$current_setting_name")"^"$new_setting_value"^"$system >> "$patch_file"
|
||||
fi
|
||||
|
@ -381,22 +381,22 @@ generate_single_patch() {
|
|||
if [[ ! -z $(grep -o -P "^\[.+?\]$" <<< "$current_setting_line") || ! -z $(grep -o -P "^\b.+?:$" <<< "$current_setting_line") ]]; then # Capture section header lines
|
||||
if [[ $current_setting_line =~ ^\[.+\] ]]; then # If normal section line
|
||||
action="section"
|
||||
current_section=$(sed 's^[][]^^g' <<< $current_setting_line) # Remove brackets from section name
|
||||
current_section=$(sed 's^[][]^^g' <<< "$current_setting_line") # Remove brackets from section name
|
||||
elif [[ ! -z $(grep -o -P "^\b.+?:$" <<< "$current_setting_line") ]]; then # If RPCS3 section name
|
||||
action="section"
|
||||
current_section=$(sed 's^:$^^' <<< $current_setting_line) # Remove colon from section name
|
||||
current_section=$(sed 's^:$^^' <<< "$current_setting_line") # Remove colon from section name
|
||||
fi
|
||||
elif [[ (! -z $current_section) ]]; then
|
||||
current_setting_name=$(get_setting_name "$escaped_setting_line" "$4")
|
||||
if [[ -z $(sed -n -E '\^\['"$current_section"'\]|\b'"$current_section"':$^,\^\b'"$current_setting_name"'.*^{ \^\['"$current_section"'\]|\b'"$current_section"':$^! { \^\b'"$current_setting_name"'^p } }' $1 ) ]]; then # If setting name is not found in this section of the original file...
|
||||
if [[ -z $(sed -n -E '\^\['"$current_section"'\]|\b'"$current_section"':$^,\^\b'"$current_setting_name"'.*^{ \^\['"$current_section"'\]|\b'"$current_section"':$^! { \^\b'"$current_setting_name"'^p } }' "$1" ) ]]; then # If setting name is not found in this section of the original file...
|
||||
action="add_setting_line" # TODO: This should include the previous line, so that new lines can be inserted in the correct place rather than at the end.
|
||||
echo $action"^"$current_section"^"$current_setting_line"^^"$4 >> $3
|
||||
echo $action"^"$current_section"^"$current_setting_line"^^"$4 >> "$3"
|
||||
fi
|
||||
elif [[ (-z $current_section) ]]; then
|
||||
current_setting_name=$(get_setting_name "$escaped_setting_line" "$4")
|
||||
if [[ -z $(sed -n -E '\^\s*?\b'"$current_setting_name"'\s*?[:=]^p' $1) ]]; then # If setting name is not found in the original file...
|
||||
if [[ -z $(sed -n -E '\^\s*?\b'"$current_setting_name"'\s*?[:=]^p' "$1") ]]; then # If setting name is not found in the original file...
|
||||
action="add_setting_line" # TODO: This should include the previous line, so that new lines can be inserted in the correct place rather than at the end.
|
||||
echo $action"^"$current_section"^"$current_setting_line"^^"$4 >> $3
|
||||
echo $action"^"$current_section"^"$current_setting_line"^^"$4 >> "$3"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -562,4 +562,4 @@ populate_steamuser_srm(){
|
|||
)
|
||||
' "$XDG_CONFIG_HOME/steam-rom-manager/userData/userConfigurations.json" > "$XDG_CONFIG_HOME/steam-rom-manager/userData/userConfigurations.json.tmp" &&
|
||||
mv "$XDG_CONFIG_HOME/steam-rom-manager/userData/userConfigurations.json.tmp" "$XDG_CONFIG_HOME/steam-rom-manager/userData/userConfigurations.json"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
# export LD_LIBRARY_PATH="/app/retrodeck/lib:/app/retrodeck/lib/debug:/app/retrodeck/lib/pkgconfig:$LD_LIBRARY_PATH"
|
||||
|
||||
: "${logging_level:=info}" # Initializing the log level variable if not already valued, this will be actually red later from the config file
|
||||
rd_logs_folder="/var/config/retrodeck/logs" # Static location to write all RetroDECK-related logs
|
||||
rd_logs_folder="$XDG_CONFIG_HOME/retrodeck/logs" # Static location to write all RetroDECK-related logs
|
||||
if [ -h "$rd_logs_folder" ]; then # Check if internal logging folder is already a symlink
|
||||
if [ ! -e "$rd_logs_folder" ]; then # Check if internal logging folder symlink is broken
|
||||
unlink "$rd_logs_folder" # Remove broken symlink so the folder is recreated when sourcing logger.sh
|
||||
|
@ -55,21 +55,21 @@ source /app/libexec/run_game.sh
|
|||
source /app/libexec/steam_sync.sh
|
||||
|
||||
# Static variables
|
||||
rd_conf="/var/config/retrodeck/retrodeck.cfg" # RetroDECK config file path
|
||||
rd_conf_backup="/var/config/retrodeck/retrodeck.bak" # Backup of RetroDECK config file from update
|
||||
rd_conf="$XDG_CONFIG_HOME/retrodeck/retrodeck.cfg" # RetroDECK config file path
|
||||
rd_conf_backup="$XDG_CONFIG_HOME/retrodeck/retrodeck.bak" # Backup of RetroDECK config file from update
|
||||
config="/app/retrodeck/config" # folder with all the default emulator configs
|
||||
rd_defaults="$config/retrodeck/retrodeck.cfg" # A default RetroDECK config file
|
||||
rd_update_patch="/var/config/retrodeck/rd_update.patch" # A static location for the temporary patch file used during retrodeck.cfg updates
|
||||
rd_update_patch="$XDG_CONFIG_HOME/retrodeck/rd_update.patch" # A static location for the temporary patch file used during retrodeck.cfg updates
|
||||
bios_checklist="$config/retrodeck/reference_lists/bios.json" # A config file listing BIOS file information that can be verified
|
||||
input_validation="$config/retrodeck/reference_lists/input_validation.cfg" # A config file listing valid CLI inputs
|
||||
finit_options_list="$config/retrodeck/reference_lists/finit_options_list.cfg" # A config file listing available optional installs during finit
|
||||
splashscreen_dir="/var/config/ES-DE/resources/graphics/extra_splashes" # The default location of extra splash screens
|
||||
current_splash_file="/var/config/ES-DE/resources/graphics/splash.svg" # The active splash file that will be shown on boot
|
||||
default_splash_file="/var/config/ES-DE/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen
|
||||
splashscreen_dir="$XDG_CONFIG_HOME/ES-DE/resources/graphics/extra_splashes" # The default location of extra splash screens
|
||||
current_splash_file="$XDG_CONFIG_HOME/ES-DE/resources/graphics/splash.svg" # The active splash file that will be shown on boot
|
||||
default_splash_file="$XDG_CONFIG_HOME/ES-DE/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen
|
||||
# TODO: instead of this maybe we can iterate the features.json
|
||||
multi_user_emulator_config_dirs="$config/retrodeck/reference_lists/multi_user_emulator_config_dirs.cfg" # A list of emulator config folders that can be safely linked/unlinked entirely in multi-user mode
|
||||
rd_es_themes="/app/share/es-de/themes" # The directory where themes packaged with RetroDECK are stored
|
||||
lockfile="/var/config/retrodeck/.lock" # Where the lockfile is located
|
||||
lockfile="$XDG_CONFIG_HOME/retrodeck/.lock" # Where the lockfile is located
|
||||
default_sd="/run/media/mmcblk0p1" # Steam Deck SD default path
|
||||
hard_version="$(cat '/app/retrodeck/version')" # hardcoded version (in the readonly filesystem)
|
||||
rd_repo="https://github.com/RetroDECK/RetroDECK" # The URL of the main RetroDECK GitHub repo
|
||||
|
@ -91,84 +91,84 @@ es_find_rules="/app/share/es-de/resources/systems/linux/es_find_rules.xml"
|
|||
|
||||
# Godot data transfer temp files
|
||||
|
||||
godot_bios_files_checked="/var/config/retrodeck/godot/godot_bios_files_checked.tmp"
|
||||
godot_current_preset_settings="/var/config/retrodeck/godot/godot_current_preset_settings.tmp"
|
||||
godot_compression_compatible_games="/var/config/retrodeck/godot/godot_compression_compatible_games.tmp"
|
||||
godot_empty_roms_folders="/var/config/retrodeck/godot/godot_empty_roms_folders.tmp"
|
||||
godot_bios_files_checked="$XDG_CONFIG_HOME/retrodeck/godot/godot_bios_files_checked.tmp"
|
||||
godot_current_preset_settings="$XDG_CONFIG_HOME/retrodeck/godot/godot_current_preset_settings.tmp"
|
||||
godot_compression_compatible_games="$XDG_CONFIG_HOME/retrodeck/godot/godot_compression_compatible_games.tmp"
|
||||
godot_empty_roms_folders="$XDG_CONFIG_HOME/retrodeck/godot/godot_empty_roms_folders.tmp"
|
||||
|
||||
# Config files for emulators with single config files
|
||||
|
||||
duckstationconf="/var/config/duckstation/settings.ini"
|
||||
melondsconf="/var/config/melonDS/melonDS.ini"
|
||||
ryujinxconf="/var/config/Ryujinx/Config.json"
|
||||
xemuconf="/var/config/xemu/xemu.toml"
|
||||
yuzuconf="/var/config/yuzu/qt-config.ini"
|
||||
citraconf="/var/config/citra-emu/qt-config.ini"
|
||||
duckstationconf="$XDG_CONFIG_HOME/duckstation/settings.ini"
|
||||
melondsconf="$XDG_CONFIG_HOME/melonDS/melonDS.ini"
|
||||
ryujinxconf="$XDG_CONFIG_HOME/Ryujinx/Config.json"
|
||||
xemuconf="$XDG_CONFIG_HOME/xemu/xemu.toml"
|
||||
yuzuconf="$XDG_CONFIG_HOME/yuzu/qt-config.ini"
|
||||
citraconf="$XDG_CONFIG_HOME/citra-emu/qt-config.ini"
|
||||
|
||||
# ES-DE config files
|
||||
|
||||
export ESDE_APPDATA_DIR="/var/config/ES-DE"
|
||||
es_settings="/var/config/ES-DE/settings/es_settings.xml"
|
||||
es_source_logs="/var/config/ES-DE/logs"
|
||||
export ESDE_APPDATA_DIR="$XDG_CONFIG_HOME/ES-DE"
|
||||
es_settings="$XDG_CONFIG_HOME/ES-DE/settings/es_settings.xml"
|
||||
es_source_logs="$XDG_CONFIG_HOME/ES-DE/logs"
|
||||
|
||||
# RetroArch config files
|
||||
|
||||
raconf="/var/config/retroarch/retroarch.cfg"
|
||||
ra_core_conf="/var/config/retroarch/retroarch-core-options.cfg"
|
||||
ra_scummvm_conf="/var/config/retroarch/system/scummvm.ini"
|
||||
ra_cores_path="/var/config/retroarch/cores"
|
||||
raconf="$XDG_CONFIG_HOME/retroarch/retroarch.cfg"
|
||||
ra_core_conf="$XDG_CONFIG_HOME/retroarch/retroarch-core-options.cfg"
|
||||
ra_scummvm_conf="$XDG_CONFIG_HOME/retroarch/system/scummvm.ini"
|
||||
ra_cores_path="$XDG_CONFIG_HOME/retroarch/cores"
|
||||
|
||||
# CEMU config files
|
||||
|
||||
cemuconf="/var/config/Cemu/settings.xml"
|
||||
cemucontrollerconf="/var/config/Cemu/controllerProfiles/controller0.xml"
|
||||
cemuconf="$XDG_CONFIG_HOME/Cemu/settings.xml"
|
||||
cemucontrollerconf="$XDG_CONFIG_HOME/Cemu/controllerProfiles/controller0.xml"
|
||||
|
||||
# Dolphin config files
|
||||
|
||||
dolphinconf="/var/config/dolphin-emu/Dolphin.ini"
|
||||
dolphingcpadconf="/var/config/dolphin-emu/GCPadNew.ini"
|
||||
dolphingfxconf="/var/config/dolphin-emu/GFX.ini"
|
||||
dolphinhkconf="/var/config/dolphin-emu/Hotkeys.ini"
|
||||
dolphinqtconf="/var/config/dolphin-emu/Qt.ini"
|
||||
dolphinDynamicInputTexturesPath="/var/data/dolphin-emu/Load/DynamicInputTextures"
|
||||
dolphinCheevosConf="/var/config/dolphin-emu/RetroAchievements.ini"
|
||||
dolphinconf="$XDG_CONFIG_HOME/dolphin-emu/Dolphin.ini"
|
||||
dolphingcpadconf="$XDG_CONFIG_HOME/dolphin-emu/GCPadNew.ini"
|
||||
dolphingfxconf="$XDG_CONFIG_HOME/dolphin-emu/GFX.ini"
|
||||
dolphinhkconf="$XDG_CONFIG_HOME/dolphin-emu/Hotkeys.ini"
|
||||
dolphinqtconf="$XDG_CONFIG_HOME/dolphin-emu/Qt.ini"
|
||||
dolphinDynamicInputTexturesPath="$XDG_DATA_HOME/dolphin-emu/Load/DynamicInputTextures"
|
||||
dolphinCheevosConf="$XDG_CONFIG_HOME/dolphin-emu/RetroAchievements.ini"
|
||||
|
||||
# PCSX2 config files
|
||||
|
||||
pcsx2conf="/var/config/PCSX2/inis/PCSX2.ini"
|
||||
pcsx2gsconf="/var/config/PCSX2/inis/GS.ini" # This file should be deprecated since moving to PCSX2-QT
|
||||
pcsx2uiconf="/var/config/PCSX2/inis/PCSX2_ui.ini" # This file should be deprecated since moving to PCSX2-QT
|
||||
pcsx2vmconf="/var/config/PCSX2/inis/PCSX2_vm.ini" # This file should be deprecated since moving to PCSX2-QT
|
||||
pcsx2conf="$XDG_CONFIG_HOME/PCSX2/inis/PCSX2.ini"
|
||||
pcsx2gsconf="$XDG_CONFIG_HOME/PCSX2/inis/GS.ini" # This file should be deprecated since moving to PCSX2-QT
|
||||
pcsx2uiconf="$XDG_CONFIG_HOME/PCSX2/inis/PCSX2_ui.ini" # This file should be deprecated since moving to PCSX2-QT
|
||||
pcsx2vmconf="$XDG_CONFIG_HOME/PCSX2/inis/PCSX2_vm.ini" # This file should be deprecated since moving to PCSX2-QT
|
||||
|
||||
# PPSSPP-SDL config files
|
||||
|
||||
ppssppconf="/var/config/ppsspp/PSP/SYSTEM/ppsspp.ini"
|
||||
ppssppcontrolsconf="/var/config/ppsspp/PSP/SYSTEM/controls.ini"
|
||||
ppssppcheevosconf="/var/config/ppsspp/PSP/SYSTEM/ppsspp_retroachievements.dat"
|
||||
ppssppconf="$XDG_CONFIG_HOME/ppsspp/PSP/SYSTEM/ppsspp.ini"
|
||||
ppssppcontrolsconf="$XDG_CONFIG_HOME/ppsspp/PSP/SYSTEM/controls.ini"
|
||||
ppssppcheevosconf="$XDG_CONFIG_HOME/ppsspp/PSP/SYSTEM/ppsspp_retroachievements.dat"
|
||||
|
||||
# Primehack config files
|
||||
|
||||
primehackconf="/var/config/primehack/Dolphin.ini"
|
||||
primehackgcpadconf="/var/config/primehack/GCPadNew.ini"
|
||||
primehackgfxconf="/var/config/primehack/GFX.ini"
|
||||
primehackhkconf="/var/config/primehack/Hotkeys.ini"
|
||||
primehackqtconf="/var/config/primehack/Qt.ini"
|
||||
primehackDynamicInputTexturesPath="/var/data/primehack/Load/DynamicInputTextures"
|
||||
primehackconf="$XDG_CONFIG_HOME/primehack/Dolphin.ini"
|
||||
primehackgcpadconf="$XDG_CONFIG_HOME/primehack/GCPadNew.ini"
|
||||
primehackgfxconf="$XDG_CONFIG_HOME/primehack/GFX.ini"
|
||||
primehackhkconf="$XDG_CONFIG_HOME/primehack/Hotkeys.ini"
|
||||
primehackqtconf="$XDG_CONFIG_HOME/primehack/Qt.ini"
|
||||
primehackDynamicInputTexturesPath="$XDG_DATA_HOME/primehack/Load/DynamicInputTextures"
|
||||
|
||||
# RPCS3 config files
|
||||
|
||||
rpcs3conf="/var/config/rpcs3/config.yml"
|
||||
rpcs3vfsconf="/var/config/rpcs3/vfs.yml"
|
||||
rpcs3conf="$XDG_CONFIG_HOME/rpcs3/config.yml"
|
||||
rpcs3vfsconf="$XDG_CONFIG_HOME/rpcs3/vfs.yml"
|
||||
|
||||
# Vita3k config files
|
||||
|
||||
vita3kconf="/var/config/Vita3K/config.yml"
|
||||
vita3kconf="$XDG_CONFIG_HOME/Vita3K/config.yml"
|
||||
|
||||
# MAME-SA config files
|
||||
|
||||
mameconf="/var/config/mame/ini/mame.ini"
|
||||
mameuiconf="/var/config/mame/ini/ui.ini"
|
||||
mamedefconf="/var/config/mame/cfg/default.cfg"
|
||||
mameconf="$XDG_CONFIG_HOME/mame/ini/mame.ini"
|
||||
mameuiconf="$XDG_CONFIG_HOME/mame/ini/ui.ini"
|
||||
mamedefconf="$XDG_CONFIG_HOME/mame/cfg/default.cfg"
|
||||
|
||||
# Initialize logging location if it doesn't exist, before anything else happens
|
||||
if [ ! -d "$rd_logs_folder" ]; then
|
||||
|
@ -176,13 +176,13 @@ if [ ! -d "$rd_logs_folder" ]; then
|
|||
fi
|
||||
|
||||
# Initialize location of Godot temp data files, if it doesn't exist
|
||||
if [[ ! -d "/var/config/retrodeck/godot" ]]; then
|
||||
create_dir "/var/config/retrodeck/godot"
|
||||
if [[ ! -d "$XDG_CONFIG_HOME/retrodeck/godot" ]]; then
|
||||
create_dir "$XDG_CONFIG_HOME/retrodeck/godot"
|
||||
fi
|
||||
|
||||
# We moved the lockfile in /var/config/retrodeck in order to solve issue #53 - Remove in a few versions
|
||||
# We moved the lockfile in $XDG_CONFIG_HOME/retrodeck in order to solve issue #53 - Remove in a few versions
|
||||
if [[ -f "$HOME/retrodeck/.lock" ]]; then
|
||||
mv "$HOME/retrodeck/.lock" $lockfile
|
||||
mv "$HOME/retrodeck/.lock" "$lockfile"
|
||||
fi
|
||||
|
||||
# If there is no config file I initalize the file with the the default values
|
||||
|
@ -193,9 +193,9 @@ if [[ ! -f "$rd_conf" ]]; then
|
|||
# Initializing the variables
|
||||
if [[ -z "$version" ]]; then
|
||||
if [[ -f "$lockfile" ]]; then
|
||||
if [[ $(cat $lockfile) == *"0.4."* ]] || [[ $(cat $lockfile) == *"0.3."* ]] || [[ $(cat $lockfile) == *"0.2."* ]] || [[ $(cat $lockfile) == *"0.1."* ]]; then # If the previous version is very out of date, pre-rd_conf
|
||||
if [[ $(cat "$lockfile") == *"0.4."* ]] || [[ $(cat "$lockfile") == *"0.3."* ]] || [[ $(cat "$lockfile") == *"0.2."* ]] || [[ $(cat "$lockfile") == *"0.1."* ]]; then # If the previous version is very out of date, pre-rd_conf
|
||||
log d "Running version workaround"
|
||||
version=$(cat $lockfile)
|
||||
version=$(cat "$lockfile")
|
||||
fi
|
||||
else
|
||||
version="$hard_version"
|
||||
|
@ -203,28 +203,28 @@ if [[ ! -f "$rd_conf" ]]; then
|
|||
fi
|
||||
|
||||
# Check if SD card path has changed from SteamOS update
|
||||
if [[ ! -d "$default_sd" && "$(ls -A /run/media/deck/)" ]]; then
|
||||
if [[ $(find /run/media/deck/* -maxdepth 0 -type d -print | wc -l) -eq 1 ]]; then # If there is only one SD card found in the new SteamOS 3.5 location, assign it as the default
|
||||
default_sd="$(find /run/media/deck/* -maxdepth 0 -type d -print)"
|
||||
if [[ ! -d "$default_sd" && "$(ls -A "/run/media/deck/")" ]]; then
|
||||
if [[ $(find "/run/media/deck/"* -maxdepth 0 -type d -print | wc -l) -eq 1 ]]; then # If there is only one SD card found in the new SteamOS 3.5 location, assign it as the default
|
||||
default_sd="$(find "/run/media/deck/"* -maxdepth 0 -type d -print)"
|
||||
else # If the default legacy path cannot be found, and there are multiple entries in the new Steam OS 3.5 SD card path, let the user pick which one to use
|
||||
configurator_generic_dialog "RetroDECK Setup" "The SD card was not found in the default location, and multiple drives were detected.\nPlease browse to the location of the desired SD card.\n\nIf you are not using an SD card, please click \"Cancel\"."
|
||||
default_sd="$(directory_browse "SD Card Location")"
|
||||
fi
|
||||
fi
|
||||
|
||||
cp $rd_defaults $rd_conf # Load default settings file
|
||||
set_setting_value $rd_conf "version" "$version" retrodeck # Set current version for new installs
|
||||
set_setting_value $rd_conf "sdcard" "$default_sd" retrodeck "paths" # Set SD card location if default path has changed
|
||||
cp "$rd_defaults" "$rd_conf" # Load default settings file
|
||||
set_setting_value "$rd_conf" "version" "$version" retrodeck # Set current version for new installs
|
||||
set_setting_value "$rd_conf" "sdcard" "$default_sd" retrodeck "paths" # Set SD card location if default path has changed
|
||||
|
||||
if grep -qF "cooker" <<< "$hard_version" || grep -qF "PR-" <<< "$hard_version"; then # If newly-installed version is a "cooker" or PR build
|
||||
set_setting_value $rd_conf "update_repo" "$cooker_repository_name" retrodeck "options"
|
||||
set_setting_value $rd_conf "update_check" "true" retrodeck "options"
|
||||
set_setting_value $rd_conf "developer_options" "true" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "update_repo" "$cooker_repository_name" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "update_check" "true" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "developer_options" "true" retrodeck "options"
|
||||
fi
|
||||
|
||||
log i "Setting config file permissions"
|
||||
chmod +rw $rd_conf
|
||||
log i "RetroDECK config file initialized. Contents:\n\n$(cat $rd_conf)\n"
|
||||
chmod +rw "$rd_conf"
|
||||
log i "RetroDECK config file initialized. Contents:\n\n$(cat "$rd_conf")\n"
|
||||
conf_read # Load new variables into memory
|
||||
#tmplog_merger # This function is tempry(?) removed
|
||||
|
||||
|
@ -232,10 +232,10 @@ if [[ ! -f "$rd_conf" ]]; then
|
|||
else
|
||||
log i "Loading RetroDECK config file in $rd_conf"
|
||||
|
||||
if grep -qF "cooker" <<< $hard_version; then # If newly-installed version is a "cooker" build
|
||||
set_setting_value $rd_conf "update_repo" "$cooker_repository_name" retrodeck "options"
|
||||
set_setting_value $rd_conf "update_check" "true" retrodeck "options"
|
||||
set_setting_value $rd_conf "developer_options" "true" retrodeck "options"
|
||||
if grep -qF "cooker" <<< "$hard_version"; then # If newly-installed version is a "cooker" build
|
||||
set_setting_value "$rd_conf" "update_repo" "$cooker_repository_name" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "update_check" "true" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "developer_options" "true" retrodeck "options"
|
||||
fi
|
||||
|
||||
conf_read
|
||||
|
@ -244,7 +244,7 @@ else
|
|||
if [[ ! -d "$rdhome" ]]; then
|
||||
configurator_generic_dialog "RetroDECK Setup" "The RetroDECK data folder was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the \"retrodeck\" folder."
|
||||
new_home_path=$(directory_browse "RetroDECK folder location")
|
||||
set_setting_value $rd_conf "rdhome" "$new_home_path" retrodeck "paths"
|
||||
set_setting_value "$rd_conf" "rdhome" "$new_home_path" retrodeck "paths"
|
||||
conf_read
|
||||
#tmplog_merger # This function is tempry(?) removed
|
||||
prepare_component "postmove" "retrodeck"
|
||||
|
|
|
@ -8,11 +8,11 @@ multi_user_set_default_dialog() {
|
|||
--text="Would you like to set $chosen_user as the default user?\n\nIf the current user cannot be determined from the system, the default will be used.\nThis normally only happens in Desktop Mode.\n\nIf you would like to be asked which user is playing every time, click \"No and don't ask again\"")
|
||||
rc=$? # Capture return code, as "Yes" button has no text value
|
||||
if [[ $rc == "1" ]]; then # If any button other than "Yes" was clicked
|
||||
if [[ $choice == "No and don't ask again" ]]; then
|
||||
set_setting_value $rd_conf "ask_default_user" "false" retrodeck "options"
|
||||
if [[ "$choice" == "No and don't ask again" ]]; then
|
||||
set_setting_value "$rd_conf" "ask_default_user" "false" retrodeck "options"
|
||||
fi
|
||||
else # User clicked "Yes"
|
||||
set_setting_value $rd_conf "default_user" "$chosen_user" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "default_user" "$chosen_user" retrodeck "options"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ chosen_user=$(rd_zenity \
|
|||
--column "Steam Username" --print-column=1 \
|
||||
"${full_userlist[@]}")
|
||||
|
||||
if [[ ! -z $chosen_user && -z $default_user && $ask_default_user == "true" ]]; then
|
||||
if [[ ! -z "$chosen_user" && -z "$default_user" && "$ask_default_user" == "true" ]]; then
|
||||
multi_user_set_default_dialog "$chosen_user"
|
||||
fi
|
||||
echo "$chosen_user"
|
||||
|
@ -48,7 +48,7 @@ multi_user_enable_multi_user_mode() {
|
|||
rm -rf "$multi_user_data_folder/$SteamAppUser" # Remove stale data after backup
|
||||
fi
|
||||
fi
|
||||
set_setting_value $rd_conf "multi_user_mode" "true" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "multi_user_mode" "true" retrodeck "options"
|
||||
multi_user_determine_current_user
|
||||
if [[ -d "$multi_user_data_folder/$SteamAppUser" ]]; then
|
||||
configurator_process_complete_dialog "enabling multi-user support"
|
||||
|
@ -74,7 +74,7 @@ multi_user_disable_multi_user_mode() {
|
|||
|
||||
if [[ ! -z "$single_user" ]]; then # Single user was selected
|
||||
multi_user_return_to_single_user "$single_user"
|
||||
set_setting_value $rd_conf "multi_user_mode" "false" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "multi_user_mode" "false" retrodeck "options"
|
||||
configurator_process_complete_dialog "disabling multi-user support"
|
||||
else
|
||||
configurator_generic_dialog "RetroDECK Multi-User Mode" "No single user was selected, please try the process again."
|
||||
|
@ -83,13 +83,13 @@ multi_user_disable_multi_user_mode() {
|
|||
else
|
||||
single_user=$(ls -1 "$multi_user_data_folder")
|
||||
multi_user_return_to_single_user "$single_user"
|
||||
set_setting_value $rd_conf "multi_user_mode" "false" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "multi_user_mode" "false" retrodeck "options"
|
||||
configurator_process_complete_dialog "disabling multi-user support"
|
||||
fi
|
||||
}
|
||||
|
||||
multi_user_determine_current_user() {
|
||||
if [[ $(get_setting_value $rd_conf "multi_user_mode" retrodeck "options") == "true" ]]; then # If multi-user environment is enabled in rd_conf
|
||||
if [[ $(get_setting_value "$rd_conf" "multi_user_mode" retrodeck "options") == "true" ]]; then # If multi-user environment is enabled in rd_conf
|
||||
if [[ -d "$multi_user_data_folder" ]]; then
|
||||
if [[ ! -z $SteamAppUser ]]; then # If running in Game Mode and this variable exists
|
||||
if [[ -z $(ls -1 "$multi_user_data_folder" | grep "$SteamAppUser") ]]; then
|
||||
|
@ -99,24 +99,24 @@ multi_user_determine_current_user() {
|
|||
fi
|
||||
else # Unable to find Steam user ID
|
||||
if [[ $(ls -1 "$multi_user_data_folder" | wc -l) -gt 1 ]]; then
|
||||
if [[ -z $default_user ]]; then # And a default user is not set
|
||||
if [[ -z "$default_user" ]]; then # And a default user is not set
|
||||
configurator_generic_dialog "RetroDECK Multi-User Mode" "The current user could not be determined from the system, and there are multiple users registered.\n\nPlease select which user is currently playing in the next dialog."
|
||||
SteamAppUser=$(multi_user_choose_current_user_dialog)
|
||||
if [[ ! -z $SteamAppUser ]]; then # User was chosen from dialog
|
||||
if [[ ! -z "$SteamAppUser" ]]; then # User was chosen from dialog
|
||||
multi_user_link_current_user_files
|
||||
else
|
||||
configurator_generic_dialog "RetroDECK Multi-User Mode" "No user was chosen, RetroDECK will launch with the files from the user who played most recently."
|
||||
fi
|
||||
else # The default user is set
|
||||
if [[ ! -z $(ls -1 $multi_user_data_folder | grep "$default_user") ]]; then # Confirm user data folder exists
|
||||
SteamAppUser=$default_user
|
||||
if [[ ! -z $(ls -1 "$multi_user_data_folder" | grep "$default_user") ]]; then # Confirm user data folder exists
|
||||
SteamAppUser="$default_user"
|
||||
multi_user_link_current_user_files
|
||||
else # Default user has no data folder, something may have gone horribly wrong. Setting up as a new user.
|
||||
multi_user_setup_new_user
|
||||
fi
|
||||
fi
|
||||
else # If there is only 1 user in the userlist, default to that user
|
||||
SteamAppUser=$(ls -1 $multi_user_data_folder)
|
||||
SteamAppUser=$(ls -1 "$multi_user_data_folder")
|
||||
multi_user_link_current_user_files
|
||||
fi
|
||||
fi
|
||||
|
@ -134,11 +134,11 @@ multi_user_determine_current_user() {
|
|||
multi_user_setup_new_user
|
||||
else # But dialog box was blank
|
||||
configurator_generic_dialog "RetroDECK Multi-User Mode" "No username was entered, so multi-user data folder cannot be created.\n\nDisabling multi-user mode, please try the process again."
|
||||
set_setting_value $rd_conf "multi_user_mode" "false" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "multi_user_mode" "false" retrodeck "options"
|
||||
fi
|
||||
else # User clicked "Cancel"
|
||||
configurator_generic_dialog "RetroDECK Multi-User Mode" "Cancelling multi-user mode activation."
|
||||
set_setting_value $rd_conf "multi_user_mode" "false" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "multi_user_mode" "false" retrodeck "options"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
@ -155,16 +155,16 @@ multi_user_return_to_single_user() {
|
|||
unlink "$rd_conf"
|
||||
mv -f "$multi_user_data_folder/$SteamAppUser/config/retrodeck/retrodeck.cfg" "$rd_conf"
|
||||
# RetroArch one-offs, because it has so many folders that should be shared between users
|
||||
unlink "/var/config/retroarch/retroarch.cfg"
|
||||
unlink "/var/config/retroarch/retroarch-core-options.cfg"
|
||||
mv -f "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg" "/var/config/retroarch/retroarch.cfg"
|
||||
mv -f "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg" "/var/config/retroarch/retroarch-core-options.cfg"
|
||||
# XEMU one-offs, because it stores its config in /var/data, not /var/config like everything else
|
||||
unlink "/var/config/xemu"
|
||||
unlink "/var/data/xemu/xemu"
|
||||
create_dir "/var/config/xemu"
|
||||
mv -f "$multi_user_data_folder/$single_user/config/xemu"/{.[!.],}* "/var/config/xemu"
|
||||
dir_prep "/var/config/xemu" "/var/data/xemu/xemu"
|
||||
unlink "$XDG_CONFIG_HOME/retroarch/retroarch.cfg"
|
||||
unlink "$XDG_CONFIG_HOME/retroarch/retroarch-core-options.cfg"
|
||||
mv -f "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg" "$XDG_CONFIG_HOME/retroarch/retroarch.cfg"
|
||||
mv -f "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg" "$XDG_CONFIG_HOME/retroarch/retroarch-core-options.cfg"
|
||||
# XEMU one-offs, because it stores its config in $XDG_DATA_HOME, not $XDG_CONFIG_HOME like everything else
|
||||
unlink "$XDG_CONFIG_HOME/xemu"
|
||||
unlink "$XDG_DATA_HOME/xemu/xemu"
|
||||
create_dir "$XDG_CONFIG_HOME/xemu"
|
||||
mv -f "$multi_user_data_folder/$single_user/config/xemu"/{.[!.],}* "$XDG_CONFIG_HOME/xemu"
|
||||
dir_prep "$XDG_CONFIG_HOME/xemu" "$XDG_DATA_HOME/xemu/xemu"
|
||||
create_dir "$saves_folder"
|
||||
create_dir "$states_folder"
|
||||
mv -f "$multi_user_data_folder/$single_user/saves"/{.[!.],}* "$saves_folder"
|
||||
|
@ -172,9 +172,9 @@ multi_user_return_to_single_user() {
|
|||
for emu_conf in $(find "$multi_user_data_folder/$single_user/config" -mindepth 1 -maxdepth 1 -type d -printf '%f\n')
|
||||
do
|
||||
if [[ ! -z $(grep "^$emu_conf$" "$multi_user_emulator_config_dirs") ]]; then
|
||||
unlink "/var/config/$emu_conf"
|
||||
create_dir "/var/config/$emu_conf"
|
||||
mv -f "$multi_user_data_folder/$single_user/config/$emu_conf"/{.[!.],}* "/var/config/$emu_conf"
|
||||
unlink "$XDG_CONFIG_HOME/$emu_conf"
|
||||
create_dir "$XDG_CONFIG_HOME/$emu_conf"
|
||||
mv -f "$multi_user_data_folder/$single_user/config/$emu_conf"/{.[!.],}* "$XDG_CONFIG_HOME/$emu_conf"
|
||||
fi
|
||||
done
|
||||
rm -r "$multi_user_data_folder/$single_user" # Should be empty, omitting -f for safety
|
||||
|
@ -192,9 +192,9 @@ multi_user_setup_new_user() {
|
|||
rm -f "$rd_conf"
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retrodeck/retrodeck.cfg" "$rd_conf"
|
||||
create_dir "$multi_user_data_folder/$SteamAppUser/config/retroarch"
|
||||
if [[ ! -L "/var/config/retroarch/retroarch.cfg" ]]; then
|
||||
mv "/var/config/retroarch/retroarch.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg"
|
||||
mv "/var/config/retroarch/retroarch-core-options.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg"
|
||||
if [[ ! -L "$XDG_CONFIG_HOME/retroarch/retroarch.cfg" ]]; then
|
||||
mv "$XDG_CONFIG_HOME/retroarch/retroarch.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg"
|
||||
mv "$XDG_CONFIG_HOME/retroarch/retroarch-core-options.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg"
|
||||
else
|
||||
cp "$config/retroarch/retroarch.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg"
|
||||
cp "$config/retroarch/retroarch-core-options.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg"
|
||||
|
@ -202,19 +202,19 @@ multi_user_setup_new_user() {
|
|||
set_setting_value "$raconf" "savestate_directory" "$states_folder" "retroarch"
|
||||
set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch"
|
||||
fi
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg" "/var/config/retroarch/retroarch.cfg"
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg" "/var/config/retroarch/retroarch-core-options.cfg"
|
||||
for emu_conf in $(find "/var/config" -mindepth 1 -maxdepth 1 -type l -printf '%f\n') # For all the config folders already linked to a different user
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg" "$XDG_CONFIG_HOME/retroarch/retroarch.cfg"
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg" "$XDG_CONFIG_HOME/retroarch/retroarch-core-options.cfg"
|
||||
for emu_conf in $(find "$XDG_CONFIG_HOME" -mindepth 1 -maxdepth 1 -type l -printf '%f\n') # For all the config folders already linked to a different user
|
||||
do
|
||||
if [[ ! -z $(grep "^$emu_conf$" "$multi_user_emulator_config_dirs") ]]; then
|
||||
unlink "/var/config/$emu_conf"
|
||||
unlink "$XDG_CONFIG_HOME/$emu_conf"
|
||||
prepare_component "reset" "$emu_conf"
|
||||
fi
|
||||
done
|
||||
for emu_conf in $(find "/var/config" -mindepth 1 -maxdepth 1 -type d -printf '%f\n') # For all the currently non-linked config folders, like from a newly-added emulator
|
||||
for emu_conf in $(find "$XDG_CONFIG_HOME" -mindepth 1 -maxdepth 1 -type d -printf '%f\n') # For all the currently non-linked config folders, like from a newly-added emulator
|
||||
do
|
||||
if [[ ! -z $(grep "^$emu_conf$" "$multi_user_emulator_config_dirs") ]]; then
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "/var/config/$emu_conf"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "$XDG_CONFIG_HOME/$emu_conf"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
@ -224,22 +224,22 @@ multi_user_link_current_user_files() {
|
|||
ln -sfT "$multi_user_data_folder/$SteamAppUser/saves" "$saves_folder"
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/states" "$states_folder"
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retrodeck/retrodeck.cfg" "$rd_conf"
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg" "/var/config/retroarch/retroarch.cfg"
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg" "/var/config/retroarch/retroarch-core-options.cfg"
|
||||
for emu_conf in $(find "/var/config" -mindepth 1 -maxdepth 1 -type d -printf '%f\n') # Find any new emulator config folders from last time this user played
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch.cfg" "$XDG_CONFIG_HOME/retroarch/retroarch.cfg"
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/retroarch/retroarch-core-options.cfg" "$XDG_CONFIG_HOME/retroarch/retroarch-core-options.cfg"
|
||||
for emu_conf in $(find "$XDG_CONFIG_HOME" -mindepth 1 -maxdepth 1 -type d -printf '%f\n') # Find any new emulator config folders from last time this user played
|
||||
do
|
||||
if [[ ! -z $(grep "^$emu_conf$" "$multi_user_emulator_config_dirs") ]]; then
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "/var/config/$emu_conf"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "$XDG_CONFIG_HOME/$emu_conf"
|
||||
fi
|
||||
done
|
||||
for emu_conf in $(find "/var/config" -mindepth 1 -maxdepth 1 -type l -printf '%f\n')
|
||||
for emu_conf in $(find "$XDG_CONFIG_HOME" -mindepth 1 -maxdepth 1 -type l -printf '%f\n')
|
||||
do
|
||||
if [[ ! -z $(grep "^$emu_conf$" "$multi_user_emulator_config_dirs") ]]; then
|
||||
if [[ -d "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" ]]; then # If the current user already has a config folder for this emulator
|
||||
ln -sfT "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "retrodeck/config/$emu_conf"
|
||||
else # If the current user doesn't have a config folder for this emulator, init it and then link it
|
||||
prepare_component "reset" "$emu_conf"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "/var/config/$emu_conf"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/$emu_conf" "$XDG_CONFIG_HOME/$emu_conf"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -80,8 +80,8 @@ move() {
|
|||
# Function to move a directory from one parent to another
|
||||
# USAGE: move $source_dir $dest_dir
|
||||
|
||||
source_dir="$(echo $1 | sed 's![^/]$!&/!')" # Add trailing slash if it is missing
|
||||
dest_dir="$(echo $2 | sed 's![^/]$!&/!')" # Add trailing slash if it is missing
|
||||
source_dir="$(echo "$1" | sed 's![^/]$!&/!')" # Add trailing slash if it is missing
|
||||
dest_dir="$(echo "$2" | sed 's![^/]$!&/!')" # Add trailing slash if it is missing
|
||||
|
||||
log d "Moving \"$source_dir\" to \"$dest_dir\""
|
||||
|
||||
|
@ -147,17 +147,17 @@ update_rd_conf() {
|
|||
# STAGE 1: For current files that haven't been broken into sections yet, where every setting name is unique
|
||||
|
||||
conf_read # Read current settings into memory
|
||||
mv -f $rd_conf $rd_conf_backup # Backup config file before update
|
||||
cp $rd_defaults $rd_conf # Copy defaults file into place
|
||||
mv -f "$rd_conf" "$rd_conf_backup" # Backup config file before update
|
||||
cp "$rd_defaults" "$rd_conf" # Copy defaults file into place
|
||||
conf_write # Write old values into new retrodeck.cfg file
|
||||
|
||||
# STAGE 2: To handle presets sections that use duplicate setting names
|
||||
|
||||
generate_single_patch $rd_defaults $rd_conf_backup $rd_update_patch retrodeck # Create a patch file for differences between defaults and current user settings
|
||||
sed -i '/change^^version/d' $rd_update_patch # Remove version line from temporary patch file
|
||||
deploy_single_patch $rd_defaults $rd_update_patch $rd_conf # Re-apply user settings to defaults file
|
||||
set_setting_value $rd_conf "version" "$hard_version" retrodeck # Set version of currently running RetroDECK to updated retrodeck.cfg
|
||||
rm -f $rd_update_patch # Cleanup temporary patch file
|
||||
generate_single_patch "$rd_defaults" "$rd_conf_backup" "$rd_update_patch" retrodeck # Create a patch file for differences between defaults and current user settings
|
||||
sed -i '/change^^version/d' "$rd_update_patch" # Remove version line from temporary patch file
|
||||
deploy_single_patch "$rd_defaults" "$rd_update_patch" "$rd_conf" # Re-apply user settings to defaults file
|
||||
set_setting_value "$rd_conf" "version" "$hard_version" retrodeck # Set version of currently running RetroDECK to updated retrodeck.cfg
|
||||
rm -f "$rd_update_patch" # Cleanup temporary patch file
|
||||
conf_read # Read all settings into memory
|
||||
|
||||
# STAGE 3: Create new folders that were added to the shipped retrodeck.cfg, if any
|
||||
|
@ -196,13 +196,13 @@ update_rd_conf() {
|
|||
"\(.key):\(.value)",
|
||||
"\(.value):\(.key)"
|
||||
] | join("\n")
|
||||
' $features)
|
||||
' "$features")
|
||||
|
||||
while IFS= read -r current_setting_line # Read the existing retrodeck.cfg
|
||||
do
|
||||
if [[ (! -z "$current_setting_line") && (! "$current_setting_line" == "#"*) && (! "$current_setting_line" == "[]") ]]; then # If the line has a valid entry in it
|
||||
if [[ ! -z $(grep -o -P "^\[.+?\]$" <<< "$current_setting_line") ]]; then # If the line is a section header
|
||||
local current_section=$(sed 's^[][]^^g' <<< $current_setting_line) # Remove brackets from section name
|
||||
local current_section=$(sed 's^[][]^^g' <<< "$current_setting_line") # Remove brackets from section name
|
||||
else
|
||||
if [[ ! ("$current_section" == "" || "$current_section" == "paths" || "$current_section" == "options" || "$current_section" == "cheevos" || "$current_section" == "cheevos_hardcore") ]]; then
|
||||
local system_name=$(get_setting_name "$current_setting_line" "retrodeck") # Read the variable name from the current line
|
||||
|
@ -220,7 +220,7 @@ update_rd_conf() {
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
done < $rd_conf
|
||||
done < "$rd_conf"
|
||||
}
|
||||
|
||||
conf_read() {
|
||||
|
@ -252,7 +252,7 @@ conf_write() {
|
|||
do
|
||||
if [[ (! -z "$current_setting_line") && (! "$current_setting_line" == "#"*) && (! "$current_setting_line" == "[]") ]]; then # If the line has a valid entry in it
|
||||
if [[ ! -z $(grep -o -P "^\[.+?\]$" <<< "$current_setting_line") ]]; then # If the line is a section header
|
||||
local current_section=$(sed 's^[][]^^g' <<< $current_setting_line) # Remove brackets from section name
|
||||
local current_section=$(sed 's^[][]^^g' <<< "$current_setting_line") # Remove brackets from section name
|
||||
else
|
||||
if [[ "$current_section" == "" || "$current_section" == "paths" || "$current_section" == "options" ]]; then
|
||||
local current_setting_name=$(get_setting_name "$current_setting_line" "retrodeck") # Read the variable name from the current line
|
||||
|
@ -264,7 +264,7 @@ conf_write() {
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
done < $rd_conf
|
||||
done < "$rd_conf"
|
||||
log d "retrodeck.cfg written"
|
||||
}
|
||||
|
||||
|
@ -335,7 +335,7 @@ rd_zenity() {
|
|||
|
||||
unset CONFIGURATOR_GUI
|
||||
|
||||
return $status
|
||||
return "$status"
|
||||
}
|
||||
|
||||
update_rpcs3_firmware() {
|
||||
|
@ -394,7 +394,7 @@ backup_retrodeck_userdata() {
|
|||
local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "paths")
|
||||
config_paths["$current_setting_name"]="$current_setting_value"
|
||||
fi
|
||||
done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
|
||||
done < <(grep -v '^\s*$' "$rd_conf" | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
|
||||
|
||||
# Determine which paths to backup
|
||||
if [[ "$backup_type" == "complete" ]]; then
|
||||
|
@ -553,7 +553,7 @@ backup_retrodeck_userdata() {
|
|||
path_size=$(du -sk "$path" 2>/dev/null | cut -f1) # Get size in KB
|
||||
path_size=$((path_size * 1024)) # Convert to bytes for calculation
|
||||
total_size=$((total_size + path_size))
|
||||
echo "$total_size" > $total_size_file
|
||||
echo "$total_size" > "$total_size_file"
|
||||
fi
|
||||
done
|
||||
) |
|
||||
|
@ -578,15 +578,15 @@ backup_retrodeck_userdata() {
|
|||
available_space=$(df -B1 "$backups_folder" | awk 'NR==2 {print $4}')
|
||||
|
||||
# Log sizes for reference
|
||||
log i "Total size of backup data: $(numfmt --to=iec-i --suffix=B $total_size)"
|
||||
log i "Available space at destination: $(numfmt --to=iec-i --suffix=B $available_space)"
|
||||
log i "Total size of backup data: $(numfmt --to=iec-i --suffix=B "$total_size")"
|
||||
log i "Available space at destination: $(numfmt --to=iec-i --suffix=B "$available_space")"
|
||||
|
||||
# Check if we have enough space (using uncompressed size as a conservative estimate)
|
||||
if [[ "$available_space" -lt "$total_size" ]]; then
|
||||
if [[ "$CONFIGURATOR_GUI" == "zenity" ]]; then
|
||||
configurator_generic_dialog "RetroDECK Userdata Backup" "There is not enough free space to perform this backup.\n\nYou need at least $(numfmt --to=iec-i --suffix=B $total_size),\nplease free up some space and try again."
|
||||
configurator_generic_dialog "RetroDECK Userdata Backup" "There is not enough free space to perform this backup.\n\nYou need at least $(numfmt --to=iec-i --suffix=B "$total_size"),\nplease free up some space and try again."
|
||||
fi
|
||||
log e "Error: Not enough space to perform backup. Need at least $(numfmt --to=iec-i --suffix=B $total_size)"
|
||||
log e "Error: Not enough space to perform backup. Need at least $(numfmt --to=iec-i --suffix=B "$total_size")"
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
@ -853,9 +853,9 @@ install_retrodeck_starterpack() {
|
|||
|
||||
## DOOM section ##
|
||||
cp /app/retrodeck/extras/doom1.wad "$roms_folder/doom/doom1.wad" # No -f in case the user already has it
|
||||
create_dir "/var/config/ES-DE/gamelists/doom"
|
||||
if [[ ! -f "/var/config/ES-DE/gamelists/doom/gamelist.xml" ]]; then # Don't overwrite an existing gamelist
|
||||
cp "/app/retrodeck/rd_prepacks/doom/gamelist.xml" "/var/config/ES-DE/gamelists/doom/gamelist.xml"
|
||||
create_dir "$XDG_CONFIG_HOME/ES-DE/gamelists/doom"
|
||||
if [[ ! -f "$XDG_CONFIG_HOME/ES-DE/gamelists/doom/gamelist.xml" ]]; then # Don't overwrite an existing gamelist
|
||||
cp "/app/retrodeck/rd_prepacks/doom/gamelist.xml" "$XDG_CONFIG_HOME/ES-DE/gamelists/doom/gamelist.xml"
|
||||
fi
|
||||
create_dir "$media_folder/doom"
|
||||
unzip -oq "/app/retrodeck/rd_prepacks/doom/doom.zip" -d "$media_folder/doom/"
|
||||
|
@ -893,8 +893,8 @@ update_splashscreens() {
|
|||
|
||||
log i "Updating splash screen"
|
||||
|
||||
rm -rf /var/config/ES-DE/resources/graphics
|
||||
rsync -rlD --mkpath "/app/retrodeck/graphics/" "/var/config/ES-DE/resources/graphics/"
|
||||
rm -rf "$XDG_CONFIG_HOME/ES-DE/resources/graphics"
|
||||
rsync -rlD --mkpath "/app/retrodeck/graphics/" "$XDG_CONFIG_HOME/ES-DE/resources/graphics/"
|
||||
|
||||
}
|
||||
|
||||
|
@ -930,7 +930,7 @@ splash_screen() {
|
|||
($current_day | tonumber) <= (.value.end_date | tonumber) and
|
||||
($current_time | tonumber) >= (.value.start_time | tonumber) and
|
||||
($current_time | tonumber) <= (.value.end_time | tonumber)
|
||||
) | .value.filename' $features)
|
||||
) | .value.filename' "$features")
|
||||
|
||||
# Determine the splash file to use
|
||||
if [[ -n "$splash_screen" ]]; then
|
||||
|
@ -972,7 +972,7 @@ install_release() {
|
|||
mkdir -p "$rdhome/RetroDECK_Updates"
|
||||
|
||||
# Download the flatpak file
|
||||
wget -P "$rdhome/RetroDECK_Updates" $flatpak_url -O "$rdhome/RetroDECK_Updates/RetroDECK$iscooker.flatpak"
|
||||
wget -P "$rdhome/RetroDECK_Updates" "$flatpak_url" -O "$rdhome/RetroDECK_Updates/RetroDECK$iscooker.flatpak"
|
||||
|
||||
# Check if the download was successful
|
||||
if [[ $? -ne 0 ]]; then
|
||||
|
@ -1012,13 +1012,13 @@ ponzu() {
|
|||
local executable
|
||||
|
||||
# if the binaries are found, ponzu should be set as true into the retrodeck config
|
||||
if [ -f "/var/data/ponzu/Citra/bin/citra-qt" ]; then
|
||||
if [ -f "$XDG_DATA_HOME/ponzu/Citra/bin/citra-qt" ]; then
|
||||
log d "Citra binaries has already been installed, checking for updates and forcing the setting as true."
|
||||
set_setting_value $rd_conf "akai_ponzu" "true" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "akai_ponzu" "true" retrodeck "options"
|
||||
fi
|
||||
if [ -f "/var/data/ponzu/Yuzu/bin/yuzu" ]; then
|
||||
if [ -f "$XDG_DATA_HOME/ponzu/Yuzu/bin/yuzu" ]; then
|
||||
log d "Yuzu binaries has already been installed, checking for updates and forcing the setting as true."
|
||||
set_setting_value $rd_conf "kiroi_ponzu" "true" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "kiroi_ponzu" "true" retrodeck "options"
|
||||
fi
|
||||
|
||||
# Loop through all ponzu files
|
||||
|
@ -1027,11 +1027,11 @@ ponzu() {
|
|||
if [ -f "$ponzu_file" ]; then
|
||||
if [[ "$ponzu_file" == *itra* ]]; then
|
||||
log i "Found akai ponzu! Elaborating it"
|
||||
data_dir="/var/data/ponzu/Citra"
|
||||
data_dir="$XDG_DATA_HOME/ponzu/Citra"
|
||||
local message="Akai ponzu is served, enjoy"
|
||||
elif [[ "$ponzu_file" == *uzu* ]]; then
|
||||
log i "Found kiroi ponzu! Elaborating it"
|
||||
data_dir="/var/data/ponzu/Yuzu"
|
||||
data_dir="$XDG_DATA_HOME/ponzu/Yuzu"
|
||||
local message="Kiroi ponzu is served, enjoy"
|
||||
else
|
||||
log e "AppImage not recognized, not a ponzu ingredient!"
|
||||
|
@ -1059,14 +1059,14 @@ ponzu() {
|
|||
chmod +x "$executable"
|
||||
chmod +x "$executable-qt"
|
||||
prepare_component "reset" "citra"
|
||||
set_setting_value $rd_conf "akai_ponzu" "true" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "akai_ponzu" "true" retrodeck "options"
|
||||
elif [[ "$ponzu_file" == *uzu* ]]; then
|
||||
mv "$tmp_folder/usr/"** .
|
||||
executable="$data_dir/bin/yuzu"
|
||||
log d "Making $executable executable"
|
||||
chmod +x "$executable"
|
||||
prepare_component "reset" "yuzu"
|
||||
set_setting_value $rd_conf "kiroi_ponzu" "true" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "kiroi_ponzu" "true" retrodeck "options"
|
||||
fi
|
||||
|
||||
cd -
|
||||
|
@ -1084,15 +1084,15 @@ ponzu_remove() {
|
|||
if [[ "$1" == "citra" ]]; then
|
||||
if [[ $(configurator_generic_question_dialog "Ponzu - Remove Citra" "Do you really want to remove Citra binaries?\n\nYour games and saves will not be deleted.") == "true" ]]; then
|
||||
log i "Ponzu: removing Citra"
|
||||
rm -rf "/var/data/ponzu/Citra"
|
||||
set_setting_value $rd_conf "akai_ponzu" "false" retrodeck "options"
|
||||
rm -rf "$XDG_DATA_HOME/ponzu/Citra"
|
||||
set_setting_value "$rd_conf" "akai_ponzu" "false" retrodeck "options"
|
||||
configurator_generic_dialog "Ponzu - Remove Citra" "Done, Citra is now removed from RetroDECK"
|
||||
fi
|
||||
elif [[ "$1" == "yuzu" ]]; then
|
||||
if [[ $(configurator_generic_question_dialog "Ponzu - Remove Yuzu" "Do you really want to remove Yuzu binaries?\n\nYour games and saves will not be deleted.") == "true" ]]; then
|
||||
log i "Ponzu: removing Yuzu"
|
||||
rm -rf "/var/data/ponzu/Yuzu"
|
||||
set_setting_value $rd_conf "kiroi_ponzu" "false" retrodeck "options"
|
||||
rm -rf "$XDG_DATA_HOME/ponzu/Yuzu"
|
||||
set_setting_value "$rd_conf" "kiroi_ponzu" "false" retrodeck "options"
|
||||
configurator_generic_dialog "Ponzu - Remove Yuzu" "Done, Yuzu is now removed from RetroDECK"
|
||||
fi
|
||||
else
|
||||
|
@ -1115,7 +1115,7 @@ release_selector() {
|
|||
|
||||
# Fetch the main release from the RetroDECK repository
|
||||
log d "Fetching latest main release from GitHub API for repository RetroDECK"
|
||||
local main_release=$(curl -s https://api.github.com/repos/$git_organization_name/RetroDECK/releases/latest)
|
||||
local main_release=$(curl -s "https://api.github.com/repos/$git_organization_name/RetroDECK/releases/latest")
|
||||
|
||||
if [[ -z "$main_release" ]]; then
|
||||
log e "Failed to fetch the main release"
|
||||
|
@ -1134,7 +1134,7 @@ release_selector() {
|
|||
local release_array=("Main Release" "$main_tag_name" "$main_human_readable_date")
|
||||
|
||||
# Fetch all releases (including draft and pre-release) from the Cooker repository
|
||||
local releases=$(curl -s https://api.github.com/repos/$git_organization_name/$cooker_repository_name/releases?per_page=100)
|
||||
local releases=$(curl -s "https://api.github.com/repos/$git_organization_name/$cooker_repository_name/releases?per_page=100")
|
||||
|
||||
if [[ -z "$releases" ]]; then
|
||||
log e "Failed to fetch releases or no releases available"
|
||||
|
@ -1220,16 +1220,16 @@ release_selector() {
|
|||
log d "User confirmed installation of release $selected_tag"
|
||||
|
||||
if echo "$selected_release" | grep -q "Main Release"; then
|
||||
set_setting_value $rd_conf "update_repo" "$main_repository_name" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "update_repo" "$main_repository_name" retrodeck "options"
|
||||
log i "Switching to main channel"
|
||||
else
|
||||
set_setting_value $rd_conf "update_repo" "$cooker_repository_name" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "update_repo" "$cooker_repository_name" retrodeck "options"
|
||||
log i "Switching to cooker channel"
|
||||
fi
|
||||
|
||||
set_setting_value "$rd_conf" "branch" "$selected_branch" "retrodeck" "options"
|
||||
log d "Set branch to $selected_branch in configuration"
|
||||
install_release $selected_tag
|
||||
install_release "$selected_tag"
|
||||
|
||||
else
|
||||
log d "User canceled installation"
|
||||
|
@ -1294,21 +1294,21 @@ retroarch_updater(){
|
|||
log i "Running RetroArch updater"
|
||||
|
||||
# Synchronize cores from the application share directory to the RetroArch cores directory
|
||||
rsync -rlD --mkpath "/app/share/libretro/cores/" "/var/config/retroarch/cores/" && log d "RetroArch cores updated correctly"
|
||||
rsync -rlD --mkpath "/app/share/libretro/cores/" "$XDG_CONFIG_HOME/retroarch/cores/" && log d "RetroArch cores updated correctly"
|
||||
|
||||
# Synchronize border overlays from the RetroDeck configuration directory to the RetroArch overlays directory
|
||||
rsync -rlD --mkpath "/app/retrodeck/config/retroarch/borders/" "/var/config/retroarch/overlays/borders/" && log d "RetroArch overlays and borders updated correctly"
|
||||
rsync -rlD --mkpath "/app/retrodeck/config/retroarch/borders/" "$XDG_CONFIG_HOME/retroarch/overlays/borders/" && log d "RetroArch overlays and borders updated correctly"
|
||||
}
|
||||
|
||||
portmaster_show(){
|
||||
log d "Setting PortMaster visibility in ES-DE"
|
||||
if [ "$1" = "true" ]; then
|
||||
log d "\"$roms_folder/portmaster/PortMaster.sh\" is not found, installing it"
|
||||
install -Dm755 "/var/data/PortMaster/PortMaster.sh" "$roms_folder/portmaster/PortMaster.sh" && log d "PortMaster is correctly showing in ES-DE"
|
||||
set_setting_value $rd_conf "portmaster_show" "true" retrodeck "options"
|
||||
install -Dm755 "$XDG_DATA_HOME/PortMaster/PortMaster.sh" "$roms_folder/portmaster/PortMaster.sh" && log d "PortMaster is correctly showing in ES-DE"
|
||||
set_setting_value "$rd_conf" "portmaster_show" "true" retrodeck "options"
|
||||
elif [ "$1" = "false" ]; then
|
||||
rm -rf "$roms_folder/portmaster/PortMaster.sh" && log d "PortMaster is correctly hidden in ES-DE"
|
||||
set_setting_value $rd_conf "portmaster_show" "false" retrodeck "options"
|
||||
set_setting_value "$rd_conf" "portmaster_show" "false" retrodeck "options"
|
||||
else
|
||||
log e "\"$1\" is not a valid choice, quitting"
|
||||
fi
|
||||
|
@ -1430,7 +1430,7 @@ repair_paths() {
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
|
||||
done < <(grep -v '^\s*$' "$rd_conf" | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
|
||||
|
||||
if [[ $invalid_path_found == "true" ]]; then
|
||||
log i "One or more invalid paths repaired, fixing internal RetroDECK structures"
|
||||
|
|
|
@ -21,7 +21,7 @@ run_and_check() {
|
|||
fi
|
||||
|
||||
# Run command with timeout
|
||||
timeout -s TERM $TIMEOUT $full_cmd
|
||||
timeout -s TERM $TIMEOUT "$full_cmd"
|
||||
local exit_code=$?
|
||||
|
||||
# Log the results
|
||||
|
@ -52,4 +52,4 @@ for entry in "${commands[@]}"; do
|
|||
|
||||
# Run the command with optional CLI argument
|
||||
run_and_check "$cmd" "$cli_arg"
|
||||
done
|
||||
done
|
||||
|
|
|
@ -40,7 +40,7 @@ post_update() {
|
|||
local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "paths")
|
||||
compressible_paths=("${compressible_paths[@]}" "false" "$current_setting_name" "$current_setting_value")
|
||||
fi
|
||||
done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
|
||||
done < <(grep -v '^\s*$' "$rd_conf" | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
|
||||
|
||||
choice=$(rd_zenity \
|
||||
--list --width=1200 --height=720 \
|
||||
|
@ -92,11 +92,11 @@ post_update() {
|
|||
# - Duckstation save and state locations were dir_prep'd to the rdhome/save and /state folders, which was not previously done. Much safer now!
|
||||
# - Fix PICO-8 folder structure. ROM and save folders are now sane and binary files will go into ~/retrodeck/bios/pico-8/
|
||||
|
||||
rm -rf /var/config/primehack # Purge old Primehack config files. Saves are safe as they are linked into /var/data/primehack.
|
||||
rm -rf "$XDG_CONFIG_HOME/primehack" # Purge old Primehack config files. Saves are safe as they are linked into $XDG_DATA_HOME/primehack.
|
||||
prepare_component "reset" "primehack"
|
||||
|
||||
dir_prep "$rdhome/saves/duckstation" "/var/data/duckstation/memcards"
|
||||
dir_prep "$rdhome/states/duckstation" "/var/data/duckstation/savestates"
|
||||
dir_prep "$rdhome/saves/duckstation" "$XDG_DATA_HOME/duckstation/memcards"
|
||||
dir_prep "$rdhome/states/duckstation" "$XDG_DATA_HOME/duckstation/savestates"
|
||||
|
||||
mv "$bios_folder/pico8" "$bios_folder/pico8_olddata" # Move legacy (and incorrect / non-functional ) PICO-8 location for future cleanup / less confusion
|
||||
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
|
||||
|
@ -109,21 +109,21 @@ post_update() {
|
|||
# - Fix symlink to hard-coded PICO-8 config folder (dir_prep doesn't like ~)
|
||||
# - Overwrite Citra and Yuzu configs, as controller mapping was broken due to emulator updates.
|
||||
|
||||
dir_prep "$rdhome/states/dolphin" "/var/data/dolphin-emu/StateSaves"
|
||||
dir_prep "$rdhome/states/primehack" "/var/data/primehack/StateSaves"
|
||||
dir_prep "$rdhome/states/dolphin" "$XDG_DATA_HOME/dolphin-emu/StateSaves"
|
||||
dir_prep "$rdhome/states/primehack" "$XDG_DATA_HOME/primehack/StateSaves"
|
||||
|
||||
rm -rf "$HOME/~/" # Remove old incorrect location from 0.6.2b
|
||||
rm -f "$HOME/.lexaloffle/pico-8" # Remove old symlink to prevent recursion
|
||||
dir_prep "$bios_folder/pico-8" "$HOME/.lexaloffle/pico-8" # Store binary and config files together. The .lexaloffle directory is a hard-coded location for the PICO-8 config file, cannot be changed
|
||||
dir_prep "$saves_folder/pico-8" "$bios_folder/pico-8/cdata" # PICO-8 saves folder structure was backwards, fixing for consistency.
|
||||
|
||||
cp -f "$config/citra/qt-config.ini" /var/config/citra-emu/qt-config.ini
|
||||
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
|
||||
cp -fr "$config/yuzu/"* /var/config/yuzu/
|
||||
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/yuzu/qt-config.ini
|
||||
cp -f "$config/citra/qt-config.ini" "$XDG_CONFIG_HOME/citra-emu/qt-config.ini"
|
||||
sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "$XDG_CONFIG_HOME/citra-emu/qt-config.ini"
|
||||
cp -fr "$config/yuzu/"* "$XDG_CONFIG_HOME/yuzu/"
|
||||
sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "$XDG_CONFIG_HOME/yuzu/qt-config.ini"
|
||||
|
||||
# Remove unneeded tools folder, as location has changed to RO space
|
||||
rm -rfv /var/config/retrodeck/tools/
|
||||
rm -rfv "$XDG_CONFIG_HOME/retrodeck/tools/"
|
||||
fi
|
||||
if [[ $(check_version_is_older_than "$version_being_updated" "0.6.4b") == "true" ]]; then
|
||||
# In version 0.6.4b, the following changes were made:
|
||||
|
@ -137,12 +137,12 @@ post_update() {
|
|||
# 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"
|
||||
set_setting_value "$yuzuconf" "gpu_accuracy" "0" "yuzu" "Renderer"
|
||||
fi
|
||||
if [[ $(check_version_is_older_than "$version_being_updated" "0.7.0b") == "true" ]]; then
|
||||
# In version 0.7.0b, the following changes were made that required config file updates/reset or other changes to the filesystem:
|
||||
# - Update retrodeck.cfg and set new paths to $rdhome by default
|
||||
# - Update PCSX2 and Duckstation configs to latest templates (to accomadate RetroAchievements feature) and move Duckstation config folder from /var/data to /var/config
|
||||
# - Update PCSX2 and Duckstation configs to latest templates (to accomadate RetroAchievements feature) and move Duckstation config folder from $XDG_DATA_HOME to $XDG_CONFIG_HOME
|
||||
# - New ~/retrodeck/mods and ~/retrodeck/texture_packs directories are added and symlinked to multiple different emulators (where supported)
|
||||
# - Expose ES-DE gamelists folder to user at ~/retrodeck/gamelists
|
||||
# - Copy new borders into RA config location
|
||||
|
@ -162,52 +162,52 @@ post_update() {
|
|||
# - Init PICO-8 as it has newly-shipped config files
|
||||
|
||||
update_rd_conf # Expand retrodeck.cfg to latest template
|
||||
set_setting_value $rd_conf "screenshots_folder" "$rdhome/screenshots"
|
||||
set_setting_value $rd_conf "mods_folder" "$rdhome/mods"
|
||||
set_setting_value $rd_conf "texture_packs_folder" "$rdhome/texture_packs"
|
||||
set_setting_value $rd_conf "borders_folder" "$rdhome/borders"
|
||||
set_setting_value "$rd_conf" "screenshots_folder" "$rdhome/screenshots"
|
||||
set_setting_value "$rd_conf" "mods_folder" "$rdhome/mods"
|
||||
set_setting_value "$rd_conf" "texture_packs_folder" "$rdhome/texture_packs"
|
||||
set_setting_value "$rd_conf" "borders_folder" "$rdhome/borders"
|
||||
conf_read
|
||||
|
||||
mv -f "$pcsx2conf" "$pcsx2conf.bak"
|
||||
generate_single_patch "$config/PCSX2/PCSX2.ini" "$pcsx2conf.bak" "/var/config/PCSX2/inis/PCSX2-cheevos-upgrade.patch" pcsx2
|
||||
deploy_single_patch "$config/PCSX2/PCSX2.ini" "/var/config/PCSX2/inis/PCSX2-cheevos-upgrade.patch" "$pcsx2conf"
|
||||
rm -f "/var/config/PCSX2/inis/PCSX2-cheevos-upgrade.patch"
|
||||
dir_prep "/var/config/duckstation" "/var/data/duckstation"
|
||||
generate_single_patch "$config/PCSX2/PCSX2.ini" "$pcsx2conf.bak" "$XDG_CONFIG_HOME/PCSX2/inis/PCSX2-cheevos-upgrade.patch" pcsx2
|
||||
deploy_single_patch "$config/PCSX2/PCSX2.ini" "$XDG_CONFIG_HOME/PCSX2/inis/PCSX2-cheevos-upgrade.patch" "$pcsx2conf"
|
||||
rm -f "$XDG_CONFIG_HOME/PCSX2/inis/PCSX2-cheevos-upgrade.patch"
|
||||
dir_prep "$XDG_CONFIG_HOME/duckstation" "$XDG_DATA_HOME/duckstation"
|
||||
mv -f "$duckstationconf" "$duckstationconf.bak"
|
||||
generate_single_patch "$config/duckstation/settings.ini" "$duckstationconf.bak" "/var/config/duckstation/duckstation-cheevos-upgrade.patch" pcsx2
|
||||
deploy_single_patch "$config/duckstation/settings.ini" "/var/config/duckstation/duckstation-cheevos-upgrade.patch" "$duckstationconf"
|
||||
rm -f "/var/config/duckstation/duckstation-cheevos-upgrade.patch"
|
||||
generate_single_patch "$config/duckstation/settings.ini" "$duckstationconf.bak" "$XDG_CONFIG_HOME/duckstation/duckstation-cheevos-upgrade.patch" pcsx2
|
||||
deploy_single_patch "$config/duckstation/settings.ini" "$XDG_CONFIG_HOME/duckstation/duckstation-cheevos-upgrade.patch" "$duckstationconf"
|
||||
rm -f "$XDG_CONFIG_HOME/duckstation/duckstation-cheevos-upgrade.patch"
|
||||
|
||||
create_dir "$mods_folder"
|
||||
create_dir "$texture_packs_folder"
|
||||
create_dir "$borders_folder"
|
||||
|
||||
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"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks"
|
||||
dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES"
|
||||
dir_prep "$texture_packs_folder/PCSX2" "/var/config/PCSX2/textures"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64plus/cache"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64plus/hires_texture"
|
||||
dir_prep "$texture_packs_folder/Duckstation" "/var/config/duckstation/textures"
|
||||
dir_prep "$mods_folder/Primehack" "$XDG_DATA_HOME/primehack/Load/GraphicMods"
|
||||
dir_prep "$texture_packs_folder/Primehack" "$XDG_DATA_HOME/primehack/Load/Textures"
|
||||
dir_prep "$mods_folder/Dolphin" "$XDG_DATA_HOME/dolphin-emu/Load/GraphicMods"
|
||||
dir_prep "$texture_packs_folder/Dolphin" "$XDG_DATA_HOME/dolphin-emu/Load/Textures"
|
||||
dir_prep "$mods_folder/Citra" "$XDG_DATA_HOME/citra-emu/load/mods"
|
||||
dir_prep "$texture_packs_folder/Citra" "$XDG_DATA_HOME/citra-emu/load/textures"
|
||||
dir_prep "$mods_folder/Yuzu" "$XDG_DATA_HOME/yuzu/load"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mesen" "$XDG_CONFIG_HOME/retroarch/system/HdPacks"
|
||||
dir_prep "$texture_packs_folder/PPSSPP" "$XDG_CONFIG_HOME/ppsspp/PSP/TEXTURES"
|
||||
dir_prep "$texture_packs_folder/PCSX2" "$XDG_CONFIG_HOME/PCSX2/textures"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "$XDG_CONFIG_HOME/retroarch/system/Mupen64plus/cache"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "$XDG_CONFIG_HOME/retroarch/system/Mupen64plus/hires_texture"
|
||||
dir_prep "$texture_packs_folder/Duckstation" "$XDG_CONFIG_HOME/duckstation/textures"
|
||||
|
||||
dir_prep "$rdhome/gamelists" "/var/config/emulationstation/ES-DE/gamelists"
|
||||
dir_prep "$rdhome/gamelists" "$XDG_CONFIG_HOME/emulationstation/ES-DE/gamelists"
|
||||
|
||||
dir_prep "$borders_folder" "/var/config/retroarch/overlays/borders"
|
||||
rsync -rlD --mkpath "/app/retrodeck/config/retroarch/borders/" "/var/config/retroarch/overlays/borders/"
|
||||
dir_prep "$borders_folder" "$XDG_CONFIG_HOME/retroarch/overlays/borders"
|
||||
rsync -rlD --mkpath "/app/retrodeck/config/retroarch/borders/" "$XDG_CONFIG_HOME/retroarch/overlays/borders/"
|
||||
|
||||
rsync -rlD --mkpath "$config/retrodeck/presets/remaps/" "/var/config/retroarch/config/remaps/"
|
||||
rsync -rlD --mkpath "$config/retrodeck/presets/remaps/" "$XDG_CONFIG_HOME/retroarch/config/remaps/"
|
||||
|
||||
if [[ ! -f "$bios_folder/capsimg.so" ]]; then
|
||||
cp -f "/app/retrodeck/extras/Amiga/capsimg.so" "$bios_folder/capsimg.so"
|
||||
fi
|
||||
|
||||
cp -f $config/rpcs3/vfs.yml /var/config/rpcs3/vfs.yml
|
||||
cp -f "$config/rpcs3/vfs.yml" "$XDG_CONFIG_HOME/rpcs3/vfs.yml"
|
||||
sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$rpcs3vfsconf"
|
||||
set_setting_value "$rpcs3vfsconf" "/games/" "$roms_folder/ps3/" "rpcs3"
|
||||
if [[ -d "$roms_folder/ps3/emudir" ]]; then # The old location exists, meaning the emulator was run at least once.
|
||||
|
@ -225,7 +225,7 @@ post_update() {
|
|||
create_dir "$bios_folder/rpcs3/dev_usb000"
|
||||
dir_prep "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" "$saves_folder/ps3/rpcs3"
|
||||
|
||||
set_setting_value $es_settings "ApplicationUpdaterFrequency" "never" "es_settings"
|
||||
set_setting_value "$es_settings" "ApplicationUpdaterFrequency" "never" "es_settings"
|
||||
|
||||
if [[ -f "$saves_folder/duckstation/shared_card_1.mcd" || -f "$saves_folder/duckstation/shared_card_2.mcd" ]]; then
|
||||
configurator_generic_dialog "RetroDECK 0.7.0b Upgrade" "As part of this update, the location of saves and states for Duckstation has been changed.\n\nYour files will be moved automatically, and can now be found at\n\n~.../saves/psx/duckstation/memcards/\nand\n~.../states/psx/duckstation/"
|
||||
|
@ -233,42 +233,42 @@ post_update() {
|
|||
create_dir "$saves_folder/psx/duckstation/memcards"
|
||||
mv "$saves_folder/duckstation/"* "$saves_folder/psx/duckstation/memcards/"
|
||||
rmdir "$saves_folder/duckstation" # File-safe folder cleanup
|
||||
unlink "/var/config/duckstation/memcards"
|
||||
unlink "$XDG_CONFIG_HOME/duckstation/memcards"
|
||||
set_setting_value "$duckstationconf" "Card1Path" "$saves_folder/psx/duckstation/memcards/shared_card_1.mcd" "duckstation" "MemoryCards"
|
||||
set_setting_value "$duckstationconf" "Card2Path" "$saves_folder/psx/duckstation/memcards/shared_card_2.mcd" "duckstation" "MemoryCards"
|
||||
set_setting_value "$duckstationconf" "Directory" "$saves_folder/psx/duckstation/memcards" "duckstation" "MemoryCards"
|
||||
set_setting_value "$duckstationconf" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList"
|
||||
create_dir "$states_folder/psx"
|
||||
mv -t "$states_folder/psx/" "$states_folder/duckstation"
|
||||
unlink "/var/config/duckstation/savestates"
|
||||
dir_prep "$states_folder/psx/duckstation" "/var/config/duckstation/savestates"
|
||||
unlink "$XDG_CONFIG_HOME/duckstation/savestates"
|
||||
dir_prep "$states_folder/psx/duckstation" "$XDG_CONFIG_HOME/duckstation/savestates"
|
||||
|
||||
rm -rf /var/config/retrodeck/tools
|
||||
rm -rf /var/config/emulationstation/ES-DE/gamelists/tools/
|
||||
rm -rf "$XDG_CONFIG_HOME/retrodeck/tools"
|
||||
rm -rf "$XDG_CONFIG_HOME/emulationstation/ES-DE/gamelists/tools/"
|
||||
|
||||
mv "$saves_folder/gc/dolphin/EUR" "$saves_folder/gc/dolphin/EU"
|
||||
mv "$saves_folder/gc/dolphin/USA" "$saves_folder/gc/dolphin/US"
|
||||
mv "$saves_folder/gc/dolphin/JAP" "$saves_folder/gc/dolphin/JP"
|
||||
dir_prep "$saves_folder/gc/dolphin/EU" "/var/data/dolphin-emu/GC/EUR"
|
||||
dir_prep "$saves_folder/gc/dolphin/US" "/var/data/dolphin-emu/GC/USA"
|
||||
dir_prep "$saves_folder/gc/dolphin/JP" "/var/data/dolphin-emu/GC/JAP"
|
||||
dir_prep "$saves_folder/gc/dolphin/EU" "$XDG_DATA_HOME/dolphin-emu/GC/EUR"
|
||||
dir_prep "$saves_folder/gc/dolphin/US" "$XDG_DATA_HOME/dolphin-emu/GC/USA"
|
||||
dir_prep "$saves_folder/gc/dolphin/JP" "$XDG_DATA_HOME/dolphin-emu/GC/JAP"
|
||||
mv "$saves_folder/gc/primehack/EUR" "$saves_folder/gc/primehack/EU"
|
||||
mv "$saves_folder/gc/primehack/USA" "$saves_folder/gc/primehack/US"
|
||||
mv "$saves_folder/gc/primehack/JAP" "$saves_folder/gc/primehack/JP"
|
||||
dir_prep "$saves_folder/gc/primehack/EU" "/var/data/primehack/GC/EUR"
|
||||
dir_prep "$saves_folder/gc/primehack/US" "/var/data/primehack/GC/USA"
|
||||
dir_prep "$saves_folder/gc/primehack/JP" "/var/data/primehack/GC/JAP"
|
||||
dir_prep "$saves_folder/gc/primehack/EU" "$XDG_DATA_HOME/primehack/GC/EUR"
|
||||
dir_prep "$saves_folder/gc/primehack/US" "$XDG_DATA_HOME/primehack/GC/USA"
|
||||
dir_prep "$saves_folder/gc/primehack/JP" "$XDG_DATA_HOME/primehack/GC/JAP"
|
||||
|
||||
dir_prep "$saves_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/SAVEDATA"
|
||||
dir_prep "$states_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/PPSSPP_STATE"
|
||||
dir_prep "$saves_folder/PSP/PPSSPP-SA" "$XDG_CONFIG_HOME/ppsspp/PSP/SAVEDATA"
|
||||
dir_prep "$states_folder/PSP/PPSSPP-SA" "$XDG_CONFIG_HOME/ppsspp/PSP/PPSSPP_STATE"
|
||||
|
||||
set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings"
|
||||
set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings"
|
||||
sed -i '$ a <string name="UserThemeDirectory" value="" />' "$es_settings" # Add new default line to existing file
|
||||
set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings"
|
||||
unlink "/var/config/emulationstation/ROMs"
|
||||
unlink "/var/config/emulationstation/ES-DE/downloaded_media"
|
||||
unlink "/var/config/emulationstation/ES-DE/themes"
|
||||
unlink "$XDG_CONFIG_HOME/emulationstation/ROMs"
|
||||
unlink "$XDG_CONFIG_HOME/emulationstation/ES-DE/downloaded_media"
|
||||
unlink "$XDG_CONFIG_HOME/emulationstation/ES-DE/themes"
|
||||
|
||||
set_setting_value "$raconf" "savestate_auto_load" "false" "retroarch"
|
||||
set_setting_value "$raconf" "savestate_auto_save" "false" "retroarch"
|
||||
|
@ -303,7 +303,7 @@ post_update() {
|
|||
|
||||
if [[ $(check_version_is_older_than "$version_being_updated" "0.7.3b") == "true" ]]; then
|
||||
# In version 0.7.3b, there was a bug that prevented the correct creations of the roms/system folders, so we force recreate them.
|
||||
emulationstation --home /var/config/emulationstation --create-system-dirs
|
||||
emulationstation --home "$XDG_CONFIG_HOME/emulationstation" --create-system-dirs
|
||||
fi
|
||||
|
||||
if [[ $(check_version_is_older_than "$version_being_updated" "0.8.0b") == "true" ]]; then
|
||||
|
@ -342,8 +342,8 @@ post_update() {
|
|||
set_setting_value "$raconf" "rewind_enable" "false" "retroarch"
|
||||
|
||||
# in 3.0 .emulationstation was moved into ES-DE
|
||||
log i "Renaming old \"/var/config/emulationstation\" folder as \"/var/config/ES-DE\""
|
||||
mv -f /var/config/emulationstation /var/config/ES-DE
|
||||
log i "Renaming old \"$XDG_CONFIG_HOME/emulationstation\" folder as \"$XDG_CONFIG_HOME/ES-DE\""
|
||||
mv -f "$XDG_CONFIG_HOME/emulationstation" "$XDG_CONFIG_HOME/ES-DE"
|
||||
|
||||
prepare_component "reset" "es-de"
|
||||
prepare_component "reset" "mame"
|
||||
|
@ -357,7 +357,7 @@ post_update() {
|
|||
|
||||
# The save folder of rpcs3 was inverted so we're moving the saves into the real one
|
||||
log i "RPCS3 saves needs to be migrated, executing."
|
||||
if [[ "$(ls -A $bios_folder/rpcs3/dev_hdd0/home/00000001/savedata)" ]]; then
|
||||
if [[ "$(ls -A "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata")" ]]; then
|
||||
log i "Existing RPCS3 savedata found, backing up..."
|
||||
create_dir "$backups_folder"
|
||||
zip -rq9 "$backups_folder/$(date +"%0m%0d")_rpcs3_save_data.zip" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata"
|
||||
|
@ -369,7 +369,7 @@ post_update() {
|
|||
mv "$bios_folder/switch/registered" "$bios_folder/switch/firmware"
|
||||
|
||||
log i "New systems were added in this version, regenerating system folders."
|
||||
#es-de --home "/var/config/" --create-system-dirs
|
||||
#es-de --home "$XDG_CONFIG_HOME/" --create-system-dirs
|
||||
es-de --create-system-dirs
|
||||
|
||||
fi # end of 0.8.0b
|
||||
|
@ -380,8 +380,8 @@ post_update() {
|
|||
log i "- Give the user the option to reset Ryujinx, which was not properly initialized in 0.8.0b"
|
||||
|
||||
log d "ES-DE files were moved inside the retrodeck folder, migrating to the new structure"
|
||||
dir_prep "$rdhome/ES-DE/collections" "/var/config/ES-DE/collections"
|
||||
dir_prep "$rdhome/ES-DE/gamelists" "/var/config/ES-DE/gamelists"
|
||||
dir_prep "$rdhome/ES-DE/collections" "$XDG_CONFIG_HOME/ES-DE/collections"
|
||||
dir_prep "$rdhome/ES-DE/gamelists" "$XDG_CONFIG_HOME/ES-DE/gamelists"
|
||||
log i "Moving ES-DE collections, downloaded_media, gamelist, and themes from \"$rdhome\" to \"$rdhome/ES-DE\""
|
||||
set_setting_value "$es_settings" "MediaDirectory" "$rdhome/ES-DE/downloaded_media" "es_settings"
|
||||
set_setting_value "$es_settings" "UserThemeDirectory" "$rdhome/ES-DE/themes" "es_settings"
|
||||
|
@ -389,21 +389,21 @@ post_update() {
|
|||
mv -f "$rdhome/downloaded_media" "$rdhome/ES-DE/downloaded_media" && log d "Move of \"$rdhome/downloaded_media\" in \"$rdhome/ES-DE\" folder completed"
|
||||
mv -f "$rdhome/gamelists/"* "$rdhome/ES-DE/gamelists" && log d "Move of \"$rdhome/gamelists/\" in \"$rdhome/ES-DE\" folder completed" && rm -rf "$rdhome/gamelists"
|
||||
|
||||
log i "MAME-SA, migrating samples to the new exposed folder: from \"/var/data/mame/assets/samples\" to \"$bios_folder/mame-sa/samples\""
|
||||
log i "MAME-SA, migrating samples to the new exposed folder: from \"$XDG_DATA_HOME/mame/assets/samples\" to \"$bios_folder/mame-sa/samples\""
|
||||
create_dir "$bios_folder/mame-sa/samples"
|
||||
mv -f "/var/data/mame/assets/samples/"* "$bios_folder/mame-sa/samples"
|
||||
mv -f "$XDG_DATA_HOME/mame/assets/samples/"* "$bios_folder/mame-sa/samples"
|
||||
set_setting_value "$mameconf" "samplepath" "$bios_folder/mame-sa/samples" "mame"
|
||||
|
||||
log i "Installing the missing ScummVM assets and renaming \"$mods_folder/RetroArch/ScummVM/themes\" into \"theme\""
|
||||
mv -f "$mods_folder/RetroArch/ScummVM/themes" "$mods_folder/RetroArch/ScummVM/theme"
|
||||
unzip -o "$config/retroarch/ScummVM.zip" 'scummvm/extra/*' -d /tmp
|
||||
unzip -o "$config/retroarch/ScummVM.zip" 'scummvm/theme/*' -d /tmp
|
||||
mv -f /tmp/scummvm/extra "$mods_folder/RetroArch/ScummVM"
|
||||
mv -f /tmp/scummvm/theme "$mods_folder/RetroArch/ScummVM"
|
||||
rm -rf /tmp/extra /tmp/theme
|
||||
mv -f "/tmp/scummvm/extra" "$mods_folder/RetroArch/ScummVM"
|
||||
mv -f "/tmp/scummvm/theme" "$mods_folder/RetroArch/ScummVM"
|
||||
rm -rf "/tmp/extra /tmp/theme"
|
||||
|
||||
log i "Placing cheats in \"/var/data/mame/cheat\""
|
||||
unzip -j -o "$config/mame/cheat0264.zip" 'cheat.7z' -d "/var/data/mame/cheat"
|
||||
log i "Placing cheats in \"$XDG_DATA_HOME/mame/cheat\""
|
||||
unzip -j -o "$config/mame/cheat0264.zip" 'cheat.7z' -d "$XDG_DATA_HOME/mame/cheat"
|
||||
|
||||
log d "Verifying with user if they want to reset Ryujinx"
|
||||
if [[ "$(configurator_generic_question_dialog "RetroDECK 0.8.1b Ryujinx Reset" "In RetroDECK 0.8.0b the Ryujinx emulator was not properly initialized for upgrading users.\nThis would cause Ryujinx to not work properly.\n\nWould you like to reset Ryujinx to default RetroDECK settings now?\n\nIf you have made your own changes to the Ryujinx config, you can decline this reset.")" == "true" ]]; then
|
||||
|
@ -413,15 +413,15 @@ post_update() {
|
|||
fi # end of 0.8.1b
|
||||
|
||||
if [[ $(check_version_is_older_than "$version_being_updated" "0.8.2b") == "true" ]]; then
|
||||
log i "Vita3K changed some paths, reflecting them: moving \"/var/data/Vita3K\" in \"/var/config/Vita3K\""
|
||||
move "/var/data/Vita3K" "/var/config/Vita3K"
|
||||
log i "Vita3K changed some paths, reflecting them: moving \"$XDG_DATA_HOME/Vita3K\" in \"$XDG_CONFIG_HOME/Vita3K\""
|
||||
move "$XDG_DATA_HOME/Vita3K" "$XDG_CONFIG_HOME/Vita3K"
|
||||
log i "Moving ES-DE downloaded_media, gamelist, and themes from \"$rdhome\" to \"$rdhome/ES-DE\" due to a RetroDECK Framework bug"
|
||||
move "$rdhome/themes" "$rdhome/ES-DE/themes" && log d "Move of \"$rdhome/themes\" in \"$rdhome/ES-DE\" folder completed"
|
||||
move "$rdhome/downloaded_media" "$rdhome/ES-DE/downloaded_media" && log d "Move of \"$rdhome/downloaded_media\" in \"$rdhome/ES-DE\" folder completed"
|
||||
move "$rdhome/gamelists" "$rdhome/ES-DE/gamelists" && log d "Move of \"$rdhome/gamelists/\" in \"$rdhome/ES-DE\" folder completed"
|
||||
move "$rdhome/collections" "$rdhome/ES-DE/collections" && log d "Move of \"$rdhome/collections/\" in \"$rdhome/ES-DE\" folder completed"
|
||||
log i "Since in this version we moved to a PR build of Ryujinx we need to symlink it."
|
||||
ln -sv $ryujinxconf "$(dirname $ryujinxconf)/PRConfig.json"
|
||||
ln -sv "$ryujinxconf" "$(dirname "$ryujinxconf")/PRConfig.json"
|
||||
fi #end of 0.8.2b
|
||||
|
||||
if [[ $(check_version_is_older_than "$version_being_updated" "0.8.3b") == "true" ]]; then
|
||||
|
@ -605,26 +605,26 @@ post_update() {
|
|||
|
||||
# RetroArch
|
||||
log i "Forcing RetroArch to use the new libretro info path"
|
||||
set_setting_value "$raconf" "libretro_info_path" "/var/config/retroarch/cores" "retroarch"
|
||||
set_setting_value "$raconf" "libretro_info_path" "$XDG_CONFIG_HOME/retroarch/cores" "retroarch"
|
||||
|
||||
log i "Moving Ryujinx data to the new locations"
|
||||
if [[ -d "/var/config/Ryujinx/bis" ]]; then
|
||||
mv -f "/var/config/Ryujinx/bis"/* "$saves_folder/switch/ryujinx/nand" && rm -rf "/var/config/Ryujinx/bis" && log i "Migrated Ryujinx nand data to the new location"
|
||||
if [[ -d "$XDG_CONFIG_HOME/Ryujinx/bis" ]]; then
|
||||
mv -f "$XDG_CONFIG_HOME/Ryujinx/bis"/* "$saves_folder/switch/ryujinx/nand" && rm -rf "$XDG_CONFIG_HOME/Ryujinx/bis" && log i "Migrated Ryujinx nand data to the new location"
|
||||
fi
|
||||
if [[ -d "/var/config/Ryujinx/sdcard" ]]; then
|
||||
mv -f "/var/config/Ryujinx/sdcard"/* "$saves_folder/switch/ryujinx/sdcard" && rm -rf "/var/config/Ryujinx/sdcard" && log i "Migrated Ryujinx sdcard data to the new location"
|
||||
if [[ -d "$XDG_CONFIG_HOME/Ryujinx/sdcard" ]]; then
|
||||
mv -f "$XDG_CONFIG_HOME/Ryujinx/sdcard"/* "$saves_folder/switch/ryujinx/sdcard" && rm -rf "$XDG_CONFIG_HOME/Ryujinx/sdcard" && log i "Migrated Ryujinx sdcard data to the new location"
|
||||
fi
|
||||
if [[ -d "/var/config/Ryujinx/bis/system/Contents/registered" ]]; then
|
||||
mv -f "/var/config/Ryujinx/bis/system/Contents/registered"/* "$bios_folder/switch/firmware" && rm -rf "/var/config/Ryujinx/bis/system/Contents/registered" && log i "Migration of Ryujinx firmware data to the new location"
|
||||
if [[ -d "$XDG_CONFIG_HOME/Ryujinx/bis/system/Contents/registered" ]]; then
|
||||
mv -f "$XDG_CONFIG_HOME/Ryujinx/bis/system/Contents/registered"/* "$bios_folder/switch/firmware" && rm -rf "$XDG_CONFIG_HOME/Ryujinx/bis/system/Contents/registered" && log i "Migration of Ryujinx firmware data to the new location"
|
||||
fi
|
||||
if [[ -d "/var/config/Ryujinx/system" ]]; then
|
||||
mv -f "/var/config/Ryujinx/system"/* "$bios_folder/switch/keys" && rm -rf "/var/config/Ryujinx/system" && log i "Migrated Ryujinx keys data to the new location"
|
||||
if [[ -d "$XDG_CONFIG_HOME/Ryujinx/system" ]]; then
|
||||
mv -f "$XDG_CONFIG_HOME/Ryujinx/system"/* "$bios_folder/switch/keys" && rm -rf "$XDG_CONFIG_HOME/Ryujinx/system" && log i "Migrated Ryujinx keys data to the new location"
|
||||
fi
|
||||
if [[ -d "/var/config/Ryujinx/mods" ]]; then
|
||||
mv -f "/var/config/Ryujinx/mods"/* "$mods_folder/ryujinx" && rm -rf "/var/config/Ryujinx/mods" && log i "Migrated Ryujinx mods data to the new location"
|
||||
if [[ -d "$XDG_CONFIG_HOME/Ryujinx/mods" ]]; then
|
||||
mv -f "$XDG_CONFIG_HOME/Ryujinx/mods"/* "$mods_folder/ryujinx" && rm -rf "$XDG_CONFIG_HOME/Ryujinx/mods" && log i "Migrated Ryujinx mods data to the new location"
|
||||
fi
|
||||
if [[ -d "/var/config/Ryujinx/screenshots" ]]; then
|
||||
mv -f "/var/config/Ryujinx/screenshots"/* "$screenshots_folder/ryujinx" && rm -rf "/var/config/Ryujinx/screenshots" && log i "Migrated Ryujinx screenshots to the new location"
|
||||
if [[ -d "$XDG_CONFIG_HOME/Ryujinx/screenshots" ]]; then
|
||||
mv -f "$XDG_CONFIG_HOME/Ryujinx/screenshots"/* "$screenshots_folder/ryujinx" && rm -rf "$XDG_CONFIG_HOME/Ryujinx/screenshots" && log i "Migrated Ryujinx screenshots to the new location"
|
||||
fi
|
||||
|
||||
fi # end of 0.9.0b
|
||||
|
@ -708,7 +708,7 @@ post_update() {
|
|||
# --- ALWAYS EXECUTED IN 0.9.1b ---
|
||||
|
||||
log i "Preparing the shaders folder for MAME..."
|
||||
shaders_folder=$rdhome/shaders && log i "Shaders folder set to \"$shaders_folder\""
|
||||
shaders_folder="$rdhome/shaders" && log i "Shaders folder set to \"$shaders_folder\""
|
||||
conf_write && log i "Done"
|
||||
create_dir "$shaders_folder/mame/bgfx"
|
||||
set_setting_value "$mameconf" "bgfx_path" "$shaders_folder/mame/bgfx/" "mame"
|
||||
|
@ -717,26 +717,26 @@ post_update() {
|
|||
log i "Preparing the cheats for RetroArch..."
|
||||
create_dir "$cheats_folder/retroarch"
|
||||
set_setting_value "$raconf" "cheat_database_path" "$cheats_folder/retroarch" "retroarch"
|
||||
tar --strip-components=1 -xzf /app/retrodeck/cheats/retroarch.tar.gz -C "$cheats_folder/retroarch" --overwrite && log i "Cheats for RetroArch installed"
|
||||
tar --strip-components=1 -xzf "/app/retrodeck/cheats/retroarch.tar.gz" -C "$cheats_folder/retroarch" --overwrite && log i "Cheats for RetroArch installed"
|
||||
|
||||
log i "Preparing the cheats for PPSSPP..."
|
||||
create_dir -d "$cheats_folder/PPSSPP"
|
||||
dir_prep "$cheats_folder/PPSSPP" "/var/config/ppsspp/PSP/Cheats"
|
||||
tar -xzf /app/retrodeck/cheats/ppsspp.tar.gz -C "$cheats_folder/PPSSPP" --overwrite && log i "Cheats for PPSSPP installed"
|
||||
dir_prep "$cheats_folder/PPSSPP" "$XDG_CONFIG_HOME/ppsspp/PSP/Cheats"
|
||||
tar -xzf "/app/retrodeck/cheats/ppsspp.tar.gz" -C "$cheats_folder/PPSSPP" --overwrite && log i "Cheats for PPSSPP installed"
|
||||
|
||||
log i "Preparing the cheats for PCSX2..."
|
||||
create_dir "$cheats_folder/pcsx2"
|
||||
set_setting_value "$pcsx2conf" "Cheats" "$cheats_folder/pcsx2" "Folders"
|
||||
tar --strip-components=1 -xzf /app/retrodeck/cheats/pcsx2.tar.gz -C "$cheats_folder/pcsx2" --overwrite && log i "Cheats for PCSX2 installed"
|
||||
tar --strip-components=1 -xzf "/app/retrodeck/cheats/pcsx2.tar.gz" -C "$cheats_folder/pcsx2" --overwrite && log i "Cheats for PCSX2 installed"
|
||||
|
||||
log i "Preparing the cheats for MAME..."
|
||||
create_dir "$cheats_folder/mame"
|
||||
set_setting_value "$mameconf" "cheatpath" "$cheats_folder/mame" "mame"
|
||||
unzip -j -o "$config/mame/cheat0264.zip" 'cheat.7z' -d "$cheats_folder/mame" && log i "Cheats for MAME installed"
|
||||
rm -rf /var/data/mame/cheat
|
||||
rm -rf "$XDG_DATA_HOME/mame/cheat"
|
||||
|
||||
log i "Preparing the RetroAchievements for Dolphin..."
|
||||
cp -vn "$config/dolphin/"* /var/config/dolphin-emu/
|
||||
cp -vn "$config/dolphin/"* "$XDG_CONFIG_HOME/dolphin-emu/"
|
||||
|
||||
log i "Fixing PrimeHack roms paths..."
|
||||
set_setting_value "$rd_conf" "ppsspp" "$(get_setting_value "$rd_defaults" "ppsspp" "retrodeck" "cheevos")" "retrodeck" "cheevos"
|
||||
|
@ -766,18 +766,17 @@ post_update() {
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
fi # end of 0.9.2b
|
||||
|
||||
# The following commands are run every time.
|
||||
|
||||
if [[ -d "/var/data/dolphin-emu/Load/DynamicInputTextures" ]]; then # Refresh installed textures if they have been enabled
|
||||
if [[ -d "$XDG_DATA_HOME/dolphin-emu/Load/DynamicInputTextures" ]]; then # Refresh installed textures if they have been enabled
|
||||
log i "Refreshing installed textures for Dolphin..."
|
||||
rsync -rlD --mkpath "/app/retrodeck/extras/DynamicInputTextures/" "/var/data/dolphin-emu/Load/DynamicInputTextures/" && log i "Done"
|
||||
rsync -rlD --mkpath "/app/retrodeck/extras/DynamicInputTextures/" "$XDG_DATA_HOME/dolphin-emu/Load/DynamicInputTextures/" && log i "Done"
|
||||
fi
|
||||
if [[ -d "/var/data/primehack/Load/DynamicInputTextures" ]]; then # Refresh installed textures if they have been enabled
|
||||
if [[ -d "$XDG_DATA_HOME/primehack/Load/DynamicInputTextures" ]]; then # Refresh installed textures if they have been enabled
|
||||
log i "Refreshing installed textures for Dolphin..."
|
||||
rsync -rlD --mkpath "/app/retrodeck/extras/DynamicInputTextures/" "/var/data/primehack/Load/DynamicInputTextures/" && log i "Done"
|
||||
rsync -rlD --mkpath "/app/retrodeck/extras/DynamicInputTextures/" "$XDG_DATA_HOME/primehack/Load/DynamicInputTextures/" && log i "Done"
|
||||
fi
|
||||
|
||||
if [[ ! -z $(find "$HOME/.steam/steam/controller_base/templates/" -maxdepth 1 -type f -iname "RetroDECK*.vdf") || ! -z $(find "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam/controller_base/templates/" -maxdepth 1 -type f -iname "RetroDECK*.vdf") ]]; then # If RetroDECK controller profile has been previously installed
|
||||
|
@ -796,11 +795,11 @@ post_update() {
|
|||
--text="RetroDECK is finishing up the upgrading process, please be patient.\n\n<span foreground='$purple' size='larger'><b>NOTICE - If the process is taking too long:</b></span>\n\nSome windows might be running in the background that could require your attention: pop-ups from emulators or the upgrade itself that needs user input to continue.\n\n"
|
||||
|
||||
conf_read
|
||||
version=$hard_version
|
||||
version="$hard_version"
|
||||
conf_write
|
||||
|
||||
if grep -qF "cooker" <<< $hard_version; then
|
||||
changelog_dialog "$(echo $version | cut -d'-' -f2)"
|
||||
if grep -qF "cooker" <<< "$hard_version"; then
|
||||
changelog_dialog "$(echo "$version" | cut -d'-' -f2)"
|
||||
else
|
||||
changelog_dialog "$version"
|
||||
fi
|
||||
|
|
|
@ -5,7 +5,7 @@ prepare_component() {
|
|||
# The actions currently include "reset" and "postmove"
|
||||
# The "reset" action will initialize the component
|
||||
# The "postmove" action will update the component settings after one or more RetroDECK folders were moved
|
||||
# An component can be called by name, by parent folder name in the /var/config root or use the option "all" to perform the action on all components equally
|
||||
# An component can be called by name, by parent folder name in the $XDG_CONFIG_HOME root or use the option "all" to perform the action on all components equally
|
||||
# USAGE: prepare_component "$action" "$component" "$call_source(optional)"
|
||||
|
||||
if [[ "$1" == "--list" ]]; then
|
||||
|
@ -76,8 +76,8 @@ prepare_component() {
|
|||
log d "Logs folder moved to $logs_folder and linked back to $rd_logs_folder"
|
||||
fi
|
||||
fi
|
||||
done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
|
||||
create_dir "/var/config/retrodeck/godot" # TODO: what is this for? Can we delete it or add it to the retrodeck.cfg so the folder will be created by the above script?
|
||||
done < <(grep -v '^\s*$' "$rd_conf" | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
|
||||
create_dir "$XDG_CONFIG_HOME/retrodeck/godot" # TODO: what is this for? Can we delete it or add it to the retrodeck.cfg so the folder will be created by the above script?
|
||||
|
||||
fi
|
||||
if [[ "$action" == "postmove" ]]; then # Update the paths of any folders that came with the retrodeck folder during a move
|
||||
|
@ -89,7 +89,7 @@ prepare_component() {
|
|||
declare -g "$current_setting_name=$rdhome/${current_setting_value#*retrodeck/}"
|
||||
fi
|
||||
fi
|
||||
done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
|
||||
done < <(grep -v '^\s*$' "$rd_conf" | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f')
|
||||
dir_prep "$logs_folder" "$rd_logs_folder"
|
||||
fi
|
||||
fi
|
||||
|
@ -100,16 +100,16 @@ prepare_component() {
|
|||
log i "Prepearing ES-DE"
|
||||
log i "--------------------------------"
|
||||
if [[ "$action" == "reset" ]]; then
|
||||
rm -rf /var/config/ES-DE
|
||||
create_dir /var/config/ES-DE/settings
|
||||
rm -rf "$XDG_CONFIG_HOME/ES-DE"
|
||||
create_dir "$XDG_CONFIG_HOME/ES-DE/settings"
|
||||
log d "Prepearing es_settings.xml"
|
||||
cp -f /app/retrodeck/es_settings.xml /var/config/ES-DE/settings/es_settings.xml
|
||||
cp -f "/app/retrodeck/es_settings.xml" "$XDG_CONFIG_HOME/ES-DE/settings/es_settings.xml"
|
||||
set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings"
|
||||
set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings"
|
||||
set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings"
|
||||
dir_prep "$rdhome/ES-DE/gamelists" "/var/config/ES-DE/gamelists"
|
||||
dir_prep "$rdhome/ES-DE/collections" "/var/config/ES-DE/collections"
|
||||
dir_prep "$rdhome/ES-DE/custom_systems" "/var/config/ES-DE/custom_systems"
|
||||
dir_prep "$rdhome/ES-DE/gamelists" "$XDG_CONFIG_HOME/ES-DE/gamelists"
|
||||
dir_prep "$rdhome/ES-DE/collections" "$XDG_CONFIG_HOME/ES-DE/collections"
|
||||
dir_prep "$rdhome/ES-DE/custom_systems" "$XDG_CONFIG_HOME/ES-DE/custom_systems"
|
||||
log d "Generating roms system folders"
|
||||
es-de --create-system-dirs
|
||||
update_splashscreens
|
||||
|
@ -118,7 +118,7 @@ prepare_component() {
|
|||
set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings"
|
||||
set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings"
|
||||
set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings"
|
||||
dir_prep "$rdhome/gamelists" "/var/config/ES-DE/gamelists"
|
||||
dir_prep "$rdhome/gamelists" "$XDG_CONFIG_HOME/ES-DE/gamelists"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -128,7 +128,7 @@ prepare_component() {
|
|||
log i "Prepearing Steam ROM Manager"
|
||||
log i "-----------------------------"
|
||||
|
||||
local srm_userdata="/var/config/steam-rom-manager/userData"
|
||||
local srm_userdata="$XDG_CONFIG_HOME/steam-rom-manager/userData"
|
||||
create_dir -d "$srm_userdata"
|
||||
cp -fv "$config/steam-rom-manager/"*.json "$srm_userdata"
|
||||
cp -fvr "$config/steam-rom-manager/manifests" "$srm_userdata"
|
||||
|
@ -148,28 +148,28 @@ prepare_component() {
|
|||
if [[ "$action" == "reset" ]]; then # Run reset-only commands
|
||||
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
|
||||
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/retroarch"
|
||||
cp -fv $config/retroarch/retroarch.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/"
|
||||
cp -fv $config/retroarch/retroarch-core-options.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/"
|
||||
cp -fv "$config/retroarch/retroarch.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/"
|
||||
cp -fv "$config/retroarch/retroarch-core-options.cfg" "$multi_user_data_folder/$SteamAppUser/config/retroarch/"
|
||||
else # Single-user actions
|
||||
create_dir -d /var/config/retroarch
|
||||
dir_prep "$bios_folder" "/var/config/retroarch/system"
|
||||
dir_prep "$rdhome/logs/retroarch" "/var/config/retroarch/logs"
|
||||
create_dir -d "/var/config/retroarch/shaders/"
|
||||
if [[ -d "$cheats_folder/retroarch" && "$(ls -A $cheats_folder/retroarch)" ]]; then
|
||||
create_dir -d "$XDG_CONFIG_HOME/retroarch"
|
||||
dir_prep "$bios_folder" "$XDG_CONFIG_HOME/retroarch/system"
|
||||
dir_prep "$rdhome/logs/retroarch" "$XDG_CONFIG_HOME/retroarch/logs"
|
||||
create_dir -d "$XDG_CONFIG_HOME/retroarch/shaders/"
|
||||
if [[ -d "$cheats_folder/retroarch" && "$(ls -A "$cheats_folder/retroarch")" ]]; then
|
||||
backup_file="$backups_folder/cheats/retroarch-$(date +%y%m%d).tar.gz"
|
||||
create_dir "$(dirname "$backup_file")"
|
||||
tar -czf "$backup_file" -C "$cheats_folder" retroarch
|
||||
log i "RetroArch cheats backed up to $backup_file"
|
||||
fi
|
||||
create_dir -d "$cheats_folder/retroarch"
|
||||
tar --strip-components=1 -xzf /app/retrodeck/cheats/retroarch.tar.gz -C "$cheats_folder/retroarch" --overwrite
|
||||
cp -rf /app/share/libretro/shaders /var/config/retroarch/
|
||||
dir_prep "$shaders_folder/retroarch" "/var/config/retroarch/shaders"
|
||||
cp -fv $config/retroarch/retroarch.cfg /var/config/retroarch/
|
||||
cp -fv $config/retroarch/retroarch-core-options.cfg /var/config/retroarch/
|
||||
rsync -rlD --mkpath "$config/retroarch/core-overrides/" "/var/config/retroarch/config/"
|
||||
rsync -rlD --mkpath "$config/retrodeck/presets/remaps/" "/var/config/retroarch/config/remaps/"
|
||||
dir_prep "$borders_folder" "/var/config/retroarch/overlays/borders"
|
||||
tar --strip-components=1 -xzf "/app/retrodeck/cheats/retroarch.tar.gz" -C "$cheats_folder/retroarch" --overwrite
|
||||
cp -rf "/app/share/libretro/shaders" "$XDG_CONFIG_HOME/retroarch/"
|
||||
dir_prep "$shaders_folder/retroarch" "$XDG_CONFIG_HOME/retroarch/shaders"
|
||||
cp -fv "$config/retroarch/retroarch.cfg" "$XDG_CONFIG_HOME/retroarch/"
|
||||
cp -fv "$config/retroarch/retroarch-core-options.cfg" "$XDG_CONFIG_HOME/retroarch/"
|
||||
rsync -rlD --mkpath "$config/retroarch/core-overrides/" "$XDG_CONFIG_HOME/retroarch/config/"
|
||||
rsync -rlD --mkpath "$config/retrodeck/presets/remaps/" "$XDG_CONFIG_HOME/retroarch/config/remaps/"
|
||||
dir_prep "$borders_folder" "$XDG_CONFIG_HOME/retroarch/overlays/borders"
|
||||
set_setting_value "$raconf" "savefile_directory" "$saves_folder" "retroarch"
|
||||
set_setting_value "$raconf" "savestate_directory" "$states_folder" "retroarch"
|
||||
set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch"
|
||||
|
@ -244,9 +244,9 @@ prepare_component() {
|
|||
set_setting_value "$ra_scummvm_conf" "savepath" "$saves_folder/scummvm" "libretro_scummvm" "scummvm"
|
||||
set_setting_value "$ra_scummvm_conf" "browser_lastpath" "$roms_folder/scummvm" "libretro_scummvm" "scummvm"
|
||||
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64plus/cache"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64plus/hires_texture"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mesen" "$XDG_CONFIG_HOME/retroarch/system/HdPacks"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "$XDG_CONFIG_HOME/retroarch/system/Mupen64plus/cache"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "$XDG_CONFIG_HOME/retroarch/system/Mupen64plus/hires_texture"
|
||||
|
||||
# Reset default preset settings
|
||||
set_setting_value "$rd_conf" "retroarch" "$(get_setting_value "$rd_defaults" "retroarch" "retrodeck" "cheevos")" "retrodeck" "cheevos"
|
||||
|
@ -272,12 +272,12 @@ prepare_component() {
|
|||
set_setting_value "$rd_conf" "retroarch" "$(get_setting_value "$rd_defaults" "retroarch" "retrodeck" "savestate_auto_save")" "retrodeck" "savestate_auto_save"
|
||||
fi
|
||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||
dir_prep "$bios_folder" "/var/config/retroarch/system"
|
||||
dir_prep "$logs_folder/retroarch" "/var/config/retroarch/logs"
|
||||
dir_prep "$shaders_folder/retroarch" "/var/config/retroarch/shaders"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64plus/cache"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64plus/hires_texture"
|
||||
dir_prep "$bios_folder" "$XDG_CONFIG_HOME/retroarch/system"
|
||||
dir_prep "$logs_folder/retroarch" "$XDG_CONFIG_HOME/retroarch/logs"
|
||||
dir_prep "$shaders_folder/retroarch" "$XDG_CONFIG_HOME/retroarch/shaders"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mesen" "$XDG_CONFIG_HOME/retroarch/system/HdPacks"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "$XDG_CONFIG_HOME/retroarch/system/Mupen64plus/cache"
|
||||
dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "$XDG_CONFIG_HOME/retroarch/system/Mupen64plus/hires_texture"
|
||||
set_setting_value "$raconf" "savefile_directory" "$saves_folder" "retroarch"
|
||||
set_setting_value "$raconf" "savestate_directory" "$states_folder" "retroarch"
|
||||
set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch"
|
||||
|
@ -294,15 +294,15 @@ prepare_component() {
|
|||
log i "------------------------"
|
||||
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
|
||||
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/citra-emu"
|
||||
cp -fv $config/citra/qt-config.ini "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini"
|
||||
cp -fv "$config/citra/qt-config.ini" "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "nand_directory" "$saves_folder/n3ds/citra/nand/" "citra" "Data%20Storage"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "sdmc_directory" "$saves_folder/n3ds/citra/sdmc/" "citra" "Data%20Storage"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "Paths\gamedirs\3\path" "$roms_folder/n3ds" "citra" "UI"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/citra-emu/qt-config.ini" "Paths\screenshotPath" "$screenshots_folder" "citra" "UI"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/citra-emu" "/var/config/citra-emu"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/citra-emu" "$XDG_CONFIG_HOME/citra-emu"
|
||||
else # Single-user actions
|
||||
create_dir -d /var/config/citra-emu/
|
||||
cp -f $config/citra/qt-config.ini /var/config/citra-emu/qt-config.ini
|
||||
create_dir -d "$XDG_CONFIG_HOME/citra-emu/"
|
||||
cp -f "$config/citra/qt-config.ini" "$XDG_CONFIG_HOME/citra-emu/qt-config.ini"
|
||||
set_setting_value "$citraconf" "nand_directory" "$saves_folder/n3ds/citra/nand/" "citra" "Data%20Storage"
|
||||
set_setting_value "$citraconf" "sdmc_directory" "$saves_folder/n3ds/citra/sdmc/" "citra" "Data%20Storage"
|
||||
set_setting_value "$citraconf" "Paths\gamedirs\3\path" "$roms_folder/n3ds" "citra" "UI"
|
||||
|
@ -311,20 +311,20 @@ prepare_component() {
|
|||
# Shared actions
|
||||
create_dir "$saves_folder/n3ds/citra/nand/"
|
||||
create_dir "$saves_folder/n3ds/citra/sdmc/"
|
||||
dir_prep "$bios_folder/citra/sysdata" "/var/data/citra-emu/sysdata"
|
||||
dir_prep "$logs_folder/citra" "/var/data/citra-emu/log"
|
||||
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 "$bios_folder/citra/sysdata" "$XDG_DATA_HOME/citra-emu/sysdata"
|
||||
dir_prep "$logs_folder/citra" "$XDG_DATA_HOME/citra-emu/log"
|
||||
dir_prep "$mods_folder/Citra" "$XDG_DATA_HOME/citra-emu/load/mods"
|
||||
dir_prep "$texture_packs_folder/Citra" "$XDG_DATA_HOME/citra-emu/load/textures"
|
||||
|
||||
# Reset default preset settings
|
||||
set_setting_value "$rd_conf" "citra" "$(get_setting_value "$rd_defaults" "citra" "retrodeck" "abxy_button_swap")" "retrodeck" "abxy_button_swap"
|
||||
set_setting_value "$rd_conf" "citra" "$(get_setting_value "$rd_defaults" "citra" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
|
||||
fi
|
||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||
dir_prep "$bios_folder/citra/sysdata" "/var/data/citra-emu/sysdata"
|
||||
dir_prep "$rdhome/logs/citra" "/var/data/citra-emu/log"
|
||||
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 "$bios_folder/citra/sysdata" "$XDG_DATA_HOME/citra-emu/sysdata"
|
||||
dir_prep "$rdhome/logs/citra" "$XDG_DATA_HOME/citra-emu/log"
|
||||
dir_prep "$mods_folder/Citra" "$XDG_DATA_HOME/citra-emu/load/mods"
|
||||
dir_prep "$texture_packs_folder/Citra" "$XDG_DATA_HOME/citra-emu/load/textures"
|
||||
set_setting_value "$citraconf" "nand_directory" "$saves_folder/n3ds/citra/nand/" "citra" "Data%20Storage"
|
||||
set_setting_value "$citraconf" "sdmc_directory" "$saves_folder/n3ds/citra/sdmc/" "citra" "Data%20Storage"
|
||||
set_setting_value "$citraconf" "Paths\gamedirs\3\path" "$roms_folder/n3ds" "citra" "UI"
|
||||
|
@ -344,10 +344,10 @@ prepare_component() {
|
|||
cp -fr "$config/cemu/"* "$multi_user_data_folder/$SteamAppUser/config/Cemu/"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/Cemu/settings.ini" "mlc_path" "$bios_folder/cemu" "cemu"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/Cemu/settings.ini" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Cemu" "/var/config/Cemu"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Cemu" "$XDG_CONFIG_HOME/Cemu"
|
||||
else
|
||||
create_dir -d /var/config/Cemu/
|
||||
cp -fr "$config/cemu/"* /var/config/Cemu/
|
||||
create_dir -d "$XDG_CONFIG_HOME/Cemu/"
|
||||
cp -fr "$config/cemu/"* "$XDG_CONFIG_HOME/Cemu/"
|
||||
set_setting_value "$cemuconf" "mlc_path" "$bios_folder/cemu" "cemu"
|
||||
set_setting_value "$cemuconf" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
|
||||
if [[ -e "$bios_folder/cemu/keys.txt" ]]; then
|
||||
|
@ -378,10 +378,10 @@ prepare_component() {
|
|||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "ISOPath1" "$roms_folder/gc" "dolphin" "General"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu/Dolphin.ini" "WiiSDCardPath" "$saves_folder/wii/dolphin/sd.raw" "dolphin" "General"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu" "/var/config/dolphin-emu"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/dolphin-emu" "$XDG_CONFIG_HOME/dolphin-emu"
|
||||
else # Single-user actions
|
||||
create_dir -d /var/config/dolphin-emu/
|
||||
cp -fvr "$config/dolphin/"* /var/config/dolphin-emu/
|
||||
create_dir -d "$XDG_CONFIG_HOME/dolphin-emu/"
|
||||
cp -fvr "$config/dolphin/"* "$XDG_CONFIG_HOME/dolphin-emu/"
|
||||
set_setting_value "$dolphinconf" "BIOS" "$bios_folder" "dolphin" "GBA"
|
||||
set_setting_value "$dolphinconf" "SavesPath" "$saves_folder/gba" "dolphin" "GBA"
|
||||
set_setting_value "$dolphinconf" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
|
||||
|
@ -389,27 +389,27 @@ prepare_component() {
|
|||
set_setting_value "$dolphinconf" "WiiSDCardPath" "$saves_folder/wii/dolphin/sd.raw" "dolphin" "General"
|
||||
fi
|
||||
# Shared actions
|
||||
dir_prep "$saves_folder/gc/dolphin/EU" "/var/data/dolphin-emu/GC/EUR" # TODO: Multi-user one-off
|
||||
dir_prep "$saves_folder/gc/dolphin/US" "/var/data/dolphin-emu/GC/USA" # TODO: Multi-user one-off
|
||||
dir_prep "$saves_folder/gc/dolphin/JP" "/var/data/dolphin-emu/GC/JAP" # TODO: Multi-user one-off
|
||||
dir_prep "$screenshots_folder" "/var/data/dolphin-emu/ScreenShots"
|
||||
dir_prep "$states_folder/dolphin" "/var/data/dolphin-emu/StateSaves"
|
||||
dir_prep "$saves_folder/wii/dolphin" "/var/data/dolphin-emu/Wii"
|
||||
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 "$saves_folder/gc/dolphin/EU" "$XDG_DATA_HOME/dolphin-emu/GC/EUR" # TODO: Multi-user one-off
|
||||
dir_prep "$saves_folder/gc/dolphin/US" "$XDG_DATA_HOME/dolphin-emu/GC/USA" # TODO: Multi-user one-off
|
||||
dir_prep "$saves_folder/gc/dolphin/JP" "$XDG_DATA_HOME/dolphin-emu/GC/JAP" # TODO: Multi-user one-off
|
||||
dir_prep "$screenshots_folder" "$XDG_DATA_HOME/dolphin-emu/ScreenShots"
|
||||
dir_prep "$states_folder/dolphin" "$XDG_DATA_HOME/dolphin-emu/StateSaves"
|
||||
dir_prep "$saves_folder/wii/dolphin" "$XDG_DATA_HOME/dolphin-emu/Wii"
|
||||
dir_prep "$mods_folder/Dolphin" "$XDG_DATA_HOME/dolphin-emu/Load/GraphicMods"
|
||||
dir_prep "$texture_packs_folder/Dolphin" "$XDG_DATA_HOME/dolphin-emu/Load/Textures"
|
||||
|
||||
# Reset default preset settings
|
||||
set_setting_value "$rd_conf" "dolphin" "$(get_setting_value "$rd_defaults" "dolphin" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
|
||||
fi
|
||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||
dir_prep "$saves_folder/gc/dolphin/EU" "/var/data/dolphin-emu/GC/EUR"
|
||||
dir_prep "$saves_folder/gc/dolphin/US" "/var/data/dolphin-emu/GC/USA"
|
||||
dir_prep "$saves_folder/gc/dolphin/JP" "/var/data/dolphin-emu/GC/JAP"
|
||||
dir_prep "$screenshots_folder" "/var/data/dolphin-emu/ScreenShots"
|
||||
dir_prep "$states_folder/dolphin" "/var/data/dolphin-emu/StateSaves"
|
||||
dir_prep "$saves_folder/wii/dolphin" "/var/data/dolphin-emu/Wii"
|
||||
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 "$saves_folder/gc/dolphin/EU" "$XDG_DATA_HOME/dolphin-emu/GC/EUR"
|
||||
dir_prep "$saves_folder/gc/dolphin/US" "$XDG_DATA_HOME/dolphin-emu/GC/USA"
|
||||
dir_prep "$saves_folder/gc/dolphin/JP" "$XDG_DATA_HOME/dolphin-emu/GC/JAP"
|
||||
dir_prep "$screenshots_folder" "$XDG_DATA_HOME/dolphin-emu/ScreenShots"
|
||||
dir_prep "$states_folder/dolphin" "$XDG_DATA_HOME/dolphin-emu/StateSaves"
|
||||
dir_prep "$saves_folder/wii/dolphin" "$XDG_DATA_HOME/dolphin-emu/Wii"
|
||||
dir_prep "$mods_folder/Dolphin" "$XDG_DATA_HOME/dolphin-emu/Load/GraphicMods"
|
||||
dir_prep "$texture_packs_folder/Dolphin" "$XDG_DATA_HOME/dolphin-emu/Load/Textures"
|
||||
set_setting_value "$dolphinconf" "BIOS" "$bios_folder" "dolphin" "GBA"
|
||||
set_setting_value "$dolphinconf" "SavesPath" "$saves_folder/gba" "dolphin" "GBA"
|
||||
set_setting_value "$dolphinconf" "ISOPath0" "$roms_folder/wii" "dolphin" "General"
|
||||
|
@ -432,11 +432,11 @@ prepare_component() {
|
|||
set_setting_value "$multi_user_data_folder/$SteamAppUser/data/duckstation/settings.ini" "Card2Path" "$saves_folder/psx/duckstation/memcards/shared_card_2.mcd" "duckstation" "MemoryCards"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/data/duckstation/settings.ini" "Directory" "$saves_folder/psx/duckstation/memcards" "duckstation" "MemoryCards"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/data/duckstation/settings.ini" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/duckstation" "/var/config/duckstation"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/duckstation" "$XDG_CONFIG_HOME/duckstation"
|
||||
else # Single-user actions
|
||||
create_dir -d "/var/config/duckstation/"
|
||||
create_dir -d "$XDG_CONFIG_HOME/duckstation/"
|
||||
create_dir "$saves_folder/psx/duckstation/memcards"
|
||||
cp -fv "$config/duckstation/"* /var/config/duckstation
|
||||
cp -fv "$config/duckstation/"* "$XDG_CONFIG_HOME/duckstation"
|
||||
set_setting_value "$duckstationconf" "SearchDirectory" "$bios_folder" "duckstation" "BIOS"
|
||||
set_setting_value "$duckstationconf" "Card1Path" "$saves_folder/psx/duckstation/memcards/shared_card_1.mcd" "duckstation" "MemoryCards"
|
||||
set_setting_value "$duckstationconf" "Card2Path" "$saves_folder/psx/duckstation/memcards/shared_card_2.mcd" "duckstation" "MemoryCards"
|
||||
|
@ -444,8 +444,8 @@ prepare_component() {
|
|||
set_setting_value "$duckstationconf" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList"
|
||||
fi
|
||||
# Shared actions
|
||||
dir_prep "$states_folder/psx/duckstation" "/var/config/duckstation/savestates" # This is hard-coded in Duckstation, always needed
|
||||
dir_prep "$texture_packs_folder/Duckstation" "/var/config/duckstation/textures"
|
||||
dir_prep "$states_folder/psx/duckstation" "$XDG_CONFIG_HOME/duckstation/savestates" # This is hard-coded in Duckstation, always needed
|
||||
dir_prep "$texture_packs_folder/Duckstation" "$XDG_CONFIG_HOME/duckstation/textures"
|
||||
|
||||
# Reset default preset settings
|
||||
set_setting_value "$rd_conf" "duckstation" "$(get_setting_value "$rd_defaults" "duckstation" "retrodeck" "cheevos")" "retrodeck" "cheevos"
|
||||
|
@ -459,8 +459,8 @@ prepare_component() {
|
|||
set_setting_value "$duckstationconf" "Card2Path" "$saves_folder/psx/duckstation/memcards/shared_card_2.mcd" "duckstation" "MemoryCards"
|
||||
set_setting_value "$duckstationconf" "Directory" "$saves_folder/psx/duckstation/memcards" "duckstation" "MemoryCards"
|
||||
set_setting_value "$duckstationconf" "RecursivePaths" "$roms_folder/psx" "duckstation" "GameList"
|
||||
dir_prep "$states_folder/psx/duckstation" "/var/config/duckstation/savestates" # This is hard-coded in Duckstation, always needed
|
||||
dir_prep "$texture_packs_folder/Duckstation" "/var/config/duckstation/textures"
|
||||
dir_prep "$states_folder/psx/duckstation" "$XDG_CONFIG_HOME/duckstation/savestates" # This is hard-coded in Duckstation, always needed
|
||||
dir_prep "$texture_packs_folder/Duckstation" "$XDG_CONFIG_HOME/duckstation/textures"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -472,16 +472,16 @@ prepare_component() {
|
|||
log i "----------------------"
|
||||
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
|
||||
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/melonDS/"
|
||||
cp -fvr $config/melonds/melonDS.ini "$multi_user_data_folder/$SteamAppUser/config/melonDS/"
|
||||
cp -fvr "$config/melonds/melonDS.ini" "$multi_user_data_folder/$SteamAppUser/config/melonDS/"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/melonDS/melonDS.ini" "BIOS9Path" "$bios_folder/bios9.bin" "melonds"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/melonDS/melonDS.ini" "BIOS7Path" "$bios_folder/bios7.bin" "melonds"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/melonDS/melonDS.ini" "FirmwarePath" "$bios_folder/firmware.bin" "melonds"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/melonDS/melonDS.ini" "SaveFilePath" "$saves_folder/nds/melonds" "melonds"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/melonDS/melonDS.ini" "SavestatePath" "$states_folder/nds/melonds" "melonds"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/melonDS" "/var/config/melonDS"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/melonDS" "$XDG_CONFIG_HOME/melonDS"
|
||||
else # Single-user actions
|
||||
create_dir -d /var/config/melonDS/
|
||||
cp -fvr $config/melonds/melonDS.ini /var/config/melonDS/
|
||||
create_dir -d "$XDG_CONFIG_HOME/melonDS/"
|
||||
cp -fvr "$config/melonds/melonDS.ini" "$XDG_CONFIG_HOME/melonDS/"
|
||||
set_setting_value "$melondsconf" "BIOS9Path" "$bios_folder/bios9.bin" "melonds"
|
||||
set_setting_value "$melondsconf" "BIOS7Path" "$bios_folder/bios7.bin" "melonds"
|
||||
set_setting_value "$melondsconf" "FirmwarePath" "$bios_folder/firmware.bin" "melonds"
|
||||
|
@ -491,10 +491,10 @@ prepare_component() {
|
|||
# Shared actions
|
||||
create_dir "$saves_folder/nds/melonds"
|
||||
create_dir "$states_folder/nds/melonds"
|
||||
dir_prep "$bios_folder" "/var/config/melonDS/bios"
|
||||
dir_prep "$bios_folder" "$XDG_CONFIG_HOME/melonDS/bios"
|
||||
fi
|
||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||
dir_prep "$bios_folder" "/var/config/melonDS/bios"
|
||||
dir_prep "$bios_folder" "$XDG_CONFIG_HOME/melonDS/bios"
|
||||
set_setting_value "$melondsconf" "BIOS9Path" "$bios_folder/bios9.bin" "melonds"
|
||||
set_setting_value "$melondsconf" "BIOS7Path" "$bios_folder/bios7.bin" "melonds"
|
||||
set_setting_value "$melondsconf" "FirmwarePath" "$bios_folder/firmware.bin" "melonds"
|
||||
|
@ -517,29 +517,29 @@ prepare_component() {
|
|||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/PCSX2/inis/PCSX2.ini" "SaveStates" "$states_folder/ps2/pcsx2" "pcsx2" "Folders"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/PCSX2/inis/PCSX2.ini" "MemoryCards" "$saves_folder/ps2/pcsx2/memcards" "pcsx2" "Folders"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/PCSX2/inis/PCSX2.ini" "RecursivePaths" "$roms_folder/ps2" "pcsx2" "GameList"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/PCSX2" "/var/config/PCSX2"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/PCSX2" "$XDG_CONFIG_HOME/PCSX2"
|
||||
else # Single-user actions
|
||||
create_dir -d "/var/config/PCSX2/inis"
|
||||
cp -fvr "$config/PCSX2/"* /var/config/PCSX2/inis/
|
||||
create_dir -d "$XDG_CONFIG_HOME/PCSX2/inis"
|
||||
cp -fvr "$config/PCSX2/"* "$XDG_CONFIG_HOME/PCSX2/inis/"
|
||||
set_setting_value "$pcsx2conf" "Bios" "$bios_folder" "pcsx2" "Folders"
|
||||
set_setting_value "$pcsx2conf" "Snapshots" "$screenshots_folder" "pcsx2" "Folders"
|
||||
set_setting_value "$pcsx2conf" "SaveStates" "$states_folder/ps2/pcsx2" "pcsx2" "Folders"
|
||||
set_setting_value "$pcsx2conf" "MemoryCards" "$saves_folder/ps2/pcsx2/memcards" "pcsx2" "Folders"
|
||||
set_setting_value "$pcsx2conf" "RecursivePaths" "$roms_folder/ps2" "pcsx2" "GameList"
|
||||
set_setting_value "$pcsx2conf" "Cheats" "$cheats_folder/pcsx2" "Folders"
|
||||
if [[ -d "$cheats_folder/pcsx2" && "$(ls -A $cheats_folder/pcsx2)" ]]; then
|
||||
if [[ -d "$cheats_folder/pcsx2" && "$(ls -A "$cheats_folder/pcsx2")" ]]; then
|
||||
backup_file="$backups_folder/cheats/pcsx2-$(date +%y%m%d).tar.gz"
|
||||
create_dir "$(dirname $backup_file)"
|
||||
create_dir "$(dirname "$backup_file")"
|
||||
tar -czf "$backup_file" -C "$cheats_folder" pcsx2
|
||||
log i "PCSX2 cheats backed up to $backup_file"
|
||||
fi
|
||||
create_dir -d "$cheats_folder/pcsx2"
|
||||
tar --strip-components=1 -xzf /app/retrodeck/cheats/pcsx2.tar.gz -C "$cheats_folder/pcsx2" --overwrite
|
||||
tar --strip-components=1 -xzf "/app/retrodeck/cheats/pcsx2.tar.gz" -C "$cheats_folder/pcsx2" --overwrite
|
||||
fi
|
||||
# Shared actions
|
||||
create_dir "$saves_folder/ps2/pcsx2/memcards"
|
||||
create_dir "$states_folder/ps2/pcsx2"
|
||||
dir_prep "$texture_packs_folder/PCSX2" "/var/config/PCSX2/textures"
|
||||
dir_prep "$texture_packs_folder/PCSX2" "$XDG_CONFIG_HOME/PCSX2/textures"
|
||||
|
||||
# Reset default preset settings
|
||||
set_setting_value "$rd_conf" "pcsx2" "$(get_setting_value "$rd_defaults" "pcsx2" "retrodeck" "cheevos")" "retrodeck" "cheevos"
|
||||
|
@ -554,7 +554,7 @@ prepare_component() {
|
|||
set_setting_value "$pcsx2conf" "MemoryCards" "$saves_folder/ps2/pcsx2/memcards" "pcsx2" "Folders"
|
||||
set_setting_value "$pcsx2conf" "RecursivePaths" "$roms_folder/ps2" "pcsx2" "GameList"
|
||||
set_setting_value "$pcsx2conf" "Cheats" "$cheats_folder/pcsx2" "Folders"
|
||||
dir_prep "$texture_packs_folder/PCSX2" "/var/config/PCSX2/textures"
|
||||
dir_prep "$texture_packs_folder/PCSX2" "$XDG_CONFIG_HOME/PCSX2/textures"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -581,25 +581,25 @@ prepare_component() {
|
|||
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/ppsspp/PSP/SYSTEM/"
|
||||
cp -fv "$config/ppssppsdl/"* "$multi_user_data_folder/$SteamAppUser/config/ppsspp/PSP/SYSTEM/"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/ppsspp/PSP/SYSTEM/ppsspp.ini" "CurrentDirectory" "$roms_folder/psp" "ppsspp" "General"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/ppsspp" "/var/config/ppsspp"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/ppsspp" "$XDG_CONFIG_HOME/ppsspp"
|
||||
else # Single-user actions
|
||||
create_dir -d /var/config/ppsspp/PSP/SYSTEM/
|
||||
cp -fv "$config/ppssppsdl/"* /var/config/ppsspp/PSP/SYSTEM/
|
||||
create_dir -d "$XDG_CONFIG_HOME/ppsspp/PSP/SYSTEM/"
|
||||
cp -fv "$config/ppssppsdl/"* "$XDG_CONFIG_HOME/ppsspp/PSP/SYSTEM/"
|
||||
set_setting_value "$ppssppconf" "CurrentDirectory" "$roms_folder/psp" "ppsspp" "General"
|
||||
fi
|
||||
# Shared actions
|
||||
dir_prep "$saves_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/SAVEDATA"
|
||||
dir_prep "$states_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/PPSSPP_STATE"
|
||||
dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES"
|
||||
dir_prep "$saves_folder/PSP/PPSSPP-SA" "$XDG_CONFIG_HOME/ppsspp/PSP/SAVEDATA"
|
||||
dir_prep "$states_folder/PSP/PPSSPP-SA" "$XDG_CONFIG_HOME/ppsspp/PSP/PPSSPP_STATE"
|
||||
dir_prep "$texture_packs_folder/PPSSPP" "$XDG_CONFIG_HOME/ppsspp/PSP/TEXTURES"
|
||||
create_dir -d "$cheats_folder/PPSSPP"
|
||||
dir_prep "$cheats_folder/PPSSPP" "/var/config/ppsspp/PSP/Cheats"
|
||||
dir_prep "$cheats_folder/PPSSPP" "$XDG_CONFIG_HOME/ppsspp/PSP/Cheats"
|
||||
if [[ -d "$cheats_folder/PPSSPP" && "$(ls -A "$cheats_folder"/PPSSPP)" ]]; then
|
||||
backup_file="$backups_folder/cheats/PPSSPP-$(date +%y%m%d).tar.gz"
|
||||
create_dir "$(dirname "$backup_file")"
|
||||
tar -czf "$backup_file" -C "$cheats_folder" PPSSPP
|
||||
log i "PPSSPP cheats backed up to $backup_file"
|
||||
fi
|
||||
tar -xzf /app/retrodeck/cheats/ppsspp.tar.gz -C "$cheats_folder/PPSSPP" --overwrite
|
||||
tar -xzf "/app/retrodeck/cheats/ppsspp.tar.gz" -C "$cheats_folder/PPSSPP" --overwrite
|
||||
|
||||
# Reset default preset settings
|
||||
set_setting_value "$rd_conf" "ppsspp" "$(get_setting_value "$rd_defaults" "ppsspp" "retrodeck" "cheevos")" "retrodeck" "cheevos"
|
||||
|
@ -607,10 +607,10 @@ prepare_component() {
|
|||
fi
|
||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||
set_setting_value "$ppssppconf" "CurrentDirectory" "$roms_folder/psp" "ppsspp" "General"
|
||||
dir_prep "$saves_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/SAVEDATA"
|
||||
dir_prep "$states_folder/PSP/PPSSPP-SA" "/var/config/ppsspp/PSP/PPSSPP_STATE"
|
||||
dir_prep "$texture_packs_folder/PPSSPP" "/var/config/ppsspp/PSP/TEXTURES"
|
||||
dir_prep "$cheats_folder/PPSSPP" "/var/config/ppsspp/PSP/Cheats"
|
||||
dir_prep "$saves_folder/PSP/PPSSPP-SA" "$XDG_CONFIG_HOME/ppsspp/PSP/SAVEDATA"
|
||||
dir_prep "$states_folder/PSP/PPSSPP-SA" "$XDG_CONFIG_HOME/ppsspp/PSP/PPSSPP_STATE"
|
||||
dir_prep "$texture_packs_folder/PPSSPP" "$XDG_CONFIG_HOME/ppsspp/PSP/TEXTURES"
|
||||
dir_prep "$cheats_folder/PPSSPP" "$XDG_CONFIG_HOME/ppsspp/PSP/Cheats"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -623,25 +623,25 @@ prepare_component() {
|
|||
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
|
||||
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/primehack"
|
||||
cp -fvr "$config/primehack/config/"* "$multi_user_data_folder/$SteamAppUser/config/primehack/"
|
||||
set_setting_value ""$multi_user_data_folder/$SteamAppUser/config/primehack/Dolphin.ini"" "ISOPath0" "$roms_folder/wii" "primehack" "General"
|
||||
set_setting_value ""$multi_user_data_folder/$SteamAppUser/config/primehack/Dolphin.ini"" "ISOPath1" "$roms_folder/gc" "primehack" "General"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/primehack" "/var/config/primehack"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/primehack/Dolphin.ini" "ISOPath0" "$roms_folder/wii" "primehack" "General"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/primehack/Dolphin.ini" "ISOPath1" "$roms_folder/gc" "primehack" "General"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/primehack" "$XDG_CONFIG_HOME/primehack"
|
||||
else # Single-user actions
|
||||
create_dir -d /var/config/primehack/
|
||||
cp -fvr "$config/primehack/config/"* /var/config/primehack/
|
||||
create_dir -d "$XDG_CONFIG_HOME/primehack/"
|
||||
cp -fvr "$config/primehack/config/"* "$XDG_CONFIG_HOME/primehack/"
|
||||
set_setting_value "$primehackconf" "ISOPath0" "$roms_folder/wii" "primehack" "General"
|
||||
set_setting_value "$primehackconf" "ISOPath1" "$roms_folder/gc" "primehack" "General"
|
||||
fi
|
||||
# Shared actions
|
||||
dir_prep "$saves_folder/gc/primehack/EU" "/var/data/primehack/GC/EUR"
|
||||
dir_prep "$saves_folder/gc/primehack/US" "/var/data/primehack/GC/USA"
|
||||
dir_prep "$saves_folder/gc/primehack/JP" "/var/data/primehack/GC/JAP"
|
||||
dir_prep "$screenshots_folder" "/var/data/primehack/ScreenShots"
|
||||
dir_prep "$states_folder/primehack" "/var/data/primehack/StateSaves"
|
||||
create_dir /var/data/primehack/Wii/
|
||||
dir_prep "$saves_folder/wii/primehack" "/var/data/primehack/Wii"
|
||||
dir_prep "$mods_folder/Primehack" "/var/data/primehack/Load/GraphicMods"
|
||||
dir_prep "$texture_packs_folder/Primehack" "/var/data/primehack/Load/Textures"
|
||||
dir_prep "$saves_folder/gc/primehack/EU" "$XDG_DATA_HOME/primehack/GC/EUR"
|
||||
dir_prep "$saves_folder/gc/primehack/US" "$XDG_DATA_HOME/primehack/GC/USA"
|
||||
dir_prep "$saves_folder/gc/primehack/JP" "$XDG_DATA_HOME/primehack/GC/JAP"
|
||||
dir_prep "$screenshots_folder" "$XDG_DATA_HOME/primehack/ScreenShots"
|
||||
dir_prep "$states_folder/primehack" "$XDG_DATA_HOME/primehack/StateSaves"
|
||||
create_dir "$XDG_DATA_HOME/primehack/Wii/"
|
||||
dir_prep "$saves_folder/wii/primehack" "$XDG_DATA_HOME/primehack/Wii"
|
||||
dir_prep "$mods_folder/Primehack" "$XDG_DATA_HOME/primehack/Load/GraphicMods"
|
||||
dir_prep "$texture_packs_folder/Primehack" "$XDG_DATA_HOME/primehack/Load/Textures"
|
||||
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
|
||||
cp -fvr "$config/primehack/data/"* "$multi_user_data_folder/$SteamAppUser/data/primehack/" # this must be done after the dirs are prepared as it copying some "mods"
|
||||
fi
|
||||
|
@ -650,14 +650,14 @@ prepare_component() {
|
|||
set_setting_value "$rd_conf" "primehack" "$(get_setting_value "$rd_defaults" "primehack" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
|
||||
fi
|
||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||
dir_prep "$saves_folder/gc/primehack/EU" "/var/data/primehack/GC/EUR"
|
||||
dir_prep "$saves_folder/gc/primehack/US" "/var/data/primehack/GC/USA"
|
||||
dir_prep "$saves_folder/gc/primehack/JP" "/var/data/primehack/GC/JAP"
|
||||
dir_prep "$screenshots_folder" "/var/data/primehack/ScreenShots"
|
||||
dir_prep "$states_folder/primehack" "/var/data/primehack/StateSaves"
|
||||
dir_prep "$saves_folder/wii/primehack" "/var/data/primehack/Wii/"
|
||||
dir_prep "$mods_folder/Primehack" "/var/data/primehack/Load/GraphicMods"
|
||||
dir_prep "$texture_packs_folder/Primehack" "/var/data/primehack/Load/Textures"
|
||||
dir_prep "$saves_folder/gc/primehack/EU" "$XDG_DATA_HOME/primehack/GC/EUR"
|
||||
dir_prep "$saves_folder/gc/primehack/US" "$XDG_DATA_HOME/primehack/GC/USA"
|
||||
dir_prep "$saves_folder/gc/primehack/JP" "$XDG_DATA_HOME/primehack/GC/JAP"
|
||||
dir_prep "$screenshots_folder" "$XDG_DATA_HOME/primehack/ScreenShots"
|
||||
dir_prep "$states_folder/primehack" "$XDG_DATA_HOME/primehack/StateSaves"
|
||||
dir_prep "$saves_folder/wii/primehack" "$XDG_DATA_HOME/primehack/Wii/"
|
||||
dir_prep "$mods_folder/Primehack" "$XDG_DATA_HOME/primehack/Load/GraphicMods"
|
||||
dir_prep "$texture_packs_folder/Primehack" "$XDG_DATA_HOME/primehack/Load/Textures"
|
||||
set_setting_value "$primehackconf" "ISOPath0" "$roms_folder/gc" "primehack" "General"
|
||||
fi
|
||||
fi
|
||||
|
@ -674,15 +674,15 @@ prepare_component() {
|
|||
# This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name.
|
||||
sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$multi_user_data_folder/$SteamAppUser/config/rpcs3/vfs.yml"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/rpcs3/vfs.yml" "/games/" "$roms_folder/ps3/" "rpcs3"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/rpcs3" "/var/config/rpcs3"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/rpcs3" "$XDG_CONFIG_HOME/rpcs3"
|
||||
else # Single-user actions
|
||||
create_dir -d /var/config/rpcs3/
|
||||
cp -fr "$config/rpcs3/"* /var/config/rpcs3/
|
||||
create_dir -d "$XDG_CONFIG_HOME/rpcs3/"
|
||||
cp -fr "$config/rpcs3/"* "$XDG_CONFIG_HOME/rpcs3/"
|
||||
# This is an unfortunate one-off because set_setting_value does not currently support settings with $ in the name.
|
||||
sed -i 's^\^$(EmulatorDir): .*^$(EmulatorDir): '"$bios_folder/rpcs3/"'^' "$rpcs3vfsconf"
|
||||
set_setting_value "$rpcs3vfsconf" "/games/" "$roms_folder/ps3/" "rpcs3"
|
||||
dir_prep "$saves_folder/ps3/rpcs3" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata"
|
||||
dir_prep "$states_folder/ps3/rpcs3" "/var/config/rpcs3/savestates"
|
||||
dir_prep "$states_folder/ps3/rpcs3" "$XDG_CONFIG_HOME/rpcs3/savestates"
|
||||
fi
|
||||
# Shared actions
|
||||
create_dir "$bios_folder/rpcs3/dev_hdd0"
|
||||
|
@ -711,16 +711,16 @@ prepare_component() {
|
|||
if [[ $multi_user_mode == "true" ]]; then
|
||||
rm -rf "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
|
||||
#create_dir "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/system"
|
||||
cp -fv $config/ryujinx/* "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
|
||||
cp -fv "$config/ryujinx/"* "$multi_user_data_folder/$SteamAppUser/config/Ryujinx"
|
||||
sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "$multi_user_data_folder/$SteamAppUser/config/Ryujinx/Config.json"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" "/var/config/Ryujinx"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/Ryujinx" "$XDG_CONFIG_HOME/Ryujinx"
|
||||
else
|
||||
# removing config directory to wipe legacy files
|
||||
log d "Removing \"/var/config/Ryujinx\""
|
||||
rm -rf "/var/config/Ryujinx"
|
||||
create_dir "/var/config/Ryujinx/system"
|
||||
log d "Removing \"$XDG_CONFIG_HOME/Ryujinx\""
|
||||
rm -rf "$XDG_CONFIG_HOME/Ryujinx"
|
||||
create_dir "$XDG_CONFIG_HOME/Ryujinx/system"
|
||||
cp -fv "$config/ryujinx/Config.json" "$ryujinxconf"
|
||||
cp -fvr "$config/ryujinx/profiles" "/var/config/Ryujinx/"
|
||||
cp -fvr "$config/ryujinx/profiles" "$XDG_CONFIG_HOME/Ryujinx/"
|
||||
log d "Replacing placeholders in \"$ryujinxconf\""
|
||||
sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "$ryujinxconf"
|
||||
create_dir "$logs_folder/ryujinx"
|
||||
|
@ -729,11 +729,11 @@ prepare_component() {
|
|||
fi
|
||||
fi
|
||||
# if [[ "$action" == "reset" ]] || [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves
|
||||
# dir_prep "$bios_folder/switch/keys" "/var/config/Ryujinx/system"
|
||||
# dir_prep "$bios_folder/switch/keys" "$XDG_CONFIG_HOME/Ryujinx/system"
|
||||
# fi
|
||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||
log d "Replacing placeholders in \"$ryujinxconf\""
|
||||
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$ryujinxconf" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
||||
sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "$ryujinxconf" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -751,26 +751,26 @@ prepare_component() {
|
|||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/yuzu/qt-config.ini" "sdmc_directory" "$saves_folder/switch/yuzu/sdmc" "yuzu" "Data%20Storage"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/yuzu/qt-config.ini" "Paths\gamedirs\4\path" "$roms_folder/switch" "yuzu" "UI"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/yuzu/qt-config.ini" "Screenshots\screenshot_path" "$screenshots_folder" "yuzu" "UI"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/yuzu" "/var/config/yuzu"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/yuzu" "$XDG_CONFIG_HOME/yuzu"
|
||||
else # Single-user actions
|
||||
create_dir -d /var/config/yuzu/
|
||||
cp -fvr "$config/yuzu/"* /var/config/yuzu/
|
||||
create_dir -d "$XDG_CONFIG_HOME/yuzu/"
|
||||
cp -fvr "$config/yuzu/"* "$XDG_CONFIG_HOME/yuzu/"
|
||||
set_setting_value "$yuzuconf" "nand_directory" "$saves_folder/switch/yuzu/nand" "yuzu" "Data%20Storage"
|
||||
set_setting_value "$yuzuconf" "sdmc_directory" "$saves_folder/switch/yuzu/sdmc" "yuzu" "Data%20Storage"
|
||||
set_setting_value "$yuzuconf" "Paths\gamedirs\4\path" "$roms_folder/switch" "yuzu" "UI"
|
||||
set_setting_value "$yuzuconf" "Screenshots\screenshot_path" "$screenshots_folder" "yuzu" "UI"
|
||||
fi
|
||||
# Shared actions
|
||||
dir_prep "$saves_folder/switch/yuzu/nand" "/var/data/yuzu/nand"
|
||||
dir_prep "$saves_folder/switch/yuzu/sdmc" "/var/data/yuzu/sdmc"
|
||||
dir_prep "$bios_folder/switch/keys" "/var/data/yuzu/keys"
|
||||
dir_prep "$bios_folder/switch/firmware" "/var/data/yuzu/nand/system/Contents/registered"
|
||||
dir_prep "$logs_folder/yuzu" "/var/data/yuzu/log"
|
||||
dir_prep "$screenshots_folder" "/var/data/yuzu/screenshots"
|
||||
dir_prep "$mods_folder/Yuzu" "/var/data/yuzu/load"
|
||||
dir_prep "$saves_folder/switch/yuzu/nand" "$XDG_DATA_HOME/yuzu/nand"
|
||||
dir_prep "$saves_folder/switch/yuzu/sdmc" "$XDG_DATA_HOME/yuzu/sdmc"
|
||||
dir_prep "$bios_folder/switch/keys" "$XDG_DATA_HOME/yuzu/keys"
|
||||
dir_prep "$bios_folder/switch/firmware" "$XDG_DATA_HOME/yuzu/nand/system/Contents/registered"
|
||||
dir_prep "$logs_folder/yuzu" "$XDG_DATA_HOME/yuzu/log"
|
||||
dir_prep "$screenshots_folder" "$XDG_DATA_HOME/yuzu/screenshots"
|
||||
dir_prep "$mods_folder/Yuzu" "$XDG_DATA_HOME/yuzu/load"
|
||||
# removing dead symlinks as they were present in a past version
|
||||
if [ -d $bios_folder/switch ]; then
|
||||
find $bios_folder/switch -xtype l -exec rm {} \;
|
||||
if [ -d "$bios_folder/switch" ]; then
|
||||
find "$bios_folder/switch" -xtype l -exec rm {} \;
|
||||
fi
|
||||
|
||||
# Reset default preset settings
|
||||
|
@ -778,13 +778,13 @@ prepare_component() {
|
|||
set_setting_value "$rd_conf" "yuzu" "$(get_setting_value "$rd_defaults" "yuzu" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit"
|
||||
fi
|
||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||
dir_prep "$bios_folder/switch/keys" "/var/data/yuzu/keys"
|
||||
dir_prep "$bios_folder/switch/firmware" "/var/data/yuzu/nand/system/Contents/registered"
|
||||
dir_prep "$saves_folder/switch/yuzu/nand" "/var/data/yuzu/nand"
|
||||
dir_prep "$saves_folder/switch/yuzu/sdmc" "/var/data/yuzu/sdmc"
|
||||
dir_prep "$logs_folder/yuzu" "/var/data/yuzu/log"
|
||||
dir_prep "$screenshots_folder" "/var/data/yuzu/screenshots"
|
||||
dir_prep "$mods_folder/Yuzu" "/var/data/yuzu/load"
|
||||
dir_prep "$bios_folder/switch/keys" "$XDG_DATA_HOME/yuzu/keys"
|
||||
dir_prep "$bios_folder/switch/firmware" "$XDG_DATA_HOME/yuzu/nand/system/Contents/registered"
|
||||
dir_prep "$saves_folder/switch/yuzu/nand" "$XDG_DATA_HOME/yuzu/nand"
|
||||
dir_prep "$saves_folder/switch/yuzu/sdmc" "$XDG_DATA_HOME/yuzu/sdmc"
|
||||
dir_prep "$logs_folder/yuzu" "$XDG_DATA_HOME/yuzu/log"
|
||||
dir_prep "$screenshots_folder" "$XDG_DATA_HOME/yuzu/screenshots"
|
||||
dir_prep "$mods_folder/Yuzu" "$XDG_DATA_HOME/yuzu/load"
|
||||
set_setting_value "$yuzuconf" "nand_directory" "$saves_folder/switch/yuzu/nand" "yuzu" "Data%20Storage"
|
||||
set_setting_value "$yuzuconf" "sdmc_directory" "$saves_folder/switch/yuzu/sdmc" "yuzu" "Data%20Storage"
|
||||
set_setting_value "$yuzuconf" "Paths\gamedirs\4\path" "$roms_folder/switch" "yuzu" "UI"
|
||||
|
@ -800,8 +800,8 @@ prepare_component() {
|
|||
log i "Prepearing XEMU"
|
||||
log i "------------------------"
|
||||
if [[ $multi_user_mode == "true" ]]; then # Multi-user actions
|
||||
rm -rf "/var/config/xemu"
|
||||
rm -rf "/var/data/xemu"
|
||||
rm -rf "$XDG_CONFIG_HOME/xemu"
|
||||
rm -rf "$XDG_DATA_HOME/xemu"
|
||||
create_dir -d "$multi_user_data_folder/$SteamAppUser/config/xemu/"
|
||||
cp -fv "$config/xemu/xemu.toml" "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "screenshot_dir" "'$screenshots_folder'" "xemu" "General"
|
||||
|
@ -809,12 +809,12 @@ prepare_component() {
|
|||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "eeprom_path" "'$saves_folder/xbox/xemu/xbox-eeprom.bin'" "xemu" "sys.files"
|
||||
set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "hdd_path" "'$bios_folder/xbox_hdd.qcow2'" "xemu" "sys.files"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/config/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where component will look
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/data/xemu/xemu"
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "$XDG_CONFIG_HOME/xemu" # Creating config folder in $XDG_CONFIG_HOME for consistentcy and linking back to original location where component will look
|
||||
dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "$XDG_DATA_HOME/xemu/xemu"
|
||||
else # Single-user actions
|
||||
rm -rf "/var/config/xemu"
|
||||
rm -rf "/var/data/xemu"
|
||||
dir_prep "/var/config/xemu" "/var/data/xemu/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where component will look
|
||||
rm -rf "$XDG_CONFIG_HOME/xemu"
|
||||
rm -rf "$XDG_DATA_HOME/xemu"
|
||||
dir_prep "$XDG_CONFIG_HOME/xemu" "$XDG_DATA_HOME/xemu/xemu" # Creating config folder in $XDG_CONFIG_HOME for consistentcy and linking back to original location where component will look
|
||||
cp -fv "$config/xemu/xemu.toml" "$xemuconf"
|
||||
set_setting_value "$xemuconf" "screenshot_dir" "'$screenshots_folder'" "xemu" "General"
|
||||
set_setting_value "$xemuconf" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files"
|
||||
|
@ -848,8 +848,8 @@ prepare_component() {
|
|||
log d "Figure out what Vita3k needs for multi-user"
|
||||
else # Single-user actions
|
||||
# NOTE: the component is writing in "." so it must be placed in the rw filesystem. A symlink of the binary is already placed in /app/bin/Vita3K
|
||||
rm -rf "/var/config/Vita3K"
|
||||
create_dir "/var/config/Vita3K"
|
||||
rm -rf "$XDG_CONFIG_HOME/Vita3K"
|
||||
create_dir "$XDG_CONFIG_HOME/Vita3K"
|
||||
cp -fvr "$config/vita3k/config.yml" "$vita3kconf" # component config
|
||||
cp -fvr "$config/vita3k/ux0" "$bios_folder/Vita3K/" # User config
|
||||
set_setting_value "$vita3kconf" "pref-path" "$bios_folder/Vita3K/" "vita3k"
|
||||
|
@ -878,45 +878,45 @@ prepare_component() {
|
|||
create_dir "$rdhome/screenshots/mame-sa"
|
||||
create_dir "$saves_folder/mame-sa/diff"
|
||||
|
||||
create_dir "/var/config/ctrlr"
|
||||
create_dir "/var/config/mame/ini"
|
||||
create_dir "/var/config/mame/cfg"
|
||||
create_dir "/var/config/mame/inp"
|
||||
create_dir "$XDG_CONFIG_HOME/ctrlr"
|
||||
create_dir "$XDG_CONFIG_HOME/mame/ini"
|
||||
create_dir "$XDG_CONFIG_HOME/mame/cfg"
|
||||
create_dir "$XDG_CONFIG_HOME/mame/inp"
|
||||
|
||||
create_dir "/var/data/mame/plugin-data"
|
||||
create_dir "/var/data/mame/hash"
|
||||
create_dir "$XDG_DATA_HOME/mame/plugin-data"
|
||||
create_dir "$XDG_DATA_HOME/mame/hash"
|
||||
create_dir "$bios_folder/mame-sa/samples"
|
||||
create_dir "/var/data/mame/assets/artwork"
|
||||
create_dir "/var/data/mame/assets/fonts"
|
||||
create_dir "/var/data/mame/assets/crosshair"
|
||||
create_dir "/var/data/mame/plugins"
|
||||
create_dir "/var/data/mame/assets/language"
|
||||
create_dir "/var/data/mame/assets/software"
|
||||
create_dir "/var/data/mame/assets/comments"
|
||||
create_dir "/var/data/mame/assets/share"
|
||||
create_dir "/var/data/mame/dats"
|
||||
create_dir "/var/data/mame/folders"
|
||||
create_dir "/var/data/mame/assets/cabinets"
|
||||
create_dir "/var/data/mame/assets/cpanel"
|
||||
create_dir "/var/data/mame/assets/pcb"
|
||||
create_dir "/var/data/mame/assets/flyers"
|
||||
create_dir "/var/data/mame/assets/titles"
|
||||
create_dir "/var/data/mame/assets/ends"
|
||||
create_dir "/var/data/mame/assets/marquees"
|
||||
create_dir "/var/data/mame/assets/artwork-preview"
|
||||
create_dir "/var/data/mame/assets/bosses"
|
||||
create_dir "/var/data/mame/assets/logo"
|
||||
create_dir "/var/data/mame/assets/scores"
|
||||
create_dir "/var/data/mame/assets/versus"
|
||||
create_dir "/var/data/mame/assets/gameover"
|
||||
create_dir "/var/data/mame/assets/howto"
|
||||
create_dir "/var/data/mame/assets/select"
|
||||
create_dir "/var/data/mame/assets/icons"
|
||||
create_dir "/var/data/mame/assets/covers"
|
||||
create_dir "/var/data/mame/assets/ui"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/artwork"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/fonts"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/crosshair"
|
||||
create_dir "$XDG_DATA_HOME/mame/plugins"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/language"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/software"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/comments"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/share"
|
||||
create_dir "$XDG_DATA_HOME/mame/dats"
|
||||
create_dir "$XDG_DATA_HOME/mame/folders"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/cabinets"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/cpanel"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/pcb"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/flyers"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/titles"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/ends"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/marquees"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/artwork-preview"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/bosses"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/logo"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/scores"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/versus"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/gameover"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/howto"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/select"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/icons"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/covers"
|
||||
create_dir "$XDG_DATA_HOME/mame/assets/ui"
|
||||
create_dir "$shaders_folder/mame/bgfx/"
|
||||
|
||||
dir_prep "$saves_folder/mame-sa/hiscore" "/var/config/mame/hiscore"
|
||||
dir_prep "$saves_folder/mame-sa/hiscore" "$XDG_CONFIG_HOME/mame/hiscore"
|
||||
cp -fvr "$config/mame/mame.ini" "$mameconf"
|
||||
cp -fvr "$config/mame/ui.ini" "$mameuiconf"
|
||||
cp -fvr "$config/mame/default.cfg" "$mamedefconf"
|
||||
|
@ -944,17 +944,17 @@ prepare_component() {
|
|||
log i "Prepearing GZDOOM"
|
||||
log i "----------------------"
|
||||
|
||||
create_dir "/var/config/gzdoom"
|
||||
create_dir "/var/data/gzdoom/audio/midi"
|
||||
create_dir "/var/data/gzdoom/audio/fm_banks"
|
||||
create_dir "/var/data/gzdoom/audio/soundfonts"
|
||||
create_dir "$XDG_CONFIG_HOME/gzdoom"
|
||||
create_dir "$XDG_DATA_HOME/gzdoom/audio/midi"
|
||||
create_dir "$XDG_DATA_HOME/gzdoom/audio/fm_banks"
|
||||
create_dir "$XDG_DATA_HOME/gzdoom/audio/soundfonts"
|
||||
create_dir "$bios_folder/gzdoom"
|
||||
|
||||
cp -fvr "$config/gzdoom/gzdoom.ini" "/var/config/gzdoom"
|
||||
cp -fvr "$config/gzdoom/gzdoom.ini" "$XDG_CONFIG_HOME/gzdoom"
|
||||
|
||||
sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
||||
sed -i 's#RETRODECKROMSDIR#'"$roms_folder"'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
||||
sed -i 's#RETRODECKSAVESDIR#'"$saves_folder"'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
||||
sed -i 's#RETRODECKHOMEDIR#'"$rdhome"'#g' "$XDG_CONFIG_HOME/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
||||
sed -i 's#RETRODECKROMSDIR#'"$roms_folder"'#g' "$XDG_CONFIG_HOME/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
||||
sed -i 's#RETRODECKSAVESDIR#'"$saves_folder"'#g' "$XDG_CONFIG_HOME/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON
|
||||
fi
|
||||
|
||||
if [[ "$component" =~ ^(portmaster|all)$ ]]; then
|
||||
|
@ -964,14 +964,14 @@ prepare_component() {
|
|||
log i "Prepearing PortMaster"
|
||||
log i "----------------------"
|
||||
|
||||
rm -rf "/var/data/PortMaster"
|
||||
unzip "/app/retrodeck/PortMaster.zip" -d "/var/data/"
|
||||
cp -f "/var/data/PortMaster/retrodeck/PortMaster.txt" "/var/data/PortMaster/PortMaster.sh"
|
||||
chmod +x "/var/data/PortMaster/PortMaster.sh"
|
||||
rm -rf "$XDG_DATA_HOME/PortMaster"
|
||||
unzip "/app/retrodeck/PortMaster.zip" -d "$XDG_DATA_HOME/"
|
||||
cp -f "$XDG_DATA_HOME/PortMaster/retrodeck/PortMaster.txt" "$XDG_DATA_HOME/PortMaster/PortMaster.sh"
|
||||
chmod +x "$XDG_DATA_HOME/PortMaster/PortMaster.sh"
|
||||
rm -f "$roms_folder/portmaster/PortMaster.sh"
|
||||
install -Dm755 "/var/data/PortMaster/PortMaster.sh" "$roms_folder/portmaster/PortMaster.sh"
|
||||
create_dir "/var/data/PortMaster/config/"
|
||||
cp "$config/portmaster/config.json" "/var/data/PortMaster/config/config.json"
|
||||
install -Dm755 "$XDG_DATA_HOME/PortMaster/PortMaster.sh" "$roms_folder/portmaster/PortMaster.sh"
|
||||
create_dir "$XDG_DATA_HOME/PortMaster/config/"
|
||||
cp "$config/portmaster/config.json" "$XDG_DATA_HOME/PortMaster/config/config.json"
|
||||
|
||||
fi
|
||||
|
||||
|
@ -981,14 +981,14 @@ prepare_component() {
|
|||
log i "Prepearing Ruffle"
|
||||
log i "----------------------"
|
||||
|
||||
rm -rf "/var/config/ruffle"
|
||||
rm -rf "$XDG_CONFIG_HOME/ruffle"
|
||||
|
||||
# Ruffle creates a directory with the full rom paths in it, so this is necessary
|
||||
# TODO: be aware of this when multi user support will be integrated for this component
|
||||
dir_prep "$saves_folder/flash" "/var/data/ruffle/SharedObjects/localhost/$roms_folder/flash"
|
||||
dir_prep "$saves_folder/flash" "$XDG_DATA_HOME/ruffle/SharedObjects/localhost/$roms_folder/flash"
|
||||
|
||||
if [[ "$action" == "postmove" ]]; then # Run only post-move commands
|
||||
dir_prep "$saves_folder/flash" "/var/data/ruffle/SharedObjects/localhost/$roms_folder/flash"
|
||||
dir_prep "$saves_folder/flash" "$XDG_DATA_HOME/ruffle/SharedObjects/localhost/$roms_folder/flash"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
|
|
@ -114,14 +114,14 @@ build_preset_list_options() {
|
|||
|
||||
preset="$1"
|
||||
pretty_preset_name=${preset//_/ } # Preset name prettification
|
||||
pretty_preset_name=$(echo $pretty_preset_name | awk '{for(i=1;i<=NF;i++){$i=toupper(substr($i,1,1))substr($i,2)}}1') # Preset name prettification
|
||||
pretty_preset_name=$(echo "$pretty_preset_name" | awk '{for(i=1;i<=NF;i++){$i=toupper(substr($i,1,1))substr($i,2)}}1') # Preset name prettification
|
||||
current_preset_settings=()
|
||||
current_enabled_systems=()
|
||||
current_disabled_systems=()
|
||||
changed_systems=()
|
||||
changed_presets=()
|
||||
all_systems=()
|
||||
local section_results=$(sed -n '/\['"$preset"'\]/, /\[/{ /\['"$preset"'\]/! { /\[/! p } }' $rd_conf | sed '/^$/d')
|
||||
local section_results=$(sed -n '/\['"$preset"'\]/, /\[/{ /\['"$preset"'\]/! { /\[/! p } }' "$rd_conf" | sed '/^$/d')
|
||||
|
||||
while IFS= read -r config_line
|
||||
do
|
||||
|
@ -133,8 +133,8 @@ build_preset_list_options() {
|
|||
elif [[ "$system_value" == "false" ]]; then
|
||||
current_disabled_systems=("${current_disabled_systems[@]}" "$system_name")
|
||||
fi
|
||||
current_preset_settings=("${current_preset_settings[@]}" "$system_value" "$(make_name_pretty $system_name)" "$system_name")
|
||||
echo "$system_value"^"$(make_name_pretty $system_name)"^"$system_name" >> "$godot_current_preset_settings"
|
||||
current_preset_settings=("${current_preset_settings[@]}" "$system_value" "$(make_name_pretty "$system_name")" "$system_name")
|
||||
echo "$system_value"^"$(make_name_pretty "$system_name")"^"$system_name" >> "$godot_current_preset_settings"
|
||||
done < <(printf '%s\n' "$section_results")
|
||||
}
|
||||
|
||||
|
@ -252,7 +252,7 @@ build_preset_config() {
|
|||
log d "Applying presets: $presets_being_changed for system: $system_being_changed"
|
||||
for current_preset in $presets_being_changed
|
||||
do
|
||||
local preset_section=$(sed -n '/\['"$current_preset"'\]/, /\[/{ /\['"$current_preset"'\]/! { /\[/! p } }' $rd_conf | sed '/^$/d')
|
||||
local preset_section=$(sed -n '/\['"$current_preset"'\]/, /\[/{ /\['"$current_preset"'\]/! { /\[/! p } }' "$rd_conf" | sed '/^$/d')
|
||||
while IFS= read -r system_line
|
||||
do
|
||||
local read_system_name=$(get_setting_name "$system_line")
|
||||
|
@ -376,7 +376,7 @@ build_retrodeck_current_presets() {
|
|||
do
|
||||
if [[ (! -z "$current_setting_line") && (! "$current_setting_line" == "#"*) && (! "$current_setting_line" == "[]") ]]; then # If the line has a valid entry in it
|
||||
if [[ ! -z $(grep -o -P "^\[.+?\]$" <<< "$current_setting_line") ]]; then # If the line is a section header
|
||||
local current_section=$(sed 's^[][]^^g' <<< $current_setting_line) # Remove brackets from section name
|
||||
local current_section=$(sed 's^[][]^^g' <<< "$current_setting_line") # Remove brackets from section name
|
||||
else
|
||||
if [[ ! ("$current_section" == "" || "$current_section" == "paths" || "$current_section" == "options" || "$current_section" == "cheevos" || "$current_section" == "cheevos_hardcore") ]]; then
|
||||
local system_name=$(get_setting_name "$current_setting_line" "retrodeck") # Read the variable name from the current line
|
||||
|
@ -387,7 +387,7 @@ build_retrodeck_current_presets() {
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
done < $rd_conf
|
||||
done < "$rd_conf"
|
||||
}
|
||||
|
||||
fetch_all_presets() {
|
||||
|
@ -417,7 +417,7 @@ fetch_all_presets() {
|
|||
presets+=("$preset")
|
||||
if $pretty_output; then
|
||||
pretty_preset_name=${preset//_/ } # Preset name prettification
|
||||
pretty_preset_name=$(echo $pretty_preset_name | awk '{for(i=1;i<=NF;i++){$i=toupper(substr($i,1,1))substr($i,2)}}1') # Preset name prettification
|
||||
pretty_preset_name=$(echo "$pretty_preset_name" | awk '{for(i=1;i<=NF;i++){$i=toupper(substr($i,1,1))substr($i,2)}}1') # Preset name prettification
|
||||
pretty_presets+=("$pretty_preset_name")
|
||||
fi
|
||||
fi
|
||||
|
@ -433,7 +433,7 @@ fetch_all_presets() {
|
|||
presets+=("$preset")
|
||||
if $pretty_output; then
|
||||
pretty_preset_name=${preset//_/ } # Preset name prettification
|
||||
pretty_preset_name=$(echo $pretty_preset_name | awk '{for(i=1;i<=NF;i++){$i=toupper(substr($i,1,1))substr($i,2)}}1') # Preset name prettification
|
||||
pretty_preset_name=$(echo "$pretty_preset_name" | awk '{for(i=1;i<=NF;i++){$i=toupper(substr($i,1,1))substr($i,2)}}1') # Preset name prettification
|
||||
pretty_presets+=("$pretty_preset_name")
|
||||
fi
|
||||
fi
|
||||
|
|
|
@ -389,8 +389,8 @@ find_emulator() {
|
|||
while IFS= read -r line; do
|
||||
command_path=$(echo "$line" | sed -n 's/.*<entry>\(.*\)<\/entry>.*/\1/p')
|
||||
# Check if the command specified by the variable 'command_path' exists and is executable
|
||||
if [ -x "$(command -v $command_path)" ]; then
|
||||
found_path=$command_path
|
||||
if [ -x "$(command -v "$command_path")" ]; then
|
||||
found_path="$command_path"
|
||||
break
|
||||
fi
|
||||
done <<< "$(echo "$emulator_section" | xmllint --xpath "//rule[@type='systempath']/entry" - 2>/dev/null)"
|
||||
|
@ -400,7 +400,7 @@ find_emulator() {
|
|||
while IFS= read -r line; do
|
||||
command_path=$(echo "$line" | sed -n 's/.*<entry>\(.*\)<\/entry>.*/\1/p')
|
||||
if [ -x "$command_path" ]; then
|
||||
found_path=$command_path
|
||||
found_path="$command_path"
|
||||
break
|
||||
fi
|
||||
done <<< "$(echo "$emulator_section" | xmllint --xpath "//rule[@type='staticpath']/entry" - 2>/dev/null)"
|
||||
|
@ -466,4 +466,4 @@ find_system_by_extension() {
|
|||
|
||||
# Return the detected system
|
||||
echo "$detected_system"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ steam_sync() {
|
|||
# USAGE: steam_sync
|
||||
|
||||
log "i" "Starting Steam Sync"
|
||||
create_dir $steamsync_folder
|
||||
create_dir "$steamsync_folder"
|
||||
|
||||
if [ ! -f "$srm_path" ]; then
|
||||
log "e" "Steam ROM Manager configuration not initialized! Initializing now."
|
||||
|
|
Loading…
Reference in a new issue