diff --git a/.github/workflows/cooker-selfhosted-persistent.yml b/.github/workflows/cooker-selfhosted-persistent.yml index 9cd619d7..711deb76 100644 --- a/.github/workflows/cooker-selfhosted-persistent.yml +++ b/.github/workflows/cooker-selfhosted-persistent.yml @@ -145,7 +145,7 @@ jobs: ## Commits since last release ${{ steps.commits.outputs.commits }} - For the full release note for this build please refer to the channel [#BETA-TESTING](https://discord.gg/qQcrFvaA2C) on our Discord server. + For the full release note for this build please refer to the channel [#BETA-TESTING](https://discord.gg/WDc5C9YWMx) on our Discord server. 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. @@ -164,3 +164,47 @@ jobs: name: retrodeck-flatpak path: RetroDECK-cooker.flatpak continue-on-error: true + + # - name: Upload RetroDECK-cooker.flatpak to Gitea Release + # run: | + # # Set variables for Gitea host, organization, repository, access token, and release details + # GITEA_HOST="repo.retrodeck.net" + # ORGANIZATION="RetroDECK" + # REPO="RetroDECK-cooker" + # GITEA_TOKEN="${{ secrets.GITEA_TRIGGER_BUILD_TOKEN }}" + # RELEASE_NAME="RetroDECK ${{env.TAG}}" + # TAG="${{env.TAG}}" + # RELEASE_BODY="# Release Notes (Cooker) + # This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. + # On branch [${{env.BRANCH_NAME}}](https://repo.retrodeck.net/RetroDECK/RetroDECK/src/branch/${{env.BRANCH_NAME}}). + + # ## Commits since last release + # ${{ steps.commits.outputs.commits }} + + # For the full release note for this build please refer to the channel [#BETA-TESTING](https://discord.gg/WDc5C9YWMx) on our Discord server. + + # 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." + + # # Create a release using curl and capture the release ID + # release_response=$(curl -X POST \ + # -H "Authorization: token ${GITEA_TOKEN}" \ + # -H "Content-Type: application/json" \ + # -d "{\"tag_name\":\"$TAG\",\"name\":\"$RELEASE_NAME\",\"body\":\"$RELEASE_BODY\"}" \ + # "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases") + + # # Extract the release ID from the response + # release_id=$(echo $release_response | jq -r '.id') + + # # Upload artifacts + # curl -X POST \ + # -H "Authorization: token ${GITEA_TOKEN}" \ + # -H "Content-Type: multipart/form-data" \ + # -F "attachment=@RetroDECK-cooker.flatpak" \ + # "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak" + + # curl -X POST \ + # -H "Authorization: token ${GITEA_TOKEN}" \ + # -H "Content-Type: multipart/form-data" \ + # -F "attachment=@RetroDECK-Artifact.tar.gz" \ + # "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-Artifact.tar.gz" diff --git a/.github/workflows/removed/remove-artifacts.yml b/.github/workflows/remove-artifacts.yml similarity index 100% rename from .github/workflows/removed/remove-artifacts.yml rename to .github/workflows/remove-artifacts.yml diff --git a/README.md b/README.md index 6a4f59d3..d260662c 100644 --- a/README.md +++ b/README.md @@ -46,15 +46,15 @@ For more information read up here: RetroDECK is a [EmulationStation Desktop Edition](https://es-de.org) (ES-DE) powered Linux [Flatpak application](https://flathub.org/apps/net.retrodeck.retrodeck) that thanks to its `RetroDECK Framework` it builds-in and manage a variety of emulators and other software that allows you to play your favorite retro (and even not-so-retro) games in one complete package. ### So what does that mean? -It means that RetroDECK provides all the emulators, systems and a frontend. RetroDECK configures them for you and put them into one application you can download from Flathub. +It means that RetroDECK provides all the emulators, systems and a frontend. RetroDECK configures them for you and puts them into one application you can download from Flathub. By being one application RetroDECK can put all important files in one location for all the emulators, instead of having them spread out over your entire system and even add features on top to orchestrate them seamlessly. ### The RetroDECK Framework -As previously mentioned, RetroDECK also adds the `RetroDECK Framework` on top of the emulators and ES-DE interface that allows deeper integrations between emulators and easier exposure to a variety of features that you otherwise need to set per emulator basis to create a uniformity between them. +As previously mentioned, RetroDECK also adds the `RetroDECK Framework` on top of the emulators and ES-DE interface which allows deeper integrations between emulators and easier exposure to a variety of features that you otherwise need to set on a per emulator basis to create a uniformity between them. -The `RetroDECK Configurator` is a `Utility` that some parts of exposes the `RetroDECK Framework` to the RetroDECK users. +The `RetroDECK Configurator` is a `Utility` that exposes some parts of the `RetroDECK Framework` to the RetroDECK users. **What can the RetroDECK Framework and by extent the RetroDECK Configurator do?** @@ -67,7 +67,7 @@ It can help with: - Auto installing some free BIOSes - Install prebuilt Steam Input profiles for devices like the Steam Deck and external controllers - Easier management of `mods`, `roms`, `texture_packs`, `scraped media`, `screenshots`, `saves / states` `gamelists` and more -- Give access to global presets that can be acitivated to configure things over many emulators in one go like: `RetroAchievements` +- Give access to global presets that can be activated to configure things over many emulators in one go like: `RetroAchievements` `Borders` `Widescreen Mode` `Swaping A/B X/Y for Nintendo Games` For our long term vision you can check out the following wiki page: @@ -110,7 +110,7 @@ Read up here on how to help out, there is something for everyone: Please check out the [Wiki](https://github.com/XargonWan/RetroDECK/wiki) for even more information. ## The FAQ -The RetroDECK [FAQ](https://github.com/XargonWan/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions) on the wiki has a vast variety of questions and awnsers. +The RetroDECK [FAQ](https://github.com/XargonWan/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions) on the wiki has a vast variety of questions and answers. # How to get support? Use the supports channels on [Discord](https://discord.gg/WDc5C9YWMx). diff --git a/automation_tools/install_dependencies.sh b/automation_tools/install_dependencies.sh index 91503927..3daa4edb 100755 --- a/automation_tools/install_dependencies.sh +++ b/automation_tools/install_dependencies.sh @@ -1,6 +1,31 @@ #!/bin/bash -# This scritp is installing the required dependencies to correctly run the pipeline and buold the flatpak +# This script is installing the required dependencies to correctly run the pipeline and build the flatpak + +unset pkg_mgr + +# rpm-ostree must be checked before dnf because a dnf (wrapper) command also works on rpm-ostree distros (not what we want) +for potential_pkg_mgr in apt pacman rpm-ostree dnf; do + command -v "$potential_pkg_mgr" &> /dev/null && pkg_mgr="$potential_pkg_mgr" && break +done + +case "$pkg_mgr" in + apt) + sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2 curl jq + ;; + pacman) + sudo pacman -S --noconfirm flatpak flatpak-builder p7zip xmlstarlet bzip2 + ;; + rpm-ostree) + echo "When using a distro with rpm-ostree, you shouldn't build directly on the host. Try using a distrobox." + exit 1 + ;; + dnf) + sudo dnf install -y flatpak flatpak-builder p7zip p7zip-plugins xmlstarlet bzip2 curl + ;; + *) + echo "Package manager $pkg_mgr not supported. Please open an issue." + ;; +esac -sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2 curl jq flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo -flatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo \ No newline at end of file +flatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo diff --git a/developer_toolbox/build_retrodeck_locally.sh b/developer_toolbox/build_retrodeck_locally.sh index 9682e3bd..85b9e90e 100755 --- a/developer_toolbox/build_retrodeck_locally.sh +++ b/developer_toolbox/build_retrodeck_locally.sh @@ -2,9 +2,6 @@ # WARNING: run this script from the project root folder, not from here!! -# TODO: FEDORA -# sudo dnf install -y flatpak flatpak-builder p7zip p7zip-plugins xmlstarlet bzip2 curl - git submodule update --init --recursive export GITHUB_WORKSPACE="." diff --git a/emu-configs/defaults/retrodeck/helper_files/Install-firmware-through-Ryujinx.txt b/emu-configs/defaults/retrodeck/helper_files/Install-firmware-through-Ryujinx.txt new file mode 100644 index 00000000..7d196eee --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/Install-firmware-through-Ryujinx.txt @@ -0,0 +1,10 @@ +Do not drop the firmware files here, install them via Ryujinx: + +RetroDECK Configurator -> Open Emulator -> Ryujinx -> Tools -> Install Firmware - Select the firmware zipped file + +Check the wiki for more information. + +Related wiki article can be found here: +https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/ryujinx/ryujinx-guide/ + +The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-Duckstation-textures.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-Duckstation-textures.txt index 4deee10f..75153575 100644 --- a/emu-configs/defaults/retrodeck/helper_files/how-to-install-Duckstation-textures.txt +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-Duckstation-textures.txt @@ -23,6 +23,6 @@ Texture folder directly - Move textures into the right ~/retrodeck/texture_packs/duckstation/ folder. Related wiki article can be found here: -https://github.com/XargonWan/RetroDECK/wiki/Duckstation%3A-Texture-Packs +https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/duckstation/duckstation-texture-pack/ The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mesen-textures.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mesen-textures.txt index 33e9d9c8..961ff4a7 100644 --- a/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mesen-textures.txt +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mesen-textures.txt @@ -27,6 +27,6 @@ You want apply a texture pack to a game called ScaryCastle USA.nes and you have NOTE: On the Steam Deck go into GameMode first, then launch RetroDECK. Related wiki article can be found here: -https://github.com/XargonWan/RetroDECK/wiki/RetroArch-Mesen%3A-Texture-Packs +https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/retroarch/retroarch-mesen-texture-pack/ The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mupen64Plus-textures.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mupen64Plus-textures.txt index 6cfe0670..825751aa 100644 --- a/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mupen64Plus-textures.txt +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mupen64Plus-textures.txt @@ -25,6 +25,6 @@ For compressed textures stored in .hts files, place them in the 'texture_packs/R For uncompressed textures stored in loose folders or files, place them in the 'texture_packs/RetroArch-Mupen64Plus/hires_texture/' folder. Related wiki article can be found here: -https://github.com/XargonWan/RetroDECK/wiki/RetroArch-Mupen64Plus-Next%3A-Texture-Packs +https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/retroarch/retroarch-mupen64plus-texture-pack/ The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-PCSX2-textures.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-PCSX2-textures.txt index 807513b7..ed75e899 100644 --- a/emu-configs/defaults/retrodeck/helper_files/how-to-install-PCSX2-textures.txt +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-PCSX2-textures.txt @@ -21,6 +21,6 @@ For direct texture folder: 3. Move textures into the correct '~/retrodeck/texture_packs/PCSX2/' folder. Related wiki article can be found here: -https://github.com/XargonWan/RetroDECK/wiki/PCSX2%3A-Texture-Packs +https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/pcsx2/pcsx2-texture-pack/ The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-PPSSPP-textures.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-PPSSPP-textures.txt index 6fabb0e4..44a6da45 100644 --- a/emu-configs/defaults/retrodeck/helper_files/how-to-install-PPSSPP-textures.txt +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-PPSSPP-textures.txt @@ -21,6 +21,6 @@ For adding textures: 3. Paste the textures into the correct '~/retrodeck/texture_packs/ppsspp/' folder. Related wiki article can be found here: -https://github.com/XargonWan/RetroDECK/wiki/PPSSPP%3A-Texture-Packs +https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/ppsspp/ppsspp-texture-pack/ The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-dolphin-mods.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-dolphin-mods.txt index 33a50c8c..a9b96bc5 100644 --- a/emu-configs/defaults/retrodeck/helper_files/how-to-install-dolphin-mods.txt +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-dolphin-mods.txt @@ -14,6 +14,6 @@ Notes: - GAME_ID is different for every game. Related wiki article can be found here: -https://github.com/XargonWan/RetroDECK/wiki/Dolphin-and-Primehack%3A-Mods +https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/dolphin-primehack/dolphin-primehack-mod/ The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-primehack-mods.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-primehack-mods.txt index 1bcbbc05..8d3650e9 100644 --- a/emu-configs/defaults/retrodeck/helper_files/how-to-install-primehack-mods.txt +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-primehack-mods.txt @@ -14,6 +14,6 @@ Notes: - GAME_ID is different for every game. Related wiki article can be found here: -https://github.com/XargonWan/RetroDECK/wiki/Dolphin-and-Primehack%3A-Mods +https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/dolphin-primehack/dolphin-primehack-mod/ The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt index febbde78..e51a66b5 100644 --- a/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-psvita-games.txt @@ -17,6 +17,6 @@ For example the game `WipEout 2048 (EU)` has an ID that is `PCSF00007`. So simply add `PCSF00007` to the `WipEout 2048 (EU).psvita` file and the setup for this game is complete. Related wiki article can be found here: --- +https://retrodeck.readthedocs.io/en/latest/wiki_emulator_guides/vita3k/vita3k-guide/ The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg b/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg index ffb832cd..10630974 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg @@ -17,3 +17,4 @@ how-to-install-Duckstation-textures.txt^$texture_packs_folder/Duckstation # emulators how-to-install-psvita-games.txt^$roms_folder/psvita +Install-firmware-through-Ryujinx.txt^$bios_folder/switch/firmware diff --git a/emu-configs/retroarch/retroarch-core-options.cfg b/emu-configs/retroarch/retroarch-core-options.cfg index 06420de7..ff6e7262 100644 --- a/emu-configs/retroarch/retroarch-core-options.cfg +++ b/emu-configs/retroarch/retroarch-core-options.cfg @@ -59,17 +59,19 @@ cap32_scr_intensity = "8" cap32_scr_tube = "color" cap32_statusbar = "onloading" citra_analog_function = "C-Stick and Touchscreen Pointer" +citra_cpu_scale = "100% (Default)" citra_custom_textures = "disabled" citra_deadzone = "15" citra_dump_textures = "disabled" -citra_is_new_3ds = "Old 3DS" +citra_is_new_3ds = "New 3DS" citra_language = "English" citra_layout_option = "Default Top-Bottom Screen" citra_mouse_touchscreen = "enabled" citra_region_value = "Auto" citra_render_touchscreen = "disabled" -citra_resolution_factor = "4x" +citra_resolution_factor = "2x" citra_swap_screen = "Top" +citra_swap_screen_mode = "Toggle" citra_texture_filter = "none" citra_touch_touchscreen = "enabled" citra_use_acc_geo_shaders = "enabled" diff --git a/emu-configs/retroarch/retroarch.cfg b/emu-configs/retroarch/retroarch.cfg index 156d2499..dc533f2e 100644 --- a/emu-configs/retroarch/retroarch.cfg +++ b/emu-configs/retroarch/retroarch.cfg @@ -3,10 +3,14 @@ accessibility_narrator_speech_speed = "5" ai_service_enable = "false" ai_service_mode = "1" ai_service_pause = "false" +ai_service_poll_delay = "0" ai_service_source_lang = "0" ai_service_target_lang = "0" +ai_service_text_padding = "5" +ai_service_text_position = "0" ai_service_url = "http://localhost:4404/" all_users_control_menu = "true" +app_icon = "default" apply_cheats_after_load = "false" apply_cheats_after_toggle = "false" aspect_ratio_index = "22" @@ -23,6 +27,7 @@ audio_enable_menu_notice = "false" audio_enable_menu_ok = "false" audio_enable_menu_scroll = "false" audio_fastforward_mute = "false" +audio_fastforward_speedup = "false" audio_filter_dir = "/app/lib/retroarch/filters/audio" audio_latency = "64" audio_max_timing_skew = "0.050000" @@ -43,8 +48,8 @@ auto_shaders_enable = "true" autosave_interval = "10" block_sram_overwrite = "false" bluetooth_driver = "null" -builtin_imageviewer_enable = "true" -builtin_mediaplayer_enable = "true" +builtin_imageviewer_enable = "false" +builtin_mediaplayer_enable = "false" bundle_assets_dst_path = "" bundle_assets_dst_path_subdir = "" bundle_assets_extract_enable = "false" @@ -77,9 +82,17 @@ cheevos_unlock_sound_enable = "true" cheevos_username = "" cheevos_verbose_enable = "true" cheevos_visibility_account = "true" +cheevos_visibility_lboard_cancel = "true" +cheevos_visibility_lboard_start = "true" +cheevos_visibility_lboard_submit = "true" +cheevos_visibility_lboard_trackers = "true" cheevos_visibility_mastery = "true" +cheevos_visibility_progress_tracker = "true" cheevos_visibility_summary = "1" cheevos_visibility_unlock = "true" +cloud_sync_destructive = "false" +cloud_sync_driver = "" +cloud_sync_enable = "false" config_save_on_exit = "true" content_database_path = "/app/share/libretro/database/rdb" content_favorites_directory = "default" @@ -159,10 +172,12 @@ gamemode_enable = "false" gamma_correction = "0" global_core_options = "true" history_list_enable = "true" +initial_disk_change_enable = "true" input_ai_service = "i" input_ai_service_axis = "nul" input_ai_service_btn = "nul" input_ai_service_mbtn = "nul" +input_allow_turbo_dpad = "false" input_analog_deadzone = "0.000000" input_analog_sensitivity = "1.000000" input_audio_mute = "nul" @@ -264,6 +279,7 @@ input_hold_slowmotion_axis = "nul" input_hold_slowmotion_btn = "nul" input_hold_slowmotion_mbtn = "nul" input_hotkey_block_delay = "5" +input_hotkey_device_merge = "false" input_joypad_driver = "sdl2" input_keyboard_layout = "" input_load_state = "a" @@ -301,6 +317,9 @@ input_netplay_player_chat_axis = "nul" input_netplay_player_chat_btn = "nul" input_netplay_player_chat_mbtn = "nul" input_nowinkey_enable = "false" +input_osk_overlay = "" +input_osk_overlay_auto_scale = "false" +input_osk_overlay_opacity = "0.700000" input_osk_toggle = "f12" input_osk_toggle_axis = "nul" input_osk_toggle_btn = "nul" @@ -317,11 +336,25 @@ input_overlay_enable = "true" input_overlay_enable_autopreferred = "true" input_overlay_hide_in_menu = "false" input_overlay_hide_when_gamepad_connected = "false" +input_overlay_lightgun_allow_offscreen = "true" +input_overlay_lightgun_four_touch_input = "0" +input_overlay_lightgun_port = "-1" +input_overlay_lightgun_three_touch_input = "0" +input_overlay_lightgun_trigger_delay = "1" +input_overlay_lightgun_trigger_on_touch = "true" +input_overlay_lightgun_two_touch_input = "0" +input_overlay_mouse_dtap_msec = "200" +input_overlay_mouse_dtap_to_drag = "false" +input_overlay_mouse_hold_msec = "200" +input_overlay_mouse_hold_to_drag = "true" +input_overlay_mouse_speed = "1.000000" +input_overlay_mouse_swipe_threshold = "1.000000" input_overlay_next = "nul" input_overlay_next_axis = "nul" input_overlay_next_btn = "nul" input_overlay_next_mbtn = "nul" input_overlay_opacity = "0.700000" +input_overlay_pointer_enable = "false" input_overlay_scale_landscape = "1.000000" input_overlay_scale_portrait = "1.000000" input_overlay_show_inputs = "2" @@ -2912,6 +2945,14 @@ menu_xmb_thumbnail_scale_factor = "100" menu_xmb_title_margin = "5" menu_xmb_title_margin_horizontal_offset = "0" menu_xmb_vertical_fade_factor = "100" +microphone_block_frames = "0" +microphone_device = "" +microphone_driver = "alsathread" +microphone_enable = "true" +microphone_latency = "64" +microphone_rate = "48000" +microphone_resampler = "sinc" +microphone_resampler_quality = "3" midi_driver = "alsa" midi_input = "OFF" midi_output = "OFF" @@ -2985,16 +3026,19 @@ network_remote_enable_user_p9 = "false" notification_show_autoconfig = "true" notification_show_cheats_applied = "true" notification_show_config_override_load = "true" +notification_show_disk_control = "true" notification_show_fast_forward = "true" notification_show_netplay_extra = "false" notification_show_patch_applied = "true" notification_show_refresh_rate = "true" notification_show_remap_load = "true" +notification_show_save_state = "true" notification_show_screenshot = "true" notification_show_screenshot_duration = "0" notification_show_screenshot_flash = "0" notification_show_set_initial_disk = "true" notification_show_when_menu_is_alive = "false" +osk_overlay_directory = "/var/config/retroarch/overlays/keyboards" overlay_directory = "/var/config/retroarch/overlays/borders" ozone_collapse_sidebar = "false" ozone_menu_color_theme = "1" @@ -3018,6 +3062,7 @@ playlist_show_sublabels = "true" playlist_sort_alphabetical = "true" playlist_sublabel_last_played_style = "0" playlist_sublabel_runtime_type = "0" +playlist_use_filename = "false" playlist_use_old_format = "false" preemptive_frames_enable = "false" preemptive_frames_hide_warnings = "false" @@ -3097,6 +3142,7 @@ savestate_file_compression = "true" savestate_max_keep = "0" savestate_thumbnail_enable = "false" savestates_in_content_dir = "false" +scan_serial_and_crc = "false" scan_without_core_match = "false" screen_brightness = "100" screen_orientation = "0" @@ -3141,6 +3187,7 @@ suspend_screensaver_enable = "true" sustained_performance_mode = "false" system_directory = "/var/config/retroarch/system" systemfiles_in_content_dir = "false" +test_input_file_joypad = "" threaded_data_runloop_enable = "true" thumbnails_directory = "/var/config/retroarch/thumbnails" twitch_stream_key = "" @@ -3155,7 +3202,9 @@ video_adaptive_vsync = "false" video_allow_rotate = "true" video_aspect_ratio = "1.333300" video_aspect_ratio_auto = "false" +video_autoswitch_pal_threshold = "54.500000" video_autoswitch_refresh_rate = "0" +video_bfi_dark_frames = "1" video_black_frame_insertion = "0" video_context_driver = "" video_crop_overscan = "true" @@ -3171,6 +3220,7 @@ video_force_aspect = "true" video_force_srgb_disable = "false" video_frame_delay = "0" video_frame_delay_auto = "false" +video_frame_rest = "false" video_fullscreen = "true" video_fullscreen_x = "0" video_fullscreen_y = "0" @@ -3209,11 +3259,13 @@ video_rotation = "0" video_scale = "3" video_scale_integer = "false" video_scale_integer_overscale = "false" +video_scan_subframes = "false" video_shader_delay = "0" video_shader_dir = "/var/config/retroarch/shaders" video_shader_enable = "true" video_shader_preset_save_reference_enable = "true" video_shader_remember_last_dir = "false" +video_shader_subframes = "1" video_shader_watch_files = "false" video_shared_context = "false" video_smooth = "false" @@ -3239,6 +3291,9 @@ video_windowed_position_x = "0" video_windowed_position_y = "0" vrr_runloop_enable = "false" vulkan_gpu_index = "0" +webdav_password = "" +webdav_url = "" +webdav_username = "" wifi_driver = "null" wifi_enabled = "true" xmb_alpha_factor = "75" diff --git a/functions/cloud_sync.sh b/functions/cloud_sync.sh new file mode 100644 index 00000000..05a7907c --- /dev/null +++ b/functions/cloud_sync.sh @@ -0,0 +1,2 @@ +#!/bin/bash + diff --git a/functions/dialogs.sh b/functions/dialogs.sh index c0789042..4e611251 100644 --- a/functions/dialogs.sh +++ b/functions/dialogs.sh @@ -175,8 +175,7 @@ changelog_dialog() { else local version_changelog=$(xml sel -t -m "//release[@version='$1']/description" -v . -n $rd_appdata | tr -s '\n' | sed 's/^\s*//') - echo -e "In RetroDECK version $1, the following changes were made:\n$version_changelog" > "/var/config/retrodeck/changelog-partial.txt" - "$version_changelog" >> "/var/config/retrodeck/changelog-partial.txt" + echo -e "In RetroDECK version $1, the following changes were made:\n$version_changelog" > "/var/config/retrodeck/changelog-partial.txt" 2>/dev/null zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ diff --git a/functions/global.sh b/functions/global.sh index 9975616b..704d7f9f 100644 --- a/functions/global.sh +++ b/functions/global.sh @@ -167,7 +167,7 @@ if [[ ! -f "$rd_conf" ]]; then set_setting_value $rd_conf "version" "$version" retrodeck # Set current version for new installs set_setting_value $rd_conf "sdcard" "$default_sd" retrodeck "paths" # Set SD card location if default path has changed - if grep -qF "cooker" <<< $hard_version; then # If newly-installed version is a "cooker" build + if grep -qF "cooker" <<< "$hard_version" || grep -qF "PR-" <<< "$hard_version"; then # If newly-installed version is a "cooker" or PR build set_setting_value $rd_conf "update_repo" "RetroDECK-cooker" retrodeck "options" set_setting_value $rd_conf "update_check" "true" retrodeck "options" set_setting_value $rd_conf "developer_options" "true" retrodeck "options" diff --git a/functions/post_update.sh b/functions/post_update.sh index b3030442..29abcee4 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -300,6 +300,14 @@ post_update() { fi + if [[ $(check_version_is_older_than "0.8.1b") == "true" ]]; then + log d "ES-DE files were moved inside the retrodeck folder, migrating to the new structure" + dir_prep "$rdhome/ES-DE/collections" "/var/config/ES-DE/collections" + dir_prep "$rdhome/ES-DE/gamelists" "/var/config/ES-DE/gamelists" + mv -f "$rdhome/gamelists/"* "$rdhome/ES-DE/gamelists" + rm -rf "$rdhome/gamelists" + fi + # if [[ $(check_version_is_older_than "0.9.0b") == "true" ]]; then # # Placeholder for version 0.9.0b # rm /var/config/emulationstation/.emulationstation # remving the old symlink to .emulationstation as it might be not needed anymore @@ -336,7 +344,7 @@ post_update() { 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 Upgrade" \ - --text="RetroDECK is finishing the upgrade process, please wait." + --text="RetroDECK is finishing the upgrade process, please wait.\n\n If it feels like this is taking too much time, please ensure there aren't any windows that unexpectedly slipped into the background and need attention." version=$hard_version conf_write diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index a47e5fd2..26b8c483 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -10,7 +10,7 @@ prepare_component() { # USAGE: prepare_component "$action" "$component" "$call_source(optional)" action="$1" - component="$2" + component=$(echo "$2" | tr '[:upper:]' '[:lower:]') call_source="$3" log d "Preparing component: \"$component\", action: \"$action\"" @@ -48,7 +48,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(es-de|ES-DE|all)$ ]]; then # For use after ESDE-related folders are moved or a reset + if [[ "$component" =~ ^(es-de|all)$ ]]; then # For use after ESDE-related folders are moved or a reset log i "--------------------------------" log i "Prepearing ES-DE" log i "--------------------------------" @@ -60,7 +60,8 @@ prepare_component() { set_setting_value "$es_settings" "ROMDirectory" "$roms_folder" "es_settings" set_setting_value "$es_settings" "MediaDirectory" "$media_folder" "es_settings" set_setting_value "$es_settings" "UserThemeDirectory" "$themes_folder" "es_settings" - dir_prep "$rdhome/gamelists" "/var/config/ES-DE/gamelists" + dir_prep "$rdhome/ES-DE/gamelists" "/var/config/ES-DE/gamelists" + dir_prep "$rdhome/ES-DE/collections" "/var/config/ES-DE/collections" dir_prep "$rd_logs_folder/ES-DE" "$es_source_logs" log d "Generating roms system folders" #es-de --home /var/config/ES-DE --create-system-dirs @@ -75,7 +76,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(retroarch|RetroArch|all)$ ]]; then + if [[ "$component" =~ ^(retroarch|all)$ ]]; then log i "--------------------------------" log i "Prepearing RetroArch" log i "--------------------------------" @@ -202,7 +203,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(citra|citra-emu|Citra|all)$ ]]; then + if [[ "$component" =~ ^(citra|citra-emu|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "------------------------" log i "Prepearing CITRA" @@ -247,7 +248,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(cemu|Cemu|all)$ ]]; then + if [[ "$component" =~ ^(cemu|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "----------------------" log i "Prepearing CEMU" @@ -274,7 +275,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(dolphin|dolphin-emu|Dolphin|all)$ ]]; then + if [[ "$component" =~ ^(dolphin|dolphin-emu|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "----------------------" log i "Prepearing DOLPHIN" @@ -327,7 +328,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(duckstation|Duckstation|all)$ ]]; then + if [[ "$component" =~ ^(duckstation|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "------------------------" log i "Prepearing DUCKSTATION" @@ -372,7 +373,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(melonds|melonDS|MelonDS|all)$ ]]; then + if [[ "$component" =~ ^(melonds|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "----------------------" log i "Prepearing MELONDS" @@ -410,7 +411,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(pcsx2|PCSX2|all)$ ]]; then + if [[ "$component" =~ ^(pcsx2|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "----------------------" log i "Prepearing PCSX2" @@ -464,7 +465,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(ppsspp|PPSSPP|all)$ ]]; then + if [[ "$component" =~ ^(ppsspp|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "------------------------" log i "Prepearing PPSSPPSDL" @@ -492,7 +493,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(primehack|Primehack|all)$ ]]; then + if [[ "$component" =~ ^(primehack|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "----------------------" log i "Prepearing Primehack" @@ -535,7 +536,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(rpcs3|RPCS3|all)$ ]]; then + if [[ "$component" =~ ^(rpcs3|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "------------------------" log i "Prepearing RPCS3" @@ -571,7 +572,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(ryujinx|Ryujinx|all)$ ]]; then + if [[ "$component" =~ ^(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 @@ -615,7 +616,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(yuzu|Yuzu|all)$ ]]; then + if [[ "$component" =~ ^(yuzu|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "----------------------" log i "Prepearing YUZU" @@ -668,7 +669,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(xemu|XEMU|all)$ ]]; then + if [[ "$component" =~ ^(xemu|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "------------------------" log i "Prepearing XEMU" @@ -712,7 +713,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(vita3k|Vita3K|all)$ ]]; then + if [[ "$component" =~ ^(vita3k|all)$ ]]; then if [[ "$action" == "reset" ]]; then # Run reset-only commands log i "----------------------" log i "Prepearing Vita3K" @@ -736,7 +737,7 @@ prepare_component() { fi fi - if [[ "$component" =~ ^(mame|MAME|all)$ ]]; then + if [[ "$component" =~ ^(mame|all)$ ]]; then # TODO: do a proper script # This is just a placeholder script to test the emulator's flow log i "----------------------" @@ -801,7 +802,7 @@ prepare_component() { fi - if [[ "$component" =~ ^(gzdoom|GZDOOM|all)$ ]]; then + if [[ "$component" =~ ^(gzdoom|all)$ ]]; then # TODO: do a proper script # This is just a placeholder script to test the emulator's flow log i "----------------------" @@ -821,7 +822,7 @@ prepare_component() { sed -i 's#RETRODECKSAVESDIR#'$saves_folder'#g' "/var/config/gzdoom/gzdoom.ini" # This is an unfortunate one-off because set_setting_value does not currently support JSON fi - if [[ "$component" =~ ^(boilr|BOILR|all)$ ]]; then + if [[ "$component" =~ ^(boilr|all)$ ]]; then log i "----------------------" log i "Prepearing BOILR" log i "----------------------" @@ -830,7 +831,7 @@ prepare_component() { 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 + if [[ ! "$component" =~ ^(retrodeck|es-de|retroarch|citra|citra-emu|cemu|dolphin|dolphin-emu|duckstation|melonds|melonDS|pcsx2|pico8|pico-8|ppsspp|primehack|rpcs3|ryujinx|yuzu|xemu|vita3k|mame|gzdoom|boilr|)$ ]]; then log e "Supplied component $component not found, not resetting" fi diff --git a/incconfigs/todo.readme b/incconfigs/todo.readme deleted file mode 100644 index f4e9974a..00000000 --- a/incconfigs/todo.readme +++ /dev/null @@ -1,34 +0,0 @@ -Vita3K - -Fix the bindings and make sure everything works - -MAME - -Double check all the inputs and hotkeys for Player 1 to 4 - -GZDoom - -Fix the config. -Feel if the bindings are right when everything is done and all works as excpected. - -Primehack - -See what bindings works best - -Dolphin - -Look into Rotational controls while holding two buttons + right joystick. - -RetroArch - -User complained about Touchscreen -Make sure the config is SDL - -ALL - -Test all inputs after everything is done - - -Question: - -Does the X/Y A/B switcher needs to be updated? diff --git a/incconfigs/whatis.readme b/incconfigs/whatis.readme deleted file mode 100644 index e69de29b..00000000 diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml index 40ce91dc..4a0d7163 100644 --- a/net.retrodeck.retrodeck.appdata.xml +++ b/net.retrodeck.retrodeck.appdata.xml @@ -60,9 +60,36 @@

