Skip to content

What is RetroDECK?

RetroDECK and ES-DE logo

For a quick overview check the website.

retrodeck.net

What is RetroDECK?

RetroDECK logo

RetroDECK is an all-in-one retro gaming platform designed for handheld gaming PCs such as the Steam Deck, Linux desktop computers, Linux-based HTPCs and PC consoles such as the Steam Machine.

Distributed as a self-contained Flatpak application, RetroDECK provides a ready-to-use gaming environment with minimal setup. Its goal is to bring together the tools, components, and workflows needed to manage and play a wide range of games in one consistent environment.

  • RetroDECK shares similarities with game launcher and management platforms such as Heroic Games Launcher and Lutris, particularly in its goal of bringing different gaming technologies and runtimes together behind a single user-friendly interface.

  • RetroDECK is designed as a containerized gaming environment that brings together a wide range of components, including emulators, game engines, ports, clients, native games and other gaming software under a unified frontend and configuration system.

  • RetroDECK creates a controlled and consistent environment where different gaming components can coexist. It runs within the Flatpak sandbox and uses additional containerization and isolation mechanisms within that environment, known as subsandboxing. This allows gaming components and their dependencies to be managed independently, helping prevent them from interfering with the host system or with each other. Its containerized approach is conceptually closer to technologies such as Steam Pressure Vessel and Docker, while remaining a unique solution with its own architecture.


Definition of Components

RetroDECK categorizes software within the platform as distinct components, organized into the following groups:

Clients

Clients are applications that connect to external servers or online services to provide access to multiplayer functionality, streaming, or other remotely hosted content. They rely entirely on an external host or service to function and their primary functionality is online or LAN multiplayer.

Example:

  • Mudlet - A MUD client for connecting to text-based Multi User Dungeon servers.
  • Quake3e - A Quake 3 engine re-implementation client for connecting to Quake III Arena multiplayer servers with mod support.

Emulators

Emulators are applications that reproduce the hardware and behavior of a specific system, such as a game console or an arcade board. They allow software designed for one system to run on another by replicating the original system's functionality and characteristics.

Examples:

  • PCSX2 - PlayStation 2 emulator.
  • Vita3K - PlayStation Vita emulator.

Engines

Engines are Game Engines designed to run multiple local games or mods built for them. This includes native engines and engine re-implementations that replace the original engine while maintaining compatibility with existing games and requiring the original game's data or source assets.

Examples:

  • OpenBOR - Open-source beat 'em up engine. <-- Game Engine
  • Solarus - Action-RPG engine. <-- Game Engine
  • PICO-8 - Fantasy console engine. <-- Game Engine
  • UZDoom - Source port for DOOM-engine games. <-- Engine re-implementation

Frontends

Frontends provide the primary user interface for browsing, launching, and managing games and other supported content.

Example:

  • ES-DE (EmulationStation Desktop Edition) - The default RetroDECK frontend, with minor customizations.

Games

Games are standalone, unique titles that can be launched and played as its own complete experience.

Example:

  • Games built into or distributed through RetroDECK.

Multi-Emulators

Multi-emulators are platforms capable of emulating multiple systems through a single application. They typically use modular cores or components and provide unified configuration and management across supported systems.

Examples:

  • MAME - Multi-purpose emulation framework focused on preserving and emulating arcade hardware.
  • RetroArch - Multi-system frontend and emulation platform supporting numerous systems through Libretro cores.

Ports

Ports are single games adapted or recompiled to run natively on a specific engine,framework, or platform. Unlike emulated games, ports run directly on the target system without requiring emulation. A Port typically requires the original game's data or source assets to function.

Example:

  • Ports built into or distributed through RetroDECK.

Utilities

Utilities are non-gaming applications software. They provide tools or functionality that complement the platform but do not themselves run games.

Examples:

  • FLIPS - Tool for applying and creating .ips ROM patches.
  • PortMaster - Application for managing and installing game ports.
  • Steam ROM Manager - Tool for managing and importing ROMs into Steam.

What Software and Features Are Included?

To see the full list on what is included so far, read:

RetroDECK: What is included?


RetroDECK: Overarching Key Features

RetroDECK is designed to keep its functionality self-contained within the application, minimizing the need for additional software or external dependencies.

The following table provides a concise overview of RetroDECK's major features and core concepts:

Feature Description
All-in-One, Self-Contained Design Distributed as a sandboxed Flatpak, keeping application components and files within the Flatpak environment. This simplifies installation, management and cleanup.
Component Isolation Components run in their own subsandbox, exposing only the functionality they need through controlled interfaces. Clear boundaries between user space and the sandbox's read-only filesystem help prevent unintended system changes.
Easy to Install Available on Flathub and installable through supported software centers, including KDE Discover, Bazaar, and GNOME Software.
Easy to Remove Uninstalling RetroDECK removes its application files while keeping user data in retrodeck/ intact. Application data is removed automatically through the software center.
Easy to Update Updates are delivered automatically through the software center, like other Flatpak applications.

