Skip to content

Renetrox/EmulationStation-X

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

244 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EmulationStation-X (ES-X)

License: MIT Platform: ARM RetroPie Compatible

LOGO

YouTube demo

Example Theme Gallery

Captura de pantalla_2026-01-09_19-20-24

Multilingual scraper

Captura de pantalla_2025-12-01_12-24-53

Example Theme Options

Captura de pantalla_2025-12-05_07-07-19 Captura de pantalla_2025-12-31_12-58-30 Captura de pantalla_2025-12-15_13-20-32

Example Grid view

Captura de pantalla_2026-03-02_13-12-38 photo_2026-04-04_09-59-24

Example Gamelist Carousel

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.

photo_2026-05-08_20-49-32 photo_2026-05-08_20-49-48

What is ES-X?

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.

Philosophy

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.

Why ES-X Exists

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.

Who ES-X Is For / Not For

ES-X is for:

  • 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

ES-X is not for:

  • Replacing RetroPie’s ecosystem with a fully different frontend
  • Breaking compatibility for quick experimentation
  • Feature bloat without long-term ARM stability

Core Systems (Production-Ready)

🌍 Runtime Language System (.ini)

  • Full UI translation without recompilation
  • Dynamic loading at runtime
  • Community-friendly structure
  • Located in: ~/.emulationstation/lang/

Stable and actively used.

🎨 Theme Options System

The heart of ES-X:

  • theme.xml → draws the UI
  • theme.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

🧩 Extended Theme Engine

  • True zIndex layering
  • 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.

🎮 Enhanced Grid Layout Control

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.

🔊 Background Music & Audio System

  • 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.

🎬 Refined Transition System

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.

Designed for Theme Creators

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.

Current Feature Status

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

Core systems are stable for daily use. New capabilities are introduced carefully to preserve compatibility and performance.

Installation

Recommended (RetroPie Module)

https://github.com/Renetrox/EmulationStation-X-Module-for-retropie

  • ✔ Handles dependencies
  • ✔ Correct build flags
  • ✔ Clean RetroPie integration

Manual Build (Advanced)

git clone --recursive https://github.com/Renetrox/EmulationStation-X.git
cd EmulationStation-X
mkdir build && cd build
cmake ..
make -j4

If cloned without submodules:

git submodule update --init --recursive

Roadmap Focus

  • Full language coverage
  • Expanded theme-driven layout control
  • Controller & network overlays
  • Creator-oriented documentation
  • Continued refinement without breaking RetroPie stability

Author

Dino René Caballero Márquez (Renetrox)
Educator • RetroPie Enthusiast • Theme Developer
Paraguay

License

MIT (same as original EmulationStation).


Accessibility is not just using it — it is understanding it, hearing it, and shaping it your way.

About

EmulationStation fork for RetroPie featuring extended theming, .ini-based localization and UX improvements.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages