r/emulationstation

Image 1 — Theme Creator (via HTML)
Image 2 — Theme Creator (via HTML)
Image 3 — Theme Creator (via HTML)
Image 4 — Theme Creator (via HTML)

Theme Creator (via HTML)

So I've been building a bunch of custom ES-DE themes lately and got so sick of hand-editing gamelist XML and guessing at pos/size values that I ended up building an actual **visual editor** for it. Figured I'd share since people still very much use EmulationStation/ES-DE and I don't think anything like this exists yet.

It's a browser-based drag-and-drop editor — you point it at your themes folder, it lists every theme inside, you pick one and every gamelist file shows up ready to click and load. From there you just drag elements around a live canvas instead of typing pos/origin/size by hand, resize from the corner, and everything updates in the inspector panel in real time.

The whole idea was to make this work whether you've *never* touched a theme file or you've been doing this for years:

* **User Mode** — adds plain-English explanations everywhere. Hover anything and it tells you what it does in normal words, not ES-DE jargon.
* **Expert Mode** — strips all that hand-holding out once you don't need it anymore.
* A built-in glossary for stuff like `${tokens}`, pos vs origin, size vs maxSize, etc.

**Some of the actual functionality:**

* Opens your real theme folder via the browser's file system access (Chrome/Edge only) and can save changes *straight back to disk*, or export as a .zip/.xml if you'd rather download
* Renders your actual art/video files on the canvas instead of placeholder boxes, and can even pull real game names/art from your ROMs/gamelists + downloaded_media folder so you're previewing with real content instead of guessing
* Built-in validator that catches ES-DE mistakes I've personally gotten burned by (invalid properties on the wrong element, missing positions, etc.)
* A few starter templates (card layout, carousel, grid) so you're not starting from a blank canvas
* Remembers your folders/settings between sessions so you're not re-picking everything every time
* Floating panels you can drag around and rearrange, undo/redo, a few color themes if you're picky about how your tools look

It's a single HTML file — no install, no server, nothing leaves your computer.

Still very much a work in progress and I'm sure there's edge cases in real ES-DE themes I haven't accounted for, but figured this community especially would get some use out of it or at least have opinions on what's missing.

**Coming soon to my GitHub** — cleaning it up a bit more before I push it up, but wanted to get eyes on it and hear what people think first.

u/sypher114 — 1 day ago

Emulation Station takes awhile to boot up

I have ES-DE and sometimes it takes 5 minutes for the startup screen to show up. Anyway I can speed it up so it shows me all the systems immediately?

reddit.com
u/ReindeerFun3762 — 1 day ago

ESDE super slow on Android???

I recently upgraded from an RG353V (Linux) handheld to an RG406V (Android) handheld and it takes about 5 minutes to start up ESDE with my 1TB Micro SD game collection. I did see some sources online saying that it would take a while to start up but I'm confused why ESDE takes so much longer on Android compared to Daijisho which is seconds of loading the same content. Any input would greatly be appreciated!

reddit.com
u/Rocko_Julian — 3 days ago

device not recognizing ROMs on a new card.

Set up my new RP5 with a 128 card, went through all turorials i could grab and everything went fine - all games from Atari 2600 up to Switch running fine after some Emulator tinkering and i was kinda proud of myself achieving this w/o any prior Android experience at all - to this day i avoid to get a smartphone, lol.

