RetroDECK v0.7.2b

This commit is contained in:
XargonWan 2023-09-27 20:58:50 +02:00
commit c8ced66674
60 changed files with 1958 additions and 354 deletions

View file

@ -1,4 +1,4 @@
name: cooker-selfhosted
name: "Build cooker"
on:
push:
@ -6,8 +6,10 @@ on:
- cooker*
paths:
- '.github/workflows/**'
- 'automation_tools/**'
- 'emu-configs/**'
- 'es-configs/**'
- 'functions/**'
- 'rd-submodules/**'
- '*.sh'
- 'net.retrodeck.retrodeck.yml'
@ -30,9 +32,15 @@ jobs:
run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
continue-on-error: true
- uses: actions/checkout@v3
- name: Clone RetroDECK repo
uses: actions/checkout@v3
with:
submodules: 'true'
- name: Generate build ID
- name: "Install dependencies"
run: "automation_tools/install_dependencies.sh"
- name: Generate cooker build ID
run: |
word1=$(shuf -n 1 ${GITHUB_WORKSPACE}/automation_tools/codename_wordlist.txt)
capitalized_word1="$(tr '[:lower:]' '[:upper:]' <<< ${word1:0:1})${word1:1}"
@ -40,34 +48,33 @@ jobs:
capitalized_word2="$(tr '[:lower:]' '[:upper:]' <<< ${word2:0:1})${word2:1}"
result=$capitalized_word1$capitalized_word2
echo $result > ${GITHUB_WORKSPACE}/buildid
ls -lah ${GITHUB_WORKSPACE} # DEBUG
cat ${GITHUB_WORKSPACE}/buildid # DEBUG
echo "buildid=$result" >> $GITHUB_ENV
echo "VersionID is $result"
- name: Initialize environment
run: |
git pull
git submodule init
git submodule update
sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y --noninteractive \
org.kde.Sdk//6.3 \
org.kde.Platform//6.3 \
org.freedesktop.Platform.ffmpeg-full/x86_64/22.08 \
io.qt.qtwebengine.BaseApp/x86_64/6.3 \
org.freedesktop.Sdk.Extension.llvm13 \
org.freedesktop.Sdk.Extension.dotnet6/x86_64/22.08 \
runtime/org.freedesktop.Platform.ffmpeg-full/x86_64/22.08
/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh # Run pre-build automation tasks
- name: Run pre-build automation tasks
run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh"
- name: "Adding flatpak portal for automated updates (cooker only)"
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/cooker_flatpak_portal_add.sh"
# - name: "Updating release notes in appdata"
# run: "automation_tools/appdata_management.sh"
- name: "[DEBUG] Outputting manifest"
run: cat net.retrodeck.retrodeck.yml
- name: "Build flatpak: download only"
id: "flatpak-download"
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
continue-on-error: true
# Sometimes flatpak download fails, in this case it tries a second time
- name: "Build flatpak: download only (retry)"
if: steps.flatpak-download.outcome == 'failure'
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
- name: Build flatpak
run: |
git config --global protocol.file.allow always
mkdir -vp ${GITHUB_WORKSPACE}/local
mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker
flatpak-builder --user --force-clean --install-deps-from=flathub --install-deps-from=flathub-beta --repo=${GITHUB_WORKSPACE}/local ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh"
- name: Create Artifact for flathub
run: |
@ -78,12 +85,22 @@ jobs:
continue-on-error: true
- name: Create Bundle
run: |
flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
- name: Set environment variable with current branch name
run: echo "GITHUB_REF_SLUG=$(git rev-parse --abbrev-ref HEAD)" >> $GITHUB_ENV
- name: Get commits since last release
run: |
# Get the latest release tag
LATEST_TAG=$(git describe --tags --abbrev=0)
# Get all commits since the latest release tag
COMMITS=$(git log $LATEST_TAG..HEAD --pretty=format:"- %s")
# Set the output variable
echo "::set-output name=commits::$COMMITS"
id: commits
continue-on-error: true
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
@ -92,24 +109,25 @@ jobs:
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
## Commits since last release
${{ steps.commits.outputs.commits }}
For the full release note for this build please refer to the channel [#BETA-TESTING](https://discord.gg/qQcrFvaA2C) on our Discord server.
Cooker channel is provided for the community to test fixes and explore new functionality.
Please DO NOT open issues or ask support on this build.
artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
artifacts: "RetroDECK-cooker.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
#prerelease: true
makeLatest: true
#draft: true
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK-cooker
continue-on-error: true
# In case it cannot publish the release at least it's providing the flatpak file for creating a manual release
- name: Upload RetroDECK.flatpak
- name: Upload RetroDECK-cooker.flatpak
uses: actions/upload-artifact@v3
with:
name: retrodeck-flatpak
path: RetroDECK.flatpak
path: RetroDECK-cooker.flatpak
continue-on-error: true

View file

@ -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=$(\

View file

@ -1,4 +1,4 @@
name: main-selfhosted
name: "Build main"
on:
push:
@ -6,8 +6,10 @@ on:
- main
paths:
- '.github/workflows/**'
- 'automation_tools/**'
- 'emu-configs/**'
- 'es-configs/**'
- 'functions/**'
- 'rd-submodules/**'
- '*.sh'
- 'net.retrodeck.retrodeck.yml'
@ -30,35 +32,43 @@ jobs:
run: sudo umount -f /home/ubuntu/actions-runner/_work/RetroDECK/RetroDECK/.flatpak-builder/rofiles/*
continue-on-error: true
- name: Generate build ID
id: generating_buildid
run: echo "##[set-output name=build-id;]$(echo "$( git rev-parse --short HEAD )")"
- name: Clone RetroDECK repo
uses: actions/checkout@v3
with:
submodules: 'true'
- uses: actions/checkout@v3
- name: "Install dependencies"
run: "automation_tools/install_dependencies.sh"
- name: Initialize enviornment
run: |
git pull
git submodule init
git submodule update
sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet bzip2
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y --noninteractive \
org.kde.Sdk//6.3 \
org.kde.Platform//6.3 \
org.freedesktop.Platform.ffmpeg-full/x86_64/22.08 \
io.qt.qtwebengine.BaseApp/x86_64/6.3 \
org.freedesktop.Sdk.Extension.llvm13 \
org.freedesktop.Sdk.Extension.dotnet6/x86_64/22.08 \
runtime/org.freedesktop.Platform.ffmpeg-full/x86_64/22.08
/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh # Run pre-build automation tasks
- name: Run pre-build automation tasks
run : "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/pre_build_automation.sh"
- name: Read manifest content
id: read_manifest
run: echo "::set-output name=file_content::$(cat net.retrodeck.retrodeck.yml)"
# - name: "Updating release notes in appdata"
# run: "automation_tools/appdata_management.sh"
- name: Check versions (main only)
id: check_version_string
run: "automation_tools/main_version_checker.sh"
- name: "[DEBUG] Outputting manifest"
run: cat net.retrodeck.retrodeck.yml
- name: "Build flatpak: download only"
id: "flatpak-download"
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
continue-on-error: true
# Sometimes flatpak download fails, in this case it tries a second time
- name: "Build flatpak: download only (retry)"
if: steps.flatpak-download.outcome == 'failure'
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_download_only.sh"
- name: Build flatpak
run: |
git config --global protocol.file.allow always
mkdir -vp ${GITHUB_WORKSPACE}/local
mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker
flatpak-builder --user --force-clean --install-deps-from=flathub --install-deps-from=flathub-beta --repo=${GITHUB_WORKSPACE}/local ${GITHUB_WORKSPACE}/retrodeck-flatpak-main net.retrodeck.retrodeck.yml
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh"
- name: Create Artifact for flathub
run: |
@ -69,8 +79,7 @@ jobs:
continue-on-error: true
- name: Create Bundle
run: |
flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK.flatpak net.retrodeck.retrodeck
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
- name: Getting version info
id: version
@ -92,7 +101,6 @@ jobs:
bodyFile: "body.md"
artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
#prerelease: true
makeLatest: true
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK

57
.github/workflows/submodule-update.yml vendored Normal file
View file

@ -0,0 +1,57 @@
name: Sunday Submodule Update
on:
# At 4:00 (CET)
schedule:
- cron: '0 2 * * 0'
workflow_dispatch:
jobs:
update_submodules:
name: Update submodules and create PR
runs-on: ubuntu-latest
steps:
- name: Checkout repo with submodules
uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_TOKEN }}
submodules: recursive
- name: Fetch all remote branches
run: git fetch --all
- name: List cooker branches by date
id: list_branches
run: |
BRANCHES=$(git for-each-ref --sort=-committerdate refs/remotes/origin/cooker* --format='%(refname)') echo “::set-output name=branches::$BRANCHES”
- name: Select target branch
id: select_branch
run: |
TARGET_BRANCH=(echo{{ steps.list_branches.outputs.branches }} | head -n 1)
echo “::set-output name=target_branch::$TARGET_BRANCH”
git checkout $TARGET_BRANCH
echo "Working on $TARGET_BRANCH"
- name: Update submodules with command
run: git submodule update --remote --merge --recursive
- name: Configure Git credentials
run: |
git config --global user.name 'GitHub bot'
git config --global user.email 'bot@noreply.github.com'
- name: Commit and push changes
run: |
git commit -am "Sunday submodule update"
git push origin HEAD:submodule-update
- name: Create PR
uses: repo-sync/pull-request@v2
with:
github_token: ${{ secrets.REPO_TOKEN }}
pr_title: "Sunday submodule update"
pr_body: "This PR updates the submodules to the latest commit on their remote repositories."
source_branch: "submodule-update"
destination_branch: "cooker*"

3
.gitignore vendored
View file

@ -13,6 +13,7 @@ Thumbs.db
.flatpak-builder/
retrodeck-flatpak-cooker/
retrodeck-flatpak/
bakcup
backup
.old
tmp
.godot

View file

@ -0,0 +1,94 @@
#!/bin/bash
# THIS SCRIPT IS BROKEN HENCE DISABLED FTM
# This script is getting the latest release notes from the wiki and add them to the appdata
source automation_tools/version_extractor.sh
# Fetch appdata version
appdata_version=$(fetch_appdata_version)
echo -e "Appdata:\t\t$appdata_version"
# Defining manifest file location
appdata_file="net.retrodeck.retrodeck.appdata.xml"
# Check if release with appdata_version already exists
if grep -q "version=\"$appdata_version\"" "$appdata_file"; then
echo "Deleting existing release version $appdata_version..."
# Remove the existing release entry
sed -i "/<release version=\"$appdata_version\"/,/<\/release>/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="\
<releases>
<release version=\"$appdata_version\" date=\"$today_date\">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/$appdata_version</url>
<description>
RELEASE_NOTES_PLACEHOLDER
</description>
</release>"
# 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+="</ul>"
fi
section_name="${line##*# }"
section_list+="<p>${section_name}</p><ul>"
elif [[ "$line" == "- "* ]]; then
entry="${line#*- }"
section_list+="<li>${entry}</li>"
fi
done <<< "$sections"
if [ -n "$current_section" ]; then
section_list+="</ul>"
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/<releases>/$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"

View file

@ -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

View file

@ -0,0 +1,7 @@
#!/bin/bash
# COOKER ONLY
# This script is adding the update portal (permission) to the ooker flatpak.
# This is ran by the cooker pipeline.
sed -i '/finish-args:/a \ \ - --talk-name=org.freedesktop.Flatpak' net.retrodeck.retrodeck.yml

View file

@ -0,0 +1,5 @@
#!/bin/bash
# This is building the bundle RetroDECK.flatpak after the download and build steps are done
flatpak build-bundle ${GITHUB_WORKSPACE}/local RetroDECK-cooker.flatpak net.retrodeck.retrodeck

View file

@ -0,0 +1,14 @@
#!/bin/bash
# This script is downloading the needed files to prepare the manifest build
git config --global protocol.file.allow always
mkdir -vp ${GITHUB_WORKSPACE}/local
mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker
flatpak-builder --user --force-clean \
--install-deps-from=flathub \
--install-deps-from=flathub-beta \
--repo=${GITHUB_WORKSPACE}/local \
--download-only \
${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker \
net.retrodeck.retrodeck.yml

View file

@ -0,0 +1,14 @@
#!/bin/bash
# This script is building the flatpak is the needed files are already downloaded
git config --global protocol.file.allow always
mkdir -vp ${GITHUB_WORKSPACE}/local
mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker
flatpak-builder --user --force-clean \
--install-deps-from=flathub \
--install-deps-from=flathub-beta \
--repo=${GITHUB_WORKSPACE}/local \
--disable-download \
${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker \
net.retrodeck.retrodeck.yml

View file

@ -1,5 +1,7 @@
#!/bin/bash
# WARNING: DANGEROUS! Don't use this script lightly
git submodule deinit --all
rm rd-submodules/retroarch
git rm -rf --cached rd-submodules/retroarch

View file

@ -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

View file

@ -0,0 +1,63 @@
#!/bin/bash
# This script is used to check that the versions are correct and stopping the pipeline if something is wrong.
# This is designed to be run on the main pipeline to check that everything is in order before building RetroDECK.
source automation_tools/version_extractor.sh
# Set the file paths
appdata="net.retrodeck.retrodeck.appdata.xml"
manifest="net.retrodeck.retrodeck.yml"
manifest_content=$(cat "$manifest")
compare_versions() {
local manifest_version_cleaned=$(echo "$1" | sed 's/[a-zA-Z]//g')
local appdata_version_cleaned=$(echo "$2" | sed 's/[a-zA-Z]//g')
if [[ "$manifest_version_cleaned" == "$appdata_version_cleaned" ]]; then
return 0 # Versions are equal
fi
local IFS=.
local manifest_parts=($manifest_version_cleaned)
local appdata_parts=($appdata_version_cleaned)
for ((i=0; i<${#manifest_parts[@]}; i++)); do
if ((manifest_parts[i] > appdata_parts[i])); then
return 1 # Manifest version is greater
elif ((manifest_parts[i] < appdata_parts[i])); then
return 2 # Appdata version is greater
fi
done
return 0 # Versions are equal
}
repo_version=$(fetch_repo_version)
echo -e "Online repository:\t$repo_version"
manifest_version=$(fetch_manifest_version)
echo -e "Manifest:\t\t$manifest_version"
appdata_version=$(fetch_appdata_version)
echo -e "Appdata:\t\t$appdata_version"
# Additional checks
if [[ "$manifest_version" == "main" || "$manifest_version" == "THISBRANCH" ]]; then
echo "Manifest version cannot be 'main' or 'THISBRANCH'. Please fix it."
exit 1
fi
if [[ "$appdata_version" != "$manifest_version" ]]; then
echo "Appdata version is not equal to manifest version. Please fix it."
exit 1
fi
compare_versions "$repo_version" "$manifest_version"
result=$?
if [ "$result" -eq 1 ]; then
echo "Repository version is less than manifest version. Please fix it."
exit 1
fi
echo "All checks passed. Well done!"

10
automation_tools/pre_build_automation.sh Normal file → Executable file
View file

@ -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"

View file

@ -0,0 +1,34 @@
#!/bin/bash
# This script is intended to gather version information from various sources:
# RetroDECK repository
# Appdata.xml file
# Manifest YAML file
# It consists of three functions, each responsible for retrieving a specific version-related data.
appdata="net.retrodeck.retrodeck.appdata.xml"
manifest="net.retrodeck.retrodeck.yml"
manifest_content=$(cat "$manifest")
fetch_repo_version(){
# Getting latest RetroDECK release info
LATEST_RELEASE=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/releases/latest")
# Extracting tag name from the latest release
repo_version=$(echo "$LATEST_RELEASE" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
# Printing results
echo "$repo_version"
}
fetch_appdata_version(){
# Extract the version from the net.retrodeck.retrodeck.appdata.xml file
appdata_version=$(grep -oPm1 "(?<=<release version=\")[^\"]+" "$appdata")
echo "$appdata_version"
}
fetch_manifest_version(){
# Use awk to extract the value of the first iteration of VERSION variable
manifest_version=$(echo "$manifest_content" | awk '/VERSION=/ && !/#/ { sub(/.*VERSION=/, ""); sub(/#.*/, ""); print; exit }')
# Trim leading and trailing whitespace
manifest_version=$(echo "$manifest_version" | awk '{$1=$1;print}')
echo "$manifest_version"
}

