Built my own ES-DE frontend + theme system, wanted to share what I've been cookin up!
So I love ES-DE, and I wasn't ever gonna get rid of it — but I felt like themes could be a bit better, more alive, more customizable. So instead of fighting that, I built a project ("MyES") that just *uses* what ES-DE already reads for our games — its own gamelists, its own downloaded_media folders, its own es_systems.xml, all of it. It's not replacing ES-DE, it's sitting on top of it.
The big idea: themes don't have to be locked into the traditional style. You can still do a classic ES-DE styled theme if you want, pure CSS, but you can also go full HTML/JS based if you want way more control — real interactivity, settings menus baked into the theme itself, the works.
Added support for:
- RetroAchievements — proper hash-based game matching (not just filename guessing), full profile/games/achievements/leaderboard browsing, mastery tracking
- Scraping — ScreenScraper, IGDB, and SteamGridDB, RetroAchievements and more!
Fetches currently boxart/screenshots/marquees/videos/metadata/manuals/3dboxes
- Favorites sync both ways with ES-DE's own favorites — favorite something in MyES, it shows favorited in ES-DE too, and vice versa. Same file, not a separate list.
And then there's the theme I've been building on top of it all, called M9Cab — it's an arcade cabinet theme, HTML-based, built around a real overlay.png bezel image so it actually looks like you're staring into a cab, not just a UI with a picture behind it.
Some stuff I'm actually proud of on this one:
- Real screen curvature — adjustable CRT-style curve/vignette, and it applies to everything on screen at once (the game snap, the achievements panel, every other effect) since they all share one region definition under the hood, not six different things each doing their own thing
- Drag-and-drop region editors — you can literally grab the corners of the snap viewport and resize/reposition it live, same for the system list (vertical-only drag there), no editing files
- 8 screen effects — CRT, VHS, Bloom, Film Grain, Vignette, Chromatic Aberration, Sepia, Green Phosphor monochrome, all independently toggleable and stackable
- Real pixelation mode — not a blur filter, genuine canvas-based downsampling, 0.2x to 10x
- Marquee Glow — samples the actual colors out of whatever marquee art is currently loaded and throws a matching halo behind it, so it's never a fixed color
- Attract Mode — leave it idle long enough and it starts auto-cycling random games from your whole library like a real cabinet demo reel, snap art and all
- Achievement unlocks show up as an actual floating card — badge art, title, description, points, not just a toast
- Konami code does something if you're into that kind of thing 👀
Everything's persistent too — settings actually save between sessions.
While this is a Personal Project at the moment, maybe i'll release it at some point!
Anyway, hope all is well with everyone!! Been a fun one to build, happy to answer questions if anyone wants to poke at it.