diff --git a/.github/workflows/cooker-selfhosted.yml b/.github/workflows/cooker-selfhosted.yml index f4e8838a..2ae40fe2 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,63 @@ 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 + - 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: sed -i '/finish-args:/a \ \ - --talk-name=org.freedesktop.Flatpak' net.retrodeck.retrodeck.yml + + # - 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: | - 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 + 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 + 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: | + 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 - 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 + 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 - name: Create Artifact for flathub run: | @@ -79,11 +116,22 @@ jobs: - name: Create Bundle run: | - flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck + flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK-cooker.flatpak net.retrodeck.retrodeck - 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 +140,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..c380622f 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,70 @@ 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 + - 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/version_checker.sh" + + - name: "Build flatpak: download only" + id: "flatpak-download" 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 + 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 + 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: | + 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 - 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 + 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 - name: Create Artifact for flathub run: | @@ -92,7 +129,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/.gitignore b/.gitignore index 934dbffd..e98c039e 100644 --- a/.gitignore +++ b/.gitignore @@ -13,5 +13,5 @@ Thumbs.db .flatpak-builder/ retrodeck-flatpak-cooker/ retrodeck-flatpak/ -bakcup -.old +backup +.old \ No newline at end of file diff --git a/README.md b/README.md index caf4125f..fd858140 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ ![Flathub](https://img.shields.io/flathub/v/net.retrodeck.retrodeck) ![Discord](https://img.shields.io/discord/951662718102962256?label=discord) ![GitHub](https://img.shields.io/github/license/XargonWan/RetroDECK) +[![Documentation Status](https://readthedocs.org/projects/retrodeck/badge/?version=latest)](https://retrodeck.readthedocs.io/en/latest/?badge=latest) + # RetroDECK on your device! diff --git a/automation_tools/appdata_management.sh b/automation_tools/appdata_management.sh new file mode 100755 index 00000000..a59fdfb9 --- /dev/null +++ b/automation_tools/appdata_management.sh @@ -0,0 +1,91 @@ +#!/bin/bash + +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/force-update-submodules.sh b/automation_tools/force-update-submodules.sh similarity index 93% rename from force-update-submodules.sh rename to automation_tools/force-update-submodules.sh index 57d3df5f..c0c84f46 100644 --- a/force-update-submodules.sh +++ b/automation_tools/force-update-submodules.sh @@ -1,5 +1,7 @@ #!/bin/bash +# 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/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_checker.sh b/automation_tools/version_checker.sh new file mode 100755 index 00000000..8190637c --- /dev/null +++ b/automation_tools/version_checker.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# This script is used to check that the versions are correct and topping 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/version_extractor.sh b/automation_tools/version_extractor.sh new file mode 100755 index 00000000..f324c106 --- /dev/null +++ b/automation_tools/version_extractor.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +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/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/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 f0216f88..00000000 --- a/flathub.yml +++ /dev/null @@ -1,41 +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 - - --filesystem=xdg-run/app/com.discordapp.Discord:create - # 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 e77b65f7..00393287 100644 --- a/functions/dialogs.sh +++ b/functions/dialogs.sh @@ -170,7 +170,7 @@ changelog_dialog() { local version_changelog=$(xml sel -t -m "//release[@version='$1']/description" -v . -n $rd_appdata | tr -s '\n' | sed 's/^\s*//') echo -e "In RetroDECK version $1, the following changes were made:\n$version_changelog" > "/var/config/retrodeck/changelog-partial.txt" - $version_changelog >> "/var/config/retrodeck/changelog-partial.txt" + "$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" \ 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 f1d81141..e737f8f5 100644 --- a/net.retrodeck.retrodeck.appdata.xml +++ b/net.retrodeck.retrodeck.appdata.xml @@ -65,15 +65,63 @@ GPL-3.0 CC0-1.0 - - https://github.com/XargonWan/RetroDECK/releases/tag/0.7.1b + + https://github.com/XargonWan/RetroDECK/releases/tag/0.7.2b

Bug fixes:

    -
  • PLACEHOLDER
  • +
  • Updated ES-DE to 2.1.1
  • +
  • Redone the patches for ES-DE
  • +
  • Updated theme
  • +
  • Changelog is now scrollable
  • +
  • Added helper files in the mods folders to instruct the users on the procedures to follow
+ + 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).
  • +
+

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 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)
  • +
+

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.
  • +
+

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).
  • +
+

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.
  • +
