diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml index f4e8838a..fc96a040 100644 --- a/.github/workflows/cooker-selfhosted.yml +++ b/.github/workflows/cooker-selfhosted.yml @@ -1,4 +1,4 @@ -name: cooker-selfhosted +name: "Build cooker" on: push: @@ -6,8 +6,10 @@ on: - cooker* paths: - '.github/workflows/**' + - 'automation_tools/**' - 'emu-configs/**' - 'es-configs/**' + - 'functions/**' - 'rd-submodules/**' - '*.sh' - 'net.retrodeck.retrodeck.yml' @@ -30,9 +32,15 @@ jobs: run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/* continue-on-error: true - - uses: actions/checkout@v3 + - name: Clone RetroDECK repo + uses: actions/checkout@v3 + with: + submodules: 'true' - - name: Generate build ID + - name: "Install dependencies" + run: "automation_tools/install_dependencies.sh" + + - name: Generate cooker build ID run: | word1=$(shuf -n 1 ${GITHUB_WORKSPACE}/automation_tools/codename_wordlist.txt) capitalized_word1="$(tr '[:lower:]' '[:upper:]' <<< ${word1:0:1})${word1:1}" @@ -40,34 +48,33 @@ jobs: capitalized_word2="$(tr '[:lower:]' '[:upper:]' <<< ${word2:0:1})${word2:1}" result=$capitalized_word1$capitalized_word2 echo $result > ${GITHUB_WORKSPACE}/buildid - ls -lah ${GITHUB_WORKSPACE} # DEBUG - cat ${GITHUB_WORKSPACE}/buildid # DEBUG echo "buildid=$result" >> $GITHUB_ENV echo "VersionID is $result" - - name: Initialize environment - run: | - git pull - git submodule init - git submodule update - sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2 - flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - flatpak install --user -y --noninteractive \ - org.kde.Sdk//6.3 \ - org.kde.Platform//6.3 \ - org.freedesktop.Platform.ffmpeg-full/x86_64/22.08 \ - io.qt.qtwebengine.BaseApp/x86_64/6.3 \ - org.freedesktop.Sdk.Extension.llvm13 \ - org.freedesktop.Sdk.Extension.dotnet6/x86_64/22.08 \ - runtime/org.freedesktop.Platform.ffmpeg-full/x86_64/22.08 - /bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh # Run pre-build automation tasks + - 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: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" - name: Build flatpak - run: | - git config --global protocol.file.allow always - mkdir -vp ${GITHUB_WORKSPACE}/local - mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker - flatpak-builder --user --force-clean --install-deps-from=flathub --install-deps-from=flathub-beta --repo=${GITHUB_WORKSPACE}/local ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh" - name: Create Artifact for flathub run: | @@ -78,12 +85,22 @@ jobs: continue-on-error: true - name: Create Bundle - run: | - flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck + 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: Publish the flatpak in a new cooker release uses: ncipollo/release-action@v1 with: @@ -92,24 +109,25 @@ jobs: # Release Notes (Cooker) This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. + ## 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. 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.flatpak,RetroDECK-Artifact.tar.gz" + artifacts: "RetroDECK-cooker.flatpak,RetroDECK-Artifact.tar.gz" allowUpdates: true - #prerelease: true makeLatest: true - #draft: true 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.flatpak + - name: Upload RetroDECK-cooker.flatpak uses: actions/upload-artifact@v3 with: name: retrodeck-flatpak - path: RetroDECK.flatpak - continue-on-error: true \ No newline at end of file + path: RetroDECK-cooker.flatpak + continue-on-error: true diff --git a/.github/workflows/flathub_push_main.yml b/.github/workflows/flathub_push_main.yml index 1b4bad8f..7e085521 100644 --- a/.github/workflows/flathub_push_main.yml +++ b/.github/workflows/flathub_push_main.yml @@ -1,5 +1,5 @@ -name: PUSH-main-flathub +name: "Push main on Flathub" on: workflow_dispatch: @@ -9,6 +9,7 @@ jobs: Pushing_main_into_flathub: runs-on: ubuntu-latest steps: + - name: Pushing shell: bash run: | @@ -47,17 +48,35 @@ jobs: # Copying only a few files as the others are cloned by git in retrodeck.sh cd $gits_folder/RetroDECK cp -rf \ - 'flathub.json' \ 'LICENSE' \ - 'flathub.yml' \ 'README.md' \ $gits_folder/flathub/ cd $gits_folder/flathub ls -lah - # manipulating manifest - mv flathub.yml net.retrodeck.retrodeck.yml + # Creating the manifest for flathub + manifest='net.retrodeck.retrodeck.yml' + sed -n '/cleanup/q;p' $gits_folder/RetroDECK/net.retrodeck.retrodeck.yml > $manifest + sed -i '/^[[:space:]]*#/d' $manifest + sed -i 's/[[:space:]]*#.*$//' $manifest + cat << EOF >> $manifest + modules: + - name: retrodeck + buildsystem: simple + build-commands: + - cp -rn files/* /app + sources: + - type: archive + url: https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.tar.gz + sha256: __SHA__ + EOF + + cat << EOF >> flathub.json + { + "only-arches": ["x86_64"] + } + EOF # Getting latest release name # version=$(\ diff --git a/.github/workflows/main-selfhosted.yml b/.github/workflows/main-selfhosted.yml index c1a115a0..b71961c6 100644 --- a/.github/workflows/main-selfhosted.yml +++ b/.github/workflows/main-selfhosted.yml @@ -1,4 +1,4 @@ -name: main-selfhosted +name: "Build main" on: push: @@ -6,8 +6,10 @@ on: - main paths: - '.github/workflows/**' + - 'automation_tools/**' - 'emu-configs/**' - 'es-configs/**' + - 'functions/**' - 'rd-submodules/**' - '*.sh' - 'net.retrodeck.retrodeck.yml' @@ -30,35 +32,43 @@ jobs: run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/* continue-on-error: true - - name: Generate build ID - id: generating_buildid - run: echo "##[set-output name=build-id;]$(echo "$( git rev-parse --short HEAD )")" - - - uses: actions/checkout@v3 + - name: Clone RetroDECK repo + uses: actions/checkout@v3 + with: + submodules: 'true' - - name: Initialize enviornment - run: | - git pull - git submodule init - git submodule update - sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2 - flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - flatpak install --user -y --noninteractive \ - org.kde.Sdk//6.3 \ - org.kde.Platform//6.3 \ - org.freedesktop.Platform.ffmpeg-full/x86_64/22.08 \ - io.qt.qtwebengine.BaseApp/x86_64/6.3 \ - org.freedesktop.Sdk.Extension.llvm13 \ - org.freedesktop.Sdk.Extension.dotnet6/x86_64/22.08 \ - runtime/org.freedesktop.Platform.ffmpeg-full/x86_64/22.08 - /bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh # Run pre-build automation tasks + - name: "Install dependencies" + run: "automation_tools/install_dependencies.sh" + + - name: Run pre-build automation tasks + run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh" + + - name: Read manifest content + id: read_manifest + run: echo "::set-output name=file_content::$(cat net.retrodeck.retrodeck.yml)" + + # - name: "Updating release notes in appdata" + # run: "automation_tools/appdata_management.sh" + + - name: Check versions (main only) + id: check_version_string + run: "automation_tools/main_version_checker.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: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh" - name: Build flatpak - run: | - git config --global protocol.file.allow always - mkdir -vp ${GITHUB_WORKSPACE}/local - mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker - flatpak-builder --user --force-clean --install-deps-from=flathub --install-deps-from=flathub-beta --repo=${GITHUB_WORKSPACE}/local ${GITHUB_WORKSPACE}/retrodeck-flatpak-main net.retrodeck.retrodeck.yml + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh" - name: Create Artifact for flathub run: | @@ -69,8 +79,7 @@ jobs: continue-on-error: true - name: Create Bundle - run: | - flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck + run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh" - name: Getting version info id: version @@ -92,7 +101,6 @@ jobs: bodyFile: "body.md" artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz" allowUpdates: true - #prerelease: true makeLatest: true token: ${{ secrets.TRIGGER_BUILD_TOKEN }} repo: RetroDECK diff --git a/.github/workflows/submodule-update.yml b/.github/workflows/submodule-update.yml new file mode 100644 index 00000000..af02cfd7 --- /dev/null +++ b/.github/workflows/submodule-update.yml @@ -0,0 +1,57 @@ +name: Sunday Submodule Update + +on: + # At 4:00 (CET) + schedule: + - cron: '0 2 * * 0' + workflow_dispatch: + +jobs: + update_submodules: + name: Update submodules and create PR + runs-on: ubuntu-latest + steps: + + - name: Checkout repo with submodules + uses: actions/checkout@v2 + with: + token: ${{ secrets.REPO_TOKEN }} + submodules: recursive + + - name: Fetch all remote branches + run: git fetch --all + + - name: List cooker branches by date + id: list_branches + run: | + BRANCHES=$(git for-each-ref --sort=-committerdate refs/remotes/origin/cooker* --format='%(refname)') echo “::set-output name=branches::$BRANCHES” + + - name: Select target branch + id: select_branch + run: | + TARGET_BRANCH=(echo{{ steps.list_branches.outputs.branches }} | head -n 1) + echo “::set-output name=target_branch::$TARGET_BRANCH” + git checkout $TARGET_BRANCH + echo "Working on $TARGET_BRANCH" + + - name: Update submodules with command + run: git submodule update --remote --merge --recursive + + - name: Configure Git credentials + run: | + git config --global user.name 'GitHub bot' + git config --global user.email 'bot@noreply.github.com' + + - name: Commit and push changes + run: | + git commit -am "Sunday submodule update" + git push origin HEAD:submodule-update + + - name: Create PR + uses: repo-sync/pull-request@v2 + with: + github_token: ${{ secrets.REPO_TOKEN }} + pr_title: "Sunday submodule update" + pr_body: "This PR updates the submodules to the latest commit on their remote repositories." + source_branch: "submodule-update" + destination_branch: "cooker*" diff --git a/.gitignore b/.gitignore index 7dc45f27..d1256aed 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ Thumbs.db .flatpak-builder/ retrodeck-flatpak-cooker/ retrodeck-flatpak/ -bakcup +backup .old tmp +.godot diff --git a/automation_tools/appdata_management.sh b/automation_tools/appdata_management.sh new file mode 100755 index 00000000..f6cdfb19 --- /dev/null +++ b/automation_tools/appdata_management.sh @@ -0,0 +1,94 @@ +#!/bin/bash + +# THIS SCRIPT IS BROKEN HENCE DISABLED FTM +# This script is getting the latest release notes from the wiki and add them to the appdata + +source automation_tools/version_extractor.sh + +# Fetch appdata version +appdata_version=$(fetch_appdata_version) +echo -e "Appdata:\t\t$appdata_version" + +# Defining manifest file location +appdata_file="net.retrodeck.retrodeck.appdata.xml" + +# Check if release with appdata_version already exists +if grep -q "version=\"$appdata_version\"" "$appdata_file"; then + echo "Deleting existing release version $appdata_version..." + + # Remove the existing release entry + sed -i "//d" "$appdata_file" +fi + +echo "Adding new release version $appdata_version..." + +# Get today's date in the required format (YYYY-MM-DD) +today_date=$(date +"%Y-%m-%d") +echo "Today is $today_date" + +# Construct the release snippet +release_snippet="\ + + + https://github.com/XargonWan/RetroDECK/releases/tag/$appdata_version + + RELEASE_NOTES_PLACEHOLDER + + " + +# Read the entire content of the XML file +xml_content=$(cat "$appdata_file") + +# Replace RELEASE_NOTES_PLACEHOLDER with the actual release notes +# TODO +git clone https://github.com/XargonWan/RetroDECK.wiki.git /tmp/wiki + +# Path to the markdown file +wiki="/tmp/wiki/Version-history:-Patch-Notes.md" +# Read the markdown file until the first occurrence of "---" +latest_version_notes="" +while IFS= read -r line; do + if [ "$line" = "---" ]; then + break + fi + latest_version_notes+="$line\n" +done < "$wiki" + +# Extract the version number +version_number="${latest_version_notes#*# RetroDECK }" # Remove text before "# RetroDECK " +version_number="${version_number%% -*}" # Remove text after " - " + +# Extract sections from the latest version notes +sections=$(echo "$latest_version_notes" | awk '/##/ { print; }') + +# Create a formatted section list +section_list="" +current_section="" +while IFS= read -r line; do + if [[ "$line" == "##"* ]]; then + if [ -n "$current_section" ]; then + section_list+="" + fi + section_name="${line##*# }" + section_list+="

${section_name}

" +fi + +# Replace RELEASE_NOTES_PLACEHOLDER with the actual release notes +release_description="${release_snippet/RELEASE_NOTES_PLACEHOLDER/$section_list}" + +# Append the new release snippet to the content +modified_xml_content="${xml_content//$release_description}" + +# Overwrite the original XML file with the modified content +echo "$modified_xml_content" > "$appdata_file" + +# Format the XML file +#xmlstarlet fo --omit-decl "$appdata_file" diff --git a/automation_tools/automation_task_list.cfg b/automation_tools/automation_task_list.cfg index f1624f43..ebf7d98f 100644 --- a/automation_tools/automation_task_list.cfg +++ b/automation_tools/automation_task_list.cfg @@ -9,3 +9,4 @@ hash^MSXBIOSHASHPLACEHOLDER^http://bluemsx.msxblue.com/rel_download/blueMSXv282f 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 +branch^THISBRANCH diff --git a/automation_tools/cooker_flatpak_portal_add.sh b/automation_tools/cooker_flatpak_portal_add.sh new file mode 100755 index 00000000..c3c3557a --- /dev/null +++ b/automation_tools/cooker_flatpak_portal_add.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# COOKER ONLY +# This script is adding the update portal (permission) to the ooker flatpak. +# This is ran by the cooker pipeline. + +sed -i '/finish-args:/a \ \ - --talk-name=org.freedesktop.Flatpak' net.retrodeck.retrodeck.yml \ No newline at end of file diff --git a/automation_tools/flatpak_build_bundle.sh b/automation_tools/flatpak_build_bundle.sh new file mode 100755 index 00000000..8c155810 --- /dev/null +++ b/automation_tools/flatpak_build_bundle.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# This is building the bundle RetroDECK.flatpak after the download and build steps are done + +flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK-cooker.flatpak net.retrodeck.retrodeck \ No newline at end of file diff --git a/automation_tools/flatpak_build_download_only.sh b/automation_tools/flatpak_build_download_only.sh new file mode 100755 index 00000000..55352780 --- /dev/null +++ b/automation_tools/flatpak_build_download_only.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# This script is downloading the needed files to prepare the manifest build + +git config --global protocol.file.allow always +mkdir -vp ${GITHUB_WORKSPACE}/local +mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker +flatpak-builder --user --force-clean \ + --install-deps-from=flathub \ + --install-deps-from=flathub-beta \ + --repo=${GITHUB_WORKSPACE}/local \ + --download-only \ + ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker \ + net.retrodeck.retrodeck.yml \ No newline at end of file diff --git a/automation_tools/flatpak_build_only.sh b/automation_tools/flatpak_build_only.sh new file mode 100755 index 00000000..d2ed3fe5 --- /dev/null +++ b/automation_tools/flatpak_build_only.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +# This script is building the flatpak is the needed files are already downloaded + +git config --global protocol.file.allow always +mkdir -vp ${GITHUB_WORKSPACE}/local +mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker +flatpak-builder --user --force-clean \ + --install-deps-from=flathub \ + --install-deps-from=flathub-beta \ + --repo=${GITHUB_WORKSPACE}/local \ + --disable-download \ + ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker \ + net.retrodeck.retrodeck.yml \ No newline at end of file diff --git a/force-update-submodules.sh b/automation_tools/force_update_submodules.sh old mode 100644 new mode 100755 similarity index 89% rename from force-update-submodules.sh rename to automation_tools/force_update_submodules.sh index 57d3df5f..50c249c7 --- a/force-update-submodules.sh +++ b/automation_tools/force_update_submodules.sh @@ -1,5 +1,7 @@ #!/bin/bash +# WARNING: DANGEROUS! Don't use this script lightly + git submodule deinit --all rm rd-submodules/retroarch git rm -rf --cached rd-submodules/retroarch diff --git a/automation_tools/install_dependencies.sh b/automation_tools/install_dependencies.sh new file mode 100755 index 00000000..e4cc6261 --- /dev/null +++ b/automation_tools/install_dependencies.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# This scritp is installing the required dependencies to correctly run the pipeline and buold the flatpak + +sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2 curl +flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo \ No newline at end of file diff --git a/automation_tools/main_version_checker.sh b/automation_tools/main_version_checker.sh new file mode 100755 index 00000000..87011bfd --- /dev/null +++ b/automation_tools/main_version_checker.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# This script is used to check that the versions are correct and stopping the pipeline if something is wrong. +# This is designed to be run on the main pipeline to check that everything is in order before building RetroDECK. + +source automation_tools/version_extractor.sh + +# Set the file paths +appdata="net.retrodeck.retrodeck.appdata.xml" +manifest="net.retrodeck.retrodeck.yml" +manifest_content=$(cat "$manifest") + +compare_versions() { + local manifest_version_cleaned=$(echo "$1" | sed 's/[a-zA-Z]//g') + local appdata_version_cleaned=$(echo "$2" | sed 's/[a-zA-Z]//g') + + if [[ "$manifest_version_cleaned" == "$appdata_version_cleaned" ]]; then + return 0 # Versions are equal + fi + + local IFS=. + local manifest_parts=($manifest_version_cleaned) + local appdata_parts=($appdata_version_cleaned) + + for ((i=0; i<${#manifest_parts[@]}; i++)); do + if ((manifest_parts[i] > appdata_parts[i])); then + return 1 # Manifest version is greater + elif ((manifest_parts[i] < appdata_parts[i])); then + return 2 # Appdata version is greater + fi + done + + return 0 # Versions are equal +} + +repo_version=$(fetch_repo_version) +echo -e "Online repository:\t$repo_version" + +manifest_version=$(fetch_manifest_version) +echo -e "Manifest:\t\t$manifest_version" + +appdata_version=$(fetch_appdata_version) +echo -e "Appdata:\t\t$appdata_version" + +# Additional checks +if [[ "$manifest_version" == "main" || "$manifest_version" == "THISBRANCH" ]]; then + echo "Manifest version cannot be 'main' or 'THISBRANCH'. Please fix it." + exit 1 +fi + +if [[ "$appdata_version" != "$manifest_version" ]]; then + echo "Appdata version is not equal to manifest version. Please fix it." + exit 1 +fi + +compare_versions "$repo_version" "$manifest_version" +result=$? + +if [ "$result" -eq 1 ]; then + echo "Repository version is less than manifest version. Please fix it." + exit 1 +fi + +echo "All checks passed. Well done!" \ No newline at end of file diff --git a/automation_tools/pre_build_automation.sh b/automation_tools/pre_build_automation.sh old mode 100644 new mode 100755 index 637c3f95..f4d56c62 --- a/automation_tools/pre_build_automation.sh +++ b/automation_tools/pre_build_automation.sh @@ -15,6 +15,7 @@ rd_manifest=${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml automation_task_list=${GITHUB_WORKSPACE}/automation_tools/automation_task_list.cfg +current_branch=$(git rev-parse --abbrev-ref HEAD) echo "Manifest location: $rd_manifest" echo "Automation task list location: $automation_task_list" @@ -23,10 +24,17 @@ echo "Task list contents:" cat "$automation_task_list" echo +# Update all collected information while IFS="^" read -r action placeholder url branch do if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then - if [[ "$action" == "hash" ]]; then + if [[ "$action" == "branch" ]]; then + echo + echo "Placeholder text: $placeholder" + echo "Current branch:" "$current_branch" + echo + /bin/sed -i 's^'"$placeholder"'^'"$current_branch"'^g' $rd_manifest + elif [[ "$action" == "hash" ]]; then echo echo "Placeholder text: $placeholder" echo "URL to hash: $url" diff --git a/automation_tools/version_extractor.sh b/automation_tools/version_extractor.sh new file mode 100755 index 00000000..b9f679ff --- /dev/null +++ b/automation_tools/version_extractor.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# This script is intended to gather version information from various sources: +# RetroDECK repository +# Appdata.xml file +# Manifest YAML file +# It consists of three functions, each responsible for retrieving a specific version-related data. + +appdata="net.retrodeck.retrodeck.appdata.xml" +manifest="net.retrodeck.retrodeck.yml" +manifest_content=$(cat "$manifest") + +fetch_repo_version(){ + # Getting latest RetroDECK release info + LATEST_RELEASE=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/releases/latest") + # Extracting tag name from the latest release + repo_version=$(echo "$LATEST_RELEASE" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') + # Printing results + echo "$repo_version" +} + +fetch_appdata_version(){ + # Extract the version from the net.retrodeck.retrodeck.appdata.xml file + appdata_version=$(grep -oPm1 "(?<= Advanced -> Tweaks/Hacks +- Enable VRAM Write Texture Replacement and set it to On. +- Preload Texture Replacements and set it to On. + +How do I add texture packs? +Requirements: Texture pack files + +NOTE: On the Steam Deck this could be easier to do in Desktop Mode. + +Texture folder directly +- Extract any texture pack files from compressed .zip or any other format into folders. +- Go into ~/retrodeck/texture_packs/duckstation/. The folders are all named by TITLEID. +- 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 + +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 new file mode 100644 index 00000000..33e9d9c8 --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mesen-textures.txt @@ -0,0 +1,32 @@ +RetroArch - NES - Mesen +The texture_packs/RetroArch-Mesen/ represents /retroarch/system/HdPacks/ folder. + +Note: +Some texture packs could made for a specific version or region of a game. Make sure you have the right game and textures for it. + +Enable Texture Packs in the Mesen core for certain games +From the RetroArch Quick Menu + +- Go to Core Options -> Enable HD Packs set to On +- Then save the current configuration for that game under Core Options -> Manage Core Options -> Save Game Options + +How do I add texture packs that can be used by the Mesen Core? +NOTE: On the Steam Deck this could be easier to do in Desktop Mode. + +- All texture packs go into the texture_packs/RetroArch-Mesen/ folder. +- The texture pack have to be extracted from .zip or other compressed format into a folder. +- The name of the folder must be the same name as that of the rom file the texture pack is for. +Example: + +You want apply a texture pack to a game called ScaryCastle USA.nes and you have downloaded the ScaryCastle TexturePACK HD.zip. + +- Extract the ScaryCastle TexturePACK HD.zip +- Move the extracted ScaryCastle TexturePACK HD folder into texture_packs/RetroArch-Mesen/ +- Rename the ScaryCastle TexturePACK HD folder so it has the same name as the rom ScaryCastle USA without the .nes file extension. +- Start up RetroDECK and select the ScaryCastle nes games. +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 + +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 new file mode 100644 index 00000000..6cfe0670 --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-Mupen64Plus-textures.txt @@ -0,0 +1,30 @@ +RetroArch - N64 - Mupen64Plus-Next + +The directory 'texture_packs/RetroArch-Mupen64Plus/' corresponds to the '/retroarch/system/Mupen64plus/' folder. + +Please note that some texture packs may be designed for a specific version or region of the game. Ensure you have the correct ROM and textures for it. + +To enable Texture Packs in the Mupen64Plus-Next core for certain games, follow these steps: + +1. Open the RetroArch Quick Menu. +2. Navigate to Core Options -> GLideN64. +3. Set 'Use High-Res Textures', 'Cache Textures', 'Use High-Res Full Alpha Channel', and 'Use Hi-Res Storage' to On. +4. Save the current configuration for that game under Core Options -> Manage Core Options -> Save Game Options. + +Optionally, you can set 'Use High-Res Texture Cache Compression' to On to compress uncompressed HD Textures into .hts files. + +To add texture packs that can be used by the Mupen64Plus-Next Core: + +Note: On the Steam Deck, this could be easier to do in Desktop Mode. + +1. All texture packs go into the 'texture_packs//RetroArch-Mupen64Plus/hires_texture/' or 'texture_packs/RetroArch-Mupen64Plus/cache/' folder. +2. The texture pack must be extracted from .zip or other compressed format into a folder. + +For compressed textures stored in .hts files, place them in the 'texture_packs/RetroArch-Mupen64Plus/cache/' folder. + +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 + +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 new file mode 100644 index 00000000..807513b7 --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-PCSX2-textures.txt @@ -0,0 +1,26 @@ +PCSX2 - Playstation 2 + +The directory '~/retrodeck/texture_packs/PCSX2/' corresponds to the '/PCSX2/textures/' folder in PCSX2. + +Please note that some texture packs may be designed for a specific version or region of a game. Ensure you have the correct game and textures for it. + +Also, keep in mind that 'TITLEID' is different for every game. + +To enable Custom Textures, follow these steps: + +1. Open up PCSX2 inside RetroDECK Configurator by pressing 'Open Emulator' - 'PCSX2'. +2. Press 'Settings' -> 'Graphics'. +3. Set 'Load Textures' and 'Async Texture Loading' to On. + +To add texture packs, you'll need the texture pack files. On the Steam Deck, this could be easier to do in Desktop Mode. + +For direct texture folder: + +1. Extract any texture pack files from compressed .zip or any other format into folders. +2. Go into '~/retrodeck/texture_packs/PCSX2/'. The folders are all named by 'TITLEID'. +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 + +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 new file mode 100644 index 00000000..6fabb0e4 --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-PPSSPP-textures.txt @@ -0,0 +1,26 @@ +PPSSPP - PSP + +The directory '~/retrodeck/texture_packs/ppsspp/' corresponds to the '/PSP/TEXTURES/' folder in PPSSPP. + +Please note that some texture packs may be designed for a specific version or region of the game. Ensure you have the correct ROM and textures for it. + +Also, keep in mind that 'TITLEID' is different for every game. + +To enable Custom Textures, follow these steps: + +1. Open up PPSSPP inside RetroDECK Configurator by pressing 'Open Emulator' - 'PPSSPP'. +2. Press 'Settings' -> 'Tools' -> 'Developer Tools'. +3. Set 'Replace Textures' to On. + +To add texture packs, you'll need the texture pack files. On the Steam Deck, this could be easier to do in Desktop Mode. + +For adding textures: + +1. Extract any texture pack files from compressed .zip or any other format into folders. +2. Go into '~/retrodeck/texture_packs/ppsspp/'. The folders are all named by 'TITLEID'. +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 + +The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-citra-mods.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-citra-mods.txt new file mode 100644 index 00000000..8918ba2d --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-citra-mods.txt @@ -0,0 +1,19 @@ +There are two ways of adding mods into Citra + +From Citra +- Extract any mod from compressed .zip or any other format to folders. +- Open up Citra inside RetroDECK Configurator by pressing Open Emulator - Citra. +- Right click on the game you want to add mods into. +- Click on Open Mods Location. +- Paste the mod files inside that directory, each folder is stored by the TITLLEID of the game. +- Quit Citra + +From the mod folder directly +- Extract any mod files from compressed .zip or any other format into folders. +- Go into ~/retrodeck/mods/citra/. The folders are all named by TITLEID. +- Past the mods into the right ~/retrodeck/mods/yuzu/ folder. + +Related wiki article can be found here: +https://github.com/XargonWan/RetroDECK/wiki/Citra%3A-Mods#citra---3ds + +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 new file mode 100644 index 00000000..33a50c8c --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-dolphin-mods.txt @@ -0,0 +1,19 @@ +Prerequisites +- Open up Dolphin inside RetroDECK Configurator by pressing Open Emulator - Dolphin. +- Press Options -> Graphic Settings +- Enable Graphics Mods and set it to On. + +Installation +- Extract any mod files from compressed .zip or any other format into folders. +- Go into mods folders, they contain folders that are all named by GAME_ID. ~/retrodeck/mods/dolphin/. +- Move the mods into the right folder: ~/retrodeck/mods/dolphin/ + +Notes: +- The ~/retrodeck/mods/dolphin/ that represents the /load/GraphicMods folder. +- Some texture packs could made for a specific version or region of a game. Make sure you have the right game and textures for it. +- 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 + +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 new file mode 100644 index 00000000..1bcbbc05 --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-primehack-mods.txt @@ -0,0 +1,19 @@ +Prerequisites +- Open up Primehack inside RetroDECK Configurator by pressing Open Emulator - Primehack. +- Press Options -> Graphic Settings +- Enable Graphics Mods and set it to On. + +Installation +- Extract any mod files from compressed .zip or any other format into folders. +- Go into mods folders, they contain folders that are all named by GAME_ID. ~/retrodeck/mods/primehack/. +- Move the mods into the right folder: ~/retrodeck/mods/primehack/ + +Notes: +- The ~/retrodeck/mods/primehack/ that represents the /load/GraphicMods folder. +- Some texture packs could made for a specific version or region of a game. Make sure you have the right game and textures for it. +- 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 + +The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/helper_files/how-to-install-yuzu-mods.txt b/emu-configs/defaults/retrodeck/helper_files/how-to-install-yuzu-mods.txt new file mode 100644 index 00000000..1f41c698 --- /dev/null +++ b/emu-configs/defaults/retrodeck/helper_files/how-to-install-yuzu-mods.txt @@ -0,0 +1,25 @@ +There are two ways of adding mods into Yuzu + +From Yuzu directly +- Extract any mod files from compressed .zip or any other format to folders. +- Open up Yuzu inside RetroDECK Configurator by pressing Open Emulator - Yuzu. +- Right click on the game you want to add mods into. +- Click on Open Mod Data Destination. +- Paste the mod folders inside that directory. +- Right clicking on the game and selecting Properties. +- Enable the mods you want to enable by pressing the checkboxes in the Add-Ons tab and press OK. +- Quit Yuzu + +From the mods/yuzu folder +- Extract any mod files from compressed .zip or any other format into folders. +- Go into ~/retrodeck/mods/yuzu/ and file the right folder for the game you want to add mods to. The folders are all named by TITLEID. +- Move those folders into ~/retrodeck/mods/yuzu/ +- Open up Yuzu inside RetroDECK Configurator by pressing Open Emulator - Yuzu. +- Right clicking on the game and selecting Properties. +- Enable the mods you want to enable by pressing the checkboxes in the Add-Ons tab and press OK. +- Quit Yuzu + +Related wiki article can be found here: +https://github.com/XargonWan/RetroDECK/wiki/Yuzu%3A-Mods + +The RetroDECK Team \ No newline at end of file diff --git a/emu-configs/defaults/retrodeck/presets/gba_presets.cfg b/emu-configs/defaults/retrodeck/presets/gba_presets.cfg index dc48d86d..21787a86 100644 --- a/emu-configs/defaults/retrodeck/presets/gba_presets.cfg +++ b/emu-configs/defaults/retrodeck/presets/gba_presets.cfg @@ -2,12 +2,13 @@ config_file_format^retroarch target_file^/var/config/retroarch/config/mGBA/gba.cfg defaults_file^$emuconfigs/retroarch/retroarch.cfg change^borders^aspect_ratio_index^23 -change^borders^custom_viewport_height^600 -change^borders^custom_viewport_width^900 -change^borders^custom_viewport_x^190 -change^borders^custom_viewport_y^37 -change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gba.cfg -change^borders^input_overlay_aspect_adjust_landscape^0.105000 +change^borders^custom_viewport_height^640 +change^borders^custom_viewport_width^960 +change^borders^custom_viewport_x^160 +change^borders^custom_viewport_y^0 change^borders^input_overlay_enable^true -change^borders^input_overlay_scale_landscape^1.140000 +change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gba.cfg +change^borders^input_overlay_aspect_adjust_landscape^0.110000 +change^borders^input_overlay_scale_landscape^1.2150000 +change^borders^input_overlay_y_offset_landscape^0.020000 enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Gambatte/gbc.rmp diff --git a/emu-configs/defaults/retrodeck/presets/gbc_presets.cfg b/emu-configs/defaults/retrodeck/presets/gbc_presets.cfg index c691b38d..cd24b9e7 100644 --- a/emu-configs/defaults/retrodeck/presets/gbc_presets.cfg +++ b/emu-configs/defaults/retrodeck/presets/gbc_presets.cfg @@ -10,5 +10,5 @@ change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gbc. change^borders^input_overlay_aspect_adjust_landscape^0.110000 change^borders^input_overlay_enable^true change^borders^input_overlay_scale_landscape^1.205000 -change^borders^input_overlay_y_offset_landscape^0.005000 +change^borders^input_overlay_y_offset_landscape^-0.040000 enable^nintendo_button_layout^/var/config/retroarch/config/remaps/Gambatte/gbc.rmp diff --git a/emu-configs/defaults/retrodeck/presets/gg_presets.cfg b/emu-configs/defaults/retrodeck/presets/gg_presets.cfg index 1fc0ebb7..f6b8529a 100644 --- a/emu-configs/defaults/retrodeck/presets/gg_presets.cfg +++ b/emu-configs/defaults/retrodeck/presets/gg_presets.cfg @@ -2,10 +2,12 @@ config_file_format^retroarch target_file^/var/config/retroarch/config/Genesis Plus GX/gg.cfg defaults_file^$emuconfigs/retroarch/retroarch.cfg change^borders^aspect_ratio_index^23 -change^borders^custom_viewport_width^800 -change^borders^custom_viewport_x^240 -change^borders^custom_viewport_y^43 +change^borders^custom_viewport_width^960 +change^borders^custom_viewport_height^720 +change^borders^custom_viewport_x^160 +change^borders^custom_viewport_y^24 change^borders^input_overlay^/var/config/retroarch/overlays/borders/pegasus/gg.cfg -change^borders^input_overlay_aspect_adjust_landscape^-0.080000 +change^borders^input_overlay_aspect_adjust_landscape^0.110000 change^borders^input_overlay_enable^true -change^borders^input_overlay_scale_landscape^1.345000 +change^borders^input_overlay_scale_landscape^1.350000 +change^borders^input_overlay_y_offset_landscape^0.020000 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 d5a1be95..aaa8ad51 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg +++ b/emu-configs/defaults/retrodeck/reference_lists/helper_files_list.cfg @@ -2,4 +2,17 @@ # FILE NAME^DESTINATION # The destination can be an internal variable name like $roms_folder if needed # The FILE name can have spaces in it, but the DESTINATION cannot, even in variable form -RetroDECK Example Readme.txt^$rdhome + +# mods +how-to-install-citra-mods.txt^$mods_folder/Citra +how-to-install-dolphin-mods.txt^$mods_folder/Dolphin +how-to-install-primehack-mods.txt^$mods_folder/Primehack +how-to-install-yuzu-mods.txt^$mods_folder/Yuzu + +# textures +how-to-install-Mesen-textures.txt^$texture_packs_folder/RetroArch-Mesen +how-to-install-PPSSPP-textures.txt^$texture_packs_folder/PPSSPP +how-to-install-PCSX2-textures.txt^$texture_packs_folder/PCSX2 +how-to-install-Mupen64Plus-textures.txt^$texture_packs_folder/RetroArch-Mupen64Plus/cache +how-to-install-Mupen64Plus-textures.txt^$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture +how-to-install-Duckstation-textures.txt^$texture_packs_folder/Duckstation diff --git a/emu-configs/defaults/retrodeck/reference_lists/retrodeck_credits.txt b/emu-configs/defaults/retrodeck/reference_lists/retrodeck_credits.txt index 46e31fbd..eb6c994b 100644 --- a/emu-configs/defaults/retrodeck/reference_lists/retrodeck_credits.txt +++ b/emu-configs/defaults/retrodeck/reference_lists/retrodeck_credits.txt @@ -13,11 +13,14 @@ Creator of the RetroDECK configurator and various awesome features. Lazorne Community management/outreach, testing, documentation, feature suggestions and some design. +dottormac +Beta Tester + +LX32 +Junior code contributor, Beta Tester + Collaborators -Niroku / Atari -Helps with community management, is also part of Batocera - Leon Styhre Maker of EmulationStation Desktop Edition @@ -27,7 +30,7 @@ Theme creator for ES-DE and AmberELEC Additional credits RavenKilit -Did some code and testning, contributed to AmberELEC +Former Beta Tester and AmberELEC contributor MorGuux Made the RetroDECK steamdb graphics for the old logo @@ -38,11 +41,14 @@ Made the new logo and steamdb graphics teotwaki Generous cloud hosting sponsor +Niroku / Atari +Helps with community management, is also part of Batocera + Gabeboii Webmaster Draco -Server Administration +Former server admiistrator and code consultant ItzSelenux Maker of pixelitos @@ -56,7 +62,7 @@ Special Thanks We want give special thanks to: Our Patreons that keeps the build servers running and provide feedback. - All related emulation projects. + All related emulation projects, such as Batocera and AmberELEC where we are taking our inspiration. All people that have put both time and money into emulation projects. All the users who help others with support, guidance and good spirit. All the users who help with testing and reporting issues. diff --git a/emu-configs/ppssppsdl/ppsspp.ini b/emu-configs/ppssppsdl/ppsspp.ini index 66fa6b67..64135e0f 100644 --- a/emu-configs/ppssppsdl/ppsspp.ini +++ b/emu-configs/ppssppsdl/ppsspp.ini @@ -516,3 +516,19 @@ VRCameraPitch = 0 VRHeadRotationScale = 5.000000 VRHeadRotationEnabled = False VRHeadRotationSmoothing = False +[Achievements] +AchievementsEnable = False +AchievementsChallengeMode = False +AchievementsEncoreMode = False +AchievementsUnofficial = False +AchievementsLogBadMemReads = False +AchievementsUserName = +AchievementsSoundEffects = True +AchievementsUnlockAudioFile = +AchievementsLeaderboardSubmitAudioFile = +AchievementsLeaderboardTrackerPos = 3 +AchievementsLeaderboardStartedOrFailedPos = 3 +AchievementsLeaderboardSubmittedPos = 3 +AchievementsProgressPos = 3 +AchievementsChallengePos = 3 +AchievementsUnlockedPos = 4 diff --git a/emu-configs/retroarch/retroarch.cfg b/emu-configs/retroarch/retroarch.cfg index 3bda1f75..2fc14c02 100644 --- a/emu-configs/retroarch/retroarch.cfg +++ b/emu-configs/retroarch/retroarch.cfg @@ -80,7 +80,7 @@ cheevos_visibility_account = "true" cheevos_visibility_mastery = "true" cheevos_visibility_summary = "1" cheevos_visibility_unlock = "true" -config_save_on_exit = "false" +config_save_on_exit = "true" content_database_path = "/app/share/libretro/database/rdb" content_favorites_directory = "default" content_favorites_path = "/var/config/retroarch/content_favorites.lpl" diff --git a/es-configs/es_find_rules.xml b/es-configs/es_find_rules.xml index 13dd5dc2..8990e20b 100644 --- a/es-configs/es_find_rules.xml +++ b/es-configs/es_find_rules.xml @@ -15,16 +15,17 @@ RetroArch-Linux-x86_64.AppImage - /var/lib/flatpak/exports/bin/org.libretro.RetroArch - ~/.local/share/flatpak/exports/bin/org.libretro.RetroArch ~/Applications/RetroArch-Linux*.AppImage + ~/.local/share/applications/RetroArch-Linux*.AppImage ~/.local/bin/RetroArch-Linux*.AppImage ~/bin/RetroArch-Linux*.AppImage + /var/lib/flatpak/exports/bin/org.libretro.RetroArch + ~/.local/share/flatpak/exports/bin/org.libretro.RetroArch - + /app/share/libretro/cores ~/snap/retroarch/current/.config/retroarch/cores @@ -69,11 +70,12 @@ net.cebix.basilisk - /var/lib/flatpak/exports/bin/net.cebix.basilisk - ~/.local/share/flatpak/exports/bin/net.cebix.basilisk ~/Applications/BasiliskII*.AppImage + ~/.local/share/applications/BasiliskII*.AppImage ~/.local/bin/BasiliskII*.AppImage ~/bin/BasiliskII*.AppImage + /var/lib/flatpak/exports/bin/net.cebix.basilisk + ~/.local/share/flatpak/exports/bin/net.cebix.basilisk @@ -106,9 +108,11 @@ ~/Applications/Cemu*.AppImage + ~/.local/share/applications/Cemu*.AppImage ~/.local/bin/Cemu*.AppImage ~/bin/Cemu*.AppImage ~/Applications/Cemu/Cemu + ~/.local/share/applications/Cemu/Cemu ~/.local/bin/Cemu/Cemu ~/bin/Cemu/Cemu @@ -122,6 +126,10 @@ org.citra_emu.citra + ~/Applications/citra*.AppImage + ~/.local/share/applications/citra*.AppImage + ~/.local/bin/citra*.AppImage + ~/bin/citra*.AppImage /var/lib/flatpak/exports/bin/org.citra_emu.citra ~/.local/share/flatpak/exports/bin/org.citra_emu.citra @@ -133,6 +141,7 @@ ~/Applications/cpcemu/cpcemu + ~/.local/share/applications/cpcemu/cpcemu ~/.local/bin/cpcemu/cpcemu ~/bin/cpcemu/cpcemu @@ -141,6 +150,7 @@ ~/Applications/CSpect/CSpect.exe + ~/.local/share/applications/CSpect/CSpect.exe ~/.local/bin/CSpect/CSpect.exe ~/bin/CSpect/CSpect.exe @@ -163,11 +173,12 @@ org.DolphinEmu.dolphin-emu - /var/lib/flatpak/exports/bin/org.DolphinEmu.dolphin-emu - ~/.local/share/flatpak/exports/bin/org.DolphinEmu.dolphin-emu ~/Applications/Dolphin_Emulator*.AppImage + ~/.local/share/applications/Dolphin_Emulator*.AppImage ~/.local/bin/Dolphin_Emulator*.AppImage ~/bin/Dolphin_Emulator*.AppImage + /var/lib/flatpak/exports/bin/org.DolphinEmu.dolphin-emu + ~/.local/share/flatpak/exports/bin/org.DolphinEmu.dolphin-emu @@ -200,14 +211,16 @@ org.duckstation.DuckStation - /var/lib/flatpak/exports/bin/org.duckstation.DuckStation - ~/.local/share/flatpak/exports/bin/org.duckstation.DuckStation ~/Applications/duckstation-nogui*.AppImage + ~/.local/share/applications/duckstation-nogui*.AppImage ~/.local/bin/duckstation-nogui*.AppImage ~/bin/duckstation-nogui*.AppImage ~/Applications/duckstation-qt*.AppImage + ~/.local/share/applications/duckstation-qt*.AppImage ~/.local/bin/duckstation-qt*.AppImage ~/bin/duckstation-qt*.AppImage + /var/lib/flatpak/exports/bin/org.duckstation.DuckStation + ~/.local/share/flatpak/exports/bin/org.duckstation.DuckStation @@ -217,6 +230,7 @@ ~/Applications/easyrpg/easyrpg-player + ~/.local/share/applications/easyrpg/easyrpg-player ~/.local/bin/easyrpg/easyrpg-player ~/bin/easyrpg/easyrpg-player @@ -228,6 +242,7 @@ ~/Applications/fbneo/fbneo + ~/.local/share/applications/fbneo/fbneo ~/.local/bin/fbneo/fbneo ~/bin/fbneo/fbneo @@ -239,11 +254,12 @@ org.flycast.Flycast - /var/lib/flatpak/exports/bin/org.flycast.Flycast - ~/.local/share/flatpak/exports/bin/org.flycast.Flycast ~/Applications/flycast*.AppImage + ~/.local/share/applications/flycast*.AppImage ~/.local/bin/flycast*.AppImage ~/bin/flycast*.AppImage + /var/lib/flatpak/exports/bin/org.flycast.Flycast + ~/.local/share/flatpak/exports/bin/org.flycast.Flycast @@ -275,11 +291,12 @@ gargoyle - /var/lib/flatpak/exports/bin/io.github.garglk.Gargoyle - ~/.local/share/flatpak/exports/bin/io.github.garglk.Gargoyle ~/Applications/Gargoyle*.AppImage + ~/.local/share/applications/Gargoyle*.AppImage ~/.local/bin/Gargoyle*.AppImage ~/bin/Gargoyle*.AppImage + /var/lib/flatpak/exports/bin/io.github.garglk.Gargoyle + ~/.local/share/flatpak/exports/bin/io.github.garglk.Gargoyle @@ -289,6 +306,7 @@ ~/Applications/gearboy/gearboy + ~/.local/share/applications/gearboy/gearboy ~/.local/bin/gearboy/gearboy ~/bin/gearboy/gearboy @@ -297,6 +315,7 @@ ~/Applications/gopher2600/gopher2600_linux_amd64 + ~/.local/share/applications/gopher2600/gopher2600_linux_amd64 ~/.local/bin/gopher2600/gopher2600_linux_amd64 ~/bin/gopher2600/gopher2600_linux_amd64 @@ -318,6 +337,7 @@ ~/Applications/hypseus-singe/hypseus.bin + ~/.local/share/applications/hypseus-singe/hypseus.bin ~/.local/bin/hypseus-singe/hypseus.bin ~/bin/hypseus-singe/hypseus.bin @@ -329,6 +349,7 @@ ~/Applications/lightspark/lightspark + ~/.local/share/applications/lightspark/lightspark ~/.local/bin/lightspark/lightspark ~/bin/lightspark/lightspark @@ -340,6 +361,7 @@ ~/Applications/linapple/linapple + ~/.local/share/applications/linapple/linapple ~/.local/bin/linapple/linapple ~/bin/linapple/linapple @@ -385,11 +407,12 @@ io.mgba.mGBA - /var/lib/flatpak/exports/bin/io.mgba.mGBA - ~/.local/share/flatpak/exports/bin/io.mgba.mGBA ~/Applications/mGBA*.AppImage + ~/.local/share/applications/mGBA*.AppImage ~/.local/bin/mGBA*.AppImage ~/bin/mGBA*.AppImage + /var/lib/flatpak/exports/bin/io.mgba.mGBA + ~/.local/share/flatpak/exports/bin/io.mgba.mGBA @@ -430,6 +453,7 @@ ~/Applications/oricutron/Oricutron + ~/.local/share/applications/oricutron/Oricutron ~/.local/bin/oricutron/Oricutron ~/bin/oricutron/Oricutron @@ -463,8 +487,8 @@ pico8 - ~/retrodeck/bios/pico-8/pico8 ~/Applications/pico-8/pico8 + ~/.local/share/applications/pico-8/pico8 ~/.local/bin/pico-8/pico8 ~/bin/pico-8/pico8 @@ -472,11 +496,12 @@ - /var/lib/flatpak/exports/bin/org.purei.Play - ~/.local/share/flatpak/exports/bin/org.purei.Play ~/Applications/Play!*.AppImage + ~/.local/share/applications/Play!*.AppImage ~/.local/bin/Play!*.AppImage ~/bin/Play!*.AppImage + /var/lib/flatpak/exports/bin/org.purei.Play + ~/.local/share/flatpak/exports/bin/org.purei.Play @@ -516,6 +541,7 @@ ~/Applications/punes/punes + ~/.local/share/applications/punes/punes ~/.local/bin/punes/punes ~/bin/punes/punes @@ -527,6 +553,7 @@ ~/Applications/redream/redream + ~/.local/share/applications/redream/redream ~/.local/bin/redream/redream ~/bin/redream/redream @@ -538,11 +565,12 @@ com.github.Rosalie241.RMG - /var/lib/flatpak/exports/bin/com.github.Rosalie241.RMG - ~/.local/share/flatpak/exports/bin/com.github.Rosalie241.RMG ~/Applications/RMG*.AppImage + ~/.local/share/applications/RMG*.AppImage ~/.local/bin/RMG*.AppImage ~/bin/RMG*.AppImage + /var/lib/flatpak/exports/bin/com.github.Rosalie241.RMG + ~/.local/share/flatpak/exports/bin/com.github.Rosalie241.RMG @@ -553,11 +581,12 @@ net.rpcs3.RPCS3 - /var/lib/flatpak/exports/bin/net.rpcs3.RPCS3 - ~/.local/share/flatpak/exports/bin/net.rpcs3.RPCS3 ~/Applications/rpcs3*.AppImage + ~/.local/share/applications/rpcs3*.AppImage ~/.local/bin/rpcs3*.AppImage ~/bin/rpcs3*.AppImage + /var/lib/flatpak/exports/bin/net.rpcs3.RPCS3 + ~/.local/share/flatpak/exports/bin/net.rpcs3.RPCS3 @@ -567,6 +596,7 @@ ~/Applications/ruffle/ruffle + ~/.local/share/applications/ruffle/ruffle ~/.local/bin/ruffle/ruffle ~/bin/ruffle/ruffle @@ -582,9 +612,11 @@ /var/lib/flatpak/exports/bin/org.ryujinx.Ryujinx ~/.local/share/flatpak/exports/bin/org.ryujinx.Ryujinx ~/Applications/publish/Ryujinx + ~/.local/share/applications/publish/Ryujinx ~/.local/bin/publish/Ryujinx ~/bin/publish/Ryujinx ~/Applications/publish/Ryujinx.Ava + ~/.local/share/applications/publish/Ryujinx.Ava ~/.local/bin/publish/Ryujinx.Ava ~/bin/publish/Ryujinx.Ava @@ -618,6 +650,7 @@ ~/Applications/sdl2trs/sdl2trs + ~/.local/share/applications/sdl2trs/sdl2trs ~/.local/bin/sdl2trs/sdl2trs ~/bin/sdl2trs/sdl2trs @@ -629,6 +662,7 @@ ~/Applications/SheepShaver*.AppImage + ~/.local/share/applications/SheepShaver*.AppImage ~/.local/bin/SheepShaver*.AppImage ~/bin/SheepShaver*.AppImage @@ -640,6 +674,7 @@ ~/Applications/simcoupe/simcoupe + ~/.local/share/applications/simcoupe/simcoupe ~/.local/bin/simcoupe/simcoupe ~/bin/simcoupe/simcoupe @@ -701,6 +736,7 @@ ~/Applications/Supermodel/supermodel + ~/.local/share/applications/Supermodel/supermodel ~/.local/bin/Supermodel/supermodel ~/bin/Supermodel/supermodel @@ -712,6 +748,7 @@ ~/Applications/dolphin-emu-triforce*.AppImage + ~/.local/share/applications/dolphin-emu-triforce*.AppImage ~/.local/bin/dolphin-emu-triforce*.AppImage ~/bin/dolphin-emu-triforce*.AppImage @@ -720,6 +757,7 @@ ~/Applications/tsugaru/Tsugaru_CUI + ~/.local/share/applications/tsugaru/Tsugaru_CUI ~/.local/bin/tsugaru/Tsugaru_CUI ~/bin/tsugaru/Tsugaru_CUI @@ -761,6 +799,7 @@ ~/Applications/Vita3K/Vita3K + ~/.local/share/applications/Vita3K/Vita3K ~/.local/bin/Vita3K/Vita3K ~/bin/Vita3K/Vita3K @@ -772,11 +811,12 @@ app.xemu.xemu - /var/lib/flatpak/exports/bin/app.xemu.xemu - ~/.local/share/flatpak/exports/bin/app.xemu.xemu ~/Applications/xemu*.AppImage + ~/.local/share/applications/xemu*.AppImage ~/.local/bin/xemu*.AppImage ~/bin/xemu*.AppImage + /var/lib/flatpak/exports/bin/app.xemu.xemu + ~/.local/share/flatpak/exports/bin/app.xemu.xemu @@ -786,6 +826,7 @@ ~/Applications/xroar/xroar + ~/.local/share/applications/xroar/xroar ~/.local/bin/xroar/xroar ~/bin/xroar/xroar @@ -797,11 +838,24 @@ org.yuzu_emu.yuzu - /var/lib/flatpak/exports/bin/org.yuzu_emu.yuzu - ~/.local/share/flatpak/exports/bin/org.yuzu_emu.yuzu ~/Applications/yuzu*.AppImage + ~/.local/share/applications/yuzu*.AppImage ~/.local/bin/yuzu*.AppImage ~/bin/yuzu*.AppImage + /var/lib/flatpak/exports/bin/org.yuzu_emu.yuzu + ~/.local/share/flatpak/exports/bin/org.yuzu_emu.yuzu + + + + + + zesarux + + + ~/Applications/ZEsarUX/zesarux + ~/.local/share/applications/ZEsarUX/zesarux + ~/.local/bin/ZEsarUX/zesarux + ~/bin/ZEsarUX/zesarux \ No newline at end of file diff --git a/es-configs/es_settings.xml b/es-configs/es_settings.xml index 9364318d..93de24b3 100644 --- a/es-configs/es_settings.xml +++ b/es-configs/es_settings.xml @@ -25,6 +25,7 @@ + @@ -51,6 +52,7 @@ + @@ -73,6 +75,7 @@ + @@ -80,6 +83,7 @@ + @@ -106,9 +110,8 @@ - - + @@ -117,14 +120,20 @@ + + + + + + - + @@ -135,11 +144,11 @@ - - + + - + \ No newline at end of file diff --git a/es-configs/es_systems.xml b/es-configs/es_systems.xml index 4cd68548..736fafee 100644 --- a/es-configs/es_systems.xml +++ b/es-configs/es_systems.xml @@ -506,6 +506,18 @@ easyrpg easyrpg + + emulators + Emulators + %ROMPATH%/emulators + .AppImage .desktop .sh + %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM% + %RUNINBACKGROUND% %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM% + %EMULATOR_OS-SHELL% -c "%ROM%" + %RUNINBACKGROUND% %EMULATOR_OS-SHELL% -c "%ROM%" + pcwindows + emulators + famicom Nintendo Family Computer @@ -582,6 +594,17 @@ fmtowns fmtowns +--> + gameandwatch @@ -614,6 +637,7 @@ %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_wide_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gearsystem_libretro.so %ROM% %EMULATOR_RETROARCH% -L %CORE_RETROARCH%/smsplus_libretro.so %ROM% + gamegear gamegear @@ -699,6 +723,17 @@ genesis genesis + gx4000 Amstrad GX4000 @@ -750,6 +785,17 @@ lcdgames, gameandwatch lcdgames + lutro Lutro Game Engine @@ -1242,8 +1288,9 @@ ports Ports %ROMPATH%/ports - .desktop .sh - %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM% + .AppImage .desktop .sh + %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM% + %EMULATOR_OS-SHELL% -c "%ROM%" pc, pcwindows ports @@ -1269,7 +1316,8 @@ ps3 ps3 - + + --> psp Sony PlayStation Portable @@ -1402,6 +1451,17 @@ scummvm scummvm + sega32x Sega Mega Drive 32X @@ -1733,6 +1793,17 @@ virtualboy virtualboy + x68000 x68000 @@ -1853,6 +1925,18 @@ zx81 zx81 + zxspectrum Sinclair ZX Spectrum @@ -1863,13 +1947,4 @@ zxspectrum zxspectrum - - + \ No newline at end of file diff --git a/es-configs/tools-gamelist.xml b/es-configs/tools-gamelist.xml deleted file mode 100644 index c1a8f052..00000000 --- a/es-configs/tools-gamelist.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - ./configurator.sh - RetroDECK Configurator - Change settings, move folders and more! - true - true - - \ No newline at end of file diff --git a/flathub.json b/flathub.json deleted file mode 100644 index 0b69b95e..00000000 --- a/flathub.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "only-arches": ["x86_64"] -} \ No newline at end of file diff --git a/flathub.yml b/flathub.yml deleted file mode 100644 index 8a0e16b3..00000000 --- a/flathub.yml +++ /dev/null @@ -1,43 +0,0 @@ -app-id: net.retrodeck.retrodeck -runtime: org.kde.Platform -runtime-version: 5.15-22.08 -sdk: org.kde.Sdk -sdk-extensions: - - org.freedesktop.Sdk.Extension.llvm14 # Needed for rpcs3 -base: io.qt.qtwebengine.BaseApp # Needed for Yuzu -base-version: 5.15-22.08 # Needed for Yuzu -command: retrodeck.sh - -finish-args: - - --socket=fallback-x11 - - --socket=wayland - - --socket=pulseaudio - - --share=ipc - - --share=network - - --device=all - - --filesystem=home # Needed to be able to relocate / remove / create symlink at ~/retrodeck - - --filesystem=/run/media - - --filesystem=/media - - --allow=multiarch - - --talk-name=org.freedesktop.ScreenSaver - - --talk-name=org.freedesktop.PowerManagement.Inhibit - - --talk-name=org.freedesktop.login1.Manager - - --talk-name=org.freedesktop.portal.Flatpak.UpdateMonitor - - --filesystem=xdg-run/app/com.discordapp.Discord:create - - --filesystem=xdg-config/gtk-3.0:ro - # Dolphin - - --allow=bluetooth - # PPSSPP - # It allows an SDL application to specify its window class, which can be useful for window managers and desktop environments to identify and group similar windows - - --env=SDL_VIDEO_X11_WMCLASS=net.retrodeck.retrodeck - - --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.retrodeck - -modules: - - name: retrodeck - buildsystem: simple - build-commands: - - cp -rn files/* /app - sources: - - type: archive - url: https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.tar.gz - sha256: __SHA__ \ No newline at end of file diff --git a/functions/checks.sh b/functions/checks.sh index 227be3fd..bb93b322 100644 --- a/functions/checks.sh +++ b/functions/checks.sh @@ -83,7 +83,8 @@ check_for_version_update() { local latest_cooker_download=$(curl --silent https://api.github.com/repos/XargonWan/$update_repo/releases/latest | grep '"browser_download_url":' | sed -E 's/.*"([^"]+)".*/\1/') mkdir -p "$rdhome/RetroDECK_Updates" wget -P "$rdhome/RetroDECK_Updates" $latest_cooker_download - flatpak-spawn --host flatpak install --user --bundle --noninteractive -y "$rdhome/RetroDECK_Updates/RetroDECK.flatpak" + 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 \ diff --git a/functions/dialogs.sh b/functions/dialogs.sh index 985f5458..00393287 100644 --- a/functions/dialogs.sh +++ b/functions/dialogs.sh @@ -169,10 +169,13 @@ changelog_dialog() { else local version_changelog=$(xml sel -t -m "//release[@version='$1']/description" -v . -n $rd_appdata | tr -s '\n' | sed 's/^\s*//') - zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \ + 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" + + zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \ --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \ --title "RetroDECK Changelogs" \ - --text="In RetroDECK version $1, the following changes were made:\n$version_changelog" + --filename="/var/config/retrodeck/changelog-partial.txt" fi } diff --git a/functions/functions.sh b/functions/functions.sh index 7bcc6499..e6b6f9ed 100644 --- a/functions/functions.sh +++ b/functions/functions.sh @@ -422,6 +422,7 @@ finit() { ( prepare_emulator "reset" "all" build_retrodeck_current_presets + deploy_helper_files # Optional actions based on user choices if [[ "$finit_options_choices" =~ (rpcs3_firmware|Enable All) ]]; then diff --git a/functions/post_update.sh b/functions/post_update.sh index c65bd9f2..69194993 100644 --- a/functions/post_update.sh +++ b/functions/post_update.sh @@ -244,6 +244,7 @@ post_update() { fi update_splashscreens + deploy_helper_files build_retrodeck_current_presets ) | zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \ diff --git a/functions/prepare_emulator.sh b/functions/prepare_emulator.sh index 1b24b608..de1988b7 100644 --- a/functions/prepare_emulator.sh +++ b/functions/prepare_emulator.sh @@ -15,14 +15,14 @@ prepare_emulator() { if [[ "$emulator" == "retrodeck" ]]; then if [[ "$action" == "reset" ]]; then # Update the paths of all folders in retrodeck.cfg and create them - while read -r config_line; do - local current_setting_name=$(get_setting_name "$config_line" "retrodeck") - if [[ ! $current_setting_name =~ (rdhome|sdcard) ]]; then # Ignore these locations - local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "paths") - eval "$current_setting_name=$rdhome/$(basename $current_setting_value)" - mkdir -p "$rdhome/$(basename $current_setting_value)" - fi - done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f') + while read -r config_line; do + local current_setting_name=$(get_setting_name "$config_line" "retrodeck") + if [[ ! $current_setting_name =~ (rdhome|sdcard) ]]; then # Ignore these locations + local current_setting_value=$(get_setting_value "$rd_conf" "$current_setting_name" "retrodeck" "paths") + eval "$current_setting_name=$rdhome/$(basename $current_setting_value)" + mkdir -p "$rdhome/$(basename $current_setting_value)" + fi + done < <(grep -v '^\s*$' $rd_conf | awk '/^\[paths\]/{f=1;next} /^\[/{f=0} f') fi if [[ "$action" == "postmove" ]]; then # Update the paths of any folders that came with the retrodeck folder during a move while read -r config_line; do @@ -116,6 +116,29 @@ prepare_emulator() { dir_prep "$texture_packs_folder/RetroArch-Mesen" "/var/config/retroarch/system/HdPacks" dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/cache" "/var/config/retroarch/system/Mupen64plus/cache" dir_prep "$texture_packs_folder/RetroArch-Mupen64Plus/hires_texture" "/var/config/retroarch/system/Mupen64plus/hires_texture" + + # Reset default preset settings + set_setting_value "$rd_conf" "retroarch" "$(get_setting_value "$rd_defaults" "retroarch" "retrodeck" "cheevos")" "retrodeck" "cheevos" + set_setting_value "$rd_conf" "retroarch" "$(get_setting_value "$rd_defaults" "retroarch" "retrodeck" "cheevos_hardcore")" "retrodeck" "cheevos_hardcore" + set_setting_value "$rd_conf" "gb" "$(get_setting_value "$rd_defaults" "gb" "retrodeck" "borders")" "retrodeck" "borders" + set_setting_value "$rd_conf" "gba" "$(get_setting_value "$rd_defaults" "gba" "retrodeck" "borders")" "retrodeck" "borders" + set_setting_value "$rd_conf" "gbc" "$(get_setting_value "$rd_defaults" "gbc" "retrodeck" "borders")" "retrodeck" "borders" + set_setting_value "$rd_conf" "genesis" "$(get_setting_value "$rd_defaults" "genesis" "retrodeck" "borders")" "retrodeck" "borders" + set_setting_value "$rd_conf" "gg" "$(get_setting_value "$rd_defaults" "gg" "retrodeck" "borders")" "retrodeck" "borders" + set_setting_value "$rd_conf" "n64" "$(get_setting_value "$rd_defaults" "n64" "retrodeck" "borders")" "retrodeck" "borders" + set_setting_value "$rd_conf" "psx_ra" "$(get_setting_value "$rd_defaults" "psx_ra" "retrodeck" "borders")" "retrodeck" "borders" + set_setting_value "$rd_conf" "snes" "$(get_setting_value "$rd_defaults" "snes" "retrodeck" "borders")" "retrodeck" "borders" + set_setting_value "$rd_conf" "genesis" "$(get_setting_value "$rd_defaults" "genesis" "retrodeck" "widescreen")" "retrodeck" "widescreen" + set_setting_value "$rd_conf" "n64" "$(get_setting_value "$rd_defaults" "n64" "retrodeck" "widescreen")" "retrodeck" "widescreen" + set_setting_value "$rd_conf" "psx_ra" "$(get_setting_value "$rd_defaults" "psx_ra" "retrodeck" "widescreen")" "retrodeck" "widescreen" + set_setting_value "$rd_conf" "snes" "$(get_setting_value "$rd_defaults" "snes" "retrodeck" "widescreen")" "retrodeck" "widescreen" + set_setting_value "$rd_conf" "gb" "$(get_setting_value "$rd_defaults" "gb" "retrodeck" "nintendo_button_layout")" "retrodeck" "nintendo_button_layout" + set_setting_value "$rd_conf" "gba" "$(get_setting_value "$rd_defaults" "gba" "retrodeck" "nintendo_button_layout")" "retrodeck" "nintendo_button_layout" + set_setting_value "$rd_conf" "gbc" "$(get_setting_value "$rd_defaults" "gbc" "retrodeck" "nintendo_button_layout")" "retrodeck" "nintendo_button_layout" + set_setting_value "$rd_conf" "n64" "$(get_setting_value "$rd_defaults" "gb" "retrodeck" "nintendo_button_layout")" "retrodeck" "nintendo_button_layout" + set_setting_value "$rd_conf" "snes" "$(get_setting_value "$rd_defaults" "gba" "retrodeck" "nintendo_button_layout")" "retrodeck" "nintendo_button_layout" + set_setting_value "$rd_conf" "retroarch" "$(get_setting_value "$rd_defaults" "retroarch" "retrodeck" "savestate_auto_load")" "retrodeck" "savestate_auto_load" + set_setting_value "$rd_conf" "retroarch" "$(get_setting_value "$rd_defaults" "retroarch" "retrodeck" "savestate_auto_save")" "retrodeck" "savestate_auto_save" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands dir_prep "$bios_folder" "/var/config/retroarch/system" @@ -190,6 +213,10 @@ prepare_emulator() { dir_prep "$logs_folder/citra" "/var/data/citra-emu/log" dir_prep "$mods_folder/Citra" "/var/data/citra-emu/load/mods" dir_prep "$texture_packs_folder/Citra" "/var/data/citra-emu/load/textures" + + # Reset default preset settings + set_setting_value "$rd_conf" "citra" "$(get_setting_value "$rd_defaults" "citra" "retrodeck" "nintendo_button_layout")" "retrodeck" "nintendo_button_layout" + set_setting_value "$rd_conf" "citra" "$(get_setting_value "$rd_defaults" "citra" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands dir_prep "$rdhome/bios/citra/sysdata" "/var/data/citra-emu/sysdata" @@ -237,6 +264,9 @@ prepare_emulator() { dir_prep "$saves_folder/wii/dolphin" "/var/data/dolphin-emu/Wii" dir_prep "$mods_folder/Dolphin" "/var/data/dolphin-emu/Load/GraphicMods" dir_prep "$texture_packs_folder/Dolphin" "/var/data/dolphin-emu/Load/Textures" + + # Reset default preset settings + set_setting_value "$rd_conf" "dolphin" "$(get_setting_value "$rd_defaults" "dolphin" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands dir_prep "$saves_folder/gc/dolphin/EU" "/var/data/dolphin-emu/GC/EUR" @@ -283,6 +313,12 @@ prepare_emulator() { # Shared actions dir_prep "$states_folder/psx/duckstation" "/var/config/duckstation/savestates" # This is hard-coded in Duckstation, always needed dir_prep "$texture_packs_folder/Duckstation" "/var/config/duckstation/textures" + + # Reset default preset settings + set_setting_value "$rd_conf" "duckstation" "$(get_setting_value "$rd_defaults" "duckstation" "retrodeck" "cheevos")" "retrodeck" "cheevos" + set_setting_value "$rd_conf" "duckstation" "$(get_setting_value "$rd_defaults" "duckstation" "retrodeck" "cheevos_hardcore")" "retrodeck" "cheevos_hardcore" + set_setting_value "$rd_conf" "duckstation" "$(get_setting_value "$rd_defaults" "duckstation" "retrodeck" "savestate_auto_save")" "retrodeck" "savestate_auto_save" + set_setting_value "$rd_conf" "duckstation" "$(get_setting_value "$rd_defaults" "duckstation" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands set_setting_value "$duckstationconf" "SearchDirectory" "$bios_folder" "duckstation" "BIOS" @@ -364,6 +400,12 @@ prepare_emulator() { mkdir -pv "$saves_folder/ps2/pcsx2/memcards" mkdir -pv "$states_folder/ps2/pcsx2" dir_prep "$texture_packs_folder/PCSX2" "/var/config/PCSX2/textures" + + # Reset default preset settings + set_setting_value "$rd_conf" "pcsx2" "$(get_setting_value "$rd_defaults" "pcsx2" "retrodeck" "cheevos")" "retrodeck" "cheevos" + set_setting_value "$rd_conf" "pcsx2" "$(get_setting_value "$rd_defaults" "pcsx2" "retrodeck" "cheevos_hardcore")" "retrodeck" "cheevos_hardcore" + set_setting_value "$rd_conf" "pcsx2" "$(get_setting_value "$rd_defaults" "pcsx2" "retrodeck" "savestate_auto_save")" "retrodeck" "savestate_auto_save" + set_setting_value "$rd_conf" "pcsx2" "$(get_setting_value "$rd_defaults" "pcsx2" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands set_setting_value "$pcsx2conf" "Bios" "$bios_folder" "pcsx2" "Folders" @@ -442,6 +484,9 @@ prepare_emulator() { dir_prep "$saves_folder/wii/primehack" "/var/data/primehack/Wii" dir_prep "$mods_folder/Primehack" "/var/data/primehack/Load/GraphicMods" dir_prep "$texture_packs_folder/Primehack" "/var/data/primehack/Load/Textures" + + # Reset default preset settings + set_setting_value "$rd_conf" "primehack" "$(get_setting_value "$rd_defaults" "primehack" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands dir_prep "$saves_folder/gc/primehack/EU" "/var/data/primehack/GC/EUR" @@ -601,6 +646,10 @@ prepare_emulator() { if [ -d $bios_folder/switch ]; then find $bios_folder/switch -xtype l -exec rm {} \; fi + + # Reset default preset settings + set_setting_value "$rd_conf" "yuzu" "$(get_setting_value "$rd_defaults" "yuzu" "retrodeck" "nintendo_button_layout")" "retrodeck" "nintendo_button_layout" + set_setting_value "$rd_conf" "yuzu" "$(get_setting_value "$rd_defaults" "yuzu" "retrodeck" "ask_to_exit")" "retrodeck" "ask_to_exit" fi if [[ "$action" == "postmove" ]]; then # Run only post-move commands dir_prep "$bios_folder/switch/keys" "/var/data/yuzu/keys" @@ -616,4 +665,9 @@ prepare_emulator() { set_setting_value "$yuzuconf" "Screenshots\screenshot_path" "$screenshots_folder" "yuzu" "UI" fi fi + + # Update presets for all emulators after any reset or move + if [[ ! "$emulator" == "retrodeck" ]]; then + build_retrodeck_current_presets + fi } diff --git a/net.retrodeck.retrodeck.appdata.xml b/net.retrodeck.retrodeck.appdata.xml index ec9c96c1..13806397 100644 --- a/net.retrodeck.retrodeck.appdata.xml +++ b/net.retrodeck.retrodeck.appdata.xml @@ -65,45 +65,72 @@ GPL-3.0 CC0-1.0 - + + https://github.com/XargonWan/RetroDECK/releases/tag/0.7.2b + +

