X-TRAS gives a fresh RetroPie installation something useful to launch immediately.
Instead of bundling commercial ROMs, ES-X includes a curated catalog of free homebrew games whose redistribution rights are explicitly documented. Games can be downloaded directly from the ES-X interface and are placed automatically in the correct RetroPie ROM folder.
X-TRAS is not an abandonware or commercial-ROM catalog. Active entries must have clear redistribution rights and a verifiable upstream source.
X-TRAS is designed around a strict catalog policy:
- Free and legally redistributable homebrew only
- No abandonware
- No commercial ROMs
- No freeware-only titles when redistribution permission is unclear
- No fan games or assets with unclear rights
- Author, license and upstream source are documented for every catalog entry
- Direct downloads are used only when a stable, verified source is available
- Already installed games are detected automatically
The catalog is external to the executable:
- Repository catalog:
esx/xtras-free-games.ini - Installed catalog:
~/.emulationstation/esx/xtras-free-games.ini - Catalog entries can be updated without recompiling ES-X
The initial starter catalog already covers multiple classic systems, including Game Boy, Game Boy Color, Game Boy Advance, NES, Master System, Game Gear and Mega Drive / Genesis.
The goal is deliberately simple: a user starting with zero games can install a small legal starter library and immediately test several systems from inside ES-X.
The catalog is intentionally small and curated rather than trying to become a massive game store. It is also structured so other projects can reuse or extend the catalog format if they wish.
ES-X includes dedicated scraping support for Java ME games through the internal ScreenScraper integration.
Unlike traditional filename-based scraping, ES-X can inspect the JAR package
and read MIDlet-Name directly from META-INF/MANIFEST.MF to identify the
actual game title.
This is especially useful for J2ME collections, where downloaded games often contain device names, screen resolutions, database IDs, language tags, or repacker information in their filenames.
Features include:
- Native J2ME platform mapping to ScreenScraper
- Automatic
MIDlet-Namedetection from JAR manifests - Cleaned filename fallback for renamed or repacked games
- Artwork fallback when traditional box art is unavailable
- Protection against malformed release dates
- No requirement to manually rename the original JAR files
Because Java ME preservation databases are incomplete, not every title can be
matched automatically, but ES-X significantly improves identification of
real-world J2ME collections.

