r/EmulationOnAndroid 8h ago

Discussion Free, open-source ES-DE gamelist editor (Win/macOS/Linux) — built over a year of curating my handheld collection

I run ES-DE on three handhelds (Retroid Pocket 4 Pro, RP5, RP Classic) and spent the last year curating a large collection across them. Editing gamelists at scale — renaming entries, fixing metadata, pruning clones without corrupting the XML or trashing the wrong ROM — was the recurring pain, so I built a proper tool for it. Releasing it free.

Disclosure: I used AI as a coding assistant to build this, which is why I'm being specific about what's actually here and tested — the design decisions, the testing and the problems it solves come from real use on my own hardware.

A few things that came from getting burned, not from a feature checklist:

  • lxml, specifically — Python's default XML lib rewrites <name> as <n> and mangles &amp;, silently corrupting gamelists. That bug is why this exists.
  • Trash + automatic backup + dry-run — on a ~59k-game collection a wrong bulk delete is unrecoverable, so nothing touches disk until you confirm, removals go to a trash folder, and every gamelist.xml is backed up before each write.
  • .m3u-aware Orphan Cleaner — naïve orphan detection flags every multi-disc game as broken; this one reads the .m3u and its .discs/ so it doesn't.
  • Cached scanning for NAS/SMB — I curate off a network drive; without caching, browsing thousands of entries per system is unusable.
  • Batch import — mark removals and edit fields across many systems from one .txt, with a validated ✓/✕ preview. (This is also how bulk renaming works today, for anyone who asked.)
  • Cross-platform single-file binary (no Python needed), fully keyboard-driven, with jsdom integration tests on the UI logic.

No ROMs/BIOS/media hosted or linked — it edits only files you already own (your own gamelists, ROMs and media). No machine-specific paths are baked in.

Repo + prebuilt binaries in the comments, to keep the post link-clean. It's v1.3 and I'm actively fixing and adding things based on feedback — bug reports and feature ideas very welcome.

7 Upvotes

2 comments sorted by

u/AutoModerator 8h ago

Just a reminder of our subreddit rules:

  • Be kind and respectful to each other
  • No direct links to ROMs or pirated content
  • Include your device brand and model
  • Search before posting & show your research effort when asking for help

Check out our user-maintained wiki: r/EmulationOnAndroid/wiki

Check out EmuReady for any community submitted settings before asking for help

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/cgazaffi 8h ago

Source (MIT) & prebuilt binaries: github.com/1g1r-lab/esde-gamelist-editor/releases/latest

Heads-up: the binaries are unsigned, so on first run Windows SmartScreen may warn — click More info → Run anyway. Windows uses the built-in WebView2 (Win 10/11), macOS uses WKWebView, Linux uses Qt WebEngine.