View file

@ -286,6 +286,10 @@ gambatte_gb_link_network_server_ip_9 = "0"
gambatte_gb_palette_pixelshift_1 = "PixelShift 01 - Arctic Green"
gambatte_gb_palette_twb64_1 = "TWB64 001 - Aqours Blue"
gambatte_gb_palette_twb64_2 = "TWB64 101 - 765PRO Pink"
gambatte_gb_input_player1_l = "nul"
gambatte_gb_input_player1_l_btn = "nul"
gambatte_gb_input_player1_r = "nul"
gambatte_gb_input_player1_r_btn = "nul"
gambatte_gbc_color_correction = "GBC only"
gambatte_gbc_color_correction_mode = "accurate"
gambatte_gbc_frontlight_position = "central"

View file

@ -0,0 +1,28 @@
The ~/retrodeck/texture_packs/duckstaiton/ represents the /duckstation/textures/ folder in Duckstation.
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.
Note:
TITLEID is different for every game.
Enable Custom Textures
- Open up Duckstation inside RetroDECK Configurator by pressing Open Emulator - Duckstation.
- Go to Settings -> 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/<TITLEID> folder.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/Duckstation%3A-Texture-Packs
The RetroDECK Team

View file

@ -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

View file

@ -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

View file

@ -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/<TITLEID>' folder.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/PCSX2%3A-Texture-Packs
The RetroDECK Team

View file

@ -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/<TITLEID>' folder.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/PPSSPP%3A-Texture-Packs
The RetroDECK Team

View file

@ -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/<TITLEID> folder.
Related wiki article can be found here:
https://github.com/XargonWan/RetroDECK/wiki/Citra%3A-Mods#citra---3ds
The RetroDECK Team

View file

@ -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/<GAME_ID>
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

View file

@ -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/<GAME_ID>
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

View file

@ -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/<TITLEID>
- 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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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.

View file

@ -516,3 +516,19 @@ VRCameraPitch = 0
VRHeadRotationScale = 5.000000
VRHeadRotationEnabled = False
VRHeadRotationSmoothing = False
[Achievements]
AchievementsEnable = False
AchievementsChallengeMode = False
AchievementsEncoreMode = False
AchievementsUnofficial = False
AchievementsLogBadMemReads = False
AchievementsUserName =
AchievementsSoundEffects = True
AchievementsUnlockAudioFile =
AchievementsLeaderboardSubmitAudioFile =
AchievementsLeaderboardTrackerPos = 3
AchievementsLeaderboardStartedOrFailedPos = 3
AchievementsLeaderboardSubmittedPos = 3
AchievementsProgressPos = 3
AchievementsChallengePos = 3
AchievementsUnlockedPos = 4

View file

@ -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"

View file

