From 849c5e89006e90c0c0a725552e909e96217f3299 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Fri, 29 Mar 2024 08:30:01 +0100 Subject: [PATCH 01/16] RYUJINX: fixed a bug where registered folder was not correctly renamed into firmware --- functions/post_update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/functions/post_update.sh b/functions/post_update.sh index 333f0f21..20b75d62 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -293,7 +293,7 @@ post_update() { dir_prep "$saves_folder/ps3/rpcs3" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" log i "Switch firmware folder should be moved in \"$bios_folder/switch/firmware\" from \"$bios_folder/switch/registered\"" - dir_prep "$bios_folder/switch/firmware" "$bios_folder/switch/registered" + mv "$bios_folder/switch/registered" "$bios_folder/switch/firmware" log i "New systems were added in this version, regenerating system folders." #es-de --home "/var/config/" --create-system-dirs From 1db8a6201b864096dfa7edf199744c9a519a7096 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Fri, 29 Mar 2024 08:35:09 +0100 Subject: [PATCH 02/16] CONFIGURATOR: removing Steam Sync with Steam entry if developer options are not enabled --- tools/configurator.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tools/configurator.sh b/tools/configurator.sh index 6f8f68a2..7f08d563 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -119,8 +119,7 @@ configurator_welcome_dialog() { "Open Emulator" "Launch and configure each emulators settings (for advanced users)" \ "RetroDECK: Tools" "Compress games, move RetroDECK and install optional features" \ "RetroDECK: Troubleshooting" "Backup data, perform BIOS / multi-disc file checks checks and emulator resets" \ - "RetroDECK: About" "Show additional information about RetroDECK" \ - "Sync with Steam" "Sync with Steam all the favorites games") + "RetroDECK: About" "Show additional information about RetroDECK") fi choice=$(zenity --list --title="RetroDECK Configurator Utility" --cancel-label="Quit" \ From 1371676da9b7debaa2f7cd5bb37d9308d77ecd84 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 29 Mar 2024 15:59:01 -0400 Subject: [PATCH 03/16] Update dir_prep to strip trailing slashes Fix RPCS3 savedata relocate post_update action --- functions/functions.sh | 4 ++-- functions/post_update.sh | 11 ++++------- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/functions/functions.sh b/functions/functions.sh index b19dcd38..c7641735 100644 --- a/functions/functions.sh +++ b/functions/functions.sh @@ -236,8 +236,8 @@ dir_prep() { # Call me with: # dir prep "real dir" "symlink location" - real="$1" - symlink="$2" + real="$(realpath -s $1)" + symlink="$(realpath -s $2)" log d "Preparing directory $symlink in $real" diff --git a/functions/post_update.sh b/functions/post_update.sh index 20b75d62..50108eae 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -283,14 +283,11 @@ post_update() { # The save folder of rpcs3 was inverted so we're moving the saves into the real one log i "RPCS3 saves needs to be migrated, executing." - mv "$saves_folder/ps3/rpcs3" "$saves_folder/ps3/rpcs3.bak" - mkdir -p "$saves_folder/ps3/rpcs3" - mv -v "$saves_folder/ps3/rpcs3.bak"/* "$saves_folder/ps3/rpcs3" - mv -v "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata"/* "$saves_folder/ps3/rpcs3" - mv -v "$saves_folder/ps3/rpcs3.bak" "$rdhome/backups/saves/ps3/rpcs3" - log i "RPCS3 saves migration completed, a backup was made here: \"$rdhome/backups/saves/ps3/rpcs3\"." - source /app/libexec/functions.sh + create_dir "$backups_folder" + zip -rq9 "$backups_folder/$(date +"%0m%0d")_rpcs3_save_data.zip" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" dir_prep "$saves_folder/ps3/rpcs3" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" + log i "RPCS3 saves migration completed, a backup was made here: \"$backups_folder/$(date +"%0m%0d")_rpcs3_save_data.zip\"." + log i "Switch firmware folder should be moved in \"$bios_folder/switch/firmware\" from \"$bios_folder/switch/registered\"" mv "$bios_folder/switch/registered" "$bios_folder/switch/firmware" From 5c352dbbcde705ba3eb745ada3188ec6493abec6 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 29 Mar 2024 15:59:42 -0400 Subject: [PATCH 04/16] Remove excess whitespace --- functions/post_update.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/functions/post_update.sh b/functions/post_update.sh index 50108eae..20d4142d 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -287,7 +287,6 @@ post_update() { zip -rq9 "$backups_folder/$(date +"%0m%0d")_rpcs3_save_data.zip" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" dir_prep "$saves_folder/ps3/rpcs3" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" log i "RPCS3 saves migration completed, a backup was made here: \"$backups_folder/$(date +"%0m%0d")_rpcs3_save_data.zip\"." - log i "Switch firmware folder should be moved in \"$bios_folder/switch/firmware\" from \"$bios_folder/switch/registered\"" mv "$bios_folder/switch/registered" "$bios_folder/switch/firmware" From f6abf9c9b8332ca07710225417eee79822e423df Mon Sep 17 00:00:00 2001 From: icenine451 Date: Fri, 29 Mar 2024 16:08:58 -0400 Subject: [PATCH 05/16] Only backup RPCS3 data if it exists during post_update --- functions/post_update.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/functions/post_update.sh b/functions/post_update.sh index 20d4142d..b3030442 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -283,8 +283,11 @@ post_update() { # The save folder of rpcs3 was inverted so we're moving the saves into the real one log i "RPCS3 saves needs to be migrated, executing." - create_dir "$backups_folder" - zip -rq9 "$backups_folder/$(date +"%0m%0d")_rpcs3_save_data.zip" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" + if [[ "$(ls -A $bios_folder/rpcs3/dev_hdd0/home/00000001/savedata)" ]]; then + log i "Existing RPCS3 savedata found, backing up..." + create_dir "$backups_folder" + zip -rq9 "$backups_folder/$(date +"%0m%0d")_rpcs3_save_data.zip" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" + fi dir_prep "$saves_folder/ps3/rpcs3" "$bios_folder/rpcs3/dev_hdd0/home/00000001/savedata" log i "RPCS3 saves migration completed, a backup was made here: \"$backups_folder/$(date +"%0m%0d")_rpcs3_save_data.zip\"." From 50957bd57446055386843e6c7dc17b5822dd7410 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Sat, 30 Mar 2024 13:13:33 +0100 Subject: [PATCH 06/16] RPCS3: updated --- 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 8929261c..35a55bf0 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -913,7 +913,7 @@ modules: sources: - type: git url: https://github.com/RPCS3/rpcs3.git - commit: efbf044ea08a0cee103acaf664f55e8eaa452c63 + commit: 4ecf8ecd06c15f0557e1d9243f31e4c2d7baebe2 # RPCS3 - END From 32ebb6e686a71f394107739c63a64215c8a482df Mon Sep 17 00:00:00 2001 From: icenine451 Date: Tue, 2 Apr 2024 09:53:35 -0400 Subject: [PATCH 07/16] Add post-compression file check before original deletion Add ROM backup disclaimer to compression auto-cleanup --- functions/compression.sh | 56 +++++++++++++++++++++++----------------- tools/configurator.sh | 48 ++++++++++++++++++++-------------- 2 files changed, 60 insertions(+), 44 deletions(-) diff --git a/functions/compression.sh b/functions/compression.sh index 15bce646..2a0e25d6 100644 --- a/functions/compression.sh +++ b/functions/compression.sh @@ -111,19 +111,23 @@ cli_compress_single_game() { echo "$(basename "$file") can be compressed to $compatible_compression_format" compress_game "$compatible_compression_format" "$file" "$system" if [[ $post_compression_cleanup == [yY] ]]; then # Remove file(s) if requested - if [[ $(basename "$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 original file "$file_path/$line"" - rm -f "$file_path/$line" - done < <(printf '%s\n' "$cue_bin_files") # Remove original .cue file - echo "Removing original file $(basename "$file")" - rm -f "$file" + if [[ -f "${file%.*}.$compatible_compression_format" ]]; then + if [[ $(basename "$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 original file "$file_path/$line"" + rm -f "$file_path/$line" + done < <(printf '%s\n' "$cue_bin_files") # Remove original .cue file + echo "Removing original file $(basename "$file")" + rm -f "$file" + else + echo "Removing original file $(basename "$file")" + rm -f "$file" + fi else - echo "Removing original file $(basename "$file")" - rm -f "$file" + echo "Compressed version of $(basename "$file") not found, skipping deletion." fi fi else @@ -169,19 +173,23 @@ cli_compress_all_games() { echo "$(basename "$file") can be compressed to $compatible_compression_format" compress_game "$compatible_compression_format" "$file" "$system" 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 original file "$file_path/$line"" - rm -f "$file_path/$line" - done < <(printf '%s\n' "$cue_bin_files") # Remove original .cue file - echo "Removing original file "$file"" - rm -f $(realpath "$file") + if [[ -f "${file%.*}.$compatible_compression_format" ]]; then + 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 original file "$file_path/$line"" + rm -f "$file_path/$line" + done < <(printf '%s\n' "$cue_bin_files") # Remove original .cue file + echo "Removing original file "$file"" + rm -f $(realpath "$file") + else + echo "Removing original file "$file"" + rm -f $(realpath "$file") + fi else - echo "Removing original file "$file"" - rm -f $(realpath "$file") + echo "Compressed version of $(basename "$file") not found, skipping deletion." fi fi else diff --git a/tools/configurator.sh b/tools/configurator.sh index 7f08d563..f45c27fc 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -793,23 +793,27 @@ configurator_compress_single_game_dialog() { echo "# Compressing $(basename "$file") to $compatible_compression_format format" compress_game "$compatible_compression_format" "$file" "$system" 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 - rm -f "$file_path/$line" - done < <(printf '%s\n' "$cue_bin_files") - rm -f $(realpath "$file") + if [[ -f "${file%.*}.$compatible_compression_format" ]]; then + 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 + rm -f "$file_path/$line" + done < <(printf '%s\n' "$cue_bin_files") + rm -f $(realpath "$file") + else + rm -f "$(realpath "$file")" + fi else - rm -f "$(realpath "$file")" + configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "A compressed version of the file was not found, skipping deletion." 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" - configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "The compression process is complete!" + configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "The compression process is complete." configurator_compression_tool_dialog else @@ -910,16 +914,20 @@ configurator_compress_multiple_games_dialog() { games_left_to_compress=$((games_left_to_compress-1)) compress_game "$compression_format" "$file" "$system" 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 - rm -f "$file_path/$line" - done < <(printf '%s\n' "$cue_bin_files") - rm -f $(realpath "$file") + if [[ -f "${file%.*}.$compatible_compression_format" ]]; then + 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 + rm -f "$file_path/$line" + done < <(printf '%s\n' "$cue_bin_files") + rm -f $(realpath "$file") + else + rm -f "$(realpath "$file")" + fi else - rm -f "$(realpath "$file")" + configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "Compression of $(basename $file) failed, skipping deletion." fi fi done @@ -938,7 +946,7 @@ 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 Configurator - RetroDECK: Compression Tool" \ - --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." + --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.\n\nPlease make sure you have a backup of your ROMs before using automatic cleanup!" local rc=$? # Capture return code, as "Yes" button has no text value if [[ $rc == "0" ]]; then # If user clicked "Yes" echo "true" From 49a51bd17838af8031c439c51c40e51af26b0b6b Mon Sep 17 00:00:00 2001 From: XargonWan Date: Mon, 8 Apr 2024 10:59:51 +0900 Subject: [PATCH 08/16] RYUJINX: removed wrapper and symlinked the whole keys folder --- emu-configs/ryujinx/ryujinx-rdwrapper.sh | 9 ------ functions/functions.sh | 37 ------------------------ functions/prepare_component.sh | 1 + net.retrodeck.retrodeck.yml | 4 --- tools/configurator.sh | 2 +- 5 files changed, 2 insertions(+), 51 deletions(-) delete mode 100755 emu-configs/ryujinx/ryujinx-rdwrapper.sh diff --git a/emu-configs/ryujinx/ryujinx-rdwrapper.sh b/emu-configs/ryujinx/ryujinx-rdwrapper.sh deleted file mode 100755 index 7865db7e..00000000 --- a/emu-configs/ryujinx/ryujinx-rdwrapper.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -source /app/libexec/global.sh - -log i "Ryujinx RetroDECK wrapper: starting" -command="$1" -manage_ryujinx_keys -log d "Ryujinx RetroDECK wrapper: launching \"Ryujinx.sh $command\"" -Ryujinx.sh "$command" \ No newline at end of file diff --git a/functions/functions.sh b/functions/functions.sh index c7641735..b040fc73 100644 --- a/functions/functions.sh +++ b/functions/functions.sh @@ -620,43 +620,6 @@ easter_eggs() { cp -f "$new_splash_file" "$current_splash_file" # Deploy assigned splash screen } -manage_ryujinx_keys() { - # This function checks if Switch keys are existing and symlinks them inside the Ryujinx system folder - # If the symlinks are broken it recreates them - - log i "Checking Ryujinx Switch keys." - local ryujinx_system="/var/config/Ryujinx/system" # Set the path to the Ryujinx system folder - # Check if the keys folder exists - if [ -d "$bios_folder/switch/keys" ]; then - # Check if there are files in the keys folder - if [ -n "$(find "$bios_folder/switch/keys" -maxdepth 1 -type f)" ]; then - # Iterate over each file in the keys folder - for file in "$bios_folder/switch/keys"/*; do - local filename=$(basename "$file") - local symlink="$ryujinx_system/$filename" - - # Check if the symlink exists and is valid - if [ -L "$symlink" ] && [ "$(readlink -f "$symlink")" = "$file" ]; then - log i "Found \"$symlink\" and it's a valid symlink." - continue # Skip if the symlink is already valid - fi - - # Remove broken symlink or non-symlink file - log w "Found \"$symlink\" but it's not a valid symlink. Repairing it" - [ -e "$symlink" ] && rm "$symlink" - - # Create symlink - ln -s "$file" "$symlink" - log i "Created symlink: \"$symlink\"" - done - else - log w "No files found in $bios_folder/switch/keys. Continuing..." - fi - else - log e "Directory $bios_folder/switch/keys does not exist. Something is wrong with your RetroDECK installation. Continuing but Ryujinx will not be able to run any game." - fi -} - ponzu() { # This function is used to extract some specific appimages # Check if any of the specified files exist diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index 003c72fa..8d97b1a4 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -602,6 +602,7 @@ prepare_component() { dir_prep "$saves_folder/switch/ryujinx/nand" "/var/config/Ryujinx/bis" dir_prep "$saves_folder/switch/ryujinx/sdcard" "/var/config/Ryujinx/sdcard" dir_prep "$bios_folder/switch/firmware" "/var/config/Ryujinx/bis/system/Contents/registered" + dir_prep "$bios_folder/switch/keys" "/var/config/Ryujinx/system" fi fi # if [[ "$action" == "reset" ]] || [[ "$action" == "postmove" ]]; then # Run commands that apply to both resets and moves diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 35a55bf0..62bb93b1 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -1304,10 +1304,6 @@ modules: - cp emu-configs/gzdoom/gzdoom.sh ${FLATPAK_DEST}/bin/gzdoom.sh - chmod +x ${FLATPAK_DEST}/bin/gzdoom.sh - # Ryujinx wrapper - - cp emu-configs/ryujinx/ryujinx-rdwrapper.sh ${FLATPAK_DEST}/bin/ryujinx-rdwrapper.sh - - chmod +x ${FLATPAK_DEST}/bin/ryujinx-rdwrapper.sh - sources: - type: git url: https://github.com/XargonWan/RetroDECK.git diff --git a/tools/configurator.sh b/tools/configurator.sh index f45c27fc..c23788dc 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -527,7 +527,7 @@ configurator_open_emulator_dialog() { "Ryujinx" ) log i "Configurator: \"$emulator\"" - ryujinx-rdwrapper.sh + Ryujinx.sh ;; "Vita3K" ) From baea3b284e7cf62417943a4a2bb4db92e0e0a4b9 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Mon, 8 Apr 2024 17:02:29 +0900 Subject: [PATCH 09/16] RYUJINX: start in fullscreen [skip ci] --- emu-configs/ryujinx/Config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emu-configs/ryujinx/Config.json b/emu-configs/ryujinx/Config.json index 8fb6245a..5eac5602 100644 --- a/emu-configs/ryujinx/Config.json +++ b/emu-configs/ryujinx/Config.json @@ -86,7 +86,7 @@ "grid_size": 2, "application_sort": 0, "is_ascending_order": true, - "start_fullscreen": false, + "start_fullscreen": true, "show_console": true, "enable_keyboard": false, "enable_mouse": false, From 9cb238a9df29bb25f6e03e26966ad24682809cd1 Mon Sep 17 00:00:00 2001 From: icenine451 Date: Mon, 8 Apr 2024 09:34:21 -0400 Subject: [PATCH 10/16] Update compression process logging --- functions/compression.sh | 55 ++++++++++++++++++++-------------------- tools/configurator.sh | 14 +++++++++- 2 files changed, 40 insertions(+), 29 deletions(-) diff --git a/functions/compression.sh b/functions/compression.sh index 2a0e25d6..bb33cd2e 100644 --- a/functions/compression.sh +++ b/functions/compression.sh @@ -55,36 +55,35 @@ validate_for_chd() { local file="$1" local normalized_filename=$(echo "$file" | tr '[:upper:]' '[:lower:]') local file_validated="false" - chd_validation_log_file="compression_$(basename "$file").log" - echo "Validating file:" "$file" > "$logs_folder/$chd_validation_log_file" + log i "Validating file: $file" if echo "$normalized_filename" | grep -qE '\.iso|\.cue|\.gdi'; then - echo ".cue/.iso/.gdi file detected" >> "$logs_folder/$chd_validation_log_file" + log i ".cue/.iso/.gdi file detected" local file_path=$(dirname "$(realpath "$file")") local file_base_name=$(basename "$file") local file_name=${file_base_name%.*} if [[ "$normalized_filename" == *".cue" ]]; then # Validate .cue file if [[ ! "$file_path" == *"dreamcast"* ]]; then # .bin/.cue compression may not work for Dreamcast, only GDI or ISO # TODO: verify - echo "Validating .cue associated .bin files" >> "$logs_folder/$chd_validation_log_file" + log i "Validating .cue associated .bin files" local cue_bin_files=$(grep -o -P "(?<=FILE \").*(?=\".*$)" "$file") - echo "Associated bin files read:" >> "$logs_folder/$chd_validation_log_file" - printf '%s\n' "$cue_bin_files" >> "$logs_folder/$chd_validation_log_file" + log i "Associated bin files read:" + log i $(printf '%s\n' "$cue_bin_files") if [[ ! -z "$cue_bin_files" ]]; then while IFS= read -r line do - echo "looking for $file_path/$line" >> "$logs_folder/$chd_validation_log_file" + log i "Looking for $file_path/$line" if [[ -f "$file_path/$line" ]]; then - echo ".bin file found at $file_path/$line" >> "$logs_folder/$chd_validation_log_file" + log i ".bin file found at $file_path/$line" file_validated="true" else - echo ".bin file NOT found at $file_path/$line" >> "$logs_folder/$chd_validation_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/$chd_validation_log_file" + log e ".bin file NOT found at $file_path/$line" + log e ".cue file could not be validated. Please verify your .cue file contains the correct corresponding .bin file information and retry." file_validated="false" break fi done < <(printf '%s\n' "$cue_bin_files") fi else - echo ".cue files not compatible with Dreamcast CHD compression" >> "$logs_folder/$chd_validation_log_file" + log w ".cue files not compatible with CHD compression" fi echo $file_validated else # If file is a .iso or .gdi @@ -92,7 +91,7 @@ validate_for_chd() { echo $file_validated fi else - echo "File type not recognized. Supported file types are .cue, .gdi and .iso" >> "$logs_folder/$chd_validation_log_file" + log w "File type not recognized. Supported file types are .cue, .gdi and .iso" echo $file_validated fi } @@ -108,7 +107,7 @@ cli_compress_single_game() { local system=$(echo "$file" | grep -oE "$roms_folder/[^/]+" | grep -oE "[^/]+$") local compatible_compression_format=$(find_compatible_compression_format "$file") if [[ ! $compatible_compression_format == "none" ]]; then - echo "$(basename "$file") can be compressed to $compatible_compression_format" + log i "$(basename "$file") can be compressed to $compatible_compression_format" compress_game "$compatible_compression_format" "$file" "$system" if [[ $post_compression_cleanup == [yY] ]]; then # Remove file(s) if requested if [[ -f "${file%.*}.$compatible_compression_format" ]]; then @@ -117,27 +116,27 @@ cli_compress_single_game() { local file_path=$(dirname "$(realpath "$file")") while IFS= read -r line do # Remove associated .bin files - echo "Removing original file "$file_path/$line"" + log i "Removing original file "$file_path/$line"" rm -f "$file_path/$line" done < <(printf '%s\n' "$cue_bin_files") # Remove original .cue file - echo "Removing original file $(basename "$file")" + log i "Removing original file $(basename "$file")" rm -f "$file" else - echo "Removing original file $(basename "$file")" + log i "Removing original file $(basename "$file")" rm -f "$file" fi else - echo "Compressed version of $(basename "$file") not found, skipping deletion." + log w "Compressed version of $(basename "$file") not found, skipping deletion." fi fi else - echo "$(basename "$file") does not have any compatible compression formats." + log w "$(basename "$file") does not have any compatible compression formats." fi else - echo "File not found, please specify the full path to the file to be compressed." + log w "File not found, please specify the full path to the file to be compressed." fi else - echo "Please use this command format \"--compress-one \"" + log i "Please use this command format \"--compress-one \"" fi } @@ -165,12 +164,12 @@ cli_compress_all_games() { do local compression_candidates=$(find "$roms_folder/$system" -type f -not -iname "*.txt") if [[ ! -z "$compression_candidates" ]]; then - echo "Checking files for $system" + log i "Checking files for $system" while IFS= read -r file do local compatible_compression_format=$(find_compatible_compression_format "$file") if [[ ! "$compatible_compression_format" == "none" ]]; then - echo "$(basename "$file") can be compressed to $compatible_compression_format" + log i "$(basename "$file") can be compressed to $compatible_compression_format" compress_game "$compatible_compression_format" "$file" "$system" if [[ $post_compression_cleanup == [yY] ]]; then # Remove file(s) if requested if [[ -f "${file%.*}.$compatible_compression_format" ]]; then @@ -179,25 +178,25 @@ cli_compress_all_games() { local file_path=$(dirname "$(realpath "$file")") while IFS= read -r line do # Remove associated .bin files - echo "Removing original file "$file_path/$line"" + log i "Removing original file "$file_path/$line"" rm -f "$file_path/$line" done < <(printf '%s\n' "$cue_bin_files") # Remove original .cue file - echo "Removing original file "$file"" + log i "Removing original file "$file"" rm -f $(realpath "$file") else - echo "Removing original file "$file"" + log i "Removing original file "$file"" rm -f $(realpath "$file") fi else - echo "Compressed version of $(basename "$file") not found, skipping deletion." + log w "Compressed version of $(basename "$file") not found, skipping deletion." fi fi else - echo "No compatible compression format found for $(basename "$file")" + log w "No compatible compression format found for $(basename "$file")" fi done < <(printf '%s\n' "$compression_candidates") else - echo "No compatible files found for compression in $system" + log w "No compatible files found for compression in $system" fi done < <(printf '%s\n' "$compressable_systems_list") } diff --git a/tools/configurator.sh b/tools/configurator.sh index c23788dc..e00747f5 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -790,22 +790,28 @@ configurator_compress_single_game_dialog() { if [[ ! $compatible_compression_format == "none" ]]; then local post_compression_cleanup=$(configurator_compression_cleanup_dialog) ( - echo "# Compressing $(basename "$file") to $compatible_compression_format format" + echo "# Compressing $(basename "$file") to $compatible_compression_format format" # This updates the Zenity dialog + log i "Compressing $(basename "$file") to $compatible_compression_format format" compress_game "$compatible_compression_format" "$file" "$system" if [[ $post_compression_cleanup == "true" ]]; then # Remove file(s) if requested if [[ -f "${file%.*}.$compatible_compression_format" ]]; then + log i "Performing post-compression file cleanup" 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 + log i "Removing file $file_path/$line" rm -f "$file_path/$line" done < <(printf '%s\n' "$cue_bin_files") + log i "Removing file $(realpath $file)" rm -f $(realpath "$file") else + log i "Removing file $(realpath $file)" rm -f "$(realpath "$file")" fi else + log i "Compressed file ${file%.*}.$compatible_compression_format not found, skipping original file deletion" configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "A compressed version of the file was not found, skipping deletion." fi fi @@ -909,9 +915,11 @@ configurator_compress_multiple_games_dialog() { local system=$(echo "$file" | grep -oE "$roms_folder/[^/]+" | grep -oE "[^/]+$") local compression_format=$(find_compatible_compression_format "$file") echo "# Compressing $(basename "$file") into $compression_format format" # Update Zenity dialog text + log i "Compressing $(basename "$file") into $compression_format format" progress=$(( 100 - (( 100 / "$total_games_to_compress" ) * "$games_left_to_compress" ))) echo $progress games_left_to_compress=$((games_left_to_compress-1)) + log i "Games left to compress: $games_left_to_compress" compress_game "$compression_format" "$file" "$system" if [[ $post_compression_cleanup == "true" ]]; then # Remove file(s) if requested if [[ -f "${file%.*}.$compatible_compression_format" ]]; then @@ -920,13 +928,17 @@ configurator_compress_multiple_games_dialog() { local file_path=$(dirname "$(realpath "$file")") while IFS= read -r line do + log i "Removing file $file_path/$line" rm -f "$file_path/$line" done < <(printf '%s\n' "$cue_bin_files") + log i "Removing file $(realpath $file)" rm -f $(realpath "$file") else + log i "Removing file $(realpath $file)" rm -f "$(realpath "$file")" fi else + log i "Compressed file ${file%.*}.$compatible_compression_format not found, skipping original file deletion" configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "Compression of $(basename $file) failed, skipping deletion." fi fi From 4ac53504424c355c92575bae139bbabf382644be Mon Sep 17 00:00:00 2001 From: XargonWan Date: Tue, 9 Apr 2024 09:36:04 +0900 Subject: [PATCH 11/16] DEVELOPER_TOOLS: fixed filename [skip ci] --- .../{build_retrodck_locally.sh => build_retrodeck_locally.sh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename developer_toolbox/{build_retrodck_locally.sh => build_retrodeck_locally.sh} (100%) diff --git a/developer_toolbox/build_retrodck_locally.sh b/developer_toolbox/build_retrodeck_locally.sh similarity index 100% rename from developer_toolbox/build_retrodck_locally.sh rename to developer_toolbox/build_retrodeck_locally.sh From 67de237a9dcc4ad79a1ce8d88404093f0fa742b0 Mon Sep 17 00:00:00 2001 From: Lazorne Date: Wed, 10 Apr 2024 15:10:39 +0200 Subject: [PATCH 12/16] Ryujinx Configs maybe? --- emu-configs/ryujinx/Config.json | 102 +++++++++--------- .../profiles/controller/Controller-P1.json | 64 +++++++++++ .../profiles/controller/Controller-P2.json | 59 ++++++++++ .../profiles/controller/Controller-P3.json | 59 ++++++++++ .../profiles/controller/Controller-P4.json | 59 ++++++++++ .../profiles/controller/SteamInput-Gyro.json | 64 +++++++++++ 6 files changed, 356 insertions(+), 51 deletions(-) create mode 100644 emu-configs/ryujinx/profiles/controller/Controller-P1.json create mode 100644 emu-configs/ryujinx/profiles/controller/Controller-P2.json create mode 100644 emu-configs/ryujinx/profiles/controller/Controller-P3.json create mode 100644 emu-configs/ryujinx/profiles/controller/Controller-P4.json create mode 100644 emu-configs/ryujinx/profiles/controller/SteamInput-Gyro.json diff --git a/emu-configs/ryujinx/Config.json b/emu-configs/ryujinx/Config.json index 5eac5602..4f67672d 100644 --- a/emu-configs/ryujinx/Config.json +++ b/emu-configs/ryujinx/Config.json @@ -91,11 +91,11 @@ "enable_keyboard": false, "enable_mouse": false, "hotkeys": { - "toggle_vsync": "", - "screenshot": "", - "show_ui": "ESC", - "pause": "", - "toggle_mute": "", + "toggle_vsync": "Tab", + "screenshot": "F8", + "show_ui": "F4", + "pause": "F5", + "toggle_mute": "F2", "res_scale_up": "Unbound", "res_scale_down": "Unbound", "volume_up": "Unbound", @@ -119,11 +119,11 @@ "rotate90_cw": false, "stick_button": "RightStick" }, - "deadzone_left": 0, - "deadzone_right": 0, - "range_left": 1.2, + "deadzone_left": 0.1, + "deadzone_right": 0.1, + "range_left": 1, "range_right": 1, - "trigger_threshold": 0, + "trigger_threshold": 0.5, "motion": { "slot": 0, "alt_slot": 0, @@ -136,12 +136,12 @@ "enable_motion": true }, "rumble": { - "strong_rumble": 2.1, + "strong_rumble": 1, "weak_rumble": 1, "enable_rumble": true }, "left_joycon": { - "button_minus": "Minus", + "button_minus": "Back", "button_l": "LeftShoulder", "button_zl": "LeftTrigger", "button_sl": "Unbound", @@ -152,20 +152,20 @@ "dpad_right": "DpadRight" }, "right_joycon": { - "button_plus": "Plus", + "button_plus": "Start", "button_r": "RightShoulder", "button_zr": "RightTrigger", "button_sl": "Unbound", "button_sr": "Unbound", - "button_x": "X", - "button_b": "B", - "button_y": "Y", - "button_a": "A" + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" }, "version": 1, "backend": "GamepadSDL2", - "id": "0-00000003-28de-0000-ff11-000001000000", - "controller_type": "JoyconPair", + "id": "0-36b80003-28de-0000-ff11-000001000000", + "controller_type": "ProController", "player_index": "Player1" }, { @@ -183,11 +183,11 @@ "rotate90_cw": false, "stick_button": "RightStick" }, - "deadzone_left": 0, - "deadzone_right": 0, - "range_left": 1.2, + "deadzone_left": 0.1, + "deadzone_right": 0.1, + "range_left": 1, "range_right": 1, - "trigger_threshold": 0, + "trigger_threshold": 0.5, "motion": { "motion_backend": "GamepadDriver", "sensitivity": 100, @@ -200,7 +200,7 @@ "enable_rumble": true }, "left_joycon": { - "button_minus": "Minus", + "button_minus": "Back", "button_l": "LeftShoulder", "button_zl": "LeftTrigger", "button_sl": "Unbound", @@ -211,19 +211,19 @@ "dpad_right": "DpadRight" }, "right_joycon": { - "button_plus": "Plus", + "button_plus": "Start", "button_r": "RightShoulder", "button_zr": "RightTrigger", "button_sl": "Unbound", "button_sr": "Unbound", - "button_x": "X", - "button_b": "B", - "button_y": "Y", - "button_a": "A" + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" }, "version": 1, "backend": "GamepadSDL2", - "id": "1-00000003-28de-0000-ff11-000001000000", + "id": "1-36b80003-28de-0000-ff11-000001000000", "controller_type": "ProController", "player_index": "Player2" }, @@ -242,11 +242,11 @@ "rotate90_cw": false, "stick_button": "RightStick" }, - "deadzone_left": 0, - "deadzone_right": 0, - "range_left": 1.2, + "deadzone_left": 0.1, + "deadzone_right": 0.1, + "range_left": 1, "range_right": 1, - "trigger_threshold": 0, + "trigger_threshold": 0.5, "motion": { "motion_backend": "GamepadDriver", "sensitivity": 100, @@ -259,7 +259,7 @@ "enable_rumble": true }, "left_joycon": { - "button_minus": "Minus", + "button_minus": "Back", "button_l": "LeftShoulder", "button_zl": "LeftTrigger", "button_sl": "Unbound", @@ -270,19 +270,19 @@ "dpad_right": "DpadRight" }, "right_joycon": { - "button_plus": "Plus", + "button_plus": "Start", "button_r": "RightShoulder", "button_zr": "RightTrigger", "button_sl": "Unbound", "button_sr": "Unbound", - "button_x": "X", - "button_b": "B", - "button_y": "Y", - "button_a": "A" + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" }, "version": 1, "backend": "GamepadSDL2", - "id": "2-00000003-28de-0000-ff11-000001000000", + "id": "2-36b80003-28de-0000-ff11-000001000000", "controller_type": "ProController", "player_index": "Player3" }, @@ -301,11 +301,11 @@ "rotate90_cw": false, "stick_button": "RightStick" }, - "deadzone_left": 0, - "deadzone_right": 0, - "range_left": 1.2, + "deadzone_left": 0.1, + "deadzone_right": 0.1, + "range_left": 1, "range_right": 1, - "trigger_threshold": 0, + "trigger_threshold": 0.5, "motion": { "motion_backend": "GamepadDriver", "sensitivity": 100, @@ -318,7 +318,7 @@ "enable_rumble": true }, "left_joycon": { - "button_minus": "Minus", + "button_minus": "Back", "button_l": "LeftShoulder", "button_zl": "LeftTrigger", "button_sl": "Unbound", @@ -329,19 +329,19 @@ "dpad_right": "DpadRight" }, "right_joycon": { - "button_plus": "Plus", + "button_plus": "Start", "button_r": "RightShoulder", "button_zr": "RightTrigger", "button_sl": "Unbound", "button_sr": "Unbound", - "button_x": "X", - "button_b": "B", - "button_y": "Y", - "button_a": "A" + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" }, "version": 1, "backend": "GamepadSDL2", - "id": "3-00000003-28de-0000-ff11-000001000000", + "id": "3-36b80003-28de-0000-ff11-000001000000", "controller_type": "ProController", "player_index": "Player4" } diff --git a/emu-configs/ryujinx/profiles/controller/Controller-P1.json b/emu-configs/ryujinx/profiles/controller/Controller-P1.json new file mode 100644 index 00000000..99ad926d --- /dev/null +++ b/emu-configs/ryujinx/profiles/controller/Controller-P1.json @@ -0,0 +1,64 @@ +{ + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0.1, + "deadzone_right": 0.1, + "range_left": 1, + "range_right": 1, + "trigger_threshold": 0.5, + "motion": { + "slot": 0, + "alt_slot": 0, + "mirror_input": false, + "dsu_server_host": "127.0.0.1", + "dsu_server_port": 26760, + "motion_backend": "CemuHook", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": false + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Back", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Start", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "0-f7390003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player1" +} diff --git a/emu-configs/ryujinx/profiles/controller/Controller-P2.json b/emu-configs/ryujinx/profiles/controller/Controller-P2.json new file mode 100644 index 00000000..30e0a478 --- /dev/null +++ b/emu-configs/ryujinx/profiles/controller/Controller-P2.json @@ -0,0 +1,59 @@ +{ + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0.1, + "deadzone_right": 0.1, + "range_left": 1, + "range_right": 1, + "trigger_threshold": 0.5, + "motion": { + "motion_backend": "GamepadDriver", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": false + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Back", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Start", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "1-f7390003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player2" +} diff --git a/emu-configs/ryujinx/profiles/controller/Controller-P3.json b/emu-configs/ryujinx/profiles/controller/Controller-P3.json new file mode 100644 index 00000000..e2b180be --- /dev/null +++ b/emu-configs/ryujinx/profiles/controller/Controller-P3.json @@ -0,0 +1,59 @@ +{ + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0.1, + "deadzone_right": 0.1, + "range_left": 1, + "range_right": 1, + "trigger_threshold": 0.5, + "motion": { + "motion_backend": "GamepadDriver", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": false + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Back", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Start", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "2-f7390003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player3" +} diff --git a/emu-configs/ryujinx/profiles/controller/Controller-P4.json b/emu-configs/ryujinx/profiles/controller/Controller-P4.json new file mode 100644 index 00000000..27df16f0 --- /dev/null +++ b/emu-configs/ryujinx/profiles/controller/Controller-P4.json @@ -0,0 +1,59 @@ +{ + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0.1, + "deadzone_right": 0.1, + "range_left": 1, + "range_right": 1, + "trigger_threshold": 0.5, + "motion": { + "motion_backend": "GamepadDriver", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": false + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Back", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Start", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "3-f7390003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player4" +} diff --git a/emu-configs/ryujinx/profiles/controller/SteamInput-Gyro.json b/emu-configs/ryujinx/profiles/controller/SteamInput-Gyro.json new file mode 100644 index 00000000..e58b7afa --- /dev/null +++ b/emu-configs/ryujinx/profiles/controller/SteamInput-Gyro.json @@ -0,0 +1,64 @@ +{ + "left_joycon_stick": { + "joystick": "Left", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "LeftStick" + }, + "right_joycon_stick": { + "joystick": "Right", + "invert_stick_x": false, + "invert_stick_y": false, + "rotate90_cw": false, + "stick_button": "RightStick" + }, + "deadzone_left": 0.1, + "deadzone_right": 0.1, + "range_left": 1, + "range_right": 1, + "trigger_threshold": 0.5, + "motion": { + "slot": 0, + "alt_slot": 0, + "mirror_input": false, + "dsu_server_host": "127.0.0.1", + "dsu_server_port": 26760, + "motion_backend": "CemuHook", + "sensitivity": 100, + "gyro_deadzone": 1, + "enable_motion": true + }, + "rumble": { + "strong_rumble": 1, + "weak_rumble": 1, + "enable_rumble": true + }, + "left_joycon": { + "button_minus": "Back", + "button_l": "LeftShoulder", + "button_zl": "LeftTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "dpad_up": "DpadUp", + "dpad_down": "DpadDown", + "dpad_left": "DpadLeft", + "dpad_right": "DpadRight" + }, + "right_joycon": { + "button_plus": "Start", + "button_r": "RightShoulder", + "button_zr": "RightTrigger", + "button_sl": "Unbound", + "button_sr": "Unbound", + "button_x": "Y", + "button_b": "A", + "button_y": "X", + "button_a": "B" + }, + "version": 1, + "backend": "GamepadSDL2", + "id": "0-f6790003-28de-0000-ff11-000001000000", + "controller_type": "ProController", + "player_index": "Player1" +} From 68dcbd820084bc19fc42330520e72c653abe4c6e Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 11 Apr 2024 21:17:29 +0900 Subject: [PATCH 13/16] RYUJINX: injecting controllers config --- functions/prepare_component.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index 8d97b1a4..e3a9cc92 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -594,6 +594,7 @@ prepare_component() { rm -rf /var/config/Ryujinx create_dir /var/config/Ryujinx/system cp -fv $emuconfigs/ryujinx/Config.json $ryujinxconf + cp -fvr $emuconfigs/ryujinx/profiles /var/config/Ryujinx/ log d "Replacing placeholders in \"$ryujinxconf\"" sed -i 's#RETRODECKHOMEDIR#'$rdhome'#g' "$ryujinxconf" log i "Linking switch nand/saves folder" From 7bb1c6e9af22d19eb644b3a28f22bbf7857ab6d9 Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 11 Apr 2024 21:20:13 +0900 Subject: [PATCH 14/16] PCSX2: hiding mouse cursor in fullscreen --- emu-configs/PCSX2/PCSX2.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/emu-configs/PCSX2/PCSX2.ini b/emu-configs/PCSX2/PCSX2.ini index a1fe4f9d..c818b225 100644 --- a/emu-configs/PCSX2/PCSX2.ini +++ b/emu-configs/PCSX2/PCSX2.ini @@ -7,7 +7,7 @@ PauseOnFocusLoss = true StartFullscreen = true StartPaused = false ConfirmShutdown = false -HideMouseCursor = false +HideMouseCursor = true RenderToSeparateWindow = false HideMainWindowWhenRunning = false DisableWindowResize = false From 18f0a385db9c5eab2b6a3ac455544fc8cd66589a Mon Sep 17 00:00:00 2001 From: XargonWan Date: Thu, 11 Apr 2024 22:00:33 +0900 Subject: [PATCH 15/16] RYUJINX: fixed cli reset issue [skip ci] --- functions/prepare_component.sh | 2 +- retrodeck.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index e3a9cc92..ad9fd69e 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -571,7 +571,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(ryujunx|Ryujinx|all)$ ]]; then + if [[ "$component" =~ ^(ryujinx|Ryujinx|all)$ ]]; then # NOTE: for techincal reasons the system folder of Ryujinx IS NOT a sumlink of the bios/switch/keys as not only the keys are located there # When RetroDECK starts there is a "manage_ryujinx_keys" function that symlinks the keys only in Rryujinx/system. if [[ "$action" == "reset" ]]; then # Run reset-only commands diff --git a/retrodeck.sh b/retrodeck.sh index cab440d7..402005a2 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -56,7 +56,7 @@ https://retrodeck.net ;; --reset-component*) echo "You are about to reset one or more RetroDECK components or emulators." - echo "Available options are: es-de, retroarch, cemu, dolphin, duckstation, gzdoom, melonds, pcsx3, pico8, ppsspp, primehack, ryujinx, rpcs3, ryujinx, xemu, vita3k, mame, boilr, all" + echo "Available options are: es-de, retroarch, cemu, dolphin, duckstation, gzdoom, melonds, pcsx3, pico8, ppsspp, primehack, ryujinx, rpcs3, xemu, vita3k, mame, boilr, all" read -p "Please enter the component you would like to reset: " component if [[ "$component" =~ ^(es-de|retroarch|cemu|dolphin|duckstation|gzdoom|mame|melonds|pcsx2|ppsspp|primehack|ryujinx|rpcs3|xemu|all)$ ]]; then read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response From ccf900f2d44c0457b8432eb139b31c7236728aea Mon Sep 17 00:00:00 2001 From: icenine451 Date: Thu, 11 Apr 2024 09:09:38 -0400 Subject: [PATCH 16/16] Fix Ryujinx prepare_component typo Add "component not found" catch to prepare_component --- functions/prepare_component.sh | 7 +++++-- retrodeck.sh | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index e3a9cc92..a47e5fd2 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -571,7 +571,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(ryujunx|Ryujinx|all)$ ]]; then + if [[ "$component" =~ ^(ryujinx|Ryujinx|all)$ ]]; then # NOTE: for techincal reasons the system folder of Ryujinx IS NOT a sumlink of the bios/switch/keys as not only the keys are located there # When RetroDECK starts there is a "manage_ryujinx_keys" function that symlinks the keys only in Rryujinx/system. if [[ "$action" == "reset" ]]; then # Run reset-only commands @@ -828,7 +828,10 @@ prepare_component() { create_dir "/var/config/boilr" cp -fvr "/app/libexec/steam-sync/config.toml" "/var/config/boilr" - + fi + + if [[ ! "$component" =~ ^(retrodeck|es-de|ES-DE|retroarch|RetroArch|citra|citra-emu|Citra|cemu|Cemu|dolphin|dolphin-emu|Dolphin|duckstation|Duckstation|melonds|melonDS|MelonDS|pcsx2|PCSX2|pico8|pico-8|ppsspp|PPSSPP|primehack|Primehack|rpcs3|RPCS3|ryujinx|Ryujinx|yuzu|Yuzu|xemu|XEMU|vita3k|Vita3K|mame|MAME|gzdoom|GZDOOM|boilr|BOILR|)$ ]]; then + log e "Supplied component $component not found, not resetting" fi # Update presets for all components after any reset or move diff --git a/retrodeck.sh b/retrodeck.sh index cab440d7..bdfdae05 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -56,7 +56,7 @@ https://retrodeck.net ;; --reset-component*) echo "You are about to reset one or more RetroDECK components or emulators." - echo "Available options are: es-de, retroarch, cemu, dolphin, duckstation, gzdoom, melonds, pcsx3, pico8, ppsspp, primehack, ryujinx, rpcs3, ryujinx, xemu, vita3k, mame, boilr, all" + echo "Available options are: es-de, retroarch, cemu, dolphin, duckstation, gzdoom, melonds, pcsx3, pico8, ppsspp, primehack, rpcs3, ryujinx, xemu, vita3k, mame, boilr, all" read -p "Please enter the component you would like to reset: " component if [[ "$component" =~ ^(es-de|retroarch|cemu|dolphin|duckstation|gzdoom|mame|melonds|pcsx2|ppsspp|primehack|ryujinx|rpcs3|xemu|all)$ ]]; then read -p "You are about to reset $component to default settings. Enter 'y' to continue, 'n' to stop: " response