Updates:

+
    +
  • All Emulators, ES-DE and the included theme have been updated.
  • +
+

Bugfixes and other changes:

+
    +
  • Added helper .txt files to the mod and texture pack folders.
  • +
  • The builtin changelog is now scrollable.
  • +
  • The loading bar color is after much debate once again red.
  • +
  • Gameboy Advanced and Game Gear integer scaling changes based on feedback.
  • +
  • Optimized and retooled the patching process for ES-DE.
  • +
  • Various fixes and optimizations to the RetroDECK build process.
  • +
+

Known issues:

+
    +
  • PPSSPP now have Retroachievements, but it is right now not configurable in the configurator (as it works a bit different the other emulators), we hope to have a solution for it at a later date. You can still login / logout / enable hardcore mode normally from the PPSSPP interface.
  • +
  • Quitting the RetroArch GB core with the radial function makes the core swap the palette.
  • +
  • Borders sometimes are disappearing, a possible workaround is to reset RetroArch from the configurator.
  • +
+
+
+ https://github.com/XargonWan/RetroDECK/releases/tag/0.7.1b

Information:

    -
  • Steam Deck users update RetroDECK from Discover in Desktop Mode.
  • -
  • Don't forget to reapply the latest controller layout: Go into the Templates tab and reapply the new profile ending with 0.7.1b (there is no need to reinstall the entire layout from the Configurator).
  • +
  • Steam Deck users update RetroDECK from Discover in Desktop Mode.
  • +
  • Don't forget to reapply the latest controller layout: Go into the Templates tab and reapply the new profile ending with 0.7.1b (there is no need to reinstall the entire layout from the Configurator).