RetroDECK Framework: Features

The RetroDECK Framework is the core backend of RetroDECK, providing the APIs and integration services used by the RetroDECK Configurator and other components.

Feature / Benefit Description
Dynamic Layer Stacking When a component runs, RetroDECK assembles its required runtime from reusable layers with RetroDECK, providing the libraries and resources it needs.
Flexibility in Isolation Components can be added, updated, or customized without modifying the base runtime or affecting unrelated components.
Isolated Environments RetroDECK organizes its software into isolated components, each running within a layered, self-contained subsandbox environment. This architecture provides stability, flexibility, easy management and helps conserve storage space.
Scalability The layered architecture makes it easier to add and maintain components while keeping them isolated, reusable, and independently manageable.
Unique Component Wrappers Provides custom wrappers for components such as UZDoom and OpenBOR to simplify launching and integration. UZDoom supports the custom .doom format for easier mod integration, while OpenBOR supports .bor and .openbor game formats.

RetroDECK Configurator

The RetroDECK Configurator is a powerful multi-tool accessible directly from the ES-DE main menu. It provides a the user with a unified interface for configuring and managing RetroDECK.

Feature Description
BIOS Checker Checks for required BIOS, firmware and game data files for components that require them.
File Management Utilities Provides tools for organizing, moving and managing files and directories within RetroDECK.
Full Content Management Provides dedicated folders for managing user-accessible RetroDECK content:
  • retrodeck/backups/
  • retrodeck/bios/
  • retrodeck/borders/
  • retrodeck/cheats/
  • retrodeck/ES-DE/
  • retrodeck/logs/
  • retrodeck/mods/
  • retrodeck/roms/
  • retrodeck/saves/
  • retrodeck/screenshots/
  • retrodeck/shaders/
  • retrodeck/states/
  • retrodeck/storage/
  • retrodeck/texture_packs/
  • retrodeck/videos/
Presets System Applies settings across multiple components or Libretro cores at once, including RetroAchievements, borders and overlays, widescreen enhancements, Nintendo controller layouts and other system-wide options.
Steam Input Layouts Provides prebuilt Steam Input layouts for the Steam Deck, external controllers and other supported devices.
Sync Games with Steam Integrates supported games with the Steam library using built-in SRM and ES-DE Favorites integration.
Troubleshooting Helpers Provides diagnostic and repair tools, including the Multi-File Structure Checker and one-click component resets.

RetroDECK Is Currently in "Beta"

RetroDECK is actively evolving and is stable enough for daily use. It can be considered a stable platform, but major updates may still introduce significant changes, new features, and improvements as development continues toward the Retro Gaming Platform we envision.

We will continue to call RetroDECK Beta until the core features and functionality that make up our vision are fully implemented. The Beta designation reflects the ongoing development of the platform rather than its day-to-day stability.

Planned Features

The following features are planned for future RetroDECK releases to improve functionality, usability and system support:

Feature Description
Additional Features & Components Introduce new features and expand compatibility with additional components: Clients, Emulators, Engines, Games, Multi-Emulators, Ports and Utilities.
Cloud Synchronization Sync saves, states, configurations and other data across devices.
Godot-Based Configurator Replace the existing basic Zenity Configurator with a modern controller based Godot-based interface.
Improved Art Assets Update logos, icons, and more.
Mascot Make a RetroDECK mascot.
Multi-User Profile System Support multiple users on a single device while keeping settings, saves and preferences separate.
SFTP Support Access and manage RetroDECK files remotely using SFTP.
USB Transfer Support Transfer and manage RetroDECK content offline using USB storage.

Main Version vs. Cooker Version

What are the versions?

Version Description
Cooker Version Development build that updates frequently and includes experimental or in-progress features. Highly unstable and intended only for testers and developers.
Main Version Stable build published on Flathub, recommended for all users. Designed for reliability and everyday use.

What Are We Working on Right Now?

To stay up-to-date with the latest RetroDECK developments:

  • Follow us on social media - Links are available on the Wiki Start Page.
  • Check the RetroDECK Blog - Read updates and announcements on the blog.
  • Explore GitHub issues - See ongoing work, planned features and community discussions on GitHub.

Patch Notes and Known Issues

Version History

Known Issues

Get help with a problem / support


The FAQโ”

Could answers several questions you might have about the project as well.

RetroDECK: FAQ