Add RetroDECK support - #213
Open
Namaneo wants to merge 14 commits into
Open
Conversation
sdhibit
pushed a commit
to sdhibit/grout
that referenced
this pull request
Jul 26, 2026
Add a new ESDE CFW target covering EmulationStation Desktop Edition setups on desktop Linux (Steam Deck, SteamOS, Bazzite): standalone ES-DE, EmuDeck, and RetroDECK — one binary, with the flavor selected via a first-run variant wizard and switchable in a new ES-DE Settings screen. Directories resolve through a precedence chain: explicit config override > environment variable > variant discovery > variant default. Discovery reads EmuDeck's settings.sh (emulationPath), RetroDECK's retrodeck.json (as requested by the RetroDECK maintainer in rommapp#236), and ES-DE's es_settings.xml, so relocated/SD-card installs work without manual configuration. Every directory (base, ROMs, BIOS, saves, ES-DE data, media) can also be overridden individually in settings. ES-DE layout differences from Batocera-style ES are handled: - gamelists are written to <appdata>/gamelists/<system>/gamelist.xml with ./-relative game paths (new gamelist.Options hook) - media is written to <media>/<system>/{covers,marquees,backcovers, fanart,screenshots,videos,manuals} matched by ROM basename; a new UsesArtSuffixes() predicate disables the -thumb/-marquee/-boxback/ -fanart filename suffixes for ES-DE - no ES restart scheduling (grout runs as ES-DE's child); the bezel art option is hidden (no such media type in ES-DE) Grout installs as an ES-DE port in <roms>/ports/. The launcher exports GROUT_ESDE_ROMS_DIR from its own location so the ROMs dir is correct for any variant, and carries the Steam Deck input workarounds from PR rommapp#235 (ignore axis-motion event flooding, suppress Steam keyboard). The amd64 build now bundles the full SDL library stack for SteamOS's sealed OS and RetroDECK's flatpak sandbox. Includes platform table (docs/platforms/ESDE.md) generated into cfw/esde/data/platforms.json, packaging target (Grout-ESDE.zip), CI release wiring, in-app updater support, install/settings docs, and unit tests for path precedence and the three config parsers. Closes rommapp#210, closes rommapp#238. Builds on rommapp#235, rommapp#236, and rommapp#213.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds initial support for RetroDECK, so it can be added as a non-Steam game.
Feel free to request any change, especially if I forgot something.
This is a follow-up of this issue: #210.
EDIT: Added associated documentation.
EDIT2: Got inspired and added an automatic install script with media, so it looks nice in the Steam game library.
It currently looks fine on Bazzite, but I have an issue with
nonsteamnot detecting the Steam install on SteamOS. I'll investigate when I have a bit more free time.