Now here´s the problem i ran into: I tried to set up a new 512gb card but after days of trying (again, with help of tutorials - formatted on the RP5 as external/portable storage, let ES-DE set up the folders, etc....) i can´t get the device to recognize any of the game files (NES, SNES black screen after starting up, PPSSP not recognizing the .chd files as PSP games (again, working properly on the initial 128 card).

I´m really helpless atm and would appreciate any help/input what´s causing all that.

reddit.com
u/Slow-Water-5145 — 4 days ago
▲ 5 r/emulationstation+1 crossposts

How to add an alternative emulator to ES-DE on MacOS (a guide)

I finally figured out how to add alternative emulators on MacOS. It's not at all hard once you know how to do it.

Step 1: Make a custom es_systems.xml

You need to make custom es_systems.xml and es_find_rules.xml so that ES-DE can find your emulator. Go to Applications, right click, select Show Package Contents. Go to /Applications/ES-DE.app/Contents/Resources/resources/systems/macos. Open up es_systems.xml and scroll down until you find the system your alternative emulator is for. Copy everything for just that system and paste it into a new text document (I use TextEdit, just make sure it's not on rich text).

For example, here's what your xml file would look like for GameCube:

<?xml version="1.0"?>
<systemList>
    <system>
        <name>gc</name>
        <fullname>Nintendo GameCube</fullname>
        <path>%ROMPATH%/gc</path>
        <extension>.ciso .CISO .dff .DFF .dol .DOL .elf .ELF .gcm .GCM .gcz .GCZ .iso .ISO .json .JSON .m3u .M3U .rvz .RVZ .tgc .TGC .wad .WAD .wbfs .WBFS .wia .WIA .7z .7Z .zip .ZIP</extension>
<command label="Dolphin">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dolphin_libretro.dylib %ROM%</command>
        <command label="Dolphin (Standalone)">%EMULATOR_DOLPHIN% -b -e %ROM%</command>
        <platform>gc</platform>
        <theme>gc</theme>
    </system>
</systemList>

To add an alternate emulator, you just add a new <command> tag after the default ones. For example, here's what it would look like if you wanted to add Dusklight to play Twilight Princess:

&lt;command label="Dusklight (Standalone)"&gt;%EMULATOR_DUSKLIGHT% %ROM%&lt;/command&gt;

%EMULATOR_DUSKLIGHT% is going to be used in your custom es_find_rules.xml. Basically, DUSKLIGHT will trigger the application defined in es_find_rules.xml. %ROM% just tells it to open whatever ROM you send it.

Here's what the complete custom es_systems.xml would look like for Dusklight:

&lt;?xml version="1.0"?&gt;
&lt;systemList&gt;
    &lt;system&gt;
        &lt;name&gt;gc&lt;/name&gt;
        &lt;fullname&gt;Nintendo GameCube&lt;/fullname&gt;
        &lt;path&gt;%ROMPATH%/gc&lt;/path&gt;
        &lt;extension&gt;.ciso .CISO .dff .DFF .dol .DOL .elf .ELF .gcm .GCM .gcz .GCZ .iso .ISO .json .JSON .m3u .M3U .rvz .RVZ .tgc .TGC .wad .WAD .wbfs .WBFS .wia .WIA .7z .7Z .zip .ZIP&lt;/extension&gt;
&lt;command label="Dolphin"&gt;%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dolphin_libretro.dylib %ROM%&lt;/command&gt;
        &lt;command label="Dolphin (Standalone)"&gt;%EMULATOR_DOLPHIN% -b -e %ROM%&lt;/command&gt;
        &lt;command label="Dusklight (Standalone)"&gt;%EMULATOR_DUSKLIGHT% %ROM%&lt;/command&gt;
        &lt;platform&gt;gc&lt;/platform&gt;
        &lt;theme&gt;gc&lt;/theme&gt;
    &lt;/system&gt;
&lt;/systemList&gt;

After you are done, you need to save it in /Users/USERNAME/ES-DE/custom_systems. On MacOS, everything in ES-DE.app (in the Applications folder) is read-only, so you have to save your custom xml files in the above folder for it to work.

Step 2: Make a custom es_find_rules.xml

In the same folder that you put your es_systems.xml, make a new text file (with TextEdit, or some other program. Just make sure it actually saves it as an xml file and you selected Make Plain Text under Format). This will be called es_find_rules.xml. In this file, you need to tell ES-DE where the emulator application is in your file system. Here's what it would look like for Dusklight:

&lt;?xml version="1.0"?&gt;
&lt;!-- This is the ES-DE find rules configuration file for Macos --&gt;
&lt;ruleList&gt;
    &lt;emulator name="DUSKLIGHT"&gt;
        &lt;rule type="staticpath"&gt;
            &lt;entry&gt;/Applications/Dusklight.app/Contents/MacOS/Dusklight&lt;/entry&gt;
        &lt;/rule&gt;
    &lt;/emulator&gt;
&lt;/ruleList&gt;

The emulator name is whatever you put on %EMULATOR_ in your es_systems.xml file. Since I put %EMULATOR_DUSKLIGHT%, I put DUSKLIGHT as the emulator name. Under entry, it's just the path to the executable, which you can get by right clicking the app in Applications, Show Package Contents, then go to Contents/MacOS/APP_NAME. Right click the executable, hold option, and copy path name.

Step 3: Change metadata to open alternative emulator

Assuming you did the above correctly, everything should now work now in ES-DE. Open up ES-DE, and you can change all your ROMs to open with the alternative Emulator (Main Menu/Other Settings/Alternative Emulators. Alternatively, you can open up only a specific ROM with the alternative emulator by changing the metadata of the individual ROM. Go to the ROM, go to Options, Edit This Game's Metadata, Alternative Emulator (scroll down to the very bottom).

Step 4: You're Done!

At this point, it should work. It's really not that difficult, but I don't have very much experience with XML or how ES-DE works under the hood. Hopefully this helps future ES-DE MacOS users, since there isn't too much online about this.

reddit.com
u/justinmeister — 7 days ago

No Scraper for you-

So, for some reason Emulation Station has decided that I’m not good enough for settings which includes the scraper.

Anyone else had this?

u/TheBindFurry — 10 days ago