Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Converting eXoDOS games for RetroArch (DOSBox-Pure)

This guide covers taking games from an eXoDOS collection and converting them into a format that works with the DOSBox-Pure core in RetroArch, for use on devices like the Miyoo Mini Plus or in RomM.

1. Get eXoDOS installed

You need a working eXoDOS install before converting anything.

  • Full downloads every game’s actual files upfront (hundreds of GB to a few TB depending on version and add-ons). Fully offline once downloaded.
  • Lite downloads just the frontend and metadata, then fetches each game’s zip on demand the first time you install it. Faster to get running if you already know which games you want, but needs internet access at install time for each game.

If you already have a curated list of games in mind, Lite is the more practical choice, since ExoDOSConverter supports pulling games from a Lite install on the fly.

On Linux (Arch, etc.)

There is now an official Linux Patch that installs eXoDOS natively (no Wine needed for the collection itself):

  1. Download the base eXoDOS collection and the separate eXoDOS Linux Patch.zip from retro-exo.com.
  2. Extract the Linux Patch zip into the same root folder as your eXoDOS download (where Setup eXoDOS.bat and eXoDOS Catalog.pdf live). Files should land directly in that root, not a subfolder.
  3. Install flatpak first if you don’t have it: sudo pacman -S flatpak (log out and back in afterward).
  4. Run install_dependencies.command, choose Proceed with installation. This pulls in DOSBox Staging, DOSBox-X, DOSBox ECE, ScummVM, and a Wine flatpak for edge cases via flatpak.
  5. Run Setup eXoDOS.command (not the .bat file). Follow the prompts for fullscreen/windowed, aspect ratio, and adult content filtering.
  6. Launch exogui (either from the desktop shortcut it creates, or exogui.command directly) to browse and install games.

2. Curate your game selection

Decide which games you actually want before converting. eXoDOS is enormous (thousands of titles), and the Miyoo Mini Plus’s ARM Cortex-A7 at 1.2GHz handles early, simpler DOS games fine but struggles with anything doing heavy 3D or software rendering. Test a couple of your heavier picks early rather than converting everything and finding out later.

3. Set up ExoDOSConverter

ExoDOSConverter repackages selected eXoDOS games into a format DOSBox-Pure understands (Batocera, RetroPie, EmuELEC, RetroBat, MiSTer targets). Miyoo isn’t a listed target directly, use Batocera or RetroPie as the output format, since both produce lr-dosbox-pure-compatible output.

Installing on Arch Linux

git clone https://github.com/Voljega/ExoDOSConverter
cd ExoDOSConverter

Install dependencies. The pinned versions in requirements.txt are old (2021-2022) and may fail to build on newer Python (e.g. Pillow 9.0.1 fails on Python 3.14 with a setuptools incompatibility). Instead, install current versions directly:

pip install chardet certifi charset-normalizer idna pillow --break-system-packages

(Use a virtualenv instead of --break-system-packages if you’d rather not touch system Python packages.)

Known fix needed on Linux

The converter’s dosbox-pure zip step uses a Windows-only text encoding (mbcs) that doesn’t exist on Linux, causing:

LookupError: unknown encoding: mbcs

Fix by patching the source:

sed -i 's/encoding="mbcs"/encoding="cp1252"/' gamegenerator.py

This substitutes the closest real equivalent (cp1252, Windows’ typical default ANSI codepage). If a UnicodeDecodeError shows up instead after this fix (rare), try latin-1, which never fails to decode but can occasionally misrender rare characters.

4. Run the conversion

  1. Launch the tool: ./ExoDOSConverter.sh
  2. Point collectionDir at your installed eXoDOS folder.
  3. Set conversionType to Batocera or RetroPie.
  4. Select your curated games from the list (or load/save a .sel selection file for reuse).
  5. Run the conversion.

For each game, expect:

  • A .zip file (the game itself, packaged for DOSBox-Pure’s zip-loading support)
  • A .keys file (a gamepad-to-keyboard mapping, generated from the Keyb2Joypad Project database)

A <WARNING> game uses call run.bat message during conversion is informational, not an error. It just means the game’s launcher chains into a second batch file rather than being self-contained, worth a quick test on that specific game afterward since chained-launcher games are more likely to have a subtly wrong launch command.

If a game errors out, check error_log.txt in your output directory for the full traceback, the console only prints the error type.

5. Deploy to your device

  • Copy the converted game folders/zips onto your SD card, into whatever folder your firmware uses for DOS/PC content (OnionOS-based Miyoo builds typically use Roms/DOS).
  • Keep each .keys file in the same folder as its matching .zip, same base filename.
  • Make sure DOSBox-Pure is the assigned core for DOS content in RetroArch.
  • If using zipped games, enable Core Options > Emulation > Loading of dosbox.conf so RetroArch reads the bundled config.
  • Skip over any Batocera/RetroPie-specific gamelist.xml or scraper metadata, your device’s frontend won’t read those the same way.

Note on RomM

RomM’s own documentation only mentions .conf files being auto-detected for mounting, it doesn’t document .keys file support. DOSBox-Pure itself has since gained built-in automatic controller mapping (from the same Keyb2Joypad database), so many games may map correctly without the .keys file being used at all. Test a game or two, check RetroArch’s Controller Mapper screen for “Mapping: ” to confirm whether auto-detection kicked in.

Known incompatibilities

  • Games whose original DOSBox config relies on the mount command are a known incompatibility with DOSBox-Pure at this time.