@ -15,16 +15,17 @@
<entry>RetroArch-Linux-x86_64.AppImage</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.libretro.RetroArch</entry>
<entry>~/.local/share/flatpak/exports/bin/org.libretro.RetroArch</entry>
<entry>~/Applications/RetroArch-Linux*.AppImage</entry>
<entry>~/.local/share/applications/RetroArch-Linux*.AppImage</entry>
<entry>~/.local/bin/RetroArch-Linux*.AppImage</entry>
<entry>~/bin/RetroArch-Linux*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/org.libretro.RetroArch</entry>
<entry>~/.local/share/flatpak/exports/bin/org.libretro.RetroArch</entry>
</rule>
</emulator>
<core name="RETROARCH">
<rule type="corepath">
<!-- FlatPak RetroDECK -->
<!-- Flatpak RetroDECK -->
<entry>/app/share/libretro/cores</entry>
<!-- Snap package -->
<entry>~/snap/retroarch/current/.config/retroarch/cores</entry>
@ -69,11 +70,12 @@
<entry>net.cebix.basilisk</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.cebix.basilisk</entry>
<entry>~/.local/share/flatpak/exports/bin/net.cebix.basilisk</entry>
<entry>~/Applications/BasiliskII*.AppImage</entry>
<entry>~/.local/share/applications/BasiliskII*.AppImage</entry>
<entry>~/.local/bin/BasiliskII*.AppImage</entry>
<entry>~/bin/BasiliskII*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/net.cebix.basilisk</entry>
<entry>~/.local/share/flatpak/exports/bin/net.cebix.basilisk</entry>
</rule>
</emulator>
<emulator name="BLASTEM">
@ -106,9 +108,11 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/Cemu*.AppImage</entry>
<entry>~/.local/share/applications/Cemu*.AppImage</entry>
<entry>~/.local/bin/Cemu*.AppImage</entry>
<entry>~/bin/Cemu*.AppImage</entry>
<entry>~/Applications/Cemu/Cemu</entry>
<entry>~/.local/share/applications/Cemu/Cemu</entry>
<entry>~/.local/bin/Cemu/Cemu</entry>
<entry>~/bin/Cemu/Cemu</entry>
</rule>
@ -122,6 +126,10 @@
<entry>org.citra_emu.citra</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/citra*.AppImage</entry>
<entry>~/.local/share/applications/citra*.AppImage</entry>
<entry>~/.local/bin/citra*.AppImage</entry>
<entry>~/bin/citra*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/org.citra_emu.citra</entry>
<entry>~/.local/share/flatpak/exports/bin/org.citra_emu.citra</entry>
</rule>
@ -133,6 +141,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/cpcemu/cpcemu</entry>
<entry>~/.local/share/applications/cpcemu/cpcemu</entry>
<entry>~/.local/bin/cpcemu/cpcemu</entry>
<entry>~/bin/cpcemu/cpcemu</entry>
</rule>
@ -141,6 +150,7 @@
<!-- Sinclair ZX Spectrum Next emulator #CSpect -->
<rule type="staticpath">
<entry>~/Applications/CSpect/CSpect.exe</entry>
<entry>~/.local/share/applications/CSpect/CSpect.exe</entry>
<entry>~/.local/bin/CSpect/CSpect.exe</entry>
<entry>~/bin/CSpect/CSpect.exe</entry>
</rule>
@ -163,11 +173,12 @@
<entry>org.DolphinEmu.dolphin-emu</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.DolphinEmu.dolphin-emu</entry>
<entry>~/.local/share/flatpak/exports/bin/org.DolphinEmu.dolphin-emu</entry>
<entry>~/Applications/Dolphin_Emulator*.AppImage</entry>
<entry>~/.local/share/applications/Dolphin_Emulator*.AppImage</entry>
<entry>~/.local/bin/Dolphin_Emulator*.AppImage</entry>
<entry>~/bin/Dolphin_Emulator*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/org.DolphinEmu.dolphin-emu</entry>
<entry>~/.local/share/flatpak/exports/bin/org.DolphinEmu.dolphin-emu</entry>
</rule>
</emulator>
<emulator name="DOSBOX-STAGING">
@ -200,14 +211,16 @@
<entry>org.duckstation.DuckStation</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.duckstation.DuckStation</entry>
<entry>~/.local/share/flatpak/exports/bin/org.duckstation.DuckStation</entry>
<entry>~/Applications/duckstation-nogui*.AppImage</entry>
<entry>~/.local/share/applications/duckstation-nogui*.AppImage</entry>
<entry>~/.local/bin/duckstation-nogui*.AppImage</entry>
<entry>~/bin/duckstation-nogui*.AppImage</entry>
<entry>~/Applications/duckstation-qt*.AppImage</entry>
<entry>~/.local/share/applications/duckstation-qt*.AppImage</entry>
<entry>~/.local/bin/duckstation-qt*.AppImage</entry>
<entry>~/bin/duckstation-qt*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/org.duckstation.DuckStation</entry>
<entry>~/.local/share/flatpak/exports/bin/org.duckstation.DuckStation</entry>
</rule>
</emulator>
<emulator name="EASYRPG">
@ -217,6 +230,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/easyrpg/easyrpg-player</entry>
<entry>~/.local/share/applications/easyrpg/easyrpg-player</entry>
<entry>~/.local/bin/easyrpg/easyrpg-player</entry>
<entry>~/bin/easyrpg/easyrpg-player</entry>
</rule>
@ -228,6 +242,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/fbneo/fbneo</entry>
<entry>~/.local/share/applications/fbneo/fbneo</entry>
<entry>~/.local/bin/fbneo/fbneo</entry>
<entry>~/bin/fbneo/fbneo</entry>
</rule>
@ -239,11 +254,12 @@
<entry>org.flycast.Flycast</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.flycast.Flycast</entry>
<entry>~/.local/share/flatpak/exports/bin/org.flycast.Flycast</entry>
<entry>~/Applications/flycast*.AppImage</entry>
<entry>~/.local/share/applications/flycast*.AppImage</entry>
<entry>~/.local/bin/flycast*.AppImage</entry>
<entry>~/bin/flycast*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/org.flycast.Flycast</entry>
<entry>~/.local/share/flatpak/exports/bin/org.flycast.Flycast</entry>
</rule>
</emulator>
<emulator name="FS-UAE">
@ -275,11 +291,12 @@
<entry>gargoyle</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/io.github.garglk.Gargoyle</entry>
<entry>~/.local/share/flatpak/exports/bin/io.github.garglk.Gargoyle</entry>
<entry>~/Applications/Gargoyle*.AppImage</entry>
<entry>~/.local/share/applications/Gargoyle*.AppImage</entry>
<entry>~/.local/bin/Gargoyle*.AppImage</entry>
<entry>~/bin/Gargoyle*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/io.github.garglk.Gargoyle</entry>
<entry>~/.local/share/flatpak/exports/bin/io.github.garglk.Gargoyle</entry>
</rule>
</emulator>
<emulator name="GEARBOY">
@ -289,6 +306,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/gearboy/gearboy</entry>
<entry>~/.local/share/applications/gearboy/gearboy</entry>
<entry>~/.local/bin/gearboy/gearboy</entry>
<entry>~/bin/gearboy/gearboy</entry>
</rule>
@ -297,6 +315,7 @@
<!-- Atari 2600 emulator Gopher2600 -->
<rule type="staticpath">
<entry>~/Applications/gopher2600/gopher2600_linux_amd64</entry>
<entry>~/.local/share/applications/gopher2600/gopher2600_linux_amd64</entry>
<entry>~/.local/bin/gopher2600/gopher2600_linux_amd64</entry>
<entry>~/bin/gopher2600/gopher2600_linux_amd64</entry>
</rule>
@ -318,6 +337,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/hypseus-singe/hypseus.bin</entry>
<entry>~/.local/share/applications/hypseus-singe/hypseus.bin</entry>
<entry>~/.local/bin/hypseus-singe/hypseus.bin</entry>
<entry>~/bin/hypseus-singe/hypseus.bin</entry>
</rule>
@ -329,6 +349,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/lightspark/lightspark</entry>
<entry>~/.local/share/applications/lightspark/lightspark</entry>
<entry>~/.local/bin/lightspark/lightspark</entry>
<entry>~/bin/lightspark/lightspark</entry>
</rule>
@ -340,6 +361,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/linapple/linapple</entry>
<entry>~/.local/share/applications/linapple/linapple</entry>
<entry>~/.local/bin/linapple/linapple</entry>
<entry>~/bin/linapple/linapple</entry>
</rule>
@ -385,11 +407,12 @@
<entry>io.mgba.mGBA</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/io.mgba.mGBA</entry>
<entry>~/.local/share/flatpak/exports/bin/io.mgba.mGBA</entry>
<entry>~/Applications/mGBA*.AppImage</entry>
<entry>~/.local/share/applications/mGBA*.AppImage</entry>
<entry>~/.local/bin/mGBA*.AppImage</entry>
<entry>~/bin/mGBA*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/io.mgba.mGBA</entry>
<entry>~/.local/share/flatpak/exports/bin/io.mgba.mGBA</entry>
</rule>
</emulator>
<emulator name="MUPEN64PLUS">
@ -430,6 +453,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/oricutron/Oricutron</entry>
<entry>~/.local/share/applications/oricutron/Oricutron</entry>
<entry>~/.local/bin/oricutron/Oricutron</entry>
<entry>~/bin/oricutron/Oricutron</entry>
</rule>
@ -463,8 +487,8 @@
<entry>pico8</entry>
</rule>
<rule type="staticpath">
<entry>~/retrodeck/bios/pico-8/pico8</entry>
<entry>~/Applications/pico-8/pico8</entry>
<entry>~/.local/share/applications/pico-8/pico8</entry>
<entry>~/.local/bin/pico-8/pico8</entry>
<entry>~/bin/pico-8/pico8</entry>
</rule>
@ -472,11 +496,12 @@
<emulator name="PLAY!">
<!-- Sony PlayStation 2 emulator Play! -->
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.purei.Play</entry>
<entry>~/.local/share/flatpak/exports/bin/org.purei.Play</entry>
<entry>~/Applications/Play!*.AppImage</entry>
<entry>~/.local/share/applications/Play!*.AppImage</entry>
<entry>~/.local/bin/Play!*.AppImage</entry>
<entry>~/bin/Play!*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/org.purei.Play</entry>
<entry>~/.local/share/flatpak/exports/bin/org.purei.Play</entry>
</rule>
</emulator>
<emulator name="PPSSPP">
@ -516,6 +541,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/punes/punes</entry>
<entry>~/.local/share/applications/punes/punes</entry>
<entry>~/.local/bin/punes/punes</entry>
<entry>~/bin/punes/punes</entry>
</rule>
@ -527,6 +553,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/redream/redream</entry>
<entry>~/.local/share/applications/redream/redream</entry>
<entry>~/.local/bin/redream/redream</entry>
<entry>~/bin/redream/redream</entry>
</rule>
@ -538,11 +565,12 @@
<entry>com.github.Rosalie241.RMG</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/com.github.Rosalie241.RMG</entry>
<entry>~/.local/share/flatpak/exports/bin/com.github.Rosalie241.RMG</entry>
<entry>~/Applications/RMG*.AppImage</entry>
<entry>~/.local/share/applications/RMG*.AppImage</entry>
<entry>~/.local/bin/RMG*.AppImage</entry>
<entry>~/bin/RMG*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/com.github.Rosalie241.RMG</entry>
<entry>~/.local/share/flatpak/exports/bin/com.github.Rosalie241.RMG</entry>
</rule>
</emulator>
<emulator name="RPCS3">
@ -553,11 +581,12 @@
<entry>net.rpcs3.RPCS3</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/net.rpcs3.RPCS3</entry>
<entry>~/.local/share/flatpak/exports/bin/net.rpcs3.RPCS3</entry>
<entry>~/Applications/rpcs3*.AppImage</entry>
<entry>~/.local/share/applications/rpcs3*.AppImage</entry>
<entry>~/.local/bin/rpcs3*.AppImage</entry>
<entry>~/bin/rpcs3*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/net.rpcs3.RPCS3</entry>
<entry>~/.local/share/flatpak/exports/bin/net.rpcs3.RPCS3</entry>
</rule>
</emulator>
<emulator name="RUFFLE">
@ -567,6 +596,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/ruffle/ruffle</entry>
<entry>~/.local/share/applications/ruffle/ruffle</entry>
<entry>~/.local/bin/ruffle/ruffle</entry>
<entry>~/bin/ruffle/ruffle</entry>
</rule>
@ -582,9 +612,11 @@
<entry>/var/lib/flatpak/exports/bin/org.ryujinx.Ryujinx</entry>
<entry>~/.local/share/flatpak/exports/bin/org.ryujinx.Ryujinx</entry>
<entry>~/Applications/publish/Ryujinx</entry>
<entry>~/.local/share/applications/publish/Ryujinx</entry>
<entry>~/.local/bin/publish/Ryujinx</entry>
<entry>~/bin/publish/Ryujinx</entry>
<entry>~/Applications/publish/Ryujinx.Ava</entry>
<entry>~/.local/share/applications/publish/Ryujinx.Ava</entry>
<entry>~/.local/bin/publish/Ryujinx.Ava</entry>
<entry>~/bin/publish/Ryujinx.Ava</entry>
</rule>
@ -618,6 +650,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/sdl2trs/sdl2trs</entry>
<entry>~/.local/share/applications/sdl2trs/sdl2trs</entry>
<entry>~/.local/bin/sdl2trs/sdl2trs</entry>
<entry>~/bin/sdl2trs/sdl2trs</entry>
</rule>
@ -629,6 +662,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/SheepShaver*.AppImage</entry>
<entry>~/.local/share/applications/SheepShaver*.AppImage</entry>
<entry>~/.local/bin/SheepShaver*.AppImage</entry>
<entry>~/bin/SheepShaver*.AppImage</entry>
</rule>
@ -640,6 +674,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/simcoupe/simcoupe</entry>
<entry>~/.local/share/applications/simcoupe/simcoupe</entry>
<entry>~/.local/bin/simcoupe/simcoupe</entry>
<entry>~/bin/simcoupe/simcoupe</entry>
</rule>
@ -701,6 +736,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/Supermodel/supermodel</entry>
<entry>~/.local/share/applications/Supermodel/supermodel</entry>
<entry>~/.local/bin/Supermodel/supermodel</entry>
<entry>~/bin/Supermodel/supermodel</entry>
</rule>
@ -712,6 +748,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/dolphin-emu-triforce*.AppImage</entry>
<entry>~/.local/share/applications/dolphin-emu-triforce*.AppImage</entry>
<entry>~/.local/bin/dolphin-emu-triforce*.AppImage</entry>
<entry>~/bin/dolphin-emu-triforce*.AppImage</entry>
</rule>
@ -720,6 +757,7 @@
<!-- Fujitsu FM Towns emulator Tsugaru -->
<rule type="staticpath">
<entry>~/Applications/tsugaru/Tsugaru_CUI</entry>
<entry>~/.local/share/applications/tsugaru/Tsugaru_CUI</entry>
<entry>~/.local/bin/tsugaru/Tsugaru_CUI</entry>
<entry>~/bin/tsugaru/Tsugaru_CUI</entry>
</rule>
@ -761,6 +799,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/Vita3K/Vita3K</entry>
<entry>~/.local/share/applications/Vita3K/Vita3K</entry>
<entry>~/.local/bin/Vita3K/Vita3K</entry>
<entry>~/bin/Vita3K/Vita3K</entry>
</rule>
@ -772,11 +811,12 @@
<entry>app.xemu.xemu</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/app.xemu.xemu</entry>
<entry>~/.local/share/flatpak/exports/bin/app.xemu.xemu</entry>
<entry>~/Applications/xemu*.AppImage</entry>
<entry>~/.local/share/applications/xemu*.AppImage</entry>
<entry>~/.local/bin/xemu*.AppImage</entry>
<entry>~/bin/xemu*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/app.xemu.xemu</entry>
<entry>~/.local/share/flatpak/exports/bin/app.xemu.xemu</entry>
</rule>
</emulator>
<emulator name="XROAR">
@ -786,6 +826,7 @@
</rule>
<rule type="staticpath">
<entry>~/Applications/xroar/xroar</entry>
<entry>~/.local/share/applications/xroar/xroar</entry>
<entry>~/.local/bin/xroar/xroar</entry>
<entry>~/bin/xroar/xroar</entry>
</rule>
@ -797,11 +838,24 @@
<entry>org.yuzu_emu.yuzu</entry>
</rule>
<rule type="staticpath">
<entry>/var/lib/flatpak/exports/bin/org.yuzu_emu.yuzu</entry>
<entry>~/.local/share/flatpak/exports/bin/org.yuzu_emu.yuzu</entry>
<entry>~/Applications/yuzu*.AppImage</entry>
<entry>~/.local/share/applications/yuzu*.AppImage</entry>
<entry>~/.local/bin/yuzu*.AppImage</entry>
<entry>~/bin/yuzu*.AppImage</entry>
<entry>/var/lib/flatpak/exports/bin/org.yuzu_emu.yuzu</entry>
<entry>~/.local/share/flatpak/exports/bin/org.yuzu_emu.yuzu</entry>
</rule>
</emulator>
<emulator name="ZESARUX">
<!-- Sinclair ZX Spectrum emulator ZEsarUX -->
<rule type="systempath">
<entry>zesarux</entry>
</rule>
<rule type="staticpath">
<entry>~/Applications/ZEsarUX/zesarux</entry>
<entry>~/.local/share/applications/ZEsarUX/zesarux</entry>
<entry>~/.local/bin/ZEsarUX/zesarux</entry>
<entry>~/bin/ZEsarUX/zesarux</entry>
</rule>
</emulator>
</ruleList>

