Merge branch 'feat/lighter-manifest' into feat/godot-configurator

This commit is contained in:
monkeyx-net 2024-08-04 21:20:36 +01:00
commit 46bf26b849
939 changed files with 2331 additions and 11390 deletions

View file

@ -8,8 +8,8 @@ on:
paths:
- '.github/workflows/**'
- 'automation_tools/**'
- 'emu-configs/**'
- 'es-configs/**'
- 'config/**'
- 'config/es-de/**'
- 'functions/**'
- 'rd-submodules/**'
- '*.sh'
@ -29,7 +29,7 @@ on:
jobs:
Building_RetroDECK:
runs-on: self-hosted
runs-on: retrodeck
steps:
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
@ -38,7 +38,7 @@ jobs:
continue-on-error: true
- name: Clone RetroDECK repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: 'true'
@ -64,16 +64,21 @@ jobs:
# if the branch is coming from a PR the tag should be manually built
- name: "Generate version tag"
run: |
source automation_tools/version_extractor.sh
MANIFEST_VERSION="$(fetch_manifest_version)"
echo "MANIFEST_VERSION=$MANIFEST_VERSION" >> $GITHUB_ENV
if [[ "$BRANCH_NAME" == 'refs/'* ]]; then
pr_number=$(echo ${{env.BRANCH_NAME}} | awk -F'/' '{print $3}')
source_branch=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/pulls/$pr_number" | jq -r '.head.ref')
source_branch=$(curl -s "https://api.github.com/repos/RetroDECK/RetroDECK/pulls/$pr_number" | jq -r '.head.ref')
source_branch=${source_branch//\//-}
echo "[DEBUG] source branch is: $source_branch"
echo "TAG=PR-$pr_number-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV
else
echo "TAG=${{env.BRANCH_NAME}}-${{ env.buildid }}" >> $GITHUB_ENV
TAG="$MANIFEST_VERSION-${{ env.buildid }}"
echo "TAG=$TAG" >> $GITHUB_ENV
fi
echo "Version TAG: ${{ env.TAG }}"
echo "MANIFEST_VERSION: $MANIFEST_VERSION"
echo "Version TAG: $TAG"
# backing up manifest in case download fails and hashes must be recalculated
- name: Manifest backup
@ -110,14 +115,6 @@ jobs:
- name: Build flatpak
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh"
- name: Create Artifact for flathub
run: |
tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz))
echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
continue-on-error: true
- name: Create Bundle
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
@ -142,7 +139,7 @@ jobs:
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
On branch [${{env.BRANCH_NAME}}](https://github.com/XargonWan/RetroDECK/tree/${{env.BRANCH_NAME}}).
On branch [${{env.BRANCH_NAME}}](https://github.com/RetroDECK/RetroDECK/tree/${{env.BRANCH_NAME}}).
## Commits since last release
${{ steps.commits.outputs.commits }}
@ -156,17 +153,36 @@ jobs:
allowUpdates: true
makeLatest: ${{env.MAKE_LATEST}} # if it's a feat branch is not considered the latest build
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK-cooker
repo: Cooker
continue-on-error: true
- name: Rewrite Tag
run: |
git submodule deinit -f --all
git fetch --tags
if git rev-parse --verify "${{ env.TAG }}" >/dev/null 2>&1; then # if the tag exists
git tag -d "${{ env.TAG }}" # remove it from local repo
git push --delete origin "${{ env.TAG }}" # and from remote
fi
git tag "${{ env.TAG }}" # Create the tag locally
git push origin "${{ env.TAG }}" # Push the new tag in the remote repo
# In case it cannot publish the release at least it's providing the flatpak file for creating a manual release
- name: Upload RetroDECK-cooker.flatpak
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: retrodeck-flatpak
path: RetroDECK-cooker.flatpak
continue-on-error: true
- name: Create Artifact for flathub
run: |
tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz))
echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
continue-on-error: true
# - name: Upload RetroDECK-cooker.flatpak to Gitea Release
# run: |
# # Set variables for Gitea host, organization, repository, access token, and release details

56
.github/workflows/emulator-updates.yaml vendored Normal file
View file

@ -0,0 +1,56 @@
name: Check Emulator Updates
on:
# schedule:
# - cron: '0 18 * * *'
# push:
# branches:
# - main
workflow_dispatch:
jobs:
check-updates:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flatpak-builder-tools
- name: Check for emulator updates
run: |
flatpak-builder --check-updates ./net.retrodeck.retrodeck.yml --modules "modulo1,modulo2" # Sostituisci modulo1,modulo2 con i tuoi moduli specifici
- name: Configure Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Create or update branch
run: |
git fetch origin
if git rev-parse --verify origin/feat/auto-emulator-updates; then
git branch -D feat/auto-emulator-updates
fi
git checkout -b feat/auto-emulator-updates
git add .
git commit -m "Update emulators"
git push --set-upstream origin feat/auto-emulator-updates --force
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
source: feat/auto-emulator-updates
destination: cooker-0.8.2b
title: 'Automated Emulator Updates'
body: 'This PR contains automated updates for specified emulators.'

View file

@ -26,7 +26,7 @@ jobs:
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
git clone --recursive https://github.com/RetroDECK/RetroDECK RetroDECK
cd $gits_folder/RetroDECK
relname="main-"$(git rev-parse --short HEAD)
@ -83,7 +83,7 @@ jobs:
# curl -sL \
# -H "Accept: application/vnd.github+json" \
# -H "Authorization: Bearer ${{ secrets.TRIGGER_BUILD_TOKEN }}" \
# https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases \
# https://api.github.com/repos/RetroDECK/Cooker/releases \
# | jq .[0].tag_name \
# | tr -d \" \
# )

View file

