diff --git a/.github/workflows/cooker-selfhosted-persistent.yml b/.github/workflows/cooker-selfhosted-persistent.yml index dced323f..b2403330 100644 --- a/.github/workflows/cooker-selfhosted-persistent.yml +++ b/.github/workflows/cooker-selfhosted-persistent.yml @@ -113,16 +113,27 @@ jobs: # 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 + if [[ "$BRANCH_NAME" == 'feat/'* || "$BRANCH_NAME" == 'ref/'* ]]; then echo "MAKE_LATEST=false" >> $GITHUB_ENV else echo "MAKE_LATEST=true" >> $GITHUB_ENV fi + # if the branch is coming from a PR the tag should be manually built + - name: "Generate version tag" + run: | + if [[ "$BRANCH_NAME" == 'ref/'* ]]; then + pr_number=$(echo ${{env.BRANCH_NAME}} | awk -F'/' '{print $3}') + original_branch=$(git ls-remote --heads origin "refs/pull/$pr_number/head" | cut -d'/' -f3) + echo "TAG=PR-$pr_number-$original_branch-${{ env.buildid }}" >> $GITHUB_ENV + else + echo "TAG=${{env.BRANCH_NAME}}-${{ env.buildid }}" >> $GITHUB_ENV + fi + - name: Publish the flatpak in a new cooker release uses: ncipollo/release-action@v1 with: - tag: "${{env.BRANCH_NAME}}-${{ env.buildid }}" + tag: "${{env.TAG}}" body: | # Release Notes (Cooker) This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. diff --git a/emu-configs/defaults/retrodeck/retrodeck.cfg b/emu-configs/defaults/retrodeck/retrodeck.cfg index da64517f..5cf0a8f2 100644 --- a/emu-configs/defaults/retrodeck/retrodeck.cfg +++ b/emu-configs/defaults/retrodeck/retrodeck.cfg @@ -21,6 +21,7 @@ desktop_mode_warning=true low_space_warning=true update_check=false update_repo=RetroDECK +branch= update_ignore= cloud_saves=false multi_user_mode=false diff --git a/emu-configs/mame/mame.ini b/emu-configs/mame/mame.ini index 99812b94..f47c2062 100644 --- a/emu-configs/mame/mame.ini +++ b/emu-configs/mame/mame.ini @@ -7,31 +7,31 @@ writeconfig 0 # # CORE SEARCH PATH OPTIONS # -homepath /var/config/mame -rompath RETRODECKROMSDIR -hashpath /app/share/mame/hash -samplepath /app/share/mame/samples -artpath RETRODECKHOMEDIR/downloaded_media/arcade/screenshots/ -ctrlrpath /app/share/mame/ctrlr -inipath /var/config/mame -fontpath /app/bin/ -cheatpath /app/share/mame/cheat -crosshairpath /app/share/mame/crosshair -pluginspath /app/share/mame/plugins -languagepath /app/share/mame/language -swpath /app/share/mame/software +homepath /var/data/mame/plugin-data +rompath RETRODECKROMSDIR/mame/;RETRODECKROMSDIR/arcade/;RETRODECKROMSDIR/bbcmicro/ +hashpath /var/data/mame/hash +samplepath /var/data/mame/assets/samples +artpath /var/data/mame/assets/artwork +ctrlrpath /var/config/ctrlr +inipath /var/config/mame/ini +fontpath /var/data/mame/assets/fonts +cheatpath /var/data/mame/cheat +crosshairpath /var/data/mame/assets/crosshair +pluginspath /var/data/mame/plugins +languagepath /var/data/mame/assets/language +swpath /var/data/mame/assets/software # # CORE OUTPUT DIRECTORY OPTIONS # cfg_directory /var/config/mame/cfg -nvram_directory /var/config/mame/nvram +nvram_directory RETRODECKSAVESDIR/mame-sa/nvram input_directory /var/config/mame/inp -state_directory RETRODECKSAVESDIR/mame-sa/states -snapshot_directory RETRODECKHOMEDIR/screenshots -diff_directory /var/config/mame/diff -comment_directory /var/config/mame/comments -share_directory /var/config/mame/share +state_directory RETRODECKSTATESDIR/mame-sa +snapshot_directory RETRODECKHOMEDIR/screenshots/mame-sa +diff_directory RETRODECKSAVESDIR/mame-sa/diff +comment_directory /var/data/mame/assets/comments +share_directory /var/data/mame/assets/share # # CORE STATE/PLAYBACK OPTIONS @@ -234,7 +234,7 @@ output auto keyboardprovider auto mouseprovider auto lightgunprovider auto -joystickprovider auto +joystickprovider sdljoy # # OSD DEBUGGING OPTIONS @@ -353,7 +353,7 @@ networkprovider auto # # BGFX POST-PROCESSING OPTIONS # -bgfx_path bgfx +bgfx_path /app/share/mame/bgfx bgfx_backend auto bgfx_debug 0 bgfx_screen_chains diff --git a/emu-configs/mame/ui.ini b/emu-configs/mame/ui.ini index 5955d68a..d616b1a4 100644 --- a/emu-configs/mame/ui.ini +++ b/emu-configs/mame/ui.ini @@ -1,26 +1,26 @@ # # UI SEARCH PATH OPTIONS # -historypath history;dats;. -categorypath folders -cabinets_directory cabinets;cabdevs -cpanels_directory cpanel -pcbs_directory pcb -flyers_directory flyers -titles_directory titles -ends_directory ends -marquees_directory marquees;RETRODECKHOMEDIR/downloaded_media/arcade/marquees -artwork_preview_directory "artwork preview;artpreview" -bosses_directory bosses -logos_directory logo -scores_directory scores -versus_directory versus -gameover_directory gameover -howto_directory howto -select_directory select -icons_directory icons -covers_directory covers;RETRODECKHOMEDIR/downloaded_media/arcade/covers -ui_path ui +historypath /var/data/mame/dats +categorypath /var/data/mame/folders +cabinets_directory /var/data/mame/assets/cabinets +cpanels_directory /var/data/mame/assets/cpanel +pcbs_directory /var/data/mame/assets/pcb +flyers_directory /var/data/mame/assets/flyers +titles_directory /var/data/mame/assets/titles +ends_directory /var/data/mame/assets/ends +marquees_directory /var/data/mame/assets/marquees +artwork_preview_directory /var/data/mame/assets/artwork-preview +bosses_directory /var/data/mame/assets/bosses +logos_directory /var/data/mame/assets/logo +scores_directory /var/data/mame/assets/scores +versus_directory /var/data/mame/assets/versus +gameover_directory /var/data/mame/assets/gameover +howto_directory /var/data/mame/assets/howto +select_directory /var/data/mame/assets/select +icons_directory /var/data/mame/assets/icons +covers_directory /var/data/mame/assets/covers +ui_path /var/data/mame/assets/ui # # UI MISC OPTIONS @@ -62,7 +62,7 @@ remember_last 0 last_used_filter Available system_right_panel image software_right_panel image -system_right_image cover +system_right_image snap software_right_image snap enlarge_snaps 1 forced4x3 1 diff --git a/functions/checks.sh b/functions/checks.sh index bb93b322..7b76d82f 100644 --- a/functions/checks.sh +++ b/functions/checks.sh @@ -59,6 +59,7 @@ check_for_version_update() { # configurator_generic_dialog "RetroDECK Online Update" "The update process is now complete!\n\nPlease restart RetroDECK to keep the fun going." # exit 1 # fi + # TODO: add the logic to check and update the branch from the configuration file choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" --extra-button="Ignore this version" \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Update Available" \ diff --git a/functions/functions.sh b/functions/functions.sh index b5bf389d..6ac742f3 100644 --- a/functions/functions.sh +++ b/functions/functions.sh @@ -562,6 +562,66 @@ easter_eggs() { cp -f "$new_splash_file" "$current_splash_file" # Deploy assigned splash screen } +# TODO: this function is not yet used +branch_selector() { + # Fetch branches from GitHub API excluding "main" + branches=$(curl -s https://api.github.com/repos/XargonWan/RetroDECK/branches | grep '"name":' | awk -F '"' '$4 != "main" {print $4}') + # TODO: logging - Fetching branches from GitHub API + + # Create an array to store branch names + branch_array=() + + # Loop through each branch and add it to the array + while IFS= read -r branch; do + branch_array+=("$branch") + done <<< "$branches" + # TODO: logging - Creating array of branch names + + # Display branches in a Zenity list dialog + selected_branch=$( + zenity --list \ + --icon-name=net.retrodeck.retrodeck \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK Configurator Cooker Branch - Select Branch" \ + --column="Branch" --width=1280 --height=800 "${branch_array[@]}" + ) + # TODO: logging - Displaying branches in Zenity list dialog + + # Display warning message + if [ $selected_branch ]; then + zenity --question --icon-name=net.retrodeck.retrodeck --no-wrap \ + --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ + --title "RetroDECK Configurator Cooker Branch - Switch Branch" \ + --text="Are you sure you want to move to \"$selected_branch\" branch?" + # Output selected branch + echo "Selected branch: $selected_branch" # TODO: logging - Outputting selected branch + set_setting_value "$rd_conf" "branch" "$selected_branch" "retrodeck" "options" + branch="feat/sftp" + # Get the latest release for the specified branch + latest_release=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases" | jq ".[] | select(.target_commitish == \"$branch_name\") | .tag_name" | head -n 1) + # TODO: this will fail because the builds coming from the PRs are not published yet, we should fix them + # TODO: form a proper url: $flatpak_file_url + configurator_generic_dialog "RetroDECK Online Update" "The update process may take several minutes.\n\nAfter the update is complete, RetroDECK will close. When you run it again you will be using the latest version." + ( + local desired_flatpak_file=$(curl --silent $flatpak_file_url | grep '"browser_download_url":' | sed -E 's/.*"([^"]+)".*/\1/') + mkdir -p "$rdhome/RetroDECK_Updates" + wget -P "$rdhome/RetroDECK_Updates" $desired_flatpak_file + flatpak-spawn --host flatpak remove --noninteractive -y net.retrodeck.retrodeck # Remove current version before installing new one, to avoid duplicates + flatpak-spawn --host flatpak install --user --bundle --noninteractive -y "$rdhome/RetroDECK_Updates/RetroDECK-cooker.flatpak" + rm -rf "$rdhome/RetroDECK_Updates" # Cleanup old bundles to save space + ) | + 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 Updater" \ + --text="RetroDECK is updating to the latest \"$selected_branch\" version, please wait." + configurator_generic_dialog "RetroDECK Online Update" "The update process is now complete!\n\nPlease restart RetroDECK to keep the fun going." + exit 1 + else + configurator_generic_dialog "No branch selected, exiting." + # TODO: logging + fi +} + quit_retrodeck() { pkill -f retrodeck pkill -f es-de diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh index e09258d2..95b1d0ac 100644 --- a/functions/prepare_component.sh +++ b/functions/prepare_component.sh @@ -712,11 +712,11 @@ prepare_component() { mkdir -p $saves_folder/mame-sa mkdir -p "/var/config/mame" dir_prep "$saves_folder/mame-sa/hiscore" "/var/config/mame/hiscore" - cp -fvr "$emuconfigs/mame/**" "/var/config/mame" + cp -fvr "$emuconfigs/mame/"** "/var/config/mame" sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/mame/*.ini" sed -i 's#RETRODECKHOMESDIR#'$rdhome'#g' "/var/config/mame/*.ini" sed -i 's#RETRODECKSAVESDIR#'$rdhome'#g' "/var/config/mame/*.ini" - + sed -i 's#RETRODECKSTATESDIR#'$rdhome'#g' "/var/config/mame/*.ini" fi if [[ "$component" =~ ^(gzdoom|GZDOOM|all)$ ]]; then diff --git a/res/binding_icons/rd-pc-call.png b/res/binding_icons/rd-pc-call.png new file mode 100644 index 00000000..66e10697 Binary files /dev/null and b/res/binding_icons/rd-pc-call.png differ diff --git a/res/binding_icons/rd-pc-close.png b/res/binding_icons/rd-pc-close.png new file mode 100644 index 00000000..10582266 Binary files /dev/null and b/res/binding_icons/rd-pc-close.png differ diff --git a/res/binding_icons/rd-pc-fight.png b/res/binding_icons/rd-pc-fight.png new file mode 100644 index 00000000..4b5e5c78 Binary files /dev/null and b/res/binding_icons/rd-pc-fight.png differ diff --git a/res/binding_icons/rd-pc-give.png b/res/binding_icons/rd-pc-give.png new file mode 100644 index 00000000..a9f327c4 Binary files /dev/null and b/res/binding_icons/rd-pc-give.png differ diff --git a/res/binding_icons/rd-pc-look.png b/res/binding_icons/rd-pc-look.png new file mode 100644 index 00000000..fa94baee Binary files /dev/null and b/res/binding_icons/rd-pc-look.png differ diff --git a/res/binding_icons/rd-pc-move.png b/res/binding_icons/rd-pc-move.png new file mode 100644 index 00000000..8a9635b9 Binary files /dev/null and b/res/binding_icons/rd-pc-move.png differ diff --git a/res/binding_icons/rd-pc-open.png b/res/binding_icons/rd-pc-open.png new file mode 100644 index 00000000..c5db7d36 Binary files /dev/null and b/res/binding_icons/rd-pc-open.png differ diff --git a/res/binding_icons/rd-pc-pickup.png b/res/binding_icons/rd-pc-pickup.png new file mode 100644 index 00000000..74192543 Binary files /dev/null and b/res/binding_icons/rd-pc-pickup.png differ diff --git a/res/binding_icons/rd-pc-pull.png b/res/binding_icons/rd-pc-pull.png new file mode 100644 index 00000000..892d0748 Binary files /dev/null and b/res/binding_icons/rd-pc-pull.png differ diff --git a/res/binding_icons/rd-pc-push.png b/res/binding_icons/rd-pc-push.png new file mode 100644 index 00000000..1eec6137 Binary files /dev/null and b/res/binding_icons/rd-pc-push.png differ diff --git a/res/binding_icons/rd-pc-read.png b/res/binding_icons/rd-pc-read.png new file mode 100644 index 00000000..d9880d85 Binary files /dev/null and b/res/binding_icons/rd-pc-read.png differ diff --git a/res/binding_icons/rd-pc-talk.png b/res/binding_icons/rd-pc-talk.png new file mode 100644 index 00000000..7894fc6b Binary files /dev/null and b/res/binding_icons/rd-pc-talk.png differ diff --git a/res/binding_icons/rd-pc-use.png b/res/binding_icons/rd-pc-use.png new file mode 100644 index 00000000..3234426b Binary files /dev/null and b/res/binding_icons/rd-pc-use.png differ