📦tvollstaedt / exodium
← 返回首页
Cross-platform retro game launcher based on eXoDOS
⚖️ MIT📅 创建于 2026-04-06🔄 更新于 2026-10-29

📄 仓库 README

在 GitHub 查看 ↗
来自 GitHub 仓库自述文件 · 版权归原作者所有

Exodium

Exodium

A cross-platform launcher for the eXoDOS collections. Browse, download, and play DOS, Windows 3.x, Windows 9x, ScummVM, and Apple IIGS games on Linux, macOS, and Windows.

Latest release License: MIT Platform Built with Tauri Rust + TypeScript

Browse view with the collection shelf, cover-art grid, and a download in progress


Quick start

  1. Download the latest release for your platform: Windows (.exe) · macOS (.dmg) · Linux (.AppImage) · all downloads
  2. Install and launch - see Installation for platform notes.
  3. Pick a games folder in the setup wizard - this is where downloaded games are stored.
  4. Browse and play - hit download on any game; it streams from the eXo torrents and launches in the emulator it was configured for.

A tribute to eXoDOS

Exodium would not exist without the extraordinary work of the eXoDOS project and its creator, eXo. Over many years, eXo and the eXoDOS community have painstakingly collected, configured, and preserved over 9,000 DOS games, each one pre-configured to run out of the box. The result is an irreplaceable archive of gaming history.

Exodium is a frontend client for that collection. It does not host or distribute any game files; it uses the eXoDOS torrents that you seed yourself. If you find value in Exodium, please consider supporting the eXoDOS project directly at retro-exo.com.


What it does

eXoDOS ships with a Windows-only LaunchBox frontend and requires downloading the full ~500 GB torrent to browse the catalogue. Exodium replaces that frontend with a small native app for Linux, macOS, and Windows.

Available now

  • ✅ Browse the eXoDOS catalogue alongside the German, Spanish, and Polish language packs
  • ✅ The Windows collections as well: eXoWin3x runs under DOSBox Staging, eXoWin9x boots a real Windows 95/98
  • ✅ eXoScummVM too - each game runs on the ScummVM build eXo pinned it to, fetched for you, with a picker for edition, sound hardware, and subtitles
  • ✅ eXoAppleIIGS - eXo's own emulators on Windows, GSplus on macOS and Linux, with eXo's reference cards and the GS+ and Buyer's Guide magazines in the Reading Room
  • ✅ Stream individual games on demand - no full collection download required
  • ✅ Launch via bundled DOSBox Staging with no external dependencies
  • ✅ MT-32 and General MIDI music - Roland ROMs and the SoundCanvas soundfont are fetched from the collection and eXoDOS' DOSBox-ECE configs are translated for DOSBox Staging automatically
  • ✅ Your own MIDI hardware - pick a General MIDI and an MT-32 output device in Settings and each game's own setup decides which one it uses; your own ROMs and soundfonts come from a folder you choose
  • ✅ Game manuals and per-game media galleries - box scans, in-game screenshots, and ads
  • ✅ Preview videos read straight out of the collection's archives, without downloading the game first
  • ✅ A theme player - a game's theme streams from its archive when you open its details, and Browse doubles as a jukebox over the games that have one
  • ✅ Per-game settings - CRT shader, fullscreen, CPU cycles, and a free-form DOSBox config editor
  • ✅ Favorites, playlists, and a personal library of installed games
  • ✅ Pause and resume downloads one by one or all at once, and cancel everything in one go
  • ✅ Kids mode - a locked screen with just the games of one playlist, everything else behind a PIN
  • ✅ Select many games at once - Cmd/Ctrl- or Shift-click, drag a frame, or Select all - and add them to a playlist, download or favorite them together
  • ✅ Import a list of games as a playlist (a text file with one title per line, or a CSV with title, collection, year), export one the same way, and download a whole playlist in one go

Compatibility note: DOS and Windows 3.x games run under the bundled DOSBox Staging, ScummVM games under the pinned ScummVM build Exodium fetches for them. A handful are tuned for DOSBox-ECE specials such as 3dfx Voodoo settings or the GunStick light gun and may look or behave slightly differently than under the original Windows eXoDOS setup. Windows 9x games need DOSBox-X or 86Box, which Exodium fetches with your first Windows 9x download. Apple IIGS games run under GSplus on macOS and Linux, including the ones eXo runs with MAME or GSport on Windows - those are marked in the game's panel until they have been tested.

Planned

  • 🔲 A history of what has been fetched
  • 🔲 Support for other eXo collections - eXoDREAMM, eXoIF, and future releases

Screenshots

Game detail panel for DOOM with cover art, metadata, and language variants

Game detail panel with description, metadata, and one download size per available language.

Media gallery lightbox showing a magazine ad, with a thumbnail strip below it

Per-game media gallery. Flip through original box scans, magazine ads, and in-game shots.

Downloads sheet with three games in progress, peer count, and sharing status

Several games download at once, straight from the eXoDOS torrents, with the peer count and how much you have shared back.


Installation

Download the binary for your platform from the latest release.

macOS

Because Exodium is not yet signed with an Apple Developer ID, macOS Gatekeeper will block it on first launch with "Exodium is damaged and cannot be opened". To bypass this, run the following once after dragging the app to Applications:

xattr -cr /Applications/Exodium.app

This removes the quarantine attribute that macOS adds to downloaded files. The app is otherwise unmodified - the binary itself is built and distributed directly from this repo's CI pipeline.

Linux