@ -7,8 +7,8 @@ on:
paths:
- '.github/workflows/**'
- 'automation_tools/**'
- 'emu-configs/**'
- 'es-configs/**'
- 'config/**'
- 'config/es-de/**'
- 'functions/**'
- 'rd-submodules/**'
- '*.sh'
@ -24,7 +24,7 @@ on:
jobs:
Building_RetroDECK:
runs-on: self-hosted
runs-on: retrodeck
steps:
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
@ -93,7 +93,7 @@ jobs:
- name: Getting version info
id: version
run: |
appdata="https://raw.githubusercontent.com/XargonWan/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
appdata="https://raw.githubusercontent.com/RetroDECK/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
@ -115,6 +115,17 @@ jobs:
repo: RetroDECK
continue-on-error: true
- name: Rewrite Tag
run: |
git submodule deinit -f --all
git fetch --tags
if git rev-parse --verify "${{ env.REL_VER }}" >/dev/null 2>&1; then # if the tag exists
git tag -d "${{ env.REL_VER }}" # remove it from local repo
git push --delete origin "${{ env.REL_VER }}" # and from remote
fi
git tag "${{ env.REL_VER }}" # Create the tag locally
git push origin "${{ env.REL_VER }}" # Push the new tag in the remote repo
# In case it cannot publish the release at least it's providing the flatpak file for creating a manual release
- name: Upload RetroDECK.flatpak
uses: actions/upload-artifact@v3
@ -166,6 +177,7 @@ jobs:
-H "Content-Type: multipart/form-data" \
-F "attachment=@RetroDECK-Artifact.tar.gz" \
"http://$UPLOAD_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-Artifact.tar.gz"
continue-on-error: true # this will be in place until we reate an artifacts website that bypasses cloudflare limit
- name: Upload RetroDECK.flatpak.sha to Gitea Release
run: |
@ -176,3 +188,4 @@ jobs:
"https://$UPLOAD_HOST/RetroDECK/RetroDECK/releases/${{ env.REL_VER }}/assets?name=RetroDECK.flatpak.sha"
env:
GITEA_TOKEN: ${{ secrets.GITEA_TRIGGER_BUILD_TOKEN }}
continue-on-error: true # this will be in place until we reate an artifacts website that bypasses cloudflare limit

2
.gitignore vendored
View file

@ -18,7 +18,7 @@ backup
tmp
.godot
rd-submodules/es-de/patches-tmp*
.local/
retrodeck-repo
buildid
*.bak
incconfigs/

9
.gitmodules vendored
View file

@ -1,9 +0,0 @@
[submodule "rd-submodules/shared-modules"]
path = rd-submodules/shared-modules
url = https://github.com/flathub/shared-modules.git
[submodule "rd-submodules/retroarch"]
path = rd-submodules/retroarch
url = https://github.com/flathub/org.libretro.RetroArch.git
[submodule "rd-submodules/ryujinx"]
path = rd-submodules/ryujinx
url = https://github.com/flathub/org.ryujinx.Ryujinx

View file