View file

@ -25,6 +25,7 @@
<bool name="MAMENameStripExtraInfo" value="true" />
<bool name="MediaViewerKeepVideoRunning" value="true" />
<bool name="MediaViewerScreenshotScanlines" value="true" />
<bool name="MediaViewerShowTypes" value="false" />
<bool name="MediaViewerStretchVideos" value="false" />
<bool name="MediaViewerVideoAudio" value="true" />
<bool name="MediaViewerVideoBlur" value="false" />
@ -51,6 +52,7 @@
<bool name="ScrapeCovers" value="true" />
<bool name="ScrapeFanArt" value="false" />
<bool name="ScrapeGameNames" value="true" />
<bool name="ScrapeManuals" value="true" />
<bool name="ScrapeMarquees" value="true" />
<bool name="ScrapeMetadata" value="true" />
<bool name="ScrapePhysicalMedia" value="true" />
@ -73,6 +75,7 @@
<bool name="ScreensaverControls" value="true" />
<bool name="ScreensaverSlideshowCustomImages" value="false" />
<bool name="ScreensaverSlideshowGameInfo" value="true" />
<bool name="ScreensaverSlideshowOnlyFavorites" value="false" />
<bool name="ScreensaverSlideshowRecurse" value="false" />
<bool name="ScreensaverSlideshowScanlines" value="true" />
<bool name="ScreensaverStretchImages" value="false" />
@ -80,6 +83,7 @@
<bool name="ScreensaverVideoAudio" value="true" />
<bool name="ScreensaverVideoBlur" value="false" />
<bool name="ScreensaverVideoGameInfo" value="true" />
<bool name="ScreensaverVideoOnlyFavorites" value="false" />
<bool name="ScreensaverVideoScanlines" value="true" />
<bool name="ShowHelpPrompts" value="true" />
<bool name="ShowHiddenFiles" value="true" />
@ -106,9 +110,8 @@
<int name="SoundVolumeVideos" value="80" />
<string name="ApplicationUpdaterFrequency" value="never" />
<string name="ApplicationUpdaterLastCheck" value="20230331T153206" />
<string name="ApplicationVersion" value="2.0.1" />
<string name="CollectionCustomGrouping" value="unthemed" />
<string name="CollectionSystemsAuto" value="" />
<string name="CollectionSystemsAuto" value="recent" />
<string name="CollectionSystemsCustom" value="" />
<string name="DefaultSortOrder" value="filename, ascending" />
<string name="GamelistViewStyle" value="automatic" />
@ -117,14 +120,20 @@
<string name="LaunchScreenDuration" value="normal" />
<string name="LegacyThemeTransitions" value="builtin-instant" />
<string name="MediaDirectory" value="" />
<string name="MediaViewerHelpPrompts" value="top" />
<string name="MenuColorScheme" value="dark" />
<string name="MenuOpeningEffect" value="scale-up" />
<string name="MiximageBoxSize" value="medium" />
<string name="MiximagePhysicalMediaSize" value="medium" />
<string name="MiximageResolution" value="1280x800" />
<string name="MiximageScreenshotAspectThreshold" value="high" />
<string name="MiximageScreenshotBlankAreasColor" value="black" />
<string name="MiximageScreenshotHorizontalFit" value="crop" />
<string name="MiximageScreenshotScaling" value="sharp" />
<string name="MiximageScreenshotVerticalFit" value="contain" />
<string name="OpenGLVersion" value="" />
<string name="QuickSystemSelect" value="leftrightshoulders" />
<string name="ROMDirectory" value="~/ROMs" />
<string name="ROMDirectory" value="" />
<string name="RandomEntryButton" value="games" />
<string name="SaveGamelistsMode" value="always" />
<string name="Scraper" value="screenscraper" />
@ -135,11 +144,11 @@
<string name="ScreensaverSlideshowImageDir" value="~/.emulationstation/slideshow/custom_images" />
<string name="ScreensaverType" value="video" />
<string name="StartupSystem" value="" />
<string name="ThemeAspectRatio" value="" />
<string name="ThemeColorScheme" value="" />
<string name="ThemeAspectRatio" value="automatic" />
<string name="ThemeColorScheme" value="art-book-next" />
<string name="ThemeSet" value="art-book-next-es-de" />
<string name="ThemeTransitions" value="automatic" />
<string name="ThemeVariant" value="" />
<string name="UIMode" value="full" />
<string name="UIMode_passkey" value="uuddlrlrba" />
<string name="UserThemeDirectory" value="/home/deck/retrodeck/themes" />
<string name="UserThemeDirectory" value="" />

View file

@ -506,6 +506,18 @@
<platform>easyrpg</platform>
<theme>easyrpg</theme>
</system>
<system>
<name>emulators</name>
<fullname>Emulators</fullname>
<path>%ROMPATH%/emulators</path>
<extension>.AppImage .desktop .sh</extension>
<command label="Suspend ES-DE">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<command label="Keep ES-DE running">%RUNINBACKGROUND% %ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<command label="AppImage (Suspend ES-DE)">%EMULATOR_OS-SHELL% -c "%ROM%"</command>
<command label="AppImage (Keep ES-DE running)">%RUNINBACKGROUND% %EMULATOR_OS-SHELL% -c "%ROM%"</command>
<platform>pcwindows</platform>
<theme>emulators</theme>
</system>
<system>
<name>famicom</name>
<fullname>Nintendo Family Computer</fullname>
@ -582,6 +594,17 @@
<platform>fmtowns</platform>
<theme>fmtowns</theme>
</system>
-->
<!--
<system>
<name>fpinball</name>
<fullname>Future Pinball</fullname>
<path>%ROMPATH%/fpinball</path>
<extension>.fpt .FPT</extension>
<command label="Future Pinball (Standalone)">PLACEHOLDER %ROM%</command>
<platform>fpinball</platform>
<theme>fpinball</theme>
</system>
-->
<system>
<name>gameandwatch</name>
@ -614,6 +637,7 @@
<command label="Genesis Plus GX Wide">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/genesis_plus_gx_wide_libretro.so %ROM%</command>
<command label="Gearsystem">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/gearsystem_libretro.so %ROM%</command>
<command label="SMS Plus GX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/smsplus_libretro.so %ROM%</command>
<!-- <command label="PicoDrive">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/picodrive_libretro.so %ROM%</command> -->
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module gg %ROM%</command> -->
<platform>gamegear</platform>
<theme>gamegear</theme>
@ -699,6 +723,17 @@
<platform>genesis</platform>
<theme>genesis</theme>
</system>
<!--
<system>
<name>gmaster</name>
<fullname>Hartung Game Master</fullname>
<path>%ROMPATH%/gmaster</path>
<extension>.bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/gmaster gmaster -cart %ROM%</command>
<platform>gmaster</platform>
<theme>gmaster</theme>
</system>
-->
<system>
<name>gx4000</name>
<fullname>Amstrad GX4000</fullname>
@ -750,6 +785,17 @@
<platform>lcdgames, gameandwatch</platform>
<theme>lcdgames</theme>
</system>
<!--
<system>
<name>lowresnx</name>
<fullname>LowRes NX Fantasy Console</fullname>
<path>%ROMPATH%/lowresnx</path>
<extension>.nx .NX</extension>
<command label="LowRes NX">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/lowresnx_libretro.so %ROM%</command>
<platform>lowresnx</platform>
<theme>lowresnx</theme>
</system>
-->
<system>
<name>lutro</name>
<fullname>Lutro Game Engine</fullname>
@ -1242,8 +1288,9 @@
<name>ports</name>
<fullname>Ports</fullname>
<path>%ROMPATH%/ports</path>
<extension>.desktop .sh</extension>
<command label="Various">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<extension>.AppImage .desktop .sh</extension>
<command label="Shortcut or script">%ENABLESHORTCUTS% %EMULATOR_OS-SHELL% %ROM%</command>
<command label="AppImage">%EMULATOR_OS-SHELL% -c "%ROM%"</command>
<platform>pc, pcwindows</platform>
<theme>ports</theme>
</system>
@ -1269,7 +1316,8 @@
<platform>ps3</platform>
<theme>ps3</theme>
</system>
<!-- <system>
<!--
<system>
<name>ps4</name>
<fullname>Sony PlayStation 4</fullname>
<path>%ROMPATH%/ps4</path>
@ -1277,7 +1325,8 @@
<command>PLACEHOLDER %ROM%</command>
<platform>ps4</platform>
<theme>ps4</theme>
</system> -->
</system>
-->
<system>
<name>psp</name>
<fullname>Sony PlayStation Portable</fullname>
@ -1402,6 +1451,17 @@
<platform>scummvm</platform>
<theme>scummvm</theme>
</system>
<!--
<system>
<name>scv</name>
<fullname>Epoch Super Cassette Vision</fullname>
<path>%ROMPATH%/scv</path>
<extension>.0 .bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/scv scv -cart %ROM%</command>
<platform>scv</platform>
<theme>scv</theme>
</system>
-->
<system>
<name>sega32x</name>
<fullname>Sega Mega Drive 32X</fullname>
@ -1733,6 +1793,17 @@
<platform>virtualboy</platform>
<theme>virtualboy</theme>
</system>
<!--
<system>
<name>vpinball</name>
<fullname>Visual Pinball</fullname>
<path>%ROMPATH%/vpinball</path>
<extension>.vpt .VPT .vpx .VPX</extension>
<command label="Visual Pinball (Standalone)">PLACEHOLDER %ROM%</command>
<platform>vpinball</platform>
<theme>vpinball</theme>
</system>
-->
<!--
<system>
<name>vsmile</name>
@ -1810,6 +1881,7 @@
<path>%ROMPATH%/x68000</path>
<extension>.dim .DIM .img .IMG .d88 .D88 .88d .88D .hdm .HDM .dup .DUP .2hd .2HD .xdf .XDF .hdf .HDF .cmd .CMD .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="PX68k">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/px68k_libretro.so %ROM%</command>
<!-- <command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/x68000 x68000 -flop1 %ROM%</command> -->
<platform>x68000</platform>
<theme>x68000</theme>
</system>
@ -1853,6 +1925,18 @@
<platform>zx81</platform>
<theme>zx81</theme>
</system>
<!--
<system>
<name>zxnext</name>
<fullname>Sinclair ZX Spectrum Next</fullname>
<path>%ROMPATH%/zxnext</path>
<extension>.nex .NEX .sna .SNA</extension>
<command label="#CSpect (Standalone)">%STARTDIR%=%GAMEDIR% MONO_IOMAP=all mono %EMULATOR_CSPECT% -fullscreen -s28 -vsync -60 -analytics -tv -zxnext -mmc=./ %ROM%</command>
<command label="ZEsarUX (Standalone)">%STARTDIR%=%EMUDIR% %EMULATOR_ZESARUX% &ndash;&ndash;machine tbblue &ndash;&ndash;realvideo &ndash;&ndash;enabletimexvideo &ndash;&ndash;tbblue-fast-boot-mode &ndash;&ndash;enable-esxdos-handler &ndash;&ndash;esxdos-root-dir %GAMEDIR% %ROM%</command>
<platform>zxnext</platform>
<theme>zxnext</theme>
</system>
-->
<system>
<name>zxspectrum</name>
<fullname>Sinclair ZX Spectrum</fullname>
@ -1863,13 +1947,4 @@
<platform>zxspectrum</platform>
<theme>zxspectrum</theme>
</system>
<!-- <system>
<name>tools</name>
<fullname>RetroDECK Tools</fullname>
<path>/app/tools</path>
<extension>.sh .SH</extension>
<command>bash %ROM%</command>
<platform>tools</platform>
<theme>tools</theme>
</system> -->
</systemList>