Discord: https://discord.gg/WDc5C9YWMx (If you want to help out with the project join the "i-want-to-help" channel)

+ + #94a6fb + #404b98 + GPL-3.0 CC0-1.0 + + https://github.com/XargonWan/RetroDECK/releases/tag/0.8.1b + +

Changes:

+
    +
  • PREPARE_COMPONENT: now the choice is passed lowercased so the script don't have to check for the possible casings, this should fix the issue where GZDoom couldn't be reset as it was expecting both GZDOOM or gzdoom.
  • +
  • ES-DE: gamelists are now moved to retrodeck/ES-DE/gamelist (previously was retrodeck/gamelist)
  • +
  • ES-DE: custom collections are now located in retrodeck/ES-DE/collections, this prevents to be destroyed by a reset
  • +
  • LOGGER: version notes are no more outputed in the terminal or in the logs
  • +
  • WORKFLOWS: disabled nightly builds (was broken)
  • +
  • FRAMEWORK: now the PR builds are recognized same as cooker builds
  • +
  • FRAMEWORK: now there is a warning to check background windows, useful when installing RCPS3 firmware as some users were stuck on that screen without noticing the windows in the backgrounds
  • +
  • HELPER_FILES: updated links pointing to the new wiki
  • +
  • RYUJINX: added an helper file to specify how to install the firmware (not copying it in the folder)
  • +
  • CITRA_LIBRETRO: upscaled to 2x (was 4x but was too much), set system as "New 3DS"
  • +
  • RETROARCH: fixed an issue where if a zip contained more than the game files it failed to load the game
  • +
