Skip to main content

Documentation 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.

The launcher reads an optional launcher.toml file to let you point it at your SM64 Coop DX binary and ROM without setting environment variables or passing CLI flags every time. Every field in this file is optional — if you leave it empty, or skip the file entirely, the launcher falls through its auto-detection chain and still works as long as your game is installed in a recognisable location.

File location

~/.config/sm64coopdx/launcher.toml
This follows the XDG Base Directory Specification. On a typical Linux desktop ~/.config maps to $XDG_CONFIG_HOME. The launcher creates the sm64coopdx/ subdirectory automatically on first run; you only need to create launcher.toml itself.

Annotated example

[game]
# Absolute path to the sm64coopdx executable.
# Optional — omit to use auto-detection.
path = "/home/user/sm64coopdx_Linux-1.5.1-autoUpdater/sm64coopdx"

# Absolute path to your Super Mario 64 (USA) ROM (.z64 format).
# Optional — omit and the launcher will scan common locations.
rom_path = "/home/user/sm64coopdx_Linux-1.5.1-autoUpdater/Super Mario 64 (USA).z64"
The file must be valid TOML. Both fields live under the [game] table header. Indentation is optional in TOML, but the section header is required.

Field reference

[game].path

TypeString (absolute path)
RequiredNo
DefaultAuto-detected (see Path Resolution)
The absolute path to the sm64coopdx binary. When present, the launcher validates that the file exists before using it; if it does not exist the launcher logs a warning and falls through to auto-detection.
[game]
path = "/home/user/sm64coopdx_Linux-1.5.1-autoUpdater/sm64coopdx"
Use the full absolute path. Relative paths are resolved against the working directory at launch time, which can vary depending on how you start the launcher.

[game].rom_path

TypeString (absolute path)
RequiredNo
DefaultScanned from common locations
The absolute path to your Super Mario 64 (USA) .z64 ROM file. The launcher verifies the file’s MD5 checksum (20b854b239203baf6c961b850a4a51a2) before accepting it. If the path is set but the file is missing or has a wrong checksum, the launcher warns and continues scanning other locations.
[game]
rom_path = "/home/user/sm64coopdx_Linux-1.5.1-autoUpdater/Super Mario 64 (USA).z64"
The ROM search order (when rom_path is also consulted) is:
  1. Game binary directory
  2. Launcher data directory (~/.local/share/sm64coopdx/)
  3. [game].rom_path from launcher.toml
  4. ~/sm64coopdx_Linux-*/ glob in your home directory

Priority in the resolution chain

launcher.toml is tier 4 out of 5 in the game-path priority chain. Higher-priority sources are checked first and, if valid, launcher.toml is never read for that field.
PrioritySource
1 (highest)--game-path CLI flag
2SM64COOPDX_PATH environment variable
3Per-profile game_path in profile.json
4launcher.toml[game].path
5 (lowest)Auto-detection
See Path Resolution for the full breakdown of each tier.

Alternative configuration methods

Set SM64COOPDX_PATH before launching. This is tier 2 — it beats launcher.toml but loses to --game-path.
export SM64COOPDX_PATH="/home/user/sm64coopdx_Linux-1.5.1-autoUpdater/sm64coopdx"
./sm64coopdx-launcher
Add the export line to your ~/.bashrc or ~/.profile to make it permanent.

Creating the file

mkdir -p ~/.config/sm64coopdx
cat > ~/.config/sm64coopdx/launcher.toml << 'EOF'
[game]
path = "/home/user/sm64coopdx_Linux-1.5.1-autoUpdater/sm64coopdx"
rom_path = "/home/user/sm64coopdx_Linux-1.5.1-autoUpdater/Super Mario 64 (USA).z64"
EOF
Replace the paths with the actual locations on your system. After saving, start the launcher — it reads launcher.toml on every launch, so changes take effect immediately without a restart.
If launcher.toml contains invalid TOML syntax the file is silently ignored and the launcher falls through to auto-detection. Double-check your quotes and section headers if changes don’t seem to take effect.

Build docs developers (and LLMs) love