-

Bug fixes:

+

Bug fixes and other changes:

    -
  • Fixed an issue to make sure the RD controller layout file at update with each RD update.
  • -
  • Fixed an issue with PPSSPP that made "L" and "R" incorrectly bound.
  • -
  • Fixed an issue in the Configurator that prevented the Yuzu preset for swapping A/B X/Y from working.
  • -
  • Fixed an notification issues on the latest SteamOS Beta releases.
  • -
  • Fixed an rsync permissions issue in the RetroDECK Framework.
  • -
  • Updated Yuzu presets to handle new config syntax in the RetroDECK Framework.
  • -
  • Changed auto-update to notification only, until permissions error can be worked out.
  • -
  • Added some new pixelart icons by ItzSelenux (pixelitos-icon-theme)
  • +
  • Fixed an issue to make sure the RD controller layout file at update with each RD update.
  • +
  • Fixed an issue with PPSSPP that made L and R incorrectly bound.
  • +
  • Fixed an issue in the Configurator that prevented the Yuzu preset for swapping A/B X/Y from working.
  • +
  • Fixed a notification issue on the latest SteamOS Beta releases.
  • +
  • Fixed an rsync permissions issue in the RetroDECK Framework.
  • +
  • Updated Yuzu presets to handle new config syntax in the RetroDECK Framework.
  • +
  • Changed auto-update to notification only, until permissions error can be worked out.
  • +
  • Added some new pixelart icons by ItzSelenux (pixelitos-icon-theme)