ES-X adds carousel support directly to TextListComponent, allowing themes to build modern game list layouts without creating a separate view.
The gamelist can now be presented as a horizontal or vertical carousel using scraped artwork, with theme-controlled scaling, spacing, opacity, image source, image fit, and selected item emphasis.
This makes it possible to create PS5-style horizontal game carousels, classic screenshot-based vertical layouts, and other console-inspired interfaces while still using the classic EmulationStation theme structure.
EmulationStation-X (ES-X) is a stable, creator-focused evolution of the original EmulationStation engine, built specifically for RetroPie systems.
It started from a simple need: create better themes without leaving RetroPie.
ES-X does not replace EmulationStation. It extends it.
It preserves RetroPie compatibility, ARM performance, and familiar structure, while expanding what themes and UI systems can achieve.
ES-X follows a clear direction:
- Modernize without fragmenting the ecosystem
- Empower theme creators
- Keep performance ARM-friendly
- Expand carefully, not aggressively
Inspired by projects such as ES-DE, Batocera, and Recalbox, ES-X adapts selected ideas to fit RetroPieโs architecture โ not to imitate them, but to expand creative possibilities within a different ecosystem.
Classic EmulationStation is stable and lightweight. But for theme creators, achieving modern layouts often requires duplication, structural compromises, or engine-level workarounds.
ES-X reduces that friction.
It treats themes not as static skins, but as configurable systems.
- Users benefit from improved visuals and runtime flexibility.
- Creators benefit from a cleaner and more modular foundation.
- Theme creators who want advanced control without engine hacks
- RetroPie users who want modern visuals while keeping compatibility
- Contributors interested in careful, production-oriented evolution
- Replacing RetroPieโs ecosystem with a fully different frontend
- Breaking compatibility for quick experimentation
- Feature bloat without long-term ARM stability
- Full UI translation without recompilation
- Dynamic loading at runtime
- Community-friendly structure
- Located in:
~/.emulationstation/lang/
Stable and actively used.
The heart of ES-X:
theme.xmlโ draws the UItheme.iniโ defines options- ES-X โ binds both at runtime
This enables:
- Multiple layouts from a single theme
- Performance-friendly variants
- Console-style customization
- Zero duplication
Themes become configurable systems, not fixed presets.
See: THEME_OPTIONS.md
- True
zIndexlayering - Advanced scale, spacing, and opacity controls
- Text borders & shadows (engine-level)
- Theme-controlled image source and fallback handling
- Safe metadata fallback handling
- Expanded carousel support for system and game views
- Horizontal and vertical gamelist carousel modes using
TextListComponent
ES-X extends the classic theme engine while preserving compatibility with existing EmulationStation themes.
The goal is to make advanced layouts possible through theme XML instead of requiring hardcoded engine hacks.
ES-X expands Grid view flexibility, enabling themes to:
Create single-row horizontal layouts with carousel-like behavior
Scale and highlight the selected item with clean visual separation
Control spacing, composition, and visual emphasis directly via theme XML
Define custom gridtile frames using backgroundImage, allowing themed borders and overlays per state (default / selected)
Build modern console-style interfaces without modifying the engine core
Gridtile rendering has also been stabilized to prevent unintended image alpha modulation, ensuring selected items display with full opacity and accurate color reproduction.
All enhancements preserve performance, compatibility, and the lightweight architecture of classic EmulationStation.
- SDL_mixer-based background music manager
- Stable shuffle model
- Automatic pause on game launch
- Resume with next track
- Safe handling of corrupted audio files
- Ducking when video is playing
- Navigation sounds (scroll / select / back)
Built for long-term stability on ARM devices.
ES-X separates navigation transitions from game launch transitions.
This keeps the system carousel visually stable while allowing smoother animations within game lists and during game launch.
Inspired by modern console UI design, this produces a more balanced navigation experience without excessive motion.
ES-X prioritizes clarity of mental model.
Compared to traditional EmulationStation workflows:
- Layering is predictable
- Layout variants are modular
- Localization is externalized
- Visual logic is separated from configuration
The goal is not maximum complexity. The goal is accessible expressiveness.
Beautiful themes should not require engine hacks.
| Feature | Status |
|---|---|
| Runtime language system | โ Stable |
| Theme variables | โ Available |
| Theme Options system | โ Stable |
| Text borders & shadows | โ Stable |
| Dark menu mode | โ Stable |
| Background music | โ Stable |
| Navigation sounds | โ Stable |
| Audio ducking | โ Stable |
| Controller overlay | ๐ Planned |
| Network indicator | โ Stable |
| Native J2ME scraping | โ Available |
| MIDlet manifest detection | โ Available |
| Theme Browser | โ Stable |
| System descriptions / Info viewer | โ Stable |
| Quick System Select | โ Stable |
| Integrated Skyscraper interface | โ Available |
| X-TRAS free games catalog | โ Available |
| Gamelist carousel | โ Stable |
| Enhanced Grid layouts | โ Stable |
| Core systems are stable for daily use. New capabilities are introduced carefully to preserve compatibility and performance. |
https://github.com/Renetrox/EmulationStation-X-Module-for-retropie
- โ Handles dependencies
- โ Correct build flags
- โ Clean RetroPie integration
git clone --recursive https://github.com/Renetrox/EmulationStation-X.git
cd EmulationStation-X
mkdir build && cd build
cmake ..
make -j4If cloned without submodules:
git submodule update --init --recursive- Full language coverage
- Expanded theme-driven layout control
- Controller & network overlays
- Creator-oriented documentation
- Continued refinement without breaking RetroPie stability
Dino Renรฉ Caballero Mรกrquez (Renetrox)
Educator โข RetroPie Enthusiast โข Theme Developer
Paraguay
MIT (same as original EmulationStation).
Accessibility is not just using it โ it is understanding it, hearing it, and shaping it your way.

