diff --git a/automation_tools/automation_task_list.cfg b/automation_tools/automation_task_list.cfg index cd5908d4..be0c0ca2 100644 --- a/automation_tools/automation_task_list.cfg +++ b/automation_tools/automation_task_list.cfg @@ -4,5 +4,8 @@ hash^DOOMSHAPLACEHOLDER^https://buildbot.libretro.com/assets/cores/DOOM/Doom%20% hash^VITASHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip hash^DUCKSTATIONSHAPLACEHOLDER^https://github.com/stenzek/duckstation/releases/download/preview/DuckStation-x64.AppImage hash^SAMEDUCKSHAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/latest/sameduck_libretro.so.zip +hash^PPSSPPBIOSHASHPLACEHOLDER^https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip +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 latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main outside_info^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid diff --git a/functions/prepare_emulator.sh b/functions/prepare_emulator.sh index 5eb651d2..9fc314c9 100644 --- a/functions/prepare_emulator.sh +++ b/functions/prepare_emulator.sh @@ -59,66 +59,52 @@ prepare_emulator() { if [[ "$emulator" =~ ^(retroarch|RetroArch|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands - if [[ $(check_network_connectivity) == "true" ]]; then - if [[ $multi_user_mode == "true" ]]; then - rm -rf "$multi_user_data_folder/$SteamAppUser/config/retroarch" - mkdir -p "$multi_user_data_folder/$SteamAppUser/config/retroarch" - cp -fv $emuconfigs/retroarch/retroarch.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/" - cp -fv $emuconfigs/retroarch/retroarch-core-options.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/" - else - rm -rf /var/config/retroarch - mkdir -p /var/config/retroarch - dir_prep "$bios_folder" "/var/config/retroarch/system" - dir_prep "$logs_folder/retroarch" "/var/config/retroarch/logs" - mkdir -pv /var/config/retroarch/shaders/ - cp -rf /app/share/libretro/shaders /var/config/retroarch/ - dir_prep "$rdhome/shaders/retroarch" "/var/config/retroarch/shaders" - rsync -a --mkpath "/app/share/libretro/cores/" "/var/config/retroarch/cores/" - cp -fv $emuconfigs/retroarch/retroarch.cfg /var/config/retroarch/ - cp -fv $emuconfigs/retroarch/retroarch-core-options.cfg /var/config/retroarch/ - rsync -a --mkpath "$emuconfigs/retroarch/core-overrides/" "/var/config/retroarch/config/" - rsync -a --mkpath "$emuconfigs/defaults/retrodeck/presets/remaps/" "/var/config/retroarch/config/remaps/" - dir_prep "$borders_folder" "/var/config/retroarch/overlays/borders" - rsync -a --mkpath "/app/retrodeck/emu-configs/retroarch/borders/" "/var/config/retroarch/overlays/borders/" - set_setting_value "$raconf" "savefile_directory" "$saves_folder" "retroarch" - set_setting_value "$raconf" "savestate_directory" "$states_folder" "retroarch" - set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch" - set_setting_value "$raconf" "log_dir" "$logs_folder" "retroarch" - fi - - # PPSSPP - echo "--------------------------------" - echo "Initializing PPSSPP_LIBRETRO" - echo "--------------------------------" - if [ -d $bios_folder/PPSSPP/flash0/font ] - then - mv -fv $bios_folder/PPSSPP/flash0/font $bios_folder/PPSSPP/flash0/font.bak - fi - mkdir -p $bios_folder/PPSSPP - wget "https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip" -P $bios_folder/PPSSPP - unzip -q "$bios_folder/PPSSPP/master.zip" -d $bios_folder/PPSSPP/ - mv -f "$bios_folder/PPSSPP/ppsspp-master/assets/"* "$bios_folder/PPSSPP/" - rm -rfv "$bios_folder/PPSSPP/master.zip" - rm -rfv "$bios_folder/PPSSPP/ppsspp-master" - if [ -d $bios_folder/PPSSPP/flash0/font.bak ] - then - mv -f $bios_folder/PPSSPP/flash0/font.bak $bios_folder/PPSSPP/flash0/font - fi - - # MSX / SVI / ColecoVision / SG-1000 - echo "-----------------------------------------------------------" - echo "Initializing MSX / SVI / ColecoVision / SG-1000 LIBRETRO" - echo "-----------------------------------------------------------" - wget "http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip" -P $bios_folder/MSX - unzip -q "$bios_folder/MSX/blueMSXv282full.zip" -d $bios_folder/MSX - mv -f $bios_folder/MSX/Databases $bios_folder/Databases - mv -f $bios_folder/MSX/Machines $bios_folder/Machines - rm -rf $bios_folder/MSX + if [[ $multi_user_mode == "true" ]]; then + rm -rf "$multi_user_data_folder/$SteamAppUser/config/retroarch" + mkdir -p "$multi_user_data_folder/$SteamAppUser/config/retroarch" + cp -fv $emuconfigs/retroarch/retroarch.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/" + cp -fv $emuconfigs/retroarch/retroarch-core-options.cfg "$multi_user_data_folder/$SteamAppUser/config/retroarch/" else - if [[ "$call_source" == "cli" ]]; then - printf "You do not appear to be connected to a network with internet access.\n\nThe RetroArch reset process requires some files from the internet to function properly.\n\nPlease retry this process once a network connection is available.\n" - fi + rm -rf /var/config/retroarch + mkdir -p /var/config/retroarch + dir_prep "$bios_folder" "/var/config/retroarch/system" + dir_prep "$logs_folder/retroarch" "/var/config/retroarch/logs" + mkdir -pv /var/config/retroarch/shaders/ + cp -rf /app/share/libretro/shaders /var/config/retroarch/ + dir_prep "$rdhome/shaders/retroarch" "/var/config/retroarch/shaders" + rsync -a --mkpath "/app/share/libretro/cores/" "/var/config/retroarch/cores/" + cp -fv $emuconfigs/retroarch/retroarch.cfg /var/config/retroarch/ + cp -fv $emuconfigs/retroarch/retroarch-core-options.cfg /var/config/retroarch/ + rsync -a --mkpath "$emuconfigs/retroarch/core-overrides/" "/var/config/retroarch/config/" + rsync -a --mkpath "$emuconfigs/defaults/retrodeck/presets/remaps/" "/var/config/retroarch/config/remaps/" + dir_prep "$borders_folder" "/var/config/retroarch/overlays/borders" + rsync -a --mkpath "/app/retrodeck/emu-configs/retroarch/borders/" "/var/config/retroarch/overlays/borders/" + set_setting_value "$raconf" "savefile_directory" "$saves_folder" "retroarch" + set_setting_value "$raconf" "savestate_directory" "$states_folder" "retroarch" + set_setting_value "$raconf" "screenshot_directory" "$screenshots_folder" "retroarch" + set_setting_value "$raconf" "log_dir" "$logs_folder" "retroarch" fi + + # PPSSPP + echo "--------------------------------" + echo "Initializing PPSSPP_LIBRETRO" + echo "--------------------------------" + if [ -d $bios_folder/PPSSPP/flash0/font ] + then + mv -fv $bios_folder/PPSSPP/flash0/font $bios_folder/PPSSPP/flash0/font.bak + fi + cp -rf "/app/retrodeck/extras/PPSSPP" "$bios_folder/PPSSPP" + if [ -d $bios_folder/PPSSPP/flash0/font.bak ] + then + mv -f $bios_folder/PPSSPP/flash0/font.bak $bios_folder/PPSSPP/flash0/font + fi + + # MSX / SVI / ColecoVision / SG-1000 + echo "-----------------------------------------------------------" + echo "Initializing MSX / SVI / ColecoVision / SG-1000 LIBRETRO" + echo "-----------------------------------------------------------" + cp -rf "/app/retrodeck/extras/MSX/Databases" "$bios_folder/Databases" + cp -rf "/app/retrodeck/extras/MSX/Machines" "$bios_folder/Machines" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands dir_prep "$bios_folder" "/var/config/retroarch/system" @@ -147,8 +133,8 @@ prepare_emulator() { rm -rf /var/config/Cemu mkdir -pv /var/config/Cemu/ cp -fr "$emuconfigs/cemu/"* /var/config/Cemu/ - set_setting_value "$multi_user_data_folder/$SteamAppUser/config/Cemu/settings.ini" "mlc_path" "$bios_folder/cemu" "cemu" - set_setting_value "$multi_user_data_folder/$SteamAppUser/config/Cemu/settings.ini" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths" + set_setting_value "$cemuconf" "mlc_path" "$bios_folder/cemu" "cemu" + set_setting_value "$cemuconf" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths" fi # Shared actions dir_prep "$saves_folder/wiiu/cemu" "$bios_folder/cemu/usr/save" @@ -514,46 +500,38 @@ prepare_emulator() { if [[ "$emulator" =~ ^(xemu|XEMU|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands - if [[ $(check_network_connectivity) == "true" ]]; then - echo "------------------------" - echo "Initializing XEMU" - echo "------------------------" - if [[ $multi_user_mode == "true" ]]; then # Multi-user actions - rm -rf /var/config/xemu - rm -rf /var/data/xemu - rm -rf "$multi_user_data_folder/$SteamAppUser/config/xemu" - mkdir -pv "$multi_user_data_folder/$SteamAppUser/config/xemu/" - cp -fv $emuconfigs/xemu/xemu.toml "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" - set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "screenshot_dir" "'$screenshots_folder'" "xemu" "General" - set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files" - set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files" - set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "eeprom_path" "$saves_folder/xbox/xemu/xbox-eeprom.bin" "xemu" "sys.files" - set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "hdd_path" "'$bios_folder/xbox_hdd.qcow2'" "xemu" "sys.files" - dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/config/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look - dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/data/xemu" - else # Single-user actions - rm -rf /var/config/xemu - rm -rf /var/data/xemu - 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/xemu.toml "$xemuconf" - set_setting_value "$xemuconf" "screenshot_dir" "'$screenshots_folder'" "xemu" "General" - set_setting_value "$xemuconf" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files" - set_setting_value "$xemuconf" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files" - set_setting_value "$xemuconf" "eeprom_path" "$saves_folder/xbox/xemu/xbox-eeprom.bin" "xemu" "sys.files" - set_setting_value "$xemuconf" "hdd_path" "'$bios_folder/xbox_hdd.qcow2'" "xemu" "sys.files" - fi # Shared actions - mkdir -pv $saves_folder/xbox/xemu/ - # Preparing HD dummy Image if the image is not found - if [ ! -f $bios_folder/xbox_hdd.qcow2 ] - then - wget "https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip" -P $bios_folder/ - unzip -q $bios_folder/xbox_hdd.qcow2.zip -d $bios_folder/ - rm -rfv $bios_folder/xbox_hdd.qcow2.zip - fi - else - if [[ "$call_source" == "cli" ]]; then - printf "You do not appear to be connected to a network with internet access.\n\nThe Xemu reset process requires some files from the internet to function properly.\n\nPlease retry this process once a network connection is available.\n" - fi + echo "------------------------" + echo "Initializing XEMU" + echo "------------------------" + if [[ $multi_user_mode == "true" ]]; then # Multi-user actions + rm -rf /var/config/xemu + rm -rf /var/data/xemu + rm -rf "$multi_user_data_folder/$SteamAppUser/config/xemu" + mkdir -pv "$multi_user_data_folder/$SteamAppUser/config/xemu/" + cp -fv $emuconfigs/xemu/xemu.toml "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" + set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "screenshot_dir" "'$screenshots_folder'" "xemu" "General" + set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files" + set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files" + set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "eeprom_path" "$saves_folder/xbox/xemu/xbox-eeprom.bin" "xemu" "sys.files" + set_setting_value "$multi_user_data_folder/$SteamAppUser/config/xemu/xemu.toml" "hdd_path" "'$bios_folder/xbox_hdd.qcow2'" "xemu" "sys.files" + dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/config/xemu" # Creating config folder in /var/config for consistentcy and linking back to original location where emulator will look + dir_prep "$multi_user_data_folder/$SteamAppUser/config/xemu" "/var/data/xemu" + else # Single-user actions + rm -rf /var/config/xemu + rm -rf /var/data/xemu + 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/xemu.toml "$xemuconf" + set_setting_value "$xemuconf" "screenshot_dir" "'$screenshots_folder'" "xemu" "General" + set_setting_value "$xemuconf" "bootrom_path" "'$bios_folder/mcpx_1.0.bin'" "xemu" "sys.files" + set_setting_value "$xemuconf" "flashrom_path" "'$bios_folder/Complex.bin'" "xemu" "sys.files" + set_setting_value "$xemuconf" "eeprom_path" "$saves_folder/xbox/xemu/xbox-eeprom.bin" "xemu" "sys.files" + set_setting_value "$xemuconf" "hdd_path" "'$bios_folder/xbox_hdd.qcow2'" "xemu" "sys.files" + fi # Shared actions + mkdir -pv $saves_folder/xbox/xemu/ + # Preparing HD dummy Image if the image is not found + if [ ! -f $bios_folder/xbox_hdd.qcow2 ] + then + cp -f "/app/retrodeck/extras/XEMU/xbox_hdd.qcow2" "$bios_folder/xbox_hdd.qcow2" fi fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 1b5a4c34..1143e6e1 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -463,6 +463,27 @@ modules: url: https://buildbot.libretro.com/nightly/linux/x86_64/latest/sameduck_libretro.so.zip sha256: SAMEDUCKSHAPLACEHOLDER + - name: ppsspp-bios + buildsystem: simple + build-commands: + - mkdir -p ${FLATPAK_DEST}/retrodeck/extras/PPSSPP + - mv -f "ppsspp-master/assets/"* "${FLATPAK_DEST}/retrodeck/extras/PPSSPP/" + sources: + - type: archive + url: https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip + sha256: PPSSPPBIOSHASHPLACEHOLDER + + - name: msx-bios + buildsystem: simple + build-commands: + - mkdir -p ${FLATPAK_DEST}/retrodeck/extras/MSX + - mv -f Databases ${FLATPAK_DEST}/retrodeck/extras/MSX/Databases + - mv -f Machines ${FLATPAK_DEST}/retrodeck/extras/MSX/Machines + sources: + - type: archive + url: http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip + sha256: MSXBIOSHASHPLACEHOLDER + - name: doom-shareware buildsystem: simple build-commands: @@ -790,6 +811,16 @@ modules: timestamp-query: .published_at version-query: .tag_name + - name: xemu-dummy-hdd + buildsystem: simple + build-commands: + - mkdir -p ${FLATPAK_DEST}/retrodeck/extras/XEMU + - mv -f "xbox_hdd.qcow2" "${FLATPAK_DEST}/retrodeck/extras/XEMU/xbox_hdd.qcow2" + sources: + - type: archive + url: https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip + sha256: XEMUHDDHASHPLACEHOLDER + # XEMU - END # MELONDS - START diff --git a/retrodeck.sh b/retrodeck.sh index 47faaeda..e6297aed 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -140,12 +140,7 @@ if [ -f "$lockfile" ]; then # if the lock file doesn't exist at all means that it's a fresh install or a triggered reset else echo "Lockfile not found" - if [[ $(check_network_connectivity) == "true" ]]; then - finit # Executing First/Force init - else - configurator_generic_dialog "RetroDECK Setup" "You do not appear to be connected to a network with internet access.\n\nThe initial RetroDECK setup requires some files from the internet to function properly.\n\nPlease retry this process once a network connection is available." - exit 1 - fi + finit # Executing First/Force init fi if [[ $multi_user_mode == "true" ]]; then diff --git a/tools/configurator.sh b/tools/configurator.sh index 5c77d71c..45333176 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -943,13 +943,8 @@ configurator_reset_dialog() { "RetroArch" | "XEMU" ) # Emulators that require network access if [[ $(configurator_reset_confirmation_dialog "$emulator_to_reset" "Are you sure you want to reset the $emulator_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then - if [[ $(check_network_connectivity) == "true" ]]; then - prepare_emulator "reset" "$emulator_to_reset" "configurator" - configurator_process_complete_dialog "resetting $emulator_to_reset" - else - configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "You do not appear to be connected to a network with internet access.\n\nThe $emulator_to_reset reset process requires some files from the internet to function properly.\n\nPlease retry this process once a network connection is available." - configurator_reset_dialog - fi + prepare_emulator "reset" "$emulator_to_reset" "configurator" + configurator_process_complete_dialog "resetting $emulator_to_reset" else configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." configurator_reset_dialog @@ -975,19 +970,14 @@ configurator_reset_dialog() { "Reset 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 - if [[ $(check_network_connectivity) == "true" ]]; then - ( - prepare_emulator "reset" "all" - ) | - zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \ - --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ - --title "RetroDECK Finishing Initialization" \ - --text="RetroDECK is finishing the reset process, please wait." - configurator_process_complete_dialog "resetting all emulators" - else - configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "You do not appear to be connected to a network with internet access.\n\nThe all-emulator reset process requires some files from the internet to function properly.\n\nPlease retry this process once a network connection is available." - configurator_reset_dialog - fi + ( + prepare_emulator "reset" "all" + ) | + zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK Finishing Initialization" \ + --text="RetroDECK is finishing the reset process, please wait." + configurator_process_complete_dialog "resetting all emulators" else configurator_generic_dialog "RetroDeck Configurator - RetroDECK: Reset" "Reset process cancelled." configurator_reset_dialog