-

Steam Deck - Global Controller Layout Changes:

+

Updates:

+

All Emulators and ES-DE have been updated

+

Steam Deck - Global Controller Layout:

+

We have done some changes based on community feedback

    -
  • Select is now a hotkey trigger while pressing it down, L4 and R4 are still triggers as well.
  • -
  • The RetroArch combo of Select + Start = Quit now works on many SA-Emulators.
  • -
  • Open Menu is removed from Select.
  • -
  • R5 = A button (this allows for great Wii controls on the right touchpad and pressing down the R5 for A).
  • -
  • L5 = B button.
  • +
  • Select is now a hotkey trigger while pressing it down, L4 and R4 are still triggers as well.
  • +
  • The RetroArch combo of Select + Start = Quit now works on many SA-Emulators.
  • +
  • Open Menu is removed from Select.
  • +
  • R5 = A button (this allows for great Wii controls on the right touchpad and pressing down the R5 for A).
  • +
  • L5 = B button.
-

Steam Deck - Global Hotkey Changes:

+

Global hotkey changes:

    -
  • Open Menu is on Y.
  • -
  • Increase Emulation Speed is on Dpad-UP.
  • -
  • Decrease Emulation Speed is on Dpad-Down.
  • -
  • Fullscreen OFF command is removed (as emulators have migrated to toggle).
  • +
  • Open Menu is on Y.
  • +
  • Increase Emulation Speed is on Dpad-UP.
  • +
  • Decrease Emulation Speed is on Dpad-Down.
  • +
  • Fullscreen OFF command is removed (as emulators have migrated to toggle).

