RetroDECK just crossed 2,400 monthly searches and a lot of those searchers are Steam Deck owners who got tired of chasing EmuDeck script updates. The pitch is simple: one Flatpak, one sandboxed folder, every emulator core you need for PS1 through GameCube, no host-system file sprawl. As of August 2026 the stable build sits at version 0.9.3b, with 0.10.x “cooker” snapshots testing a full per-emulator sandboxing rework before it ships to Flathub. This tutorial walks through the entire setup on Steam Deck and general Linux, from SD card formatting to BIOS placement to fixing the controller mapping bug that trips up almost everyone on their first run.
You will end this guide with a working RetroDECK install in Steam’s Game Mode, a ROM and BIOS folder structure that survives updates, and a backup routine that does not depend on Steam Cloud (because RetroDECK does not use it). Expect 60 to 90 minutes for a full setup, most of which is copying ROM and BIOS files onto your device rather than fighting the installer itself.
Why now, specifically. EmuDeck has been the default recommendation in Steam Deck emulation threads since the console launched, and it still is for most first-time users. But two things shifted in the past year. First, RetroDECK’s 0.10.x development branch introduced per-emulator sub-sandboxing, a real architectural change that further isolates each bundled emulator inside its own boundary within the larger Flatpak container, reducing the chance that one broken core drags down the rest of the install. Second, enough people have now run both tools side by side that comparison content has matured past “which one is easier to install” into genuinely useful tradeoff breakdowns, the kind that make it possible to pick the right tool for your specific device instead of just defaulting to whichever one a YouTube video covered first.
Don't miss new tech stories on Google
Add Tech Insider once in the Google app and our stories appear in your news suggestions.
What Is RetroDECK, and Why It’s Pulling Users Away From EmuDeck
RetroDECK describes itself as an ES-DE-powered Linux Flatpak application, and that description matters more than it sounds. ES-DE is EmulationStation Desktop Edition, the actively maintained fork of the original EmulationStation frontend, and RetroDECK wraps it together with a curated set of standalone emulators and RetroArch cores inside a single Flatpak sandbox. Everything, the frontend, the emulators, the configs, the BIOS folders, and your saves, lives inside one retrodeck/ directory tree that you point at internal storage, an SD card, or a custom path during first launch.
That sandboxing is the real differentiator from EmuDeck. EmuDeck is a script-based installer: it drops emulators directly onto your filesystem, using an Emulation/ folder plus scattered per-emulator config directories in your home folder. It works fine, but updates happen emulator by emulator, and a broken script run can leave you with half-updated components. RetroDECK ships as a single package through Flathub under the ID net.retrodeck.retrodeck, so a flatpak update refreshes the frontend and every bundled emulator together, version-locked as one unit.
The tradeoff is platform reach. EmuDeck ships Windows and Linux installers. RetroDECK is Linux and SteamOS only, no official Windows or Android build exists, and the project’s own documentation frames it that way. If you split your time between a gaming PC on Windows and a Steam Deck, EmuDeck’s cross-platform installer is still the more practical single choice. If you live entirely in Steam Deck or desktop Linux, RetroDECK’s sandboxing and one-command updates are the stronger argument, and it is the reason the project has been climbing steadily toward roughly 1,200 to 1,300 GitHub stars in 2026, still well behind EmuDeck’s install base but growing fast enough that comparison guides now treat it as the default alternative rather than a niche pick.
Supported Systems and Which Emulator Powers Each One
RetroDECK doesn’t hide which engine runs which console, and knowing this ahead of time saves a lot of guesswork later when you’re chasing a performance or compatibility problem on a specific system. The frontend is always ES-DE, but underneath it RetroDECK mixes standalone emulators with RetroArch cores depending on which combination performs best for that hardware generation.
| System | Engine | Typical Steam Deck Performance |
|---|---|---|
| NES / SNES | RetroArch cores | Full speed at default 15W TDP, no tuning needed |
| Sega Genesis / Mega Drive | RetroArch cores | Full speed at default 15W TDP |
| PlayStation (PS1) | RetroArch core, BIOS required | Full speed, negligible battery impact |
| Nintendo 64 | RetroArch core | Full speed on most titles; a handful of demanding N64 games benefit from raised TDP |
| PlayStation 2 | Standalone (PCSX2), BIOS required | Full speed on most titles at native resolution with TDP raised to 10-12W |
| GameCube / Wii | Standalone (Dolphin) | Full speed on most titles; demanding ones need TDP increase and native resolution |
| Sega Dreamcast | Standalone/RetroArch hybrid, BIOS required | Full speed at default TDP on nearly all titles |
| Game Boy Advance / DS | RetroArch cores | Full speed at default TDP |
| PSP | Standalone (PPSSPP) | Full speed at default TDP on most titles |
This table covers the systems most people actually use RetroDECK for. The project’s documentation lists 24 total bundled components once you count arcade boards, home computer emulation, and utility tools like RetroAchievements integration, but the nine systems above account for the overwhelming majority of setup questions and performance troubleshooting.
RetroDECK vs EmuDeck: The Real Differences
Before you commit an afternoon to either tool, here is what actually changes in daily use.
| Aspect | RetroDECK | EmuDeck |
|---|---|---|
| Install method | Single Flatpak (net.retrodeck.retrodeck) via Flathub or Discover | Shell script installer laying out multiple emulators directly |
| Sandboxing | Full Flatpak sandbox; 0.10.x cooker builds add per-emulator sub-sandboxes | No sandbox by default, emulators run against host filesystem |
| File layout | Single retrodeck/ tree with standardized subfolders | Emulation/ folder plus scattered per-emulator configs |
| Updates | One flatpak update refreshes frontend and all emulators together | Installer/updater script; emulators can drift out of sync |
| Platforms | Linux and SteamOS only | Windows and Linux |
| Frontend | ES-DE (EmulationStation Desktop Edition), built in | ES-DE or EmulationStation, user-configured |
| GitHub stars (2026) | ~1,200-1,300 | ~3,479 |
Neither tool is objectively better across the board. RetroDECK’s sandbox means a bad update to one emulator core cannot corrupt your host system’s shared libraries, which matters more on SteamOS where a botched dependency chain can force a factory reset. EmuDeck’s direct filesystem approach means faster raw performance in a few edge cases where sandbox syscall overhead is measurable, though in practice that overhead is negligible for anything through sixth-generation consoles.
Prerequisites: What You Need Before You Start
Gather these before you touch the installer. Skipping the BIOS and ROM prep step is the single biggest reason first-time RetroDECK setups stall out.
| Requirement | Recommended | Notes |
|---|---|---|
| Device | Steam Deck (LCD or OLED) or any Linux distro with Flatpak/Flathub enabled | ROG Ally and similar handhelds work if running a Flatpak-capable Linux install; community-reported, not officially certified |
| SteamOS version | Latest stable SteamOS 3.x | Update via Steam > Power > Check for Updates before installing anything |
| RetroDECK version | 0.9.3b (stable, Flathub default) | 0.10.x builds are “cooker” test snapshots, not recommended for a first install |
| Free storage | 8 GB minimum for the app; 32 GB+ recommended once ROMs are added | PS2 and GameCube libraries alone can exceed 50 GB |
| SD card (if used) | UHS-I or faster, 128 GB+ | Format as ext4 for fewer Flatpak permission issues; exFAT works but needs manual overrides |
| BIOS files | Dumped from hardware you own | Required for PS1, PS2, Saturn, Dreamcast, and several arcade boards |
| Controller | Steam Deck built-in, or any XInput/DInput pad | ES-DE input configuration must be run once before Game Mode works cleanly |
Step 1: Update SteamOS and Switch to Desktop Mode
Everything in this guide runs from Desktop Mode. From the Steam Deck’s main screen, press the Steam button, go to Power, and select Switch to Desktop. Once you land on the KDE Plasma desktop, open the Discover app store and check for system updates first, an outdated SteamOS install is the most common cause of Flatpak permission bugs later in this process. If you are on a general Linux desktop instead of a Steam Deck, confirm Flatpak and Flathub are already configured, most distributions ship with both preinstalled, but if not, run this once:
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Step 2: Format Your SD Card for RetroDECK
If you are installing RetroDECK on internal storage only, skip to Step 3. If you plan to use an SD card, format it before you touch the installer. ext4 is the safer choice on Steam Deck: it avoids the permission quirks that exFAT introduces when a sandboxed Flatpak tries to read and write across a mount boundary it does not natively trust. On Steam Deck, format from Desktop Mode’s Dolphin file manager or via KDE Partition Manager; on other Linux distros, a quick terminal command does it:
sudo mkfs.ext4 -L RETRODECK /dev/mmcblk0p1
Replace /dev/mmcblk0p1 with your actual SD card partition, confirm it with lsblk first so you do not format the wrong disk. If you prefer to keep the card exFAT for cross-platform use with a Windows PC, that is fine too, you will just need the manual Flatpak filesystem override covered in Step 5.
Step 3: Install RetroDECK From Discover or the Flatpak CLI
On Steam Deck, open Discover, search for RetroDECK, and click Install. That is the entire process for most users. If you prefer the terminal, or you are on a headless or minimal Linux install without Discover, use the Flatpak command directly:
flatpak install flathub net.retrodeck.retrodeck
This pulls the current stable release, 0.9.3b as of this writing, along with every bundled emulator and the ES-DE frontend as one package. Depending on your connection, expect the download to run several gigabytes since RetroDECK’s official documentation lists 24 separate components bundled into the app.
If Discover shows an older cached version or the install stalls partway through, close and reopen Discover before retrying, this clears a known caching issue where the app store holds onto a stale package index. The terminal method sidesteps that problem entirely since it talks to Flathub directly rather than through Discover’s local cache.
Step 4: Run the First-Time Setup Wizard
Launch RetroDECK from Discover, or from the KDE application menu under Games. On first launch, a setup wizard walks through three decisions that are difficult to change later without redoing your ROM library:
- Where to create the main
retrodeck/folder: Internal Storage, SD Card, or a Custom Location - Whether to add RetroDECK to Steam and apply the recommended Steam Controller template, answer yes here, skipping it is the most common reason people later can’t find RetroDECK in Game Mode
- Whether to pre-create the full folder structure for every supported system, recommended so ES-DE recognizes each console the moment you drop ROMs in
Pick your SD card or custom path now if that is where your ROM library will live. Moving the retrodeck/ root after the fact is possible through the app’s own settings menu, but it re-copies every file and can take a long time with a large library.
Step 5: Grant Flatpak Filesystem Access to Your SD Card
This is the step almost every RetroDECK troubleshooting thread traces back to. Flatpak sandboxes cannot see arbitrary host paths by default. If you chose an SD card during setup and RetroDECK still shows an empty library, or if you’re pointing an existing ROM collection at a path outside the wizard’s control, you need to explicitly expose that mount point:
flatpak override --user --filesystem=/run/media/mmcblk0p1 net.retrodeck.retrodeck
Swap the path for your actual mount point, check it with df -h if you’re unsure. Restart RetroDECK after running this command. If you formatted the card as exFAT instead of ext4, this override becomes mandatory rather than optional, since exFAT mounts frequently land in less predictable paths that the app’s manifest does not expose automatically.
Step 6: Add ROMs and Understand the Folder Structure
Inside your chosen retrodeck/ root, the setup wizard creates a roms/ directory with one subfolder per supported system. The naming follows ES-DE’s system identifiers, not always the obvious console name, so check the folder before assuming it’s wrong:
retrodeck/
├── roms/
│ ├── psx/ # PlayStation 1
│ ├── ps2/ # PlayStation 2
│ ├── n64/ # Nintendo 64
│ ├── gc/ # GameCube
│ ├── dreamcast/ # Sega Dreamcast
│ ├── gba/ # Game Boy Advance
│ ├── nds/ # Nintendo DS
│ ├── psp/ # PlayStation Portable
│ └── segacd/ # Sega CD
├── bios/
└── saves/
Copy ROMs into the matching folder over a network share, USB drive, or directly if you’re already on the device. RetroDECK’s own README puts it plainly: put your ROMs and BIOS in the corresponding folders and start playing. There’s no import wizard or database matching step required, ES-DE scans the folders directly at launch.
The fastest way to move a large existing ROM collection onto a Steam Deck is over the local network rather than a USB cable. Enable SSH in Desktop Mode’s developer settings, then use scp or rsync from your main PC to push files directly into the correct retrodeck/roms/ subfolders. Rsync is the better choice for anything beyond a one-time transfer since it only copies what changed on subsequent runs:
rsync -avh --progress ./ps2-roms/ [email protected]:/run/media/mmcblk0p1/retrodeck/roms/ps2/
Adjust the destination path to match wherever your retrodeck/ root actually lives, internal storage paths look different from an SD card mount, and confirm the correct path with flatpak info --show-permissions net.retrodeck.retrodeck if you’re unsure.
Step 7: Add BIOS Files for PS1, PS2, Dreamcast, and More
Several of RetroDECK’s most-used systems, PlayStation, PlayStation 2, Sega Saturn, Dreamcast, and a handful of arcade boards, will not boot a single game without the correct BIOS files present. This is the pitfall that generates the most “system doesn’t show up” and “game won’t launch” support requests. BIOS files go in the top-level retrodeck/bios/ folder, not inside individual ROM subfolders, and filenames must match exactly what each emulator core expects.
Where to Legally Source BIOS Files
BIOS files are copyrighted firmware. The only fully legitimate way to obtain them is to dump them yourself from hardware you own, using tools designed for that purpose on the original console. RetroDECK’s documentation and wiki do not distribute BIOS files and will not link to sites that do, and this guide won’t either. If a system’s folder in ES-DE shows as grayed out or missing after you’ve added ROMs, missing BIOS is almost always the cause, check the RetroDECK wiki’s BIOS checklist page for the exact filenames and checksums each core expects before you assume the emulator itself is broken.
Step 8: Configure Controller Mapping in ES-DE
On first launch, ES-DE prompts you to configure input for whatever controller is currently connected. On Steam Deck, this is usually automatic and correctly detects the built-in controls, but if you skip this prompt or launch RetroDECK before a controller is recognized, you will land in a frontend you can’t navigate with a gamepad. To redo input configuration manually, go to ES-DE’s main menu, then Input Device Settings, then Configure Keyboard and Controllers. Hold any button for a few seconds on the prompt you want to skip if a mapping doesn’t apply to your device.
A separate mapping layer exists inside each emulator core too, RetroArch cores use RetroArch’s own controller config, while standalone emulators like Dolphin or PCSX2 (bundled for GameCube and PS2 respectively) use their native input settings. ES-DE’s mapping controls frontend navigation only; in-game controls are configured per-core the first time you launch a game on that system.
Step 9: Add RetroDECK to Steam Game Mode
If you answered yes to the Steam integration prompt during Step 4, RetroDECK already appears in Game Mode under Library, then Non-Steam. If you skipped it or you’re setting this up after the fact, add it manually:
- In Desktop Mode, open the Steam client
- Click Games, then Add a Non-Steam Game to My Library
- Find RetroDECK in the application list and check the box
- Click Add Selected Programs
- Switch back to Game Mode, RetroDECK now appears in your Non-Steam library
Once added, right-click the entry in Desktop Mode to assign a custom grid image and confirm the Steam Controller template matches the one RetroDECK recommended during setup. A mismatched template is the second most common reason people report the D-pad or face buttons behaving oddly inside ES-DE despite working fine in every other app.
Step 10: Tune RetroArch Core Options for Performance
RetroDECK bundles RetroArch inside its Flatpak, so core-level performance settings live in RetroArch’s own config rather than a RetroDECK-specific menu. For demanding systems like PS2 or GameCube, both handled by standalone emulators rather than RetroArch cores, performance tuning happens inside PCSX2 and Dolphin’s own settings screens instead. A reasonable starting config for RetroArch-based systems on Steam Deck’s OLED model:
# ~/.var/app/net.retrodeck.retrodeck/config/retroarch/retroarch.cfg
video_threaded = "true"
video_vsync = "true"
audio_latency = "64"
rewind_enable = "false"
video_max_swapchain_images = "2"
Per-System TDP and Resolution Presets
For anything through the fifth generation (NES through PS1/N64), the Steam Deck’s default 15W TDP cap handles full speed without issue. Sixth-generation systems, PS2, GameCube, and Dreamcast, benefit from raising the TDP limit to 10 to 12W minimum through Steam’s Quick Access performance overlay, since these run on more demanding standalone emulators rather than lightweight RetroArch cores. Internal resolution upscaling above native (1x) on PS2 and GameCube can quickly outpace the Deck’s hardware on more demanding titles, start at native resolution and raise it only if frame pacing stays stable.
Step 11: Handle Multi-Disc Games With M3U Playlists
Multi-disc PS1 and Saturn games need an M3U playlist file so the emulator can swap discs without exiting the game. Place all disc image files (.bin/.cue or .chd) in the system’s ROM folder, then create a plain text file listing each disc in order, saved with an .m3u extension:
# Final Fantasy VII (USA).m3u
Final Fantasy VII (USA) (Disc 1).chd
Final Fantasy VII (USA) (Disc 2).chd
Final Fantasy VII (USA) (Disc 3).chd
ES-DE will list the .m3u file as a single game entry, and the core handles disc swapping through its in-game menu (typically a hotkey plus a face button on RetroArch cores). Using .chd (Compressed Hunks of Data) format instead of raw .bin/.cue cuts file size roughly in half with no quality loss, and it’s the format most RetroDECK guides recommend for anything disc-based.
Step 12: Update Components and Manage the Framework
Because RetroDECK ships as one Flatpak, updating the entire stack, frontend and every emulator, is a single command:
flatpak update net.retrodeck.retrodeck
Or from Discover, click Updates and select RetroDECK if one is pending. This is the tradeoff for the sandboxed, single-package design: you cannot update just one emulator core ahead of the others, everything moves together on the project’s release cadence. If you want early access to in-progress features, the 0.10.x cooker branch is available as a separate Flatpak remote, but it is explicitly a testing channel and not recommended for a library you care about keeping stable.
Step 13: Back Up Saves With Syncthing
RetroDECK does not integrate with Steam Cloud, since Steam Cloud expects a per-app manifest that a generic non-Steam entry doesn’t provide. Saves and save states live inside retrodeck/saves/ and retrodeck/states/, which means any generic sync tool pointed at that folder works. Syncthing is the most commonly recommended option because it’s also distributed as a Flatpak and runs entirely on your local network or over the internet without a third-party cloud account:
flatpak install flathub com.github.syncthing.syncthing
# then add retrodeck/saves and retrodeck/states as synced folders
# in Syncthing's web UI at localhost:8384
Set up the same folder pair on a second device (a desktop PC or NAS) and your save data survives a factory reset or a failed SD card without depending on any single point of failure.
Common RetroDECK Setup Pitfalls
- Skipping the SD card filesystem override. RetroDECK’s Flatpak sandbox cannot see an SD card path it wasn’t explicitly granted access to. If your library shows empty after choosing an SD card during setup, run the
flatpak override --filesystemcommand from Step 5 before troubleshooting anything else. - Formatting the SD card as exFAT without planning for it. exFAT works, but it introduces permission and mount-path inconsistencies between Desktop Mode and Game Mode that ext4 avoids entirely. Only use exFAT if you need the card readable on Windows too.
- Missing or mismatched BIOS filenames. PS1, PS2, Saturn, and Dreamcast cores expect exact filenames and, in some cases, exact checksums. A renamed or wrong-region BIOS file causes the system to vanish from ES-DE entirely rather than showing a clear error.
- Declining the Steam integration prompt during first setup. This is the single most common reason people can’t find RetroDECK in Game Mode. It’s recoverable (Step 9), but doing it during the wizard also applies the correct controller template automatically.
- Treating multi-disc games as separate ROM files. Without an .m3u playlist, ES-DE lists each disc as its own game and disc-swapping inside the emulator won’t find the other discs. Always create the playlist file for multi-disc PS1 and Saturn titles.
Troubleshooting RetroDECK: 8 Common Errors and Fixes
| Problem | Likely Cause | Fix |
|---|---|---|
| System folder missing from ES-DE | No BIOS files, or wrong filename/checksum | Check RetroDECK wiki’s BIOS reference for exact required filenames per system |
| ROMs added but library is empty | Flatpak can’t see the SD card mount | Run flatpak override --user --filesystem=<path> net.retrodeck.retrodeck, then restart the app |
| RetroDECK not visible in Game Mode | Steam integration was skipped during setup | Add manually via Steam’s “Add a Non-Steam Game” dialog in Desktop Mode |
| Controller doesn’t navigate ES-DE menus | Input configuration wasn’t run, or wrong controller template applied | Rerun Configure Keyboard and Controllers from ES-DE’s Input Device Settings |
| Multi-disc game won’t swap discs | No .m3u playlist created | Create a plain-text .m3u file listing each disc filename in order |
| PS2 or GameCube games run below full speed | TDP cap set too low, or internal resolution set above native | Raise TDP to 10-12W via Quick Access overlay; drop resolution scaling back to 1x |
| Update fails or hangs | Interrupted Flatpak transaction, common on unstable Wi-Fi | Run flatpak repair then retry flatpak update net.retrodeck.retrodeck |
| Saves not syncing between devices | Steam Cloud not configured for non-Steam apps (expected behavior) | Use Syncthing or another folder-sync tool pointed at retrodeck/saves/ and retrodeck/states/ |
Advanced Tips for Power Users
Once the base setup is stable, a few adjustments pay off for anyone running a large library. First, use CHD compression for every disc-based system, not just PS1, PS2 discs compress to CHD as well and the space savings on a 40-plus game library are substantial. Second, set up per-game core overrides in RetroArch for the handful of titles that run better on an alternate core than the system default, this is done through RetroArch’s own Quick Menu rather than any RetroDECK-specific setting. Third, if you’re mixing RetroDECK with other Non-Steam entries in Game Mode, custom Steam Input profiles per game (rather than per emulator) solve most remaining button-mapping annoyances, since RetroDECK itself launches as a single Steam entry regardless of which system you’re playing.
Fourth, enable RetroAchievements if you want the classic-console equivalent of trophies, RetroDECK bundles the integration and it works across every RetroArch-based core once you log in with a RetroAchievements.org account inside RetroArch’s settings menu. Fifth, if you’re managing a library that spans hundreds of games, use ES-DE’s built-in scraper rather than manually sourcing box art and metadata, it pulls from ScreenScraper and TheGamesDB and handles the bulk of a large collection in one pass, though it’s worth double-checking matches on obscure or region-variant titles since automated scraping occasionally pairs the wrong metadata with a ROM that has an unusual filename.
Running RetroDECK on Non-Steam-Deck Linux Handhelds
RetroDECK isn’t officially certified outside Steam Deck, but the community has reported working installs on ASUS ROG Ally and similar x86 handhelds running a Flatpak-capable Linux distribution like Bazzite. The setup process is identical once Flatpak and Flathub are configured, the main variable is controller mapping, since third-party handhelds don’t ship with the Steam Controller template integration that Steam Deck gets automatically. Expect to spend extra time in ES-DE’s input configuration matching your specific device’s button layout.
A Complete Working RetroDECK Project Example
Here’s what a finished, working setup looks like end to end, using a Steam Deck OLED with a 256GB ext4-formatted SD card as the example:
- SD card formatted ext4, mounted at
/run/media/mmcblk0p1 - RetroDECK 0.9.3b installed via Flathub,
retrodeck/root pointed at the SD card during the setup wizard - Filesystem override applied:
flatpak override --user --filesystem=/run/media/mmcblk0p1 net.retrodeck.retrodeck - BIOS files placed in
retrodeck/bios/, verified against the wiki’s checksum list for PS1, PS2, and Dreamcast - Roughly 60 games spread across
psx/,ps2/,n64/,gc/, andgba/, disc-based titles in .chd format with .m3u playlists for anything multi-disc - Steam integration accepted during setup, RetroDECK appears in Game Mode under Non-Steam
- TDP set to 12W via a custom Steam Deck power profile applied specifically when launching RetroDECK
- Syncthing installed as a separate Flatpak, syncing
retrodeck/saves/andretrodeck/states/to a home NAS nightly
That configuration handles everything through PS2 and GameCube at full speed on Steam Deck OLED, with saves protected against SD card failure and the entire stack updatable through one Flatpak command. It’s a reasonable template to copy regardless of exactly which systems and games you’re adding.
RetroDECK vs Other Emulation Frontends: Where It Fits
Beyond EmuDeck, RetroDECK sits alongside Batocera, RetroPie, and standalone frontends like Lutris for running individual emulators outside a curated bundle. Batocera and RetroPie both target running as the primary operating system on dedicated hardware (typically a Raspberry Pi or a repurposed PC), booting straight into the frontend rather than running as an app inside SteamOS or another desktop Linux. RetroDECK, by contrast, installs as one app inside your existing OS, which is the better fit if the Steam Deck or Linux PC in question is also used for other things. If you’re building a dedicated retro cabinet or a Pi-based system with no other purpose, Batocera’s OS-level approach is worth comparing before committing to RetroDECK’s app-based model.
Running RetroDECK on a Regular Linux Desktop
Everything in this guide applies almost unchanged to a desktop Linux install, Fedora, Arch, Ubuntu, whatever you’re running, as long as Flatpak and Flathub are configured. The differences are minor but worth knowing before you start. First, desktop distros don’t have a Game Mode to add RetroDECK to, so Step 9 doesn’t apply, you’ll launch RetroDECK from your desktop environment’s application menu like any other app. Second, controller setup is less automatic than on Steam Deck, ES-DE’s input configuration screen still handles it, but you won’t get the pre-applied Steam Controller template, so plan on running through the full button-by-button mapping the first time regardless of which pad you’re using.
Third, and this trips people up more than it should, desktop distributions with a separate home partition sometimes mount that partition in a way Flatpak doesn’t automatically expose. If your retrodeck/ folder lives on a second drive or a non-standard mount point, you’ll need the same flatpak override --filesystem command from Step 5, just pointed at your actual desktop mount path instead of an SD card. Everything else, BIOS placement, ROM folder structure, M3U playlists, RetroArch config tuning, works identically whether you’re on a Steam Deck or a desktop tower.
Frequently Asked Questions
Is RetroDECK legal?
RetroDECK itself is open-source software that emulates hardware, which is legal. What you load into it, ROMs and BIOS files, needs to come from games and consoles you actually own. The project does not distribute copyrighted ROM or BIOS content.
Does RetroDECK work on Windows?
No. RetroDECK is a Linux and SteamOS Flatpak with no official Windows build. If you need Windows support, EmuDeck is the closer equivalent since it ships installers for both platforms.
What’s the difference between RetroDECK’s stable and cooker builds?
0.9.3b is the current stable release on Flathub, tested and recommended for most users. The 0.10.x cooker snapshots are pre-release builds testing upcoming features, including the per-emulator sandboxing rework, and are distributed through a separate testing channel rather than the default Flathub remote.
Can I use RetroDECK and EmuDeck on the same Steam Deck?
Yes, technically, since they use separate file locations by default. In practice it’s rarely worth the storage overhead and config confusion, most users pick one and stick with it based on whether they need Windows support (EmuDeck) or prefer sandboxed, single-command updates (RetroDECK).
Why does my SD card show as empty in RetroDECK after adding ROMs?
This is almost always a Flatpak filesystem permission issue. Run the flatpak override --user --filesystem=<path> net.retrodeck.retrodeck command from Step 5, substituting your card’s actual mount path, then restart the app.
Does RetroDECK support PS3 or Switch emulation?
No. RetroDECK’s bundled systems top out around sixth-generation consoles (PS2, GameCube, Dreamcast) plus handhelds through PSP and DS. PS3 and Switch emulation require separate dedicated tools like RPCS3 and Eden, which run outside RetroDECK’s bundle and have much steeper hardware requirements.
How do I back up my RetroDECK library before a SteamOS reset?
Since everything lives inside the single retrodeck/ folder, copying that entire directory to an external drive or NAS before a factory reset preserves ROMs, BIOS, saves, and configs together. Restoring is just pointing a fresh RetroDECK install at the same folder during setup.
Does raising the Steam Deck’s TDP limit for PS2 or GameCube drain the battery faster?
Yes, noticeably. Running at 12W instead of the default 15W cap (which is actually lower, not higher, for these demanding systems since RetroDECK’s default profile is conservative) will cut battery life roughly in proportion to the extra power draw. Most people plug in for PS2 and GameCube sessions rather than running them on battery for extended periods.
My BIOS files are correct but a system still won’t boot games. What else could it be?
Check the file extension and exact byte size against the RetroDECK wiki’s reference list, a renamed file with the right content but wrong extension, or a BIOS dumped from a different regional console revision, will pass a casual glance but still fail. Region mismatches between your BIOS dump and the games you’re trying to run are the next most common cause after a straightforward missing file.
Related Coverage
- How to Set Up EmuDeck: 12 Steps, 90 Min [2026]
- Batocera vs RetroPie vs Recalbox 2026: 8,637 Stars
- Best Emulation Handhelds 2026
- Decky Loader Setup 2026: Install Plugins in 10 Steps
- Steam Deck Docking Station Setup: 13 Steps, 50 Min [2026]
- Bazzite Install: Gaming Linux in 12 Steps, 70 Min [2026]
- More gaming platform guides
Sources and further reading: RetroDECK official Steam Deck setup docs, RetroDECK GitHub repository, RetroDECK on Flathub, EmulationStation Desktop Edition (ES-DE), and Flatpak sandbox permissions documentation.