+

Known issues:

+
    +
  • Please check the know issues in the Wiki under General Infomration.
  • +
+
+
https://github.com/XargonWan/RetroDECK/releases/tag/0.8.0b @@ -70,7 +97,7 @@
  • All the emulators and engines are updated to their latest version
  • ES-DE: updated to 3.0.1
  • -
  • RPCS3 is now running via shortcut (.desktop file) by default - WARN THE USERS TO MIGRATE and how to change it back
  • +
  • RPCS3 is now running via shortcut (.desktop file) by default
  • CITRA-SA: removed, it will available trough Ponzu. The libretro core is now the default emulator
  • YUZU: removed, Ryujinx is now the default emulator, it will available trough Ponzu
  • PONZU: added, check the wiki if interested in this preservational function
  • @@ -112,8 +139,8 @@
  • Removed talk names in the manifest as they're not needed anymore as enabled by default
  • Fixed an issue that prevented RetroDECK to work properly on some distributions on Wayland
  • Added the needed subfolders in retrodeck/bios
  • -
  • DVELOPER TOOLS: fixed some issues that preventing RetroDECK to be built locally
  • -
  • DVELOPER TOOLS: added a script to inject changes in the current RetroDECK installation in order to test script and config changes without a full manifest rebuild
  • +
  • DEVELOPER TOOLS: fixed some issues that preventing RetroDECK to be built locally
  • +
  • DEVELOPER TOOLS: added a script to inject changes in the current RetroDECK installation in order to test script and config changes without a full manifest rebuild