+
+
https://github.com/XargonWan/RetroDECK/releases/tag/0.7.0b diff --git a/net.retrodeck.retrodeck.yml b/net.retrodeck.retrodeck.yml index 954e25af..d14352fa 100644 --- a/net.retrodeck.retrodeck.yml +++ b/net.retrodeck.retrodeck.yml @@ -15,7 +15,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 @@ -66,18 +66,16 @@ modules: # The version number is hardcoded in /app/retrodeck/version # # UPDATE STEPS FOR MAIN: - # [ ] Update the VERSION variable + # [ ] Update the VERSION variable on line containing "VERSION=THISBRANCH" # [ ] Update the appdata.xml with the version number and notes - # [ ] change branch into main in version-initialization (first one) - # [ ] change branch into main in retrodeck module (last one) - # [ ] if header (before modules) was edited, edit it even in flathub.yml # - name: version-initialization buildsystem: simple build-commands: - | - VERSION=$(git rev-parse --abbrev-ref HEAD) + # on main please update this with the version variable, eg: VERSION='0.7.0b' + VERSION=THISBRANCH git checkout ${GITHUB_REF_NAME} mkdir -p ${FLATPAK_DEST}/retrodeck/ @@ -91,7 +89,7 @@ modules: sources: - type: git url: https://github.com/XargonWan/RetroDECK.git - branch: cooker-0.7.1b + branch: THISBRANCH - name: xmlstarlet config-opts: @@ -1264,7 +1262,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 @@ -1276,8 +1273,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/ @@ -1295,4 +1290,4 @@ modules: sources: - type: git url: https://github.com/XargonWan/RetroDECK.git - branch: cooker-0.7.1b + branch: THISBRANCH 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/.github/workflows/TEST_release_info.yml b/old/workflows/TEST_release_info.yml similarity index 100% rename from .github/workflows/TEST_release_info.yml rename to old/workflows/TEST_release_info.yml diff --git a/.github/workflows/cooker.yml b/old/workflows/cooker.yml similarity index 100% rename from .github/workflows/cooker.yml rename to old/workflows/cooker.yml diff --git a/.github/workflows/flathub_push_cooker.yml b/old/workflows/flathub_push_cooker.yml similarity index 100% rename from .github/workflows/flathub_push_cooker.yml rename to old/workflows/flathub_push_cooker.yml diff --git a/.github/workflows/main.yml b/old/workflows/main.yml similarity index 100% rename from .github/workflows/main.yml rename to old/workflows/main.yml diff --git a/.github/workflows/remove-artifacts.yml b/old/workflows/remove-artifacts.yml similarity index 100% rename from .github/workflows/remove-artifacts.yml rename to old/workflows/remove-artifacts.yml diff --git a/rd-submodules/es-de/Window.cpp.patch b/rd-submodules/es-de/Window.cpp.patch index 6c9301ea..c099d83b 100644 --- a/rd-submodules/es-de/Window.cpp.patch +++ b/rd-submodules/es-de/Window.cpp.patch @@ -1,22 +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-23 13:12:15.625292630 +0200 -+++ emulationstation-de/es-core/src/Window.cpp 2023-08-23 14:04:13.393435463 +0200 -@@ -140,7 +140,7 @@ - mSplashTextScanning = std::unique_ptr( -- mDefaultFonts.at(1)->buildTextCache("Searching for games...", 0.0f, 0.0f, 0x777777FF)); -+ mDefaultFonts.at(1)->buildTextCache("Searching for games...", 0.0f, 0.0f, 0xC858E6FF)); - mSplashTextPopulating = std::unique_ptr( -- mDefaultFonts.at(1)->buildTextCache("Loading systems...", 0.0f, 0.0f, 0x777777FF)); -+ mDefaultFonts.at(1)->buildTextCache("Loading systems...", 0.0f, 0.0f, 0xC858E6FF)); - mSplashTextReloading = std::unique_ptr( -- mDefaultFonts.at(1)->buildTextCache("Reloading...", 0.0f, 0.0f, 0x777777FF)); -+ mDefaultFonts.at(1)->buildTextCache("Reloading...", 0.0f, 0.0f, 0xC858E6FF)); - -@@ -165,3 +165,3 @@ - progressBarRect.barPosY = mSplashTextPositions.y + (progressBarRect.barHeight * 2.0f); -- progressBarRect.color = 0x777777FF; +--- 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); -@@ -978 +978,2 @@ - } -+ diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch index fbfdda61..0b1cfb79 160000 --- a/rd-submodules/retroarch +++ b/rd-submodules/retroarch @@ -1 +1 @@ -Subproject commit fbfdda61b3da092a71cc53999dd3e7b909f244e2 +Subproject commit 0b1cfb79e591e10488a3262d6b38db843c39a409 diff --git a/rd-submodules/shared-modules b/rd-submodules/shared-modules index 50314360..a2441b96 160000 --- a/rd-submodules/shared-modules +++ b/rd-submodules/shared-modules @@ -1 +1 @@ -Subproject commit 50314360ded6fa3b9f0b602513b1164b7a6636ed +Subproject commit a2441b964afefd8cd1cebcdf562c7878670daf42