View file

@ -1,10 +0,0 @@
<?xml version="1.0"?>
<gameList>
<game>
<path>./configurator.sh</path>
<name>RetroDECK Configurator</name>
<desc>Change settings, move folders and more!</desc>
<nogamecount>true</nogamecount>
<nomultiscrape>true</nomultiscrape>
</game>
</gameList>

View file

@ -1,3 +0,0 @@
{
"only-arches": ["x86_64"]
}

View file

@ -1,43 +0,0 @@
app-id: net.retrodeck.retrodeck
runtime: org.kde.Platform
runtime-version: 5.15-22.08
sdk: org.kde.Sdk
sdk-extensions:
- org.freedesktop.Sdk.Extension.llvm14 # Needed for rpcs3
base: io.qt.qtwebengine.BaseApp # Needed for Yuzu
base-version: 5.15-22.08 # Needed for Yuzu
command: retrodeck.sh
finish-args:
- --socket=fallback-x11
- --socket=wayland
- --socket=pulseaudio
- --share=ipc
- --share=network
- --device=all
- --filesystem=home # Needed to be able to relocate / remove / create symlink at ~/retrodeck
- --filesystem=/run/media
- --filesystem=/media
- --allow=multiarch
- --talk-name=org.freedesktop.ScreenSaver
- --talk-name=org.freedesktop.PowerManagement.Inhibit
- --talk-name=org.freedesktop.login1.Manager
- --talk-name=org.freedesktop.portal.Flatpak.UpdateMonitor
- --filesystem=xdg-run/app/com.discordapp.Discord:create
- --filesystem=xdg-config/gtk-3.0:ro
# Dolphin
- --allow=bluetooth
# PPSSPP
# It allows an SDL application to specify its window class, which can be useful for window managers and desktop environments to identify and group similar windows
- --env=SDL_VIDEO_X11_WMCLASS=net.retrodeck.retrodeck
- --env=SDL_VIDEO_WAYLAND_WMCLASS=net.retrodeck.retrodeck
modules:
- name: retrodeck
buildsystem: simple
build-commands:
- cp -rn files/* /app
sources:
- type: archive
url: https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.tar.gz
sha256: __SHA__

View file

@ -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 \

View file

@ -169,10 +169,13 @@ changelog_dialog() {
else
local version_changelog=$(xml sel -t -m "//release[@version='$1']/description" -v . -n $rd_appdata | tr -s '\n' | sed 's/^\s*//')
zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap \
echo -e "In RetroDECK version $1, the following changes were made:\n$version_changelog" > "/var/config/retrodeck/changelog-partial.txt"
"$version_changelog" >> "/var/config/retrodeck/changelog-partial.txt"
zenity --icon-name=net.retrodeck.retrodeck --text-info --width=1200 --height=720 \
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
--title "RetroDECK Changelogs" \
--text="In RetroDECK version $1, the following changes were made:\n$version_changelog"
--filename="/var/config/retrodeck/changelog-partial.txt"
fi
}

View file

@ -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

View file

@ -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 \

View file

@ -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
}

View file

@ -65,44 +65,71 @@
<project_license>GPL-3.0</project_license>
<metadata_license>CC0-1.0</metadata_license>
<releases>
<release version="0.7.1b" date="2023-08-21">
<release version="0.7.2b" date="2023-09-27">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.7.2b</url>
<description>
<p>Updates:</p>
<ul>
<li>All Emulators, ES-DE and the included theme have been updated.</li>
</ul>
<p>Bugfixes and other changes:</p>
<ul>
<li>Added helper .txt files to the mod and texture pack folders.</li>
<li>The builtin changelog is now scrollable.</li>
<li>The loading bar color is after much debate once again red.</li>
<li>Gameboy Advanced and Game Gear integer scaling changes based on feedback.</li>
<li>Optimized and retooled the patching process for ES-DE.</li>
<li>Various fixes and optimizations to the RetroDECK build process.</li>
</ul>
<p>Known issues:</p>
<ul>
<li>PPSSPP now have Retroachievements, but it is right now not configurable in the configurator (as it works a bit different the other emulators), we hope to have a solution for it at a later date. You can still login / logout / enable hardcore mode normally from the PPSSPP interface.</li>
<li>Quitting the RetroArch GB core with the radial function makes the core swap the palette.</li>
<li>Borders sometimes are disappearing, a possible workaround is to reset RetroArch from the configurator.</li>
</ul>
</description>
</release>
<release version="0.7.1b" date="2023-08-16">
<url>https://github.com/XargonWan/RetroDECK/releases/tag/0.7.1b</url>
<description>
<p>Information:</p>
<ul>
<li>Steam Deck users update RetroDECK from Discover in Desktop Mode.</li>
<li>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).</li>
<li>Steam Deck users update RetroDECK from <i>Discover</i> in Desktop Mode.</li>
<li>Don't forget to reapply the latest controller layout: Go into the <i>Templates</i> tab and reapply the new profile ending with 0.7.1b (there is no need to reinstall the entire layout from the Configurator).</li>
</ul>
<p>Bug fixes:</p>
<p>Bug fixes and other changes:</p>
<ul>
<li>Fixed an issue to make sure the RD controller layout file at update with each RD update.</li>
<li>Fixed an issue with PPSSPP that made "L" and "R" incorrectly bound.</li>
<li>Fixed an issue in the Configurator that prevented the Yuzu preset for swapping A/B X/Y from working.</li>
<li>Fixed an notification issues on the latest SteamOS Beta releases.</li>
<li>Fixed an rsync permissions issue in the RetroDECK Framework.</li>
<li>Updated Yuzu presets to handle new config syntax in the RetroDECK Framework.</li>
<li>Changed auto-update to notification only, until permissions error can be worked out.</li>
<li>Added some new pixelart icons by ItzSelenux (pixelitos-icon-theme)</li>
<li>Fixed an issue to make sure the RD controller layout file at update with each RD update.</li>
<li>Fixed an issue with PPSSPP that made <i>L</i> and <i>R</i> incorrectly bound.</li>
<li>Fixed an issue in the Configurator that prevented the Yuzu preset for swapping A/B X/Y from working.</li>
<li>Fixed a notification issue on the latest SteamOS Beta releases.</li>
<li>Fixed an rsync permissions issue in the RetroDECK Framework.</li>
<li>Updated Yuzu presets to handle new config syntax in the RetroDECK Framework.</li>
<li>Changed auto-update to notification only, until permissions error can be worked out.</li>
<li>Added some new pixelart icons by ItzSelenux (pixelitos-icon-theme)</li>
</ul>
<p>Steam Deck - Global Controller Layout Changes:</p>
<p>Updates:</p>
<p>All Emulators and ES-DE have been updated</p>
<p>Steam Deck - Global Controller Layout:</p>
<p>We have done some changes based on community feedback</p>
<ul>
<li>Select is now a hotkey trigger while pressing it down, L4 and R4 are still triggers as well.</li>
<li>The RetroArch combo of Select + Start = Quit now works on many SA-Emulators.</li>
<li>Open Menu is removed from Select.</li>
<li>R5 = A button (this allows for great Wii controls on the right touchpad and pressing down the R5 for A).</li>
<li>L5 = B button.</li>
<li><i>Select</i> is now a hotkey trigger while pressing it down, <i>L4</i> and <i>R4</i> are still triggers as well.</li>
<li>The RetroArch combo of <i>Select</i> + <i>Start</i> = <i>Quit</i> now works on many SA-Emulators.</li>
<li><i>Open Menu</i> is removed from <i>Select</i>.</li>
<li><i>R5</i> = <i>A</i> button (this allows for great Wii controls on the right touchpad and pressing down the <i>R5</i> for A).</li>
<li><i>L5</i> = <i>B</i> button.</li>
</ul>
<p>Steam Deck - Global Hotkey Changes:</p>
<p>Global hotkey changes:</p>
<ul>
<li>Open Menu is on Y.</li>
<li>Increase Emulation Speed is on Dpad-UP.</li>
<li>Decrease Emulation Speed is on Dpad-Down.</li>
<li>Fullscreen OFF command is removed (as emulators have migrated to toggle).</li>
<li><i>Open Menu</i> is on <i>Y</i>.</li>
<li><i>Increase Emulation Speed</i> is on <i>Dpad-UP</i>.</li>
<li><i>Decrease Emulation Speed</i> is on <i>Dpad-Down</i>.</li>
<li><i>Fullscreen OFF</i> command is removed (as emulators have migrated to toggle).</li>
</ul>
<p>Known issues:</p>
<ul>
<li>The built in auto-updater is not working (we are working on it). Discover is ok.</li>
<li>Some emulators don't have hotkey support or have bugs affecting their hotkeys.</li>
<li>The built-in auto-updater is not working (we are working on it). Discover is ok.</li>
<li>Some emulators don't have hotkey support or have bugs affecting their hotkeys.</li>
</ul>
</description>
</release>

View file