Known issues:

    -
  • The built in auto-updater is not working (we are working on it). Discover is ok.
  • -
  • Some emulators don't have hotkey support or have bugs affecting their hotkeys.
  • -
+
  • The built-in auto-updater is not working (we are working on it). Discover is ok.
  • +
  • Some emulators don't have hotkey support or have bugs affecting their hotkeys.
  • +
    diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index c84af238..a08964dc 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -8,6 +8,15 @@ base: io.qt.qtwebengine.BaseApp # Needed for Yuzu base-version: 5.15-22.08 # Needed for Yuzu command: retrodeck.sh +add-extensions: + org.ppsspp.PPSSPP.Locale: + directory: share/locale + bundle: true + no-autodownload: false + subdirectories: false + autodelete: true + locale-subset: true + finish-args: - --socket=fallback-x11 - --socket=wayland @@ -15,7 +24,7 @@ finish-args: - --share=ipc - --share=network - --device=all - - --filesystem=home # Needed to be able to relocate / remove / create symlink at ~/retrodeck + - --filesystem=home - --filesystem=/run/media - --filesystem=/media - --allow=multiarch @@ -58,6 +67,7 @@ cleanup-commands: modules: + # dependency of: CEMU - rd-submodules/shared-modules/libusb/libusb.json # This module is used to define the RetroDECK version @@ -66,18 +76,16 @@ modules: # The version number is hardcoded in /app/retrodeck/version # # UPDATE STEPS FOR MAIN: - # [X] Update the VERSION variable + # [X] Update the VERSION variable on line containing "VERSION=THISBRANCH" # [X] Update the appdata.xml with the version number and notes - # [X] change branch into main in version-initialization (first one) - # [X] change branch into main in retrodeck module (last one) - # [X] if header (before modules) was edited, edit it even in flathub.yml # - name: version-initialization buildsystem: simple build-commands: - | - VERSION=0.7.1b + # on main please update this with the version variable, eg: VERSION='0.7.0b' + VERSION=0.7.2b git checkout ${GITHUB_REF_NAME} mkdir -p ${FLATPAK_DEST}/retrodeck/ @@ -91,7 +99,7 @@ modules: sources: - type: git url: https://github.com/XargonWan/RetroDECK.git - branch: main + branch: THISBRANCH - name: xmlstarlet config-opts: @@ -112,6 +120,7 @@ modules: # mesa repo got a double certificate issue and gnutils cannot handle that so GLU download fails, # this affects even the shared-modules's glu so I have to replace it temporarly # more info there: https://gitlab.com/gnutls/gnutls/-/issues/1335 + # dependency of: CEMU - name: glu buildsystem: meson cleanup: @@ -210,6 +219,7 @@ modules: url: https://github.com/mikefarah/yq/releases/download/v4.33.3/yq_linux_amd64 sha256: 4ee662847c588c3ef2fec8bfb304e8739e3dbaba87ccb9a608d691c88f5b64dc + # dependency of: CEMU (13.0.0) - name: glslang buildsystem: cmake-ninja config-opts: @@ -220,8 +230,8 @@ modules: - /lib/cmake sources: - type: archive - url: https://github.com/KhronosGroup/glslang/archive/12.3.1.tar.gz - sha256: a57836a583b3044087ac51bb0d5d2d803ff84591d55f89087fc29ace42a8b9a8 + url: https://github.com/KhronosGroup/glslang/archive/13.0.0.tar.gz + sha256: bcda732434f829aa74414ea0e06d329ec8ac28637c38a0de45e17c8fd25a4715 x-checker-data: type: anitya stable-only: true @@ -263,6 +273,7 @@ modules: - sed -i 's|-o root -g root ||' ./Makefile.gnu - sed -i 's|/usr|/app|' ./Makefile.gnu + # dependency of: CEMU - name: pugixml buildsystem: cmake-ninja config-opts: @@ -326,7 +337,13 @@ modules: v'$(cat ${FLATPAK_DEST}/retrodeck/version)', ES-DE v" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#g' es-app/src/guis/GuiMenu.cpp - type: patch - path: rd-submodules/es-de/es-de-retrodeck-mods.patch + path: rd-submodules/es-de/GuiMenu.cpp.patch + - type: patch + path: rd-submodules/es-de/GuiMenu.h.patch + - type: patch + path: rd-submodules/es-de/ViewController.cpp.patch + - type: patch + path: rd-submodules/es-de/Window.cpp.patch # ES-DE - END @@ -340,7 +357,7 @@ modules: sources: - type: git url: https://github.com/anthonycaccese/art-book-next-es-de.git - commit: a0dc0cccaa3f1475feb58e551fe732d982e161c0 + commit: 4fe896af7447404f6ea083335cd661c91b0f7860 # ES-DE Themes - END @@ -353,11 +370,13 @@ modules: config-opts: - '--enable-dbus' make-args: - - GLOBAL_CONFIG_DIR=${FLATPAK_DEST}/etc + - 'GLOBAL_CONFIG_DIR=${FLATPAK_DEST}/etc' + - HAVE_TRANSLATE=1 + - HAVE_ACCESSIBILITY=1 sources: - type: git - url: https://github.com/libretro/RetroArch.git - commit: 6616b807edea5b56683e9fbca8b003b436c22b13 + url: 'https://github.com/libretro/RetroArch.git' + commit: 712b9350a5c2b1b9129d939a2ae622093dfabd04 - type: file path: rd-submodules/retroarch/retroarch.cfg post-install: @@ -370,7 +389,6 @@ modules: - >- sed s:@prefix@:${FLATPAK_DEST}:g retroarch.cfg > ${FLATPAK_DEST}/etc/retroarch.cfg - - mkdir -p ${FLATPAK_DEST}/share/appdata modules: - rd-submodules/retroarch/modules/libpng/libpng-1.6.35.json - rd-submodules/retroarch/modules/nvidia-cg-toolkit/nvidia-cg-toolkit-3.1.0013.json @@ -385,7 +403,7 @@ modules: - rd-submodules/retroarch/modules/libbz2/libbz2-1.0.8.json - rd-submodules/retroarch/modules/xrandr/xrandr-1.5.1.json - rd-submodules/retroarch/modules/libaio/libaio-0.3.112.json - # certificate issue, check libglu module for more info + # certificate issue, check glu module for more info #- rd-submodules/shared-modules/glu/glu-9.json - rd-submodules/shared-modules/libdecor/libdecor-0.1.1.json - name: retroarch-filers-video @@ -394,44 +412,44 @@ modules: - PREFIX=${FLATPAK_DEST} sources: - type: git - url: https://github.com/libretro/RetroArch.git - commit: 6616b807edea5b56683e9fbca8b003b436c22b13 + url: 'https://github.com/libretro/RetroArch.git' + commit: 712b9350a5c2b1b9129d939a2ae622093dfabd04 - name: retroarch-filers-audio subdir: libretro-common/audio/dsp_filters make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git - url: https://github.com/libretro/RetroArch.git - commit: 6616b807edea5b56683e9fbca8b003b436c22b13 + url: 'https://github.com/libretro/RetroArch.git' + commit: 712b9350a5c2b1b9129d939a2ae622093dfabd04 - name: retroarch-assets make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git - url: https://github.com/libretro/retroarch-assets.git - commit: 4ec80faf1b5439d1654f407805bb66141b880826 + url: 'https://github.com/libretro/retroarch-assets.git' + commit: 7b735ef18bcc6508b1c9a626eb237779ff787179 - name: libretro-database make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git - url: https://github.com/libretro/libretro-database.git - commit: 6a8d65d2bc1b7ffa7accb882e80c0a77b931bcc6 + url: 'https://github.com/libretro/libretro-database.git' + commit: e3b5cb00da4f3ab99491bf67c19630ffa7ee19f2 - name: libretro-core-info make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git - url: https://github.com/libretro/libretro-core-info.git - commit: eb7e3ff064c3fdaae46b89c9da9f49e15a8e9c2b + url: 'https://github.com/libretro/libretro-core-info.git' + commit: dacae85b406131feb12395a415fdf57fc4745201 - name: retroarch-joypad-autoconfig make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git - url: https://github.com/libretro/retroarch-joypad-autoconfig.git - commit: 8ec6304a14bd37cf927ebe7555a274ac4fefeb69 + url: 'https://github.com/libretro/retroarch-joypad-autoconfig.git' + commit: 5666e46bb89caf4e9af358fdb97a2b384cb62f36 - name: common-shaders make-install-args: - PREFIX=${FLATPAK_DEST} @@ -444,22 +462,22 @@ modules: - PREFIX=${FLATPAK_DEST} sources: - type: git - url: https://github.com/libretro/slang-shaders.git - commit: 8b35477a934739b1db193f22e7057754e7a87381 + url: 'https://github.com/libretro/slang-shaders.git' + commit: 9266fa24b64b274fd429b73469ded3561de7b8f4 - name: glsl-shaders make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git - url: https://github.com/libretro/glsl-shaders.git - commit: 799aa9e4d567db0874111d2aed9c9b9058a19641 + url: 'https://github.com/libretro/glsl-shaders.git' + commit: c26b9e1913eda8c25d6cd218818745a3b451f982 - name: common-overlays make-install-args: - PREFIX=${FLATPAK_DEST} sources: - type: git - url: https://github.com/libretro/common-overlays.git - commit: b3827a2c63834ed9e1902acc7cf9019f64771ed3 + url: 'https://github.com/libretro/common-overlays.git' + commit: 115d8670c2e032e4a41ba45f766f5cfd9dae28b8 # RetroArch - END @@ -471,8 +489,8 @@ modules: - mv ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/ sources: - type: archive - url: https://buildbot.libretro.com/stable/1.15.0/linux/x86_64/RetroArch_cores.7z - sha256: 2230bc38eaf87406efd0c2b7bdd1cf9e813ba113505600f14a7ef9eb06f8c7c0 + url: https://buildbot.libretro.com/stable/1.16.0/linux/x86_64/RetroArch_cores.7z + sha256: e4f7c9843ba827812088b3d1c7d745e802d7691180eb789ba5a37732461f2a06 - name: retroarch-sameduck-core buildsystem: simple @@ -544,13 +562,14 @@ modules: sources: - type: git url: &ppsspp-url https://github.com/hrydgard/ppsspp.git - tag: v1.15.4 - commit: 9a80120dc09997e40c0a73fda05c3e07a347259f + tag: v1.16.3 + commit: a9b6421dfde68be9d065b51e9d519699ce2e9053 x-checker-data: - type: anitya - project-id: 12295 - tag-template: v$version - is-main-source: true + type: json + url: https://api.github.com/repos/hrydgard/ppsspp/releases/latest + version-query: .tag_name | sub("^v"; "") + tag-query: .tag_name + timestamp-query: .published_at - name: ppsspp-localization buildsystem: simple @@ -583,8 +602,8 @@ modules: - ln -s "${FLATPAK_DEST}/yuzu/usr/bin/yuzu" "${FLATPAK_DEST}/bin/yuzu" sources: - type: file - url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1522/yuzu-mainline-20230813-3ea669b08.AppImage - sha256: d1c5217f96c7ce66b6ebc8db835daad801de7e8ca7df1c35ae62920aa55c04da + url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1567/yuzu-mainline-20230923-ace91dd0c.AppImage + sha256: 965bdfa63e713a0672fb5a037ecb527b4860600c6a2526f7c053bfe082b5a9d8 # Yuzu - END @@ -649,8 +668,8 @@ modules: - ln -s "${FLATPAK_DEST}/pcsx2-qt/usr/bin/pcsx2-qt" "${FLATPAK_DEST}/bin/pcsx2-qt" sources: - type: file - url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.4916/pcsx2-v1.7.4916-linux-appimage-x64-Qt.AppImage - sha256: 870a9d198d5f05a1ecf3e98110fe24beacf72eb45077ee31d1200c36930b3d9c + url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.5059/pcsx2-v1.7.5059-linux-appimage-x64-Qt.AppImage + sha256: a51addc9bd15b77e842160acecb1f18486f8a024e5e73e8aea5de71de2b164c7 # PCSX2 - END @@ -879,9 +898,11 @@ modules: # DO NOT UPDATE! WENT ON QT6 # https://github.com/flathub/net.rpcs3.RPCS3 - # glu issue, check libglu module for more info + # glu issue, check glu module for more info #- rd-submodules/shared-modules/glu/glu-9.json - - rd-submodules/shared-modules/glew/glew.json # RPCS3 is not using this anymore, what about the other emu? Can we remove it? + + # dependency of: CEMU + - rd-submodules/shared-modules/glew/glew.json - name: rpcs3 buildsystem: cmake-ninja @@ -930,9 +951,8 @@ modules: # RPCS3 - END - # # PRIMEHACK - START - # # https://github.com/flathub/io.github.shiiion.primehack - # # Disabled because it's overwriting Dolphin + # PRIMEHACK - START + # https://github.com/flathub/io.github.shiiion.primehack - name: primehack buildsystem: cmake-ninja @@ -989,9 +1009,22 @@ modules: # Duckstation-AppImage - END # Cemu - START + # LATEST BUILD BEFORE RUNTIME 23.08 # https://github.com/cemu-project/Cemu/releases # https://github.com/flathub/info.cemu.Cemu + - name: hidapi + buildsystem: cmake-ninja + sources: + - type: archive + url: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-0.14.0.tar.gz + sha256: a5714234abe6e1f53647dd8cba7d69f65f71c558b7896ed218864ffcf405bcbd + x-checker-data: + type: anitya + project-id: 5594 + stable-only: true + url-template: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-$version.tar.gz + - name: boost buildsystem: simple build-commands: @@ -1003,8 +1036,8 @@ modules: - /lib/cmake sources: - type: archive - url: https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.tar.bz2 - sha256: a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6 + url: https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.bz2 + sha256: 6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e x-checker-data: type: anitya project-id: 6845 @@ -1025,8 +1058,10 @@ modules: - /lib/pkgconfig sources: - type: archive - url: https://libzip.org/download/libzip-1.10.0.tar.xz - sha256: cd2a7ac9f1fb5bfa6218272d9929955dc7237515bba6e14b5ad0e1d1e2212b43 + url: https://libzip.org/download/libzip-1.10.1.tar.xz + mirror-urls: + - https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.xz + sha256: dc3c8d5b4c8bbd09626864f6bcf93de701540f761d76b85d7c7d710f4bd90318 x-checker-data: type: anitya project-id: 10649 @@ -1115,8 +1150,8 @@ modules: x-checker-data: type: git tag-pattern: ^v([\d.]+-\d+)$ - tag: v2.0-46 - commit: a17111e6b0e4802044c90f4bedd66478de689070 + tag: v2.0-47 + commit: 85aa4f095b119e98620451a0c19c80f656d944a6 - type: shell commands: - sed "s/set(EXPERIMENTAL_VERSION.*/set(EXPERIMENTAL_VERSION \"$(git describe @@ -1198,7 +1233,6 @@ modules: - mkdir -p /app/tools - cp tools/configurator.sh /app/tools/configurator.sh - chmod +x /app/tools/configurator.sh - #- cp es-configs/tools-gamelist.xml /app/retrodeck/tools-gamelist.xml - cp tools/retrodeck_function_wrapper.sh /app/tools/retrodeck_function_wrapper.sh - chmod +x /app/tools/retrodeck_function_wrapper.sh @@ -1210,8 +1244,6 @@ modules: - cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop - cp net.retrodeck.retrodeck.Configurator.desktop /app/share/applications/net.retrodeck.retrodeck.Configurator.desktop - # TODO: group the configs per-emu and optimize the following cps, like already done with Dolphin. Please not that some files may be renamed, check retrodeck.sh to know how (and fix it after the edit) - # Initializing default emulator configs - cp -r emu-configs ${FLATPAK_DEST}/retrodeck/emu-configs/ @@ -1229,4 +1261,8 @@ modules: sources: - type: git url: https://github.com/XargonWan/RetroDECK.git +<<<<<<< HEAD branch: main +======= + branch: THISBRANCH +>>>>>>> cooker-0.7.2b diff --git a/removed-modules.yml b/old/removed-modules.yml similarity index 100% rename from removed-modules.yml rename to old/removed-modules.yml diff --git a/old/workflows/TEST_release_info.yml b/old/workflows/TEST_release_info.yml new file mode 100644 index 00000000..ebf21609 --- /dev/null +++ b/old/workflows/TEST_release_info.yml @@ -0,0 +1,62 @@ +name: TEST_release_info + +on: + push: + branches: + - main + paths: + - .github/workflows/TEST_release_info.yml + pull_request: + branches: + - main + + workflow_dispatch: + + +jobs: + + Building_RetroDECK: + runs-on: ubuntu-latest + steps: + + - name: Generate build ID + id: generating_buildid + run: echo "##[set-output name=build-id;]$(echo "$( git rev-parse --short HEAD )")" + + - uses: actions/checkout@v3 + + - name: Initialize enviornment + run: | + git pull + git submodule init + git submodule update + sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet appstream-util + + - name: Validating the appdata + run: appstream-util validate "net.retrodeck.retrodeck.appdata.xml" + continue-on-error: true + + - name: Getting version info + id: version + run: | + appdata="https://raw.githubusercontent.com/XargonWan/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml" + REL_VER=$(curl -s $appdata | xmlstarlet sel -t -v "//release/@version" | head -1) + DES="$(curl -s $appdata | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')" + echo "REL_VER=$REL_VER" >> $GITHUB_ENV + echo -e "# Release Notes\n" >> "body.md" + echo "$DES" >> "body.md" + + - name: Publish the flatpak in a new release + uses: ncipollo/release-action@v1 + env: + REL_VER: ${{ env.REL_VER }} + with: + tag: ${{ env.REL_VER }} + name: "RetroDECK v${{ env.REL_VER }}" + bodyFile: "body.md" + #artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz" + allowUpdates: true + draft: true + token: ${{ secrets.TRIGGER_BUILD_TOKEN }} + repo: RetroDECK + #continue-on-error: true \ No newline at end of file diff --git a/old/workflows/cooker.yml b/old/workflows/cooker.yml new file mode 100644 index 00000000..ff8330e3 --- /dev/null +++ b/old/workflows/cooker.yml @@ -0,0 +1,205 @@ +name: cooker + +on: + # push: + # branches: + # - cooker* + # pull_request: + # branches: + # - cooker* + + workflow_dispatch: + + +jobs: + + Job1_-_Building_P1: + runs-on: ubuntu-latest + steps: + + - name: Get date for artifacts + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M%S')" + + - name: Extract branch name + shell: bash + run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" + id: extract_branch + + - name: Generate build ID + id: generating_buildid + run: echo "##[set-output name=build-id;]$(echo "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}")" + + - uses: actions/checkout@v3 + + - name: Download global cache + uses: dawidd6/action-download-artifact@v2 + with: + workflow: cooker.yml + name: global-cache + search_artifacts: true + skip_unpack: true + continue-on-error: true + + - name: Extract global cache + run: | + tar --skip-old-files -xzvf retrodeck-cooker.tar.gz + rm -f retrodeck-cooker.tar.gz + continue-on-error: true + + - name: DEBUG + run: | + echo "Listing folder $PWD contents" + ls -lna + echo "Checking for version file" + find ~ -iname version + cat $(find ~ -iname version) + + - name: Initialize enviornment + run: | + git pull + git submodule init + git submodule update + sudo add-apt-repository ppa:alexlarsson/flatpak + sudo apt-get update + sudo apt install flatpak flatpak-builder p7zip-full + sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13 + + - name: Buld part 1 - Until melonds + run: | + sudo flatpak-builder --build-only --stop-at=melonds --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml + + - name: Compress cache + run: | + touch retrodeck-cooker.tar.gz + rm -rf .flatpak-builder/build/*-{2,3,4,5,6} + find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks + tar --ignore-failed-read -czvf retrodeck-cooker.tar.gz retrodeck-flatpak-cooker .flatpak-builder/build + + - name: Upload build specific cache + uses: actions/upload-artifact@v3 + with: + name: "${{ steps.generating_buildid.outputs.build-id }}" + path: retrodeck-cooker.tar.gz + + # this is done to speed up the things now, it may be removed later + - name: Compress global cache + run: | + touch retrodeck-cooker.tar.gz + rm -rf .flatpak-builder/build/*-{2,3,4,5,6} + find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks + tar --ignore-failed-read -czvf retrodeck-cooker.tar.gz retrodeck-flatpak-cooker .flatpak-builder/build + continue-on-error: true + + - name: Upload global cache + uses: actions/upload-artifact@v3 + with: + name: global-cache + path: retrodeck-cooker.tar.gz RetroDECK.flatpak + continue-on-error: true + + outputs: + buildID: "${{ steps.generating_buildid.outputs.build-id }}" + + Job2_-_Build_P2_and_publish: + runs-on: ubuntu-latest + needs: [Job1_-_Building_P1] + steps: + + - uses: actions/checkout@v3 + + - name: Download build specific cache + uses: actions/download-artifact@v2 + with: + name: ${{ needs.Job1_-_Building_P1.outputs.buildID }} + + - name: Extract cache + run: | + tar --skip-old-files -xzvf retrodeck-cooker.tar.gz + rm -f retrodeck-cooker.tar.gz + + - name: DEBUG + run: | + echo "Listing folder $PWD contents" + ls -lna + echo "Checking for version file" + find ~ -iname version + cat $(find ~ -iname version) + + - name: Initialize enviornment + run: | + git pull + git submodule init + git submodule update + sudo add-apt-repository ppa:alexlarsson/flatpak + sudo apt-get update + sudo apt install flatpak flatpak-builder p7zip-full + sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13 + + - name: Create Bundle + run: | + sudo flatpak-builder --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml + sudo flatpak build-bundle $GITHUB_WORKSPACE/local RetroDECK.flatpak net.retrodeck.retrodeck + + - name: Get date for artifacts + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M')" + + - name: Extract branch name + shell: bash + run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" + id: extract_branch + + - name: Read version from version file + id: version + run: echo "##[set-output name=version;]$(cat $(find . -name version))" + + - name: DEBUG - Print version name + shell: bash + run: | + echo "DEBUG: printing version from version file" + echo "${{ steps.version.outputs.version }}" + + - name: Publish the flatpak in a new cooker release + uses: ncipollo/release-action@v1 + with: + #tag: "${{ steps.version.outputs.version }}" + tag: "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}" + body: | + # Release Notes (Cooker) + This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}. + + 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.flatpak" + allowUpdates: true + prerelease: true + draft: false + token: ${{ secrets.TRIGGER_BUILD_TOKEN }} + repo: RetroDECK-cooker + continue-on-error: true + + - name: Compress global cache + run: | + touch retrodeck-cooker.tar.gz + rm -rf .flatpak-builder/build/*-{2,3,4,5,6} + find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks + tar --ignore-failed-read -czvf retrodeck-cooker.tar.gz retrodeck-flatpak-cooker .flatpak-builder/build + continue-on-error: true + + - name: Upload global cache + uses: actions/upload-artifact@v3 + with: + name: global-cache + path: retrodeck-cooker.tar.gz RetroDECK.flatpak + continue-on-error: true + + - name: Upload RetroDECK.flatpak + uses: actions/upload-artifact@v3 + with: + name: retrodeck-flatpak + path: RetroDECK.flatpak + continue-on-error: true diff --git a/old/workflows/flathub_push_cooker.yml b/old/workflows/flathub_push_cooker.yml new file mode 100644 index 00000000..65a4d349 --- /dev/null +++ b/old/workflows/flathub_push_cooker.yml @@ -0,0 +1,88 @@ + +name: PUSH-cooker-flathub + +on: + workflow_dispatch: + +jobs: + + Pushing_cooker_into_flathub: + runs-on: ubuntu-latest + steps: + - name: Pushing + shell: bash + run: | + + # EDITABLES: + rd_branch=${GITHUB_REF_NAME} + echo $rd_branch + gits_folder="${GITHUB_WORKSPACE}/gits" # without last / + + mkdir -vp $gits_folder + cd $gits_folder + if [ -d flathub ]; then + rm -rf flathub + fi + git clone --recursive https://github.com/flathub/net.retrodeck.retrodeck.git flathub + cd $gits_folder + git clone --recursive https://github.com/XargonWan/RetroDECK RetroDECK + cd $gits_folder/RetroDECK + + # NON-EDITABLES + #relname="$rd_branch-"$(date +%d%m%y.%H%M) + relname="cooker-"$(git rev-parse --short HEAD) + + git checkout $rd_branch + git submodule init + git submodule update + # NOTE: the only linked submodules are: rd-submodules/retroarch + # these must be included in the exclusion list as they must be redownloaded + #sync -rav --progress --exclude={'res/screenshots/','shared-modules/','rd-submodules/retroarch','.git/','docs','retrodeck-flatpak/','retrodeck-flatpak-cooker/','.flatpak-builder/'} ~/RetroDECK/ ~/flathub/ + + cd $gits_folder/flathub + + git checkout -b $relname + + git rm -rf * + git clean -fxd # restroing git index + + # Copying only a few files as the others are cloned by git in retrodeck.sh + cd $gits_folder/RetroDECK + cp -rf \ + 'flathub.json' \ + 'LICENSE' \ + 'flathub.yml' \ + 'README.md' \ + $gits_folder/flathub/ + + cd $gits_folder/flathub + ls -lah + + # manipulating manifest + mv flathub.yml net.retrodeck.retrodeck.yml + + # Getting latest release name + # version=$(\ + # curl -sL \ + # -H "Accept: application/vnd.github+json" \ + # -H "Authorization: Bearer ${{ secrets.TRIGGER_BUILD_TOKEN }}" \ + # https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases \ + # | jq .[0].tag_name \ + # | tr -d \" \ + # ) + + sha=$(curl -sL https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.sha) + + sed -i "s#__SHA__#$sha#g" net.retrodeck.retrodeck.yml + + echo -e "Resulting manifest:\n" + cat net.retrodeck.retrodeck.yml + + git config --global user.name "${{ secrets.GITNAME }}" + git config --global user.email "${{ secrets.GITMAIL }}" + + git add * + git commit -m "Updated flathub/net.retrodeck.retrodeck from RetroDECK/$rd_branch" + + git remote -v + git push --force https://${{ secrets.TRIGGER_BUILD_TOKEN }}@github.com/flathub/net.retrodeck.retrodeck.git $relname diff --git a/old/workflows/main.yml b/old/workflows/main.yml new file mode 100644 index 00000000..0404e018 --- /dev/null +++ b/old/workflows/main.yml @@ -0,0 +1,188 @@ +name: main + +on: + # Triggers the workflow on push or pull request events but only for the main branch + # push: + # branches: + # - main + # pull_request: + # branches: + # - main + + workflow_dispatch: + + +jobs: + + Job1_-_Building_P1: + runs-on: ubuntu-latest + steps: + + - name: Get date for artifacts + id: date + run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M%S')" + + - name: Extract branch name + shell: bash + run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" + id: extract_branch + + - name: Generate build ID + id: generating_buildid + run: echo "##[set-output name=build-id;]$(echo "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}")" + + - uses: actions/checkout@v3 + + - name: Download global cache + uses: dawidd6/action-download-artifact@v2 + with: + workflow: main.yml + name: global-cache + search_artifacts: true + skip_unpack: true + continue-on-error: true + + - name: Extract global cache + run: | + tar --skip-old-files -xzvf retrodeck-main.tar.gz + rm -f retrodeck-main.tar.gz + continue-on-error: true + + - name: DEBUG + run: | + echo "Listing folder $PWD contents" + ls -lna + echo "Checking for version file" + find ~ -iname version + cat $(find ~ -iname version) + + - name: Initialize enviornment + run: | + git pull + git submodule init + git submodule update + sudo add-apt-repository ppa:alexlarsson/flatpak + sudo apt-get update + sudo apt install flatpak flatpak-builder p7zip-full + sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13 + + - name: Buld part 1 - Until melonds + run: | + sudo flatpak-builder --build-only --stop-at=melonds --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-main net.retrodeck.retrodeck.yml + + - name: Compress cache + run: | + touch retrodeck-main.tar.gz + rm -rf .flatpak-builder/build/*-{2,3,4,5,6} + find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks + tar --ignore-failed-read -czvf retrodeck-main.tar.gz retrodeck-flatpak-main .flatpak-builder/build + + - name: Upload build specific cache + uses: actions/upload-artifact@v3 + with: + name: "${{ steps.generating_buildid.outputs.build-id }}" + path: retrodeck-main.tar.gz + + # this is done to speed up the things now, it may be removed later + - name: Compress global cache + run: | + touch retrodeck-main.tar.gz + rm -rf .flatpak-builder/build/*-{2,3,4,5,6} + find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks + tar --ignore-failed-read -czvf retrodeck-main.tar.gz retrodeck-flatpak-main .flatpak-builder/build + continue-on-error: true + + - name: Upload global cache + uses: actions/upload-artifact@v3 + with: + name: global-cache + path: retrodeck-main.tar.gz RetroDECK.flatpak + continue-on-error: true + + outputs: + buildID: "${{ steps.generating_buildid.outputs.build-id }}" + + Job2_-_Build_P2_and_publish: + runs-on: ubuntu-latest + needs: [Job1_-_Building_P1] + steps: + + - uses: actions/checkout@v3 + + - name: Download build specific cache + uses: actions/download-artifact@v2 + with: + name: ${{ needs.Job1_-_Building_P1.outputs.buildID }} + + - name: Extract cache + run: | + tar --skip-old-files -xzvf retrodeck-main.tar.gz + rm -f retrodeck-main.tar.gz + + - name: DEBUG + run: | + echo "Listing folder $PWD contents" + ls -lna + echo "Checking for version file" + find ~ -iname version + cat $(find ~ -iname version) + + - name: Initialize enviornment + run: | + git pull + git submodule init + git submodule update + sudo add-apt-repository ppa:alexlarsson/flatpak + sudo apt-get update + sudo apt install flatpak flatpak-builder p7zip-full + sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13 + + - name: Create Bundle + run: | + sudo flatpak-builder --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-main net.retrodeck.retrodeck.yml + sudo flatpak build-bundle $GITHUB_WORKSPACE/local RetroDECK.flatpak net.retrodeck.retrodeck + + - name: Read version from version file + id: version + run: echo "##[set-output name=version;]$(cat $(find . -name version))" + + - name: Publish the flatpak in a new main release + uses: ncipollo/release-action@v1 + with: + #tag: "${{ steps.version.outputs.version }}" + #tag: "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}" + tag: "0.4.0b" + body: | + # Release Notes (main) + + artifacts: "RetroDECK.flatpak" + allowUpdates: true + prerelease: true + draft: true + token: ${{ secrets.TRIGGER_BUILD_TOKEN }} + repo: RetroDECK-main + continue-on-error: true + + - name: Compress global cache + run: | + touch retrodeck-main.tar.gz + rm -rf .flatpak-builder/build/*-{2,3,4,5,6} + find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks + tar --ignore-failed-read -czvf retrodeck-main.tar.gz retrodeck-flatpak-main .flatpak-builder/build + continue-on-error: true + + - name: Upload global cache + uses: actions/upload-artifact@v3 + with: + name: global-cache + path: retrodeck-main.tar.gz RetroDECK.flatpak + continue-on-error: true + + - name: Upload RetroDECK.flatpak + uses: actions/upload-artifact@v3 + with: + name: retrodeck-flatpak + path: RetroDECK.flatpak + continue-on-error: true \ No newline at end of file diff --git a/old/workflows/remove-artifacts.yml b/old/workflows/remove-artifacts.yml new file mode 100644 index 00000000..84c41e8e --- /dev/null +++ b/old/workflows/remove-artifacts.yml @@ -0,0 +1,22 @@ +name: Remove-artifacts + +on: + #schedule: + # Every day at 1am + # - cron: '0 1 * * *' + + workflow_dispatch: + +jobs: + remove-old-artifacts: + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - name: Remove old artifacts + uses: c-hive/gha-remove-artifacts@v1 + with: + age: '2 seconds' # ' ', e.g. 5 days, 2 years, 90 seconds, parsed by Moment.js + # Optional inputs + # skip-tags: true + # skip-recent: 5 diff --git a/rd-submodules/es-de/GuiMenu.cpp.patch b/rd-submodules/es-de/GuiMenu.cpp.patch new file mode 100644 index 00000000..b0c035ea --- /dev/null +++ b/rd-submodules/es-de/GuiMenu.cpp.patch @@ -0,0 +1,38 @@ +diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.cpp emulationstation-de/es-app/src/guis/GuiMenu.cpp +--- emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-08-23 13:12:15.617292576 +0200 ++++ emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-08-23 13:44:10.736412006 +0200 +@@ -67,2 +67,4 @@ + ++ addEntry("RETRODECK CONFIGURATOR", mMenuColorPrimary, false, [this] { openRetroDeckConfigurator(); }); ++ + if (!Settings::getInstance()->getBool("ForceKiosk") && +@@ -70,3 +72,3 @@ + #if defined(__APPLE__) +- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); }); ++ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); }); + #else +@@ -75,3 +77,3 @@ + else +- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); }); ++ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); }); + #endif +@@ -1758,3 +1760,3 @@ + auto quitText = std::make_shared( +- "QUIT EMULATIONSTATION", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); ++ "QUIT RETRODECK", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); + quitText->setSelectable(true); +@@ -1910 +1912,14 @@ + } ++ ++void GuiMenu::openRetroDeckConfigurator() ++{ ++ // Launch the configurator.sh script ++ std::string command; ++ std::string startDirectory; ++ bool runInBackground; ++ command = "bash /app/tools/configurator.sh"; ++ startDirectory = "/app/tools"; ++ runInBackground = false; ++ int result = Utils::Platform::launchGameUnix(command, startDirectory, runInBackground); ++ // You can add any checks for the script's outcome here. ++} diff --git a/rd-submodules/es-de/GuiMenu.h.patch b/rd-submodules/es-de/GuiMenu.h.patch new file mode 100644 index 00000000..13a6b687 --- /dev/null +++ b/rd-submodules/es-de/GuiMenu.h.patch @@ -0,0 +1,10 @@ +diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.h emulationstation-de/es-app/src/guis/GuiMenu.h +--- emulationstation-de/es-app/src/guis/GuiMenu.h 2023-08-23 13:12:15.617292576 +0200 ++++ emulationstation-de/es-app/src/guis/GuiMenu.h 2023-08-23 13:50:20.978700234 +0200 +@@ -46,2 +46,3 @@ + void openOtherOptions(); ++ void openRetroDeckConfigurator(); + void openQuitMenu(); +@@ -54 +55,2 @@ + #endif // ES_APP_GUIS_GUI_MENU_H ++ diff --git a/rd-submodules/es-de/es-de-retrodeck-mods.patch b/rd-submodules/es-de/ViewController.cpp.patch similarity index 70% rename from rd-submodules/es-de/es-de-retrodeck-mods.patch rename to rd-submodules/es-de/ViewController.cpp.patch index fd17ccf9..2f485a31 100644 --- a/rd-submodules/es-de/es-de-retrodeck-mods.patch +++ b/rd-submodules/es-de/ViewController.cpp.patch @@ -1,56 +1,6 @@ -diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.cpp emulationstation-de/es-app/src/guis/GuiMenu.cpp ---- emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-07-14 08:44:25.788696841 -0400 -+++ emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-07-14 08:48:23.574196859 -0400 -@@ -10,2 +10,3 @@ - #include "guis/GuiMenu.h" -+#include "utils/PlatformUtil.h" - -@@ -67,2 +68,4 @@ - -+ addEntry("RETRODECK CONFIGURATOR", mMenuColorPrimary, false, [this] { openRetroDeckConfigurator(); }); -+ - if (!Settings::getInstance()->getBool("ForceKiosk") && -@@ -70,3 +73,3 @@ - #if defined(__APPLE__) -- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); }); -+ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); }); - #else -@@ -75,3 +78,3 @@ - else -- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); }); -+ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); }); - #endif -@@ -1729,2 +1732,15 @@ - -+void GuiMenu::openRetroDeckConfigurator() -+{ -+ // Launch the configurator.sh script -+ std::string command; -+ std::string startDirectory; -+ bool runInBackground; -+ command = "bash /app/tools/configurator.sh"; -+ startDirectory = "/app/tools"; -+ runInBackground = false; -+ int result = Utils::Platform::launchGameUnix(command, startDirectory, runInBackground); -+ // You can add any checks for the script's outcome here. -+} -+ - void GuiMenu::openQuitMenu() -@@ -1758,3 +1774,3 @@ - auto quitText = std::make_shared( -- "QUIT EMULATIONSTATION", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); -+ "QUIT RETRODECK", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); - quitText->setSelectable(true); -diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.h emulationstation-de/es-app/src/guis/GuiMenu.h ---- emulationstation-de/es-app/src/guis/GuiMenu.h 2023-07-14 08:44:25.788696841 -0400 -+++ emulationstation-de/es-app/src/guis/GuiMenu.h 2023-07-14 08:49:05.851991859 -0400 -@@ -46,2 +46,3 @@ - void openOtherOptions(); -+ void openRetroDeckConfigurator(); - void openQuitMenu(); diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstation-de/es-app/src/views/ViewController.cpp ---- emulationstation-de/es-app/src/views/ViewController.cpp 2023-07-14 08:44:25.788696841 -0400 -+++ emulationstation-de/es-app/src/views/ViewController.cpp 2023-07-17 09:58:26.862373622 -0400 +--- emulationstation-de/es-app/src/views/ViewController.cpp 2023-08-23 13:12:15.625292630 +0200 ++++ emulationstation-de/es-app/src/views/ViewController.cpp 2023-08-23 14:29:23.547223951 +0200 @@ -164,9 +164,7 @@ { - mNoGamesErrorMessage = "NO GAME FILES WERE FOUND. EITHER PLACE YOUR GAMES IN " @@ -65,7 +15,7 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat + "SYSTEM SUBFOLDER IN THE CONFIGURED ROM DIRECTORY " + "AND RUN RETRODECK AGAIN TO SCAN YOUR LIBRARY.\n" + "THE CURRENTLY CONFIGURED ROM DIRECTORY IS:\n"; - + @@ -179,90 +177,3 @@ mNoGamesMessageBox = new GuiMsgBox( - HelpStyle(), mNoGamesErrorMessage + mRomDirectory, "CHANGE ROM DIRECTORY", @@ -163,11 +113,6 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat - true, false, + "", nullptr, "", nullptr, true, false, (mRenderer->getIsVerticalOrientation() ? -diff -au1r emulationstation-de/es-core/src/Window.cpp emulationstation-de/es-core/src/Window.cpp ---- emulationstation-de/es-core/src/Window.cpp 2023-07-14 08:44:25.805371841 -0400 -+++ emulationstation-de/es-core/src/Window.cpp 2023-07-14 08:52:32.335181878 -0400 -@@ -165,3 +165,3 @@ - progressBarRect.barPosY = mSplashTextPositions.y + (progressBarRect.barHeight * 2.0f); -- progressBarRect.color = 0x777777FF; -+ progressBarRect.color = 0xC858E6FF; - mProgressBarRectangles.emplace_back(progressBarRect); +@@ -1446 +1357,2 @@ + } ++ diff --git a/rd-submodules/es-de/Window.cpp.patch b/rd-submodules/es-de/Window.cpp.patch new file mode 100644 index 00000000..c099d83b --- /dev/null +++ b/rd-submodules/es-de/Window.cpp.patch @@ -0,0 +1,9 @@ +diff -au1r emulationstation-de/es-core/src/Window.cpp emulationstation-de/es-core/src/Window.cpp +--- emulationstation-de/es-core/src/Window.cpp 2023-08-29 14:14:17.208301836 +0200 ++++ emulationstation-de/es-core/src/Window.cpp 2023-08-29 14:12:37.307334069 +0200 + +@@ -181,3 +181,3 @@ + progressBarRect.barPosY += borderThickness; +- progressBarRect.color = 0x79010FFF; ++ progressBarRect.color = 0xC858E6FF; + mProgressBarRectangles.emplace_back(progressBarRect); diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch index fbfdda61..9dc43930 160000 --- a/rd-submodules/retroarch +++ b/rd-submodules/retroarch @@ -1 +1 @@ -Subproject commit fbfdda61b3da092a71cc53999dd3e7b909f244e2 +Subproject commit 9dc439300e92338d5b2bc3fc680eedd4fe1d3b0c diff --git a/rd-submodules/shared-modules b/rd-submodules/shared-modules index 50314360..2a35fe7d 160000 --- a/rd-submodules/shared-modules +++ b/rd-submodules/shared-modules @@ -1 +1 @@ -Subproject commit 50314360ded6fa3b9f0b602513b1164b7a6636ed +Subproject commit 2a35fe7d41b991a59992a55f09d4cdd69fdf983d diff --git a/res/DREAMS.ttf b/res/DREAMS.ttf new file mode 100755 index 00000000..91e70b71 Binary files /dev/null and b/res/DREAMS.ttf differ diff --git a/res/extra_splashes/japanese-retoro-dekku.svg b/res/extra_splashes/japanese-retoro-dekku.svg new file mode 100755 index 00000000..af152d5d --- /dev/null +++ b/res/extra_splashes/japanese-retoro-dekku.svg @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + テイキョウ: + + + + レトロ + ック + + + + + + + +