Install the .deb (Debian/Ubuntu) or run the .AppImage directly (any distro). The AppImage needs chmod +x first.

Windows

One installer is provided: Exodium_<version>_x64-setup.exe (NSIS). It is currently unsigned, so Windows will block it by default. Trusted code signing is planned for a future release. (Releases up to v0.8.3 also shipped an .msi; it was dropped because the auto-updater delivers NSIS updates, and Windows cannot cleanly update an MSI install with an NSIS installer.)

Install: NSIS .exe + Unblock-File

  1. Download Exodium_<version>_x64-setup.exe.
  2. Open PowerShell and unblock the downloaded file:

powershell Unblock-File "$HOME\Downloads\Exodium_<version>_x64-setup.exe" 3. Run the installer normally. SmartScreen may still show a warning - click "More info" → "Run anyway".

If Unblock-File is unavailable, right-click the .exe → Properties → tick "Unblock" at the bottom of the General tab → OK.

If downloads are stuck at 0%: check %APPDATA%\Exodium\logs\exodium.log for error details. Firewall issues are one possible cause - allow both "Private" and "Public" networks for Exodium under Windows Security → Firewall & network protection → Allow an app through firewall.

Forgot the kids mode PIN?

Start Exodium once with the option --reset-kids-mode. It turns kids mode off and keeps the kids playlist; set a new PIN in Settings → Kids Mode.

  • macOS: quit Exodium first, then open -a Exodium --args --reset-kids-mode - a running app only comes to the front, the option is dropped
  • Linux: run the AppImage (or exodium from the .deb) with --reset-kids-mode appended
  • Windows: right-click Exodium in the Start menu → Open file location, then run the program from PowerShell with --reset-kids-mode appended

On Linux and Windows a second start reaches an already open window as well.


Tech stack

Layer Technology
Shell Tauri v2 (frameless window, decorations: false)
Frontend SolidJS + TypeScript + Vite
UI Components Ark UI headless (@ark-ui/solid)
Backend Rust
Database SQLite via rusqlite (WAL mode, pre-built and shipped with the app)
Torrent librqbit with selective file downloads

Development

Prerequisites

  • pnpm
  • Rust toolchain - bootstrapped automatically by pnpm tauri dev if not present
  • aria2 - for init-dev only (brew install aria2 / apt install aria2)
  • Python 3 + Pillow - for init-dev only (pip3 install Pillow)

DOSBox Staging is downloaded automatically by init-dev. No manual installation needed.

First-time setup

pnpm install

# Download thumbnails and the DOSBox binary (one-time, ~2-5 GB depending on language packs)
pnpm run init-dev

pnpm tauri dev

init-dev is idempotent - already-downloaded files and existing thumbnails are skipped. Use --force to regenerate thumbnails. Data is cached at ~/.exodium-dev/ (override with XDO_DEV_DATA=/your/path).

Language pack options:

pnpm run init-dev --glp     # German Language Pack (~23 GB)
pnpm run init-dev --slp     # Spanish Language Pack (~3.8 GB)
pnpm run init-dev --plp     # Polish Language Pack (~800 MB)
pnpm run init-dev --all-packs

Useful scripts

Command Description
pnpm tauri dev Start the app in development mode
pnpm run init-dev First-time setup: DOSBox binary + thumbnails
pnpm run get-dosbox Download DOSBox Staging binary only
pnpm test Run frontend tests (Vitest)
pnpm run test:all Frontend + Rust tests

Regenerating the game database

The pre-built SQLite database (metadata/exodium.db.gz) ships with the app. To regenerate it from the bundled XML sources:

cd src-tauri
cargo run --example generate_db
gzip -k ../metadata/exodium.db

Project structure

exodium/
├── src/                    SolidJS frontend
│   ├── api/tauri.ts        Typed invoke() wrappers
│   ├── components/         GameCard, GameDetailPanel, SearchBar, WindowFrame, ...
│   ├── pages/              Intro, Setup, Library
│   └── stores/             games, downloads, thumbnails
├── src-tauri/
│   └── src/
│       ├── examples/       generate_db build tool (not shipped)
│       ├── commands/       Tauri commands (games, setup, updates)
│       ├── db/             SQLite schema + queries
│       ├── import/         LaunchBox XML parser
│       └── torrent/        librqbit download manager
├── metadata/               Bundled XML sources + pre-built DB (.gz)
├── scripts/
│   ├── init-dev.sh         First-time dev setup
│   └── gen_thumbnails.py   Resize + rename box art from XODOSMetadata.zip
├── manifest.json           Update-check manifest (torrent infohashes + thumbnail pack info)
├── thumbnails/eXoDOS/      Shortcode-keyed game thumbnails (gitignored, generated by init-dev)
└── torrents/               .torrent files for every collection

Support

Found a bug or have a question? Open an issue - include exodium.log from the app's log folder (Settings → Open log folder) for download or launch problems.

If Exodium is useful to you, consider donating via GitHub Sponsors or Ko-fi. Donations go toward OS code-signing certificates (Apple Developer ID, Windows signing) so the install warnings on macOS and Windows can go away.


License

MIT - see LICENSE.

Exodium does not include any game files, ROM images, or copyrighted eXoDOS assets. All game data is downloaded via the official eXoDOS torrents.

📈 近 7 天 Star 趋势

每日新增 Star(柱)与累计 Star(线)· 数据来自 GitHub

🏆 排名变化趋势

在各榜单中的排名历史(数字越小越靠前)

📋 历史上榜记录

每次快照的详细数据
日期 榜单 排名 周期新增 总 STAR