@ -8,6 +8,15 @@ base: io.qt.qtwebengine.BaseApp # Needed for Yuzu
base-version: 5.15-22.08 # Needed for Yuzu
command: retrodeck.sh
add-extensions:
org.ppsspp.PPSSPP.Locale:
directory: share/locale
bundle: true
no-autodownload: false
subdirectories: false
autodelete: true
locale-subset: true
finish-args:
- --socket=fallback-x11
- --socket=wayland
@ -15,7 +24,7 @@ finish-args:
- --share=ipc
- --share=network
- --device=all
- --filesystem=home # Needed to be able to relocate / remove / create symlink at ~/retrodeck
- --filesystem=home
- --filesystem=/run/media
- --filesystem=/media
- --allow=multiarch
@ -58,6 +67,7 @@ cleanup-commands:
modules:
# dependency of: CEMU
- rd-submodules/shared-modules/libusb/libusb.json
# This module is used to define the RetroDECK version
@ -66,18 +76,16 @@ modules:
# The version number is hardcoded in /app/retrodeck/version
#
# UPDATE STEPS FOR MAIN:
# [X] Update the VERSION variable
# [X] Update the VERSION variable on line containing "VERSION=THISBRANCH"
# [X] Update the appdata.xml with the version number and notes
# [X] change branch into main in version-initialization (first one)
# [X] change branch into main in retrodeck module (last one)
# [X] if header (before modules) was edited, edit it even in flathub.yml
#
- name: version-initialization
buildsystem: simple
build-commands:
- |
VERSION=0.7.1b
# on main please update this with the version variable, eg: VERSION='0.7.0b'
VERSION=0.7.2b
git checkout ${GITHUB_REF_NAME}
mkdir -p ${FLATPAK_DEST}/retrodeck/
@ -91,7 +99,7 @@ modules:
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK.git
branch: main
branch: THISBRANCH
- name: xmlstarlet
config-opts:
@ -112,6 +120,7 @@ modules:
# mesa repo got a double certificate issue and gnutils cannot handle that so GLU download fails,
# this affects even the shared-modules's glu so I have to replace it temporarly
# more info there: https://gitlab.com/gnutls/gnutls/-/issues/1335
# dependency of: CEMU
- name: glu
buildsystem: meson
cleanup:
@ -210,6 +219,7 @@ modules:
url: https://github.com/mikefarah/yq/releases/download/v4.33.3/yq_linux_amd64
sha256: 4ee662847c588c3ef2fec8bfb304e8739e3dbaba87ccb9a608d691c88f5b64dc
# dependency of: CEMU (13.0.0)
- name: glslang
buildsystem: cmake-ninja
config-opts:
@ -220,8 +230,8 @@ modules:
- /lib/cmake
sources:
- type: archive
url: https://github.com/KhronosGroup/glslang/archive/12.3.1.tar.gz
sha256: a57836a583b3044087ac51bb0d5d2d803ff84591d55f89087fc29ace42a8b9a8
url: https://github.com/KhronosGroup/glslang/archive/13.0.0.tar.gz
sha256: bcda732434f829aa74414ea0e06d329ec8ac28637c38a0de45e17c8fd25a4715
x-checker-data:
type: anitya
stable-only: true
@ -263,6 +273,7 @@ modules:
- sed -i 's|-o root -g root ||' ./Makefile.gnu
- sed -i 's|/usr|/app|' ./Makefile.gnu
# dependency of: CEMU
- name: pugixml
buildsystem: cmake-ninja
config-opts:
@ -326,7 +337,13 @@ modules:
v'$(cat ${FLATPAK_DEST}/retrodeck/version)', ES-DE v" + Utils::String::toUpper(PROGRAM_VERSION_STRING)#g'
es-app/src/guis/GuiMenu.cpp
- type: patch
path: rd-submodules/es-de/es-de-retrodeck-mods.patch
path: rd-submodules/es-de/GuiMenu.cpp.patch
- type: patch
path: rd-submodules/es-de/GuiMenu.h.patch
- type: patch
path: rd-submodules/es-de/ViewController.cpp.patch
- type: patch
path: rd-submodules/es-de/Window.cpp.patch
# ES-DE - END
@ -340,7 +357,7 @@ modules:
sources:
- type: git
url: https://github.com/anthonycaccese/art-book-next-es-de.git
commit: a0dc0cccaa3f1475feb58e551fe732d982e161c0
commit: 4fe896af7447404f6ea083335cd661c91b0f7860
# ES-DE Themes - END
@ -353,11 +370,13 @@ modules:
config-opts:
- '--enable-dbus'
make-args:
- GLOBAL_CONFIG_DIR=${FLATPAK_DEST}/etc
- 'GLOBAL_CONFIG_DIR=${FLATPAK_DEST}/etc'
- HAVE_TRANSLATE=1
- HAVE_ACCESSIBILITY=1
sources:
- type: git
url: https://github.com/libretro/RetroArch.git
commit: 6616b807edea5b56683e9fbca8b003b436c22b13
url: 'https://github.com/libretro/RetroArch.git'
commit: 712b9350a5c2b1b9129d939a2ae622093dfabd04
- type: file
path: rd-submodules/retroarch/retroarch.cfg
post-install:
@ -370,7 +389,6 @@ modules:
- >-
sed s:@prefix@:${FLATPAK_DEST}:g retroarch.cfg >
${FLATPAK_DEST}/etc/retroarch.cfg
- mkdir -p ${FLATPAK_DEST}/share/appdata
modules:
- rd-submodules/retroarch/modules/libpng/libpng-1.6.35.json
- rd-submodules/retroarch/modules/nvidia-cg-toolkit/nvidia-cg-toolkit-3.1.0013.json
@ -385,7 +403,7 @@ modules:
- rd-submodules/retroarch/modules/libbz2/libbz2-1.0.8.json
- rd-submodules/retroarch/modules/xrandr/xrandr-1.5.1.json
- rd-submodules/retroarch/modules/libaio/libaio-0.3.112.json
# certificate issue, check libglu module for more info
# certificate issue, check glu module for more info
#- rd-submodules/shared-modules/glu/glu-9.json
- rd-submodules/shared-modules/libdecor/libdecor-0.1.1.json
- name: retroarch-filers-video
@ -394,44 +412,44 @@ modules:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/RetroArch.git
commit: 6616b807edea5b56683e9fbca8b003b436c22b13
url: 'https://github.com/libretro/RetroArch.git'
commit: 712b9350a5c2b1b9129d939a2ae622093dfabd04
- name: retroarch-filers-audio
subdir: libretro-common/audio/dsp_filters
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/RetroArch.git
commit: 6616b807edea5b56683e9fbca8b003b436c22b13
url: 'https://github.com/libretro/RetroArch.git'
commit: 712b9350a5c2b1b9129d939a2ae622093dfabd04
- name: retroarch-assets
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/retroarch-assets.git
commit: 4ec80faf1b5439d1654f407805bb66141b880826
url: 'https://github.com/libretro/retroarch-assets.git'
commit: 7b735ef18bcc6508b1c9a626eb237779ff787179
- name: libretro-database
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/libretro-database.git
commit: 6a8d65d2bc1b7ffa7accb882e80c0a77b931bcc6
url: 'https://github.com/libretro/libretro-database.git'
commit: e3b5cb00da4f3ab99491bf67c19630ffa7ee19f2
- name: libretro-core-info
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/libretro-core-info.git
commit: eb7e3ff064c3fdaae46b89c9da9f49e15a8e9c2b
url: 'https://github.com/libretro/libretro-core-info.git'
commit: dacae85b406131feb12395a415fdf57fc4745201
- name: retroarch-joypad-autoconfig
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/retroarch-joypad-autoconfig.git
commit: 8ec6304a14bd37cf927ebe7555a274ac4fefeb69
url: 'https://github.com/libretro/retroarch-joypad-autoconfig.git'
commit: 5666e46bb89caf4e9af358fdb97a2b384cb62f36
- name: common-shaders
make-install-args:
- PREFIX=${FLATPAK_DEST}
@ -444,22 +462,22 @@ modules:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/slang-shaders.git
commit: 8b35477a934739b1db193f22e7057754e7a87381
url: 'https://github.com/libretro/slang-shaders.git'
commit: 9266fa24b64b274fd429b73469ded3561de7b8f4
- name: glsl-shaders
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/glsl-shaders.git
commit: 799aa9e4d567db0874111d2aed9c9b9058a19641
url: 'https://github.com/libretro/glsl-shaders.git'
commit: c26b9e1913eda8c25d6cd218818745a3b451f982
- name: common-overlays
make-install-args:
- PREFIX=${FLATPAK_DEST}
sources:
- type: git
url: https://github.com/libretro/common-overlays.git
commit: b3827a2c63834ed9e1902acc7cf9019f64771ed3
url: 'https://github.com/libretro/common-overlays.git'
commit: 115d8670c2e032e4a41ba45f766f5cfd9dae28b8
# RetroArch - END
@ -471,8 +489,8 @@ modules:
- mv ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* /app/share/libretro/cores/
sources:
- type: archive
url: https://buildbot.libretro.com/stable/1.15.0/linux/x86_64/RetroArch_cores.7z
sha256: 2230bc38eaf87406efd0c2b7bdd1cf9e813ba113505600f14a7ef9eb06f8c7c0
url: https://buildbot.libretro.com/stable/1.16.0/linux/x86_64/RetroArch_cores.7z
sha256: e4f7c9843ba827812088b3d1c7d745e802d7691180eb789ba5a37732461f2a06
- name: retroarch-sameduck-core
buildsystem: simple
@ -544,13 +562,14 @@ modules:
sources:
- type: git
url: &ppsspp-url https://github.com/hrydgard/ppsspp.git
tag: v1.15.4
commit: 9a80120dc09997e40c0a73fda05c3e07a347259f
tag: v1.16.3
commit: a9b6421dfde68be9d065b51e9d519699ce2e9053
x-checker-data:
type: anitya
project-id: 12295
tag-template: v$version
is-main-source: true
type: json
url: https://api.github.com/repos/hrydgard/ppsspp/releases/latest
version-query: .tag_name | sub("^v"; "")
tag-query: .tag_name
timestamp-query: .published_at
- name: ppsspp-localization
buildsystem: simple
@ -583,8 +602,8 @@ modules:
- ln -s "${FLATPAK_DEST}/yuzu/usr/bin/yuzu" "${FLATPAK_DEST}/bin/yuzu"
sources:
- type: file
url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1522/yuzu-mainline-20230813-3ea669b08.AppImage
sha256: d1c5217f96c7ce66b6ebc8db835daad801de7e8ca7df1c35ae62920aa55c04da
url: https://github.com/yuzu-emu/yuzu-mainline/releases/download/mainline-0-1567/yuzu-mainline-20230923-ace91dd0c.AppImage
sha256: 965bdfa63e713a0672fb5a037ecb527b4860600c6a2526f7c053bfe082b5a9d8
# Yuzu - END
@ -649,8 +668,8 @@ modules:
- ln -s "${FLATPAK_DEST}/pcsx2-qt/usr/bin/pcsx2-qt" "${FLATPAK_DEST}/bin/pcsx2-qt"
sources:
- type: file
url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.4916/pcsx2-v1.7.4916-linux-appimage-x64-Qt.AppImage
sha256: 870a9d198d5f05a1ecf3e98110fe24beacf72eb45077ee31d1200c36930b3d9c
url: https://github.com/PCSX2/pcsx2/releases/download/v1.7.5059/pcsx2-v1.7.5059-linux-appimage-x64-Qt.AppImage
sha256: a51addc9bd15b77e842160acecb1f18486f8a024e5e73e8aea5de71de2b164c7
# PCSX2 - END
@ -879,9 +898,11 @@ modules:
# DO NOT UPDATE! WENT ON QT6
# https://github.com/flathub/net.rpcs3.RPCS3
# glu issue, check libglu module for more info
# glu issue, check glu module for more info
#- rd-submodules/shared-modules/glu/glu-9.json
- rd-submodules/shared-modules/glew/glew.json # RPCS3 is not using this anymore, what about the other emu? Can we remove it?
# dependency of: CEMU
- rd-submodules/shared-modules/glew/glew.json
- name: rpcs3
buildsystem: cmake-ninja
@ -930,9 +951,8 @@ modules:
# RPCS3 - END
# # PRIMEHACK - START
# # https://github.com/flathub/io.github.shiiion.primehack
# # Disabled because it's overwriting Dolphin
# PRIMEHACK - START
# https://github.com/flathub/io.github.shiiion.primehack
- name: primehack
buildsystem: cmake-ninja
@ -989,9 +1009,22 @@ modules:
# Duckstation-AppImage - END
# Cemu - START
# LATEST BUILD BEFORE RUNTIME 23.08
# https://github.com/cemu-project/Cemu/releases
# https://github.com/flathub/info.cemu.Cemu
- name: hidapi
buildsystem: cmake-ninja
sources:
- type: archive
url: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-0.14.0.tar.gz
sha256: a5714234abe6e1f53647dd8cba7d69f65f71c558b7896ed218864ffcf405bcbd
x-checker-data:
type: anitya
project-id: 5594
stable-only: true
url-template: https://github.com/libusb/hidapi/archive/refs/tags/hidapi-$version.tar.gz
- name: boost
buildsystem: simple
build-commands:
@ -1003,8 +1036,8 @@ modules:
- /lib/cmake
sources:
- type: archive
url: https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.tar.bz2
sha256: a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6
url: https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.bz2
sha256: 6478edfe2f3305127cffe8caf73ea0176c53769f4bf1585be237eb30798c3b8e
x-checker-data:
type: anitya
project-id: 6845
@ -1025,8 +1058,10 @@ modules:
- /lib/pkgconfig
sources:
- type: archive
url: https://libzip.org/download/libzip-1.10.0.tar.xz
sha256: cd2a7ac9f1fb5bfa6218272d9929955dc7237515bba6e14b5ad0e1d1e2212b43
url: https://libzip.org/download/libzip-1.10.1.tar.xz
mirror-urls:
- https://github.com/nih-at/libzip/releases/download/v1.10.1/libzip-1.10.1.tar.xz
sha256: dc3c8d5b4c8bbd09626864f6bcf93de701540f761d76b85d7c7d710f4bd90318
x-checker-data:
type: anitya
project-id: 10649
@ -1115,8 +1150,8 @@ modules:
x-checker-data:
type: git
tag-pattern: ^v([\d.]+-\d+)$
tag: v2.0-46
commit: a17111e6b0e4802044c90f4bedd66478de689070
tag: v2.0-47
commit: 85aa4f095b119e98620451a0c19c80f656d944a6
- type: shell
commands:
- sed "s/set(EXPERIMENTAL_VERSION.*/set(EXPERIMENTAL_VERSION \"$(git describe
@ -1198,7 +1233,6 @@ modules:
- mkdir -p /app/tools
- cp tools/configurator.sh /app/tools/configurator.sh
- chmod +x /app/tools/configurator.sh
#- cp es-configs/tools-gamelist.xml /app/retrodeck/tools-gamelist.xml
- cp tools/retrodeck_function_wrapper.sh /app/tools/retrodeck_function_wrapper.sh
- chmod +x /app/tools/retrodeck_function_wrapper.sh
@ -1210,8 +1244,6 @@ modules:
- cp net.retrodeck.retrodeck.desktop /app/share/applications/net.retrodeck.retrodeck.desktop
- cp net.retrodeck.retrodeck.Configurator.desktop /app/share/applications/net.retrodeck.retrodeck.Configurator.desktop
# TODO: group the configs per-emu and optimize the following cps, like already done with Dolphin. Please not that some files may be renamed, check retrodeck.sh to know how (and fix it after the edit)
# Initializing default emulator configs
- cp -r emu-configs ${FLATPAK_DEST}/retrodeck/emu-configs/
@ -1229,4 +1261,8 @@ modules:
sources:
- type: git
url: https://github.com/XargonWan/RetroDECK.git
<<<<<<< HEAD
branch: main
=======
branch: THISBRANCH
>>>>>>> cooker-0.7.2b

