This guide takes you from a fresh clone to an in-game session of SM64 Coop Deluxe. The only prerequisites are a working installation of coopdx-rs and a copy of the SM64 US ROM and theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/retired64/sm64coopdx_launcher/llms.txt
Use this file to discover all available pages before exploring further.
sm64coopdx game binary.
git clone https://github.com/retired64/sm64coopdx_launcher
cd sm64coopdx_launcher
cargo build --release
The compiled binary is placed at
target/release/sm64coopdx-launcher. You can run it from there or copy it anywhere on your PATH.The launcher validates your ROM by MD5 checksum (
20b854b239203baf6c961b850a4a51a2) before every launch. Place the ROM file in one of these locations — the launcher scans them in order and uses the first valid file it finds:sm64coopdx game binary.~/.local/share/sm64coopdx/ (the shared save/data directory).~/.config/sm64coopdx/launcher.toml under [game].rom_path.~/sm64coopdx_Linux-*/ release directory in your home folder.The launcher copies a validated ROM to
~/.local/share/sm64coopdx/baserom.us.z64 automatically on first launch, so subsequent runs are instant.Only the Super Mario 64 (USA) ROM with MD5
20b854b239203baf6c961b850a4a51a2 is accepted. Other regions or patched versions will fail validation and the launcher will display a red error message instead of starting the game.The launcher requires its sprites, sounds, music, and font to be present in
~/.local/share/sm64coopdx/assets/.To point the launcher at a specific game binary without editing any config file, pass
--game-path:Or set the
SM64COOPDX_PATH environment variable for a session-scoped override (see Game path resolution below):lang/English.ini exists next to the game binary and that the save path is writable.~/.local/share/sm64coopdx/baserom.us.z64 if not already present.~/.local/share/sm64coopdx/.Game path resolution
The launcher uses a strict five-tier priority system to locate thesm64coopdx binary. Each tier is tried in order; if the path doesn’t point to an existing file, the next tier is tried automatically.
| Priority | Source | Example |
|---|---|---|
| 1 (highest) | --game-path CLI flag | ./sm64coopdx-launcher --game-path /opt/sm64/sm64coopdx |
| 2 | SM64COOPDX_PATH env var | export SM64COOPDX_PATH=/opt/sm64/sm64coopdx |
| 3 | Active profile → profile.json → game_path field | ~/.local/share/sm64coopdx/profiles/<name>/profile.json |
| 4 | launcher.toml → [game].path | ~/.config/sm64coopdx/launcher.toml |
| 5 (default) | Automatic directory search | <launcher_dir>/../games/mario64/sm64coopdx, <launcher_dir>/sm64coopdx, <launcher_dir>/../sm64coopdx, ~/sm64coopdx_Linux-*/sm64coopdx |
Quick override: environment variable
TheSM64COOPDX_PATH variable is the fastest way to point the launcher at a specific binary without touching any file:
Persistent configuration: launcher.toml
For a permanent path configuration, create ~/.config/sm64coopdx/launcher.toml:
Per-profile binary path
Each profile’s~/.local/share/sm64coopdx/profiles/<name>/profile.json can also specify a game_path. This allows different profiles to target different builds of the game (for example, a stable release and a development build):
Keyboard controls
| Key | Action |
|---|---|
| Enter | Launch the game / confirm selection |
| Tab | Toggle the side menu open/closed |
| Esc | Go back / close sub-screen / exit (from main screen) |
| ↑ / ↓ (or W / S) | Navigate menu items and lists |
| ← / → | Change network mode; navigate tag chips |
| F | Toggle fullscreen / windowed mode |
| Space | Activate selected item (e.g. set active profile) |
| N | New profile (in Profile Manager) |
| R | Rename selected profile (in Profile Manager) |
| Delete (hold 1.5s) | Delete selected profile (in Profile Manager) |
| / | Activate search (in Download Browser) |
| C | Clear all filters (in Download Browser) |
| Page Up / Page Down | Previous / next page (in Download Browser) |
Gamepad controls
| Button | Action |
|---|---|
| A (button 0) | Confirm / launch |
| B (button 1) | Cancel / back |
| X (button 2) | Activate (set active profile) |
| L1 (button 4) | Previous page |
| R1 (button 5) | Next page |
| Start (button 7) | Toggle menu (Tab equivalent) |
| D-Pad | Navigate lists and menus |
| B (hold 5s) | Exit the launcher |
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| ”Game binary not found” on main screen | No binary at any of the 5 resolution tiers | Set SM64COOPDX_PATH or add [game].path to launcher.toml |
| Red error: “Language file not found” | lang/English.ini missing next to the binary | Ensure the full SM64 Coop DX release archive is extracted with its lang/ directory intact |
| Red error: “No valid SM64 US ROM found” | ROM absent or wrong MD5 | Place Super Mario 64 (USA).z64 (MD5: 20b854b239203baf6c961b850a4a51a2) next to the game binary |
| Game freezes at “Loading ROM Assets” | ROM not copied to save path | Check that ~/.local/share/sm64coopdx/ is writable by your user |
| Launcher fails at splash screen | Assets missing | Re-run cp -r assets/* ~/.local/share/sm64coopdx/assets/ |