diff --git a/automation_tools/automation_task_list.cfg b/automation_tools/automation_task_list.cfg index 09a15943..0460a41b 100644 --- a/automation_tools/automation_task_list.cfg +++ b/automation_tools/automation_task_list.cfg @@ -7,6 +7,7 @@ hash^PPSSPPBIOSHASHPLACEHOLDER^https://github.com/hrydgard/ppsspp/archive/refs/h hash^MSXBIOSHASHPLACEHOLDER^http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip hash^XEMUHDDHASHPLACEHOLDER^https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip hash^VITA3KSHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip +hash^RANIGHTLYCORESPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch_cores.7z latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main outside_info^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid branch^THISBRANCH diff --git a/emu-configs/cemu/settings.xml b/emu-configs/cemu/settings.xml index d34caaae..af643efb 100644 --- a/emu-configs/cemu/settings.xml +++ b/emu-configs/cemu/settings.xml @@ -7,6 +7,7 @@ 0 true false + false false true false diff --git a/emu-configs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg b/emu-configs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg index e69de29b..1049836f 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/easter_egg_checklist.cfg @@ -0,0 +1 @@ +1201^1231^0000^2359^RetroDECK-Xmas-splash.svg diff --git a/emu-configs/dolphin/GCPadNew.ini b/emu-configs/dolphin/GCPadNew.ini index bb81f4ac..1882559e 100644 --- a/emu-configs/dolphin/GCPadNew.ini +++ b/emu-configs/dolphin/GCPadNew.ini @@ -4,7 +4,7 @@ Buttons/A = SOUTH Buttons/B = EAST Buttons/X = NORTH Buttons/Y = WEST -Buttons/Z = `Full Axis 5+` +Buttons/Z = TR Buttons/Start = START Main Stick/Up = `Axis 1-` Main Stick/Down = `Axis 1+` @@ -20,8 +20,8 @@ C-Stick/Right = `Axis 3+` C-Stick/Modifier = `Ctrl` C-Stick/Modifier/Range = 50.0 C-Stick/Calibration = 100.00 141.42 100.00 141.42 100.00 141.42 100.00 141.42 -Triggers/L = TL -Triggers/R = TR +Triggers/L = `Full Axis 2+` +Triggers/R = `Full Axis 5+` D-Pad/Up = `Axis 7-` D-Pad/Down = `Axis 7+` D-Pad/Left = `Axis 6-` diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index 7012f6bd..4441a72e 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -1471,8 +1471,8 @@ Sony PlayStation 3 %ROMPATH%/ps3 .desktop .ps3 .PS3 .ps3dir .PS3DIR - %EMULATOR_RPCS3% --no-gui %ROM% %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM% + %EMULATOR_RPCS3% --no-gui %ROM% ps3 ps3 diff --git a/functions/dialogs.sh b/functions/dialogs.sh index f50b0279..c2069583 100644 --- a/functions/dialogs.sh +++ b/functions/dialogs.sh @@ -115,7 +115,7 @@ configurator_move_folder_dialog() { unlink "$dest_root/$rd_dir_path" # In case there is already a symlink at the picked destination move "$dir_to_move" "$dest_root/$rd_dir_path" if [[ -d "$dest_root/$rd_dir_path" ]]; then # If the move succeeded - eval "$rd_dir_name"="$dest_root/$rd_dir_path" # Set the new path for that folder variable in retrodeck.cfg + declare -g "$rd_dir_name=$dest_root/$rd_dir_path" # Set the new path for that folder variable in retrodeck.cfg if [[ "$rd_dir_name" == "rdhome" ]]; then # If the whole retrodeck folder was moved... prepare_emulator "postmove" "retrodeck" fi @@ -148,7 +148,7 @@ configurator_move_folder_dialog() { else # The folder to move was not found at the path pulled from retrodeck.cfg and it needs to be reconfigured manually. configurator_generic_dialog "RetroDECK Configurator - Move Folder" "The $(basename $dir_to_move) folder was not found at the expected location.\n\nThis may have happened if the folder was moved manually.\n\nPlease select the current location of the folder." dir_to_move=$(directory_browse "RetroDECK $(basename $dir_to_move) directory location") - eval "$rd_dir_name"="$dir_to_move" + declare -g "$rd_dir_name=$dir_to_move" prepare_emulator "postmove" "all" conf_write configurator_generic_dialog "RetroDECK Configurator - Move Folder" "RetroDECK $(basename $dir_to_move) folder now configured at\n$dir_to_move." diff --git a/functions/functions.sh b/functions/functions.sh index e34a56a6..56403bbe 100644 --- a/functions/functions.sh +++ b/functions/functions.sh @@ -9,14 +9,14 @@ directory_browse() { while [ $path_selected == false ] do local target="$(zenity --file-selection --title="Choose $1" --directory)" - 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="Directory $target chosen, is this correct?" if [ $? == 0 ] then path_selected=true - echo $target + echo "$target" break fi else @@ -161,7 +161,7 @@ conf_read() { if [[ "$current_section" == "" || "$current_section" == "paths" || "$current_section" == "options" ]]; then local current_setting_name=$(get_setting_name "$current_setting_line" "retrodeck") # Read the variable name from the current line local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "$current_section") # Read the variables value from retrodeck.cfg - eval "$current_setting_name=$current_setting_value" # Write the current setting name and value to memory + declare -g "$current_setting_name=$current_setting_value" # Write the current setting name and value to memory fi fi fi @@ -341,7 +341,7 @@ finit() { local finit_dest_choice=$(configurator_destination_choice_dialog "RetroDECK data" "Welcome to the first configuration of RetroDECK.\nThe setup will be quick but please READ CAREFULLY each message in order to avoid misconfigurations.\n\nWhere do you want your RetroDECK data folder to be located?\n\nThis folder will contain all ROMs, BIOSs and scraped data." ) echo "Choice is $finit_dest_choice" - case $finit_dest_choice in + case "$finit_dest_choice" in "Back" | "" ) # Back or X button quits rm -f "$rd_conf" # Cleanup unfinished retrodeck.cfg if first install is interrupted @@ -352,8 +352,8 @@ finit() { "Internal Storage" ) # Internal echo "Internal selected" rdhome="$HOME/retrodeck" - if [[ -L $rdhome ]]; then #Remove old symlink from existing install, if it exists - unlink $rdhome + if [[ -L "$rdhome" ]]; then #Remove old symlink from existing install, if it exists + unlink "$rdhome" fi ;; @@ -366,9 +366,9 @@ finit() { --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK" \ --ok-label "Browse" \ - --text="SD Card was not find in the default location.\nPlease choose the SD Card root.\nA retrodeck folder will be created starting from the directory that you selected." - rdhome=$(finit_browse) # Calling the browse function - if [[ -z $rdhome ]]; then # If user hit the cancel button + --text="SD Card was not found in the default location.\nPlease choose the SD Card root.\nA retrodeck folder will be created starting from the directory that you selected." + rdhome="$(finit_browse)" # Calling the browse function + if [[ -z "$rdhome" ]]; then # If user hit the cancel button rm -f "$rd_conf" # Cleanup unfinished retrodeck.cfg if first install is interrupted exit 2 fi @@ -395,8 +395,8 @@ finit() { --title "RetroDECK" \ --ok-label "Browse" \ --text="Please choose the root folder for the RetroDECK data.\nA retrodeck folder will be created starting from the directory that you selected." - rdhome=$(finit_browse) # Calling the browse function - if [[ -z $rdhome ]]; then # If user hit the cancel button + rdhome="$(finit_browse)" # Calling the browse function + if [[ -z "$rdhome" ]]; then # If user hit the cancel button rm -f "$rd_conf" # Cleanup unfinished retrodeck.cfg if first install is interrupted exit 2 fi @@ -414,7 +414,7 @@ finit() { if [[ "$finit_options_choices" =~ (rpcs3_firmware|Enable All) ]]; then # Additional information on the firmware install process, as the emulator needs to be manually closed configurator_generic_dialog "RPCS3 Firmware Install" "You have chosen to install the RPCS3 firmware during the RetroDECK first setup.\n\nThis process will take several minutes and requires network access.\n\nRPCS3 will be launched automatically at the end of the RetroDECK setup process.\nOnce the firmware is installed, please close the emulator to finish the process." fi - + 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, which can take up to one minute.\nRetroDECK will start once the process is completed.\n\nPress OK to continue." @@ -423,7 +423,7 @@ finit() { prepare_emulator "reset" "all" build_retrodeck_current_presets deploy_helper_files - + # Optional actions based on user choices if [[ "$finit_options_choices" =~ (rpcs3_firmware|Enable All) ]]; then if [[ $(check_network_connectivity) == "true" ]]; then @@ -433,7 +433,7 @@ finit() { if [[ "$finit_options_choices" =~ (rd_controller_profile|Enable All) ]]; then install_retrodeck_controller_profile fi - if [[ "$finit_options_choices" =~ (rd_prepacks|Enable All) ]]; then + if [[ "$finit_options_choices" =~ (rd_prepacks|Enable All) ]]; then install_retrodeck_starterpack fi @@ -449,7 +449,7 @@ finit() { install_retrodeck_starterpack() { # This function will install the roms, gamelists and metadata for the RetroDECK Starter Pack, a curated selection of games the creators of RetroDECK enjoy. # USAGE: install_retrodeck_starterpack - + ## DOOM section ## cp /app/retrodeck/extras/doom1.wad "$roms_folder/doom/doom1.wad" # No -f in case the user already has it mkdir -p "/var/config/emulationstation/.emulationstation/gamelists/doom" diff --git a/functions/global.sh b/functions/global.sh index 93dbb93c..9bfa04e8 100644 --- a/functions/global.sh +++ b/functions/global.sh @@ -126,9 +126,13 @@ if [[ ! -f "$rd_conf" ]]; then fi # Check if SD card path has changed from SteamOS update - if [[ ! -d $default_sd && "$(ls -A /run/media/deck/)" ]]; then - configurator_generic_dialog "RetroDECK Setup" "The SD card was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the SD card.\n\nIf you are not using an SD card, please click \"Cancel\"." - default_sd=$(directory_browse "SD Card Location") + if [[ ! -d "$default_sd" && "$(ls -A /run/media/deck/)" ]]; then + if [[ $(find media/deck/* -maxdepth 0 -type d -print | wc -l) -eq 1 ]]; then # If there is only one SD card found in the new Steam OS 3.5 location, assign it as the default + default_sd="$(find media/deck/* -maxdepth 0 -type d -print)" + else # If the default legacy path cannot be found, and there are multiple entries in the new Steam OS 3.5 SD card path, let the user pick which one to use + configurator_generic_dialog "RetroDECK Setup" "The SD card was not found in the expected location.\nThis may happen when SteamOS is updated.\n\nPlease browse to the current location of the SD card.\n\nIf you are not using an SD card, please click \"Cancel\"." + default_sd="$(directory_browse "SD Card Location")" + fi fi cp $rd_defaults $rd_conf # Load default settings file diff --git a/functions/patching.sh b/functions/patching.sh index 32380327..0ed8a7b2 100644 --- a/functions/patching.sh +++ b/functions/patching.sh @@ -17,7 +17,7 @@ set_setting_value() { sed -i '\^\['"$current_section_name"'\]^,\^\^'"$setting_name_to_change"'=^s^\^'"$setting_name_to_change"'=.*^'"$setting_name_to_change"'='"$setting_value_to_change"'^' "$1" fi if [[ "$4" == "retrodeck" && ("$current_section_name" == "" || "$current_section_name" == "paths" || "$current_section_name" == "options") ]]; then # If a RetroDECK setting is being changed, also write it to memory for immediate use - eval "$setting_name_to_change=$setting_value_to_change" + declare -g "$setting_name_to_change=$setting_value_to_change" fi ;; diff --git a/functions/post_update.sh b/functions/post_update.sh index 82496a43..e6366076 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -229,6 +229,11 @@ post_update() { set_setting_value "$ppssppcontrolsconf" "R" "1-51,10-192" "ppsspp" "ControlMapping" fi + if [[ $prev_version -le "073" ]]; then + # In version 0.7.3b, there was a bug that prevented the correct creations of the roms/system folders, so we force recreate them. + emulationstation --home /var/config/emulationstation --create-system-dirs + fi + # The following commands are run every time. if [[ -d "/var/data/dolphin-emu/Load/DynamicInputTextures" ]]; then # Refresh installed textures if they have been enabled diff --git a/functions/prepare_emulator.sh b/functions/prepare_emulator.sh index 359ff575..cdb3fd33 100644 --- a/functions/prepare_emulator.sh +++ b/functions/prepare_emulator.sh @@ -19,7 +19,7 @@ prepare_emulator() { local current_setting_name=$(get_setting_name "$config_line" "retrodeck") if [[ ! $current_setting_name =~ (rdhome|sdcard) ]]; then # Ignore these locations local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "paths") - eval "$current_setting_name=$rdhome/$(basename $current_setting_value)" + declare -g "$current_setting_name=$rdhome/$(basename $current_setting_value)" mkdir -p "$rdhome/$(basename $current_setting_value)" fi done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f') @@ -30,7 +30,7 @@ prepare_emulator() { if [[ ! $current_setting_name =~ (rdhome|sdcard) ]]; then # Ignore these locations local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "paths") if [[ -d "$rdhome/$(basename $current_setting_value)" ]]; then # If the folder exists at the new ~/retrodeck location - eval "$current_setting_name=$rdhome/$(basename $current_setting_value)" + declare -g "$current_setting_name=$rdhome/$(basename $current_setting_value)" fi fi done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f') @@ -45,9 +45,9 @@ prepare_emulator() { set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings" set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings" set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings" + dir_prep "$rdhome/gamelists" "/var/config/emulationstation/.emulationstation/gamelists" emulationstation --home /var/config/emulationstation --create-system-dirs update_splashscreens - dir_prep "$rdhome/gamelists" "/var/config/emulationstation/.emulationstation/gamelists" fi if [[ "$action" == "postmove" ]]; then set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings" diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml index f4823725..8301b8db 100644 --- a/net.retrodeck.retrodeck.appdata.xml +++ b/net.retrodeck.retrodeck.appdata.xml @@ -65,7 +65,7 @@ GPL-3.0 CC0-1.0 - + https://github.com/XargonWan/RetroDECK/releases/tag/0.8.0b