View file

@ -0,0 +1,62 @@
name: TEST_release_info
on:
push:
branches:
- main
paths:
- .github/workflows/TEST_release_info.yml
pull_request:
branches:
- main
workflow_dispatch:
jobs:
Building_RetroDECK:
runs-on: ubuntu-latest
steps:
- name: Generate build ID
id: generating_buildid
run: echo "##[set-output name=build-id;]$(echo "$( git rev-parse --short HEAD )")"
- uses: actions/checkout@v3
- name: Initialize enviornment
run: |
git pull
git submodule init
git submodule update
sudo apt install -y flatpak flatpak-builder p7zip-full xmlstarlet appstream-util
- name: Validating the appdata
run: appstream-util validate "net.retrodeck.retrodeck.appdata.xml"
continue-on-error: true
- name: Getting version info
id: version
run: |
appdata="https://raw.githubusercontent.com/XargonWan/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
REL_VER=$(curl -s $appdata | xmlstarlet sel -t -v "//release/@version" | head -1)
DES="$(curl -s $appdata | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
echo "REL_VER=$REL_VER" >> $GITHUB_ENV
echo -e "# Release Notes\n" >> "body.md"
echo "$DES" >> "body.md"
- name: Publish the flatpak in a new release
uses: ncipollo/release-action@v1
env:
REL_VER: ${{ env.REL_VER }}
with:
tag: ${{ env.REL_VER }}
name: "RetroDECK v${{ env.REL_VER }}"
bodyFile: "body.md"
#artifacts: "RetroDECK.flatpak,RetroDECK-Artifact.tar.gz"
allowUpdates: true
draft: true
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK
#continue-on-error: true

205
old/workflows/cooker.yml Normal file
View file

