Merge branch 'cooker' into feat/godot

This commit is contained in:
XargonWan 2025-01-07 21:16:11 +09:00
commit 87f9191a83
13 changed files with 227 additions and 253 deletions

View file

@ -1,102 +0,0 @@
name: GoDot Configurator Build Debug
run-name: Build Godot Configurator(DEBUG) for RetroDECK
on:
workflow_dispatch:
inputs:
job_target:
description: 'Select the platform'
required: true
default: 'linux'
type: choice
options:
- linux
- windows
- mac
- all
env:
GODOT_VERSION: 4.3
GODOT_PROJECT_LOCATION: tools/configurator/project.godot
EXPORT_FOLDER_LINUX: bin/Linux
EXPORT_FOLDER_WINDOWS: bin/Windows
EXPORT_FOLDER_MAC: bin/macOS
APPLICATION_NAME: godot_configurator
jobs:
linux-build:
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- name: Set up variable
run: |
echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
echo "MAIN_FOLDER=$(pwd)" >> $GITHUB_ENV
- name: Installing dependencies
run: pacman -Syu --noconfirm git bash yasm python python-pip scons gcc diffutils make wget unzip tar mingw-w64
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Prepare Godot
run: |
wget -q -O godot_linux.zip https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_linux.x86_64.zip
unzip godot_linux.zip
wget -q -O godot_export_templates.tpz https://github.com/godotengine/godot-builds/releases/download/${GODOT_VERSION}-stable/Godot_v${GODOT_VERSION}-stable_export_templates.tpz
mkdir -p ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
unzip godot_export_templates.tpz -d ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable
mv ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable/templates/* ~/.local/share/godot/export_templates/${GODOT_VERSION}.stable/
sed -i 's/config\/version=\"[^"]\*"/config\/version=\"${{ env.DATE }}-debug\"/' ${{ env.GODOT_PROJECT_LOCATION }}
# DEBUG BUILDS
# LINUX
- name: Building debug Linux
if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }}
run: |
mkdir -p ${{ env.EXPORT_FOLDER_LINUX }}
./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "Linux/X11 64-bit" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME}}.x86_64
chmod +x ${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME }}.sh
chmod +x ${{ env.EXPORT_FOLDER_LINUX }}/${{ env.APPLICATION_NAME }}.x86_64
# TAR to keep permissions set above
- name: Tar File
if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }}
run: tar cvf ${{ env.APPLICATION_NAME}}_linux_debug_${{ env.DATE}}.tar ${{ env.EXPORT_FOLDER_LINUX}}
- name: Uploading GDExtension artifact debug
if: ${{ github.event.inputs.job_target == 'linux' || github.event.inputs.job_target == 'all' }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.APPLICATION_NAME }}_linux_debug_${{ env.DATE }}.tar
path: ${{ env.APPLICATION_NAME }}_linux_debug_${{ env.DATE }}.tar
# WINDOWS
- name: Building debug Windows
if: ${{ github.event.inputs.job_target == 'windows' || github.event.inputs.job_target == 'all' }}
run: |
mkdir -p ${{ env.EXPORT_FOLDER_WINDOWS }}
./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "windows" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_WINDOWS }}/${{ env.APPLICATION_NAME}}.exe
- name: Uploading GDExtension artifact debug
if: ${{ github.event.inputs.job_target == 'windows' || github.event.inputs.job_target == 'all' }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.APPLICATION_NAME }}_windows_debug_${{ env.DATE }}
path: ${{ env.EXPORT_FOLDER_WINDOWS }}/
#MAC
- name: Building debug macOS
if: ${{ github.event.inputs.job_target == 'mac' || github.event.inputs.job_target == 'all' }}
run: |
mkdir -p ${{ env.EXPORT_FOLDER_MAC }}
./Godot_v${GODOT_VERSION}-stable_linux.x86_64 --import ${{ env.GODOT_PROJECT_LOCATION }} --quiet --headless --export-debug "macOS" ${{ env.MAIN_FOLDER }}/${{ env.EXPORT_FOLDER_MAC}}/${{ env.APPLICATION_NAME}}.app
- name: Uploading GDExtension artifact debug
if: ${{ github.event.inputs.job_target == 'mac' || github.event.inputs.job_target == 'all' }}
uses: actions/upload-artifact@v4
with:
name: ${{ env.APPLICATION_NAME }}_mac_debug_${{ env.DATE }}
path: ${{ env.EXPORT_FOLDER_MAC }}/

View file

@ -16,15 +16,24 @@ on:
- '*.sh'
- 'net.retrodeck.retrodeck.yml'
- 'net.retrodeck.retrodeck.appdata.xml'
pull_request:
pull_request_target:
types: [opened, synchronize, reopened]
branches:
- main
- cooker*
- feat/*
pull_request:
types: [opened, synchronize, reopened]
branches:
- main
- cooker*
- feat/*
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
@ -33,7 +42,7 @@ jobs:
runs-on: retrodeck
outputs:
TAG: ${{ steps.version-tag.outputs.TAG }}
RELEASE_BODY: ${{ steps.version-tag.outputs.RELEASE_BODY }}
RELEASE_BODY: "${{ needs.Build_RetroDECK.outputs.RELEASE_BODY_FILE }} || No release body found"
MAKE_LATEST: ${{ steps.version-tag.outputs.MAKE_LATEST }}
steps:
@ -46,10 +55,37 @@ jobs:
# Clone Repository
- name: Clone RetroDECK repo
if: github.event_name != 'pull_request_target'
uses: actions/checkout@v4
with:
submodules: true
# Clone the target branch (eg. cooker)
- name: Clone Target Branch
if: github.event_name == 'pull_request_target'
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.base.ref }} # Branch target
submodules: true
# Because we're using pull_request_target, we need to merge the PR code
- name: Merge PR Code
if: github.event_name == 'pull_request_target'
run: |
git fetch origin pull/${{ github.event.pull_request.number }}/head:pr
git merge --no-ff pr || {
echo "Merge conflict detected. Please resolve conflicts manually.";
exit 1;
}
# In case of PR we merged the code so we want to check that is consistent
- name: Validate Merged Code
if: github.event_name == 'pull_request_target'
run: |
echo "Branch after merge:"
git branch
echo "Last commit:"
git log -1 --oneline
# Install Dependencies
- name: Install dependencies
run: curl "https://raw.githubusercontent.com/RetroDECK/components-template/main/automation_tools/install_dependencies.sh" | bash
@ -143,8 +179,12 @@ jobs:
echo "Commits since $LATEST_TAG:"
echo "$COMMITS"
# Export the commits list to the GitHub environment
echo "COMMITS=$COMMITS" >> $GITHUB_ENV
# Write the commits list to a file
echo "$COMMITS" > commits_list.txt
# Set the commits list as an environment variable
echo "COMMITS_FILE=commits_list.txt" >> $GITHUB_ENV
# - name: Extract XML Description
# uses: Mudlet/xmlstarlet-action@master
@ -157,15 +197,31 @@ jobs:
id: generate-body
run: |
# Initialize the release body text
RELEASE_BODY="# Release Notes\n"
RELEASE_BODY+="This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}."
RELEASE_BODY+="On branch [${{env.BRANCH_NAME}}](https://repo.retrodeck.net/RetroDECK/RetroDECK/src/branch/${{env.BRANCH_NAME}})."
RELEASE_BODY+="## Commits since last release\n"
RELEASE_BODY+="$COMMITS\n\n"
RELEASE_BODY_FILE="release_body.md"
echo "# Release Notes" > $RELEASE_BODY_FILE
echo "This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{ github.sha }}." >> $RELEASE_BODY_FILE
echo "On branch [${{ env.BRANCH_NAME }}](https://repo.retrodeck.net/RetroDECK/RetroDECK/src/branch/${{ env.BRANCH_NAME }})." >> $RELEASE_BODY_FILE
echo "## Commits since last release" >> $RELEASE_BODY_FILE
echo "" >> $RELEASE_BODY_FILE
# Append commits from the file to the release body
if [ -f "${{ env.COMMITS_FILE }}" ]; then
echo "${{ env.COMMITS_FILE }}" >> $RELEASE_BODY_FILE
echo "" >> $RELEASE_BODY_FILE
else
echo "[ERROR] Commits file not found: ${{ env.COMMITS_FILE }}"
echo "[ERROR] Commits file not found" >> $RELEASE_BODY_FILE
fi
# Debug: Print the release body so far
echo "[DEBUG] Current release body contents:"
cat $RELEASE_BODY_FILE
# Process raw description (if needed)
#raw_description="${{ steps.extract-description.outputs.result }}"
# Convert <p> tags to markdown headers using sed
# raw_description="${{ steps.extract-description.outputs.result }}"
markdown_description=$(echo "$raw_description" | sed -e 's|<p>|\n### |g' -e 's|</p>||g')
# Convert <li> tags to bullet points and trim spaces
@ -173,16 +229,18 @@ jobs:
# Remove any remaining XML tags
markdown_description=$(echo "$markdown_description" | sed -e 's/<[^>]*>//g')
# Debug: Print the markdown description
echo "Markdown Description:"
echo "$markdown_description"
# Append markdown content to the release body
RELEASE_BODY+="$markdown_description"
printf "RELEASE_BODY=%s\n" "$RELEASE_BODY" >> $GITHUB_ENV
printf "RELEASE_BODY=%s\n" "$RELEASE_BODY" >> $GITHUB_OUTPUT
# Append markdown content to the release body file
echo "$markdown_description" >> $RELEASE_BODY_FILE
# Output the file path to the environment and output variables
echo "RELEASE_BODY_FILE=$RELEASE_BODY_FILE" >> $GITHUB_ENV
echo "RELEASE_BODY_FILE=$RELEASE_BODY_FILE" >> $GITHUB_OUTPUT
echo "[DEBUG] CHECKPOINT 8"
- name: Generate a token for Rekku
@ -229,14 +287,14 @@ jobs:
path: |
RetroDECK*.flatpak
RetroDECK*.flatpak.sha
RetroDECK*Artifact.tar.gz
RetroDECK*Artifact.tar.gz
GitHub-publish:
runs-on: ubuntu-latest
needs: Build_RetroDECK
env:
TAG: ${{ needs.Build_RetroDECK.outputs.TAG }}
RELEASE_BODY: ${{ needs.Build_RetroDECK.outputs.RELEASE_BODY }}
RELEASE_BODY: "${{ needs.Build_RetroDECK.outputs.RELEASE_BODY_FILE }} || No release body found"
MAKE_LATEST: ${{ needs.Build_RetroDECK.outputs.MAKE_LATEST }}
steps:
@ -275,6 +333,20 @@ jobs:
repo: ${{ env.REPO_NAME }}
token: ${{ steps.generate-rekku-token.outputs.token }}
- name: Post PR comment with artifacts
if: github.event_name == 'pull_request_target' || github.event_name == 'pull_request'
uses: marocchino/sticky-pull-request-comment@v2
with:
GITHUB_TOKEN: ${{ steps.generate-rekku-token.outputs.token }}
header: "RetroDECK Build Artifacts"
message: |
A build for this pull request has completed successfully.
Codenname: ${{ env.TAG }}
Build artifacts can be find [here]((https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}#artifact-retrodeck-artifacts)) and they include:
- RetroDECK Flatpak: RetroDECK.flatpak
- Flatpak file SHA256 checksum: RetroDECK.flatpak.sha
- Flatpak Artifact Bundle: RetroDECKArtifact.tar.gz, not useful for testing or end users
# Rewrite Tag (for Main Branch Only)
- name: Rewrite Tag
if: github.ref == 'refs/heads/main'
@ -297,7 +369,7 @@ jobs:
# needs: Build_RetroDECK
# env:
# TAG: ${{ needs.Build_RetroDECK.outputs.TAG }}
# RELEASE_BODY: ${{ needs.Build_RetroDECK.outputs.RELEASE_BODY }}
# RELEASE_BODY: "${{ needs.Build_RetroDECK.outputs.RELEASE_BODY_FILE }} || No release body found"
# MAKE_LATEST: ${{ needs.Build_RetroDECK.outputs.MAKE_LATEST }}
# steps:
#
@ -308,7 +380,7 @@ jobs:
# if: github.ref == 'refs/heads/main'
# uses: RetroDECK/components-template/.github/workflows/fogejo_publish_release.yml@main
# with:
# release_body: ${{ env.RELEASE_BODY }}
# release_body: "${{ needs.Build_RetroDECK.outputs.RELEASE_BODY_FILE }} || No release body found"
# artifacts: "retrodeck-artifacts/*.flatpak,retrodeck-artifacts/*.flatpak.sha,retrodeck-artifacts/*Artifact.tar.gz"
# tag: ${{ env.TAG }}
@ -355,5 +427,4 @@ jobs:
# Uninstall RetroDECK Flatpak - Not needed on a thorwaway ubuntu-latest
# - name: Uninstall RetroDECK Flatpak
# run: |
# flatpak remove --user --noninteractive -y net.retrodeck.retrodeck
# flatpak remove --user --noninteractive -y net.retrodeck.retrodeck

View file

@ -1,26 +0,0 @@
name: Building a mOnKeyX Project
on:
push:
branches: [ feat/godot-uk ]
pull_request:
branches: [ feat/godot-uk ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name : exportGame
uses: firebelley/godot-export@v5.2.1
with:
godot_executable_download_url: https://download.tuxfamily.org/godotengine/4.2.2/Godot_v4.2.2-stable_linux.x86_64.zip
godot_export_templates_download_url: https://download.tuxfamily.org/godotengine/4.2.2/Godot_v4.2.2-stable_export_templates.tpz
relative_project_path: tools/rd-config-test/
create_release: true
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

View file

@ -17,13 +17,14 @@ hash^VITA3KSHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/con
hash^RANIGHTLYCORESPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch_cores.7z
hash^RETRODECKESDELATEST^https://github.com/RetroDECK/ES-DE/releases/latest/download/RetroDECK-ES-DE-Artifact.tar.gz
hash^RETRODECKPPSSPPLATEST^https://github.com/RetroDECK/org.ppsspp.PPSSPP/releases/latest/download/RetroDECK-PPSSPP-Artifact.tar.gz
hash^RETRODECKDOLPHINLATEST^https://github.com/RetroDECK/org.DolphinEmu.dolphin-emu/releases/latest/download/RetroDECK-dolphin-Artifact.tar.gz
hash^RETRODECKPPSSPPLATEST^https://github.com/RetroDECK/org.ppsspp.PPSSPP/releases/latest/download/RetroDECK-Artifact.tar.gz
hash^RETRODECKDOLPHINLATEST^https://github.com/RetroDECK/org.DolphinEmu.dolphin-emu/releases/latest/download/RetroDECK-Artifact.tar.gz
hash^RETRODECKPRIMEHACKLATEST^https://github.com/RetroDECK/io.github.shiiion.primehack/releases/latest/download/RetroDECK-primehack-Artifact.tar.gz
hash^RETRODECKMELONDSLATEST^https://github.com/RetroDECK/net.kuribo64.melonDS/releases/latest/download/RetroDECK-melonds-Artifact.tar.gz
hash^RETRODECKSOLARUSLATEST^https://github.com/RetroDECK/org.solarus_games.solarus.Launcher/releases/latest/download/RetroDECK-solarus-Artifact.tar.gz
hash^RETRODECKGZDOOMLATEST^https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-gzdoom-Artifact.tar.gz
hash^RETRODECKMAMELATEST^https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
hash^RETRODECKGZDOOMLATEST^https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-Artifact.tar.gz
hash^RETRODECKMAMELATEST^https://github.com/RetroDECK/org.mamedev.MAME/releases/latest/download/RetroDECK-Artifact.tar.gz
#hash^RETRODECKOLDMAMELATEST^https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
hash^PORTMASTERLATESTSHA^https://github.com/PortsMaster/PortMaster-GUI/releases/latest/download/retrodeck.portmaster.zip
hash^RACITRAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/latest/citra_libretro.so.zip
hash^RETRODECKRPCS3LATEST^https://github.com/RetroDECK/net.rpcs3.RPCS3/releases/latest/download/RetroDECK-Artifact.tar.gz

View file

@ -54,7 +54,7 @@
<GameCache/>
<GraphicPack/>
<Graphic>
<api>1</api>
<api>0</api>
<device>00000000000000000000000000000000</device>
<VSync>0</VSync>
<GX2DrawdoneSync>true</GX2DrawdoneSync>

View file

@ -731,36 +731,36 @@
},
"f355bios.zip": {
"md5": [
"547f3d12aed389058ca06148f1cca0ed",
"882f2c1cf8ec030955c48fe6aa6929ea",
"547f3d12aed389058ca06148f1cca0ed",
"882f2c1cf8ec030955c48fe6aa6929ea"
],
"system": [
"dreamcast",
"arcade",
"dreamcast",
"arcade"
],
"description": "Naomi Ferrari F355 Challenge Twin/Deluxe BIOS",
"path": "dc"
},
"airlbios.zip": {
"md5": [
"09ef4b8dea6cd8db2de1c13d510a6a87",
"7a11bfe0cc72886d032e386db68f890c",
"09ef4b8dea6cd8db2de1c13d510a6a87",
"7a11bfe0cc72886d032e386db68f890c"
],
"system": [
"dreamcast",
"arcade",
"dreamcast",
"arcade"
],
"description": "Naomi Airline Pilots Deluxe BIOS",
"path": "dc"
},
"awbios.zip": {
"md5": [
"b2f122e091da223beb824efafc3d6a36",
"85254fbe320ca82a768ec2c26bb08def",
"b2f122e091da223beb824efafc3d6a36",
"85254fbe320ca82a768ec2c26bb08def"
],
"system": [
"dreamcast",
"arcade",
"dreamcast",
"arcade"
],
"description": "Naomi Atomiswave BIOS",
"path": "dc"

View file

@ -445,22 +445,11 @@ post_update() {
rm -rf "$rd_logs_folder/ES-DE" && log d "Removing the logs/ES-DE folder as we don't need it anymore"
rm -rf "$es_source_logs" && mkdir -p "$es_source_logs"
# TODO: check this
# rm /var/config/emulationstation/.emulationstation # remving the old symlink to .emulationstation as it might be not needed anymore
# TODO: change <mlc_path>RETRODECKHOMEDIR/bios/cemu</mlc_path> in config/cemu/settings.xml into <mlc_path>RETRODECKHOMEDIR/bios/cemu/mlc</mlc_path>
# if [ ! -d "$bios_folder/cemu/mlc" ]; then
# log i "Cemu MLC folder was moved from \"$bios_folder/cemu\" to \"$bios_folder/cemu/mlc\", migrating it"
# mv -f "$bios_folder/cemu" "$bios_folder/cemu/mlc"
# # TODO: set setting value mlc_path in settings.xml (check prepare script)
# fi
# if [ -f "/var/data/Cemu/keys.txt" ]; then
# log AND ZENITY "Found Cemu keys.txt" in "/var/data/Cemu/keys.txt", for a better compatibility is better to move it into "$bios_folder/cemu/mlc/keys.txt, do you want to continue?
# if yes: mv "/var/data/Cemu/keys.txt" "$bios_folder/cemu/mlc/keys.txt"
# ln -s "$bios_folder/cemu/mlc/keys.txt" "/var/data/Cemu/keys.txt" <--- AND THIS SHOULD BE EVEN PUT IN THE PREPARATION SCRIPT
# fi
# TODO: is this true?
# log i "Since in this version we restored Ryujinx to a main build we don't need the symlink anymore."
# rm "$(dirname $ryujinxconf)/PRConfig.json"
if [[ -f "$XDG_DATA_HOME/Cemu/keys.txt" ]]; then
log d "Found Cemu keys.txt in \"$XDG_DATA_HOME/Cemu/keys.txt\", moving it to \"$bios_folder/cemu/keys.txt\""
mv -f "$XDG_DATA_HOME/Cemu/keys.txt" "$bios_folder/cemu/keys.txt"
ln -s "$bios_folder/cemu/keys.txt" "$XDG_DATA_HOME/Cemu/keys.txt"
fi
fi
# The following commands are run every time.

View file

@ -79,7 +79,7 @@ prepare_component() {
fi
fi
if [[ "$component" =~ ^(steam-rom-manager|all)$ ]]; then
if [[ "$component" =~ ^(steam-rom-manager|steamrommanager|all)$ ]]; then
component_found="true"
log i "-----------------------------"
log i "Prepearing Steam ROM Manager"
@ -297,6 +297,7 @@ prepare_component() {
cp -fr "$config/cemu/"* /var/config/Cemu/
set_setting_value "$cemuconf" "mlc_path" "$bios_folder/cemu" "cemu"
set_setting_value "$cemuconf" "Entry" "$roms_folder/wiiu" "cemu" "GamePaths"
rm -rf "$XDG_DATA_HOME/Cemu/keys.txt" && ln -s "$bios_folder/cemu/keys.txt" "$XDG_DATA_HOME/Cemu/keys.txt" && log d "Linked $bios_folder/cemu/keys.txt to $XDG_DATA_HOME/Cemu/keys.txt"
fi
# Shared actions
dir_prep "$saves_folder/wiiu/cemu" "$bios_folder/cemu/usr/save"

View file

@ -4,7 +4,7 @@ GenericName=RetroDECK Configuration Utility
Type=Application
Comment=A handy tool to change common RetroDECK settings
Icon=net.retrodeck.retrodeck.configurator
Exec=/bin/bash /app/bin/godot-configurator.sh
Exec=/bin/bash /app/tools/configurator.sh
Terminal=false
StartupNotify=false
Keywords=multi;engine;emulator;standalone;steam;deck

View file

@ -70,24 +70,26 @@
<release version="0.9.0b" date="2024-07-19">
<url>https://github.com/RetroDECK/RetroDECK/releases/tag/0.9.0b</url>
<description>
<p>New Additions:</p>
<ul>
<li>New Flash system via the new emulator: Ruffle</li>
<li>New RetroArch core: Panda3DS</li>
<li>PortMaster is now included in RetroDECK!</li>
<li>Steam Sync is now a thing: favorite your games and enable the Steam Sync in the Configurator to find them as a Steam standalone games thank to Steam Rom Manager acting like an engine</li>
<li>New run game engine added to run games via cli, just run `flatpak run net.retrodeck.retrodeck retrodeck/roms/system/game.ext`, `--help` for more info</li>
<li>New feature for Desktop: RetroENGINE, now RetroDECK can be used as an headless engine to run your gaems. Just duouble click them!</li>
<li>New default theme: RetroDECK now got its own custom theme for ES-DE, do you like it? Feel free to give us feedback</li>
<li>We soft laucnhed our new website earlier, come to take a look at retrodeck.net!</li>
</ul>
<p>Changes:</p>
<ul>
<li>RetroDECK is on a diet: we saved around 600mb on the final build</li>
<li>Updated all the possible outdated emulators</li>
<li>Duckstation due to licensing changes is frozen at the latest possible build becoming de facto: Legacy</li>
<li>Duckstation configured to use OpenGL as Vulkan seems to be broken in some cases</li>
<li>New Flash system via the new emulator: Ruffle</li>
<li>PortMaster is now included in RetroDECK!</li>
<li>Steam Sync is now a thing: favorite your games and enable the Steam Sync in the Configurator to find them as a Steam standalone games thank to Steam Rom Manager acting like an engine</li>
<li>Because of this, Favorites collection is now enabled by default on ES-DE</li>
<li>New Configurator completely written in GODOT, now with controller support and many more features for you to discover</li>
<li>Cli entry --configurator now opens the new Configurator, while --legacy-configurator opens the old, zenity, one</li>
<li>New run game engine added to run games via cli, just run `flatpak run net.retrodeck.retrodeck retrodeck/roms/system/game.ext`, `--help` for more info</li>
<li>MIME Type added: this means that you can "open with" or double click your games and run them via RetroDECK thanks to the engine descripted above</li>
<li>Because of Steam Sync, Favorites collection is now enabled by default on ES-DE</li>
<li>ES-DE Updated to 3.1.1 with language support and more</li>
<li>ES-DE main menu tide up, because of our configurator there were too many entries, moved ES-DE specific configs inside a custom menu</li>
<li>New Theme: RetroDECK now got its own custom theme for ES-DE, do you like it? Feel free to give us feedback</li>
<li>We soft laucnhed our new website earlier, come to take a look at retrodeck.net!</li>
</ul>
<p>Developers, developers, developers:</p>
<ul>
@ -99,8 +101,7 @@
<p>Known issues:</p>
<ul>
<li>Please check the know issues in the Wiki under General Information.</li>
<li>GZDoom version is temporarly frozen until we find out how to correctly build it</li>
<li>Vita3K currently broken, a PR with a fix is being "cooked"</li>
<li>GZDoom version is temporarly frozen until we find out how to correctly build it. However is working without any issues.</li>
</ul>
</description>
</release>

View file

@ -1,6 +1,6 @@
app-id: net.retrodeck.retrodeck
runtime: org.kde.Platform
runtime-version: "6.7"
runtime-version: "6.8"
sdk: org.kde.Sdk
base: org.electronjs.Electron2.BaseApp # Needed for Steam ROM Manager
base-version: "22.08"
@ -200,28 +200,28 @@ modules:
sha256: 4ee662847c588c3ef2fec8bfb304e8739e3dbaba87ccb9a608d691c88f5b64dc
# GODOT Configurator
- name: retrodeck-configurator
buildsystem: simple
build-commands:
- install -Dm755 "Godot_v4.3-stable_linux.x86_64" "${FLATPAK_DEST}/bin/godot"
- mkdir -p "${FLATPAK_DEST}/retrodeck"
- godot --headless --path "tools/configurator" --import
- godot --headless --path "tools/configurator" --export-pack "Linux/X11 64-bit" "${FLATPAK_DEST}/retrodeck/configurator.pck"
- chmod +x "${FLATPAK_DEST}/retrodeck/configurator.pck"
- echo '#!/bin/sh' > "godot-configurator.sh"
- echo 'godot --main-pack /app/retrodeck/configurator.pck' >> "godot-configurator.sh"
- install -Dm755 "godot-configurator.sh" "/app/bin/"
sources:
- type: archive
url: https://github.com/godotengine/godot/releases/download/4.3-stable/Godot_v4.3-stable_linux.x86_64.zip
sha256: 7de56444b130b10af84d19c7e0cf63cf9e9937ee4ba94364c3b7dd114253ca21
- type: archive
url: https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.15.0.tar.gz
sha256: f5f359d6332861bd497570848fcb42520964a9e83d5e3abe397b6b6db9bcaaf4
dest: fontconfig
- type: git
url: THISREPO
branch: THISBRANCH
# - name: retrodeck-configurator
# buildsystem: simple
# build-commands:
# - install -Dm755 "Godot_v4.3-stable_linux.x86_64" "${FLATPAK_DEST}/bin/godot"
# - mkdir -p "${FLATPAK_DEST}/retrodeck"
# - godot --headless --path "tools/configurator" --import
# - godot --headless --path "tools/configurator" --export-pack "Linux/X11 64-bit" "${FLATPAK_DEST}/retrodeck/configurator.pck"
# - chmod +x "${FLATPAK_DEST}/retrodeck/configurator.pck"
# - echo '#!/bin/sh' > "godot-configurator.sh"
# - echo 'godot --main-pack /app/retrodeck/configurator.pck' >> "godot-configurator.sh"
# - install -Dm755 "godot-configurator.sh" "/app/bin/"
# sources:
# - type: archive
# url: https://github.com/godotengine/godot/releases/download/4.3-stable/Godot_v4.3-stable_linux.x86_64.zip
# sha256: 7de56444b130b10af84d19c7e0cf63cf9e9937ee4ba94364c3b7dd114253ca21
# - type: archive
# url: https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.15.0.tar.gz
# sha256: f5f359d6332861bd497570848fcb42520964a9e83d5e3abe397b6b6db9bcaaf4
# dest: fontconfig
# - type: git
# url: THISREPO
# branch: THISBRANCH
# RetroArch
# https://retroarch.com/index.php?page=platforms
@ -238,9 +238,9 @@ modules:
- cp -r squashfs-root/usr/* "${FLATPAK_DEST}"
sources:
- type: archive
url: https://buildbot.libretro.com/stable/1.19.1/linux/x86_64/RetroArch.7z
url: https://buildbot.libretro.com/stable/1.20.0/linux/x86_64/RetroArch.7z
#sha256: RASHAPLACEHOLDER
sha256: f98e954e99aef7b4b1a3334d710856b997c3f97c5451d33af9e5c88bf63213f8
sha256: 809b3e9f02a9849719453d0f189a0edc544ad3235c8ce75a79488e710ba9668a
# Not part of the offical RetroArch AppImage
@ -289,8 +289,8 @@ modules:
- cp -rf ./RetroArch-Linux-x86_64.AppImage.home/.config/retroarch/cores/* ${FLATPAK_DEST}/share/libretro/cores/
sources:
- type: archive
url: https://buildbot.libretro.com/stable/1.19.1/linux/x86_64/RetroArch_cores.7z
sha256: fe75e7e796e29933ab31e4a58f072a1a47ea155b477988a48f33b0f4addc9d49
url: https://buildbot.libretro.com/stable/1.20.0/linux/x86_64/RetroArch_cores.7z
sha256: 433f46ecbb3f1ae8d17b6c5fdffbd11761ce4532652d73a1d4e1f0029c175a87
- name: retroarch-sameduck-core
buildsystem: simple
@ -349,10 +349,11 @@ modules:
- cp -r files/* "${FLATPAK_DEST}"
sources:
- type: archive
url: https://github.com/RetroDECK/org.ppsspp.PPSSPP/releases/latest/download/RetroDECK-PPSSPP-Artifact.tar.gz
url: https://github.com/RetroDECK/org.ppsspp.PPSSPP/releases/latest/download/RetroDECK-Artifact.tar.gz
sha256: RETRODECKPPSSPPLATEST
# PCSX2
# UPDATE IT HERE
# Inspired by: https://github.com/flathub/com.zettlr.Zettlr/blob/master/com.zettlr.Zettlr.yaml
# https://pcsx2.net/downloads/
@ -366,8 +367,8 @@ modules:
- cp -r squashfs-root/usr/* "${FLATPAK_DEST}"
sources:
- type: file
url: https://github.com/PCSX2/pcsx2/releases/download/v2.3.53/pcsx2-v2.3.53-linux-appimage-x64-Qt.AppImage
sha256: a909ec179a2b1bac85625a32eaa6eae2adbfa4985a2be9a525a58e80fc1f57b5
url: https://github.com/PCSX2/pcsx2/releases/download/v2.3.88/pcsx2-v2.3.88-linux-appimage-x64-Qt.AppImage
sha256: e65495068c7ac5675cef872478497d7bd3ff4ff68a822c034b31a6f5911133e0
# Dolphin
# why from source: AppImage not provided, only Flatpak
@ -386,7 +387,7 @@ modules:
- cp -r files/* "${FLATPAK_DEST}"
sources:
- type: archive
url: https://github.com/RetroDECK/org.DolphinEmu.dolphin-emu/releases/latest/download/RetroDECK-dolphin-Artifact.tar.gz
url: https://github.com/RetroDECK/org.DolphinEmu.dolphin-emu/releases/latest/download/RetroDECK-Artifact.tar.gz
sha256: RETRODECKDOLPHINLATEST
# PRIMEHACK
@ -479,6 +480,7 @@ modules:
sha256: 84777a8d0fce9acfc2ffe6a8aea352bd68a8a37f5c793d328dbaa4ff5ada5e6d
# Cemu
# UPDATE IT HERE
# https://github.com/cemu-project/Cemu/releases
- name: cemu
@ -494,8 +496,8 @@ modules:
#TODO: do we need this wrapper? squashfs-root/apprun-hooks/linuxdeploy-plugin-gtk.sh
sources:
- type: file
url: https://github.com/cemu-project/Cemu/releases/download/v2.2/Cemu-2.2-x86_64.AppImage
sha256: 05ad07e3b2fb60f9c19f84c7d65c4e978bc2cf58b4b53d39fca0376227900c27
url: https://github.com/cemu-project/Cemu/releases/download/v2.4/Cemu-2.4-x86_64.AppImage
sha256: 92a1f081230809bd0ac30b228f72c6d8c7aa7eaa3e56df4cf8ad54d4c9927097
- type: script
commands:
- |
@ -561,7 +563,7 @@ modules:
- cp -r files/* "${FLATPAK_DEST}"
sources:
- type: archive
url: https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-gzdoom-Artifact.tar.gz
url: https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-Artifact.tar.gz
sha256: RETRODECKGZDOOMLATEST
# Pancakes
@ -581,6 +583,7 @@ modules:
sha256: 68b1602c99c5e5b743a1362eaf428ee88b237bd5029aede00d342fa8d79b8f27
# XEMU
# UPDATE IT HERE
# https://xemu.app/docs/download/#download-for-linux
- name: xemu
@ -593,8 +596,8 @@ modules:
- cp -r squashfs-root/usr/* "${FLATPAK_DEST}/"
sources:
- type: file
url: https://github.com/xemu-project/xemu/releases/download/v0.7.132/xemu-v0.7.132-x86_64.AppImage
sha256: c11821d6d0632da3c51a354e9101f68e5ab2ae0e2512c6aa6c8453aef56cedba
url: https://github.com/xemu-project/xemu/releases/download/v0.8.5/xemu-v0.8.5-x86_64.AppImage
sha256: fd282e299dbc3207b8afb84059da99feffc65a86eb29d96c9108fde368d4c99e
- name: xemu-dummy-hdd
buildsystem: simple
@ -615,9 +618,19 @@ modules:
- cp -rn files/* ${FLATPAK_DEST}
sources:
- type: archive
url: https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
url: https://github.com/RetroDECK/org.mamedev.MAME/releases/latest/download/RetroDECK-Artifact.tar.gz
sha256: RETRODECKMAMELATEST
# - name: retrodeck-mame
# buildsystem: simple
# build-commands:
# - rm -f files/manifest.json
# - cp -rn files/* ${FLATPAK_DEST}
# sources:
# - type: archive
# url: https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
# sha256: RETRODECKOLDMAMELATEST
# PortMaster
- name: PortMaster
@ -682,8 +695,8 @@ modules:
sources:
- type: archive
strip-components: 0
url: https://github.com/ruffle-rs/ruffle/releases/download/nightly-2024-10-29/ruffle-nightly-2024_10_29-linux-x86_64.tar.gz
sha256: 5ab0fc46b07d022d4b0ff355e88175cd77b8bb1663612f31d160f8001dc472bb
url: https://github.com/ruffle-rs/ruffle/releases/download/nightly-2025-01-04/ruffle-nightly-2025_01_04-linux-x86_64.tar.gz
sha256: 27287f45c56c7a66c62f2dc218abffc57a864ba7b1a783e38e2c54609fde496d
- name: fetch-missing-libs
buildsystem: simple
@ -691,14 +704,14 @@ modules:
- |
# Search for missing libraries in our libtmp folder
missing_libs=$(find /app/bin -type f -exec ldd {} + 2>/dev/null | grep 'not found' | awk '$1 ~ /\.so/ {print $1}' | sort | uniq)
echo $missing_libs
echo "$missing_libs"
# Manually specified libraries that are not automatically detected
manually_imported="libpostproc.so.56 libswscale.so.6 libshaderc_shared.so.1 libbz2.so.1.0 libaio.so.1 ld-linux.so.2 libvpx.so.9 libzmusic.so.1 libicuuc.so.73 libLLVM.so.18.1"
# Combine detected missing libraries and manually specified ones
missing_libs="$missing_libs $manually_imported"
echo "Missing libs and manually imported: $missing_libs"
echo -e "Missing libs and manually imported:\n$missing_libs"
# Source paths
src_dir="${FLATPAK_DEST}/retrodeck/tmplib"

View file

@ -28,7 +28,6 @@ Arguments:
--info-msg \t Print paths and config informations
--debug \t Enable debug logging for this launch of RetroDECK (This may miss errors very early in the launch process)
--configurator \t Starts the RetroDECK Configurator
--legacy-configurator \t Starts the old, zenity, RetroDECK Configurator
--compress-one <file> \t Compresses target file to a compatible format
--compress-all <format> \t Compresses all supported games into a compatible format.\n\t\t\t\t\t\t Available formats are \"chd\", \"zip\", \"rvz\" and \"all\"
--reset-component <component> \t Reset one or more component or emulator configs to the default values
@ -70,16 +69,17 @@ https://retrodeck.net
cli_compress_all_games "$2"
;;
--configurator*)
sh /app/tools/godot-configurator.sh
;;
--legacy-configurator*)
sh /app/tools/configurator.sh
if [[ $(configurator_generic_question_dialog "RetroDECK Configurator" "Would you like to launch RetroDECK after closing the Configurator?") == "false" ]]; then
exit
else
shift
fi
#sh /app/bin/godot-configurator.sh
;;
# --legacy-configurator*)
# sh /app/tools/configurator.sh
# if [[ $(configurator_generic_question_dialog "RetroDECK Configurator" "Would you like to launch RetroDECK after closing the Configurator?") == "false" ]]; then
# exit
# else
# shift
# fi
# ;;
--reset-component*)
component="$2"
if [ -z "$component" ]; then

View file

@ -34,7 +34,9 @@ source /app/libexec/global.sh
# - MelonDS
# - PCSX2
# - PPSSPP
# - PortMaster
# - Primehack
# - Ruffle
# - RPCS3
# - Ryujinx
# - Vita3K
@ -82,9 +84,12 @@ source /app/libexec/global.sh
# - Reset MelonDS
# - Reset PCSX2
# - Reset PPSSPP
# - Reset PortMaster
# - Reset Primehack
# - Reset Ruffle
# - Reset RPCS3
# - Reset Ryujinx
# - Reset Steam ROM Manager
# - Reset Vita3k
# - Reset XEMU
# - Reset Yuzu
@ -96,7 +101,7 @@ source /app/libexec/global.sh
# - Full changelog
# - Version-specific changelogs
# - RetroDECK Credits
# - Add to Steam
# - Steam Sync
# - Developer Options (Hidden)
# - Change Multi-user mode
# - Install Specific Release
@ -114,7 +119,7 @@ configurator_welcome_dialog() {
"RetroDECK: Tools" "Compress games, move RetroDECK and install optional features" \
"RetroDECK: Troubleshooting" "Backup data, perform BIOS / multi-disc file checks and emulator resets" \
"RetroDECK: About" "Show additional information about RetroDECK" \
"Sync with Steam" "Sync all favorited games with Steam" \
"Steam Sync" "Sync all favorited games with Steam" \
"Developer Options" "Welcome to the DANGER ZONE")
else
welcome_menu_options=("Presets & Settings" "Here you find various presets, tweaks and settings to customize your RetroDECK experience" \
@ -156,7 +161,7 @@ configurator_welcome_dialog() {
configurator_about_retrodeck_dialog
;;
"Sync with Steam" )
"Steam Sync" )
configurator_add_steam
;;
@ -446,9 +451,12 @@ configurator_open_emulator_dialog() {
"MelonDS" "Open the NDS emulator MelonDS"
"PCSX2" "Open the PS2 emulator PSXC2"
"PPSSPP" "Open the PSP emulator PPSSPP"
"PortMaster" "Open PortMaster to manage your ports, even available from games list under PortMaster system"
"Primehack" "Open the Metroid Prime emulator Primehack"
"Ruffle" "Open the Flash emulator Ruffle"
"RPCS3" "Open the PS3 emulator RPCS3"
"Ryujinx" "Open the Switch emulator Ryujinx"
"Steam ROM Manager" "Open Steam ROM Manager"
"Vita3K" "Open the PSVita emulator Vita3K"
"XEMU" "Open the Xbox emulator XEMU"
)
@ -516,11 +524,21 @@ configurator_open_emulator_dialog() {
PPSSPPSDL
;;
"PortMaster" )
log i "Configurator: \"$emulator\""
PortMaster
;;
"Primehack" )
log i "Configurator: \"$emulator\""
primehack-wrapper
;;
"Ruffle" )
log i "Configurator: \"$emulator\""
ruffle
;;
"RPCS3" )
log i "Configurator: \"$emulator\""
rpcs3
@ -531,6 +549,11 @@ configurator_open_emulator_dialog() {
Ryujinx.sh
;;
"Steam ROM Manager" )
log i "Configurator: \"$emulator\""
steam-rom-manager
;;
"Vita3K" )
log i "Configurator: \"$emulator\""
Vita3K
@ -1090,9 +1113,12 @@ configurator_reset_dialog() {
"MelonDS" "Reset the NDS emulator MelonDS to default settings"
"PCSX2" "Reset the PS2 emulator PCSX2 to default settings"
"PPSSPP" "Reset the PSP emulator PPSSPP to default settings"
"PortMaster" "Reset PortMaster to default settings"
"Primehack" "Reset the Metroid Prime emulator Primehack to default settings"
"Ruffle" "Reset the Flash emulator Ruffle to default settings"
"RPCS3" "Reset the PS3 emulator RPCS3 to default settings"
"Ryujinx" "Reset the Switch emulator Ryujinx to default settings"
"Steam ROM Manager" "Reset Steam ROM Manager to default settings"
"Vita3k" "Reset the PS Vita emulator Vita3k to default settings"
"XEMU" "Reset the XBOX emulator XEMU to default settings"
)
@ -1133,7 +1159,7 @@ configurator_reset_dialog() {
fi
;;
"Cemu" | "Citra" | "Dolphin" | "Duckstation" | "GZDoom" | "Yuzu" | "MelonDS" | "MAME" | "PCSX2" | "PPSSPP" | "Primehack" | "RPCS3" | "Ryujinx" )
"Cemu" | "Citra" | "Dolphin" | "Duckstation" | "GZDoom" | "Yuzu" | "MelonDS" | "MAME" | "PCSX2" | "PPSSPP" | "PortMaster" | "Primehack" | "Ruffle" | "RPCS3" | "Ryujinx" | "SteamROMManager" )
if [[ $(configurator_reset_confirmation_dialog "$component_to_reset" "Are you sure you want to reset the $component_to_reset emulator to default settings?\n\nThis process cannot be undone.") == "true" ]]; then
prepare_component "reset" "$component_to_reset" "configurator"
configurator_process_complete_dialog "resetting $component_to_reset"