Known issues:

    diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 3ae6508c..2b2cdf04 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -70,14 +70,14 @@ modules: # # UPDATE STEPS FOR MAIN: # [ ] Update the VERSION variable on line containing "VERSION=THISBRANCH" - # [ ] Update the appdata.xml with the version number and notes + # [x] Update the appdata.xml with the version number and notes # - name: version-initialization buildsystem: simple build-commands: - | - # on main please update this with the version variable, eg: VERSION='0.7.4b' + # on main please update this with the version variable, eg: VERSION=0.8.0b # on cooker will be THISBRANCH VERSION=THISBRANCH @@ -428,7 +428,7 @@ modules: sources: - type: git url: https://github.com/XargonWan/RetroDECK-ES-DE - branch: update/3.1 + branch: retrodeck-main - type: shell # ES-DE - END diff --git a/.github/workflows/removed/TEST_release_info.yml b/old/disabled-workflows/TEST_release_info.yml similarity index 100% rename from .github/workflows/removed/TEST_release_info.yml rename to old/disabled-workflows/TEST_release_info.yml diff --git a/old/disabled-workflows/cooker-selfhosted.yml b/old/disabled-workflows/cooker-selfhosted.yml new file mode 100644 index 00000000..2931fac4 --- /dev/null +++ b/old/disabled-workflows/cooker-selfhosted.yml @@ -0,0 +1,156 @@ +name: "Build cooker" + +on: + # push: + # branches: + # - cooker* + # - feat* + # paths: + # - '.github/workflows/**' + # - 'automation_tools/**' + # - 'emu-configs/**' + # - 'es-configs/**' + # - 'functions/**' + # - 'rd-submodules/**' + # - '*.sh' + # - 'net.retrodeck.retrodeck.yml' + # - 'net.retrodeck.retrodeck.appdata.xml' + # pull_request: + # branches: + # - cooker* + + # Italy (CET): 11:00 PM + # Japan (JST): 7:00 AM + schedule: + - cron: '0 22 * * *' + + workflow_dispatch: + + +jobs: + + Building_RetroDECK: + 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 + + - name: Clone RetroDECK repo + uses: actions/checkout@v3 + with: + submodules: 'true' + + - name: "Install dependencies" + run: "automation_tools/install_dependencies.sh" + + - name: Generate cooker build ID + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_build_id.sh" + + # backing up manifest in case download fails and hashes must be recalculated + - name: Manifest backup + run: "cp ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml ${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" + + - name: Run pre-build automation tasks + run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" + + - name: "Adding flatpak portal for automated updates (cooker only)" + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_flatpak_portal_add.sh" + + - name: "Updating release notes in appdata" + run: "automation_tools/appdata_management.sh" + + - name: "[DEBUG] Outputting manifest" + run: cat net.retrodeck.retrodeck.yml + + - name: "Build flatpak: download only" + id: "flatpak-download" + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" + continue-on-error: true + + # Sometimes flatpak download fails, in this case it tries a second time + - name: "Build flatpak: download only (retry)" + if: steps.flatpak-download.outcome == 'failure' + run: | + echo "Download failed, maybe some hash changed since the build start." + echo "Recalculating hashes and retrying download..." + rm -f "{GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + cp "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml.bak" "${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml" + "${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" + "${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" + + - name: Build flatpak + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh" + + - name: Create Artifact for flathub + run: | + 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 + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh" + + - name: Set environment variable with current branch name + run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV + + - name: Get commits since last release + run: | + # Get the latest release tag + LATEST_TAG=$(git describe --tags --abbrev=0) + # Get all commits since the latest release tag + COMMITS=$(git log $LATEST_TAG..HEAD --pretty=format:"- %s") + # Set the output variable + echo "::set-output name=commits::$COMMITS" + id: commits + continue-on-error: true + + - name: Get branch name + id: branch_name + run: echo "BRANCH_NAME=$(echo $GITHUB_REF | sed 's|refs/heads/||')" >> $GITHUB_ENV + + # if it's a feature branch it will not marked as "latest" cooker version + - name: "Set makeLatest (cooker only)" + run: | + if [[ "$BRANCH_NAME" == 'feat/'* ]]; then + echo "MAKE_LATEST=false" >> $GITHUB_ENV + else + echo "MAKE_LATEST=true" >> $GITHUB_ENV + fi + + - name: Publish the flatpak in a new cooker release + uses: ncipollo/release-action@v1 + with: + tag: "${{env.BRANCH_NAME}}-${{ env.buildid }}" + body: | + # Release Notes (Cooker) + This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. + On branch [${{env.BRANCH_NAME}}](https://github.com/XargonWan/RetroDECK/tree/${{env.BRANCH_NAME}}). + + ## Commits since last release + ${{ steps.commits.outputs.commits }} + + For the full release note for this build please refer to the channel [#BETA-TESTING](https://discord.gg/WDc5C9YWMx) on our Discord server. + + 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. + + artifacts: "RetroDECK-cooker.flatpak,RetroDECK-Artifact.tar.gz" + allowUpdates: true + makeLatest: ${{env.MAKE_LATEST}} # if it's a feat branch is not considered the latest build + token: ${{ secrets.TRIGGER_BUILD_TOKEN }} + repo: RetroDECK-cooker + continue-on-error: true + + # In case it cannot publish the release at least it's providing the flatpak file for creating a manual release + - name: Upload RetroDECK-cooker.flatpak + uses: actions/upload-artifact@v3 + with: + name: retrodeck-flatpak + path: RetroDECK-cooker.flatpak + continue-on-error: true + diff --git a/.github/workflows/removed/cooker.yml b/old/disabled-workflows/cooker.yml similarity index 100% rename from .github/workflows/removed/cooker.yml rename to old/disabled-workflows/cooker.yml diff --git a/.github/workflows/removed/flathub_push_cooker.yml b/old/disabled-workflows/flathub_push_cooker.yml similarity index 100% rename from .github/workflows/removed/flathub_push_cooker.yml rename to old/disabled-workflows/flathub_push_cooker.yml diff --git a/.github/workflows/removed/main.yml b/old/disabled-workflows/main.yml similarity index 100% rename from .github/workflows/removed/main.yml rename to old/disabled-workflows/main.yml diff --git a/.github/workflows/submodule-update.yml b/old/disabled-workflows/submodule-update.yml similarity index 100% rename from .github/workflows/submodule-update.yml rename to old/disabled-workflows/submodule-update.yml diff --git a/.github/workflows/removed/update-readthedocs.yml b/old/disabled-workflows/update-readthedocs.yml similarity index 100% rename from .github/workflows/removed/update-readthedocs.yml rename to old/disabled-workflows/update-readthedocs.yml diff --git a/.github/workflows/cooker-selfhosted.yml b/old/removed-workflows/cooker-selfhosted.yml similarity index 100% rename from .github/workflows/cooker-selfhosted.yml rename to old/removed-workflows/cooker-selfhosted.yml diff --git a/retrodeck.sh b/retrodeck.sh index bdfdae05..d9bfc95c 100644 --- a/retrodeck.sh +++ b/retrodeck.sh @@ -18,7 +18,7 @@ Arguments: --info-msg Print paths and config informations --configurator Starts the RetroDECK Configurator --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\". + --compress-all Compresses all supported games into a compatible format. Available formats are \"chd\", \"zip\", \"rvz\" and \"all\". --reset-component Reset one or more component or emulator configs to the default values --reset-retrodeck Starts the initial RetroDECK installer (backup your data first!) @@ -58,6 +58,7 @@ https://retrodeck.net 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, rpcs3, ryujinx, xemu, vita3k, mame, boilr, all" read -p "Please enter the component you would like to reset: " component + component=$(echo "$component" | tr '[:upper:]' '[:lower:]') 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 if [[ $response == [yY] ]]; then diff --git a/tools/configurator.sh b/tools/configurator.sh index e00747f5..4bdaa0a6 100644 --- a/tools/configurator.sh +++ b/tools/configurator.sh @@ -107,12 +107,12 @@ source /app/libexec/global.sh configurator_welcome_dialog() { log i "Configurator: opening welcome dialog" if [[ $developer_options == "true" ]]; then - welcome_menu_options=("Presets & Settings" "Here you find various presets, tweaks and settings to customize your RetroDECK experience" \ - "Open Emulator" "Launch and configure each emulators settings (for advanced users)" \ + welcome_menu_options=("Presets & Settings" "Here you will find various presets, tweaks and settings to customize your RetroDECK experience" \ + "Open Emulator" "Launch and configure each emulator's 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: Troubleshooting" "Backup data, perform BIOS / multi-disc file checks and emulator resets" \ "RetroDECK: About" "Show additional information about RetroDECK" \ - "Sync with Steam" "Sync with Steam all the favorites games" \ + "Sync with Steam" "Sync all favorited games with Steam" \ "Developer Options" "Welcome to the DANGER ZONE") else welcome_menu_options=("Presets & Settings" "Here you find various presets, tweaks and settings to customize your RetroDECK experience" \ @@ -211,7 +211,7 @@ configurator_global_presets_and_settings_dialog() { --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ --column="Choice" --column="Action" \ "Widescreen: Enable/Disable" "Enable or disable widescreen in supported systems" \ - "Ask-to-Exit: Enable/Disable" "Enable or disable emulators confirming when quitting in supported systems" \ + "Ask-to-Exit: Enable/Disable" "Enable or disable emulators confirming attempts to quit in supported systems" \ "Quick Resume: Enable/Disable" "Enable or disable save state auto-save/load in supported systems" \ "RetroAchievements: Login" "Log into the RetroAchievements service in supported systems" \ "RetroAchievements: Logout" "Disable RetroAchievements service in ALL supported systems" \ @@ -343,7 +343,7 @@ configurator_dolphin_input_textures_dialog() { zenity --question \ --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - Dolphin Textures: Universal Dynamic Input" \ - --text="Custom input textures are currently enabled. Do you want to disable them?." + --text="Custom input textures are currently enabled. Do you want to disable them?" if [ $? == 0 ] then @@ -357,7 +357,7 @@ configurator_dolphin_input_textures_dialog() { zenity --question \ --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - Dolphin Textures: Universal Dynamic Input" \ - --text="Custom input textures are currently disabled. Do you want to enable them?.\n\nThis process may take several minutes to complete." + --text="Custom input textures are currently disabled. Do you want to enable them?\n\nThis process may take several minutes to complete." if [ $? == 0 ] then @@ -381,7 +381,7 @@ configurator_primehack_input_textures_dialog() { zenity --question \ --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - Dolphin Custom Input Textures" \ - --text="Custom input textures are currently enabled. Do you want to disable them?." + --text="Custom input textures are currently enabled. Do you want to disable them?" if [ $? == 0 ] then @@ -395,7 +395,7 @@ configurator_primehack_input_textures_dialog() { zenity --question \ --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - Primehack Custom Input Textures" \ - --text="Custom input textures are currently disabled. Do you want to enable them?.\n\nThis process may take several minutes to complete." + --text="Custom input textures are currently disabled. Do you want to enable them?\n\nThis process may take several minutes to complete." if [ $? == 0 ] then @@ -419,7 +419,7 @@ configurator_power_user_warning_dialog() { choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="Yes" --extra-button="No" --extra-button="Never show this again" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Power User Warning" \ - --text="Making manual changes to an emulators configuration may create serious issues,\nand some settings may be overwitten during RetroDECK updates or when using presets.\n\nSome standalone emulator functions may not work properly outside of Desktop mode.\n\nPlease continue only if you know what you're doing.\n\nDo you want to continue?") + --text="Making manual changes to an emulator's configuration may create serious issues,\nand some settings may be overwitten during RetroDECK updates or when using presets.\n\nSome standalone emulator functions may not work properly outside of Desktop mode.\n\nPlease continue only if you know what you're doing.\n\nDo you want to continue?") fi rc=$? # Capture return code, as "Yes" button has no text value if [[ $rc == "0" ]]; then # If user clicked "Yes" @@ -612,6 +612,8 @@ configurator_retrodeck_tools_dialog() { --icon-name=net.retrodeck.retrodeck \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title="Downloading PS3 Firmware" \ + --width=400 --height=200 \ + --text="If it feels like this is taking too much time, please ensure there aren't any windows that unexpectedly slipped into the background and need attention.\n\n" \ --no-cancel \ --auto-close else @@ -823,7 +825,7 @@ configurator_compress_single_game_dialog() { configurator_compression_tool_dialog else - configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "The selected file does not have any compatible compressed format." + configurator_generic_dialog "RetroDECK Configurator - RetroDECK: Compression Tool" "The selected file does not have any compatible compression formats." configurator_compression_tool_dialog fi else @@ -1053,7 +1055,7 @@ configurator_retrodeck_troubleshooting_dialog() { } configurator_check_bios_files() { - configurator_generic_dialog "RetroDECK Configurator - Check & Verify: BIOS Files" "This check will look for BIOS files that RetroDECK has identified as working.\n\nNot all BIOS files are required for games to work, please check the BIOS description for more information on its purpose.\n\nThere may be additional BIOS files that will function with the emulators that are not checked.\n\nSome more advanced emulators such as Ryujinx will have additional methods for verifiying the BIOS files are in working order." + configurator_generic_dialog "RetroDECK Configurator - Check & Verify: BIOS Files" "This check will look for BIOS files that RetroDECK has identified as working.\n\nNot all BIOS files are required for games to work, please check the BIOS description for more information on its purpose.\n\nBIOS files not known to this tool could still function.\n\nSome more advanced emulators such as Ryujinx will have additional methods to verify that the BIOS files are in working order." bios_checked_list=() check_bios_files "basic" @@ -1071,7 +1073,7 @@ configurator_check_bios_files() { } configurator_check_bios_files_expert_mode() { - configurator_generic_dialog "RetroDECK Configurator - Check & Verify: BIOS Files - Expert Mode" "This check will look for BIOS files that RetroDECK has identified as working.\n\nNot all BIOS files are required for games to work, please check the BIOS description for more information on its purpose.\n\nThere may be additional BIOS files that will function with the emulators that are not checked.\n\nSome more advanced emulators such as Ryujinx will have additional methods for verifiying the BIOS files are in working order." + configurator_generic_dialog "RetroDECK Configurator - Check & Verify: BIOS Files - Expert Mode" "This check will look for BIOS files that RetroDECK has identified as working.\n\nNot all BIOS files are required for games to work, please check the BIOS description for more information on its purpose.\n\nBIOS files not known to this tool could still function.\n\nSome more advanced emulators such as Ryujinx will have additional methods to verify that the BIOS files are in working order." bios_checked_list=() check_bios_files "expert" @@ -1192,7 +1194,7 @@ configurator_reset_dialog() { component_to_reset=$(zenity --list \ --title "RetroDECK Configurator Utility - Reset Specific RetroDECK Component" --cancel-label="Back" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" --width=1200 --height=720 \ - --text="Which component do you want to reset to default?" \ + --text="Which component do you want to reset to default settings?" \ --column="Component" --column="Action" \ "BoilR" "Reset BoilR that manages the sync and scraping toward Steam library" \ "ES-DE" "Reset the ES-DE frontend" \ ) @@ -1298,7 +1300,7 @@ configurator_add_steam() { zenity --question \ --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - RetroDECK Steam Syncronization" \ - --text="Steam syncronization is current enabled. Do you want to disable it?\n\nThe already added shortcut will not be removed.\n" + --text="Steam syncronization is currently enabled. Do you want to disable it?\n\nThe already added shortcut will not be removed.\n" if [ $? == 0 ] # User clicked "Yes" then @@ -1310,7 +1312,7 @@ configurator_add_steam() { zenity --question \ --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - RetroDECK Steam Syncronization" \ - --text="Steam syncronization is current disabled. Do you want to enable it?\n\nAll the games marked as favorites will be syncronized with Steam thanks to BoilR.\nRemember to restart Steam each time to see the changes.\n" + --text="Steam syncronization is currently disabled. Do you want to enable it?\n\nAll the games marked as favorites will be syncronized with Steam thanks to BoilR.\nRemember to restart Steam each time to see the changes.\n" if [ $? == 0 ] then @@ -1421,7 +1423,7 @@ configurator_retrodeck_multiuser_dialog() { zenity --question \ --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - RetroDECK Multi-user Support" \ - --text="Multi-user support is current enabled. Do you want to disable it?\n\nIf there are more than one user configured,\nyou will be given a choice of which to use as the single RetroDECK user.\n\nThis users files will be moved to the default locations.\n\nOther users files will remain in the mutli-user-data folder.\n" + --text="Multi-user support is currently enabled. Do you want to disable it?\n\nIf there is more than one user configured,\nyou will be given a choice of which to use as the single RetroDECK user.\n\nThis user's files will be moved to the default locations.\n\nOther users' files will remain in the mutli-user-data folder.\n" if [ $? == 0 ] # User clicked "Yes" then @@ -1433,7 +1435,7 @@ configurator_retrodeck_multiuser_dialog() { zenity --question \ --no-wrap --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Configurator - RetroDECK Multi-user support" \ - --text="Multi-user support is current disabled. Do you want to enable it?\n\nThe current users saves and states will be backed up and then moved to the \"retrodeck/multi-user-data\" folder.\nAdditional users will automatically be stored in their own folder here as they are added." + --text="Multi-user support is currently disabled. Do you want to enable it?\n\nThe current user's saves and states will be backed up and then moved to the \"retrodeck/multi-user-data\" folder.\nAdditional users will automatically be stored in their own folder here as they are added." if [ $? == 0 ] then