@ -0,0 +1,205 @@
name: cooker
on:
# push:
# branches:
# - cooker*
# pull_request:
# branches:
# - cooker*
workflow_dispatch:
jobs:
Job1_-_Building_P1:
runs-on: ubuntu-latest
steps:
- name: Get date for artifacts
id: date
run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M%S')"
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
id: extract_branch
- name: Generate build ID
id: generating_buildid
run: echo "##[set-output name=build-id;]$(echo "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}")"
- uses: actions/checkout@v3
- name: Download global cache
uses: dawidd6/action-download-artifact@v2
with:
workflow: cooker.yml
name: global-cache
search_artifacts: true
skip_unpack: true
continue-on-error: true
- name: Extract global cache
run: |
tar --skip-old-files -xzvf retrodeck-cooker.tar.gz
rm -f retrodeck-cooker.tar.gz
continue-on-error: true
- name: DEBUG
run: |
echo "Listing folder $PWD contents"
ls -lna
echo "Checking for version file"
find ~ -iname version
cat $(find ~ -iname version)
- name: Initialize enviornment
run: |
git pull
git submodule init
git submodule update
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt-get update
sudo apt install flatpak flatpak-builder p7zip-full
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13
- name: Buld part 1 - Until melonds
run: |
sudo flatpak-builder --build-only --stop-at=melonds --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
- name: Compress cache
run: |
touch retrodeck-cooker.tar.gz
rm -rf .flatpak-builder/build/*-{2,3,4,5,6}
find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks
tar --ignore-failed-read -czvf retrodeck-cooker.tar.gz retrodeck-flatpak-cooker .flatpak-builder/build
- name: Upload build specific cache
uses: actions/upload-artifact@v3
with:
name: "${{ steps.generating_buildid.outputs.build-id }}"
path: retrodeck-cooker.tar.gz
# this is done to speed up the things now, it may be removed later
- name: Compress global cache
run: |
touch retrodeck-cooker.tar.gz
rm -rf .flatpak-builder/build/*-{2,3,4,5,6}
find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks
tar --ignore-failed-read -czvf retrodeck-cooker.tar.gz retrodeck-flatpak-cooker .flatpak-builder/build
continue-on-error: true
- name: Upload global cache
uses: actions/upload-artifact@v3
with:
name: global-cache
path: retrodeck-cooker.tar.gz RetroDECK.flatpak
continue-on-error: true
outputs:
buildID: "${{ steps.generating_buildid.outputs.build-id }}"
Job2_-_Build_P2_and_publish:
runs-on: ubuntu-latest
needs: [Job1_-_Building_P1]
steps:
- uses: actions/checkout@v3
- name: Download build specific cache
uses: actions/download-artifact@v2
with:
name: ${{ needs.Job1_-_Building_P1.outputs.buildID }}
- name: Extract cache
run: |
tar --skip-old-files -xzvf retrodeck-cooker.tar.gz
rm -f retrodeck-cooker.tar.gz
- name: DEBUG
run: |
echo "Listing folder $PWD contents"
ls -lna
echo "Checking for version file"
find ~ -iname version
cat $(find ~ -iname version)
- name: Initialize enviornment
run: |
git pull
git submodule init
git submodule update
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt-get update
sudo apt install flatpak flatpak-builder p7zip-full
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13
- name: Create Bundle
run: |
sudo flatpak-builder --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-cooker net.retrodeck.retrodeck.yml
sudo flatpak build-bundle $GITHUB_WORKSPACE/local RetroDECK.flatpak net.retrodeck.retrodeck
- name: Get date for artifacts
id: date
run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M')"
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
id: extract_branch
- name: Read version from version file
id: version
run: echo "##[set-output name=version;]$(cat $(find . -name version))"
- name: DEBUG - Print version name
shell: bash
run: |
echo "DEBUG: printing version from version file"
echo "${{ steps.version.outputs.version }}"
- name: Publish the flatpak in a new cooker release
uses: ncipollo/release-action@v1
with:
#tag: "${{ steps.version.outputs.version }}"
tag: "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}"
body: |
# Release Notes (Cooker)
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
Cooker channel is provided for the community to test fixes and explore new functionality.
Please DO NOT open issues or ask support on this build.
artifacts: "RetroDECK.flatpak"
allowUpdates: true
prerelease: true
draft: false
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK-cooker
continue-on-error: true
- name: Compress global cache
run: |
touch retrodeck-cooker.tar.gz
rm -rf .flatpak-builder/build/*-{2,3,4,5,6}
find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks
tar --ignore-failed-read -czvf retrodeck-cooker.tar.gz retrodeck-flatpak-cooker .flatpak-builder/build
continue-on-error: true
- name: Upload global cache
uses: actions/upload-artifact@v3
with:
name: global-cache
path: retrodeck-cooker.tar.gz RetroDECK.flatpak
continue-on-error: true
- name: Upload RetroDECK.flatpak
uses: actions/upload-artifact@v3
with:
name: retrodeck-flatpak
path: RetroDECK.flatpak
continue-on-error: true

View file

@ -0,0 +1,88 @@
name: PUSH-cooker-flathub
on:
workflow_dispatch:
jobs:
Pushing_cooker_into_flathub:
runs-on: ubuntu-latest
steps:
- name: Pushing
shell: bash
run: |
# EDITABLES:
rd_branch=${GITHUB_REF_NAME}
echo $rd_branch
gits_folder="${GITHUB_WORKSPACE}/gits" # without last /
mkdir -vp $gits_folder
cd $gits_folder
if [ -d flathub ]; then
rm -rf flathub
fi
git clone --recursive https://github.com/flathub/net.retrodeck.retrodeck.git flathub
cd $gits_folder
git clone --recursive https://github.com/XargonWan/RetroDECK RetroDECK
cd $gits_folder/RetroDECK
# NON-EDITABLES
#relname="$rd_branch-"$(date +%d%m%y.%H%M)
relname="cooker-"$(git rev-parse --short HEAD)
git checkout $rd_branch
git submodule init
git submodule update
# NOTE: the only linked submodules are: rd-submodules/retroarch
# these must be included in the exclusion list as they must be redownloaded
#sync -rav --progress --exclude={'res/screenshots/','shared-modules/','rd-submodules/retroarch','.git/','docs','retrodeck-flatpak/','retrodeck-flatpak-cooker/','.flatpak-builder/'} ~/RetroDECK/ ~/flathub/
cd $gits_folder/flathub
git checkout -b $relname
git rm -rf *
git clean -fxd # restroing git index
# Copying only a few files as the others are cloned by git in retrodeck.sh
cd $gits_folder/RetroDECK
cp -rf \
'flathub.json' \
'LICENSE' \
'flathub.yml' \
'README.md' \
$gits_folder/flathub/
cd $gits_folder/flathub
ls -lah
# manipulating manifest
mv flathub.yml net.retrodeck.retrodeck.yml
# Getting latest release name
# version=$(\
# curl -sL \
# -H "Accept: application/vnd.github+json" \
# -H "Authorization: Bearer ${{ secrets.TRIGGER_BUILD_TOKEN }}" \
# https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases \
# | jq .[0].tag_name \
# | tr -d \" \
# )
sha=$(curl -sL https://artifacts.retrodeck.net/artifacts/RetroDECK-Artifact.sha)
sed -i "s#__SHA__#$sha#g" net.retrodeck.retrodeck.yml
echo -e "Resulting manifest:\n"
cat net.retrodeck.retrodeck.yml
git config --global user.name "${{ secrets.GITNAME }}"
git config --global user.email "${{ secrets.GITMAIL }}"
git add *
git commit -m "Updated flathub/net.retrodeck.retrodeck from RetroDECK/$rd_branch"
git remote -v
git push --force https://${{ secrets.TRIGGER_BUILD_TOKEN }}@github.com/flathub/net.retrodeck.retrodeck.git $relname

188
old/workflows/main.yml Normal file
View file

@ -0,0 +1,188 @@
name: main
on:
# Triggers the workflow on push or pull request events but only for the main branch
# push:
# branches:
# - main
# pull_request:
# branches:
# - main
workflow_dispatch:
jobs:
Job1_-_Building_P1:
runs-on: ubuntu-latest
steps:
- name: Get date for artifacts
id: date
run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M%S')"
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
id: extract_branch
- name: Generate build ID
id: generating_buildid
run: echo "##[set-output name=build-id;]$(echo "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}")"
- uses: actions/checkout@v3
- name: Download global cache
uses: dawidd6/action-download-artifact@v2
with:
workflow: main.yml
name: global-cache
search_artifacts: true
skip_unpack: true
continue-on-error: true
- name: Extract global cache
run: |
tar --skip-old-files -xzvf retrodeck-main.tar.gz
rm -f retrodeck-main.tar.gz
continue-on-error: true
- name: DEBUG
run: |
echo "Listing folder $PWD contents"
ls -lna
echo "Checking for version file"
find ~ -iname version
cat $(find ~ -iname version)
- name: Initialize enviornment
run: |
git pull
git submodule init
git submodule update
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt-get update
sudo apt install flatpak flatpak-builder p7zip-full
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13
- name: Buld part 1 - Until melonds
run: |
sudo flatpak-builder --build-only --stop-at=melonds --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-main net.retrodeck.retrodeck.yml
- name: Compress cache
run: |
touch retrodeck-main.tar.gz
rm -rf .flatpak-builder/build/*-{2,3,4,5,6}
find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks
tar --ignore-failed-read -czvf retrodeck-main.tar.gz retrodeck-flatpak-main .flatpak-builder/build
- name: Upload build specific cache
uses: actions/upload-artifact@v3
with:
name: "${{ steps.generating_buildid.outputs.build-id }}"
path: retrodeck-main.tar.gz
# this is done to speed up the things now, it may be removed later
- name: Compress global cache
run: |
touch retrodeck-main.tar.gz
rm -rf .flatpak-builder/build/*-{2,3,4,5,6}
find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks
tar --ignore-failed-read -czvf retrodeck-main.tar.gz retrodeck-flatpak-main .flatpak-builder/build
continue-on-error: true
- name: Upload global cache
uses: actions/upload-artifact@v3
with:
name: global-cache
path: retrodeck-main.tar.gz RetroDECK.flatpak
continue-on-error: true
outputs:
buildID: "${{ steps.generating_buildid.outputs.build-id }}"
Job2_-_Build_P2_and_publish:
runs-on: ubuntu-latest
needs: [Job1_-_Building_P1]
steps:
- uses: actions/checkout@v3
- name: Download build specific cache
uses: actions/download-artifact@v2
with:
name: ${{ needs.Job1_-_Building_P1.outputs.buildID }}
- name: Extract cache
run: |
tar --skip-old-files -xzvf retrodeck-main.tar.gz
rm -f retrodeck-main.tar.gz
- name: DEBUG
run: |
echo "Listing folder $PWD contents"
ls -lna
echo "Checking for version file"
find ~ -iname version
cat $(find ~ -iname version)
- name: Initialize enviornment
run: |
git pull
git submodule init
git submodule update
sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt-get update
sudo apt install flatpak flatpak-builder p7zip-full
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08 org.freedesktop.Sdk.Extension.llvm13
- name: Create Bundle
run: |
sudo flatpak-builder --user --force-clean --repo=${GITHUB_WORKSPACE}/local retrodeck-flatpak-main net.retrodeck.retrodeck.yml
sudo flatpak build-bundle $GITHUB_WORKSPACE/local RetroDECK.flatpak net.retrodeck.retrodeck
- name: Read version from version file
id: version
run: echo "##[set-output name=version;]$(cat $(find . -name version))"
- name: Publish the flatpak in a new main release
uses: ncipollo/release-action@v1
with:
#tag: "${{ steps.version.outputs.version }}"
#tag: "${{ steps.extract_branch.outputs.branch }}-${{ steps.date.outputs.date }}"
tag: "0.4.0b"
body: |
# Release Notes (main)
artifacts: "RetroDECK.flatpak"
allowUpdates: true
prerelease: true
draft: true
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
repo: RetroDECK-main
continue-on-error: true
- name: Compress global cache
run: |
touch retrodeck-main.tar.gz
rm -rf .flatpak-builder/build/*-{2,3,4,5,6}
find .flatpak-builder/build -xtype l -exec rm {} \; # removing dead symlinks
tar --ignore-failed-read -czvf retrodeck-main.tar.gz retrodeck-flatpak-main .flatpak-builder/build
continue-on-error: true
- name: Upload global cache
uses: actions/upload-artifact@v3
with:
name: global-cache
path: retrodeck-main.tar.gz RetroDECK.flatpak
continue-on-error: true
- name: Upload RetroDECK.flatpak
uses: actions/upload-artifact@v3
with:
name: retrodeck-flatpak
path: RetroDECK.flatpak
continue-on-error: true

View file

@ -0,0 +1,22 @@
name: Remove-artifacts
on:
#schedule:
# Every day at 1am
# - cron: '0 1 * * *'
workflow_dispatch:
jobs:
remove-old-artifacts:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Remove old artifacts
uses: c-hive/gha-remove-artifacts@v1
with:
age: '2 seconds' # '<number> <unit>', e.g. 5 days, 2 years, 90 seconds, parsed by Moment.js
# Optional inputs
# skip-tags: true
# skip-recent: 5

View file

@ -0,0 +1,38 @@
diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.cpp emulationstation-de/es-app/src/guis/GuiMenu.cpp
--- emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-08-23 13:12:15.617292576 +0200
+++ emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-08-23 13:44:10.736412006 +0200
@@ -67,2 +67,4 @@
+ addEntry("RETRODECK CONFIGURATOR", mMenuColorPrimary, false, [this] { openRetroDeckConfigurator(); });
+
if (!Settings::getInstance()->getBool("ForceKiosk") &&
@@ -70,3 +72,3 @@
#if defined(__APPLE__)
- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); });
+ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); });
#else
@@ -75,3 +77,3 @@
else
- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); });
+ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); });
#endif
@@ -1758,3 +1760,3 @@
auto quitText = std::make_shared<TextComponent>(
- "QUIT EMULATIONSTATION", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary);
+ "QUIT RETRODECK", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary);
quitText->setSelectable(true);
@@ -1910 +1912,14 @@
}
+
+void GuiMenu::openRetroDeckConfigurator()
+{
+ // Launch the configurator.sh script
+ std::string command;
+ std::string startDirectory;
+ bool runInBackground;
+ command = "bash /app/tools/configurator.sh";
+ startDirectory = "/app/tools";
+ runInBackground = false;
+ int result = Utils::Platform::launchGameUnix(command, startDirectory, runInBackground);
+ // You can add any checks for the script's outcome here.
+}

View file

@ -0,0 +1,10 @@
diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.h emulationstation-de/es-app/src/guis/GuiMenu.h
--- emulationstation-de/es-app/src/guis/GuiMenu.h 2023-08-23 13:12:15.617292576 +0200
+++ emulationstation-de/es-app/src/guis/GuiMenu.h 2023-08-23 13:50:20.978700234 +0200
@@ -46,2 +46,3 @@
void openOtherOptions();
+ void openRetroDeckConfigurator();
void openQuitMenu();
@@ -54 +55,2 @@
#endif // ES_APP_GUIS_GUI_MENU_H
+

View file

@ -1,56 +1,6 @@
diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.cpp emulationstation-de/es-app/src/guis/GuiMenu.cpp
--- emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-07-14 08:44:25.788696841 -0400
+++ emulationstation-de/es-app/src/guis/GuiMenu.cpp 2023-07-14 08:48:23.574196859 -0400
@@ -10,2 +10,3 @@
#include "guis/GuiMenu.h"
+#include "utils/PlatformUtil.h"
@@ -67,2 +68,4 @@
+ addEntry("RETRODECK CONFIGURATOR", mMenuColorPrimary, false, [this] { openRetroDeckConfigurator(); });
+
if (!Settings::getInstance()->getBool("ForceKiosk") &&
@@ -70,3 +73,3 @@
#if defined(__APPLE__)
- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); });
+ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); });
#else
@@ -75,3 +78,3 @@
else
- addEntry("QUIT EMULATIONSTATION", mMenuColorPrimary, false, [this] { openQuitMenu(); });
+ addEntry("QUIT RETRODECK", mMenuColorPrimary, false, [this] { openQuitMenu(); });
#endif
@@ -1729,2 +1732,15 @@
+void GuiMenu::openRetroDeckConfigurator()
+{
+ // Launch the configurator.sh script
+ std::string command;
+ std::string startDirectory;
+ bool runInBackground;
+ command = "bash /app/tools/configurator.sh";
+ startDirectory = "/app/tools";
+ runInBackground = false;
+ int result = Utils::Platform::launchGameUnix(command, startDirectory, runInBackground);
+ // You can add any checks for the script's outcome here.
+}
+
void GuiMenu::openQuitMenu()
@@ -1758,3 +1774,3 @@
auto quitText = std::make_shared<TextComponent>(
- "QUIT EMULATIONSTATION", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary);
+ "QUIT RETRODECK", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary);
quitText->setSelectable(true);
diff -au1r emulationstation-de/es-app/src/guis/GuiMenu.h emulationstation-de/es-app/src/guis/GuiMenu.h
--- emulationstation-de/es-app/src/guis/GuiMenu.h 2023-07-14 08:44:25.788696841 -0400
+++ emulationstation-de/es-app/src/guis/GuiMenu.h 2023-07-14 08:49:05.851991859 -0400
@@ -46,2 +46,3 @@
void openOtherOptions();
+ void openRetroDeckConfigurator();
void openQuitMenu();
diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstation-de/es-app/src/views/ViewController.cpp
--- emulationstation-de/es-app/src/views/ViewController.cpp 2023-07-14 08:44:25.788696841 -0400
+++ emulationstation-de/es-app/src/views/ViewController.cpp 2023-07-17 09:58:26.862373622 -0400
--- emulationstation-de/es-app/src/views/ViewController.cpp 2023-08-23 13:12:15.625292630 +0200
+++ emulationstation-de/es-app/src/views/ViewController.cpp 2023-08-23 14:29:23.547223951 +0200
@@ -164,9 +164,7 @@
{
- mNoGamesErrorMessage = "NO GAME FILES WERE FOUND. EITHER PLACE YOUR GAMES IN "
@ -163,11 +113,6 @@ diff -au1r emulationstation-de/es-app/src/views/ViewController.cpp emulationstat
- true, false,
+ "", nullptr, "", nullptr, true, false,
(mRenderer->getIsVerticalOrientation() ?
diff -au1r emulationstation-de/es-core/src/Window.cpp emulationstation-de/es-core/src/Window.cpp
--- emulationstation-de/es-core/src/Window.cpp 2023-07-14 08:44:25.805371841 -0400
+++ emulationstation-de/es-core/src/Window.cpp 2023-07-14 08:52:32.335181878 -0400
@@ -165,3 +165,3 @@
progressBarRect.barPosY = mSplashTextPositions.y + (progressBarRect.barHeight * 2.0f);
- progressBarRect.color = 0x777777FF;
+ progressBarRect.color = 0xC858E6FF;
mProgressBarRectangles.emplace_back(progressBarRect);
@@ -1446 +1357,2 @@
}
+

View file

@ -0,0 +1,9 @@
diff -au1r emulationstation-de/es-core/src/Window.cpp emulationstation-de/es-core/src/Window.cpp
--- emulationstation-de/es-core/src/Window.cpp 2023-08-29 14:14:17.208301836 +0200
+++ emulationstation-de/es-core/src/Window.cpp 2023-08-29 14:12:37.307334069 +0200
@@ -181,3 +181,3 @@
progressBarRect.barPosY += borderThickness;
- progressBarRect.color = 0x79010FFF;
+ progressBarRect.color = 0xC858E6FF;
mProgressBarRectangles.emplace_back(progressBarRect);

@ -1 +1 @@
Subproject commit fbfdda61b3da092a71cc53999dd3e7b909f244e2
Subproject commit 9dc439300e92338d5b2bc3fc680eedd4fe1d3b0c

@ -1 +1 @@
Subproject commit 50314360ded6fa3b9f0b602513b1164b7a6636ed
Subproject commit 2a35fe7d41b991a59992a55f09d4cdd69fdf983d

BIN
res/DREAMS.ttf Executable file

Binary file not shown.

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 22 KiB