@ -1,13 +1,13 @@
<p float="center">
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/logo.png?raw=true" alt="RetroDECK logo" width="600"/>
<img src="https://github.com/RetroDECK/RetroDECK/blob/main/res/logo.png?raw=true" alt="RetroDECK logo" width="600"/>
</p>
# RetroDECK on your device!
<p float="center">
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen05.jpeg?raw=true" alt="screenshot" width="300"/>
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen06.jpeg?raw=true" alt="screenshot" width="300"/>
<img src="https://github.com/RetroDECK/RetroDECK/blob/main/res/screenshots/screen05.jpeg?raw=true" alt="screenshot" width="300"/>
<img src="https://github.com/RetroDECK/RetroDECK/blob/main/res/screenshots/screen06.jpeg?raw=true" alt="screenshot" width="300"/>
</p>
Instead of having several different emulators, engines and frontends on your Linux/SteamOS system you only need one: RetroDECK.
@ -15,7 +15,7 @@ Instead of having several different emulators, engines and frontends on your Lin
![Flathub](https://img.shields.io/flathub/downloads/net.retrodeck.retrodeck)
![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)
![GitHub](https://img.shields.io/github/license/RetroDECK/RetroDECK)
[![Documentation Status](https://readthedocs.org/projects/retrodeck/badge/?version=latest)](https://retrodeck.readthedocs.io/en/latest/?badge=latest)
**The RetroDECK Wiki & FAQ**
@ -77,7 +77,7 @@ For our long term vision you can check out the following wiki page:
Use the supports channels on [Discord](https://discord.gg/WDc5C9YWMx) `🤝-community-support` and `🆘-support`.
### The RetroDECK community:
[Website](https://retrodeck.net) <br/>
[Wiki](https://github.com/XargonWan/RetroDECK/wiki) <br/>
[Wiki](https://github.com/RetroDECK/RetroDECK/wiki) <br/>
[Discord](https://discord.gg/WDc5C9YWMx)<br/>
[Lemmy](https://lemmy.zip/c/retrodeck)<br/>
[Subreddit](https://www.reddit.com/r/retrodeck)
@ -96,21 +96,22 @@ Read up here on how to help out, there is something for everyone:
## Our repositories:
| Name | Description |
|-------------------------------------------------------------|-----------------------------------------------------------|
| [RetroDECK](https://github.com/XargonWan/RetroDECK) | This one, our main repo where the core of the project is |
| [RetroDECK-cooker](https://github.com/XargonWan/RetroDECK-cooker) | Where we publish our test build, no code is hosted here |
| [RetroDECK-Wiki](https://github.com/XargonWan/RetroDECK-Wiki) | Where our wiki source code is |
| [RetroDECK-website](https://github.com/XargonWan/RetroDECK-website) | Where our website source code is |
| [RetroDECK](https://github.com/RetroDECK/RetroDECK) | This one, our main repo where the core of the project is |
| [Cooker](https://github.com/RetroDECK/Cooker) | Where we publish our test build, no code is hosted here |
| [RetroDECK/Wiki](https://github.com/RetroDECK/Wiki) | Where our wiki source code is |
| [RetroDECK-website](https://github.com/RetroDECK/RetroDECK-website) | Where our website source code is |
| [RetroDECK on Flathub](https://github.com/flathub/net.retrodeck.retrodeck) | Our little space in Flathub's organization |
| [RetroDECK-MAME](https://github.com/XargonWan/RetroDECK-MAME) | MAME is big to build, so it's pre-built here and then imported in the build |
| [RetroDECK-ES-DE](https://github.com/XargonWan/RetroDECK-ES-DE) | This is where we store our patched fork of ES-DE |
| [RetroDECK/MAME](https://github.com/RetroDECK/MAME) | MAME is big to build, so it's pre-built here and then imported in the build |
| [RetroDECK/ES-DE](https://github.com/RetroDECK/ES-DE) | This is where we store our patched fork of ES-DE |
And many more, for the full list please check our [repositories page on GitHub](https://github.com/orgs/RetroDECK/repositories).
# The RetroDECK Wiki
Please check out the [Wiki](https://github.com/XargonWan/RetroDECK/wiki) for even more information.
Please check out the [Wiki](https://github.com/RetroDECK/RetroDECK/wiki) for even more information.
## The FAQ
The RetroDECK [FAQ](https://github.com/XargonWan/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions) on the wiki has a vast variety of questions and answers.
The RetroDECK [FAQ](https://github.com/RetroDECK/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions) on the wiki has a vast variety of questions and answers.
# How to get support?
Use the supports channels on [Discord](https://discord.gg/WDc5C9YWMx).

View file

@ -30,7 +30,7 @@ log i "Today is $today_date"
release_snippet="\
<releases>
<release version=\"$appdata_version\" date=\"$today_date\">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/$appdata_version</url>
<url>https://github.com/RetroDECK/RetroDECK/releases/tag/$appdata_version</url>
<description>
RELEASE_NOTES_PLACEHOLDER
</description>
@ -41,7 +41,7 @@ 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
git clone https://github.com/RetroDECK/RetroDECK.wiki.git /tmp/wiki
# Path to the markdown file
wiki="/tmp/wiki/Version-history:-Patch-Notes.md"

View file

@ -1,15 +1,24 @@
# The proper format for this file is
# ACTION^PLACEHOLDERTEXT^URL^REPO(Optional)
# hash^DOOMSHAPLACEHOLDER^https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip
hash^DUCKSTATIONSHAPLACEHOLDER^https://github.com/stenzek/duckstation/releases/download/preview/DuckStation-x64.AppImage
# Please leave some newlines in the end of this file or it will break
latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main
outside_file^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid
branch^THISBRANCH
hash^RASHAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch.7z
hash^SAMEDUCKSHAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/latest/sameduck_libretro.so.zip
hash^PPSSPPBIOSHASHPLACEHOLDER^https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip
hash^MSXBIOSHASHPLACEHOLDER^http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip
hash^XEMUHDDHASHPLACEHOLDER^https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip
hash^VITA3KSHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip
hash^RANIGHTLYCORESPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch_cores.7z
hash^RETRODECKMAMEPLACEHOLDER^"https://github.com/XargonWan/RetroDECK-MAME/releases/download/$(curl -s https://api.github.com/repos/XargonWan/RetroDECK-MAME/releases/latest | grep -oP '"tag_name": "\K(.*?)(?=")')/RetroDECK-MAME-Artifact.tar.gz"
url^RETRODECKMAMEURLPLACEHOLDER^"https://github.com/XargonWan/RetroDECK-MAME/releases/download/$(curl -s https://api.github.com/repos/XargonWan/RetroDECK-MAME/releases/latest | grep -oP '"tag_name": "\K(.*?)(?=")')/RetroDECK-MAME-Artifact.tar.gz"
latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main
outside_file^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid
branch^THISBRANCH
hash^RETRODECKPPSSPPLATEST^https://github.com/RetroDECK/org.ppsspp.PPSSPP/releases/latest/download/RetroDECK-PPSSPP-Artifact.tar.gz
hash^RETRODECKDOLPHINLATEST^https://github.com/RetroDECK/org.DolphinEmu.dolphin-emu/releases/latest/download/RetroDECK-dolphin-Artifact.tar.gz
hash^RETRODECKPRIMEHACKLATEST^https://github.com/RetroDECK/io.github.shiiion.primehack/releases/latest/download/RetroDECK-primehack-Artifact.tar.gz
hash^RETRODECKMELONDSLATEST^https://github.com/RetroDECK/net.kuribo64.melonDS/releases/latest/download/RetroDECK-melonds-Artifact.tar.gz
hash^RETRODECKSOLARUSLATEST^https://github.com/RetroDECK/org.solarus_games.solarus.Launcher/releases/latest/download/RetroDECK-solarus-Artifact.tar.gz
hash^RETRODECKGZDOOMLATEST^https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-gzdoom-Artifact.tar.gz
hash^RETRODECKMAMELATEST^https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz

File diff suppressed because it is too large Load diff

View file

@ -3,9 +3,9 @@
# This is building the bundle RetroDECK.flatpak after the download and build steps are done
if [ "${GITHUB_REF##*/}" = "main" ]; then
flatpak build-bundle "${GITHUB_WORKSPACE}/.local" "$GITHUB_WORKSPACE/RetroDECK.flatpak" net.retrodeck.retrodeck
flatpak build-bundle "${GITHUB_WORKSPACE}/retrodeck-repo" "$GITHUB_WORKSPACE/RetroDECK.flatpak" net.retrodeck.retrodeck
sha256sum RetroDECK.flatpak > RetroDECK.flatpak.sha
else
flatpak build-bundle "${GITHUB_WORKSPACE}/.local" "$GITHUB_WORKSPACE/RetroDECK-cooker.flatpak" net.retrodeck.retrodeck
flatpak build-bundle "${GITHUB_WORKSPACE}/retrodeck-repo" "$GITHUB_WORKSPACE/RetroDECK-cooker.flatpak" net.retrodeck.retrodeck
sha256sum RetroDECK-cooker.flatpak > RetroDECK-cooker.flatpak.sha
fi

View file

@ -12,12 +12,12 @@ else
FOLDER=retrodeck-flatpak-cooker
fi
mkdir -vp "${GITHUB_WORKSPACE}"/{.local,retrodeck-flatpak-cooker}
mkdir -vp "${GITHUB_WORKSPACE}"/{retrodeck-repo,retrodeck-flatpak-cooker}
flatpak-builder --user --force-clean \
--install-deps-from=flathub \
--install-deps-from=flathub-beta \
--repo="${GITHUB_WORKSPACE}/.local" \
--repo="${GITHUB_WORKSPACE}/retrodeck-repo" \
--download-only \
"${GITHUB_WORKSPACE}/${FOLDER}" \
net.retrodeck.retrodeck.yml

View file

@ -12,13 +12,13 @@ else
FOLDER=retrodeck-flatpak-cooker
fi
mkdir -vp ${GITHUB_WORKSPACE}/.local
mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-repo
mkdir -vp ${GITHUB_WORKSPACE}/"$FOLDER"
flatpak-builder --user --force-clean \
--install-deps-from=flathub \
--install-deps-from=flathub-beta \
--repo=${GITHUB_WORKSPACE}/.local \
--repo=${GITHUB_WORKSPACE}/retrodeck-repo \
--disable-download \
"${GITHUB_WORKSPACE}/$FOLDER" \
net.retrodeck.retrodeck.yml

View file

@ -42,8 +42,8 @@ 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."
if [[ "$manifest_version" == "main" || "$manifest_version" == "THISBRANCH" || "$manifest_version" == *"cooker"* ]]; then
echo "Manifest version cannot be 'main', 'THISBRANCH', or contain 'cooker'. Please fix it."
exit 1
fi

View file

@ -1,46 +1,57 @@
#!/bin/bash
# Set script to exit immediately on any error
set -e
# For the file paths to work correctly, call this script with this command from the cloned repo folder root:
# sh automation_tools/pre_build_automation.sh
# Different actions need different information in the task list file
# branch: This changes the placeholder text to the currently-detected GIT branch if an automated build was started from a PR environment.
# hash: Finds the SHA256 hash of a file online and updates the placeholder in the manifest.
# hash: Finds the SHA256 hash of a file online and updates the placeholder in the manifest.
# Needs the URL of the file, in this line format: hash^PLACEHOLDERTEXT^url
# latestcommit: Finds the most recent commit of a git repo and updated the placeholder in the manifest.
# latestcommit: Finds the most recent commit of a git repo and updates the placeholder in the manifest.
# Needs the URL of the repo and the branch to find the latest commit from, in this line format: latestcommit^PLACEHOLDERTEXT^url^branch
# latestghtag: Finds the most recent tag on a GitHub repo, for repos that don't have normal releases, but also shouldn't use the latest commit
# Needs the URL of the repo, in this line format: latestghtag^PLACEHOLDERTEXT^url
# latestghrelease: Finds the download URL and SHA256 hash of the latest release from a git repo.
# Needs the API URL of the repo, in this line format: latestappimage^PLACEHOLDERTEXT^https://api.github.com/repos/<owner-name>/<repo-name>/releases/latest^<file suffix>
# As this command updates two different placeholders (one for the URL, one for the file hash) in the manifest,
# Needs the API URL of the repo, in this line format: latestghrelease^PLACEHOLDERTEXT^https://api.github.com/repos/<owner-name>/<repo-name>/releases/latest^<file suffix>
# As this command updates two different placeholders (one for the URL, one for the file hash) in the manifest,
# the URL that would be used in the above example is "PLACEHOLDERTEXT" and the hash placeholder text would be "HASHPLACEHOLDERTEXT"
# The "HASH" prefix of the placeholder text is hardcoded in the script
# The "HASH" prefix of the hash placeholder text is hardcoded in the script.
# The <file_suffix> will be the file extension or other identifying suffix at the end of the file name that can be used to select from multiple releases.
# Example: If there are these file options for a given release:
# yuzu-mainline-20240205-149629642.AppImage
# yuzu-linux-20240205-149629642-source.tar.xz
# yuzu-linux-20240205-149629642-debug.tar.xz
# yuzu-linux-20240205-149629642-debug.tar.xz
# Entering "AppImage" (without quotes) for the <file_suffix> will identify yuzu-mainline-20240205-149629642.AppImage
# Entering "source-.tar.xz" (without quotes) for the <file_suffix> will identify yuzu-linux-20240205-149629642-source.tar.xz
# Entering "debug-tar.xz" (without quotes) for the <file_suffix> will identify yuzu-linux-20240205-149629642-debug.tar.xz
# As a file extension like ".tar.zx" can apply to multiple file options, the entire part that is appended to each release name should be included.
# As a file extension like ".tar.xz" can apply to multiple file options, the entire part that is appended to each release name should be included.
# The <file_suffix> will also only consider entries where the given suffix is at the end of the file name. So "AppImage" will identify "file.AppImage" but not "file.AppImage.zsync"
# latestghreleasesha: Finds the SHA256 hash of a specific asset in the latest release from a git repo.
# Needs the API URL of the repo, in this line format: latestghreleasesha^PLACEHOLDERTEXT^https://api.github.com/repos/<owner-name>/<repo-name>/releases/latest^<file suffix>
# This command updates the placeholder in the manifest with the SHA256 hash of the specified asset.
# outside_file: Prints the contents of a file from the build environment (such as the buildid file) and replaces the placeholder text with those contents.
# outside_env_var: Gets the value of an environmental variable from the build environment (the output of "echo $var" from the terminal) and replaces the placeholder text with that value.
# custom_command: Runs a single command explicitly as written in the $URL field of the task list, including variable and command expansion. This should work the same as if you were runnig the command directly from the terminal.
# custom_command: Runs a single command explicitly as written in the $URL field of the task list, including variable and command expansion. This should work the same as if you were running the command directly from the terminal.
# This command does not need a PLACEHOLDERTEXT field in the task list, so needs to be in this syntax: custom_command^^$COMMAND
# url: This is used to calculate a dynamic URL and the value to the $caluculated_url environmental variable, for use in other subsequent commands.
# url: This is used to calculate a dynamic URL and the value to the $calculated_url environmental variable, for use in other subsequent commands.
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)
# Define paths
rd_manifest="${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml"
automation_task_list="${GITHUB_WORKSPACE}/automation_tools/automation_task_list.cfg"
# During the PR automated tests instead of the branch name is returned "HEAD", fixing it
if [ $current_branch == "HEAD" ]; then
echo "Looks like we are on a PR environment, retrieving the branch name from which the PR is raised."
current_branch=$(echo $GITHUB_REF | sed 's@refs/heads/@@')
echo "The branch name from which the PR is raised is \"$current_branch\"."
fi
# Retrieve current git branch
get_current_branch() {
local branch=$(git rev-parse --abbrev-ref HEAD)
if [ "$branch" == "HEAD" ]; then
echo "$GITHUB_REF" | sed 's@refs/heads/@@'
else
echo "$branch"
fi
}
current_branch=$(get_current_branch)
echo "Manifest location: $rd_manifest"
echo "Automation task list location: $automation_task_list"
@ -49,103 +60,130 @@ 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
# Functions to handle different actions
handle_branch() {
local placeholder="$1"
echo "Replacing placeholder $placeholder with branch $current_branch"
/bin/sed -i 's^'"$placeholder"'^'"$current_branch"'^g' "$rd_manifest"
}
handle_hash() {
local placeholder="$1"
local url="$2"
local calculated_url=$(eval echo "$url")
local hash=$(curl -sL "$calculated_url" | sha256sum | cut -d ' ' -f1)
echo "Replacing placeholder $placeholder with hash $hash"
/bin/sed -i 's^'"$placeholder"'^'"$hash"'^g' "$rd_manifest"
}
handle_latestcommit() {
local placeholder="$1"
local url="$2"
local branch="$3"
local commit=$(git ls-remote "$url" "$branch" | cut -f1)
echo "Replacing placeholder $placeholder with latest commit $commit"
/bin/sed -i 's^'"$placeholder"'^'"$commit"'^g' "$rd_manifest"
}
handle_latestghtag() {
local placeholder="$1"
local url="$2"
local tag=$(git ls-remote --tags "$url" | tail -n 1 | cut -f2 | sed 's|refs/tags/||')
echo "Replacing placeholder $placeholder with latest tag $tag"
/bin/sed -i 's^'"$placeholder"'^'"$tag"'^g' "$rd_manifest"
}
handle_latestghrelease() {
local placeholder="$1"
local url="$2"
local suffix="$3"
echo "Fetching release data from: $url"
local release_data=$(curl -s "$url")
echo "Release data fetched."
local ghreleaseurl=$(echo "$release_data" | jq -r ".assets[] | select(.name | endswith(\"$suffix\")).browser_download_url")
if [[ -z "$ghreleaseurl" ]]; then
echo "Error: No asset found with suffix $suffix"
exit 1
fi
local ghreleasehash=$(curl -sL "$ghreleaseurl" | sha256sum | cut -d ' ' -f1)
echo "Replacing placeholder $placeholder with URL $ghreleaseurl and hash $ghreleasehash"
/bin/sed -i 's^'"$placeholder"'^'"$ghreleaseurl"'^g' "$rd_manifest"
/bin/sed -i 's^'"HASHFOR$placeholder"'^'"$ghreleasehash"'^g' "$rd_manifest"
}
handle_latestghreleasesha() {
local placeholder="$1"
local url="$2"
local suffix="$3"
echo "Fetching release data from: $url"
local release_data=$(curl -s "$url")
echo "Release data fetched."
local ghreleaseurl=$(echo "$release_data" | jq -r ".assets[] | select(.name | endswith(\"$suffix\")).browser_download_url")
if [[ -z "$ghreleaseurl" ]]; then
echo "Error: No asset found with suffix $suffix"
exit 1
fi
local ghreleasehash=$(curl -sL "$ghreleaseurl" | sha256sum | cut -d ' ' -f1)
echo "Replacing placeholder $placeholder with hash $ghreleasehash"
/bin/sed -i 's^'"$placeholder"'^'"$ghreleasehash"'^g' "$rd_manifest"
}
handle_outside_file() {
local placeholder="$1"
local file_path="$2"
if [[ "$file_path" == \$* ]]; then
eval file_path="$file_path"
fi
local content=$(cat "$file_path")
echo "Replacing placeholder $placeholder with content of file $file_path"
/bin/sed -i 's^'"$placeholder"'^'"$content"'^g' "$rd_manifest"
}
handle_outside_env_var() {
local placeholder="$1"
local var_name="$2"
if [[ "$var_name" == \$* ]]; then
eval var_name="$var_name"
fi
local value=$(echo "$var_name")
echo "Replacing placeholder $placeholder with environment variable $value"
/bin/sed -i 's^'"$placeholder"'^'"$value"'^g' "$rd_manifest"
}
handle_custom_command() {
local command="$1"
echo "Executing custom command: $command"
eval "$command"
}
handle_url() {
local placeholder="$1"
local url="$2"
local calculated_url=$(eval echo "$url")
echo "Replacing placeholder $placeholder with calculated URL $calculated_url"
/bin/sed -i 's^'"$placeholder"'^'"$calculated_url"'^g' "$rd_manifest"
}
# Process the task list
while IFS="^" read -r action placeholder url branch || [[ -n "$action" ]]; do
if [[ ! "$action" == "#"* ]] && [[ -n "$action" ]]; then
case "$action" in
"branch" )
echo
echo "Placeholder text: $placeholder"
echo "Current branch:" "$current_branch"
echo
/bin/sed -i 's^'"$placeholder"'^'"$current_branch"'^g' $rd_manifest
;;
"hash" )
echo
echo "Placeholder text: $placeholder"
calculated_url=$(eval echo "$url") # in case the url has to be calculated from an expression
echo "URL to hash: $calculated_url"
echo
hash=$(curl -sL "$calculated_url" | sha256sum | cut -d ' ' -f1)
echo "Hash found: $hash"
/bin/sed -i 's^'"$placeholder"'^'"$hash"'^' $rd_manifest
;;
"latestcommit" )
echo
echo "Placeholder text: $placeholder"
echo "Repo to get latest commit from: $url branch: $branch"
echo
commit=$(git ls-remote "$url" "$branch" | cut -f1)
echo "Commit found: $commit"
/bin/sed -i 's^'"$placeholder"'^'"$commit"'^' $rd_manifest
;;
"latestghtag" )
echo
echo "Placeholder text: $placeholder"
echo "Repo to get the latest tag from: $url"
echo
tag=$(git ls-remote "$url" | tail -n 1 | cut -f2 | sed 's|refs/tags/||')
echo "Tag found: $tag"
/bin/sed -i 's^'"$placeholder"'^'"$tag"'^' $rd_manifest
;;
"latestghrelease" )
echo
echo "Placeholder text: $placeholder"
echo "Repo to look for latest releases: $url"
echo
ghreleaseurl=$(curl -s "$url" | grep browser_download_url | grep "$branch\""$ | cut -d : -f 2,3 | tr -d \" | sed -n 1p | tr -d ' ')
echo "GitHub release URL found: $ghreleaseurl"
/bin/sed -i 's^'"$placeholder"'^'"$ghreleaseurl"'^' $rd_manifest
ghreleasehash=$(curl -sL "$ghreleaseurl" | sha256sum | cut -d ' ' -f1)
echo "GitHub release hash found: $ghreleasehash"
/bin/sed -i 's^'"HASHFOR$placeholder"'^'"$ghreleasehash"'^' $rd_manifest
;;
"outside_file" )
if [[ "$url" = \$* ]]; then # If value is a reference to a variable name
eval url="$url"
fi
echo
echo "Placeholder text: $placeholder"
echo "Information being injected: $(cat $url)"
echo
/bin/sed -i 's^'"$placeholder"'^'"$(cat $url)"'^' $rd_manifest
;;
"outside_env_var" )
if [[ "$url" = \$* ]]; then # If value is a reference to a variable name
eval url="$url"
fi
echo
echo "Placeholder text: $placeholder"
echo "Information being injected: $(echo $url)"
echo
/bin/sed -i 's^'"$placeholder"'^'"$(echo $url)"'^' $rd_manifest
;;
"custom_command" )
echo
echo "Command to run: $url"
echo
eval "$url"
;;
"url" )
# this is used to calculate a dynamic url
echo
echo "Placeholder text: $placeholder"
calculated_url=$(eval echo "$url")
echo "Information being injected: $calculated_url"
echo
/bin/sed -i 's^'"$placeholder"'^'"$calculated_url"'^' $rd_manifest
;;
"branch" ) handle_branch "$placeholder" ;;
"hash" ) handle_hash "$placeholder" "$url" ;;
"latestcommit" ) handle_latestcommit "$placeholder" "$url" "$branch" ;;
"latestghtag" ) handle_latestghtag "$placeholder" "$url" ;;
"latestghrelease" ) handle_latestghrelease "$placeholder" "$url" "$branch" ;;
"latestghreleasesha" ) handle_latestghreleasesha "$placeholder" "$url" "$branch" ;;
"outside_file" ) handle_outside_file "$placeholder" "$url" ;;
"outside_env_var" ) handle_outside_env_var "$placeholder" "$url" ;;
"custom_command" ) handle_custom_command "$url" ;;
"url" ) handle_url "$placeholder" "$url" ;;
esac
fi
done < "$automation_task_list"

View file

@ -12,7 +12,7 @@ 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")
LATEST_RELEASE=$(curl -s "https://api.github.com/repos/RetroDECK/RetroDECK/releases/latest")
# Extracting tag name from the latest release
repo_version=$(echo "$LATEST_RELEASE" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
# Printing results
@ -32,3 +32,5 @@ fetch_manifest_version(){
manifest_version=$(echo "$manifest_version" | awk '{$1=$1;print}')
echo "$manifest_version"
}
echo "Version extractor functions loaded"

View file

@ -25,7 +25,7 @@
</controller>
<controller>
<api>SDLController</api>
<uuid>0_03000000de280000ff11000001000000</uuid>
<uuid>0_030079f6de280000ff11000001000000</uuid>
<display_name>Steam Virtual Gamepad</display_name>
<rumble>0</rumble>
<axis>
@ -41,73 +41,25 @@
<range>1</range>
</trigger>
<mappings>
<entry>
<mapping>12</mapping>
<button>12</button>
</entry>
<entry>
<mapping>13</mapping>
<button>13</button>
</entry>
<entry>
<mapping>14</mapping>
<button>14</button>
</entry>
<entry>
<mapping>15</mapping>
<button>7</button>
</entry>
<entry>
<mapping>16</mapping>
<button>8</button>
</entry>
<entry>
<mapping>17</mapping>
<button>45</button>
</entry>
<entry>
<mapping>18</mapping>
<button>39</button>
</entry>
<entry>
<mapping>19</mapping>
<button>44</button>
</entry>
<entry>
<mapping>20</mapping>
<button>38</button>
</entry>
<entry>
<mapping>21</mapping>
<button>47</button>
</entry>
<entry>
<mapping>22</mapping>
<button>41</button>
</entry>
<entry>
<mapping>23</mapping>
<button>46</button>
</entry>
<entry>
<mapping>25</mapping>
<button>8</button>
</entry>
<entry>
<mapping>1</mapping>
<button>0</button>
</entry>
<entry>
<mapping>2</mapping>
<button>1</button>
</entry>
<entry>
<mapping>2</mapping>
<button>0</button>
</entry>
<entry>
<mapping>3</mapping>
<button>2</button>
<button>3</button>
</entry>
<entry>
<mapping>4</mapping>
<button>3</button>
<button>2</button>
</entry>
<entry>
<mapping>5</mapping>
@ -141,6 +93,54 @@
<mapping>24</mapping>
<button>40</button>
</entry>
<entry>
<mapping>23</mapping>
<button>46</button>
</entry>
<entry>
<mapping>22</mapping>
<button>41</button>
</entry>
<entry>
<mapping>21</mapping>
<button>47</button>
</entry>
<entry>
<mapping>20</mapping>
<button>38</button>
</entry>
<entry>
<mapping>19</mapping>
<button>44</button>
</entry>
<entry>
<mapping>18</mapping>
<button>39</button>
</entry>
<entry>
<mapping>17</mapping>
<button>45</button>
</entry>
<entry>
<mapping>16</mapping>
<button>8</button>
</entry>
<entry>
<mapping>15</mapping>
<button>7</button>
</entry>
<entry>
<mapping>14</mapping>
<button>14</button>
</entry>
<entry>
<mapping>13</mapping>
<button>13</button>
</entry>
<entry>
<mapping>12</mapping>
<button>12</button>
</entry>
</mappings>
</controller>
</emulated_controller>

View file

@ -4,7 +4,7 @@
<profile>SteamInput-P1</profile>
<controller>
<api>SDLController</api>
<uuid>0_03000000de280000ff11000001000000</uuid>
<uuid>0_030079f6de280000ff11000001000000</uuid>
<display_name>Steam Virtual Gamepad</display_name>
<rumble>0</rumble>
<axis>
@ -21,72 +21,64 @@
</trigger>
<mappings>
<entry>
<mapping>1</mapping>
<button>0</button>
</entry>
<entry>
<mapping>14</mapping>
<button>14</button>
</entry>
<entry>
<mapping>2</mapping>
<button>1</button>
</entry>
<entry>
<mapping>15</mapping>
<button>7</button>
</entry>
<entry>
<mapping>16</mapping>
<mapping>25</mapping>
<button>8</button>
</entry>
<entry>
<mapping>17</mapping>
<button>45</button>
</entry>
<entry>
<mapping>18</mapping>
<button>39</button>
</entry>
<entry>
<mapping>19</mapping>
<button>44</button>
</entry>
<entry>
<mapping>20</mapping>
<button>38</button>
</entry>
<entry>
<mapping>21</mapping>
<button>47</button>
</entry>
<entry>
<mapping>22</mapping>
<button>41</button>
<mapping>24</mapping>
<button>40</button>
</entry>
<entry>
<mapping>23</mapping>
<button>46</button>
</entry>
<entry>
<mapping>25</mapping>
<mapping>22</mapping>
<button>41</button>
</entry>
<entry>
<mapping>21</mapping>
<button>47</button>
</entry>
<entry>
<mapping>20</mapping>
<button>38</button>
</entry>
<entry>
<mapping>19</mapping>
<button>44</button>
</entry>
<entry>
<mapping>18</mapping>
<button>39</button>
</entry>
<entry>
<mapping>17</mapping>
<button>45</button>
</entry>
<entry>
<mapping>16</mapping>
<button>8</button>
</entry>
<entry>
<mapping>12</mapping>
<button>12</button>
<mapping>15</mapping>
<button>7</button>
</entry>
<entry>
<mapping>14</mapping>
<button>14</button>
</entry>
<entry>
<mapping>13</mapping>
<button>13</button>
</entry>
<entry>
<mapping>11</mapping>
<button>11</button>
<mapping>12</mapping>
<button>12</button>
</entry>
<entry>
<mapping>24</mapping>
<button>40</button>
<mapping>11</mapping>
<button>11</button>
</entry>
<entry>
<mapping>10</mapping>
@ -114,11 +106,19 @@
</entry>
<entry>
<mapping>4</mapping>
<button>3</button>
<button>2</button>
</entry>
<entry>
<mapping>3</mapping>
<button>2</button>
<button>3</button>
</entry>
<entry>
<mapping>2</mapping>
<button>0</button>
</entry>
<entry>
<mapping>1</mapping>
<button>1</button>
</entry>
</mappings>
</controller>

View file

@ -4,7 +4,7 @@
<profile>SteamInput-P1</profile>
<controller>
<api>SDLController</api>
<uuid>0_03000000de280000ff11000001000000</uuid>
<uuid>0_030079f6de280000ff11000001000000</uuid>
<display_name>Steam Virtual Gamepad</display_name>
<rumble>0</rumble>
<axis>
@ -20,10 +20,62 @@
<range>1</range>
</trigger>
<mappings>
<entry>
<mapping>1</mapping>
<button>1</button>
</entry>
<entry>
<mapping>2</mapping>
<button>0</button>
</entry>
<entry>
<mapping>3</mapping>
<button>3</button>
</entry>
<entry>
<mapping>4</mapping>
<button>2</button>
</entry>
<entry>
<mapping>5</mapping>
<button>9</button>
</entry>
<entry>
<mapping>6</mapping>
<button>10</button>
</entry>
<entry>
<mapping>7</mapping>
<button>42</button>
</entry>
<entry>
<mapping>8</mapping>
<button>43</button>
</entry>
<entry>
<mapping>9</mapping>
<button>6</button>
</entry>
<entry>
<mapping>10</mapping>
<button>4</button>
</entry>
<entry>
<mapping>11</mapping>
<button>11</button>
</entry>
<entry>
<mapping>12</mapping>
<button>12</button>
</entry>
<entry>
<mapping>25</mapping>
<button>8</button>
</entry>
<entry>
<mapping>24</mapping>
<button>40</button>
</entry>
<entry>
<mapping>23</mapping>
<button>46</button>
@ -60,66 +112,14 @@
<mapping>15</mapping>
<button>7</button>
</entry>
<entry>
<mapping>2</mapping>
<button>1</button>
</entry>
<entry>
<mapping>14</mapping>
<button>14</button>
</entry>
<entry>
<mapping>3</mapping>
<button>2</button>
</entry>
<entry>
<mapping>4</mapping>
<button>3</button>
</entry>
<entry>
<mapping>5</mapping>
<button>9</button>
</entry>
<entry>
<mapping>6</mapping>
<button>10</button>
</entry>
<entry>
<mapping>7</mapping>
<button>42</button>
</entry>
<entry>
<mapping>8</mapping>
<button>43</button>
</entry>
<entry>
<mapping>9</mapping>
<button>6</button>
</entry>
<entry>
<mapping>10</mapping>
<button>4</button>
</entry>
<entry>
<mapping>24</mapping>
<button>40</button>
</entry>
<entry>
<mapping>11</mapping>
<button>11</button>
</entry>
<entry>
<mapping>13</mapping>
<button>13</button>
</entry>
<entry>
<mapping>12</mapping>
<button>12</button>
</entry>
<entry>
<mapping>1</mapping>
<button>0</button>
</entry>
</mappings>
</controller>
</emulated_controller>

View file

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<emulated_controller>
<type>Wii U Pro Controller</type>
<profile>SteamInput-P2</profile>
<controller>
<api>SDLController</api>
<uuid>1_03000000de280000ff11000001000000</uuid>
@ -19,65 +18,65 @@
<range>1</range>
</trigger>
<mappings>
<entry>
<mapping>12</mapping>
<button>11</button>
</entry>
<entry>
<mapping>13</mapping>
<button>12</button>
</entry>
<entry>
<mapping>14</mapping>
<button>13</button>
</entry>
<entry>
<mapping>15</mapping>
<button>14</button>
</entry>
<entry>
<mapping>16</mapping>
<button>7</button>
</entry>
<entry>
<mapping>17</mapping>
<button>8</button>
</entry>
<entry>
<mapping>18</mapping>
<button>45</button>
</entry>
<entry>
<mapping>19</mapping>
<button>39</button>
</entry>
<entry>
<mapping>20</mapping>
<button>44</button>
</entry>
<entry>
<mapping>21</mapping>
<button>38</button>
</entry>
<entry>
<mapping>22</mapping>
<button>47</button>
</entry>
<entry>
<mapping>23</mapping>
<button>41</button>
</entry>
<entry>
<mapping>1</mapping>
<button>0</button>
<mapping>22</mapping>
<button>47</button>
</entry>
<entry>
<mapping>21</mapping>
<button>38</button>
</entry>
<entry>
<mapping>20</mapping>
<button>44</button>
</entry>
<entry>
<mapping>19</mapping>
<button>39</button>
</entry>
<entry>
<mapping>18</mapping>
<button>45</button>
</entry>
<entry>
<mapping>17</mapping>
<button>8</button>
</entry>
<entry>
<mapping>16</mapping>
<button>7</button>
</entry>
<entry>
<mapping>15</mapping>
<button>14</button>
</entry>
<entry>
<mapping>24</mapping>
<button>46</button>
</entry>
<entry>
<mapping>2</mapping>
<button>1</button>
<button>0</button>
</entry>
<entry>
<mapping>3</mapping>
<button>2</button>
<button>3</button>
</entry>
<entry>
<mapping>4</mapping>
<button>3</button>
<button>2</button>
</entry>
<entry>
<mapping>5</mapping>
@ -103,17 +102,17 @@
<mapping>10</mapping>
<button>4</button>
</entry>
<entry>
<mapping>12</mapping>
<button>11</button>
</entry>
<entry>
<mapping>25</mapping>
<button>40</button>
</entry>
<entry>
<mapping>24</mapping>
<button>46</button>
<mapping>14</mapping>
<button>13</button>
</entry>
<entry>
<mapping>1</mapping>
<button>1</button>
</entry>
</mappings>
</controller>

View file

@ -20,25 +20,29 @@
</trigger>
<mappings>
<entry>
<mapping>24</mapping>
<button>46</button>
<mapping>13</mapping>
<button>12</button>
</entry>
<entry>
<mapping>25</mapping>
<button>40</button>
</entry>
<entry>
<mapping>12</mapping>
<button>11</button>
<mapping>23</mapping>
<button>41</button>
</entry>
<entry>
<mapping>10</mapping>
<button>4</button>
</entry>
<entry>
<mapping>22</mapping>
<button>47</button>
</entry>
<entry>
<mapping>9</mapping>
<button>6</button>
</entry>
<entry>
<mapping>21</mapping>
<button>38</button>
</entry>
<entry>
<mapping>8</mapping>
<button>43</button>
@ -60,21 +64,21 @@
<button>3</button>
</entry>
<entry>
<mapping>3</mapping>
<button>2</button>
<mapping>25</mapping>
<button>40</button>
</entry>
<entry>
<mapping>13</mapping>
<button>12</button>
</entry>
<entry>
<mapping>14</mapping>
<button>13</button>
<mapping>12</mapping>
<button>11</button>
</entry>
<entry>
<mapping>1</mapping>
<button>0</button>
</entry>
<entry>
<mapping>14</mapping>
<button>13</button>
</entry>
<entry>
<mapping>15</mapping>
<button>14</button>
@ -87,6 +91,10 @@
<mapping>16</mapping>
<button>7</button>
</entry>
<entry>
<mapping>3</mapping>
<button>2</button>
</entry>
<entry>
<mapping>17</mapping>
<button>8</button>
@ -104,16 +112,8 @@
<button>44</button>
</entry>
<entry>
<mapping>21</mapping>
<button>38</button>
</entry>
<entry>
<mapping>22</mapping>
<button>47</button>
</entry>
<entry>
<mapping>23</mapping>
<button>41</button>
<mapping>24</mapping>
<button>46</button>
</entry>
</mappings>
</controller>

View file

@ -20,25 +20,29 @@
</trigger>
<mappings>
<entry>
<mapping>24</mapping>
<button>46</button>
<mapping>13</mapping>
<button>12</button>
</entry>
<entry>
<mapping>25</mapping>
<button>40</button>
</entry>
<entry>
<mapping>12</mapping>
<button>11</button>
<mapping>23</mapping>
<button>41</button>
</entry>
<entry>
<mapping>10</mapping>
<button>4</button>
</entry>
<entry>
<mapping>22</mapping>
<button>47</button>
</entry>
<entry>
<mapping>9</mapping>
<button>6</button>
</entry>
<entry>
<mapping>21</mapping>
<button>38</button>
</entry>
<entry>
<mapping>8</mapping>
<button>43</button>
@ -60,21 +64,21 @@
<button>3</button>
</entry>
<entry>
<mapping>3</mapping>
<button>2</button>
<mapping>25</mapping>
<button>40</button>
</entry>
<entry>
<mapping>13</mapping>
<button>12</button>
</entry>
<entry>
<mapping>14</mapping>
<button>13</button>
<mapping>12</mapping>
<button>11</button>
</entry>
<entry>
<mapping>1</mapping>
<button>0</button>
</entry>
<entry>
<mapping>14</mapping>
<button>13</button>
</entry>
<entry>
<mapping>15</mapping>
<button>14</button>
@ -87,6 +91,10 @@
<mapping>16</mapping>
<button>7</button>
</entry>
<entry>
<mapping>3</mapping>
<button>2</button>
</entry>
<entry>
<mapping>17</mapping>
<button>8</button>
@ -104,16 +112,8 @@
<button>44</button>
</entry>
<entry>
<mapping>21</mapping>
<button>38</button>
</entry>
<entry>
<mapping>22</mapping>
<button>47</button>
</entry>
<entry>
<mapping>23</mapping>
<button>41</button>
<mapping>24</mapping>
<button>46</button>
</entry>
</mappings>
</controller>

View file

@ -42,12 +42,17 @@ Threads = True
[General]
ISOPath0 = RETRODECKHOMEDIR/roms/wii
ISOPath1 = RETRODECKHOMEDIR/roms/gc
ISOPaths = 3
ISOPaths = 2
WiiSDCardPath = RETRODECKHOMEDIR/saves/wii/dolphin/sd.raw
WirelessMac = 00:17:ab:83:9b:d4
HotkeysRequireFocus = True
RecursiveISOPaths = True
ISOPath2 = RETRODECKHOMEDIR/roms/wii
DumpPath = /var/data/dolphin-emu/Dump/
LoadPath = /var/data/dolphin-emu/Load/
NANDRootPath = /var/data/dolphin-emu/Wii/
ResourcePackPath = /var/data/dolphin-emu/ResourcePacks/
WFSPath =
WiiSDCardSyncFolder = /var/data/dolphin-emu/Load/WiiSDSync/
[NetPlay]
TraversalChoice = direct
[BluetoothPassthrough]

View file

@ -7,7 +7,7 @@ SyncToHostRefreshRate = false
IncreaseTimerResolution = true
InhibitScreensaver = true
StartPaused = false
StartFullscreen = false
StartFullscreen = true
PauseOnFocusLoss = true
PauseOnMenu = true
SaveStateOnExit = false

View file

@ -68,7 +68,7 @@ else
# Check if the .doom file exists
if [[ ! -e "$doom_file" ]]; then
log e "doom file not found in \"$doom_file\""
zenity --error --no-wrap \
rd_zenity --error --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="File \"$doom_file\" not found. Quitting."
@ -85,7 +85,7 @@ else
# If the file is not found, exit with an error
if [[ -z "$found_file" ]]; then
log "[ERROR] File not found in \"$line\""
zenity --error --no-wrap \
rd_zenity --error --no-wrap \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK" \
--text="File \"$doom_file\" not found. Quitting."

Some files were not shown because too many files have changed in this diff Show more