https://github.com/syraenix/reliquaint
A preservation-focused launcher for classic DOS and Amiga games on Linux. Curated catalog, sane defaults, no telemetry.
https://github.com/syraenix/reliquaint
amiga dos dosbox fs-uae launcher linux preservation retro-gaming rust tauri
Last synced: 3 days ago
JSON representation
A preservation-focused launcher for classic DOS and Amiga games on Linux. Curated catalog, sane defaults, no telemetry.
- Host: GitHub
- URL: https://github.com/syraenix/reliquaint
- Owner: syraenix
- License: mpl-2.0
- Created: 2025-01-19T02:35:39.000Z (over 1 year ago)
- Default Branch: develop
- Last Pushed: 2026-05-26T20:48:34.000Z (8 days ago)
- Last Synced: 2026-05-26T21:15:59.858Z (8 days ago)
- Topics: amiga, dos, dosbox, fs-uae, launcher, linux, preservation, retro-gaming, rust, tauri
- Language: Rust
- Homepage:
- Size: 4.22 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Reliquaint
> *REL-i-kwaynt* — a portmanteau of *relic* and *quaint*.
[](https://github.com/syraenix/reliquaint/actions/workflows/ci.yml)
[](https://github.com/syraenix/reliquaint/actions/workflows/release.yml)
[](https://github.com/syraenix/reliquaint/releases/latest)
[](LICENSE)
A preservation hub for classic DOS and Amiga games that happens to launch. One catalog, one install command, one launch button — plus the future scaffolding for the maps, hint sheets, and manuals that gave these games their flavour.
## What it is
Reliquaint is a Linux launcher built on top of [DOSBox-Staging](https://www.dosbox-staging.org/) (DOS) and [FS-UAE](https://fs-uae.net/) (Amiga). You bring your own legally-acquired game files; Reliquaint handles the configuration, mounting, sidecars (FluidSynth for MIDI), and a small catalog of curated metadata.
Subscribe to the official [`reliquaint-core`](https://github.com/syraenix/reliquaint-core) tap to get a curated starter set of classic DOS and Amiga titles — Quest for Glory I–IV, King's Quest I–V, Space Quest I–VI, Police Quest 1–4, and the Amiga single-disk *Fatman: The Caped Consumer*. The launcher's tap model (per [ADR-0003](docs/adr-0003-tap-based-distribution.md)) supports multiple community-maintained taps with priority-based conflict resolution.
It does **not** acquire game files for you. It does **not** circumvent DRM. The user provides their own copies; the launcher tells them where to put them.
## Status
**v0.3.** Tap subscriptions are fully implemented. Subscribe to community-maintained taps via `reliquaint tap add ` or the Taps panel in the GUI. The CLI has `list`, `run`, `install`, `migrate-installs`, `doctor`, `add`, `tap add/remove/list/sync/reorder/validate`, and `upgrade`. The GUI supports browsing, installing, launching, tap management, and a first-run prompt for new installs. Companion content (walkthroughs, maps, hint files) remains a v0.4 goal per the [PRD](docs/prd.md).
> **Upgrading from v0.2?** The `reliquaint-core` catalog that used to ship inside the launcher has **moved to its own repository** ([`syraenix/reliquaint-core`](https://github.com/syraenix/reliquaint-core)); the launcher no longer bundles any catalog content. Your existing installs keep working — just subscribe so the launcher can find their catalog entries again:
>
> ```bash
> reliquaint upgrade # detects installs whose tap is no longer subscribed and tells you what to add
> reliquaint tap add reliquaint-core
> ```
>
> See [Migrating from v0.2](#migrating-from-v02) below for the full story.
The project is Linux-only by design (Flatpak DOSBox-Staging, apt-installed FluidSynth/FS-UAE). Cross-platform support is a non-goal for v0.1.
## Installing the launcher
Prerequisites are documented in [`docs/prerequisites.md`](docs/prerequisites.md) — DOSBox-Staging (Flatpak), FluidSynth, FS-UAE, and the Rust toolchain.
```bash
git clone https://github.com/syraenix/reliquaint.git
cd reliquaint
cargo install --path launcher/src-tauri
```
This installs the `reliquaint` binary to `~/.cargo/bin/`. Make sure that's on your `PATH`.
For the GUI, you'll additionally need Node.js + pnpm + GTK/webkit system libs:
```bash
cd launcher && pnpm install && pnpm tauri build
```
## Adding a game you own
The launcher doesn't ship game files. Once you've obtained your own copy (see each entry's "How to obtain" buttons in the GUI for legitimate sources):
```bash
# Extract / copy the game's files into a directory of your choice, then:
reliquaint install qfg1-ega ~/games/qfg1-ega
reliquaint run qfg1-ega
```
If you have games already laid out at `~/games//` from before:
```bash
reliquaint migrate-installs
```
This scans for any catalog entry whose id matches a subdirectory of `~/games/` and registers each one in a single pass.
### Adding a game *not* in a subscribed tap
For DOS or Amiga games we don't have a manifest for, point the wizard at the directory and it will inspect, propose a draft, and write it to your local tap at `${XDG_CONFIG_HOME:-$HOME/.config}/reliquaint/tap/`:
```bash
reliquaint add ~/games/my-custom-game # interactive prompt
reliquaint add ~/games/my-custom-game --yes # accept the draft as-is
reliquaint add ~/games/my-custom-game --platform amiga # override detection
```
Or in the GUI: click the **+ Add game** button in the header, pick the directory, review the form, save.
The new entry shows up alongside subscribed-tap games with a small **CUSTOM** badge. Tweak it later via:
```bash
reliquaint where my-custom-game # print on-disk paths for hand-editing
reliquaint remove my-custom-game # delete the manifest, sibling .conf, and install record
```
When the manifest works well for you, send it upstream so others can use it:
```bash
reliquaint submit my-custom-game --clipboard
# Then paste into tap/catalog//.toml in a PR against this repo.
```
Or in the GUI: open the entry's detail view and click **Submit upstream** — it copies the canonical manifest to your clipboard and opens GitHub on the right "new file" path.
## Browsing the catalog
```bash
reliquaint list # tabular, grouped by collection
reliquaint list --platform dos
reliquaint list --installed
reliquaint list --format json # for scripting
reliquaint # opens the GUI
```
The GUI gives you per-entry cards with year + developer, full metadata + description on detail view, "Get on GOG / Steam / …" buttons drawn from the catalog's `[acquisition]` block, and a live diagnostic panel that streams launcher tracing events alongside the emulator's own stdout/stderr.
## Diagnostics
```bash
reliquaint doctor # host deps + per-install checks + orphan records
reliquaint -v list # tracing at DEBUG; use -vv for TRACE
RUST_LOG=trace reliquaint list
```
In the GUI, the ⚕ Doctor button in the header surfaces the same checks plus per-row "Fix this" buttons for missing apt/flatpak dependencies.
## Subscribing to taps
The first time you run Reliquaint, a prompt offers to subscribe to the official `reliquaint-core` tap. You can also manage subscriptions manually:
```bash
reliquaint tap add reliquaint-core # subscribe to the official tap
reliquaint tap add https://github.com/…/my-tap # or any URL
reliquaint tap list # show subscribed taps
reliquaint tap sync # pull latest commits for all taps
reliquaint tap remove my-tap # unsubscribe
```
The Taps panel (⊞ Taps button in the GUI) provides the same controls visually.
## Migrating from v0.2
In v0.2 the `reliquaint-core` catalog shipped *inside* the launcher. As of v0.3 it lives in its own repository, [`syraenix/reliquaint-core`](https://github.com/syraenix/reliquaint-core), and the launcher ships no bundled catalog content — everything comes from taps you subscribe to.
Nothing about your installed games changes on disk. Each install record points at the `(tap, game)` it was installed against, so the only thing missing after upgrading is the subscription that provides those catalog entries. Restore it in one step:
```bash
reliquaint upgrade
```
This scans your install records, finds any whose tap you are not subscribed to, and — when the tap is a known one like `reliquaint-core` — prints the exact `reliquaint tap add` command to run. Then:
```bash
reliquaint tap add reliquaint-core
reliquaint list # your games are back, now sourced from the subscribed tap
```
In the GUI, the same situation surfaces as a first-run/empty-catalog prompt offering to subscribe to `reliquaint-core`, and `⚕ Doctor` lists any orphaned installs with the suggested fix.
## Contributing a catalog entry
Catalog contributions go to the [`reliquaint-core`](https://github.com/syraenix/reliquaint-core) repository. Clone it, drop a TOML file into `catalog//.toml` matching the schema in [`docs/schema.md`](docs/schema.md), add any per-game shipped `.conf` next to it, and open a PR there. See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the full walkthrough.
## Further reading
- [`docs/prd.md`](docs/prd.md) — product vision and scope
- [`docs/schema.md`](docs/schema.md) — TOML schemas (catalog entries, install records, tap metadata, user config)
- [`docs/v0.1-tasks.md`](docs/v0.1-tasks.md) — the v0.1 task list (kept for historical reference)
- ADRs in [`docs/`](docs/): two-layer manifest model (0001), split DOSBox config (0002), tap-based distribution (0003), logging (0004), error handling (0005)
## License
- **Code** — [MPL-2.0](LICENSE). Weak copyleft: file-level, lets the launcher integrate with proprietary or other-licensed code while keeping modifications to Reliquaint's own files open.
- **Catalog content** — catalog entries and shipped configs live in the [`reliquaint-core`](https://github.com/syraenix/reliquaint-core) repository under [CC-BY-SA-4.0](https://creativecommons.org/licenses/by-sa/4.0/): reuse with attribution; derivative tap repositories must share-alike.