Changes:

@@ -92,12 +92,30 @@
- + + https://github.com/XargonWan/RetroDECK/releases/tag/0.7.5b + +

Bug fixes and other changes:

+
    +
  • Framework: Fixed the SD card path resolution for SteamOS 3.5
  • +
  • Configurator: Added the possibility to reset ES-DE configs via Configurator and CLI
  • +
  • RetroArch: added nightly cores, stable cores have priority over them
  • +
  • PS3: RPCS3 Shortcut (Standalone) is now the default emulator
  • +
  • RPCS3: tweaked confing to improve performance
  • +
  • Dolphin (SA): fixed GC buttons layout. Now R1 is Z and L2/R2 are L/R
  • +
  • CEMU: tweaked audio config to choose the correct output device when docked
  • +
+
+
+ https://github.com/XargonWan/RetroDECK/releases/tag/0.7.4b

Hotfix:

  • Fixed a bug where the system folders were not correctly generated
  • +
  • Fixed a bug where the RetroDECK Configurator desktop file was not opening the Configurator from Desktop Mode
  • +
  • Fixed a bug where the theme was not showing correctly
  • +
  • Added retrodeck and configurator commands to be called from the shell or bash inside flatpak

Known issues:

    diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 64ae7546..eac05b53 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -574,11 +574,22 @@ modules: # RetroArch - END # Not part of the offical RetroArch manifest + # retroarch-cores-nightly must be earlier than retroarch-cores as it will overwrite this cores with the stable ones + - name: retroarch-cores-nightly + buildsystem: simple + build-commands: + - mkdir -p /app/share/libretro/cores/ + - mv -f ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/ + sources: + - type: archive + url: https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch_cores.7z + sha256: RANIGHTLYCORESPLACEHOLDER + - name: retroarch-cores buildsystem: simple build-commands: - mkdir -p /app/share/libretro/cores/ - - mv ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/ + - mv -f ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/ sources: - type: archive url: https://buildbot.libretro.com/stable/1.16.0/linux/x86_64/RetroArch_cores.7z diff --git a/res/extra_splashes/RetroDECK-Xmas-splash.svg b/res/extra_splashes/RetroDECK-Xmas-splash.svg new file mode 100644 index 00000000..da779565 --- /dev/null +++ b/res/extra_splashes/RetroDECK-Xmas-splash.svg @@ -0,0 +1,1736 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/retrodeck.sh b/retrodeck.sh index 763229c5..daeb3cc8 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -20,6 +20,7 @@ Arguments: --compress-one Compresses target file to a compatible format --compress-all Compresses all supported games into compatible format. Available formats are \"chd\", \"zip\", \"rvz\" and \"all\". --reset-emulator Reset one or more emulator configs to the default values + --reset-emulationstation Reset EmulationStation DE to default settings --reset-retrodeck Starts the initial RetroDECK installer (backup your data first!) For flatpak run specific options please run: flatpak run -h @@ -73,6 +74,18 @@ https://retrodeck.net exit fi ;; + --reset-emulationstation*) + echo "You are about to reset EmulationStation DE to default settings. Your scraped media, downloaded themes and gamelists will remain untouched." + read -p "Enter 'y' to continue, 'n' to stop: " response + if [[ $response == [yY] ]]; then + prepare_emulator "reset" "emulationstation" "cli" + 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 b39d1877..2a28ee33 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -82,6 +82,7 @@ source /app/libexec/global.sh # - Reset XEMU # - Reset Yuzu # - Reset All Emulators +# - Reset EmulationStation DE # - Reset RetroDECK # - RetroDECK: About # - RetroDECK Version History @@ -984,6 +985,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 EmulationStation DE" "Reset the ES-DE frontend" \ "Reset RetroDECK" "Reset RetroDECK to default settings" ) case $choice in @@ -1055,6 +1057,20 @@ configurator_reset_dialog() { fi ;; +"Reset EmulationStation DE" ) + if [[ $(configurator_reset_confirmation_dialog "EmulationStation DE" "Are you sure you want to reset EmulationStation DE to default settings?\n\nYour scraped media, downloaded themes and gamelists will not be touched.\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 EmulationStation DE" \ + --text="You are resetting EmulationStation DE to its default settings.\n\nAfter the process is complete you will need to exit RetroDECK and run it again." + prepare_emulator "reset" "emulationstation" "configurator" + configurator_process_complete_dialog "resetting EmulationStation DE" + else + configurator_generic_dialog "RetroDeck Configurator - EmulationStation DE: Reset" "Reset process cancelled." + configurator_reset_dialog + fi +;; + "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 \