From 5c3e6767c424b9d4b68f5a1e615572128a7cc786 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Tue, 14 Mar 2023 14:05:10 -0400
Subject: [PATCH 01/64] Fix CHD candidate validation
---
functions.sh | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/functions.sh b/functions.sh
index 98d33403..0d648a38 100644
--- a/functions.sh
+++ b/functions.sh
@@ -129,7 +129,8 @@ validate_for_chd () {
# USAGE: validate_for_chd $input_file
local file=$1
- current_run_log_file="chd_compression_"$(date +"%Y_%m_%d_%I_%M_%p").log""
+ local file_validated="false"
+ current_run_log_file="chd_compression_$(basename $file).log"
echo "Validating file:" $file > "$logs_folder/$current_run_log_file"
if [[ "$file" == *".cue" ]] || [[ "$file" == *".gdi" ]] || [[ "$file" == *".iso" ]]; then
echo ".cue/.iso/.gdi file detected" >> $logs_folder/$current_run_log_file
@@ -140,24 +141,24 @@ validate_for_chd () {
echo "File base name:" $file_name >> "$logs_folder/$current_run_log_file"
if [[ "$file" == *".cue" ]]; then # Validate .cue file
local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" $file)
- local cue_validated="false"
for line in $cue_bin_files
do
if [[ -f "$file_path/$line" ]]; then
echo ".bin file found at $file_path/$line" >> "$logs_folder/$current_run_log_file"
- cue_validated="true"
+ file_validated="true"
else
echo ".bin file NOT found at $file_path/$line" >> "$logs_folder/$current_run_log_file"
echo ".cue file could not be validated. Please verify your .cue file contains the correct corresponding .bin file information and retry." >> "$logs_folder/$current_run_log_file"
- cue_validated="false"
+ file_validated="false"
break
fi
done
- if [[ $cue_validated == "true" ]]; then
- echo $cue_validated
+ if [[ $file_validated == "true" ]]; then
+ echo $file_validated
fi
- else
- echo $cue_validated
+ else # If file is a .iso or .gdi
+ file_validated="true"
+ echo $file_validated
fi
else
echo "File type not recognized. Supported file types are .cue, .gdi and .iso" >> "$logs_folder/$current_run_log_file"
From f5c6a70c9c3b3246188a0564710a180117179a94 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Wed, 15 Mar 2023 17:19:04 -0400
Subject: [PATCH 02/64] - Add compressed file cleanup - Add multi-file
compression - Fix compression handling for files with spaces in them
---
functions.sh | 88 ++++++++++++-----
rd-submodules/shared-modules | 2 +-
retrodeck.sh | 33 ++-----
tools/configurator.sh | 187 ++++++++++++++++++++++++++++++++---
4 files changed, 248 insertions(+), 62 deletions(-)
diff --git a/functions.sh b/functions.sh
index 0d648a38..b17d2716 100644
--- a/functions.sh
+++ b/functions.sh
@@ -73,9 +73,9 @@ verify_space() {
# USAGE: verify_space $source_dir $dest_dir
# Function returns "true" if there is enough space, "false" if there is not
- source_size=$(du -sk $1 | awk '{print $1}')
+ source_size=$(du -sk "$1" | awk '{print $1}')
source_size=$((source_size+(source_size/10))) # Add 10% to source size for safety
- dest_avail=$(df -k --output=avail $2 | tail -1)
+ dest_avail=$(df -k --output=avail "$2" | tail -1)
if [[ $source_size -ge $dest_avail ]]; then
echo "false"
@@ -88,13 +88,13 @@ move() {
# Function to move a directory from one parent to another
# USAGE: move $source_dir $dest_dir
- if [[ ! -d "$2/$(basename $1)" ]]; then
- if [[ $(verify_space $1 $2) ]]; then
+ if [[ ! -d "$2/$(basename "$1")" ]]; then
+ if [[ $(verify_space "$1" "$2") ]]; then
(
- if [[ ! -d $2 ]]; then # Create destination directory if it doesn't already exist
- mkdir -pv $2
+ if [[ ! -d "$2" ]]; then # Create destination directory if it doesn't already exist
+ mkdir -pv "$2"
fi
- mv -v -t $2 $1
+ mv -v -t "$2" "$1"
) |
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
@@ -121,28 +121,30 @@ compress_to_chd () {
# USAGE: compress_to_chd $full_path_to_input_file $full_path_to_output_file
echo "Compressing file $1 to $2.chd"
- /app/bin/chdman createcd -i $1 -o $2.chd
+ /app/bin/chdman createcd -i "$1" -o "$2".chd
}
validate_for_chd () {
# Function for validating chd compression candidates, and compresses if validation passes. Supports .cue, .iso and .gdi formats ONLY
# USAGE: validate_for_chd $input_file
- local file=$1
+ local file="$1"
local file_validated="false"
- current_run_log_file="chd_compression_$(basename $file).log"
- echo "Validating file:" $file > "$logs_folder/$current_run_log_file"
+ current_run_log_file="chd_compression_$(basename "$file").log"
+ echo "Validating file:" "$file" > "$logs_folder/$current_run_log_file"
if [[ "$file" == *".cue" ]] || [[ "$file" == *".gdi" ]] || [[ "$file" == *".iso" ]]; then
- echo ".cue/.iso/.gdi file detected" >> $logs_folder/$current_run_log_file
- local file_path=$(dirname $(realpath $file))
- local file_base_name=$(basename $file)
+ echo ".cue/.iso/.gdi file detected" >> "$logs_folder/$current_run_log_file"
+ local file_path=$(dirname "$(realpath "$file")")
+ local file_base_name=$(basename "$file")
local file_name=${file_base_name%.*}
- echo "File base path:" $file_path >> "$logs_folder/$current_run_log_file"
- echo "File base name:" $file_name >> "$logs_folder/$current_run_log_file"
if [[ "$file" == *".cue" ]]; then # Validate .cue file
- local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" $file)
- for line in $cue_bin_files
+ echo "Validating .cue associated .bin files" >> "$logs_folder/$current_run_log_file"
+ local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" "$file")
+ echo "Associated bin files read:" >> "$logs_folder/$current_run_log_file"
+ printf '%s\n' "$cue_bin_files" >> "$logs_folder/$current_run_log_file"
+ while IFS= read -r line
do
+ echo "looking for $file_path/$line" >> "$logs_folder/$current_run_log_file"
if [[ -f "$file_path/$line" ]]; then
echo ".bin file found at $file_path/$line" >> "$logs_folder/$current_run_log_file"
file_validated="true"
@@ -152,7 +154,7 @@ validate_for_chd () {
file_validated="false"
break
fi
- done
+ done < <(printf '%s\n' "$cue_bin_files")
if [[ $file_validated == "true" ]]; then
echo $file_validated
fi
@@ -165,6 +167,51 @@ validate_for_chd () {
fi
}
+cli_compress_file() {
+ # This function will compress a single file passed from the CLI arguments
+ # USAGE: cli_compress_file $full_file_path
+ local file="$1"
+ echo "Looking for" "$file"
+ current_run_log_file="chd_compression_$(basename "$file").log"
+ if [[ ! -z "$file" ]]; then
+ if [[ -f "$file" ]]; then
+ if [[ $(validate_for_chd "$file") == "true" ]]; then
+ read -p "RetroDECK will now attempt to compress your selected game. Press Enter key to continue..."
+ read -p "Do you want to have the original file removed after compression is complete? Please answer y/n and press Enter: " post_compression_cleanup
+ local filename_no_path=$(basename "$file")
+ local filename_no_extension="${filename_no_path%.*}"
+ local source_file=$(dirname "$(realpath "$file")")"/"$(basename "$file")
+ local dest_file=$(dirname "$(realpath "$file")")"/""$filename_no_extension"
+ echo "Compressing $filename_no_path"
+ compress_to_chd "$source_file" "$dest_file"
+ if [[ $post_compression_cleanup == [yY] ]]; then # Remove file(s) if requested
+ if [[ "$file" == *".cue" ]]; then
+ local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" "$file")
+ local file_path=$(dirname "$(realpath "$file")")
+ while IFS= read -r line
+ do # Remove associated .bin files
+ echo "Removing file "$line""
+ rm -f "$file_path/$line"
+ done < <(printf '%s\n' "$cue_bin_files") # Remove original .cue file
+ echo "Removing file "$filename_no_path""
+ rm -f $(realpath "$file")
+ else
+ echo "Removing file "$filename_no_path""
+ rm -f $(realpath "$file")
+ fi
+ fi
+ else
+ printf "An error occured during the compression process. Please see the following log entries for details:\n\n"
+ cat "$logs_folder/$current_run_log_file"
+ fi
+ else
+ echo "File not found, please specify the full path to the file to be compressed."
+ fi
+ else
+ echo "Please use this command format \"--compress \""
+ fi
+}
+
desktop_mode_warning() {
# This function is a generic warning for issues that happen when running in desktop mode.
# Running in desktop mode can be verified with the following command: if [[ ! $XDG_CURRENT_DESKTOP == "gamescope" ]]; then
@@ -803,9 +850,6 @@ citra_init() {
dir_prep "$rdhome/.logs/citra" "/var/data/citra-emu/log"
cp -fv $emuconfigs/citra-qt-config.ini /var/config/citra-emu/qt-config.ini
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
- #TODO: do the same with roms folders after new variables is pushed (check even the others qt-emu)
- #But actually everything is always symlinked to retrodeck/roms so it might be not needed
- #sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
}
rpcs3_init() {
diff --git a/rd-submodules/shared-modules b/rd-submodules/shared-modules
index 3ac77f54..ae5d7192 160000
--- a/rd-submodules/shared-modules
+++ b/rd-submodules/shared-modules
@@ -1 +1 @@
-Subproject commit 3ac77f545ddf0ac581bc89d7b915c23eb18f841b
+Subproject commit ae5d7192c6a37f2c754fd92685a72d514931131a
diff --git a/retrodeck.sh b/retrodeck.sh
index 7222f481..431ede18 100644
--- a/retrodeck.sh
+++ b/retrodeck.sh
@@ -41,24 +41,7 @@ https://retrodeck.net
exit
;;
--compress*)
- read -p "RetroDECK will now attempt to compress your selected game. The original game will still exist and will need to be removed manually after the process completes. Press any key to continue..."
- if [[ ! -z $2 ]]; then
- if [[ -f $2 ]]; then
- current_run_log_file="chd_compression_"$(date +"%Y_%m_%d_%I_%M_%p").log""
- if [[ $(validate_for_chd $2) == "true" ]]; then
- filename_no_path=$(basename $2)
- filename_no_extension=${filename_no_path%.*}
- compress_to_chd $(dirname $(realpath $2))/$(basename $2) $(dirname $(realpath $2))/$filename_no_extension
- else
- printf "An error occured during the compression process. Please see the following log entries for details:\n\n"
- cat $logs_folder/$current_run_log_file
- fi
- else
- echo "File not found, please specify the full path to the file to be compressed."
- fi
- else
- echo "Please use this command format \"--compress \""
- fi
+ cli_compress_file "$2"
exit
;;
--configurator*)
@@ -73,10 +56,10 @@ https://retrodeck.net
read -p "You are about to reset $emulator to default settings. Press 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then
cli_emulator_reset $emulator
- read -p "The process has been completed, press any key to start RetroDECK."
+ read -p "The process has been completed, press Enter key to start RetroDECK."
shift # Continue launch after previous command is finished
else
- read -p "The process has been cancelled, press any key to exit."
+ read -p "The process has been cancelled, press Enter key to exit."
exit
fi
else
@@ -89,22 +72,22 @@ https://retrodeck.net
read -p "Press 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then
tools_init
- read -p "The process has been completed, press any key to start RetroDECK."
+ read -p "The process has been completed, press Enter key to start RetroDECK."
shift # Continue launch after previous command is finished
else
- read -p "The process has been cancelled, press any key to exit."
+ read -p "The process has been cancelled, press Enter key to exit."
exit
fi
;;
--reset-retrodeck*)
- echo "You are about to reset RetroDECK completely."
+ echo "You are about to reset RetroDECK completely!"
read -p "Press 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then
rm -f "$lockfile"
- read -p "The process has been completed, press any key to start the initial RetroDECK setup process."
+ read -p "The process has been completed, press Enter key to start the initial RetroDECK setup process."
shift # Continue launch after previous command is finished
else
- read -p "The process has been cancelled, press any key to exit."
+ read -p "The process has been cancelled, press Enter key to exit."
exit
fi
;;
diff --git a/tools/configurator.sh b/tools/configurator.sh
index 1e9839bc..a7b222df 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -343,21 +343,42 @@ configurator_retroarch_options_dialog() {
}
configurator_compress_single_game_dialog() {
- file_to_compress=$(file_browse "Game to compress")
- if [[ ! -z $file_to_compress ]]; then
- if [[ $(validate_for_chd $file_to_compress) == "true" ]]; then
+ local file=$(file_browse "Game to compress")
+ if [[ ! -z "$file" ]]; then
+ if [[ $(validate_for_chd "$file") == "true" ]]; then
+ local post_compression_cleanup=$(configurator_compression_cleanup_dialog)
+ local filename_no_path=$(basename "$file")
+ local filename_no_extension="${filename_no_path%.*}"
+ local source_file=$(dirname "$(realpath "$file")")"/"$(basename "$file")
+ local dest_file=$(dirname "$(realpath "$file")")"/""$filename_no_extension"
(
- filename_no_path=$(basename $file_to_compress)
- filename_no_extension=${filename_no_path%.*}
- compress_to_chd $(dirname $(realpath $file_to_compress))/$(basename $file_to_compress) $(dirname $(realpath $file_to_compress))/$filename_no_extension
+ echo "# Compressing $filename_no_path, please wait..."
+ compress_to_chd "$source_file" "$dest_file"
+ if [[ $post_compression_cleanup == "true" ]]; then # Remove file(s) if requested
+ if [[ "$file" == *".cue" ]]; then
+ local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" "$file")
+ local file_path=$(dirname "$(realpath "$file")")
+ while IFS= read -r line
+ do
+ echo "# Removing file $line"
+ rm -f "$file_path/$line"
+ done < <(printf '%s\n' "$cue_bin_files")
+ echo "# Removing file $filename_no_path"
+ rm -f "$file"
+ else
+ echo "# Removing file $filename_no_path"
+ rm -f "$file"
+ fi
+ fi
) |
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
- --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
- --title "RetroDECK Configurator Utility - Compression in Progress" \
- --text="Compressing game $filename_no_path, please wait."
+ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
+ --title "RetroDECK Configurator Utility - Compression in Progress"
+ configurator_generic_dialog "The compression process is complete!"
+ configurator_compress_games_dialog
else
configurator_generic_dialog "File type not recognized. Supported file types are .cue, .gdi and .iso"
- configurator_compress_single_game_dialog
+ configurator_compress_games_dialog
fi
else
configurator_generic_dialog "No file selected, returning to main menu"
@@ -365,11 +386,149 @@ configurator_compress_single_game_dialog() {
fi
}
-configurator_compress_games_dialog() {
- # This is currently a placeholder for a dialog where you can compress a single game or multiple at once. Currently only the single game option is available, so is launched by default.
+configurator_compress_multi_game_dialog() {
+ # This dialog will display any games it finds to be compressable, from the systems listed under each compression type in
+ local compression_format=$1
+ local compressable_game=""
+ local compressable_games_list=()
+ local all_compressable_games=()
+ local compressable_systems_list=$(sed -n '/\['"$compression_format"'\]/, /\[/{ /\['"$compression_format"'\]/! { /\[/! p } }' $compression_targets | sed '/^$/d')
- configurator_generic_dialog "This utility will compress a single game into .CHD format.\n\nPlease select the game to be compressed in the next dialog: supported file types are .cue, .iso and .gdi\n\nThe original game files will be untouched and will need to be removed manually."
- configurator_compress_single_game_dialog
+ while IFS= read -r system # Find and validate all games that are able to be compressed with this compression type
+ do
+ if [[ $compression_format == "chd" ]]; then
+ compression_candidates=$(find "$roms_folder/$system" -type f \( -name "*.cue" -o -name "*.iso" -o -name "*.gdi" \) ! -path "*.m3u*")
+ # TODO: Add ZIP file compression search here
+ fi
+ while IFS= read -r game
+ do
+ if [[ $(validate_for_chd "$game") == "true" ]]; then
+ all_compressable_games=("${all_compressable_games[@]}" "$game")
+ compressable_games_list=("${compressable_games_list[@]}" "false" "${game#$roms_folder}" "$game")
+ fi
+ done < <(printf '%s\n' "$compression_candidates")
+ done < <(printf '%s\n' "$compressable_systems_list")
+
+ choice=$(zenity \
+ --list --width=1200 --height=720 \
+ --checklist --hide-column=3 --ok-label="Compress Selected" --extra-button="Compress All" \
+ --separator="," --print-column=3 \
+ --text="Choose which games to compress:" \
+ --column "Compress?" \
+ --column "Game" \
+ --column "Game Full Path" \
+ "${compressable_games_list[@]}")
+
+ local rc=$?
+ if [[ $rc == "0" && ! -z $choice ]]; then # User clicked "Compress Selected" with at least one game selected
+ local post_compression_cleanup=$(configurator_compression_cleanup_dialog)
+ IFS="," read -ra games_to_compress <<< "$choice"
+ (
+ for file in "${games_to_compress[@]}"; do
+ local filename_no_path=$(basename "$file")
+ local filename_no_extension="${filename_no_path%.*}"
+ local source_file=$(dirname "$(realpath "$file")")"/"$(basename "$file")
+ local dest_file=$(dirname "$(realpath "$file")")"/""$filename_no_extension"
+ echo "# Compressing $filename_no_path" # Update Zenity dialog text
+ compress_to_chd "$source_file" "$dest_file"
+ if [[ $post_compression_cleanup == "true" ]]; then # Remove file(s) if requested
+ if [[ "$file" == *".cue" ]]; then
+ local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" "$file")
+ local file_path=$(dirname "$(realpath "$file")")
+ while IFS= read -r line
+ do
+ echo "# Removing file $line"
+ rm -f "$file_path/$line"
+ done < <(printf '%s\n' "$cue_bin_files")
+ echo "# Removing file $filename_no_path"
+ rm -f $(realpath "$file")
+ else
+ echo "# Removing file $filename_no_path"
+ rm -f "$(realpath "$file")"
+ fi
+ fi
+ done
+ ) |
+ zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
+ --title "RetroDECK Configurator Utility - Compression in Progress"
+ else
+ if [[ ! -z $choice ]]; then # User clicked "Compress All"
+ local post_compression_cleanup=$(configurator_compression_cleanup_dialog)
+ (
+ for file in "${all_compressable_games[@]}"; do
+ local filename_no_path=$(basename "$file")
+ local filename_no_extension="${filename_no_path%.*}"
+ local source_file=$(dirname "$(realpath "$file")")"/"$(basename "$file")
+ local dest_file=$(dirname "$(realpath "$file")")"/""$filename_no_extension"
+ echo "# Compressing $filename_no_path" # Update Zenity dialog text
+ compress_to_chd "$source_file" "$dest_file"
+ if [[ $post_compression_cleanup == "true" ]]; then # Remove file(s) if requested
+ if [[ "$file" == *".cue" ]]; then
+ local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" "$file")
+ local file_path=$(dirname "$(realpath "$file")")
+ while IFS= read -r line
+ do
+ echo "# Removing file $line"
+ rm -f "$file_path/$line"
+ done < <(printf '%s\n' "$cue_bin_files")
+ echo "# Removing file $filename_no_path"
+ rm -f $(realpath "$file")
+ else
+ echo "# Removing file $filename_no_path"
+ rm -f $(realpath "$file")
+ fi
+ fi
+ done
+ ) |
+ zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
+ --title "RetroDECK Configurator Utility - Compression in Progress"
+ configurator_generic_dialog "The compression process is complete!"
+ configurator_compress_games_dialog
+ else
+ configurator_compress_games_dialog
+ fi
+ fi
+}
+
+configurator_compression_cleanup_dialog() {
+ zenity --icon-name=net.retrodeck.retrodeck --question --no-wrap --cancel-label="No" --ok-label="Yes" \
+ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
+ --title "RetroDECK Compression Cleanup" \
+ --text="Do you want to remove old files after they are compressed?\n\nClicking \"No\" will leave all files behind which will need to be cleaned up manually and may result in game duplicates showing in the RetroDECK library."
+ local rc=$? # Capture return code, as "Yes" button has no text value
+ if [[ $rc == "0" ]]; then # If user clicked "Yes"
+ echo "true"
+ else # If "No" was clicked
+ echo "false"
+ fi
+}
+
+configurator_compress_games_dialog() {
+ choice=$(zenity --list --title="RetroDECK Configurator Utility - Change Options" --cancel-label="Back" \
+ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
+ --column="Choice" --column="Action" \
+ "Compress Single Game" "Compress a single game into a compatible format" \
+ "Compress Multiple Games - CHD" "Compress one or more games compatible with the CHD format" )
+
+ case $choice in
+
+ "Compress Single Game" )
+ configurator_compress_single_game_dialog
+ ;;
+
+ "Compress Multiple Games - CHD" )
+ configurator_compress_multi_game_dialog "chd"
+ ;;
+
+ # TODO: Add ZIP compression option
+
+ "" ) # No selection made or Back button clicked
+ configurator_welcome_dialog
+ ;;
+
+ esac
}
configurator_check_multifile_game_structure() {
From e55bb2f9b9f111ebfe6a5277be62056f277633f9 Mon Sep 17 00:00:00 2001
From: icenine451 <59938822+icenine451@users.noreply.github.com>
Date: Wed, 15 Mar 2023 19:58:02 -0400
Subject: [PATCH 03/64] New rd_cpnf variables not loaded correctly after update
---
functions.sh | 1 -
post_update.sh | 4 ++--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/functions.sh b/functions.sh
index b17d2716..552044ef 100644
--- a/functions.sh
+++ b/functions.sh
@@ -629,7 +629,6 @@ update_rd_conf() {
deploy_single_patch $rd_defaults $rd_update_patch $rd_conf
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
- source $rd_conf # Load new config file variables
}
conf_write() {
diff --git a/post_update.sh b/post_update.sh
index cc469cec..6626019a 100644
--- a/post_update.sh
+++ b/post_update.sh
@@ -187,7 +187,7 @@ post_update() {
# - Primehack preconfiguration completely redone. "Stop emulation" hotkey set to Start+Select, Xbox and Nintendo keymap profiles were created, Xbox set as default.
# - Duckstation save and state locations were dir_prep'd to the rdhome/save and /state folders, which was not previously done. Much safer now!
# - 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.
primehack_init
@@ -209,6 +209,6 @@ post_update() {
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Finishing Upgrade" \
--text="RetroDECK is finishing the upgrade process, please wait."
-
+ source $rd_conf # Load new config file variables
create_lock
}
\ No newline at end of file
From 47a754662aaa8cfe6936d5fa9bc733febf2248cb Mon Sep 17 00:00:00 2001
From: icenine451 <59938822+icenine451@users.noreply.github.com>
Date: Wed, 15 Mar 2023 20:01:53 -0400
Subject: [PATCH 04/64] dir_prep doesn't translate ~ correctly apparently
---
functions.sh | 2 +-
post_update.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/functions.sh b/functions.sh
index 552044ef..b098379e 100644
--- a/functions.sh
+++ b/functions.sh
@@ -1313,7 +1313,7 @@ finit() {
dir_prep "$themes_folder" "/var/config/emulationstation/.emulationstation/themes"
# PICO-8
- dir_prep "$bios_folder/pico-8" "~/.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 "$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 "$roms_folder/pico8" "$bios_folder/pico-8/carts" # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway)
dir_prep "$bios_folder/pico-8/cdata" "$saves_folder/pico-8" # PICO-8 saves folder
diff --git a/post_update.sh b/post_update.sh
index 6626019a..78d675c0 100644
--- a/post_update.sh
+++ b/post_update.sh
@@ -195,7 +195,7 @@ post_update() {
dir_prep "$rdhome/states/duckstation" "/var/data/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" "~/.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 "$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 "$roms_folder/pico8" "$bios_folder/pico-8/carts" # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway)
dir_prep "$bios_folder/pico-8/cdata" "$saves_folder/pico-8" # PICO-8 saves folder
fi
From 78bfa1e5aa54dca925b4e4f42a9a3ca69bb6c5bd Mon Sep 17 00:00:00 2001
From: icenine451
Date: Thu, 16 Mar 2023 11:14:25 -0400
Subject: [PATCH 05/64] - Fix PICO-8 symlink location - Seperate
Dolphin/Primehack save states - Fix post-update variable checks for new
values
---
functions.sh | 8 ++++----
global.sh | 8 ++++++++
post_update.sh | 11 +++++++++++
retrodeck.sh | 2 ++
4 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/functions.sh b/functions.sh
index b17d2716..196d4fae 100644
--- a/functions.sh
+++ b/functions.sh
@@ -781,7 +781,7 @@ dolphin_init() {
dir_prep "$rdhome/saves/gc/dolphin/USA" "/var/data/dolphin-emu/GC/USA"
dir_prep "$rdhome/saves/gc/dolphin/JAP" "/var/data/dolphin-emu/GC/JAP"
dir_prep "$rdhome/screenshots" "/var/data/dolphin-emu/ScreenShots"
- dir_prep "$rdhome/states" "/var/data/dolphin-emu/StateSaves"
+ dir_prep "$rdhome/states/dolphin" "/var/data/dolphin-emu/StateSaves"
mkdir -pv /var/data/dolphin-emu/Wii/
dir_prep "$rdhome/saves/wii/dolphin" "/var/data/dolphin-emu/Wii"
}
@@ -799,7 +799,7 @@ primehack_init() {
dir_prep "$rdhome/saves/gc/primehack/USA" "/var/data/primehack/GC/USA"
dir_prep "$rdhome/saves/gc/primehack/JAP" "/var/data/primehack/GC/JAP"
dir_prep "$rdhome/screenshots" "/var/data/primehack/ScreenShots"
- dir_prep "$rdhome/states" "/var/data/primehack/StateSaves"
+ dir_prep "$rdhome/states/primehack" "/var/data/primehack/StateSaves"
mkdir -pv /var/data/primehack/Wii/
dir_prep "$rdhome/saves/wii/primehack" "/var/data/primehack/Wii"
}
@@ -1070,7 +1070,7 @@ emulators_post_move() {
dir_prep "$rdhome/saves/gc/dolphin/USA" "/var/data/dolphin-emu/GC/USA"
dir_prep "$rdhome/saves/gc/dolphin/JAP" "/var/data/dolphin-emu/GC/JAP"
dir_prep "$rdhome/screenshots" "/var/data/dolphin-emu/ScreenShots"
- dir_prep "$rdhome/states" "/var/data/dolphin-emu/StateSaves"
+ dir_prep "$rdhome/states/dolphin" "/var/data/dolphin-emu/StateSaves"
dir_prep "$rdhome/saves/wii/dolphin" "/var/data/dolphin-emu/Wii/"
# Primehack section
@@ -1079,7 +1079,7 @@ emulators_post_move() {
dir_prep "$rdhome/saves/gc/primehack/USA" "/var/data/primehack/GC/USA"
dir_prep "$rdhome/saves/gc/primehack/JAP" "/var/data/primehack/GC/JAP"
dir_prep "$rdhome/screenshots" "/var/data/primehack/ScreenShots"
- dir_prep "$rdhome/states" "/var/data/primehack/StateSaves"
+ dir_prep "$rdhome/states/primehack" "/var/data/primehack/StateSaves"
dir_prep "$rdhome/saves/wii/primehack" "/var/data/primehack/Wii/"
# PCSX2 section
diff --git a/global.sh b/global.sh
index 7bfd48fa..f2566fa6 100755
--- a/global.sh
+++ b/global.sh
@@ -54,6 +54,14 @@ pcsx2vmconf="/var/config/PCSX2/inis/PCSX2_vm.ini"
pcsx2qtconf="/var/config/PCSX2/inis/PCSX2.ini"
+# 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"
+
# We moved the lockfile in /var/config/retrodeck in order to solve issue #53 - Remove in a few versions
if [ -f "$HOME/retrodeck/.lock" ]
then
diff --git a/post_update.sh b/post_update.sh
index cc469cec..4a87fbfa 100644
--- a/post_update.sh
+++ b/post_update.sh
@@ -199,6 +199,17 @@ post_update() {
dir_prep "$roms_folder/pico8" "$bios_folder/pico-8/carts" # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway)
dir_prep "$bios_folder/pico-8/cdata" "$saves_folder/pico-8" # PICO-8 saves folder
fi
+ if [[ $prev_version -le "063" ]]; then
+ # In version 0.6.2b, the following changes were made that required config file updates/reset:
+ # - Put Dolphin and Primehack save states in different folders inside $rd_home/states
+ # - Fix symlink to hard-coded PICO-8 config folder (dir_prep doesn't like ~)
+
+ dir_prep "$rdhome/states/dolphin" "/var/data/dolphin-emu/StateSaves"
+ dir_prep "$rdhome/states/primehack" "/var/data/primehack/StateSaves"
+
+ rm -rf "$HOME/~/" # Remove old incorrect location from 0.6.2b
+ 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
+ fi
# The following commands are run every time.
diff --git a/retrodeck.sh b/retrodeck.sh
index 431ede18..862bc05c 100644
--- a/retrodeck.sh
+++ b/retrodeck.sh
@@ -118,6 +118,8 @@ else
finit # Executing First/Force init
fi
+source $rd_conf # Load latest variable values
+
# Check if running in Desktop mode and warn if true, unless desktop_mode_warning=false in retrodeck.cfg
desktop_mode_warning
From 183639a8cd9434341398174a2d621d683b5701a2 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Thu, 16 Mar 2023 11:25:34 -0400
Subject: [PATCH 06/64] Some Configurator wording updates
---
tools/configurator.sh | 29 +++++++++++------------------
1 file changed, 11 insertions(+), 18 deletions(-)
diff --git a/tools/configurator.sh b/tools/configurator.sh
index a7b222df..eed1a93a 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -306,7 +306,7 @@ configurator_retroarch_rewind_dialog() {
zenity --question \
--no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator - Rewind" \
- --text="Rewind is currently disabled, do you want to enable it?\n\nNOTE:\nThis may impact performance expecially on the latest systems."
+ --text="Rewind is currently disabled, do you want to enable it?\n\nNOTE:\nThis may impact performance on some more demanding systems."
if [ $? == 0 ]
then
@@ -323,7 +323,7 @@ configurator_retroarch_options_dialog() {
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
"Change Rewind Setting" "Enable or disable the Rewind function in RetroArch." \
- "Log in to RetroAchivements" "Log into the RetroAchievements service in RetroArch." )
+ "RetroAchievements Login" "Log into the RetroAchievements service in RetroArch." )
case $choice in
@@ -331,7 +331,7 @@ configurator_retroarch_options_dialog() {
configurator_retroarch_rewind_dialog
;;
- "Log in to RetroAchivements" )
+ "RetroAchievements Login" )
configurator_retroachivement_dialog
;;
@@ -787,22 +787,15 @@ configurator_move_dialog() {
}
configurator_welcome_dialog() {
- # Clear the variables
- source=
- destination=
- action=
- setting=
- setting_value=
-
choice=$(zenity --list --title="RetroDECK Configurator Utility" --cancel-label="Quit" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
- "Move Files" "Move files between internal/SD card or to custom locations." \
- "Change RetroArch Options" "Change RetroArch presets, log into RetroAchievements etc." \
- "Change Standalone Emulator Options" "Run emulators standalone to make advanced config changes." \
- "Compress Games" "Compress games to CHD format for systems that support it." \
- "Troubleshooting Tools" "Run RetroDECK troubleshooting tools for common issues." \
- "Reset" "Reset specific parts or all of RetroDECK." )
+ "Move Files" "Move files between internal/SD card or to custom locations" \
+ "RetroArch Presets" "Change RetroArch presets, log into RetroAchievements etc" \
+ "Emulator Options" "Launch and configure each emulators settings (for advanced users)" \
+ "Compress Games" "Compress games to CHD format for systems that support it" \
+ "Troubleshooting Tools" "Run RetroDECK troubleshooting tools for common issues" \
+ "Reset" "Reset specific parts or all of RetroDECK" )
case $choice in
@@ -811,11 +804,11 @@ configurator_welcome_dialog() {
configurator_move_dialog
;;
- "Change RetroArch Options" )
+ "RetroArch Presets" )
configurator_retroarch_options_dialog
;;
- "Change Standalone Emulator Options" )
+ "Emulator Options" )
configurator_power_user_warning_dialog
;;
From 175fbec1dc9c3042c74ad6977ad488b8506bd5b5 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Thu, 16 Mar 2023 16:57:58 -0400
Subject: [PATCH 07/64] Rework Configurator menus
---
tools/configurator.sh | 42 +++++++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/tools/configurator.sh b/tools/configurator.sh
index eed1a93a..5fe3c937 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -11,11 +11,12 @@ source /app/libexec/functions.sh
# Welcome
# - Move RetroDECK
-# - Change RetroArch Options
-# - Enable/Disable Rewind Setting
+# - RetroArch Presets
+# - Change Rewind Setting
+# - Enable/Disable Rewind
# - RetroAchivement Login
# - Login prompt
-# - Change Standalone Emulator Options (Behind one-time power user warning dialog)
+# - Emulator Options (Behind one-time power user warning dialog)
# - Launch RetroArch
# - Launch Citra
# - Launch Dolphin
@@ -27,10 +28,13 @@ source /app/libexec/functions.sh
# - Launch RPCS3
# - Launch XEMU
# - Launch Yuzu
-# - Compress Games
-# - Manual single-game selection
-# - Troubleshooting Tools
+# - Tools and Troubleshooting
# - Multi-file game check
+# - Basic BIOS file check
+# - Advanced BIOS file check
+# - Compress Games
+# - Manual single-game selection
+# - Multi-file compression (CHD)
# - Reset
# - Reset Specific Emulator
# - Reset RetroArch
@@ -218,9 +222,9 @@ configurator_power_user_warning_dialog() {
configurator_power_user_changes_dialog() {
emulator=$(zenity --list \
- --title "RetroDECK Configurator Utility - Power User Options" --cancel-label="Back" \
+ --title "RetroDECK Configurator Utility - Emulator Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
- --text="Which emulator do you want to configure?" \
+ --text="Which emulator do you want to launch?" \
--hide-header \
--column=emulator \
"RetroArch" \
@@ -609,7 +613,8 @@ configurator_troubleshooting_tools_dialog() {
--column="Choice" --column="Action" \
"Multi-file game structure check" "Verify the proper structure of multi-file or multi-disc games" \
"Basic BIOS file check" "Show a list of systems that BIOS files are found for" \
- "Advanced BIOS file check" "Show advanced information about common BIOS files" )
+ "Advanced BIOS file check" "Show advanced information about common BIOS files" \
+ "Compress Games" "Compress games to CHD format for systems that support it" )
case $choice in
@@ -625,6 +630,10 @@ configurator_troubleshooting_tools_dialog() {
configurator_check_bios_files_advanced
;;
+ "Compress Games" )
+ configurator_compress_games_dialog
+ ;;
+
"" ) # No selection made or Back button clicked
configurator_welcome_dialog
;;
@@ -790,16 +799,15 @@ configurator_welcome_dialog() {
choice=$(zenity --list --title="RetroDECK Configurator Utility" --cancel-label="Quit" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
- "Move Files" "Move files between internal/SD card or to custom locations" \
- "RetroArch Presets" "Change RetroArch presets, log into RetroAchievements etc" \
+ "Move RetroDECK" "Move RetroDECK files between internal/SD card or to a custom location" \
+ "RetroArch Presets" "Change RetroArch presets, log into RetroAchievements etc." \
"Emulator Options" "Launch and configure each emulators settings (for advanced users)" \
- "Compress Games" "Compress games to CHD format for systems that support it" \
- "Troubleshooting Tools" "Run RetroDECK troubleshooting tools for common issues" \
+ "Tools and Troubleshooting" "Run RetroDECK troubleshooting tools for common issues" \
"Reset" "Reset specific parts or all of RetroDECK" )
case $choice in
- "Move Files" )
+ "Move RetroDECK" )
configurator_generic_dialog "This option will move the RetroDECK data folder (ROMs, saves, BIOS etc.) to a new location.\n\nPlease choose where to move the RetroDECK data folder."
configurator_move_dialog
;;
@@ -812,11 +820,7 @@ configurator_welcome_dialog() {
configurator_power_user_warning_dialog
;;
- "Compress Games" )
- configurator_compress_games_dialog
- ;;
-
- "Troubleshooting Tools" )
+ "Tools and Troubleshooting" )
configurator_troubleshooting_tools_dialog
;;
From d9fe57750ac2732fb8cee03ba68a830ef06442d2 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Thu, 16 Mar 2023 17:03:11 -0400
Subject: [PATCH 08/64] Update global variables for multi-file compression
---
.../defaults/{ => retrodeck}/retrodeck.cfg | 0
global.sh | 27 ++++++++++---------
2 files changed, 14 insertions(+), 13 deletions(-)
rename emu-configs/defaults/{ => retrodeck}/retrodeck.cfg (100%)
diff --git a/emu-configs/defaults/retrodeck.cfg b/emu-configs/defaults/retrodeck/retrodeck.cfg
similarity index 100%
rename from emu-configs/defaults/retrodeck.cfg
rename to emu-configs/defaults/retrodeck/retrodeck.cfg
diff --git a/global.sh b/global.sh
index f2566fa6..0afd32d1 100755
--- a/global.sh
+++ b/global.sh
@@ -5,19 +5,20 @@
source /app/libexec/functions.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
-emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
-rd_defaults="$emuconfigs/defaults/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
-bios_checklist="/var/config/retrodeck/tools/bios_checklist.cfg" # A config file listing BIOS file information that can be verified
-easter_egg_checklist="/var/config/retrodeck/tools/easter_egg_checklist.cfg" # A config file listing days and times when special splash screens should show up
-splashscreen_dir="/var/config/emulationstation/graphics/extra-splashes" # The default location of extra splash screens
-current_splash_file="/var/config/emulationstation/graphics/splash.svg" # The active splash file that will be shown on boot
-default_splash_file="/var/config/emulationstation/graphics/splash-orig.svg" # The default RetroDECK splash screen
-lockfile="/var/config/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_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
+emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
+rd_defaults="$emuconfigs/defaults/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
+bios_checklist="$emuconfigs/defaults/retrodeck/bios_checklist.cfg" # A config file listing BIOS file information that can be verified
+compression_targets="$emuconfigs/defaults/retrodeck/compression_targets.cfg" # A config file containing supported compression types per system
+easter_egg_checklist="$emuconfigs/defaults/retrodeck/easter_egg_checklist.cfg" # A config file listing days and times when special splash screens should show up
+splashscreen_dir="/var/config/emulationstation/.emulationstation/resources/graphics/extra-splashes" # The default location of extra splash screens
+current_splash_file="/var/config/emulationstation/.emulationstation/resources/graphics/splash.svg" # The active splash file that will be shown on boot
+default_splash_file="/var/config/emulationstation/.emulationstation/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen
+lockfile="/var/config/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)
# Config files for emulators with single config files
From f4050ce7c13afdbbe960ae333689d47d68f1d9c4 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Thu, 16 Mar 2023 17:07:25 -0400
Subject: [PATCH 09/64] Add compression_targets file for multi-file compression
---
.../retrodeck/compression_targets.cfg | 38 +++++++++++++++++++
1 file changed, 38 insertions(+)
create mode 100644 emu-configs/defaults/retrodeck/compression_targets.cfg
diff --git a/emu-configs/defaults/retrodeck/compression_targets.cfg b/emu-configs/defaults/retrodeck/compression_targets.cfg
new file mode 100644
index 00000000..28c1b4d1
--- /dev/null
+++ b/emu-configs/defaults/retrodeck/compression_targets.cfg
@@ -0,0 +1,38 @@
+[chd]
+dreamcast
+psx
+ps2
+[chd-maybe]
+3do
+amiga
+amiga1200
+amiga600
+amigacd32
+cdimono1
+cdtv
+dreamcast
+gamegear
+genesis
+mame-advmame
+mame-mame4all
+mastersystem
+megacd
+megacdjp
+megadrive
+mess
+neogeo
+neogeocd
+neogeocdjp
+pcengine
+pcenginecd
+pcfx
+ps2
+psx
+saturn
+saturnjp
+segacd
+sg-1000
+supergrafx
+tg16
+tg-cd
+[zip]
\ No newline at end of file
From ae57c929bef610c9d36fd4cd170b7c7e2f62b6a7 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Thu, 16 Mar 2023 17:08:47 -0400
Subject: [PATCH 10/64] Move files to be in line with new global vars
---
global.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/global.sh b/global.sh
index 0afd32d1..51bba9c0 100755
--- a/global.sh
+++ b/global.sh
@@ -10,9 +10,9 @@ rd_conf_backup="/var/config/retrodeck/retrodeck.bak"
emuconfigs="/app/retrodeck/emu-configs" # folder with all the default emulator configs
rd_defaults="$emuconfigs/defaults/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
-bios_checklist="$emuconfigs/defaults/retrodeck/bios_checklist.cfg" # A config file listing BIOS file information that can be verified
+bios_checklist="$emuconfigs/defaults/retrodeck/bios_checklist.cfg" # A config file listing BIOS file information that can be verified
compression_targets="$emuconfigs/defaults/retrodeck/compression_targets.cfg" # A config file containing supported compression types per system
-easter_egg_checklist="$emuconfigs/defaults/retrodeck/easter_egg_checklist.cfg" # A config file listing days and times when special splash screens should show up
+easter_egg_checklist="$emuconfigs/defaults/retrodeck/easter_egg_checklist.cfg" # A config file listing days and times when special splash screens should show up
splashscreen_dir="/var/config/emulationstation/.emulationstation/resources/graphics/extra-splashes" # The default location of extra splash screens
current_splash_file="/var/config/emulationstation/.emulationstation/resources/graphics/splash.svg" # The active splash file that will be shown on boot
default_splash_file="/var/config/emulationstation/.emulationstation/resources/graphics/splash-orig.svg" # The default RetroDECK splash screen
From 85f7c6780334737cd8e03fb8fac49350ad5bdd41 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Thu, 16 Mar 2023 17:09:28 -0400
Subject: [PATCH 11/64] Acutally move files now.
---
{tools => emu-configs/defaults/retrodeck}/bios_checklist.cfg | 0
.../defaults/retrodeck}/easter_egg_checklist.cfg | 0
2 files changed, 0 insertions(+), 0 deletions(-)
rename {tools => emu-configs/defaults/retrodeck}/bios_checklist.cfg (100%)
rename {tools => emu-configs/defaults/retrodeck}/easter_egg_checklist.cfg (100%)
diff --git a/tools/bios_checklist.cfg b/emu-configs/defaults/retrodeck/bios_checklist.cfg
similarity index 100%
rename from tools/bios_checklist.cfg
rename to emu-configs/defaults/retrodeck/bios_checklist.cfg
diff --git a/tools/easter_egg_checklist.cfg b/emu-configs/defaults/retrodeck/easter_egg_checklist.cfg
similarity index 100%
rename from tools/easter_egg_checklist.cfg
rename to emu-configs/defaults/retrodeck/easter_egg_checklist.cfg
From 5b9c46d38fec36b3bf1107f3b36ba4bc467c2414 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Fri, 17 Mar 2023 14:41:31 -0400
Subject: [PATCH 12/64] Primehack was overwriting Dolphin again
---
net.retrodeck.retrodeck.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index 0f99e559..121288f3 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -847,8 +847,8 @@ modules:
- install -D primehack-wrapper /app/bin/primehack-wrapper
sources:
- type: git
- url: https://github.com/shiiion/dolphin.git
- commit: efb99ebfd20b1bc16ea3e51fec409c91e354d8c2
+ url: https://github.com/TheDrifter363/primehack.git
+ commit: 6295c695307a67f11ee202b05cbdd7b5c1edae5c
# detects whether dolphin is running in a flatpak sandbox
# and makes it use xdg directories if it is.
# prevents dolphin from attempting to write conf files
From 87c768f411c5d90ca2d6e1f7995dd9975dc27ffd Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Sat, 18 Mar 2023 14:54:32 +0100
Subject: [PATCH 13/64] RA: updated cores SHA, branch fixed
---
net.retrodeck.retrodeck.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index 5e57e67b..f5dbd613 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -78,7 +78,7 @@ modules:
- |
git checkout ${GITHUB_REF_NAME}
mkdir -p ${FLATPAK_DEST}/retrodeck/
- VERSION="0.6.2b"
+ VERSION="cooker-0.6.3b"
if [[ $VERSION == *"cooker"* ]];
then
VERSION="$VERSION-[$(git rev-parse --short HEAD)]"
@@ -417,7 +417,7 @@ modules:
sources:
- type: archive
url: https://buildbot.libretro.com/stable/1.15.0/linux/x86_64/RetroArch_cores.7z
- sha256: 1fdec5c2cbabea4f194ede4a1fb0dd1d17e14e64bf7ef705e3ad763592411073
+ sha256: 2230bc38eaf87406efd0c2b7bdd1cf9e813ba113505600f14a7ef9eb06f8c7c0
# PPSSPP - START
# https://github.com/flathub/org.ppsspp.PPSSPP
@@ -1091,4 +1091,4 @@ modules:
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK.git
- branch: main
+ branch: cooker-0.6.3b
From 55afeaf3a5b071b4d99175886a8847d11aa28789 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Sun, 19 Mar 2023 08:54:43 +0000
Subject: [PATCH 14/64] WF: removed mount unstucker, let's see if we need this
again.
---
.github/workflows/cooker-selfhosted.yml | 8 +++----
.github/workflows/main-selfhosted.yml | 30 ++++++++++++++++---------
2 files changed, 23 insertions(+), 15 deletions(-)
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index c6bc850f..dce82a2a 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -17,9 +17,9 @@ jobs:
runs-on: self-hosted
steps:
- - name: Remove stuck mounts
- run: sudo umount -f /home/administrator/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
- continue-on-error: true
+ # - name: Remove stuck mounts
+ # run: sudo umount -f /home/administrator/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
+ # continue-on-error: true
- name: Generate build ID
id: generating_buildid
@@ -64,7 +64,7 @@ jobs:
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
- tag: "${{ steps.generating_buildid.outputs.build-id }}"
+ tag: "${GITHUB_REF##*/}-${{ steps.generating_buildid.outputs.build-id }}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml
index 29253348..7b5c0843 100644
--- a/.github/workflows/main-selfhosted.yml
+++ b/.github/workflows/main-selfhosted.yml
@@ -17,9 +17,9 @@ jobs:
runs-on: self-hosted
steps:
- - name: Remove stuck mounts
- run: sudo umount -f /home/administrator/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
- continue-on-error: true
+ # - name: Remove stuck mounts
+ # run: sudo umount -f /home/administrator/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
+ # continue-on-error: true
- name: Generate build ID
id: generating_buildid
@@ -32,7 +32,7 @@ jobs:
git pull
git submodule init
git submodule update
- sudo apt install -y flatpak flatpak-builder p7zip-full
+ sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y --noninteractive \
org.kde.Sdk//6.3 \
@@ -59,19 +59,27 @@ jobs:
run: |
flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck
+ - name: Getting version info
+ id: version
+ run: |
+ appdata="https://raw.githubusercontent.com/XargonWan/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
+ REL_VER=$(curl -s $appdata | xmlstarlet sel -t -v "//release/@version" | head -1)
+ DES="$(curl -s $appdata | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
+ echo "REL_VER=$REL_VER" >> $GITHUB_ENV
+ echo -e "# Release Notes\n" >> "body.md"
+ echo "$DES" >> "body.md"
+
- name: Publish the flatpak in a new release
uses: ncipollo/release-action@v1
+ env:
+ REL_VER: ${{ env.REL_VER }}
with:
- tag: "${{ steps.generating_buildid.outputs.build-id }}"
- body: |
- # Release Notes
-
- ( Write release notes here )
-
+ tag: ${{ env.REL_VER }}
+ name: "RetroDECK v${{ env.REL_VER }}"
+ bodyFile: "body.md"
artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
prerelease: true
- draft: true
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK
continue-on-error: true
From d3c2de3f739a2bbd806655b322e14a4b831506aa Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Sun, 19 Mar 2023 08:55:46 +0000
Subject: [PATCH 15/64] WF: removed mount unstucker, let's see if we need this
again.
---
rd-submodules/retroarch | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch
index 0b1cfb79..717b7809 160000
--- a/rd-submodules/retroarch
+++ b/rd-submodules/retroarch
@@ -1 +1 @@
-Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409
+Subproject commit 717b78093797270877ec416e58082f1c71d435d8
From 57e4afd572444a32f298ef60c9cc4135ba6f0862 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Sun, 19 Mar 2023 09:55:18 +0000
Subject: [PATCH 16/64] WF: added bzip2
---
.github/workflows/cooker-selfhosted.yml | 2 +-
.github/workflows/main-selfhosted.yml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index dce82a2a..ae699c6c 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -32,7 +32,7 @@ jobs:
git pull
git submodule init
git submodule update
- sudo apt install -y flatpak flatpak-builder p7zip-full
+ sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y --noninteractive \
org.kde.Sdk//6.3 \
diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml
index 7b5c0843..f3b917e1 100644
--- a/.github/workflows/main-selfhosted.yml
+++ b/.github/workflows/main-selfhosted.yml
@@ -32,7 +32,7 @@ jobs:
git pull
git submodule init
git submodule update
- sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet
+ sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y --noninteractive \
org.kde.Sdk//6.3 \
From 7e163efd65b0719eb8e9b32b9aa94d88f9155c9f Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Sun, 19 Mar 2023 12:29:35 +0000
Subject: [PATCH 17/64] DOLPHIN: using ssh for cloning
---
net.retrodeck.retrodeck.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index f5dbd613..9b610c5c 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -628,8 +628,8 @@ modules:
- sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg
sources:
- type: git
- #url: ssh://git@github.com/dolphin-emu/dolphin.git
- url: https://github.com/dolphin-emu/dolphin.git
+ url: ssh://git@github.com/dolphin-emu/dolphin.git
+ #url: https://github.com/dolphin-emu/dolphin.git
commit: 46b99671d9158e0ca840c1d8ef249db0f321ced7
x-checker-data:
type: json
From 7be405d2f803861a665583e3232693ca7517e7d8 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Sun, 19 Mar 2023 12:31:42 +0000
Subject: [PATCH 18/64] DOLPHIN: using ssh for cloning [skip ci]
---
net.retrodeck.retrodeck.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index 9b610c5c..c3000123 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -628,6 +628,8 @@ modules:
- sed -i -e 's/"2048"/"512"/g' /app/share/icons/hicolor/scalable/apps/dolphin-emu.svg
sources:
- type: git
+ # Sometimes Dolphin or its submodules clone are failing in https so it must done in ssh
+ # fatal: remote transport reported error
url: ssh://git@github.com/dolphin-emu/dolphin.git
#url: https://github.com/dolphin-emu/dolphin.git
commit: 46b99671d9158e0ca840c1d8ef249db0f321ced7
From 5e4b009a580528939c5b4f593037bf83e10abb20 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Sun, 19 Mar 2023 12:54:33 +0000
Subject: [PATCH 19/64] DOLPHIN: restored https
---
net.retrodeck.retrodeck.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index c3000123..af12b23c 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -630,8 +630,8 @@ modules:
- type: git
# Sometimes Dolphin or its submodules clone are failing in https so it must done in ssh
# fatal: remote transport reported error
- url: ssh://git@github.com/dolphin-emu/dolphin.git
- #url: https://github.com/dolphin-emu/dolphin.git
+ # url: ssh://git@github.com/dolphin-emu/dolphin.git
+ url: https://github.com/dolphin-emu/dolphin.git
commit: 46b99671d9158e0ca840c1d8ef249db0f321ced7
x-checker-data:
type: json
From 1a38051b5331957b0d69a4a113cf1877a32b6e6c Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 16:12:23 +0000
Subject: [PATCH 20/64] Pipelines: restored old tag in cooker-seflhosted
---
.github/workflows/cooker-selfhosted.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index ae699c6c..a9590ed7 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -64,7 +64,7 @@ jobs:
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
- tag: "${GITHUB_REF##*/}-${{ steps.generating_buildid.outputs.build-id }}"
+ tag: "${{ steps.generating_buildid.outputs.build-id }}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
From 59ca9f1aa7e932f3e53dd94cfaf36f63807bbfe3 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 16:18:19 +0000
Subject: [PATCH 21/64] [TEST] Pipelines: restored old tag in cooker-seflhosted
---
.github/workflows/cooker-selfhosted.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index a9590ed7..f79641c3 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -64,7 +64,7 @@ jobs:
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
- tag: "${{ steps.generating_buildid.outputs.build-id }}"
+ tag: "${{ basename(github.ref) }}-${{ steps.generating_buildid.outputs.build-id }}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
From 9c738ab5a40f9e1bf480c40e49f9feaf8032bec2 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 16:19:17 +0000
Subject: [PATCH 22/64] [REVERT] Pipelines: restored old tag in
cooker-seflhosted
---
.github/workflows/cooker-selfhosted.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index f79641c3..a9590ed7 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -64,7 +64,7 @@ jobs:
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
- tag: "${{ basename(github.ref) }}-${{ steps.generating_buildid.outputs.build-id }}"
+ tag: "${{ steps.generating_buildid.outputs.build-id }}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
From d364a34f4bd154104e325ed0d133da68aa907074 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 16:25:03 +0000
Subject: [PATCH 23/64] [TEST] Pipeline: testing new tag variable
---
.github/workflows/cooker-selfhosted.yml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index a9590ed7..d5134118 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -61,10 +61,13 @@ jobs:
run: |
flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck
+ - name: Set environment variable with current branch name
+ run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
+
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
- tag: "${{ steps.generating_buildid.outputs.build-id }}"
+ tag: "${{ env.GITHUB_REF_SLUG }}-${{ steps.generating_buildid.outputs.build-id }}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
From c16900b1c39ca5c54fd64d582c4b467b33761b0a Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 16:28:39 +0000
Subject: [PATCH 24/64] [TEST] Pipeline: testing new tag variable
---
.../workflows/[TEST] cooker-selfhosted.yml | 44 +++++++++++++++++++
.github/workflows/cooker-selfhosted.yml | 7 +--
2 files changed, 46 insertions(+), 5 deletions(-)
create mode 100644 .github/workflows/[TEST] cooker-selfhosted.yml
diff --git a/.github/workflows/[TEST] cooker-selfhosted.yml b/.github/workflows/[TEST] cooker-selfhosted.yml
new file mode 100644
index 00000000..f0c4f57b
--- /dev/null
+++ b/.github/workflows/[TEST] cooker-selfhosted.yml
@@ -0,0 +1,44 @@
+name: cooker-selfhosted
+
+on:
+ push:
+ branches:
+ - cooker*
+ pull_request:
+ branches:
+ - cooker*
+
+ workflow_dispatch:
+
+
+jobs:
+
+ Building_RetroDECK:
+ runs-on: ubuntu-latest
+ steps:
+
+ - name: Generate build ID
+ id: generating_buildid
+ run: echo "##[set-output name=build-id;]$(echo "$( git rev-parse --short HEAD )")"
+
+ - uses: actions/checkout@v3
+
+ - name: Set environment variable with current branch name
+ run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
+
+ - name: Publish the flatpak in a new cooker release
+ uses: ncipollo/release-action@v1
+ with:
+ tag: "${{ env.GITHUB_REF_SLUG }}-${{ steps.generating_buildid.outputs.build-id }}"
+ body: |
+ # Release Notes (Cooker)
+ This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
+
+ Cooker channel is provided for the community to test fixes and explore new functionality.
+ Please DO NOT open issues or ask support on this build.
+
+ allowUpdates: true
+ draft: true
+ token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
+ repo: RetroDECK-cooker
+ continue-on-error: true
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index d5134118..acbfe8df 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -61,13 +61,10 @@ jobs:
run: |
flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck
- - name: Set environment variable with current branch name
- run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
-
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
- tag: "${{ env.GITHUB_REF_SLUG }}-${{ steps.generating_buildid.outputs.build-id }}"
+ tag: "${{ steps.generating_buildid.outputs.build-id }}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
@@ -89,4 +86,4 @@ jobs:
with:
name: retrodeck-flatpak
path: RetroDECK.flatpak
- continue-on-error: true
+ continue-on-error: true
\ No newline at end of file
From ee4740fa0daf0ac93ed3d94550450ed2ff62e634 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 16:30:59 +0000
Subject: [PATCH 25/64] [TEST] Pipeline: testing new tag variable
---
.github/workflows/[TEST] cooker-selfhosted.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/[TEST] cooker-selfhosted.yml b/.github/workflows/[TEST] cooker-selfhosted.yml
index f0c4f57b..d4e9290c 100644
--- a/.github/workflows/[TEST] cooker-selfhosted.yml
+++ b/.github/workflows/[TEST] cooker-selfhosted.yml
@@ -1,4 +1,4 @@
-name: cooker-selfhosted
+name: test-version-tag
on:
push:
From 3f422265d87fc5274759f9d81e1438781a4e315c Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 16:33:15 +0000
Subject: [PATCH 26/64] Pipeline: cooker-seflhosted updated version tag
---
.../workflows/[TEST] cooker-selfhosted.yml | 44 -------------------
.github/workflows/cooker-selfhosted.yml | 5 ++-
2 files changed, 4 insertions(+), 45 deletions(-)
delete mode 100644 .github/workflows/[TEST] cooker-selfhosted.yml
diff --git a/.github/workflows/[TEST] cooker-selfhosted.yml b/.github/workflows/[TEST] cooker-selfhosted.yml
deleted file mode 100644
index d4e9290c..00000000
--- a/.github/workflows/[TEST] cooker-selfhosted.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-name: test-version-tag
-
-on:
- push:
- branches:
- - cooker*
- pull_request:
- branches:
- - cooker*
-
- workflow_dispatch:
-
-
-jobs:
-
- Building_RetroDECK:
- runs-on: ubuntu-latest
- steps:
-
- - name: Generate build ID
- id: generating_buildid
- run: echo "##[set-output name=build-id;]$(echo "$( git rev-parse --short HEAD )")"
-
- - uses: actions/checkout@v3
-
- - name: Set environment variable with current branch name
- run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
-
- - name: Publish the flatpak in a new cooker release
- uses: ncipollo/release-action@v1
- with:
- tag: "${{ env.GITHUB_REF_SLUG }}-${{ steps.generating_buildid.outputs.build-id }}"
- body: |
- # Release Notes (Cooker)
- This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
-
- Cooker channel is provided for the community to test fixes and explore new functionality.
- Please DO NOT open issues or ask support on this build.
-
- allowUpdates: true
- draft: true
- token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
- repo: RetroDECK-cooker
- continue-on-error: true
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index acbfe8df..4dc6a128 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -61,10 +61,13 @@ jobs:
run: |
flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck
+ - name: Set environment variable with current branch name
+ run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
+
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
- tag: "${{ steps.generating_buildid.outputs.build-id }}"
+ tag: "${{ env.GITHUB_REF_SLUG }}-${{ steps.generating_buildid.outputs.build-id }}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
From 03149a33079e402fa66916d91a921c57caa5dda6 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Mon, 20 Mar 2023 14:55:00 -0400
Subject: [PATCH 27/64] Fix broken Configurator menu item
---
tools/configurator.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/configurator.sh b/tools/configurator.sh
index 5fe3c937..44263495 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -340,7 +340,7 @@ configurator_retroarch_options_dialog() {
;;
"" ) # No selection made or Back button clicked
- configurator_options_dialog
+ configurator_welcome_dialog
;;
esac
From 8ce300527ce2c1cecc5692768b950c6fe1a0475b Mon Sep 17 00:00:00 2001
From: icenine451
Date: Mon, 20 Mar 2023 16:46:09 -0400
Subject: [PATCH 28/64] Make reset function more robust by also deleting the
retrodeck.cfg file.
---
rd-submodules/retroarch | 2 +-
retrodeck.sh | 7 ++++---
tools/configurator.sh | 3 ++-
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch
index 717b7809..0b1cfb79 160000
--- a/rd-submodules/retroarch
+++ b/rd-submodules/retroarch
@@ -1 +1 @@
-Subproject commit 717b78093797270877ec416e58082f1c71d435d8
+Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409
diff --git a/retrodeck.sh b/retrodeck.sh
index 862bc05c..1db93be5 100644
--- a/retrodeck.sh
+++ b/retrodeck.sh
@@ -53,7 +53,7 @@ https://retrodeck.net
echo "Available options are: retroarch citra dolphin duckstation melonds pcsx2 ppsspp primehack rpcs3 xemu yuzu all-emulators"
read -p "Please enter the emulator you would like to reset: " emulator
if [[ "$emulator" =~ ^(retroarch|citra|dolphin|duckstation|melonds|pcsx2|ppsspp|primehack|rpcs3|xemu|yuzu|all-emulators)$ ]]; then
- read -p "You are about to reset $emulator to default settings. Press 'y' to continue, 'n' to stop: " response
+ read -p "You are about to reset $emulator to default settings. Enter 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then
cli_emulator_reset $emulator
read -p "The process has been completed, press Enter key to start RetroDECK."
@@ -69,7 +69,7 @@ https://retrodeck.net
;;
--reset-tools*)
echo "You are about to reset the RetroDECK tools."
- read -p "Press 'y' to continue, 'n' to stop: " response
+ read -p "Enter 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then
tools_init
read -p "The process has been completed, press Enter key to start RetroDECK."
@@ -81,9 +81,10 @@ https://retrodeck.net
;;
--reset-retrodeck*)
echo "You are about to reset RetroDECK completely!"
- read -p "Press 'y' to continue, 'n' to stop: " response
+ read -p "Enter 'y' to continue, 'n' to stop: " response
if [[ $response == [yY] ]]; then
rm -f "$lockfile"
+ rm -f "$rd_conf"
read -p "The process has been completed, press Enter key to start the initial RetroDECK setup process."
shift # Continue launch after previous command is finished
else
diff --git a/tools/configurator.sh b/tools/configurator.sh
index 44263495..9e90a15e 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -165,8 +165,9 @@ configurator_reset_dialog() {
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - Reset RetroDECK" \
- --text="You are resetting RetroDECK to its default state.\n\nAfter the process is complete you will need to exit RetroDECK and run it again, where you will go through the initial setup process again."
+ --text="You are resetting RetroDECK to its default state.\n\nAfter the process is complete you will need to exit RetroDECK and run it again, where you will go through the initial setup process."
rm -f "$lockfile"
+ rm -f "$rd_conf"
configurator_process_complete_dialog "resetting RetroDECK"
;;
From a6c9f646cec16befbd4a50344fbcf207d84a67ee Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 21:41:10 +0000
Subject: [PATCH 29/64] YUZU: config redone (missing controls and hotkeys)
---
emu-configs/yuzu/qt-config.ini | 1087 ++++++++++++++++----------------
1 file changed, 557 insertions(+), 530 deletions(-)
diff --git a/emu-configs/yuzu/qt-config.ini b/emu-configs/yuzu/qt-config.ini
index 28d4ca15..0d9ca0b3 100644
--- a/emu-configs/yuzu/qt-config.ini
+++ b/emu-configs/yuzu/qt-config.ini
@@ -9,7 +9,6 @@ volume=100
volume\default=true
[Controls]
-="======"
controller_navigation=true
controller_navigation\default=true
debug_pad_button_a="toggle:0,code:67,engine:keyboard"
@@ -64,6 +63,10 @@ enable_accurate_vibrations=false
enable_accurate_vibrations\default=true
enable_ir_sensor=false
enable_ir_sensor\default=true
+enable_joycon_driver=true
+enable_joycon_driver\default=true
+enable_procon_driver=false
+enable_procon_driver\default=true
enable_raw_input=false
enable_raw_input\default=true
enable_ring_controller=true
@@ -74,11 +77,11 @@ ir_sensor_device=auto
ir_sensor_device\default=true
keyboard_enabled=false
keyboard_enabled\default=true
-motion_enabled=false
-motion_enabled\default=false
+motion_enabled=true
+motion_enabled\default=true
mouse_enabled=false
mouse_enabled\default=true
-mouse_panning_sensitivity=10
+mouse_panning_sensitivity=50
mouse_panning_sensitivity\default=true
pause_tas_on_load=true
pause_tas_on_load\default=true
@@ -86,60 +89,60 @@ player_0_body_color_left=4278893030
player_0_body_color_left\default=false
player_0_body_color_right=4294917160
player_0_body_color_right\default=false
-player_0_button_a="button:1,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_a\default=false
-player_0_button_b="button:0,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_b\default=false
+player_0_button_a="toggle:0,code:67,engine:keyboard"
+player_0_button_a\default=true
+player_0_button_b="toggle:0,code:88,engine:keyboard"
+player_0_button_b\default=true
player_0_button_color_left=4278197790
player_0_button_color_left\default=false
player_0_button_color_right=4280158730
player_0_button_color_right\default=false
-player_0_button_ddown="hat:0,direction:down,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_ddown\default=false
-player_0_button_dleft="hat:0,direction:left,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_dleft\default=false
-player_0_button_dright="hat:0,direction:right,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_dright\default=false
-player_0_button_dup="hat:0,direction:up,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_dup\default=false
-player_0_button_home="button:8,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_home\default=false
-player_0_button_l="button:4,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_l\default=false
-player_0_button_lstick="button:9,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_lstick\default=false
-player_0_button_minus="button:6,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_minus\default=false
-player_0_button_plus="button:7,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_plus\default=false
-player_0_button_r="button:5,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_r\default=false
-player_0_button_rstick="button:10,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_rstick\default=false
-player_0_button_screenshot=[empty]
-player_0_button_screenshot\default=false
-player_0_button_sl="button:4,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_sl\default=false
-player_0_button_sr="button:5,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_sr\default=false
-player_0_button_x="button:3,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_x\default=false
-player_0_button_y="button:2,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_button_y\default=false
-player_0_button_zl="threshold:0.500000,axis:2,guid:03000000de280000ff11000001000000,port:0,invert:+,engine:sdl"
-player_0_button_zl\default=false
-player_0_button_zr="threshold:0.500000,axis:5,guid:03000000de280000ff11000001000000,port:0,invert:+,engine:sdl"
-player_0_button_zr\default=false
+player_0_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_0_button_ddown\default=true
+player_0_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_0_button_dleft\default=true
+player_0_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_0_button_dright\default=true
+player_0_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_0_button_dup\default=true
+player_0_button_home="toggle:0,code:0,engine:keyboard"
+player_0_button_home\default=true
+player_0_button_l="toggle:0,code:81,engine:keyboard"
+player_0_button_l\default=true
+player_0_button_lstick="toggle:0,code:70,engine:keyboard"
+player_0_button_lstick\default=true
+player_0_button_minus="toggle:0,code:78,engine:keyboard"
+player_0_button_minus\default=true
+player_0_button_plus="toggle:0,code:77,engine:keyboard"
+player_0_button_plus\default=true
+player_0_button_r="toggle:0,code:69,engine:keyboard"
+player_0_button_r\default=true
+player_0_button_rstick="toggle:0,code:71,engine:keyboard"
+player_0_button_rstick\default=true
+player_0_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_0_button_screenshot\default=true
+player_0_button_sl="toggle:0,code:81,engine:keyboard"
+player_0_button_sl\default=true
+player_0_button_sr="toggle:0,code:69,engine:keyboard"
+player_0_button_sr\default=true
+player_0_button_x="toggle:0,code:86,engine:keyboard"
+player_0_button_x\default=true
+player_0_button_y="toggle:0,code:90,engine:keyboard"
+player_0_button_y\default=true
+player_0_button_zl="toggle:0,code:82,engine:keyboard"
+player_0_button_zl\default=true
+player_0_button_zr="toggle:0,code:84,engine:keyboard"
+player_0_button_zr\default=true
player_0_connected=true
player_0_connected\default=true
-player_0_lstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:0.000000,axis_y:1,offset_x:-0.000000,axis_x:0,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_lstick\default=false
-player_0_motionleft=[empty]
-player_0_motionleft\default=false
-player_0_motionright=[empty]
-player_0_motionright\default=false
-player_0_rstick="deadzone:0.150000,invert_y:+,invert_x:+,offset_y:-0.063723,axis_y:4,offset_x:-0.024476,axis_x:3,guid:03000000de280000ff11000001000000,port:0,engine:sdl"
-player_0_rstick\default=false
+player_0_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_0_lstick\default=true
+player_0_motionleft="toggle:0,code:55,engine:keyboard"
+player_0_motionleft\default=true
+player_0_motionright="toggle:0,code:56,engine:keyboard"
+player_0_motionright\default=true
+player_0_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_0_rstick\default=true
player_0_type=0
player_0_type\default=true
player_0_vibration_enabled=true
@@ -150,60 +153,60 @@ player_1_body_color_left=4278893030
player_1_body_color_left\default=false
player_1_body_color_right=4294917160
player_1_body_color_right\default=false
-player_1_button_a="engine:keyboard,code:67,toggle:0"
-player_1_button_a\default=false
-player_1_button_b="engine:keyboard,code:88,toggle:0"
-player_1_button_b\default=false
+player_1_button_a="toggle:0,code:67,engine:keyboard"
+player_1_button_a\default=true
+player_1_button_b="toggle:0,code:88,engine:keyboard"
+player_1_button_b\default=true
player_1_button_color_left=4278197790
player_1_button_color_left\default=false
player_1_button_color_right=4280158730
player_1_button_color_right\default=false
-player_1_button_ddown="engine:keyboard,code:16777237,toggle:0"
-player_1_button_ddown\default=false
-player_1_button_dleft="engine:keyboard,code:16777234,toggle:0"
-player_1_button_dleft\default=false
-player_1_button_dright="engine:keyboard,code:16777236,toggle:0"
-player_1_button_dright\default=false
-player_1_button_dup="engine:keyboard,code:16777235,toggle:0"
-player_1_button_dup\default=false
-player_1_button_home="engine:keyboard,code:0,toggle:0"
-player_1_button_home\default=false
-player_1_button_l="engine:keyboard,code:81,toggle:0"
-player_1_button_l\default=false
-player_1_button_lstick="engine:keyboard,code:70,toggle:0"
-player_1_button_lstick\default=false
-player_1_button_minus="engine:keyboard,code:78,toggle:0"
-player_1_button_minus\default=false
-player_1_button_plus="engine:keyboard,code:77,toggle:0"
-player_1_button_plus\default=false
-player_1_button_r="engine:keyboard,code:69,toggle:0"
-player_1_button_r\default=false
-player_1_button_rstick="engine:keyboard,code:71,toggle:0"
-player_1_button_rstick\default=false
-player_1_button_screenshot="engine:keyboard,code:0,toggle:0"
-player_1_button_screenshot\default=false
-player_1_button_sl="engine:keyboard,code:81,toggle:0"
-player_1_button_sl\default=false
-player_1_button_sr="engine:keyboard,code:69,toggle:0"
-player_1_button_sr\default=false
-player_1_button_x="engine:keyboard,code:86,toggle:0"
-player_1_button_x\default=false
-player_1_button_y="engine:keyboard,code:90,toggle:0"
-player_1_button_y\default=false
-player_1_button_zl="engine:keyboard,code:82,toggle:0"
-player_1_button_zl\default=false
-player_1_button_zr="engine:keyboard,code:84,toggle:0"
-player_1_button_zr\default=false
+player_1_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_1_button_ddown\default=true
+player_1_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_1_button_dleft\default=true
+player_1_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_1_button_dright\default=true
+player_1_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_1_button_dup\default=true
+player_1_button_home="toggle:0,code:0,engine:keyboard"
+player_1_button_home\default=true
+player_1_button_l="toggle:0,code:81,engine:keyboard"
+player_1_button_l\default=true
+player_1_button_lstick="toggle:0,code:70,engine:keyboard"
+player_1_button_lstick\default=true
+player_1_button_minus="toggle:0,code:78,engine:keyboard"
+player_1_button_minus\default=true
+player_1_button_plus="toggle:0,code:77,engine:keyboard"
+player_1_button_plus\default=true
+player_1_button_r="toggle:0,code:69,engine:keyboard"
+player_1_button_r\default=true
+player_1_button_rstick="toggle:0,code:71,engine:keyboard"
+player_1_button_rstick\default=true
+player_1_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_1_button_screenshot\default=true
+player_1_button_sl="toggle:0,code:81,engine:keyboard"
+player_1_button_sl\default=true
+player_1_button_sr="toggle:0,code:69,engine:keyboard"
+player_1_button_sr\default=true
+player_1_button_x="toggle:0,code:86,engine:keyboard"
+player_1_button_x\default=true
+player_1_button_y="toggle:0,code:90,engine:keyboard"
+player_1_button_y\default=true
+player_1_button_zl="toggle:0,code:82,engine:keyboard"
+player_1_button_zl\default=true
+player_1_button_zr="toggle:0,code:84,engine:keyboard"
+player_1_button_zr\default=true
player_1_connected=false
player_1_connected\default=true
-player_1_lstick="engine:analog_from_button,up:toggle$00$1code$087$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,modifier:toggle$00$1code$016777248$1engine$0keyboard,modifier_scale:0.500000"
-player_1_lstick\default=false
-player_1_motionleft="engine:keyboard,code:55,toggle:0"
-player_1_motionleft\default=false
-player_1_motionright="engine:keyboard,code:56,toggle:0"
-player_1_motionright\default=false
-player_1_rstick="engine:analog_from_button,up:toggle$00$1code$073$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,modifier:toggle$00$1code$00$1engine$0keyboard,modifier_scale:0.500000"
-player_1_rstick\default=false
+player_1_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_1_lstick\default=true
+player_1_motionleft="toggle:0,code:55,engine:keyboard"
+player_1_motionleft\default=true
+player_1_motionright="toggle:0,code:56,engine:keyboard"
+player_1_motionright\default=true
+player_1_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_1_rstick\default=true
player_1_type=0
player_1_type\default=true
player_1_vibration_enabled=true
@@ -214,60 +217,60 @@ player_2_body_color_left=4278893030
player_2_body_color_left\default=false
player_2_body_color_right=4294917160
player_2_body_color_right\default=false
-player_2_button_a="engine:keyboard,code:67,toggle:0"
-player_2_button_a\default=false
-player_2_button_b="engine:keyboard,code:88,toggle:0"
-player_2_button_b\default=false
+player_2_button_a="toggle:0,code:67,engine:keyboard"
+player_2_button_a\default=true
+player_2_button_b="toggle:0,code:88,engine:keyboard"
+player_2_button_b\default=true
player_2_button_color_left=4278197790
player_2_button_color_left\default=false
player_2_button_color_right=4280158730
player_2_button_color_right\default=false
-player_2_button_ddown="engine:keyboard,code:16777237,toggle:0"
-player_2_button_ddown\default=false
-player_2_button_dleft="engine:keyboard,code:16777234,toggle:0"
-player_2_button_dleft\default=false
-player_2_button_dright="engine:keyboard,code:16777236,toggle:0"
-player_2_button_dright\default=false
-player_2_button_dup="engine:keyboard,code:16777235,toggle:0"
-player_2_button_dup\default=false
-player_2_button_home="engine:keyboard,code:0,toggle:0"
-player_2_button_home\default=false
-player_2_button_l="engine:keyboard,code:81,toggle:0"
-player_2_button_l\default=false
-player_2_button_lstick="engine:keyboard,code:70,toggle:0"
-player_2_button_lstick\default=false
-player_2_button_minus="engine:keyboard,code:78,toggle:0"
-player_2_button_minus\default=false
-player_2_button_plus="engine:keyboard,code:77,toggle:0"
-player_2_button_plus\default=false
-player_2_button_r="engine:keyboard,code:69,toggle:0"
-player_2_button_r\default=false
-player_2_button_rstick="engine:keyboard,code:71,toggle:0"
-player_2_button_rstick\default=false
-player_2_button_screenshot="engine:keyboard,code:0,toggle:0"
-player_2_button_screenshot\default=false
-player_2_button_sl="engine:keyboard,code:81,toggle:0"
-player_2_button_sl\default=false
-player_2_button_sr="engine:keyboard,code:69,toggle:0"
-player_2_button_sr\default=false
-player_2_button_x="engine:keyboard,code:86,toggle:0"
-player_2_button_x\default=false
-player_2_button_y="engine:keyboard,code:90,toggle:0"
-player_2_button_y\default=false
-player_2_button_zl="engine:keyboard,code:82,toggle:0"
-player_2_button_zl\default=false
-player_2_button_zr="engine:keyboard,code:84,toggle:0"
-player_2_button_zr\default=false
+player_2_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_2_button_ddown\default=true
+player_2_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_2_button_dleft\default=true
+player_2_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_2_button_dright\default=true
+player_2_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_2_button_dup\default=true
+player_2_button_home="toggle:0,code:0,engine:keyboard"
+player_2_button_home\default=true
+player_2_button_l="toggle:0,code:81,engine:keyboard"
+player_2_button_l\default=true
+player_2_button_lstick="toggle:0,code:70,engine:keyboard"
+player_2_button_lstick\default=true
+player_2_button_minus="toggle:0,code:78,engine:keyboard"
+player_2_button_minus\default=true
+player_2_button_plus="toggle:0,code:77,engine:keyboard"
+player_2_button_plus\default=true
+player_2_button_r="toggle:0,code:69,engine:keyboard"
+player_2_button_r\default=true
+player_2_button_rstick="toggle:0,code:71,engine:keyboard"
+player_2_button_rstick\default=true
+player_2_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_2_button_screenshot\default=true
+player_2_button_sl="toggle:0,code:81,engine:keyboard"
+player_2_button_sl\default=true
+player_2_button_sr="toggle:0,code:69,engine:keyboard"
+player_2_button_sr\default=true
+player_2_button_x="toggle:0,code:86,engine:keyboard"
+player_2_button_x\default=true
+player_2_button_y="toggle:0,code:90,engine:keyboard"
+player_2_button_y\default=true
+player_2_button_zl="toggle:0,code:82,engine:keyboard"
+player_2_button_zl\default=true
+player_2_button_zr="toggle:0,code:84,engine:keyboard"
+player_2_button_zr\default=true
player_2_connected=false
player_2_connected\default=true
-player_2_lstick="engine:analog_from_button,up:toggle$00$1code$087$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,modifier:toggle$00$1code$016777248$1engine$0keyboard,modifier_scale:0.500000"
-player_2_lstick\default=false
-player_2_motionleft="engine:keyboard,code:55,toggle:0"
-player_2_motionleft\default=false
-player_2_motionright="engine:keyboard,code:56,toggle:0"
-player_2_motionright\default=false
-player_2_rstick="engine:analog_from_button,up:toggle$00$1code$073$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,modifier:toggle$00$1code$00$1engine$0keyboard,modifier_scale:0.500000"
-player_2_rstick\default=false
+player_2_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_2_lstick\default=true
+player_2_motionleft="toggle:0,code:55,engine:keyboard"
+player_2_motionleft\default=true
+player_2_motionright="toggle:0,code:56,engine:keyboard"
+player_2_motionright\default=true
+player_2_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_2_rstick\default=true
player_2_type=0
player_2_type\default=true
player_2_vibration_enabled=true
@@ -278,60 +281,60 @@ player_3_body_color_left=4278893030
player_3_body_color_left\default=false
player_3_body_color_right=4294917160
player_3_body_color_right\default=false
-player_3_button_a="engine:keyboard,code:67,toggle:0"
-player_3_button_a\default=false
-player_3_button_b="engine:keyboard,code:88,toggle:0"
-player_3_button_b\default=false
+player_3_button_a="toggle:0,code:67,engine:keyboard"
+player_3_button_a\default=true
+player_3_button_b="toggle:0,code:88,engine:keyboard"
+player_3_button_b\default=true
player_3_button_color_left=4278197790
player_3_button_color_left\default=false
player_3_button_color_right=4280158730
player_3_button_color_right\default=false
-player_3_button_ddown="engine:keyboard,code:16777237,toggle:0"
-player_3_button_ddown\default=false
-player_3_button_dleft="engine:keyboard,code:16777234,toggle:0"
-player_3_button_dleft\default=false
-player_3_button_dright="engine:keyboard,code:16777236,toggle:0"
-player_3_button_dright\default=false
-player_3_button_dup="engine:keyboard,code:16777235,toggle:0"
-player_3_button_dup\default=false
-player_3_button_home="engine:keyboard,code:0,toggle:0"
-player_3_button_home\default=false
-player_3_button_l="engine:keyboard,code:81,toggle:0"
-player_3_button_l\default=false
-player_3_button_lstick="engine:keyboard,code:70,toggle:0"
-player_3_button_lstick\default=false
-player_3_button_minus="engine:keyboard,code:78,toggle:0"
-player_3_button_minus\default=false
-player_3_button_plus="engine:keyboard,code:77,toggle:0"
-player_3_button_plus\default=false
-player_3_button_r="engine:keyboard,code:69,toggle:0"
-player_3_button_r\default=false
-player_3_button_rstick="engine:keyboard,code:71,toggle:0"
-player_3_button_rstick\default=false
-player_3_button_screenshot="engine:keyboard,code:0,toggle:0"
-player_3_button_screenshot\default=false
-player_3_button_sl="engine:keyboard,code:81,toggle:0"
-player_3_button_sl\default=false
-player_3_button_sr="engine:keyboard,code:69,toggle:0"
-player_3_button_sr\default=false
-player_3_button_x="engine:keyboard,code:86,toggle:0"
-player_3_button_x\default=false
-player_3_button_y="engine:keyboard,code:90,toggle:0"
-player_3_button_y\default=false
-player_3_button_zl="engine:keyboard,code:82,toggle:0"
-player_3_button_zl\default=false
-player_3_button_zr="engine:keyboard,code:84,toggle:0"
-player_3_button_zr\default=false
+player_3_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_3_button_ddown\default=true
+player_3_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_3_button_dleft\default=true
+player_3_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_3_button_dright\default=true
+player_3_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_3_button_dup\default=true
+player_3_button_home="toggle:0,code:0,engine:keyboard"
+player_3_button_home\default=true
+player_3_button_l="toggle:0,code:81,engine:keyboard"
+player_3_button_l\default=true
+player_3_button_lstick="toggle:0,code:70,engine:keyboard"
+player_3_button_lstick\default=true
+player_3_button_minus="toggle:0,code:78,engine:keyboard"
+player_3_button_minus\default=true
+player_3_button_plus="toggle:0,code:77,engine:keyboard"
+player_3_button_plus\default=true
+player_3_button_r="toggle:0,code:69,engine:keyboard"
+player_3_button_r\default=true
+player_3_button_rstick="toggle:0,code:71,engine:keyboard"
+player_3_button_rstick\default=true
+player_3_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_3_button_screenshot\default=true
+player_3_button_sl="toggle:0,code:81,engine:keyboard"
+player_3_button_sl\default=true
+player_3_button_sr="toggle:0,code:69,engine:keyboard"
+player_3_button_sr\default=true
+player_3_button_x="toggle:0,code:86,engine:keyboard"
+player_3_button_x\default=true
+player_3_button_y="toggle:0,code:90,engine:keyboard"
+player_3_button_y\default=true
+player_3_button_zl="toggle:0,code:82,engine:keyboard"
+player_3_button_zl\default=true
+player_3_button_zr="toggle:0,code:84,engine:keyboard"
+player_3_button_zr\default=true
player_3_connected=false
player_3_connected\default=true
-player_3_lstick="engine:analog_from_button,up:toggle$00$1code$087$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,modifier:toggle$00$1code$016777248$1engine$0keyboard,modifier_scale:0.500000"
-player_3_lstick\default=false
-player_3_motionleft="engine:keyboard,code:55,toggle:0"
-player_3_motionleft\default=false
-player_3_motionright="engine:keyboard,code:56,toggle:0"
-player_3_motionright\default=false
-player_3_rstick="engine:analog_from_button,up:toggle$00$1code$073$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,modifier:toggle$00$1code$00$1engine$0keyboard,modifier_scale:0.500000"
-player_3_rstick\default=false
+player_3_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_3_lstick\default=true
+player_3_motionleft="toggle:0,code:55,engine:keyboard"
+player_3_motionleft\default=true
+player_3_motionright="toggle:0,code:56,engine:keyboard"
+player_3_motionright\default=true
+player_3_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_3_rstick\default=true
player_3_type=0
player_3_type\default=true
player_3_vibration_enabled=true
@@ -342,60 +345,60 @@ player_4_body_color_left=4278893030
player_4_body_color_left\default=false
player_4_body_color_right=4294917160
player_4_body_color_right\default=false
-player_4_button_a="engine:keyboard,code:67,toggle:0"
-player_4_button_a\default=false
-player_4_button_b="engine:keyboard,code:88,toggle:0"
-player_4_button_b\default=false
+player_4_button_a="toggle:0,code:67,engine:keyboard"
+player_4_button_a\default=true
+player_4_button_b="toggle:0,code:88,engine:keyboard"
+player_4_button_b\default=true
player_4_button_color_left=4278197790
player_4_button_color_left\default=false
player_4_button_color_right=4280158730
player_4_button_color_right\default=false
-player_4_button_ddown="engine:keyboard,code:16777237,toggle:0"
-player_4_button_ddown\default=false
-player_4_button_dleft="engine:keyboard,code:16777234,toggle:0"
-player_4_button_dleft\default=false
-player_4_button_dright="engine:keyboard,code:16777236,toggle:0"
-player_4_button_dright\default=false
-player_4_button_dup="engine:keyboard,code:16777235,toggle:0"
-player_4_button_dup\default=false
-player_4_button_home="engine:keyboard,code:0,toggle:0"
-player_4_button_home\default=false
-player_4_button_l="engine:keyboard,code:81,toggle:0"
-player_4_button_l\default=false
-player_4_button_lstick="engine:keyboard,code:70,toggle:0"
-player_4_button_lstick\default=false
-player_4_button_minus="engine:keyboard,code:78,toggle:0"
-player_4_button_minus\default=false
-player_4_button_plus="engine:keyboard,code:77,toggle:0"
-player_4_button_plus\default=false
-player_4_button_r="engine:keyboard,code:69,toggle:0"
-player_4_button_r\default=false
-player_4_button_rstick="engine:keyboard,code:71,toggle:0"
-player_4_button_rstick\default=false
-player_4_button_screenshot="engine:keyboard,code:0,toggle:0"
-player_4_button_screenshot\default=false
-player_4_button_sl="engine:keyboard,code:81,toggle:0"
-player_4_button_sl\default=false
-player_4_button_sr="engine:keyboard,code:69,toggle:0"
-player_4_button_sr\default=false
-player_4_button_x="engine:keyboard,code:86,toggle:0"
-player_4_button_x\default=false
-player_4_button_y="engine:keyboard,code:90,toggle:0"
-player_4_button_y\default=false
-player_4_button_zl="engine:keyboard,code:82,toggle:0"
-player_4_button_zl\default=false
-player_4_button_zr="engine:keyboard,code:84,toggle:0"
-player_4_button_zr\default=false
+player_4_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_4_button_ddown\default=true
+player_4_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_4_button_dleft\default=true
+player_4_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_4_button_dright\default=true
+player_4_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_4_button_dup\default=true
+player_4_button_home="toggle:0,code:0,engine:keyboard"
+player_4_button_home\default=true
+player_4_button_l="toggle:0,code:81,engine:keyboard"
+player_4_button_l\default=true
+player_4_button_lstick="toggle:0,code:70,engine:keyboard"
+player_4_button_lstick\default=true
+player_4_button_minus="toggle:0,code:78,engine:keyboard"
+player_4_button_minus\default=true
+player_4_button_plus="toggle:0,code:77,engine:keyboard"
+player_4_button_plus\default=true
+player_4_button_r="toggle:0,code:69,engine:keyboard"
+player_4_button_r\default=true
+player_4_button_rstick="toggle:0,code:71,engine:keyboard"
+player_4_button_rstick\default=true
+player_4_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_4_button_screenshot\default=true
+player_4_button_sl="toggle:0,code:81,engine:keyboard"
+player_4_button_sl\default=true
+player_4_button_sr="toggle:0,code:69,engine:keyboard"
+player_4_button_sr\default=true
+player_4_button_x="toggle:0,code:86,engine:keyboard"
+player_4_button_x\default=true
+player_4_button_y="toggle:0,code:90,engine:keyboard"
+player_4_button_y\default=true
+player_4_button_zl="toggle:0,code:82,engine:keyboard"
+player_4_button_zl\default=true
+player_4_button_zr="toggle:0,code:84,engine:keyboard"
+player_4_button_zr\default=true
player_4_connected=false
player_4_connected\default=true
-player_4_lstick="engine:analog_from_button,up:toggle$00$1code$087$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,modifier:toggle$00$1code$016777248$1engine$0keyboard,modifier_scale:0.500000"
-player_4_lstick\default=false
-player_4_motionleft="engine:keyboard,code:55,toggle:0"
-player_4_motionleft\default=false
-player_4_motionright="engine:keyboard,code:56,toggle:0"
-player_4_motionright\default=false
-player_4_rstick="engine:analog_from_button,up:toggle$00$1code$073$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,modifier:toggle$00$1code$00$1engine$0keyboard,modifier_scale:0.500000"
-player_4_rstick\default=false
+player_4_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_4_lstick\default=true
+player_4_motionleft="toggle:0,code:55,engine:keyboard"
+player_4_motionleft\default=true
+player_4_motionright="toggle:0,code:56,engine:keyboard"
+player_4_motionright\default=true
+player_4_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_4_rstick\default=true
player_4_type=0
player_4_type\default=true
player_4_vibration_enabled=true
@@ -406,60 +409,60 @@ player_5_body_color_left=4278893030
player_5_body_color_left\default=false
player_5_body_color_right=4294917160
player_5_body_color_right\default=false
-player_5_button_a="engine:keyboard,code:67,toggle:0"
-player_5_button_a\default=false
-player_5_button_b="engine:keyboard,code:88,toggle:0"
-player_5_button_b\default=false
+player_5_button_a="toggle:0,code:67,engine:keyboard"
+player_5_button_a\default=true
+player_5_button_b="toggle:0,code:88,engine:keyboard"
+player_5_button_b\default=true
player_5_button_color_left=4278197790
player_5_button_color_left\default=false
player_5_button_color_right=4280158730
player_5_button_color_right\default=false
-player_5_button_ddown="engine:keyboard,code:16777237,toggle:0"
-player_5_button_ddown\default=false
-player_5_button_dleft="engine:keyboard,code:16777234,toggle:0"
-player_5_button_dleft\default=false
-player_5_button_dright="engine:keyboard,code:16777236,toggle:0"
-player_5_button_dright\default=false
-player_5_button_dup="engine:keyboard,code:16777235,toggle:0"
-player_5_button_dup\default=false
-player_5_button_home="engine:keyboard,code:0,toggle:0"
-player_5_button_home\default=false
-player_5_button_l="engine:keyboard,code:81,toggle:0"
-player_5_button_l\default=false
-player_5_button_lstick="engine:keyboard,code:70,toggle:0"
-player_5_button_lstick\default=false
-player_5_button_minus="engine:keyboard,code:78,toggle:0"
-player_5_button_minus\default=false
-player_5_button_plus="engine:keyboard,code:77,toggle:0"
-player_5_button_plus\default=false
-player_5_button_r="engine:keyboard,code:69,toggle:0"
-player_5_button_r\default=false
-player_5_button_rstick="engine:keyboard,code:71,toggle:0"
-player_5_button_rstick\default=false
-player_5_button_screenshot="engine:keyboard,code:0,toggle:0"
-player_5_button_screenshot\default=false
-player_5_button_sl="engine:keyboard,code:81,toggle:0"
-player_5_button_sl\default=false
-player_5_button_sr="engine:keyboard,code:69,toggle:0"
-player_5_button_sr\default=false
-player_5_button_x="engine:keyboard,code:86,toggle:0"
-player_5_button_x\default=false
-player_5_button_y="engine:keyboard,code:90,toggle:0"
-player_5_button_y\default=false
-player_5_button_zl="engine:keyboard,code:82,toggle:0"
-player_5_button_zl\default=false
-player_5_button_zr="engine:keyboard,code:84,toggle:0"
-player_5_button_zr\default=false
+player_5_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_5_button_ddown\default=true
+player_5_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_5_button_dleft\default=true
+player_5_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_5_button_dright\default=true
+player_5_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_5_button_dup\default=true
+player_5_button_home="toggle:0,code:0,engine:keyboard"
+player_5_button_home\default=true
+player_5_button_l="toggle:0,code:81,engine:keyboard"
+player_5_button_l\default=true
+player_5_button_lstick="toggle:0,code:70,engine:keyboard"
+player_5_button_lstick\default=true
+player_5_button_minus="toggle:0,code:78,engine:keyboard"
+player_5_button_minus\default=true
+player_5_button_plus="toggle:0,code:77,engine:keyboard"
+player_5_button_plus\default=true
+player_5_button_r="toggle:0,code:69,engine:keyboard"
+player_5_button_r\default=true
+player_5_button_rstick="toggle:0,code:71,engine:keyboard"
+player_5_button_rstick\default=true
+player_5_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_5_button_screenshot\default=true
+player_5_button_sl="toggle:0,code:81,engine:keyboard"
+player_5_button_sl\default=true
+player_5_button_sr="toggle:0,code:69,engine:keyboard"
+player_5_button_sr\default=true
+player_5_button_x="toggle:0,code:86,engine:keyboard"
+player_5_button_x\default=true
+player_5_button_y="toggle:0,code:90,engine:keyboard"
+player_5_button_y\default=true
+player_5_button_zl="toggle:0,code:82,engine:keyboard"
+player_5_button_zl\default=true
+player_5_button_zr="toggle:0,code:84,engine:keyboard"
+player_5_button_zr\default=true
player_5_connected=false
player_5_connected\default=true
-player_5_lstick="engine:analog_from_button,up:toggle$00$1code$087$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,modifier:toggle$00$1code$016777248$1engine$0keyboard,modifier_scale:0.500000"
-player_5_lstick\default=false
-player_5_motionleft="engine:keyboard,code:55,toggle:0"
-player_5_motionleft\default=false
-player_5_motionright="engine:keyboard,code:56,toggle:0"
-player_5_motionright\default=false
-player_5_rstick="engine:analog_from_button,up:toggle$00$1code$073$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,modifier:toggle$00$1code$00$1engine$0keyboard,modifier_scale:0.500000"
-player_5_rstick\default=false
+player_5_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_5_lstick\default=true
+player_5_motionleft="toggle:0,code:55,engine:keyboard"
+player_5_motionleft\default=true
+player_5_motionright="toggle:0,code:56,engine:keyboard"
+player_5_motionright\default=true
+player_5_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_5_rstick\default=true
player_5_type=0
player_5_type\default=true
player_5_vibration_enabled=true
@@ -470,60 +473,60 @@ player_6_body_color_left=4278893030
player_6_body_color_left\default=false
player_6_body_color_right=4294917160
player_6_body_color_right\default=false
-player_6_button_a="engine:keyboard,code:67,toggle:0"
-player_6_button_a\default=false
-player_6_button_b="engine:keyboard,code:88,toggle:0"
-player_6_button_b\default=false
+player_6_button_a="toggle:0,code:67,engine:keyboard"
+player_6_button_a\default=true
+player_6_button_b="toggle:0,code:88,engine:keyboard"
+player_6_button_b\default=true
player_6_button_color_left=4278197790
player_6_button_color_left\default=false
player_6_button_color_right=4280158730
player_6_button_color_right\default=false
-player_6_button_ddown="engine:keyboard,code:16777237,toggle:0"
-player_6_button_ddown\default=false
-player_6_button_dleft="engine:keyboard,code:16777234,toggle:0"
-player_6_button_dleft\default=false
-player_6_button_dright="engine:keyboard,code:16777236,toggle:0"
-player_6_button_dright\default=false
-player_6_button_dup="engine:keyboard,code:16777235,toggle:0"
-player_6_button_dup\default=false
-player_6_button_home="engine:keyboard,code:0,toggle:0"
-player_6_button_home\default=false
-player_6_button_l="engine:keyboard,code:81,toggle:0"
-player_6_button_l\default=false
-player_6_button_lstick="engine:keyboard,code:70,toggle:0"
-player_6_button_lstick\default=false
-player_6_button_minus="engine:keyboard,code:78,toggle:0"
-player_6_button_minus\default=false
-player_6_button_plus="engine:keyboard,code:77,toggle:0"
-player_6_button_plus\default=false
-player_6_button_r="engine:keyboard,code:69,toggle:0"
-player_6_button_r\default=false
-player_6_button_rstick="engine:keyboard,code:71,toggle:0"
-player_6_button_rstick\default=false
-player_6_button_screenshot="engine:keyboard,code:0,toggle:0"
-player_6_button_screenshot\default=false
-player_6_button_sl="engine:keyboard,code:81,toggle:0"
-player_6_button_sl\default=false
-player_6_button_sr="engine:keyboard,code:69,toggle:0"
-player_6_button_sr\default=false
-player_6_button_x="engine:keyboard,code:86,toggle:0"
-player_6_button_x\default=false
-player_6_button_y="engine:keyboard,code:90,toggle:0"
-player_6_button_y\default=false
-player_6_button_zl="engine:keyboard,code:82,toggle:0"
-player_6_button_zl\default=false
-player_6_button_zr="engine:keyboard,code:84,toggle:0"
-player_6_button_zr\default=false
+player_6_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_6_button_ddown\default=true
+player_6_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_6_button_dleft\default=true
+player_6_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_6_button_dright\default=true
+player_6_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_6_button_dup\default=true
+player_6_button_home="toggle:0,code:0,engine:keyboard"
+player_6_button_home\default=true
+player_6_button_l="toggle:0,code:81,engine:keyboard"
+player_6_button_l\default=true
+player_6_button_lstick="toggle:0,code:70,engine:keyboard"
+player_6_button_lstick\default=true
+player_6_button_minus="toggle:0,code:78,engine:keyboard"
+player_6_button_minus\default=true
+player_6_button_plus="toggle:0,code:77,engine:keyboard"
+player_6_button_plus\default=true
+player_6_button_r="toggle:0,code:69,engine:keyboard"
+player_6_button_r\default=true
+player_6_button_rstick="toggle:0,code:71,engine:keyboard"
+player_6_button_rstick\default=true
+player_6_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_6_button_screenshot\default=true
+player_6_button_sl="toggle:0,code:81,engine:keyboard"
+player_6_button_sl\default=true
+player_6_button_sr="toggle:0,code:69,engine:keyboard"
+player_6_button_sr\default=true
+player_6_button_x="toggle:0,code:86,engine:keyboard"
+player_6_button_x\default=true
+player_6_button_y="toggle:0,code:90,engine:keyboard"
+player_6_button_y\default=true
+player_6_button_zl="toggle:0,code:82,engine:keyboard"
+player_6_button_zl\default=true
+player_6_button_zr="toggle:0,code:84,engine:keyboard"
+player_6_button_zr\default=true
player_6_connected=false
player_6_connected\default=true
-player_6_lstick="engine:analog_from_button,up:toggle$00$1code$087$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,modifier:toggle$00$1code$016777248$1engine$0keyboard,modifier_scale:0.500000"
-player_6_lstick\default=false
-player_6_motionleft="engine:keyboard,code:55,toggle:0"
-player_6_motionleft\default=false
-player_6_motionright="engine:keyboard,code:56,toggle:0"
-player_6_motionright\default=false
-player_6_rstick="engine:analog_from_button,up:toggle$00$1code$073$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,modifier:toggle$00$1code$00$1engine$0keyboard,modifier_scale:0.500000"
-player_6_rstick\default=false
+player_6_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_6_lstick\default=true
+player_6_motionleft="toggle:0,code:55,engine:keyboard"
+player_6_motionleft\default=true
+player_6_motionright="toggle:0,code:56,engine:keyboard"
+player_6_motionright\default=true
+player_6_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_6_rstick\default=true
player_6_type=0
player_6_type\default=true
player_6_vibration_enabled=true
@@ -534,60 +537,60 @@ player_7_body_color_left=4278893030
player_7_body_color_left\default=false
player_7_body_color_right=4294917160
player_7_body_color_right\default=false
-player_7_button_a="engine:keyboard,code:67,toggle:0"
-player_7_button_a\default=false
-player_7_button_b="engine:keyboard,code:88,toggle:0"
-player_7_button_b\default=false
+player_7_button_a="toggle:0,code:67,engine:keyboard"
+player_7_button_a\default=true
+player_7_button_b="toggle:0,code:88,engine:keyboard"
+player_7_button_b\default=true
player_7_button_color_left=4278197790
player_7_button_color_left\default=false
player_7_button_color_right=4280158730
player_7_button_color_right\default=false
-player_7_button_ddown="engine:keyboard,code:16777237,toggle:0"
-player_7_button_ddown\default=false
-player_7_button_dleft="engine:keyboard,code:16777234,toggle:0"
-player_7_button_dleft\default=false
-player_7_button_dright="engine:keyboard,code:16777236,toggle:0"
-player_7_button_dright\default=false
-player_7_button_dup="engine:keyboard,code:16777235,toggle:0"
-player_7_button_dup\default=false
-player_7_button_home="engine:keyboard,code:0,toggle:0"
-player_7_button_home\default=false
-player_7_button_l="engine:keyboard,code:81,toggle:0"
-player_7_button_l\default=false
-player_7_button_lstick="engine:keyboard,code:70,toggle:0"
-player_7_button_lstick\default=false
-player_7_button_minus="engine:keyboard,code:78,toggle:0"
-player_7_button_minus\default=false
-player_7_button_plus="engine:keyboard,code:77,toggle:0"
-player_7_button_plus\default=false
-player_7_button_r="engine:keyboard,code:69,toggle:0"
-player_7_button_r\default=false
-player_7_button_rstick="engine:keyboard,code:71,toggle:0"
-player_7_button_rstick\default=false
-player_7_button_screenshot="engine:keyboard,code:0,toggle:0"
-player_7_button_screenshot\default=false
-player_7_button_sl="engine:keyboard,code:81,toggle:0"
-player_7_button_sl\default=false
-player_7_button_sr="engine:keyboard,code:69,toggle:0"
-player_7_button_sr\default=false
-player_7_button_x="engine:keyboard,code:86,toggle:0"
-player_7_button_x\default=false
-player_7_button_y="engine:keyboard,code:90,toggle:0"
-player_7_button_y\default=false
-player_7_button_zl="engine:keyboard,code:82,toggle:0"
-player_7_button_zl\default=false
-player_7_button_zr="engine:keyboard,code:84,toggle:0"
-player_7_button_zr\default=false
+player_7_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_7_button_ddown\default=true
+player_7_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_7_button_dleft\default=true
+player_7_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_7_button_dright\default=true
+player_7_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_7_button_dup\default=true
+player_7_button_home="toggle:0,code:0,engine:keyboard"
+player_7_button_home\default=true
+player_7_button_l="toggle:0,code:81,engine:keyboard"
+player_7_button_l\default=true
+player_7_button_lstick="toggle:0,code:70,engine:keyboard"
+player_7_button_lstick\default=true
+player_7_button_minus="toggle:0,code:78,engine:keyboard"
+player_7_button_minus\default=true
+player_7_button_plus="toggle:0,code:77,engine:keyboard"
+player_7_button_plus\default=true
+player_7_button_r="toggle:0,code:69,engine:keyboard"
+player_7_button_r\default=true
+player_7_button_rstick="toggle:0,code:71,engine:keyboard"
+player_7_button_rstick\default=true
+player_7_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_7_button_screenshot\default=true
+player_7_button_sl="toggle:0,code:81,engine:keyboard"
+player_7_button_sl\default=true
+player_7_button_sr="toggle:0,code:69,engine:keyboard"
+player_7_button_sr\default=true
+player_7_button_x="toggle:0,code:86,engine:keyboard"
+player_7_button_x\default=true
+player_7_button_y="toggle:0,code:90,engine:keyboard"
+player_7_button_y\default=true
+player_7_button_zl="toggle:0,code:82,engine:keyboard"
+player_7_button_zl\default=true
+player_7_button_zr="toggle:0,code:84,engine:keyboard"
+player_7_button_zr\default=true
player_7_connected=false
player_7_connected\default=true
-player_7_lstick="engine:analog_from_button,up:toggle$00$1code$087$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,modifier:toggle$00$1code$016777248$1engine$0keyboard,modifier_scale:0.500000"
-player_7_lstick\default=false
-player_7_motionleft="engine:keyboard,code:55,toggle:0"
-player_7_motionleft\default=false
-player_7_motionright="engine:keyboard,code:56,toggle:0"
-player_7_motionright\default=false
-player_7_rstick="engine:analog_from_button,up:toggle$00$1code$073$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,modifier:toggle$00$1code$00$1engine$0keyboard,modifier_scale:0.500000"
-player_7_rstick\default=false
+player_7_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_7_lstick\default=true
+player_7_motionleft="toggle:0,code:55,engine:keyboard"
+player_7_motionleft\default=true
+player_7_motionright="toggle:0,code:56,engine:keyboard"
+player_7_motionright\default=true
+player_7_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_7_rstick\default=true
player_7_type=0
player_7_type\default=true
player_7_vibration_enabled=true
@@ -598,60 +601,60 @@ player_8_body_color_left=702950
player_8_body_color_left\default=true
player_8_body_color_right=16727080
player_8_body_color_right\default=true
-player_8_button_a="toggle:0,code:67,engine:keyboard"
-player_8_button_a\default=true
-player_8_button_b="toggle:0,code:88,engine:keyboard"
-player_8_button_b\default=true
+player_8_button_a="engine:keyboard,code:67,toggle:0"
+player_8_button_a\default=false
+player_8_button_b="engine:keyboard,code:88,toggle:0"
+player_8_button_b\default=false
player_8_button_color_left=7710
player_8_button_color_left\default=true
player_8_button_color_right=1968650
player_8_button_color_right\default=true
-player_8_button_ddown="toggle:0,code:16777237,engine:keyboard"
-player_8_button_ddown\default=true
-player_8_button_dleft="toggle:0,code:16777234,engine:keyboard"
-player_8_button_dleft\default=true
-player_8_button_dright="toggle:0,code:16777236,engine:keyboard"
-player_8_button_dright\default=true
-player_8_button_dup="toggle:0,code:16777235,engine:keyboard"
-player_8_button_dup\default=true
-player_8_button_home="toggle:0,code:0,engine:keyboard"
-player_8_button_home\default=true
-player_8_button_l="toggle:0,code:81,engine:keyboard"
-player_8_button_l\default=true
-player_8_button_lstick="toggle:0,code:70,engine:keyboard"
-player_8_button_lstick\default=true
-player_8_button_minus="toggle:0,code:78,engine:keyboard"
-player_8_button_minus\default=true
-player_8_button_plus="toggle:0,code:77,engine:keyboard"
-player_8_button_plus\default=true
-player_8_button_r="toggle:0,code:69,engine:keyboard"
-player_8_button_r\default=true
-player_8_button_rstick="toggle:0,code:71,engine:keyboard"
-player_8_button_rstick\default=true
-player_8_button_screenshot="toggle:0,code:0,engine:keyboard"
-player_8_button_screenshot\default=true
-player_8_button_sl="toggle:0,code:81,engine:keyboard"
-player_8_button_sl\default=true
-player_8_button_sr="toggle:0,code:69,engine:keyboard"
-player_8_button_sr\default=true
-player_8_button_x="toggle:0,code:86,engine:keyboard"
-player_8_button_x\default=true
-player_8_button_y="toggle:0,code:90,engine:keyboard"
-player_8_button_y\default=true
-player_8_button_zl="toggle:0,code:82,engine:keyboard"
-player_8_button_zl\default=true
-player_8_button_zr="toggle:0,code:84,engine:keyboard"
-player_8_button_zr\default=true
+player_8_button_ddown="engine:keyboard,code:16777237,toggle:0"
+player_8_button_ddown\default=false
+player_8_button_dleft="engine:keyboard,code:16777234,toggle:0"
+player_8_button_dleft\default=false
+player_8_button_dright="engine:keyboard,code:16777236,toggle:0"
+player_8_button_dright\default=false
+player_8_button_dup="engine:keyboard,code:16777235,toggle:0"
+player_8_button_dup\default=false
+player_8_button_home="engine:keyboard,code:0,toggle:0"
+player_8_button_home\default=false
+player_8_button_l="engine:keyboard,code:81,toggle:0"
+player_8_button_l\default=false
+player_8_button_lstick="engine:keyboard,code:70,toggle:0"
+player_8_button_lstick\default=false
+player_8_button_minus="engine:keyboard,code:78,toggle:0"
+player_8_button_minus\default=false
+player_8_button_plus="engine:keyboard,code:77,toggle:0"
+player_8_button_plus\default=false
+player_8_button_r="engine:keyboard,code:69,toggle:0"
+player_8_button_r\default=false
+player_8_button_rstick="engine:keyboard,code:71,toggle:0"
+player_8_button_rstick\default=false
+player_8_button_screenshot="engine:keyboard,code:0,toggle:0"
+player_8_button_screenshot\default=false
+player_8_button_sl="engine:keyboard,code:81,toggle:0"
+player_8_button_sl\default=false
+player_8_button_sr="engine:keyboard,code:69,toggle:0"
+player_8_button_sr\default=false
+player_8_button_x="engine:keyboard,code:86,toggle:0"
+player_8_button_x\default=false
+player_8_button_y="engine:keyboard,code:90,toggle:0"
+player_8_button_y\default=false
+player_8_button_zl="engine:keyboard,code:82,toggle:0"
+player_8_button_zl\default=false
+player_8_button_zr="engine:keyboard,code:84,toggle:0"
+player_8_button_zr\default=false
player_8_connected=false
player_8_connected\default=true
-player_8_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
-player_8_lstick\default=true
-player_8_motionleft="toggle:0,code:55,engine:keyboard"
-player_8_motionleft\default=true
-player_8_motionright="toggle:0,code:56,engine:keyboard"
-player_8_motionright\default=true
-player_8_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
-player_8_rstick\default=true
+player_8_lstick="engine:analog_from_button,up:toggle$00$1code$087$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,modifier:toggle$00$1code$016777248$1engine$0keyboard,modifier_scale:0.500000"
+player_8_lstick\default=false
+player_8_motionleft="engine:keyboard,code:55,toggle:0"
+player_8_motionleft\default=false
+player_8_motionright="engine:keyboard,code:56,toggle:0"
+player_8_motionright\default=false
+player_8_rstick="engine:analog_from_button,up:toggle$00$1code$073$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,modifier:toggle$00$1code$00$1engine$0keyboard,modifier_scale:0.500000"
+player_8_rstick\default=false
player_8_type=0
player_8_type\default=true
player_8_vibration_enabled=true
@@ -746,14 +749,14 @@ touchscreen_enabled=true
touchscreen_enabled\default=true
udp_input_servers=127.0.0.1:26760
udp_input_servers\default=true
-use_docked_mode=false
+use_docked_mode=true
use_docked_mode\default=true
vibration_enabled=true
vibration_enabled\default=true
[Core]
-use_extended_memory_layout=true
-use_extended_memory_layout\default=false
+use_extended_memory_layout=false
+use_extended_memory_layout\default=true
use_multi_core=true
use_multi_core\default=true
@@ -802,8 +805,7 @@ cpuopt_unsafe_unfuse_fma=true
cpuopt_unsafe_unfuse_fma\default=true
[Data%20Storage]
-="======"
-dump_directory=/var/data/yuzu/dump
+dump_directory=/home/deck/.var/app/net.retrodeck.retrodeck/data/yuzu/dump
dump_directory\default=true
gamecard_current_game=false
gamecard_current_game\default=true
@@ -811,13 +813,13 @@ gamecard_inserted=false
gamecard_inserted\default=true
gamecard_path=
gamecard_path\default=true
-load_directory=/var/data/yuzu/load
+load_directory=/home/deck/.var/app/net.retrodeck.retrodeck/data/yuzu/load
load_directory\default=true
-nand_directory=/var/data/yuzu/nand
+nand_directory=/home/deck/retrodeck/saves/switch/yuzu/nand
nand_directory\default=true
-sdmc_directory=/var/data/yuzu/sdmc
+sdmc_directory=/home/deck/retrodeck/saves/switch/yuzu/sdmc
sdmc_directory\default=true
-tas_directory=/var/data/yuzu/tas
+tas_directory=/home/deck/.var/app/net.retrodeck.retrodeck/data/yuzu/tas
tas_directory\default=true
use_virtual_sd=true
use_virtual_sd\default=true
@@ -825,6 +827,8 @@ use_virtual_sd\default=true
[Debugging]
create_crash_dumps=false
create_crash_dumps\default=true
+disable_macro_hle=false
+disable_macro_hle\default=true
disable_macro_jit=false
disable_macro_jit\default=true
dump_exefs=false
@@ -861,30 +865,6 @@ log_filter\default=true
use_dev_keys=false
use_dev_keys\default=true
-[Multiplayer]
-game_id=0
-game_id\default=true
-host_type=0
-host_type\default=true
-ip=
-ip\default=true
-ip_ban_list\size=0
-max_player=8
-max_player\default=true
-nickname=RetroDECK
-nickname\default=true
-port=24872
-port\default=true
-room_description=
-room_description\default=true
-room_name=
-room_name\default=true
-room_nickname=
-room_nickname\default=true
-room_port=24872
-room_port\default=true
-username_ban_list\size=0
-
[Renderer]
accelerate_astc=true
accelerate_astc\default=true
@@ -892,6 +872,8 @@ anti_aliasing=0
anti_aliasing\default=true
aspect_ratio=0
aspect_ratio\default=true
+async_astc=false
+async_astc\default=true
backend=1
backend\default=true
bg_blue=0
@@ -904,24 +886,24 @@ debug=false
debug\default=true
disable_shader_loop_safety_checks=false
disable_shader_loop_safety_checks\default=true
-fps_cap=1000
-fps_cap\default=true
+force_max_clock=false
+force_max_clock\default=true
fsr_sharpening_slider=25
fsr_sharpening_slider\default=true
fullscreen_mode=1
fullscreen_mode\default=true
-gpu_accuracy=0
-gpu_accuracy\default=false
-max_anisotropy=1
-max_anisotropy\default=false
+gpu_accuracy=1
+gpu_accuracy\default=true
+max_anisotropy=0
+max_anisotropy\default=true
nsight_aftermath=false
nsight_aftermath\default=true
nvdec_emulation=2
nvdec_emulation\default=true
resolution_setup=2
resolution_setup\default=true
-scaling_filter=0
-scaling_filter\default=false
+scaling_filter=1
+scaling_filter\default=true
shader_backend=0
shader_backend\default=true
shader_feedback=false
@@ -930,23 +912,22 @@ speed_limit=100
speed_limit\default=true
use_asynchronous_gpu_emulation=true
use_asynchronous_gpu_emulation\default=true
-use_asynchronous_shaders=true
-use_asynchronous_shaders\default=false
+use_asynchronous_shaders=false
+use_asynchronous_shaders\default=true
use_disk_shader_cache=true
use_disk_shader_cache\default=true
use_fast_gpu_time=true
use_fast_gpu_time\default=true
use_pessimistic_flushes=false
use_pessimistic_flushes\default=true
-use_speed_limit=true
-use_speed_limit\default=true
-use_vsync=false
-use_vsync\default=false
+use_vsync=true
+use_vsync\default=true
+use_vulkan_driver_pipeline_cache=true
+use_vulkan_driver_pipeline_cache\default=true
vulkan_device=0
vulkan_device\default=true
[Services]
-="======"
network_interface=wlan0
network_interface\default=false
@@ -957,8 +938,10 @@ custom_rtc=0
custom_rtc\default=true
custom_rtc_enabled=false
custom_rtc_enabled\default=true
-language_index=1
-language_index\default=true
+device_name=RetroDECK
+device_name\default=false
+language_index=12
+language_index\default=false
region_index=2
region_index\default=false
rng_seed=0
@@ -980,7 +963,7 @@ Multiplayer\ip\default=true
Multiplayer\ip_ban_list\size=0
Multiplayer\max_player=8
Multiplayer\max_player\default=true
-Multiplayer\nickname=RetroDECK
+Multiplayer\nickname=
Multiplayer\nickname\default=true
Multiplayer\port=24872
Multiplayer\port\default=true
@@ -1012,147 +995,192 @@ Paths\gamedirs\4\deep_scan=false
Paths\gamedirs\4\deep_scan\default=true
Paths\gamedirs\4\expanded=true
Paths\gamedirs\4\expanded\default=true
-Paths\gamedirs\4\path=~/retrodeck/roms/switch
+Paths\gamedirs\4\path=/home/deck/retrodeck/roms/switch
Paths\gamedirs\size=4
-Paths\language=en
-Paths\language\default=false
-Paths\romsPath=~/retrodeck/roms/switch
+Paths\language=
+Paths\language\default=true
+Paths\recentFiles=@Invalid()
+Paths\romsPath=
Paths\symbolsPath=
-Screenshots\enable_screenshot_save_as=false
-Screenshots\enable_screenshot_save_as\default=false
-Screenshots\screenshot_path=~/retrodeck/screenshots
+Screenshots\enable_screenshot_save_as=true
+Screenshots\enable_screenshot_save_as\default=true
+Screenshots\screenshot_path=/home/deck/retrodeck/screenshots/
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context=1
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context\default=true
-Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq=
-Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq=Home+Dpad_Right
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Audio%20Mute\Unmute\KeySeq=Ctrl+M
Shortcuts\Main%20Window\Audio%20Mute\Unmute\KeySeq\default=true
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Repeat=false
+Shortcuts\Main%20Window\Audio%20Mute\Unmute\Repeat\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Down\Context=2
Shortcuts\Main%20Window\Audio%20Volume%20Down\Context\default=true
-Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq=
-Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq=Home+Dpad_Down
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Down\KeySeq=-
Shortcuts\Main%20Window\Audio%20Volume%20Down\KeySeq\default=true
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Repeat=true
+Shortcuts\Main%20Window\Audio%20Volume%20Down\Repeat\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Up\Context=2
Shortcuts\Main%20Window\Audio%20Volume%20Up\Context\default=true
-Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq=
-Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq=Home+Dpad_Up
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Audio%20Volume%20Up\KeySeq="="
Shortcuts\Main%20Window\Audio%20Volume%20Up\KeySeq\default=true
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Repeat=true
+Shortcuts\Main%20Window\Audio%20Volume%20Up\Repeat\default=true
Shortcuts\Main%20Window\Capture%20Screenshot\Context=3
Shortcuts\Main%20Window\Capture%20Screenshot\Context\default=true
-Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq=Home+A
-Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq=Screenshot
+Shortcuts\Main%20Window\Capture%20Screenshot\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq=Ctrl+P
Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq\default=true
+Shortcuts\Main%20Window\Capture%20Screenshot\Repeat=false
+Shortcuts\Main%20Window\Capture%20Screenshot\Repeat\default=true
Shortcuts\Main%20Window\Change%20Adapting%20Filter\Context=2
Shortcuts\Main%20Window\Change%20Adapting%20Filter\Context\default=true
Shortcuts\Main%20Window\Change%20Adapting%20Filter\Controller_KeySeq=Home+L
Shortcuts\Main%20Window\Change%20Adapting%20Filter\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Change%20Adapting%20Filter\KeySeq=F8
Shortcuts\Main%20Window\Change%20Adapting%20Filter\KeySeq\default=true
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Repeat=false
+Shortcuts\Main%20Window\Change%20Adapting%20Filter\Repeat\default=true
Shortcuts\Main%20Window\Change%20Docked%20Mode\Context=2
Shortcuts\Main%20Window\Change%20Docked%20Mode\Context\default=true
-Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq=
-Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq=Home+X
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Change%20Docked%20Mode\KeySeq=F10
Shortcuts\Main%20Window\Change%20Docked%20Mode\KeySeq\default=true
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Repeat=false
+Shortcuts\Main%20Window\Change%20Docked%20Mode\Repeat\default=true
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Context=2
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Context\default=true
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Controller_KeySeq=Home+R
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\KeySeq=F9
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\KeySeq\default=true
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat=false
+Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true
-Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq=Home+B
-Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq=Home+Plus
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=F4
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=true
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat=false
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq=
Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Esc
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat=false
+Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat\default=true
Shortcuts\Main%20Window\Exit%20yuzu\Context=1
Shortcuts\Main%20Window\Exit%20yuzu\Context\default=true
-Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq=Home+Plus
-Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq\default=false
-Shortcuts\Main%20Window\Exit%20yuzu\KeySeq=
-Shortcuts\Main%20Window\Exit%20yuzu\KeySeq\default=false
+Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq=Home+Minus
+Shortcuts\Main%20Window\Exit%20yuzu\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20yuzu\KeySeq=Ctrl+Q
+Shortcuts\Main%20Window\Exit%20yuzu\KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20yuzu\Repeat=false
+Shortcuts\Main%20Window\Exit%20yuzu\Repeat\default=true
Shortcuts\Main%20Window\Fullscreen\Context=1
Shortcuts\Main%20Window\Fullscreen\Context\default=true
-Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq=Home+X
-Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq=Home+B
+Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Fullscreen\KeySeq=F11
Shortcuts\Main%20Window\Fullscreen\KeySeq\default=true
+Shortcuts\Main%20Window\Fullscreen\Repeat=false
+Shortcuts\Main%20Window\Fullscreen\Repeat\default=true
Shortcuts\Main%20Window\Load%20File\Context=3
Shortcuts\Main%20Window\Load%20File\Context\default=true
Shortcuts\Main%20Window\Load%20File\Controller_KeySeq=
Shortcuts\Main%20Window\Load%20File\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Load%20File\KeySeq=Ctrl+O
Shortcuts\Main%20Window\Load%20File\KeySeq\default=true
+Shortcuts\Main%20Window\Load%20File\Repeat=false
+Shortcuts\Main%20Window\Load%20File\Repeat\default=true
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context=3
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context\default=true
-Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq=Home+Y
-Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq=Home+A
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq=F2
Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq\default=true
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat=false
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat\default=true
Shortcuts\Main%20Window\Restart%20Emulation\Context=1
Shortcuts\Main%20Window\Restart%20Emulation\Context\default=true
Shortcuts\Main%20Window\Restart%20Emulation\Controller_KeySeq=
Shortcuts\Main%20Window\Restart%20Emulation\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Restart%20Emulation\KeySeq=F6
Shortcuts\Main%20Window\Restart%20Emulation\KeySeq\default=true
+Shortcuts\Main%20Window\Restart%20Emulation\Repeat=false
+Shortcuts\Main%20Window\Restart%20Emulation\Repeat\default=true
Shortcuts\Main%20Window\Stop%20Emulation\Context=1
Shortcuts\Main%20Window\Stop%20Emulation\Context\default=true
Shortcuts\Main%20Window\Stop%20Emulation\Controller_KeySeq=
Shortcuts\Main%20Window\Stop%20Emulation\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=F5
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=true
+Shortcuts\Main%20Window\Stop%20Emulation\Repeat=false
+Shortcuts\Main%20Window\Stop%20Emulation\Repeat\default=true
Shortcuts\Main%20Window\TAS%20Record\Context=2
Shortcuts\Main%20Window\TAS%20Record\Context\default=true
Shortcuts\Main%20Window\TAS%20Record\Controller_KeySeq=
Shortcuts\Main%20Window\TAS%20Record\Controller_KeySeq\default=true
Shortcuts\Main%20Window\TAS%20Record\KeySeq=Ctrl+F7
Shortcuts\Main%20Window\TAS%20Record\KeySeq\default=true
+Shortcuts\Main%20Window\TAS%20Record\Repeat=false
+Shortcuts\Main%20Window\TAS%20Record\Repeat\default=true
Shortcuts\Main%20Window\TAS%20Reset\Context=2
Shortcuts\Main%20Window\TAS%20Reset\Context\default=true
Shortcuts\Main%20Window\TAS%20Reset\Controller_KeySeq=
Shortcuts\Main%20Window\TAS%20Reset\Controller_KeySeq\default=true
Shortcuts\Main%20Window\TAS%20Reset\KeySeq=Ctrl+F6
Shortcuts\Main%20Window\TAS%20Reset\KeySeq\default=true
+Shortcuts\Main%20Window\TAS%20Reset\Repeat=false
+Shortcuts\Main%20Window\TAS%20Reset\Repeat\default=true
Shortcuts\Main%20Window\TAS%20Start\Stop\Context=2
Shortcuts\Main%20Window\TAS%20Start\Stop\Context\default=true
Shortcuts\Main%20Window\TAS%20Start\Stop\Controller_KeySeq=
Shortcuts\Main%20Window\TAS%20Start\Stop\Controller_KeySeq\default=true
Shortcuts\Main%20Window\TAS%20Start\Stop\KeySeq=Ctrl+F5
Shortcuts\Main%20Window\TAS%20Start\Stop\KeySeq\default=true
+Shortcuts\Main%20Window\TAS%20Start\Stop\Repeat=false
+Shortcuts\Main%20Window\TAS%20Start\Stop\Repeat\default=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context=1
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Controller_KeySeq=
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq=Ctrl+F
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat\default=true
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context=2
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context\default=true
-Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq=
-Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq=Home+Y
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq=Ctrl+U
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat\default=true
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Context=2
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Context\default=true
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Controller_KeySeq=
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\KeySeq=Ctrl+F9
Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Mouse%20Panning\Repeat\default=true
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Controller_KeySeq=
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Controller_KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=Ctrl+S
Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Repeat=false
+Shortcuts\Main%20Window\Toggle%20Status%20Bar\Repeat\default=true
UIGameList\cache_game_list=true
UIGameList\cache_game_list\default=true
UIGameList\favorites\size=0
@@ -1168,23 +1196,23 @@ UIGameList\row_2_text_id=2
UIGameList\row_2_text_id\default=true
UIGameList\show_add_ons=true
UIGameList\show_add_ons\default=true
-UIGameList\show_compat=true
-UIGameList\show_compat\default=false
+UIGameList\show_compat=false
+UIGameList\show_compat\default=true
UIGameList\show_size=true
UIGameList\show_size\default=true
UIGameList\show_types=true
UIGameList\show_types\default=true
-UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x4\x10\0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
-UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3T\0\0\x2\x14\0\0\0\0\0\0\0\0\0\0\x3T\0\0\x2\x14\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\x3T\0\0\x2\x14)
-UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x4\xff\0\0\x2\xe3\0\0\0\0\0\0\0\x14\0\0\x4\xff\0\0\x2\xe3\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\x4\xff\0\0\x2\xe3)
+UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\x5\x2\0\0\0\x1\0\0\0\x1\0\0\0\x64\0\0\x4X\0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x1\x10\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
+UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0}\0\0\0\x8d\0\0\x4\xd4\0\0\x2\xbe\0\0\0}\0\0\0\xaa\0\0\x4\xd4\0\0\x2\xbe\0\0\0\0\0\0\0\0\x5\0\0\0\0}\0\0\0\xaa\0\0\x4\xd4\0\0\x2\xbe)
+UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k)
UILayout\microProfileDialogVisible=false
UILayout\microProfileDialogVisible\default=true
-UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0Y\0\xff\xff\xff\0\0\x3U\0\0\x1\xeb\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
+UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0V\0\xff\xff\xff\0\0\x4X\0\0\x1\xeb\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
calloutFlags=1
calloutFlags\default=false
-confirmClose=true
-confirmClose\default=true
+confirmClose=false
+confirmClose\default=false
disable_web_applet=false
disable_web_applet\default=false
displayTitleBars=true
@@ -1193,8 +1221,8 @@ enable_discord_presence=true
enable_discord_presence\default=true
firstStart=false
firstStart\default=false
-fullscreen=true
-fullscreen\default=false
+fullscreen=false
+fullscreen\default=true
hideInactiveMouse=true
hideInactiveMouse\default=true
muteWhenInBackground=false
@@ -1211,16 +1239,15 @@ showStatusBar=true
showStatusBar\default=true
singleWindowMode=true
singleWindowMode\default=true
-theme=colorful
-theme\default=true
+theme=colorful_dark
+theme\default=false
[WebService]
-="======"
enable_telemetry=false
enable_telemetry\default=false
web_api_url=https://api.yuzu-emu.org
web_api_url\default=true
yuzu_token=
yuzu_token\default=true
-yuzu_username=RetroDECK
+yuzu_username=
yuzu_username\default=true
\ No newline at end of file
From 8147a64cd8c30adfaa230b8161de59daed0158df Mon Sep 17 00:00:00 2001
From: icenine451 <59938822+icenine451@users.noreply.github.com>
Date: Mon, 20 Mar 2023 17:47:49 -0400
Subject: [PATCH 30/64] Move Configurator to RO space
---
es-configs/tools-gamelist.xml | 4 ++--
net.retrodeck.retrodeck.yml | 9 +++++----
retrodeck.sh | 2 +-
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/es-configs/tools-gamelist.xml b/es-configs/tools-gamelist.xml
index 23af3195..3e2cad3c 100644
--- a/es-configs/tools-gamelist.xml
+++ b/es-configs/tools-gamelist.xml
@@ -1,10 +1,10 @@
- ./configurator.sh
+ /app/bin/configurator.sh
RetroDECK Configurator
Change settings, move folders and more!
true
true
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index af12b23c..20dd2214 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -574,7 +574,7 @@ modules:
- --disable-avrcp
- --disable-network
- --disable-obex
- - --disable-bap
+ - --disable-bap
- --disable-mcp
- --with-dbusconfdir=/app/etc
- --with-dbussessionbusdir=/app/usr/lib/system-services
@@ -1054,7 +1054,7 @@ modules:
- cp es-configs/es_settings.xml ${FLATPAK_DEST}/retrodeck/es_settings.xml
# Logo, res, move graphics directory to mutable space so splash can be changed after build
- - mv -f -t ${FLATPAK_DEST}/emulationstation /app/share/emulationstation/resources/graphics
+ - mv -f -t ${FLATPAK_DEST}/emulationstation /app/share/emulationstation/resources/graphics
- ln -s ${FLATPAK_DEST}/emulationstation/graphics /app/share/emulationstation/resources/graphics
- cp -f res/extra-splashes/* ${FLATPAK_DEST}/emulationstation/graphics
- cp -f res/splash.svg ${FLATPAK_DEST}/emulationstation/graphics/splash.svg
@@ -1062,12 +1062,13 @@ modules:
- cp -f res/icon.svg /app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg
# Tools
- - mkdir -p ${FLATPAK_DEST}/retrodeck/tools/
- - cp tools/* ${FLATPAK_DEST}/retrodeck/tools/
- mv -f es-configs/tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/
+ # Launchable scripts
- cp retrodeck.sh /app/bin/retrodeck.sh
- chmod +x /app/bin/retrodeck.sh
+ - cp tools/configurator.sh /app/bin/configurator.sh
+ - chmod +x /app/bin/configurator.sh
# Function libraries
- mkdir -p /app/libexec
diff --git a/retrodeck.sh b/retrodeck.sh
index 1db93be5..27af932c 100644
--- a/retrodeck.sh
+++ b/retrodeck.sh
@@ -45,7 +45,7 @@ https://retrodeck.net
exit
;;
--configurator*)
- sh /var/config/retrodeck/tools/configurator.sh
+ sh /app/bin/configurator.sh
exit
;;
--reset-emulator*)
From 2f78891eb04641173e679711e703fa3ed8c9932a Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 21:48:47 +0000
Subject: [PATCH 31/64] CITRA: config redone (missing controls and hotkeys)
[skip ci]
---
.../qt-config.ini} | 222 ++++++++++--------
functions.sh | 2 +-
2 files changed, 126 insertions(+), 98 deletions(-)
rename emu-configs/{citra-qt-config.ini => citra/qt-config.ini} (67%)
diff --git a/emu-configs/citra-qt-config.ini b/emu-configs/citra/qt-config.ini
similarity index 67%
rename from emu-configs/citra-qt-config.ini
rename to emu-configs/citra/qt-config.ini
index 1bb879f8..0eafdf44 100644
--- a/emu-configs/citra-qt-config.ini
+++ b/emu-configs/citra/qt-config.ini
@@ -1,10 +1,8 @@
[Audio]
+audio_emulation=0
+audio_emulation\default=true
enable_audio_stretching=true
enable_audio_stretching\default=true
-enable_dsp_lle=false
-enable_dsp_lle\default=true
-enable_dsp_lle_multithread=false
-enable_dsp_lle_multithread\default=true
mic_input_device=Default
mic_input_device\default=true
mic_input_type=0
@@ -39,44 +37,44 @@ camera_outer_right_name\default=true
[Controls]
profile=0
profile\default=true
-profiles\1\button_a="button:0,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\button_a\default=false
-profiles\1\button_b="button:1,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\button_b\default=false
+profiles\1\button_a="code:65,engine:keyboard"
+profiles\1\button_a\default=true
+profiles\1\button_b="code:83,engine:keyboard"
+profiles\1\button_b\default=true
profiles\1\button_debug="code:79,engine:keyboard"
profiles\1\button_debug\default=true
-profiles\1\button_down="direction:down,engine:sdl,guid:03000000de280000ff11000001000000,hat:0,port:0"
-profiles\1\button_down\default=false
+profiles\1\button_down="code:71,engine:keyboard"
+profiles\1\button_down\default=true
profiles\1\button_gpio14="code:80,engine:keyboard"
profiles\1\button_gpio14\default=true
-profiles\1\button_home="button:8,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\button_home\default=false
-profiles\1\button_l="button:4,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\button_l\default=false
-profiles\1\button_left="direction:left,engine:sdl,guid:03000000de280000ff11000001000000,hat:0,port:0"
-profiles\1\button_left\default=false
-profiles\1\button_r="button:5,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\button_r\default=false
-profiles\1\button_right="direction:right,engine:sdl,guid:03000000de280000ff11000001000000,hat:0,port:0"
-profiles\1\button_right\default=false
-profiles\1\button_select="button:6,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\button_select\default=false
-profiles\1\button_start="button:7,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\button_start\default=false
-profiles\1\button_up="direction:up,engine:sdl,guid:03000000de280000ff11000001000000,hat:0,port:0"
-profiles\1\button_up\default=false
-profiles\1\button_x="button:2,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\button_x\default=false
-profiles\1\button_y="button:3,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\button_y\default=false
-profiles\1\button_zl="axis:3,direction:-,engine:sdl,guid:03000000de280000ff11000001000000,port:0,threshold:-0.5"
-profiles\1\button_zl\default=false
-profiles\1\button_zr="axis:5,direction:+,engine:sdl,guid:03000000de280000ff11000001000000,port:0,threshold:0.5"
-profiles\1\button_zr\default=false
-profiles\1\c_stick="axis_x:3,axis_y:4,deadzone:0.100000,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\c_stick\default=false
-profiles\1\circle_pad="axis_x:0,axis_y:1,deadzone:0.100000,engine:sdl,guid:03000000de280000ff11000001000000,port:0"
-profiles\1\circle_pad\default=false
+profiles\1\button_home="code:66,engine:keyboard"
+profiles\1\button_home\default=true
+profiles\1\button_l="code:81,engine:keyboard"
+profiles\1\button_l\default=true
+profiles\1\button_left="code:70,engine:keyboard"
+profiles\1\button_left\default=true
+profiles\1\button_r="code:87,engine:keyboard"
+profiles\1\button_r\default=true
+profiles\1\button_right="code:72,engine:keyboard"
+profiles\1\button_right\default=true
+profiles\1\button_select="code:78,engine:keyboard"
+profiles\1\button_select\default=true
+profiles\1\button_start="code:77,engine:keyboard"
+profiles\1\button_start\default=true
+profiles\1\button_up="code:84,engine:keyboard"
+profiles\1\button_up\default=true
+profiles\1\button_x="code:90,engine:keyboard"
+profiles\1\button_x\default=true
+profiles\1\button_y="code:88,engine:keyboard"
+profiles\1\button_y\default=true
+profiles\1\button_zl="code:49,engine:keyboard"
+profiles\1\button_zl\default=true
+profiles\1\button_zr="code:50,engine:keyboard"
+profiles\1\button_zr\default=true
+profiles\1\c_stick="down:code$075$1engine$0keyboard,engine:analog_from_button,left:code$074$1engine$0keyboard,modifier:code$068$1engine$0keyboard,modifier_scale:0.500000,right:code$076$1engine$0keyboard,up:code$073$1engine$0keyboard"
+profiles\1\c_stick\default=true
+profiles\1\circle_pad="down:code$016777237$1engine$0keyboard,engine:analog_from_button,left:code$016777234$1engine$0keyboard,modifier:code$068$1engine$0keyboard,modifier_scale:0.500000,right:code$016777236$1engine$0keyboard,up:code$016777235$1engine$0keyboard"
+profiles\1\circle_pad\default=true
profiles\1\motion_device="engine:motion_emu,update_period:100,sensitivity:0.01,tilt_clamp:90.0"
profiles\1\motion_device\default=true
profiles\1\name=default
@@ -106,10 +104,12 @@ use_cpu_jit=true
use_cpu_jit\default=true
[Data%20Storage]
-nand_directory=~/retrodeck/saves/n3ds/citra/nand/
+nand_directory=/home/deck/retrodeck/saves/n3ds/citra/nand/
nand_directory\default=false
-sdmc_directory=~/retrodeck/saves/n3ds/citra/sdmc/
+sdmc_directory=/home/deck/retrodeck/saves/n3ds/citra/sdmc/
sdmc_directory\default=false
+use_custom_storage=true
+use_custom_storage\default=false
use_virtual_sd=true
use_virtual_sd\default=true
@@ -178,6 +178,8 @@ LLE\NWM=false
LLE\NWM\default=true
LLE\PDN=false
LLE\PDN\default=true
+LLE\PLGLDR=false
+LLE\PLGLDR\default=true
LLE\PM=false
LLE\PM\default=true
LLE\PS=false
@@ -194,36 +196,43 @@ LLE\SPI=false
LLE\SPI\default=true
LLE\SSL=false
LLE\SSL\default=true
-gdbstub_port=24689
+gdbstub_port=@Variant(\0\0\0\x85`q)
gdbstub_port\default=true
record_frame_times=false
use_gdbstub=false
use_gdbstub\default=true
[Layout]
-custom_bottom_bottom=480
+custom_bottom_bottom=@Variant(\0\0\0\x85\x1\xe0)
custom_bottom_bottom\default=true
-custom_bottom_left=40
+custom_bottom_left=@Variant(\0\0\0\x85\0()
custom_bottom_left\default=true
-custom_bottom_right=360
+custom_bottom_right=@Variant(\0\0\0\x85\x1h)
custom_bottom_right\default=true
-custom_bottom_top=240
+custom_bottom_top=@Variant(\0\0\0\x85\0\xf0)
custom_bottom_top\default=true
custom_layout=false
custom_layout\default=true
-custom_top_bottom=240
+custom_second_layer_opacity=@Variant(\0\0\0\x85\0\x64)
+custom_second_layer_opacity\default=true
+custom_top_bottom=@Variant(\0\0\0\x85\0\xf0)
custom_top_bottom\default=true
-custom_top_left=0
+custom_top_left=@Variant(\0\0\0\x85\0\0)
custom_top_left\default=true
-custom_top_right=400
+custom_top_right=@Variant(\0\0\0\x85\x1\x90)
custom_top_right\default=true
-custom_top_top=0
+custom_top_top=@Variant(\0\0\0\x85\0\0)
custom_top_top\default=true
factor_3d=0
factor_3d\default=true
filter_mode=true
filter_mode\default=true
+large_screen_proportion=@Variant(\0\0\0\x87@\x80\0\0)
+large_screen_proportion\default=true
layout_option=0
+layout_option\default=true
+mono_render_option=0
+mono_render_option\default=true
pp_shader_name=none (builtin)
pp_shader_name\default=true
render_3d=0
@@ -244,20 +253,16 @@ bg_green=0
bg_green\default=true
bg_red=0
bg_red\default=true
-frame_limit=100
+frame_limit=@Variant(\0\0\0\x85\0\x64)
frame_limit\default=true
-frame_limit_alternate=200
-frame_limit_alternate\default=true
-resolution_factor=1
+resolution_factor=@Variant(\0\0\0\x85\0\x1)
resolution_factor\default=true
shaders_accurate_mul=true
shaders_accurate_mul\default=true
-texture_filter_name=none
-texture_filter_name\default=true
+texture_filter_name=Linear (Default)
+texture_filter_name\default=false
use_disk_shader_cache=true
use_disk_shader_cache\default=true
-use_frame_limit_alternate=false
-use_frame_limit_alternate\default=true
use_hw_renderer=true
use_hw_renderer\default=true
use_hw_shader=true
@@ -268,12 +273,18 @@ use_vsync_new=true
use_vsync_new\default=true
[System]
+allow_plugin_loader=true
+allow_plugin_loader\default=true
init_clock=0
init_clock\default=true
-init_time=946681277
+init_time=@Variant(\0\0\0\x84\0\0\0\0\x38m5\xbd)
init_time\default=true
+init_time_offset=@Variant(\0\0\0\x81\0\0\0\0\0\0\0\0)
+init_time_offset\default=true
is_new_3ds=true
is_new_3ds\default=true
+plugin_loader=false
+plugin_loader\default=true
region_value=-1
region_value\default=true
@@ -326,20 +337,21 @@ Paths\gamedirs\3\expanded=true
Paths\gamedirs\3\expanded\default=true
Paths\gamedirs\3\path=/home/deck/retrodeck/roms/n3ds
Paths\gamedirs\size=3
-Paths\language=en
-Paths\language\default=false
+Paths\language=
+Paths\language\default=true
Paths\moviePlaybackPath=
Paths\movieRecordPath=
-Paths\recentFiles=
-Paths\romsPath=/home/deck/retrodeck/roms/n3ds
-Paths\screenshotPath=
+Paths\recentFiles=@Invalid()
+Paths\romsPath=
+Paths\screenshotPath=/home/deck/retrodeck/screenshots
+Paths\screenshotPath\default=false
Paths\symbolsPath=
Paths\videoDumpingPath=
-Shortcuts\Main%20Window\Advance%20Frame\Context=2
-Shortcuts\Main%20Window\Advance%20Frame\Context\default=true
-Shortcuts\Main%20Window\Advance%20Frame\KeySeq=\\
+Shortcuts\Main%20Window\Advance%20Frame\Context=1
+Shortcuts\Main%20Window\Advance%20Frame\Context\default=false
+Shortcuts\Main%20Window\Advance%20Frame\KeySeq=
Shortcuts\Main%20Window\Advance%20Frame\KeySeq\default=true
-Shortcuts\Main%20Window\Capture%20Screenshot\Context=2
+Shortcuts\Main%20Window\Capture%20Screenshot\Context=3
Shortcuts\Main%20Window\Capture%20Screenshot\Context\default=true
Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq=Ctrl+P
Shortcuts\Main%20Window\Capture%20Screenshot\KeySeq\default=true
@@ -347,14 +359,18 @@ Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=F4
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=true
+Shortcuts\Main%20Window\Decrease%203D%20Factor\Context=2
+Shortcuts\Main%20Window\Decrease%203D%20Factor\Context\default=true
+Shortcuts\Main%20Window\Decrease%203D%20Factor\KeySeq=Ctrl+-
+Shortcuts\Main%20Window\Decrease%203D%20Factor\KeySeq\default=true
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\Context=2
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\Context\default=true
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq=-
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Citra\Context=1
Shortcuts\Main%20Window\Exit%20Citra\Context\default=true
-Shortcuts\Main%20Window\Exit%20Citra\KeySeq=T
-Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=false
+Shortcuts\Main%20Window\Exit%20Citra\KeySeq=Ctrl+Q
+Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Esc
@@ -363,22 +379,30 @@ Shortcuts\Main%20Window\Fullscreen\Context=1
Shortcuts\Main%20Window\Fullscreen\Context\default=true
Shortcuts\Main%20Window\Fullscreen\KeySeq=F11
Shortcuts\Main%20Window\Fullscreen\KeySeq\default=true
+Shortcuts\Main%20Window\Increase%203D%20Factor\Context=2
+Shortcuts\Main%20Window\Increase%203D%20Factor\Context\default=true
+Shortcuts\Main%20Window\Increase%203D%20Factor\KeySeq=Ctrl++
+Shortcuts\Main%20Window\Increase%203D%20Factor\KeySeq\default=true
Shortcuts\Main%20Window\Increase%20Speed%20Limit\Context=2
Shortcuts\Main%20Window\Increase%20Speed%20Limit\Context\default=true
Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq=+
Shortcuts\Main%20Window\Increase%20Speed%20Limit\KeySeq\default=true
-Shortcuts\Main%20Window\Load%20Amiibo\Context=2
+Shortcuts\Main%20Window\Load%20Amiibo\Context=3
Shortcuts\Main%20Window\Load%20Amiibo\Context\default=true
Shortcuts\Main%20Window\Load%20Amiibo\KeySeq=F2
Shortcuts\Main%20Window\Load%20Amiibo\KeySeq\default=true
-Shortcuts\Main%20Window\Load%20File\Context=1
+Shortcuts\Main%20Window\Load%20File\Context=3
Shortcuts\Main%20Window\Load%20File\Context\default=true
Shortcuts\Main%20Window\Load%20File\KeySeq=Ctrl+O
Shortcuts\Main%20Window\Load%20File\KeySeq\default=true
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context=1
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context\default=true
-Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq=R
-Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq\default=false
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq=Ctrl+V
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq\default=true
+Shortcuts\Main%20Window\Mute%20Audio\Context=1
+Shortcuts\Main%20Window\Mute%20Audio\Context\default=true
+Shortcuts\Main%20Window\Mute%20Audio\KeySeq=Ctrl+M
+Shortcuts\Main%20Window\Mute%20Audio\KeySeq\default=true
Shortcuts\Main%20Window\Remove%20Amiibo\Context=2
Shortcuts\Main%20Window\Remove%20Amiibo\Context\default=true
Shortcuts\Main%20Window\Remove%20Amiibo\KeySeq=F3
@@ -393,28 +417,32 @@ Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq=F8
Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq\default=true
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context=1
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context\default=true
-Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq=L
-Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq\default=false
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq=Ctrl+C
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq\default=true
Shortcuts\Main%20Window\Stop%20Emulation\Context=1
Shortcuts\Main%20Window\Stop%20Emulation\Context\default=true
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=F5
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Swap%20Screens\Context=1
Shortcuts\Main%20Window\Swap%20Screens\Context\default=true
-Shortcuts\Main%20Window\Swap%20Screens\KeySeq=Y
-Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=false
-Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\Context=2
-Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\Context\default=true
-Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\KeySeq=Ctrl+Z
-Shortcuts\Main%20Window\Toggle%20Alternate%20Speed\KeySeq\default=true
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq=F9
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%203D\Context=2
+Shortcuts\Main%20Window\Toggle%203D\Context\default=true
+Shortcuts\Main%20Window\Toggle%203D\KeySeq=Ctrl+3
+Shortcuts\Main%20Window\Toggle%203D\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context=1
-Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Context\default=false
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq=Ctrl+F
-Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Filter%20Bar\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context=2
-Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\Context\default=false
Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq=Ctrl+A
-Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Frame%20Advancing\KeySeq\default=false
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\Context=2
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\Context\default=true
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\KeySeq=Ctrl+Z
+Shortcuts\Main%20Window\Toggle%20Per-Game%20Speed\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context=1
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\Context\default=true
Shortcuts\Main%20Window\Toggle%20Screen%20Layout\KeySeq=F10
@@ -423,17 +451,17 @@ Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context=1
Shortcuts\Main%20Window\Toggle%20Status%20Bar\Context\default=true
Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq=Ctrl+S
Shortcuts\Main%20Window\Toggle%20Status%20Bar\KeySeq\default=true
-Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context=2
-Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context\default=true
-Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq=Ctrl+D
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context=1
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context\default=false
+Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq=
Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq\default=true
-UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x4\x9c\0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\xf0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
-UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\xd6\0\0\0\x97\0\0\x4*\0\0\x2\x43\0\0\0\xd6\0\0\0\xb4\0\0\x4*\0\0\x2\x43\0\0\0\0\0\0\0\0\x5\0\0\0\0\xd6\0\0\0\xb4\0\0\x4*\0\0\x2\x43)
-UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x1\x8f\0\0\x1\xf3\0\0\0\0\0\0\0\x14\0\0\x1\x8f\0\0\x1\xf3\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\x1\x8f\0\0\x1\xf3)
-UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k)
+UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x4 \0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0t\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
+UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\xd6\0\0\0\x97\0\0\x4\xf5\0\0\x2\x43\0\0\0\xd6\0\0\0\xb4\0\0\x4\xf5\0\0\x2\x43\0\0\0\0\0\0\0\0\x5\0\0\0\0\xd6\0\0\0\xb4\0\0\x4\xf5\0\0\x2\x43)
+UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d)
+UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xe7\0\0\x2W\0\0\0\0\0\0\0\0\0\0\x3\xe7\0\0\x2W\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\x3\xe7\0\0\x2W)
UILayout\microProfileDialogVisible=false
UILayout\microProfileDialogVisible\default=true
-UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\0\0\0\x1\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\b\xfb\0\0\0\x18\0\x41\0R\0M\0R\0\x65\0g\0i\0s\0t\0\x65\0r\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0n\x1\0\0\x3\xfb\0\0\0 \0G\0r\0\x61\0p\0h\0i\0\x63\0s\0\x44\0\x65\0\x62\0u\0g\0g\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\xfb\0\0\0\"\0P\0i\0\x63\0\x61\0 \0\x43\0o\0m\0m\0\x61\0n\0\x64\0 \0L\0i\0s\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x94\x1\0\0\x3\xfb\0\0\0*\0P\0i\0\x63\0\x61\0\x42\0r\0\x65\0\x61\0k\0P\0o\0i\0n\0t\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x94\x1\0\0\x3\xfb\0\0\0 \0P\0i\0\x63\0\x61\0V\0\x65\0r\0t\0\x65\0x\0S\0h\0\x61\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\xd2\x1\0\0\x3\xfb\0\0\0\x12\0\x43\0i\0T\0r\0\x61\0\x63\0i\0n\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0N\x1\0\0\x3\xfb\0\0\0.\0L\0L\0\x45\0S\0\x65\0r\0v\0i\0\x63\0\x65\0M\0o\0\x64\0u\0l\0\x65\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\xfb\0\0\0\x16\0I\0P\0\x43\0R\0\x65\0\x63\0o\0r\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xd3\x1\0\0\x3\0\0\x3U\0\0\x1Q\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
+UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\0\0\0\x1\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\b\xfb\0\0\0\x18\0\x41\0R\0M\0R\0\x65\0g\0i\0s\0t\0\x65\0r\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0n\x1\0\0\x3\xfb\0\0\0 \0G\0r\0\x61\0p\0h\0i\0\x63\0s\0\x44\0\x65\0\x62\0u\0g\0g\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\xfb\0\0\0\"\0P\0i\0\x63\0\x61\0 \0\x43\0o\0m\0m\0\x61\0n\0\x64\0 \0L\0i\0s\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x9a\x1\0\0\x3\xfb\0\0\0*\0P\0i\0\x63\0\x61\0\x42\0r\0\x65\0\x61\0k\0P\0o\0i\0n\0t\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x9a\x1\0\0\x3\xfb\0\0\0 \0P\0i\0\x63\0\x61\0V\0\x65\0r\0t\0\x65\0x\0S\0h\0\x61\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\xe1\x1\0\0\x3\xfb\0\0\0\x12\0\x43\0i\0T\0r\0\x61\0\x63\0i\0n\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0T\x1\0\0\x3\xfb\0\0\0.\0L\0L\0\x45\0S\0\x65\0r\0v\0i\0\x63\0\x65\0M\0o\0\x64\0u\0l\0\x65\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\xfb\0\0\0\x16\0I\0P\0\x43\0R\0\x65\0\x63\0o\0r\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xe1\x1\0\0\x3\0\0\x4 \0\0\x1I\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
Updater\check_for_update_on_start=true
Updater\check_for_update_on_start\default=true
Updater\update_on_close=false
@@ -448,13 +476,13 @@ enable_discord_presence=true
enable_discord_presence\default=true
firstStart=false
firstStart\default=false
-fullscreen=true
+fullscreen=false
fullscreen\default=true
hideInactiveMouse=false
hideInactiveMouse\default=true
-pauseWhenInBackground=true
+pauseWhenInBackground=false
pauseWhenInBackground\default=true
-screenshot_resolution_factor=0
+screenshot_resolution_factor=@Variant(\0\0\0\x85\0\0)
screenshot_resolution_factor\default=true
showConsole=false
showConsole\default=true
@@ -498,4 +526,4 @@ citra_username=
enable_telemetry=false
enable_telemetry\default=false
web_api_url=https://api.citra-emu.org
-web_api_url\default=true
+web_api_url\default=true
\ No newline at end of file
diff --git a/functions.sh b/functions.sh
index 45e637e3..557ebbca 100644
--- a/functions.sh
+++ b/functions.sh
@@ -847,7 +847,7 @@ citra_init() {
mkdir -pv "$rdhome/saves/n3ds/citra/sdmc/"
dir_prep "$rdhome/bios/citra/sysdata" "/var/data/citra-emu/sysdata"
dir_prep "$rdhome/.logs/citra" "/var/data/citra-emu/log"
- cp -fv $emuconfigs/citra-qt-config.ini /var/config/citra-emu/qt-config.ini
+ cp -fv $emuconfigs/citra/qt-config.ini /var/config/citra-emu/qt-config.ini
sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
}
From 632e508eba18badd9a09075a4f2f5e068ce00258 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 22:21:44 +0000
Subject: [PATCH 32/64] YUZU, CITRA: added controls and hotkeys
---
emu-configs/citra/qt-config.ini | 92 +++++++-------
emu-configs/yuzu/qt-config.ini | 208 ++++++++++++++++----------------
2 files changed, 150 insertions(+), 150 deletions(-)
diff --git a/emu-configs/citra/qt-config.ini b/emu-configs/citra/qt-config.ini
index 0eafdf44..54f1fa21 100644
--- a/emu-configs/citra/qt-config.ini
+++ b/emu-configs/citra/qt-config.ini
@@ -37,44 +37,44 @@ camera_outer_right_name\default=true
[Controls]
profile=0
profile\default=true
-profiles\1\button_a="code:65,engine:keyboard"
-profiles\1\button_a\default=true
-profiles\1\button_b="code:83,engine:keyboard"
-profiles\1\button_b\default=true
+profiles\1\button_a="button:0,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_a\default=false
+profiles\1\button_b="button:1,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_b\default=false
profiles\1\button_debug="code:79,engine:keyboard"
profiles\1\button_debug\default=true
-profiles\1\button_down="code:71,engine:keyboard"
-profiles\1\button_down\default=true
+profiles\1\button_down="direction:down,engine:sdl,guid:030079f6de280000ff11000001000000,hat:0,port:0"
+profiles\1\button_down\default=false
profiles\1\button_gpio14="code:80,engine:keyboard"
profiles\1\button_gpio14\default=true
profiles\1\button_home="code:66,engine:keyboard"
profiles\1\button_home\default=true
-profiles\1\button_l="code:81,engine:keyboard"
-profiles\1\button_l\default=true
-profiles\1\button_left="code:70,engine:keyboard"
-profiles\1\button_left\default=true
-profiles\1\button_r="code:87,engine:keyboard"
-profiles\1\button_r\default=true
-profiles\1\button_right="code:72,engine:keyboard"
-profiles\1\button_right\default=true
-profiles\1\button_select="code:78,engine:keyboard"
-profiles\1\button_select\default=true
-profiles\1\button_start="code:77,engine:keyboard"
-profiles\1\button_start\default=true
-profiles\1\button_up="code:84,engine:keyboard"
-profiles\1\button_up\default=true
-profiles\1\button_x="code:90,engine:keyboard"
-profiles\1\button_x\default=true
-profiles\1\button_y="code:88,engine:keyboard"
-profiles\1\button_y\default=true
-profiles\1\button_zl="code:49,engine:keyboard"
-profiles\1\button_zl\default=true
-profiles\1\button_zr="code:50,engine:keyboard"
-profiles\1\button_zr\default=true
-profiles\1\c_stick="down:code$075$1engine$0keyboard,engine:analog_from_button,left:code$074$1engine$0keyboard,modifier:code$068$1engine$0keyboard,modifier_scale:0.500000,right:code$076$1engine$0keyboard,up:code$073$1engine$0keyboard"
-profiles\1\c_stick\default=true
-profiles\1\circle_pad="down:code$016777237$1engine$0keyboard,engine:analog_from_button,left:code$016777234$1engine$0keyboard,modifier:code$068$1engine$0keyboard,modifier_scale:0.500000,right:code$016777236$1engine$0keyboard,up:code$016777235$1engine$0keyboard"
-profiles\1\circle_pad\default=true
+profiles\1\button_l="button:4,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_l\default=false
+profiles\1\button_left="direction:left,engine:sdl,guid:030079f6de280000ff11000001000000,hat:0,port:0"
+profiles\1\button_left\default=false
+profiles\1\button_r="button:5,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_r\default=false
+profiles\1\button_right="direction:right,engine:sdl,guid:030079f6de280000ff11000001000000,hat:0,port:0"
+profiles\1\button_right\default=false
+profiles\1\button_select="button:6,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_select\default=false
+profiles\1\button_start="button:7,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_start\default=false
+profiles\1\button_up="direction:up,engine:sdl,guid:030079f6de280000ff11000001000000,hat:0,port:0"
+profiles\1\button_up\default=false
+profiles\1\button_x="button:2,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_x\default=false
+profiles\1\button_y="button:3,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\button_y\default=false
+profiles\1\button_zl="axis:2,direction:+,engine:sdl,guid:030079f6de280000ff11000001000000,port:0,threshold:0.5"
+profiles\1\button_zl\default=false
+profiles\1\button_zr="axis:5,direction:+,engine:sdl,guid:030079f6de280000ff11000001000000,port:0,threshold:0.5"
+profiles\1\button_zr\default=false
+profiles\1\c_stick="axis_x:3,axis_y:4,deadzone:0.100000,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\c_stick\default=false
+profiles\1\circle_pad="axis_x:0,axis_y:1,deadzone:0.100000,engine:sdl,guid:030079f6de280000ff11000001000000,port:0"
+profiles\1\circle_pad\default=false
profiles\1\motion_device="engine:motion_emu,update_period:100,sensitivity:0.01,tilt_clamp:90.0"
profiles\1\motion_device\default=true
profiles\1\name=default
@@ -337,8 +337,8 @@ Paths\gamedirs\3\expanded=true
Paths\gamedirs\3\expanded\default=true
Paths\gamedirs\3\path=/home/deck/retrodeck/roms/n3ds
Paths\gamedirs\size=3
-Paths\language=
-Paths\language\default=true
+Paths\language=en
+Paths\language\default=false
Paths\moviePlaybackPath=
Paths\movieRecordPath=
Paths\recentFiles=@Invalid()
@@ -369,8 +369,8 @@ Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq=-
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Citra\Context=1
Shortcuts\Main%20Window\Exit%20Citra\Context\default=true
-Shortcuts\Main%20Window\Exit%20Citra\KeySeq=Ctrl+Q
-Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20Citra\KeySeq=T
+Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=false
Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Esc
@@ -397,8 +397,8 @@ Shortcuts\Main%20Window\Load%20File\KeySeq=Ctrl+O
Shortcuts\Main%20Window\Load%20File\KeySeq\default=true
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context=1
Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\Context\default=true
-Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq=Ctrl+V
-Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq\default=true
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq=R
+Shortcuts\Main%20Window\Load%20from%20Newest%20Slot\KeySeq\default=false
Shortcuts\Main%20Window\Mute%20Audio\Context=1
Shortcuts\Main%20Window\Mute%20Audio\Context\default=true
Shortcuts\Main%20Window\Mute%20Audio\KeySeq=Ctrl+M
@@ -417,16 +417,16 @@ Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq=F8
Shortcuts\Main%20Window\Rotate%20Screens%20Upright\KeySeq\default=true
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context=1
Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\Context\default=true
-Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq=Ctrl+C
-Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq\default=true
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq=L
+Shortcuts\Main%20Window\Save%20to%20Oldest%20Slot\KeySeq\default=false
Shortcuts\Main%20Window\Stop%20Emulation\Context=1
Shortcuts\Main%20Window\Stop%20Emulation\Context\default=true
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=F5
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Swap%20Screens\Context=1
Shortcuts\Main%20Window\Swap%20Screens\Context\default=true
-Shortcuts\Main%20Window\Swap%20Screens\KeySeq=F9
-Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=true
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq=Y
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%203D\Context=2
Shortcuts\Main%20Window\Toggle%203D\Context\default=true
Shortcuts\Main%20Window\Toggle%203D\KeySeq=Ctrl+3
@@ -456,12 +456,12 @@ Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\Context\default=false
Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq=
Shortcuts\Main%20Window\Toggle%20Texture%20Dumping\KeySeq\default=true
UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x4 \0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0t\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
-UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\xd6\0\0\0\x97\0\0\x4\xf5\0\0\x2\x43\0\0\0\xd6\0\0\0\xb4\0\0\x4\xf5\0\0\x2\x43\0\0\0\0\0\0\0\0\x5\0\0\0\0\xd6\0\0\0\xb4\0\0\x4\xf5\0\0\x2\x43)
-UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\0\x63\0\0\0\x1d)
-UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3\xe7\0\0\x2W\0\0\0\0\0\0\0\0\0\0\x3\xe7\0\0\x2W\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\0\0\0\x3\xe7\0\0\x2W)
+UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4\x1f\0\0\x1\x8f\0\0\0\0\0\0\0\0\0\0\x4\x1f\0\0\x1\x8f\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\0\0\0\x4\x1f\0\0\x1\x8f)
+UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
+UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k)
UILayout\microProfileDialogVisible=false
UILayout\microProfileDialogVisible\default=true
-UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\0\0\0\x1\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\b\xfb\0\0\0\x18\0\x41\0R\0M\0R\0\x65\0g\0i\0s\0t\0\x65\0r\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0n\x1\0\0\x3\xfb\0\0\0 \0G\0r\0\x61\0p\0h\0i\0\x63\0s\0\x44\0\x65\0\x62\0u\0g\0g\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\xfb\0\0\0\"\0P\0i\0\x63\0\x61\0 \0\x43\0o\0m\0m\0\x61\0n\0\x64\0 \0L\0i\0s\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x9a\x1\0\0\x3\xfb\0\0\0*\0P\0i\0\x63\0\x61\0\x42\0r\0\x65\0\x61\0k\0P\0o\0i\0n\0t\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x9a\x1\0\0\x3\xfb\0\0\0 \0P\0i\0\x63\0\x61\0V\0\x65\0r\0t\0\x65\0x\0S\0h\0\x61\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\xe1\x1\0\0\x3\xfb\0\0\0\x12\0\x43\0i\0T\0r\0\x61\0\x63\0i\0n\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0T\x1\0\0\x3\xfb\0\0\0.\0L\0L\0\x45\0S\0\x65\0r\0v\0i\0\x63\0\x65\0M\0o\0\x64\0u\0l\0\x65\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x62\x1\0\0\x3\xfb\0\0\0\x16\0I\0P\0\x43\0R\0\x65\0\x63\0o\0r\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xe1\x1\0\0\x3\0\0\x4 \0\0\x1I\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
+UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x2\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0V\0\xff\xff\xff\0\0\0\x1\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\b\xfb\0\0\0\x18\0\x41\0R\0M\0R\0\x65\0g\0i\0s\0t\0\x65\0r\0s\0\0\0\0\0\xff\xff\xff\xff\0\0\0h\0\xff\xff\xff\xfb\0\0\0 \0G\0r\0\x61\0p\0h\0i\0\x63\0s\0\x44\0\x65\0\x62\0u\0g\0g\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0V\0\xff\xff\xff\xfb\0\0\0\"\0P\0i\0\x63\0\x61\0 \0\x43\0o\0m\0m\0\x61\0n\0\x64\0 \0L\0i\0s\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x87\0\xff\xff\xff\xfb\0\0\0*\0P\0i\0\x63\0\x61\0\x42\0r\0\x65\0\x61\0k\0P\0o\0i\0n\0t\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x87\0\xff\xff\xff\xfb\0\0\0 \0P\0i\0\x63\0\x61\0V\0\x65\0r\0t\0\x65\0x\0S\0h\0\x61\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\x1\xaa\0\xff\xff\xff\xfb\0\0\0\x12\0\x43\0i\0T\0r\0\x61\0\x63\0i\0n\0g\0\0\0\0\0\xff\xff\xff\xff\0\0\0\x41\0\xff\xff\xff\xfb\0\0\0.\0L\0L\0\x45\0S\0\x65\0r\0v\0i\0\x63\0\x65\0M\0o\0\x64\0u\0l\0\x65\0s\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0V\0\xff\xff\xff\xfb\0\0\0\x16\0I\0P\0\x43\0R\0\x65\0\x63\0o\0r\0\x64\0\x65\0r\0\0\0\0\0\xff\xff\xff\xff\0\0\0\xc3\0\xff\xff\xff\0\0\x4 \0\0\x1^\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
Updater\check_for_update_on_start=true
Updater\check_for_update_on_start\default=true
Updater\update_on_close=false
diff --git a/emu-configs/yuzu/qt-config.ini b/emu-configs/yuzu/qt-config.ini
index 0d9ca0b3..bdc3d216 100644
--- a/emu-configs/yuzu/qt-config.ini
+++ b/emu-configs/yuzu/qt-config.ini
@@ -89,60 +89,60 @@ player_0_body_color_left=4278893030
player_0_body_color_left\default=false
player_0_body_color_right=4294917160
player_0_body_color_right\default=false
-player_0_button_a="toggle:0,code:67,engine:keyboard"
-player_0_button_a\default=true
-player_0_button_b="toggle:0,code:88,engine:keyboard"
-player_0_button_b\default=true
+player_0_button_a="pad:0,button:1,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_a\default=false
+player_0_button_b="pad:0,button:0,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_b\default=false
player_0_button_color_left=4278197790
player_0_button_color_left\default=false
player_0_button_color_right=4280158730
player_0_button_color_right\default=false
-player_0_button_ddown="toggle:0,code:16777237,engine:keyboard"
-player_0_button_ddown\default=true
-player_0_button_dleft="toggle:0,code:16777234,engine:keyboard"
-player_0_button_dleft\default=true
-player_0_button_dright="toggle:0,code:16777236,engine:keyboard"
-player_0_button_dright\default=true
-player_0_button_dup="toggle:0,code:16777235,engine:keyboard"
-player_0_button_dup\default=true
-player_0_button_home="toggle:0,code:0,engine:keyboard"
-player_0_button_home\default=true
-player_0_button_l="toggle:0,code:81,engine:keyboard"
-player_0_button_l\default=true
-player_0_button_lstick="toggle:0,code:70,engine:keyboard"
-player_0_button_lstick\default=true
-player_0_button_minus="toggle:0,code:78,engine:keyboard"
-player_0_button_minus\default=true
-player_0_button_plus="toggle:0,code:77,engine:keyboard"
-player_0_button_plus\default=true
-player_0_button_r="toggle:0,code:69,engine:keyboard"
-player_0_button_r\default=true
-player_0_button_rstick="toggle:0,code:71,engine:keyboard"
-player_0_button_rstick\default=true
-player_0_button_screenshot="toggle:0,code:0,engine:keyboard"
-player_0_button_screenshot\default=true
+player_0_button_ddown="hat:0,pad:0,direction:down,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_ddown\default=false
+player_0_button_dleft="hat:0,pad:0,direction:left,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_dleft\default=false
+player_0_button_dright="hat:0,pad:0,direction:right,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_dright\default=false
+player_0_button_dup="hat:0,pad:0,direction:up,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_dup\default=false
+player_0_button_home="engine:keyboard,port:0,pad:0,code:76"
+player_0_button_home\default=false
+player_0_button_l="pad:0,button:4,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_l\default=false
+player_0_button_lstick="pad:0,button:9,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_lstick\default=false
+player_0_button_minus="pad:0,button:6,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_minus\default=false
+player_0_button_plus="pad:0,button:7,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_plus\default=false
+player_0_button_r="pad:0,button:5,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_r\default=false
+player_0_button_rstick="pad:0,button:10,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_rstick\default=false
+player_0_button_screenshot="engine:keyboard,port:0,pad:0,code:82"
+player_0_button_screenshot\default=false
player_0_button_sl="toggle:0,code:81,engine:keyboard"
player_0_button_sl\default=true
player_0_button_sr="toggle:0,code:69,engine:keyboard"
player_0_button_sr\default=true
-player_0_button_x="toggle:0,code:86,engine:keyboard"
-player_0_button_x\default=true
-player_0_button_y="toggle:0,code:90,engine:keyboard"
-player_0_button_y\default=true
-player_0_button_zl="toggle:0,code:82,engine:keyboard"
-player_0_button_zl\default=true
-player_0_button_zr="toggle:0,code:84,engine:keyboard"
-player_0_button_zr\default=true
+player_0_button_x="pad:0,button:3,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_x\default=false
+player_0_button_y="pad:0,button:2,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_y\default=false
+player_0_button_zl="threshold:0.500000,axis:2,pad:0,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_zl\default=false
+player_0_button_zr="threshold:0.500000,axis:5,pad:0,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_button_zr\default=false
player_0_connected=true
player_0_connected\default=true
-player_0_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
-player_0_lstick\default=true
+player_0_lstick="range:0.950000,deadzone:0.150000,threshold:0.500000,axis_y:1,axis_x:0,pad:0,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_lstick\default=false
player_0_motionleft="toggle:0,code:55,engine:keyboard"
player_0_motionleft\default=true
player_0_motionright="toggle:0,code:56,engine:keyboard"
player_0_motionright\default=true
-player_0_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
-player_0_rstick\default=true
+player_0_rstick="range:0.950000,deadzone:0.150000,threshold:0.500000,axis_y:4,axis_x:3,pad:0,port:0,guid:03000000de280000ff11000001000000,engine:sdl"
+player_0_rstick\default=false
player_0_type=0
player_0_type\default=true
player_0_vibration_enabled=true
@@ -601,60 +601,60 @@ player_8_body_color_left=702950
player_8_body_color_left\default=true
player_8_body_color_right=16727080
player_8_body_color_right\default=true
-player_8_button_a="engine:keyboard,code:67,toggle:0"
-player_8_button_a\default=false
-player_8_button_b="engine:keyboard,code:88,toggle:0"
-player_8_button_b\default=false
+player_8_button_a="toggle:0,code:67,engine:keyboard"
+player_8_button_a\default=true
+player_8_button_b="toggle:0,code:88,engine:keyboard"
+player_8_button_b\default=true
player_8_button_color_left=7710
player_8_button_color_left\default=true
player_8_button_color_right=1968650
player_8_button_color_right\default=true
-player_8_button_ddown="engine:keyboard,code:16777237,toggle:0"
-player_8_button_ddown\default=false
-player_8_button_dleft="engine:keyboard,code:16777234,toggle:0"
-player_8_button_dleft\default=false
-player_8_button_dright="engine:keyboard,code:16777236,toggle:0"
-player_8_button_dright\default=false
-player_8_button_dup="engine:keyboard,code:16777235,toggle:0"
-player_8_button_dup\default=false
-player_8_button_home="engine:keyboard,code:0,toggle:0"
-player_8_button_home\default=false
-player_8_button_l="engine:keyboard,code:81,toggle:0"
-player_8_button_l\default=false
-player_8_button_lstick="engine:keyboard,code:70,toggle:0"
-player_8_button_lstick\default=false
-player_8_button_minus="engine:keyboard,code:78,toggle:0"
-player_8_button_minus\default=false
-player_8_button_plus="engine:keyboard,code:77,toggle:0"
-player_8_button_plus\default=false
-player_8_button_r="engine:keyboard,code:69,toggle:0"
-player_8_button_r\default=false
-player_8_button_rstick="engine:keyboard,code:71,toggle:0"
-player_8_button_rstick\default=false
-player_8_button_screenshot="engine:keyboard,code:0,toggle:0"
-player_8_button_screenshot\default=false
-player_8_button_sl="engine:keyboard,code:81,toggle:0"
-player_8_button_sl\default=false
-player_8_button_sr="engine:keyboard,code:69,toggle:0"
-player_8_button_sr\default=false
-player_8_button_x="engine:keyboard,code:86,toggle:0"
-player_8_button_x\default=false
-player_8_button_y="engine:keyboard,code:90,toggle:0"
-player_8_button_y\default=false
-player_8_button_zl="engine:keyboard,code:82,toggle:0"
-player_8_button_zl\default=false
-player_8_button_zr="engine:keyboard,code:84,toggle:0"
-player_8_button_zr\default=false
+player_8_button_ddown="toggle:0,code:16777237,engine:keyboard"
+player_8_button_ddown\default=true
+player_8_button_dleft="toggle:0,code:16777234,engine:keyboard"
+player_8_button_dleft\default=true
+player_8_button_dright="toggle:0,code:16777236,engine:keyboard"
+player_8_button_dright\default=true
+player_8_button_dup="toggle:0,code:16777235,engine:keyboard"
+player_8_button_dup\default=true
+player_8_button_home="toggle:0,code:0,engine:keyboard"
+player_8_button_home\default=true
+player_8_button_l="toggle:0,code:81,engine:keyboard"
+player_8_button_l\default=true
+player_8_button_lstick="toggle:0,code:70,engine:keyboard"
+player_8_button_lstick\default=true
+player_8_button_minus="toggle:0,code:78,engine:keyboard"
+player_8_button_minus\default=true
+player_8_button_plus="toggle:0,code:77,engine:keyboard"
+player_8_button_plus\default=true
+player_8_button_r="toggle:0,code:69,engine:keyboard"
+player_8_button_r\default=true
+player_8_button_rstick="toggle:0,code:71,engine:keyboard"
+player_8_button_rstick\default=true
+player_8_button_screenshot="toggle:0,code:0,engine:keyboard"
+player_8_button_screenshot\default=true
+player_8_button_sl="toggle:0,code:81,engine:keyboard"
+player_8_button_sl\default=true
+player_8_button_sr="toggle:0,code:69,engine:keyboard"
+player_8_button_sr\default=true
+player_8_button_x="toggle:0,code:86,engine:keyboard"
+player_8_button_x\default=true
+player_8_button_y="toggle:0,code:90,engine:keyboard"
+player_8_button_y\default=true
+player_8_button_zl="toggle:0,code:82,engine:keyboard"
+player_8_button_zl\default=true
+player_8_button_zr="toggle:0,code:84,engine:keyboard"
+player_8_button_zr\default=true
player_8_connected=false
player_8_connected\default=true
-player_8_lstick="engine:analog_from_button,up:toggle$00$1code$087$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,modifier:toggle$00$1code$016777248$1engine$0keyboard,modifier_scale:0.500000"
-player_8_lstick\default=false
-player_8_motionleft="engine:keyboard,code:55,toggle:0"
-player_8_motionleft\default=false
-player_8_motionright="engine:keyboard,code:56,toggle:0"
-player_8_motionright\default=false
-player_8_rstick="engine:analog_from_button,up:toggle$00$1code$073$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,modifier:toggle$00$1code$00$1engine$0keyboard,modifier_scale:0.500000"
-player_8_rstick\default=false
+player_8_lstick="modifier_scale:0.500000,modifier:toggle$00$1code$016777248$1engine$0keyboard,right:toggle$00$1code$068$1engine$0keyboard,left:toggle$00$1code$065$1engine$0keyboard,down:toggle$00$1code$083$1engine$0keyboard,up:toggle$00$1code$087$1engine$0keyboard,engine:analog_from_button"
+player_8_lstick\default=true
+player_8_motionleft="toggle:0,code:55,engine:keyboard"
+player_8_motionleft\default=true
+player_8_motionright="toggle:0,code:56,engine:keyboard"
+player_8_motionright\default=true
+player_8_rstick="modifier_scale:0.500000,modifier:toggle$00$1code$00$1engine$0keyboard,right:toggle$00$1code$076$1engine$0keyboard,left:toggle$00$1code$074$1engine$0keyboard,down:toggle$00$1code$075$1engine$0keyboard,up:toggle$00$1code$073$1engine$0keyboard,engine:analog_from_button"
+player_8_rstick\default=true
player_8_type=0
player_8_type\default=true
player_8_vibration_enabled=true
@@ -997,8 +997,8 @@ Paths\gamedirs\4\expanded=true
Paths\gamedirs\4\expanded\default=true
Paths\gamedirs\4\path=/home/deck/retrodeck/roms/switch
Paths\gamedirs\size=4
-Paths\language=
-Paths\language\default=true
+Paths\language=en
+Paths\language\default=false
Paths\recentFiles=@Invalid()
Paths\romsPath=
Paths\symbolsPath=
@@ -1063,16 +1063,16 @@ Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat=false
Shortcuts\Main%20Window\Change%20GPU%20Accuracy\Repeat\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context=1
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Context\default=true
-Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq=Home+Plus
-Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq=Home+B
+Shortcuts\Main%20Window\Continue\Pause%20Emulation\Controller_KeySeq\default=false
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq=F4
Shortcuts\Main%20Window\Continue\Pause%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat=false
Shortcuts\Main%20Window\Continue\Pause%20Emulation\Repeat\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
-Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq=
-Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq=Home+A
+Shortcuts\Main%20Window\Exit%20Fullscreen\Controller_KeySeq\default=false
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Esc
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\Repeat=false
@@ -1087,8 +1087,8 @@ Shortcuts\Main%20Window\Exit%20yuzu\Repeat=false
Shortcuts\Main%20Window\Exit%20yuzu\Repeat\default=true
Shortcuts\Main%20Window\Fullscreen\Context=1
Shortcuts\Main%20Window\Fullscreen\Context\default=true
-Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq=Home+B
-Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq=
+Shortcuts\Main%20Window\Fullscreen\Controller_KeySeq\default=false
Shortcuts\Main%20Window\Fullscreen\KeySeq=F11
Shortcuts\Main%20Window\Fullscreen\KeySeq\default=true
Shortcuts\Main%20Window\Fullscreen\Repeat=false
@@ -1103,8 +1103,8 @@ Shortcuts\Main%20Window\Load%20File\Repeat=false
Shortcuts\Main%20Window\Load%20File\Repeat\default=true
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context=3
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Context\default=true
-Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq=Home+A
-Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq=Home+Y
+Shortcuts\Main%20Window\Load\Remove%20Amiibo\Controller_KeySeq\default=false
Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq=F2
Shortcuts\Main%20Window\Load\Remove%20Amiibo\KeySeq\default=true
Shortcuts\Main%20Window\Load\Remove%20Amiibo\Repeat=false
@@ -1159,8 +1159,8 @@ Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat=false
Shortcuts\Main%20Window\Toggle%20Filter%20Bar\Repeat\default=true
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context=2
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Context\default=true
-Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq=Home+Y
-Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq\default=true
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq=
+Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Controller_KeySeq\default=false
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq=Ctrl+U
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%20Framerate%20Limit\Repeat=false
@@ -1203,9 +1203,9 @@ UIGameList\show_size\default=true
UIGameList\show_types=true
UIGameList\show_types\default=true
UILayout\gameListHeaderState=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x5\x1\0\0\0\0\0\0\0\0\0\0\0\x5\x2\0\0\0\x1\0\0\0\x1\0\0\0\x64\0\0\x4X\0\0\0\x5\x1\x1\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x5\0\0\x2\x80\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x1\x10\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64)
-UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0}\0\0\0\x8d\0\0\x4\xd4\0\0\x2\xbe\0\0\0}\0\0\0\xaa\0\0\x4\xd4\0\0\x2\xbe\0\0\0\0\0\0\0\0\x5\0\0\0\0}\0\0\0\xaa\0\0\x4\xd4\0\0\x2\xbe)
-UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
-UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\0\x5\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k)
+UILayout\geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4W\0\0\x2\x14\0\0\0\0\0\0\0\0\0\0\x4W\0\0\x2\x14\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\0\0\0\x4W\0\0\x2\x14)
+UILayout\geometryRenderWindow=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\x14\0\0\0\x63\0\0\0\x31)
+UILayout\microProfileDialogGeometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k\0\0\0\0\0\0\0\0\x4\xfd\0\0\0\0\0\0\0\x14\0\0\x3\xe7\0\0\x2k)
UILayout\microProfileDialogVisible=false
UILayout\microProfileDialogVisible\default=true
UILayout\state=@ByteArray(\0\0\0\xff\0\0\0\0\xfd\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\xfc\x2\0\0\0\x1\xfb\0\0\0\x1c\0W\0\x61\0i\0t\0T\0r\0\x65\0\x65\0W\0i\0\x64\0g\0\x65\0t\0\0\0\0\0\xff\xff\xff\xff\0\0\0V\0\xff\xff\xff\0\0\x4X\0\0\x1\xeb\0\0\0\x4\0\0\0\x4\0\0\0\b\0\0\0\b\xfc\0\0\0\0)
@@ -1249,5 +1249,5 @@ web_api_url=https://api.yuzu-emu.org
web_api_url\default=true
yuzu_token=
yuzu_token\default=true
-yuzu_username=
+yuzu_username=RetroDECK
yuzu_username\default=true
\ No newline at end of file
From 92aa1d49ce5d933b386dbcbe114cb814755f46c9 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Mon, 20 Mar 2023 22:56:46 +0000
Subject: [PATCH 33/64] CITRA: tweaked configs + fullscreen
---
emu-configs/citra/qt-config.ini | 10 +++++-----
es-configs/es_systems.xml | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/emu-configs/citra/qt-config.ini b/emu-configs/citra/qt-config.ini
index 54f1fa21..55c0bf80 100644
--- a/emu-configs/citra/qt-config.ini
+++ b/emu-configs/citra/qt-config.ini
@@ -373,8 +373,8 @@ Shortcuts\Main%20Window\Exit%20Citra\KeySeq=T
Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=false
Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
-Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Esc
-Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=true
+Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Y
+Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq\default=false
Shortcuts\Main%20Window\Fullscreen\Context=1
Shortcuts\Main%20Window\Fullscreen\Context\default=true
Shortcuts\Main%20Window\Fullscreen\KeySeq=F11
@@ -425,8 +425,8 @@ Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=F5
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Swap%20Screens\Context=1
Shortcuts\Main%20Window\Swap%20Screens\Context\default=true
-Shortcuts\Main%20Window\Swap%20Screens\KeySeq=Y
-Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=false
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq=F9
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=true
Shortcuts\Main%20Window\Toggle%203D\Context=2
Shortcuts\Main%20Window\Toggle%203D\Context\default=true
Shortcuts\Main%20Window\Toggle%203D\KeySeq=Ctrl+3
@@ -522,7 +522,7 @@ video_encoder_options\default=true
[WebService]
citra_token=
-citra_username=
+citra_username=RetroDECK
enable_telemetry=false
enable_telemetry\default=false
web_api_url=https://api.citra-emu.org
diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml
index 63acdcc9..44f85c80 100644
--- a/es-configs/es_systems.xml
+++ b/es-configs/es_systems.xml
@@ -824,7 +824,7 @@
Nintendo 3DS
%ROMPATH%/n3ds
.3ds .3DS .3dsx .3DSX .app .APP .axf .AXF .cci .CCI .cxi .CXI .elf .ELF .7z .7Z .zip .ZIP
- %EMULATOR_CITRA% %ROM%
+ %EMULATOR_CITRA% -f %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/citra_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/citra2018_libretro.so %ROM%
n3ds
From e9bef6919bb1030d157f87194b40e02c971e2ab6 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 08:13:39 +0000
Subject: [PATCH 34/64] MANIFEST: fixed wrong branch
---
net.retrodeck.retrodeck.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index af12b23c..52bd2b0b 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -88,7 +88,7 @@ modules:
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK.git
- branch: main
+ branch: cooker-0.6.3b
- name: xmlstarlet
config-opts:
From 4c3416fac29ee8d11827728811df56a808fd5e48 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 08:13:52 +0000
Subject: [PATCH 35/64] MANIFEST: fixed wrong branch [skip ci]
---
net.retrodeck.retrodeck.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index 52bd2b0b..ce49a6e0 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -1093,4 +1093,4 @@ modules:
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK.git
- branch: cooker-0.6.3b
+ branch: cooker-0.6.3b
\ No newline at end of file
From bdd832d7c148e7030c705a08e77423734f3abf26 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 08:52:04 +0000
Subject: [PATCH 36/64] WF: fixed pipelines not uploading artifacts
---
.github/workflows/cooker-selfhosted.yml | 10 ++++++----
.github/workflows/main-selfhosted.yml | 4 +++-
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index 4dc6a128..32000afe 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -47,14 +47,16 @@ jobs:
- name: Build flatpak
run: |
git config --global protocol.file.allow always
+ mkdir -vp ${GITHUB_WORKSPACE}/local
+ mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker
flatpak-builder --user --force-clean --install-deps-from=flathub --install-deps-from=flathub-beta --repo=${GITHUB_WORKSPACE}/local ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
- name: Create Artifact for flathub
run: |
- tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
- hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact.tar.gz))
- echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact.sha
- mv -f RetroDECK-Artifact.* ${{ secrets.ARTIFACT_REPO }}
+ tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
+ hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz))
+ echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
+ mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
continue-on-error: true
- name: Create Bundle
diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml
index f3b917e1..7c9d2a71 100644
--- a/.github/workflows/main-selfhosted.yml
+++ b/.github/workflows/main-selfhosted.yml
@@ -44,7 +44,9 @@ jobs:
- name: Build flatpak
run: |
- git config --global protocol.allow always
+ git config --global protocol.file.allow always
+ mkdir -vp ${GITHUB_WORKSPACE}/local
+ mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker
flatpak-builder --user --force-clean --install-deps-from=flathub --install-deps-from=flathub-beta --repo=${GITHUB_WORKSPACE}/local ${GITHUB_WORKSPACE}/retrodeck-flatpak-main net.retrodeck.retrodeck.yml
- name: Create Artifact for flathub
From 415ec02ac5fbf4cb259014a1a1ca1e0f3bcfaef7 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Tue, 21 Mar 2023 09:51:07 -0400
Subject: [PATCH 37/64] - Removed legacy PCSX2 entries - Internalized Yuzu
config paths for FP
---
emu-configs/yuzu/qt-config.ini | 6 +++---
es-configs/es_find_rules.xml | 12 ------------
es-configs/es_systems.xml | 1 -
3 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/emu-configs/yuzu/qt-config.ini b/emu-configs/yuzu/qt-config.ini
index bdc3d216..3d9c68a4 100644
--- a/emu-configs/yuzu/qt-config.ini
+++ b/emu-configs/yuzu/qt-config.ini
@@ -805,7 +805,7 @@ cpuopt_unsafe_unfuse_fma=true
cpuopt_unsafe_unfuse_fma\default=true
[Data%20Storage]
-dump_directory=/home/deck/.var/app/net.retrodeck.retrodeck/data/yuzu/dump
+dump_directory=/var/data/yuzu/dump
dump_directory\default=true
gamecard_current_game=false
gamecard_current_game\default=true
@@ -813,13 +813,13 @@ gamecard_inserted=false
gamecard_inserted\default=true
gamecard_path=
gamecard_path\default=true
-load_directory=/home/deck/.var/app/net.retrodeck.retrodeck/data/yuzu/load
+load_directory=/var/data/yuzu/load
load_directory\default=true
nand_directory=/home/deck/retrodeck/saves/switch/yuzu/nand
nand_directory\default=true
sdmc_directory=/home/deck/retrodeck/saves/switch/yuzu/sdmc
sdmc_directory\default=true
-tas_directory=/home/deck/.var/app/net.retrodeck.retrodeck/data/yuzu/tas
+tas_directory=/var/data/yuzu/tas
tas_directory\default=true
use_virtual_sd=true
use_virtual_sd\default=true
diff --git a/es-configs/es_find_rules.xml b/es-configs/es_find_rules.xml
index 3e71b426..78791834 100644
--- a/es-configs/es_find_rules.xml
+++ b/es-configs/es_find_rules.xml
@@ -327,18 +327,6 @@
~/bin/pcsx2*-Qt.AppImage
-
-
-
- PCSX2
- pcsx2
- net.pcsx2.PCSX2
-
-
- /var/lib/flatpak/exports/bin/net.pcsx2.PCSX2
- ~/.local/share/flatpak/exports/bin/net.pcsx2.PCSX2
-
-
diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml
index 44f85c80..f48f4f24 100644
--- a/es-configs/es_systems.xml
+++ b/es-configs/es_systems.xml
@@ -1071,7 +1071,6 @@
%EMULATOR_PCSX2% -batch %ROM%
.bin .BIN .chd .CHD .ciso .CISO .cso .CSO .dump .DUMP .elf .ELF .gz .GZ .m3u .M3U .mdf .MDF .img .IMG .iso .ISO .isz .ISZ .ngr .NRG
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/pcsx2_libretro.so %ROM%
-
ps2
ps2
From b673f8ae7770b7ac008d74c90ab216e52a2baa63 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Tue, 21 Mar 2023 10:01:16 -0400
Subject: [PATCH 38/64] Internalized paths for init commands.
---
emu-configs/citra/qt-config.ini | 8 ++++----
emu-configs/yuzu/qt-config.ini | 8 ++++----
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/emu-configs/citra/qt-config.ini b/emu-configs/citra/qt-config.ini
index 55c0bf80..3efd3d21 100644
--- a/emu-configs/citra/qt-config.ini
+++ b/emu-configs/citra/qt-config.ini
@@ -104,9 +104,9 @@ use_cpu_jit=true
use_cpu_jit\default=true
[Data%20Storage]
-nand_directory=/home/deck/retrodeck/saves/n3ds/citra/nand/
+nand_directory=~retrodeck/saves/n3ds/citra/nand/
nand_directory\default=false
-sdmc_directory=/home/deck/retrodeck/saves/n3ds/citra/sdmc/
+sdmc_directory=~retrodeck/saves/n3ds/citra/sdmc/
sdmc_directory\default=false
use_custom_storage=true
use_custom_storage\default=false
@@ -335,7 +335,7 @@ Paths\gamedirs\3\deep_scan=false
Paths\gamedirs\3\deep_scan\default=true
Paths\gamedirs\3\expanded=true
Paths\gamedirs\3\expanded\default=true
-Paths\gamedirs\3\path=/home/deck/retrodeck/roms/n3ds
+Paths\gamedirs\3\path=~retrodeck/roms/n3ds
Paths\gamedirs\size=3
Paths\language=en
Paths\language\default=false
@@ -343,7 +343,7 @@ Paths\moviePlaybackPath=
Paths\movieRecordPath=
Paths\recentFiles=@Invalid()
Paths\romsPath=
-Paths\screenshotPath=/home/deck/retrodeck/screenshots
+Paths\screenshotPath=~retrodeck/screenshots
Paths\screenshotPath\default=false
Paths\symbolsPath=
Paths\videoDumpingPath=
diff --git a/emu-configs/yuzu/qt-config.ini b/emu-configs/yuzu/qt-config.ini
index 3d9c68a4..76f79f3c 100644
--- a/emu-configs/yuzu/qt-config.ini
+++ b/emu-configs/yuzu/qt-config.ini
@@ -815,9 +815,9 @@ gamecard_path=
gamecard_path\default=true
load_directory=/var/data/yuzu/load
load_directory\default=true
-nand_directory=/home/deck/retrodeck/saves/switch/yuzu/nand
+nand_directory=~retrodeck/saves/switch/yuzu/nand
nand_directory\default=true
-sdmc_directory=/home/deck/retrodeck/saves/switch/yuzu/sdmc
+sdmc_directory=~retrodeck/saves/switch/yuzu/sdmc
sdmc_directory\default=true
tas_directory=/var/data/yuzu/tas
tas_directory\default=true
@@ -995,7 +995,7 @@ Paths\gamedirs\4\deep_scan=false
Paths\gamedirs\4\deep_scan\default=true
Paths\gamedirs\4\expanded=true
Paths\gamedirs\4\expanded\default=true
-Paths\gamedirs\4\path=/home/deck/retrodeck/roms/switch
+Paths\gamedirs\4\path=~retrodeck/roms/switch
Paths\gamedirs\size=4
Paths\language=en
Paths\language\default=false
@@ -1004,7 +1004,7 @@ Paths\romsPath=
Paths\symbolsPath=
Screenshots\enable_screenshot_save_as=true
Screenshots\enable_screenshot_save_as\default=true
-Screenshots\screenshot_path=/home/deck/retrodeck/screenshots/
+Screenshots\screenshot_path=~retrodeck/screenshots/
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context=1
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context\default=true
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq=Home+Dpad_Right
From c65a9af0d397543a8e9ca3a543c53cc62e515d4e Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 14:08:27 +0000
Subject: [PATCH 39/64] WF: restored unstucker
---
.github/workflows/cooker-selfhosted.yml | 6 +++---
.github/workflows/main-selfhosted.yml | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index 32000afe..0401daab 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -17,9 +17,9 @@ jobs:
runs-on: self-hosted
steps:
- # - name: Remove stuck mounts
- # run: sudo umount -f /home/administrator/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
- # continue-on-error: true
+ - name: Remove stuck mounts
+ run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
+ continue-on-error: true
- name: Generate build ID
id: generating_buildid
diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml
index 7c9d2a71..24c0d8d6 100644
--- a/.github/workflows/main-selfhosted.yml
+++ b/.github/workflows/main-selfhosted.yml
@@ -17,9 +17,9 @@ jobs:
runs-on: self-hosted
steps:
- # - name: Remove stuck mounts
- # run: sudo umount -f /home/administrator/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
- # continue-on-error: true
+ - name: Remove stuck mounts
+ run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
+ continue-on-error: true
- name: Generate build ID
id: generating_buildid
From 5105eaf855bdc7d88ae3c910b2615199b27b4c85 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 14:10:25 +0000
Subject: [PATCH 40/64] WF: restored unstucker
---
rd-submodules/retroarch | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch
index 0b1cfb79..717b7809 160000
--- a/rd-submodules/retroarch
+++ b/rd-submodules/retroarch
@@ -1 +1 @@
-Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409
+Subproject commit 717b78093797270877ec416e58082f1c71d435d8
From a7505ad4f21236dede727e18167b26bbbcf8c410 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 14:14:28 +0000
Subject: [PATCH 41/64] WF: restored unstucker [skip ci]
---
.github/workflows/cooker-selfhosted.yml | 1 +
.github/workflows/main-selfhosted.yml | 1 +
2 files changed, 2 insertions(+)
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index 0401daab..33e2c18c 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -17,6 +17,7 @@ jobs:
runs-on: self-hosted
steps:
+ # Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
- name: Remove stuck mounts
run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
continue-on-error: true
diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml
index 24c0d8d6..7f16a70f 100644
--- a/.github/workflows/main-selfhosted.yml
+++ b/.github/workflows/main-selfhosted.yml
@@ -17,6 +17,7 @@ jobs:
runs-on: self-hosted
steps:
+ # Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
- name: Remove stuck mounts
run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
continue-on-error: true
From b7cc89518861df16e84a9f81b636f7e347768143 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 14:53:59 +0000
Subject: [PATCH 42/64] Updated appdata [skip ci]
---
net.retrodeck.retrodeck.appdata.xml | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml
index 9445e34f..7010efb4 100644
--- a/net.retrodeck.retrodeck.appdata.xml
+++ b/net.retrodeck.retrodeck.appdata.xml
@@ -66,6 +66,20 @@
GPL-3.0
CC0-1.0
+
+ https://github.com/XargonWan/RetroDECK/releases/tag/0.6.3b
+
+
+ - Added support support for multiple file compression via CLI.
+ - Added support support for multiple file compression in the Configurator.
+ - Fixed some missing layout changes.
+ - Removed the reset tools command.
+ - Fixed a bug in the compression tool with certain filenames with spaces.
+ - Fixed a manifest bug that caused a conflict between Dolphin and Primehack in certain scenarios.
+ - Shipped a new configuration to account for the config format changes made by Yuzu and Citra in the latest updates.
+
+
+
https://github.com/XargonWan/RetroDECK/releases/tag/0.6.2b
From 725f2f412cf560c857be5017e92df066b71f739b Mon Sep 17 00:00:00 2001
From: icenine451
Date: Tue, 21 Mar 2023 11:00:44 -0400
Subject: [PATCH 43/64] Fixed incorrect folder removal in Xemu init
---
functions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/functions.sh b/functions.sh
index 557ebbca..292abc41 100644
--- a/functions.sh
+++ b/functions.sh
@@ -868,7 +868,7 @@ xemu_init() {
echo "------------------------"
mkdir -pv $rdhome/saves/xbox/xemu/
# removing config directory to wipe legacy files
- rm -rf /var/config/xemu
+ rm -rf /var/data/xemu
mkdir -pv /var/data/xemu/
cp -fv $emuconfigs/xemu.toml /var/data/xemu/xemu.toml
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/data/xemu/xemu.toml
From 9a88203aa0a6f225aa8199f455bc5c07226e76ad Mon Sep 17 00:00:00 2001
From: icenine451
Date: Tue, 21 Mar 2023 11:09:08 -0400
Subject: [PATCH 44/64] Update Xemu init function.
---
functions.sh | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/functions.sh b/functions.sh
index 292abc41..028aeea0 100644
--- a/functions.sh
+++ b/functions.sh
@@ -868,10 +868,11 @@ xemu_init() {
echo "------------------------"
mkdir -pv $rdhome/saves/xbox/xemu/
# removing config directory to wipe legacy files
+ rm -rf /var/config/xemu
rm -rf /var/data/xemu
- mkdir -pv /var/data/xemu/
- cp -fv $emuconfigs/xemu.toml /var/data/xemu/xemu.toml
- sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/data/xemu/xemu.toml
+ dir_prep "/var/config/xemu" "/var/data/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look
+ cp -fv $emuconfigs/xemu.toml /var/config/xemu/xemu.toml
+ sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/xemu/xemu.toml
# Preparing HD dummy Image if the image is not found
if [ ! -f $rdhome/bios/xbox_hdd.qcow2 ]
then
From 872d2e65b788e7da8160aa9c5b56a189f9c1d8ab Mon Sep 17 00:00:00 2001
From: icenine451
Date: Tue, 21 Mar 2023 11:11:20 -0400
Subject: [PATCH 45/64] Add overwriting Citra/Yuzu config on update.
---
post_update.sh | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/post_update.sh b/post_update.sh
index 8fac6ffe..86030eb2 100644
--- a/post_update.sh
+++ b/post_update.sh
@@ -203,12 +203,18 @@ post_update() {
# In version 0.6.2b, the following changes were made that required config file updates/reset:
# - Put Dolphin and Primehack save states in different folders inside $rd_home/states
# - Fix symlink to hard-coded PICO-8 config folder (dir_prep doesn't like ~)
+ # - 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"
rm -rf "$HOME/~/" # Remove old incorrect location from 0.6.2b
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
+
+ cp -fv $emuconfigs/citra/qt-config.ini /var/config/citra-emu/qt-config.ini
+ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
+ cp -fvr $emuconfigs/yuzu/* /var/config/yuzu/
+ sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/yuzu/qt-config.ini
fi
# The following commands are run every time.
From 53d09964e4edf19ba522c01652d57e62a73e2d6b Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 16:14:44 +0000
Subject: [PATCH 46/64] WF: tag releases as latest [skip ci]
---
.github/workflows/cooker-selfhosted.yml | 3 ++-
.github/workflows/main-selfhosted.yml | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml
index 33e2c18c..0dbf3ad4 100644
--- a/.github/workflows/cooker-selfhosted.yml
+++ b/.github/workflows/cooker-selfhosted.yml
@@ -81,7 +81,8 @@ jobs:
artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
#prerelease: true
- draft: false
+ makeLatest: true
+ #draft: true
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK-cooker
continue-on-error: true
diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml
index 7f16a70f..66738986 100644
--- a/.github/workflows/main-selfhosted.yml
+++ b/.github/workflows/main-selfhosted.yml
@@ -82,7 +82,8 @@ jobs:
bodyFile: "body.md"
artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
- prerelease: true
+ #prerelease: true
+ makeLatest: true
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK
continue-on-error: true
From c655a84a6bcda921359c39127e9ffc10650a27f8 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 16:54:37 +0000
Subject: [PATCH 47/64] Appdata: beatufied
---
net.retrodeck.retrodeck.appdata.xml | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml
index 7010efb4..0fb331e0 100644
--- a/net.retrodeck.retrodeck.appdata.xml
+++ b/net.retrodeck.retrodeck.appdata.xml
@@ -36,14 +36,15 @@
- What is Retrodeck?
- RetroDECK is an emulation and retro gaming solution to catalog and play your game collection directly from Linux in one unified application.
+
What is Retrodeck?
+ RetroDECK is an emulation and retro gaming solution to catalog and play your game collection directly from Linux in one unified application.
It's inspired by other embedded emulation systems like AmberELEC, EmuELEC, CoreELEC, Lakka, and Batocera.
RetroDECK is powered by EmulationStation Desktop Edition, that uses RetroArch and other standalone emulators to allow you to import and play your favorite games in a tidy environment.
No other software is needed as everything it's already included in one package!
BETA NOTICE: RetroDECK is still in Beta and the team is actively developing and adding more features.
About the Beta:
- The primary focus during the beta period is on SteamOS and the Steam Deck but we hope to expand to more devices and general Linux desktop in the future (NOTE: It can be run on Linux desktop right now but there will be some manual configurations needed for input, storage location and other tiny hickups).
+ The primary focus during the beta period is on SteamOS and the Steam Deck but we hope to expand to more devices and general Linux desktop in the future
+ NOTE: It can be run on Linux desktop right now but there will be some manual configurations needed for input, storage location and other tiny hickups.
NOTE: Albeit RetroDECK could possibily work on every distro, it's supported only on Steam Deck.
INSTALLATION INSTRUCTIONS FOR THE STEAM DECK:
@@ -54,13 +55,13 @@
4. [OPTIONAL] Download Steam Grids graphics for RetroDECK with BoilR
- For more detailed information check our wiki:
- https://github.com/XargonWan/RetroDECK/wiki
- If you want to sponsor the project:
- https://www.patreon.com/RetroDECK
- If you want to join the RetroDECK community check our:
- Discord: https://discord.gg/Dz3szYsP8g
- Reddit: https://www.reddit.com/r/RetroDECK/
+ For more detailed information check our wiki:
+ https://github.com/XargonWan/RetroDECK/wiki
+ If you want to sponsor the project:
+ https://www.patreon.com/RetroDECK
+ If you want to join the RetroDECK community check our:
+ Discord: https://discord.gg/Dz3szYsP8g
+ Reddit: https://www.reddit.com/r/RetroDECK/
If you want to help out with the project join the "i-want-to-help" channel on our Discord.
GPL-3.0
From b30a03d7a501843a3b6faaa2de822b97e2f832ac Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 16:54:51 +0000
Subject: [PATCH 48/64] Appdata: beatufied [skip ci]
---
net.retrodeck.retrodeck.appdata.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml
index 0fb331e0..4d8cf718 100644
--- a/net.retrodeck.retrodeck.appdata.xml
+++ b/net.retrodeck.retrodeck.appdata.xml
@@ -489,4 +489,4 @@
-
\ No newline at end of file
+
From 1beb92465b340628122fd58be24e963c498e0ef6 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 17:10:00 +0000
Subject: [PATCH 49/64] Appdata: updated [skip ci]
---
net.retrodeck.retrodeck.appdata.xml | 1 -
1 file changed, 1 deletion(-)
diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml
index 4d8cf718..b0c007cf 100644
--- a/net.retrodeck.retrodeck.appdata.xml
+++ b/net.retrodeck.retrodeck.appdata.xml
@@ -45,7 +45,6 @@
About the Beta:
The primary focus during the beta period is on SteamOS and the Steam Deck but we hope to expand to more devices and general Linux desktop in the future
NOTE: It can be run on Linux desktop right now but there will be some manual configurations needed for input, storage location and other tiny hickups.
- NOTE: Albeit RetroDECK could possibily work on every distro, it's supported only on Steam Deck.
INSTALLATION INSTRUCTIONS FOR THE STEAM DECK:
From 682e62f7517866dc17168ce33cd3d4ab014decb2 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Tue, 21 Mar 2023 20:01:40 +0100
Subject: [PATCH 50/64] CITRA: removed fullscreen
---
es-configs/es_systems.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml
index f48f4f24..8597d371 100644
--- a/es-configs/es_systems.xml
+++ b/es-configs/es_systems.xml
@@ -824,7 +824,7 @@
Nintendo 3DS
%ROMPATH%/n3ds
.3ds .3DS .3dsx .3DSX .app .APP .axf .AXF .cci .CCI .cxi .CXI .elf .ELF .7z .7Z .zip .ZIP
- %EMULATOR_CITRA% -f %ROM%
+ %EMULATOR_CITRA% %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/citra_libretro.so %ROM%
%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/citra2018_libretro.so %ROM%
n3ds
@@ -1619,4 +1619,4 @@
tools
tools
-
\ No newline at end of file
+
From 5f6339e4e5088b465fe1332d76b9882778401347 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Tue, 21 Mar 2023 15:08:08 -0400
Subject: [PATCH 51/64] Fix broken Configurator location
---
es-configs/es_systems.xml | 2 +-
es-configs/tools-gamelist.xml | 2 +-
net.retrodeck.retrodeck.yml | 11 ++++++-----
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml
index f48f4f24..e590f709 100644
--- a/es-configs/es_systems.xml
+++ b/es-configs/es_systems.xml
@@ -1613,7 +1613,7 @@
tools
RetroDECK Tools
- /var/config/retrodeck/tools
+ /app/bin/tools
.sh .SH
bash %ROM%
tools
diff --git a/es-configs/tools-gamelist.xml b/es-configs/tools-gamelist.xml
index 3e2cad3c..c1a8f052 100644
--- a/es-configs/tools-gamelist.xml
+++ b/es-configs/tools-gamelist.xml
@@ -1,7 +1,7 @@
- /app/bin/configurator.sh
+ ./configurator.sh
RetroDECK Configurator
Change settings, move folders and more!
true
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index 5321750e..492dc8b8 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -1061,14 +1061,15 @@ modules:
- cp -f res/splash.svg ${FLATPAK_DEST}/emulationstation/graphics/splash-orig.svg
- cp -f res/icon.svg /app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg
- # Tools
- - mv -f es-configs/tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/
-
- # Launchable scripts
+ # RetroDECK core script
- cp retrodeck.sh /app/bin/retrodeck.sh
- chmod +x /app/bin/retrodeck.sh
- - cp tools/configurator.sh /app/bin/configurator.sh
+
+ # Tools
+ - mkdir -p /app/bin/tools
+ - cp tools/configurator.sh /app/bin/tools/configurator.sh
- chmod +x /app/bin/configurator.sh
+ - cp es-configs/tools-gamelist.xml /app/bin/tools/tools-gamelist.xml
# Function libraries
- mkdir -p /app/libexec
From bee35c1458d36aa3b7ff02ea50401d9e04296384 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Tue, 21 Mar 2023 16:00:30 -0400
Subject: [PATCH 52/64] Fix issue found where sed doesn't like ~
---
emu-configs/PCSX2-QT/PCSX2.ini | 10 ++++-----
emu-configs/PCSX2/PCSX2.ini | 10 ++++-----
emu-configs/PCSX2/PCSX2_ui.ini | 10 ++++-----
emu-configs/dolphin/Dolphin.ini | 10 ++++-----
emu-configs/melonDS.ini | 10 ++++-----
emu-configs/retroarch/retroarch.cfg | 6 +++---
functions.sh | 32 ++++++++++++++---------------
post_update.sh | 4 ++--
rd-submodules/retroarch | 2 +-
9 files changed, 47 insertions(+), 47 deletions(-)
diff --git a/emu-configs/PCSX2-QT/PCSX2.ini b/emu-configs/PCSX2-QT/PCSX2.ini
index 63e59b0e..5ed8407b 100644
--- a/emu-configs/PCSX2-QT/PCSX2.ini
+++ b/emu-configs/PCSX2-QT/PCSX2.ini
@@ -14,11 +14,11 @@ Theme = darkfusion
[Folders]
-Bios = ~/retrodeck/roms/bios
-Snapshots = ~/retrodeck/screenshots
-Savestates = ~/retrodeck/states/ps2/pcsx2
-MemoryCards = ~/retrodeck/saves/ps2/memcards
-Logs = ~/retrodeck/.logs
+Bios = RETRODECKHOMEDIR/roms/bios
+Snapshots = RETRODECKHOMEDIR/screenshots
+Savestates = RETRODECKHOMEDIR/states/ps2/pcsx2
+MemoryCards = RETRODECKHOMEDIR/saves/ps2/memcards
+Logs = RETRODECKHOMEDIR/.logs
Cheats = /var/config/PCSX2/cheats
CheatsWS = /var/config/PCSX2/cheats_ws
CheatsNI = cheats_ni
diff --git a/emu-configs/PCSX2/PCSX2.ini b/emu-configs/PCSX2/PCSX2.ini
index 56981725..e1d8bec8 100644
--- a/emu-configs/PCSX2/PCSX2.ini
+++ b/emu-configs/PCSX2/PCSX2.ini
@@ -296,10 +296,10 @@ Multitap2_Slot4_Filename = Mcd-Multitap2-Slot04.ps2
[Folders]
-Bios = ~/retrodeck/bios
-Snapshots = ~/retrodeck/screenshots
-SaveStates = ~/retrodeck/states/ps2/pcsx2
-MemoryCards = ~/retrodeck/saves/ps2/pcsx2/memcards
+Bios = RETRODECKHOMEDIR/bios
+Snapshots = RETRODECKHOMEDIR/screenshots
+SaveStates = RETRODECKHOMEDIR/states/ps2/pcsx2
+MemoryCards = RETRODECKHOMEDIR/saves/ps2/pcsx2/memcards
Logs = logs
Cheats = cheats
CheatsWS = cheats_ws
@@ -447,4 +447,4 @@ PressureModifier = 0.500000
[GameList]
-RecursivePaths = ~/retrodeck/roms/ps2
\ No newline at end of file
+RecursivePaths = RETRODECKHOMEDIR/roms/ps2
\ No newline at end of file
diff --git a/emu-configs/PCSX2/PCSX2_ui.ini b/emu-configs/PCSX2/PCSX2_ui.ini
index 14214053..8f9a5a8d 100644
--- a/emu-configs/PCSX2/PCSX2_ui.ini
+++ b/emu-configs/PCSX2/PCSX2_ui.ini
@@ -40,11 +40,11 @@ UseDefaultLangs=enabled
UseDefaultCheats=enabled
UseDefaultCheatsWS=enabled
UseDefaultTextures=enabled
-Bios=~/retrodeck/roms/bios
-Snapshots=~/retrodeck/screenshots
-Savestates=~/retrodeck/states/ps2/pcsx2
-MemoryCards=~/retrodeck/saves/ps2/memcards
-Logs=~/retrodeck/.logs
+Bios=RETRODECKHOMEDIR/roms/bios
+Snapshots=RETRODECKHOMEDIR/screenshots
+Savestates=RETRODECKHOMEDIR/states/ps2/pcsx2
+MemoryCards=RETRODECKHOMEDIR/saves/ps2/memcards
+Logs=RETRODECKHOMEDIR/.logs
Langs=/app/share/PCSX2/resources/locale
Cheats=/var/config/PCSX2/cheats
CheatsWS=/var/config/PCSX2/cheats_ws
diff --git a/emu-configs/dolphin/Dolphin.ini b/emu-configs/dolphin/Dolphin.ini
index bfa1e7c2..f6111c44 100644
--- a/emu-configs/dolphin/Dolphin.ini
+++ b/emu-configs/dolphin/Dolphin.ini
@@ -24,19 +24,19 @@ DSPHLE = True
Fullscreen = True
DisableScreenSaver = True
[GBA]
-BIOS = ~/retrodeck/bios
+BIOS = RETRODECKHOMEDIR/bios
Rom1 =
Rom2 =
Rom3 =
Rom4 =
SavesInRomPath = False
-SavesPath = ~/retrodeck/saves/gba
+SavesPath = RETRODECKHOMEDIR/saves/gba
Threads = True
[General]
-ISOPath0 = ~/retrodeck/roms/wii
-ISOPath1 = ~/retrodeck/roms/gc
+ISOPath0 = RETRODECKHOMEDIR/roms/wii
+ISOPath1 = RETRODECKHOMEDIR/roms/gc
ISOPaths = 2
-WiiSDCardPath = ~/retrodeck/saves/wii/dolphin/sd.raw
+WiiSDCardPath = RETRODECKHOMEDIR/saves/wii/dolphin/sd.raw
WirelessMac = 00:17:ab:83:9b:d4
HotkeysRequireFocus = True
RecursiveISOPaths = True
diff --git a/emu-configs/melonDS.ini b/emu-configs/melonDS.ini
index b1443132..e43cde93 100644
--- a/emu-configs/melonDS.ini
+++ b/emu-configs/melonDS.ini
@@ -75,9 +75,9 @@ JIT_BranchOptimisations=1
JIT_LiteralOptimisations=1
JIT_FastMemory=1
ExternalBIOSEnable=1
-BIOS9Path=~/retrodeck/bios/bios9.bin
-BIOS7Path=~/retrodeck/bios/bios7.bin
-FirmwarePath=~/retrodeck/bios/firmware.bin
+BIOS9Path=RETRODECKHOMEDIR/bios/bios9.bin
+BIOS7Path=RETRODECKHOMEDIR/bios/bios7.bin
+FirmwarePath=RETRODECKHOMEDIR/bios/firmware.bin
DSiBIOS9Path=
DSiBIOS7Path=
DSiFirmwarePath=
@@ -123,8 +123,8 @@ RecentROM_6=
RecentROM_7=
RecentROM_8=
RecentROM_9=
-SaveFilePath=~/retrodeck/saves/nds/melonds
-SavestatePath=~/retrodeck/states/nds/melonds
+SaveFilePath=RETRODECKHOMEDIR/saves/nds/melonds
+SavestatePath=RETRODECKHOMEDIR/states/nds/melonds
CheatFilePath=
EnableCheats=0
MouseHide=0
diff --git a/emu-configs/retroarch/retroarch.cfg b/emu-configs/retroarch/retroarch.cfg
index 7ee4f8e2..78a223f0 100644
--- a/emu-configs/retroarch/retroarch.cfg
+++ b/emu-configs/retroarch/retroarch.cfg
@@ -3036,12 +3036,12 @@ run_ahead_hide_warnings = "false"
run_ahead_secondary_instance = "true"
runtime_log_directory = "default"
save_file_compression = "false"
-savefile_directory = "~/retrodeck/saves"
+savefile_directory = "RETRODECKHOMEDIR/saves"
savefiles_in_content_dir = "false"
savestate_auto_index = "false"
savestate_auto_load = "true"
savestate_auto_save = "true"
-savestate_directory = "~/retrodeck/states"
+savestate_directory = "RETRODECKHOMEDIR/states"
savestate_file_compression = "true"
savestate_max_keep = "0"
savestate_thumbnail_enable = "false"
@@ -3049,7 +3049,7 @@ savestates_in_content_dir = "false"
scan_without_core_match = "false"
screen_brightness = "100"
screen_orientation = "0"
-screenshot_directory = "~/retrodeck/screenshots"
+screenshot_directory = "RETRODECKHOMEDIR/screenshots"
screenshots_in_content_dir = "false"
settings_show_accessibility = "true"
settings_show_achievements = "true"
diff --git a/functions.sh b/functions.sh
index 028aeea0..59f3a22a 100644
--- a/functions.sh
+++ b/functions.sh
@@ -763,7 +763,7 @@ yuzu_init() {
rm -rf /var/config/yuzu
mkdir -pv /var/config/yuzu/
cp -fvr $emuconfigs/yuzu/* /var/config/yuzu/
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/yuzu/qt-config.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/yuzu/qt-config.ini
dir_prep "$rdhome/screenshots" "/var/data/yuzu/screenshots"
}
@@ -775,7 +775,7 @@ dolphin_init() {
rm -rf /var/config/dolphin-emu
mkdir -pv /var/config/dolphin-emu/
cp -fvr "$emuconfigs/dolphin/"* /var/config/dolphin-emu/
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/dolphin-emu/Dolphin.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/dolphin-emu/Dolphin.ini
dir_prep "$rdhome/saves/gc/dolphin/EUR" "/var/data/dolphin-emu/GC/EUR"
dir_prep "$rdhome/saves/gc/dolphin/USA" "/var/data/dolphin-emu/GC/USA"
dir_prep "$rdhome/saves/gc/dolphin/JAP" "/var/data/dolphin-emu/GC/JAP"
@@ -793,7 +793,7 @@ primehack_init() {
rm -rf /var/config/primehack
mkdir -pv /var/config/primehack/
cp -fvr "$emuconfigs/primehack/"* /var/config/primehack/
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/primehack/Dolphin.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/primehack/Dolphin.ini
dir_prep "$rdhome/saves/gc/primehack/EUR" "/var/data/primehack/GC/EUR"
dir_prep "$rdhome/saves/gc/primehack/USA" "/var/data/primehack/GC/USA"
dir_prep "$rdhome/saves/gc/primehack/JAP" "/var/data/primehack/GC/JAP"
@@ -813,8 +813,8 @@ pcsx2_init() {
mkdir -pv "$rdhome/saves/ps2/pcsx2/memcards"
mkdir -pv "$rdhome/states/ps2/pcsx2"
cp -fvr $emuconfigs/PCSX2/* /var/config/PCSX2/inis/
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2_ui.ini
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2_ui.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2.ini
#dir_prep "$rdhome/states/ps2/pcsx2" "/var/config/PCSX2/sstates"
#dir_prep "$rdhome/screenshots" "/var/config/PCSX2/snaps"
#dir_prep "$rdhome/.logs" "/var/config/PCSX2/logs"
@@ -832,8 +832,7 @@ melonds_init() {
mkdir -pv "$rdhome/states/nds/melonds"
dir_prep "$rdhome/bios" "/var/config/melonDS/bios"
cp -fvr $emuconfigs/melonDS.ini /var/config/melonDS/
- # Replace ~/retrodeck with $rdhome as ~ cannot be understood by MelonDS
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/melonDS/melonDS.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/melonDS/melonDS.ini
}
citra_init() {
@@ -848,7 +847,7 @@ citra_init() {
dir_prep "$rdhome/bios/citra/sysdata" "/var/data/citra-emu/sysdata"
dir_prep "$rdhome/.logs/citra" "/var/data/citra-emu/log"
cp -fv $emuconfigs/citra/qt-config.ini /var/config/citra-emu/qt-config.ini
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
}
rpcs3_init() {
@@ -953,7 +952,7 @@ ra_init() {
mkdir -pv /var/config/retroarch/config/
cp -rf $emuconfigs/retroarch/core-overrides/* /var/config/retroarch/config
#rm -rf $rdhome/bios/bios # in some situations a double bios symlink is created
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/retroarch/retroarch.cfg
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/retroarch/retroarch.cfg
# PPSSPP
echo "--------------------------------"
@@ -1054,6 +1053,7 @@ emulators_post_move() {
dir_prep "$rdhome/bios" "/var/config/retroarch/system"
dir_prep "$rdhome/.logs/retroarch" "/var/config/retroarch/logs"
dir_prep "$rdhome/shaders/retroarch" "/var/config/retroarch/shaders"
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/retroarch/retroarch.cfg
# Yuzu section
dir_prep "$rdhome/bios/switch/keys" "/var/data/yuzu/keys"
@@ -1062,10 +1062,10 @@ emulators_post_move() {
dir_prep "$rdhome/saves/switch/yuzu/sdmc" "/var/data/yuzu/sdmc"
dir_prep "$rdhome/.logs/yuzu" "/var/data/yuzu/log"
dir_prep "$rdhome/screenshots" "/var/data/yuzu/screenshots"
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/yuzu/qt-config.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/yuzu/qt-config.ini
# Dolphin section
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/dolphin-emu/Dolphin.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/dolphin-emu/Dolphin.ini
dir_prep "$rdhome/saves/gc/dolphin/EUR" "/var/data/dolphin-emu/GC/EUR"
dir_prep "$rdhome/saves/gc/dolphin/USA" "/var/data/dolphin-emu/GC/USA"
dir_prep "$rdhome/saves/gc/dolphin/JAP" "/var/data/dolphin-emu/GC/JAP"
@@ -1074,7 +1074,7 @@ emulators_post_move() {
dir_prep "$rdhome/saves/wii/dolphin" "/var/data/dolphin-emu/Wii/"
# Primehack section
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/primehack/Dolphin.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/primehack/Dolphin.ini
dir_prep "$rdhome/saves/gc/primehack/EUR" "/var/data/primehack/GC/EUR"
dir_prep "$rdhome/saves/gc/primehack/USA" "/var/data/primehack/GC/USA"
dir_prep "$rdhome/saves/gc/primehack/JAP" "/var/data/primehack/GC/JAP"
@@ -1083,17 +1083,17 @@ emulators_post_move() {
dir_prep "$rdhome/saves/wii/primehack" "/var/data/primehack/Wii/"
# PCSX2 section
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2_ui.ini
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2_ui.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/PCSX2/inis/PCSX2.ini
# MelonDS section
dir_prep "$rdhome/bios" "/var/config/melonDS/bios"
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/melonDS/melonDS.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/melonDS/melonDS.ini
# Citra section
dir_prep "$rdhome/bios/citra/sysdata" "/var/data/citra-emu/sysdata"
dir_prep "$rdhome/.logs/citra" "/var/data/citra-emu/log"
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
# RPCS3 section
sed -i 's#/home/deck/retrodeck#'$rdhome'#g' /var/config/rpcs3/vfs.yml
diff --git a/post_update.sh b/post_update.sh
index 86030eb2..02423e11 100644
--- a/post_update.sh
+++ b/post_update.sh
@@ -212,9 +212,9 @@ post_update() {
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
cp -fv $emuconfigs/citra/qt-config.ini /var/config/citra-emu/qt-config.ini
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
cp -fvr $emuconfigs/yuzu/* /var/config/yuzu/
- sed -i 's#~/retrodeck#'$rdhome'#g' /var/config/yuzu/qt-config.ini
+ sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/yuzu/qt-config.ini
fi
# The following commands are run every time.
diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch
index 717b7809..0b1cfb79 160000
--- a/rd-submodules/retroarch
+++ b/rd-submodules/retroarch
@@ -1 +1 @@
-Subproject commit 717b78093797270877ec416e58082f1c71d435d8
+Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409
From 0536dc3fc56d8032739db3146506b4029d714deb Mon Sep 17 00:00:00 2001
From: icenine451
Date: Tue, 21 Mar 2023 19:25:24 -0400
Subject: [PATCH 53/64] Actually fix Configurator location
---
es-configs/es_systems.xml | 2 +-
net.retrodeck.retrodeck.yml | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml
index 556dbc00..84a91903 100644
--- a/es-configs/es_systems.xml
+++ b/es-configs/es_systems.xml
@@ -1613,7 +1613,7 @@
tools
RetroDECK Tools
- /app/bin/tools
+ /app/tools
.sh .SH
bash %ROM%
tools
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index 492dc8b8..f301f96b 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -1066,10 +1066,10 @@ modules:
- chmod +x /app/bin/retrodeck.sh
# Tools
- - mkdir -p /app/bin/tools
- - cp tools/configurator.sh /app/bin/tools/configurator.sh
- - chmod +x /app/bin/configurator.sh
- - cp es-configs/tools-gamelist.xml /app/bin/tools/tools-gamelist.xml
+ - mkdir -p /app/tools
+ - cp tools/configurator.sh /app/tools/configurator.sh
+ - chmod +x /app/tools/configurator.sh
+ - cp es-configs/tools-gamelist.xml /app/tools/tools-gamelist.xml
# Function libraries
- mkdir -p /app/libexec
From 7233f96c19d314e9381100e3c3b34c0103cf74cc Mon Sep 17 00:00:00 2001
From: icenine451
Date: Wed, 22 Mar 2023 08:32:21 -0400
Subject: [PATCH 54/64] Update Configurator location for CLI launch
---
retrodeck.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/retrodeck.sh b/retrodeck.sh
index 27af932c..5cc14430 100644
--- a/retrodeck.sh
+++ b/retrodeck.sh
@@ -45,7 +45,7 @@ https://retrodeck.net
exit
;;
--configurator*)
- sh /app/bin/configurator.sh
+ sh /app/tools/configurator.sh
exit
;;
--reset-emulator*)
From 4c2b74ecdb97766f021cd3cd6e5778163017522f Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Wed, 22 Mar 2023 12:35:43 +0000
Subject: [PATCH 55/64] CITRA and YUZU: whoops
---
emu-configs/citra/qt-config.ini | 8 ++++----
emu-configs/yuzu/qt-config.ini | 8 ++++----
net.retrodeck.retrodeck.appdata.xml | 2 +-
rd-submodules/retroarch | 2 +-
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/emu-configs/citra/qt-config.ini b/emu-configs/citra/qt-config.ini
index 3efd3d21..62fbaa7c 100644
--- a/emu-configs/citra/qt-config.ini
+++ b/emu-configs/citra/qt-config.ini
@@ -104,9 +104,9 @@ use_cpu_jit=true
use_cpu_jit\default=true
[Data%20Storage]
-nand_directory=~retrodeck/saves/n3ds/citra/nand/
+nand_directory=RETRODECKHOMEDIR/saves/n3ds/citra/nand/
nand_directory\default=false
-sdmc_directory=~retrodeck/saves/n3ds/citra/sdmc/
+sdmc_directory=RETRODECKHOMEDIR/saves/n3ds/citra/sdmc/
sdmc_directory\default=false
use_custom_storage=true
use_custom_storage\default=false
@@ -335,7 +335,7 @@ Paths\gamedirs\3\deep_scan=false
Paths\gamedirs\3\deep_scan\default=true
Paths\gamedirs\3\expanded=true
Paths\gamedirs\3\expanded\default=true
-Paths\gamedirs\3\path=~retrodeck/roms/n3ds
+Paths\gamedirs\3\path=RETRODECKHOMEDIR/roms/n3ds
Paths\gamedirs\size=3
Paths\language=en
Paths\language\default=false
@@ -343,7 +343,7 @@ Paths\moviePlaybackPath=
Paths\movieRecordPath=
Paths\recentFiles=@Invalid()
Paths\romsPath=
-Paths\screenshotPath=~retrodeck/screenshots
+Paths\screenshotPath=RETRODECKHOMEDIR/screenshots
Paths\screenshotPath\default=false
Paths\symbolsPath=
Paths\videoDumpingPath=
diff --git a/emu-configs/yuzu/qt-config.ini b/emu-configs/yuzu/qt-config.ini
index 76f79f3c..355cdcf8 100644
--- a/emu-configs/yuzu/qt-config.ini
+++ b/emu-configs/yuzu/qt-config.ini
@@ -815,9 +815,9 @@ gamecard_path=
gamecard_path\default=true
load_directory=/var/data/yuzu/load
load_directory\default=true
-nand_directory=~retrodeck/saves/switch/yuzu/nand
+nand_directory=RETRODECKHOMEDIR/saves/switch/yuzu/nand
nand_directory\default=true
-sdmc_directory=~retrodeck/saves/switch/yuzu/sdmc
+sdmc_directory=RETRODECKHOMEDIR/saves/switch/yuzu/sdmc
sdmc_directory\default=true
tas_directory=/var/data/yuzu/tas
tas_directory\default=true
@@ -995,7 +995,7 @@ Paths\gamedirs\4\deep_scan=false
Paths\gamedirs\4\deep_scan\default=true
Paths\gamedirs\4\expanded=true
Paths\gamedirs\4\expanded\default=true
-Paths\gamedirs\4\path=~retrodeck/roms/switch
+Paths\gamedirs\4\path=RETRODECKHOMEDIR/roms/switch
Paths\gamedirs\size=4
Paths\language=en
Paths\language\default=false
@@ -1004,7 +1004,7 @@ Paths\romsPath=
Paths\symbolsPath=
Screenshots\enable_screenshot_save_as=true
Screenshots\enable_screenshot_save_as\default=true
-Screenshots\screenshot_path=~retrodeck/screenshots/
+Screenshots\screenshot_path=RETRODECKHOMEDIR/screenshots/
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context=1
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Context\default=true
Shortcuts\Main%20Window\Audio%20Mute\Unmute\Controller_KeySeq=Home+Dpad_Right
diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml
index b0c007cf..67284209 100644
--- a/net.retrodeck.retrodeck.appdata.xml
+++ b/net.retrodeck.retrodeck.appdata.xml
@@ -66,7 +66,7 @@
GPL-3.0
CC0-1.0
-
+
https://github.com/XargonWan/RetroDECK/releases/tag/0.6.3b
diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch
index 0b1cfb79..717b7809 160000
--- a/rd-submodules/retroarch
+++ b/rd-submodules/retroarch
@@ -1 +1 @@
-Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409
+Subproject commit 717b78093797270877ec416e58082f1c71d435d8
From 699f653e8902a38340780704eea0e13894cc967a Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Wed, 22 Mar 2023 13:01:22 +0000
Subject: [PATCH 56/64] CITRA: fixed hotkeys
---
emu-configs/citra/qt-config.ini | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/emu-configs/citra/qt-config.ini b/emu-configs/citra/qt-config.ini
index 62fbaa7c..f0c98ac9 100644
--- a/emu-configs/citra/qt-config.ini
+++ b/emu-configs/citra/qt-config.ini
@@ -369,8 +369,8 @@ Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq=-
Shortcuts\Main%20Window\Decrease%20Speed%20Limit\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Citra\Context=1
Shortcuts\Main%20Window\Exit%20Citra\Context\default=true
-Shortcuts\Main%20Window\Exit%20Citra\KeySeq=T
-Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=false
+Shortcuts\Main%20Window\Exit%20Citra\KeySeq=Ctrl+Q
+Shortcuts\Main%20Window\Exit%20Citra\KeySeq\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\Context=1
Shortcuts\Main%20Window\Exit%20Fullscreen\Context\default=true
Shortcuts\Main%20Window\Exit%20Fullscreen\KeySeq=Y
@@ -425,8 +425,8 @@ Shortcuts\Main%20Window\Stop%20Emulation\KeySeq=F5
Shortcuts\Main%20Window\Stop%20Emulation\KeySeq\default=true
Shortcuts\Main%20Window\Swap%20Screens\Context=1
Shortcuts\Main%20Window\Swap%20Screens\Context\default=true
-Shortcuts\Main%20Window\Swap%20Screens\KeySeq=F9
-Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=true
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq=T
+Shortcuts\Main%20Window\Swap%20Screens\KeySeq\default=false
Shortcuts\Main%20Window\Toggle%203D\Context=2
Shortcuts\Main%20Window\Toggle%203D\Context\default=true
Shortcuts\Main%20Window\Toggle%203D\KeySeq=Ctrl+3
From 5ab04cdeeb3d9ba5cf228a850a00f4aad7e2973c Mon Sep 17 00:00:00 2001
From: icenine451
Date: Wed, 22 Mar 2023 12:41:26 -0400
Subject: [PATCH 57/64] - Removed "reset tools" options as those are now in
RO space - Fixed recursive symlink possibility for pico-8 setup - Fixed BIOS
check tool variable name - Fixed tools gamelist dest file name
---
functions.sh | 10 ----------
net.retrodeck.retrodeck.yml | 2 +-
post_update.sh | 2 +-
rd-submodules/retroarch | 2 +-
retrodeck.sh | 13 -------------
tools/configurator.sh | 15 ++++-----------
6 files changed, 7 insertions(+), 37 deletions(-)
diff --git a/functions.sh b/functions.sh
index 59f3a22a..33f6f270 100644
--- a/functions.sh
+++ b/functions.sh
@@ -1033,15 +1033,6 @@ cli_emulator_reset() {
esac
}
-tools_init() {
- rm -rfv /var/config/retrodeck/tools/
- mkdir -pv /var/config/retrodeck/tools/
- cp -rfv /app/retrodeck/tools/* /var/config/retrodeck/tools/
- mkdir -pv /var/config/emulationstation/.emulationstation/custom_systems/tools/
- rm -rfv /var/config/retrodeck/tools/gamelist.xml
- cp -fv /app/retrodeck/tools-gamelist.xml /var/config/retrodeck/tools/gamelist.xml
-}
-
emulators_post_move() {
# This script will redo the symlinks for all emulators after moving the $rdhome location without resetting other options
# FUTURE WORK: The sed commands here should be replaced with set_setting_value and dir_prep should be replaced with changing paths in config files directly where possible
@@ -1321,7 +1312,6 @@ finit() {
(
ra_init
standalones_init
- tools_init
) |
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml
index f301f96b..7fd6917c 100644
--- a/net.retrodeck.retrodeck.yml
+++ b/net.retrodeck.retrodeck.yml
@@ -1069,7 +1069,7 @@ modules:
- mkdir -p /app/tools
- cp tools/configurator.sh /app/tools/configurator.sh
- chmod +x /app/tools/configurator.sh
- - cp es-configs/tools-gamelist.xml /app/tools/tools-gamelist.xml
+ - cp es-configs/tools-gamelist.xml /app/tools/gamelist.xml
# Function libraries
- mkdir -p /app/libexec
diff --git a/post_update.sh b/post_update.sh
index 02423e11..2b3176cf 100644
--- a/post_update.sh
+++ b/post_update.sh
@@ -209,6 +209,7 @@ post_update() {
dir_prep "$rdhome/states/primehack" "/var/data/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
cp -fv $emuconfigs/citra/qt-config.ini /var/config/citra-emu/qt-config.ini
@@ -219,7 +220,6 @@ post_update() {
# The following commands are run every time.
- tools_init
update_rd_conf
) |
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch
index 717b7809..0b1cfb79 160000
--- a/rd-submodules/retroarch
+++ b/rd-submodules/retroarch
@@ -1 +1 @@
-Subproject commit 717b78093797270877ec416e58082f1c71d435d8
+Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409
diff --git a/retrodeck.sh b/retrodeck.sh
index 5cc14430..4de1c492 100644
--- a/retrodeck.sh
+++ b/retrodeck.sh
@@ -20,7 +20,6 @@ Arguments:
--configurator Starts the RetroDECK Configurator
--compress Compresses target file to .chd format. Supports .cue, .iso and .gdi formats
--reset-emulator Reset one or more emulator configs to the default values
- --reset-tools Reset the RetroDECK Tools section
--reset-retrodeck Starts the initial RetroDECK installer (backup your data first!)
For flatpak run specific options please run: flatpak run -h
@@ -67,18 +66,6 @@ https://retrodeck.net
exit
fi
;;
- --reset-tools*)
- echo "You are about to reset the RetroDECK tools."
- read -p "Enter 'y' to continue, 'n' to stop: " response
- if [[ $response == [yY] ]]; then
- tools_init
- read -p "The process has been completed, press Enter key to start RetroDECK."
- shift # Continue launch after previous command is finished
- else
- read -p "The process has been cancelled, press Enter key to exit."
- exit
- fi
- ;;
--reset-retrodeck*)
echo "You are about to reset RetroDECK completely!"
read -p "Enter 'y' to continue, 'n' to stop: " response
diff --git a/tools/configurator.sh b/tools/configurator.sh
index 9e90a15e..8cd6a7ad 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -50,7 +50,6 @@ source /app/libexec/functions.sh
# - Reset XEMU
# - Reset Yuzu
# - Reset All Emulators
-# - Reset Tools
# - Reset All
# Code for the menus should be put in reverse order, so functions for sub-menus exists before it is called by the parent menu
@@ -63,7 +62,6 @@ configurator_reset_dialog() {
--column="Choice" --column="Action" \
"Reset Specific Emulator" "Reset only one specific emulator to default settings" \
"Reset All Emulators" "Reset all emulators to default settings" \
- "Reset Tools" "Reset Tools menu entries" \
"Reset All" "Reset RetroDECK to default settings" )
case $choice in
@@ -156,11 +154,6 @@ configurator_reset_dialog() {
configurator_process_complete_dialog "resetting all emulators"
;;
-"Reset Tools" )
- tools_init
- configurator_process_complete_dialog "resetting the tools menu"
-;;
-
"Reset All" )
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
@@ -558,11 +551,11 @@ configurator_check_bios_files_basic() {
do
bios_file_found="No"
bios_hash_matched="No"
- if [[ -f "$bios_dir/$bios_subdir$bios_file" ]]; then
+ if [[ -f "$bios_folder/$bios_subdir$bios_file" ]]; then
bios_file_found="Yes"
if [[ $bios_hash == "Unknown" ]]; then
bios_hash_matched="Unknown"
- elif [[ $(md5sum "$bios_dir/$bios_subdir$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
+ elif [[ $(md5sum "$bios_folder/$bios_subdir$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
bios_hash_matched="Yes"
fi
fi
@@ -585,11 +578,11 @@ configurator_check_bios_files_advanced() {
do
bios_file_found="No"
bios_hash_matched="No"
- if [[ -f "$bios_dir/$bios_subdir$bios_file" ]]; then
+ if [[ -f "$bios_folder/$bios_subdir$bios_file" ]]; then
bios_file_found="Yes"
if [[ $bios_hash == "Unknown" ]]; then
bios_hash_matched="Unknown"
- elif [[ $(md5sum "$bios_dir/$bios_subdir$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
+ elif [[ $(md5sum "$bios_folder/$bios_subdir$bios_file" | awk '{ print $1 }') == "$bios_hash" ]]; then
bios_hash_matched="Yes"
fi
fi
From f9d29fc6fcf2f73ede714d907a6ca08eb5b6f72c Mon Sep 17 00:00:00 2001
From: icenine451
Date: Wed, 22 Mar 2023 14:42:06 -0400
Subject: [PATCH 58/64] Removed unneeded /var/config/retrodeck/tools dir
---
functions.sh | 3 ---
post_update.sh | 3 +++
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/functions.sh b/functions.sh
index 33f6f270..04c93eb9 100644
--- a/functions.sh
+++ b/functions.sh
@@ -1278,15 +1278,12 @@ finit() {
# Recreating the folder
rm -rfv /var/config/emulationstation/
- rm -rfv /var/config/retrodeck/tools/
mkdir -pv /var/config/emulationstation/
# Initializing ES-DE
# TODO: after the next update of ES-DE this will not be needed - let's test it
emulationstation --home /var/config/emulationstation --create-system-dirs
- mkdir -pv /var/config/retrodeck/tools/
-
#zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --text="RetroDECK will now install the needed files.\nPlease wait up to one minute,\nanother message will notify when the process will be finished.\n\nPress OK to continue."
# Initializing ROMs folder - Original in retrodeck home (or SD Card)
diff --git a/post_update.sh b/post_update.sh
index 2b3176cf..fb7e27e7 100644
--- a/post_update.sh
+++ b/post_update.sh
@@ -216,6 +216,9 @@ post_update() {
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
cp -fvr $emuconfigs/yuzu/* /var/config/yuzu/
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/yuzu/qt-config.ini
+
+ # Remove unneeded tools folder, as location has changed to RO space
+ rm -rfv /var/config/retrodeck/tools/
fi
# The following commands are run every time.
From 2cac775b7c77b3276dfdda2da55e066617f3516d Mon Sep 17 00:00:00 2001
From: icenine451
Date: Wed, 22 Mar 2023 16:40:37 -0400
Subject: [PATCH 59/64] Fixed bug in dir_prep that made recursive symlinks
---
functions.sh | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/functions.sh b/functions.sh
index 04c93eb9..1bd13cf1 100644
--- a/functions.sh
+++ b/functions.sh
@@ -705,6 +705,13 @@ dir_prep() {
echo -e "\n[DIR PREP]\nMoving $symlink in $real" #DEBUG
+ # if the symlink dir is already a symlink, unlink it first, to prevent recursion
+ if [ -L "$symlink" ];
+ then
+ echo "$symlink is already a symlink, unlinking to prevent recursives" #DEBUG
+ unlink "$symlink"
+ fi
+
# if the dest dir exists we want to backup it
if [ -d "$symlink" ];
then
@@ -715,6 +722,7 @@ dir_prep() {
# if the real dir is already a symlink, unlink it first
if [ -L "$real" ];
then
+ echo "$real is already a symlink, unlinking to prevent recursives" #DEBUG
unlink "$real"
fi
From 1025f1f98ca07e89ed3ce3135824ad604e1737b1 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Wed, 22 Mar 2023 16:43:10 -0400
Subject: [PATCH 60/64] PICO-8 saves symlink was backwards
---
functions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/functions.sh b/functions.sh
index 1bd13cf1..a60da8bc 100644
--- a/functions.sh
+++ b/functions.sh
@@ -1312,7 +1312,7 @@ finit() {
# PICO-8
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 "$roms_folder/pico8" "$bios_folder/pico-8/carts" # Symlink default game location to RD roms for cleanliness (this location is overridden anyway by the --root_path launch argument anyway)
- dir_prep "$bios_folder/pico-8/cdata" "$saves_folder/pico-8" # PICO-8 saves folder
+ dir_prep "$saves_folder/pico-8" "$bios_folder/pico-8/cdata" # PICO-8 saves folder
(
ra_init
From 5de3e6db6bc15930aa54d00e5b10483ff840b878 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Wed, 22 Mar 2023 16:45:43 -0400
Subject: [PATCH 61/64] Fixing backwards PICO-8 saves at update
---
post_update.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/post_update.sh b/post_update.sh
index fb7e27e7..8b79912c 100644
--- a/post_update.sh
+++ b/post_update.sh
@@ -211,6 +211,7 @@ post_update() {
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 -fv $emuconfigs/citra/qt-config.ini /var/config/citra-emu/qt-config.ini
sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' /var/config/citra-emu/qt-config.ini
From 51b03094b57bc1913b66b1a92feeb29f9c9a7326 Mon Sep 17 00:00:00 2001
From: icenine451
Date: Thu, 23 Mar 2023 12:38:19 -0400
Subject: [PATCH 62/64] Add reset confirmations to Configurator, Change
location of some menu items.
---
functions.sh | 14 ++++
tools/configurator.sh | 147 ++++++++++++++++++++++++++++++------------
2 files changed, 120 insertions(+), 41 deletions(-)
diff --git a/functions.sh b/functions.sh
index a60da8bc..2b8509b5 100644
--- a/functions.sh
+++ b/functions.sh
@@ -1378,4 +1378,18 @@ configurator_destination_choice_dialog() {
--text="$2")
echo $choice
+}
+
+configurator_reset_confirmation_dialog() {
+ # This dialog provides a confirmation for any reset functions, before the reset is actually performed.
+ # USAGE: $(configurator_reset_confirmation_dialog "emulator being reset" "action text")
+ # This function will return a "true" if the user clicks Confirm, and "false" if they click Cancel.
+ choice=$(zenity --title "RetroDECK Configurator Utility - Reset $1" --question --no-wrap --cancel-label="Cancel" --ok-label="Confirm" \
+ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
+ --text="$2")
+ if [[ $? == "0" ]]; then
+ echo "true"
+ else
+ echo "false"
+ fi
}
\ No newline at end of file
diff --git a/tools/configurator.sh b/tools/configurator.sh
index 8cd6a7ad..bdbb6e4b 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -62,7 +62,7 @@ configurator_reset_dialog() {
--column="Choice" --column="Action" \
"Reset Specific Emulator" "Reset only one specific emulator to default settings" \
"Reset All Emulators" "Reset all emulators to default settings" \
- "Reset All" "Reset RetroDECK to default settings" )
+ "Reset RetroDECK" "Reset RetroDECK to default settings" )
case $choice in
@@ -87,58 +87,113 @@ configurator_reset_dialog() {
case $emulator_to_reset in
"RetroArch" )
- ra_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "RetroArch" "Are you sure you want to reset the RetroArch emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ ra_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"Citra" )
- citra_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "Citra" "Are you sure you want to reset the Citra emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ citra_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"Dolphin" )
- dolphin_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "Dolphin" "Are you sure you want to reset the Dolphin emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ dolphin_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"Duckstation" )
- duckstation_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "Duckstation" "Are you sure you want to reset the Duckstation emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ duckstation_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"MelonDS" )
- melonds_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "MelonDS" "Are you sure you want to reset the MelonDS emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ melonds_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"PCSX2" )
- pcsx2_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "PCSX2" "Are you sure you want to reset the PCSX2 emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ pcsx2_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"PPSSPP" )
- ppssppsdl_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "PPSSPP" "Are you sure you want to reset the PPSSPP emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ ppssppsdl_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"Primehack" )
- primehack_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "Primehack" "Are you sure you want to reset the Primehack emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ primehack_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"RPCS3" )
- rpcs3_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "RPCS3" "Are you sure you want to reset the RPCS3 emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ rpcs3_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"XEMU" )
- xemu_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "XEMU" "Are you sure you want to reset the XEMU emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ xemu_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"Yuzu" )
- yuzu_init
- configurator_process_complete_dialog "resetting $emulator_to_reset"
+ if [[ $(configurator_reset_confirmation_dialog "Yuzu" "Are you sure you want to reset the Yuzu emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ yuzu_init
+ configurator_process_complete_dialog "resetting $emulator_to_reset"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"" ) # No selection made or Back button clicked
@@ -149,19 +204,29 @@ configurator_reset_dialog() {
;;
"Reset All Emulators" )
- ra_init
- standalones_init
- configurator_process_complete_dialog "resetting all emulators"
+ if [[ $(configurator_reset_confirmation_dialog "all emulators" "Are you sure you want to reset all emulators to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
+ ra_init
+ standalones_init
+ configurator_process_complete_dialog "resetting all emulators"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
-"Reset All" )
- zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
- --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
- --title "RetroDECK Configurator Utility - Reset RetroDECK" \
- --text="You are resetting RetroDECK to its default state.\n\nAfter the process is complete you will need to exit RetroDECK and run it again, where you will go through the initial setup process."
- rm -f "$lockfile"
- rm -f "$rd_conf"
- configurator_process_complete_dialog "resetting RetroDECK"
+"Reset RetroDECK" )
+ if [[ $(configurator_reset_confirmation_dialog "RetroDECK" "Are you sure you want to reset RetroDECK entirely?\n\nThis process cannot be undone.") == "true" ]]; then
+ zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
+ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
+ --title "RetroDECK Configurator Utility - Reset RetroDECK" \
+ --text="You are resetting RetroDECK to its default state.\n\nAfter the process is complete you will need to exit RetroDECK and run it again, where you will go through the initial setup process."
+ rm -f "$lockfile"
+ rm -f "$rd_conf"
+ configurator_process_complete_dialog "resetting RetroDECK"
+ else
+ configurator_generic_dialog "Reset process cancelled."
+ configurator_reset_dialog
+ fi
;;
"" ) # No selection made or Back button clicked
@@ -605,6 +670,7 @@ configurator_troubleshooting_tools_dialog() {
choice=$(zenity --list --title="RetroDECK Configurator Utility - Change Options" --cancel-label="Back" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
+ "Move RetroDECK" "Move RetroDECK files between internal/SD card or to a custom location" \
"Multi-file game structure check" "Verify the proper structure of multi-file or multi-disc games" \
"Basic BIOS file check" "Show a list of systems that BIOS files are found for" \
"Advanced BIOS file check" "Show advanced information about common BIOS files" \
@@ -612,6 +678,11 @@ configurator_troubleshooting_tools_dialog() {
case $choice in
+ "Move RetroDECK" )
+ configurator_generic_dialog "This option will move the RetroDECK data folder (ROMs, saves, BIOS etc.) to a new location.\n\nPlease choose where to move the RetroDECK data folder."
+ configurator_move_dialog
+ ;;
+
"Multi-file game structure check" )
configurator_check_multifile_game_structure
;;
@@ -793,19 +864,13 @@ configurator_welcome_dialog() {
choice=$(zenity --list --title="RetroDECK Configurator Utility" --cancel-label="Quit" \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \
--column="Choice" --column="Action" \
- "Move RetroDECK" "Move RetroDECK files between internal/SD card or to a custom location" \
"RetroArch Presets" "Change RetroArch presets, log into RetroAchievements etc." \
"Emulator Options" "Launch and configure each emulators settings (for advanced users)" \
- "Tools and Troubleshooting" "Run RetroDECK troubleshooting tools for common issues" \
+ "Tools and Troubleshooting" "Move RetroDECK to a new location, compress games and perform basic troubleshooting" \
"Reset" "Reset specific parts or all of RetroDECK" )
case $choice in
- "Move RetroDECK" )
- configurator_generic_dialog "This option will move the RetroDECK data folder (ROMs, saves, BIOS etc.) to a new location.\n\nPlease choose where to move the RetroDECK data folder."
- configurator_move_dialog
- ;;
-
"RetroArch Presets" )
configurator_retroarch_options_dialog
;;
From a34c38ab2b942ef58d489cdf30d7153291f3ab9b Mon Sep 17 00:00:00 2001
From: icenine451
Date: Thu, 23 Mar 2023 15:59:06 -0400
Subject: [PATCH 63/64] - Fixed file browser not handling spaces - Fixed
missing return to menu after file compression - Fixed compression target
validation not handling uppercase file extensions properly
---
functions.sh | 9 +++++----
tools/configurator.sh | 2 ++
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/functions.sh b/functions.sh
index 2b8509b5..c3eacb90 100644
--- a/functions.sh
+++ b/functions.sh
@@ -47,14 +47,14 @@ file_browse() {
while [ $file_selected == false ]
do
local target="$(zenity --file-selection --title="Choose $1")"
- if [ ! -z $target ] #yes
+ if [ ! -z "$target" ] #yes
then
zenity --question --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --title "RetroDECK" --cancel-label="No" --ok-label "Yes" \
--text="File $target chosen, is this correct?"
if [ $? == 0 ]
then
file_selected=true
- echo $target
+ echo "$target"
break
fi
else
@@ -129,15 +129,16 @@ validate_for_chd () {
# USAGE: validate_for_chd $input_file
local file="$1"
+ local normalized_filename=$(echo "$file" | tr '[:upper:]' '[:lower:]')
local file_validated="false"
current_run_log_file="chd_compression_$(basename "$file").log"
echo "Validating file:" "$file" > "$logs_folder/$current_run_log_file"
- if [[ "$file" == *".cue" ]] || [[ "$file" == *".gdi" ]] || [[ "$file" == *".iso" ]]; then
+ if [[ "$normalized_filename" == *".cue" ]] || [[ "$normalized_filename" == *".gdi" ]] || [[ "$normalized_filename" == *".iso" ]]; then
echo ".cue/.iso/.gdi file detected" >> "$logs_folder/$current_run_log_file"
local file_path=$(dirname "$(realpath "$file")")
local file_base_name=$(basename "$file")
local file_name=${file_base_name%.*}
- if [[ "$file" == *".cue" ]]; then # Validate .cue file
+ if [[ "$normalized_filename" == *".cue" ]]; then # Validate .cue file
echo "Validating .cue associated .bin files" >> "$logs_folder/$current_run_log_file"
local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" "$file")
echo "Associated bin files read:" >> "$logs_folder/$current_run_log_file"
diff --git a/tools/configurator.sh b/tools/configurator.sh
index bdbb6e4b..44f2869f 100644
--- a/tools/configurator.sh
+++ b/tools/configurator.sh
@@ -515,6 +515,8 @@ configurator_compress_multi_game_dialog() {
zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Configurator Utility - Compression in Progress"
+ configurator_generic_dialog "The compression process is complete!"
+ configurator_compress_games_dialog
else
if [[ ! -z $choice ]]; then # User clicked "Compress All"
local post_compression_cleanup=$(configurator_compression_cleanup_dialog)
From ee1423c418b0b26800520378443c793c0399cbb0 Mon Sep 17 00:00:00 2001
From: XargonWan
Date: Thu, 23 Mar 2023 20:16:52 +0000
Subject: [PATCH 64/64] APPDATA: updated
---
net.retrodeck.retrodeck.appdata.xml | 22 ++++++++++++++++++----
rd-submodules/retroarch | 2 +-
2 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml
index 67284209..08eea1b1 100644
--- a/net.retrodeck.retrodeck.appdata.xml
+++ b/net.retrodeck.retrodeck.appdata.xml
@@ -66,17 +66,31 @@
GPL-3.0
CC0-1.0
-
+
https://github.com/XargonWan/RetroDECK/releases/tag/0.6.3b
+ New features - General:
- Added support support for multiple file compression via CLI.
+
+ RetroDECK Configurator:
+
- Added support support for multiple file compression in the Configurator.
+ - Added safety y/n prompts to the reset functions.
- Fixed some missing layout changes.
- - Removed the reset tools command.
+ - Renamed "Reset All" to "Reset RetroDECK".
+ - Moved configurator into the RO partition for futher enhancements.
+
+ Bug fixes and other changes:
+
- Fixed a bug in the compression tool with certain filenames with spaces.
+ - Fixed a bug where some folders were recursively symlinked.
+ - Fixed a bug where some emulator configs were not correctly deployed.
+ - Fixed the Configurator BIOS tool looking in the wrong location (Thanks sofauxboho for the report!).
- Fixed a manifest bug that caused a conflict between Dolphin and Primehack in certain scenarios.
- - Shipped a new configuration to account for the config format changes made by Yuzu and Citra in the latest updates.
+ - Implemented new configurations for Yuzu and Citra thanks to the big config file changes in the latest emulator updates in both emulators.
+ - Removed leftover files from Legacy PCSX2.
+ - Removed the legacy "Reset Tools" command from Configurator and CLI.
@@ -488,4 +502,4 @@
-
+
\ No newline at end of file
diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch
index 0b1cfb79..717b7809 160000
--- a/rd-submodules/retroarch
+++ b/rd-submodules/retroarch
@@ -1 +1 @@
-Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409
+Subproject commit 717b78093797270877ec416e58082f1c71d435d8