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 keeps its configuration in the standard XDG directories so it does not pollute your home directory. There are two roots: ~/.config/sm64coopdx/ for global settings and ~/.local/share/sm64coopdx/ for all mutable game data. The game binary and its own resource files live wherever you extracted the SM64 Coop DX release archive.

Launcher files

These paths are created and managed by the launcher itself.
PathPurpose
~/.config/sm64coopdx/launcher.tomlGlobal launcher config — sets the game binary path ([game].path) and optional ROM path ([game].rom_path)
~/.local/share/sm64coopdx/sm64config.txtShared game config file; the launcher reads and writes mod enable lines, DynOS pack lines, and network settings here
~/.local/share/sm64coopdx/mods/Installed mods; the launcher scans this directory for .lua files and folders containing main.lua
~/.local/share/sm64coopdx/dynos/packs/DynOS resource pack directories; each immediate subdirectory is treated as one pack
~/.local/share/sm64coopdx/profiles/Root directory for all player profiles
~/.local/share/sm64coopdx/profiles/active.txtSingle-line text file containing the name of the currently active profile
~/.local/share/sm64coopdx/profiles/<name>/profile.jsonPer-profile options: player name, boolean launch flags, optional binary path override, and creation timestamp
~/.local/share/sm64coopdx/profiles/<name>/sm64config.txtPer-profile game config; passed to the game via --configfile when the file contains at least one byte
~/.local/share/sm64coopdx/profiles/<name>/saves/Per-profile save file directory; created automatically when the profile is created
~/.local/share/sm64coopdx/assets/Launcher assets including fonts, sounds, images, and the mod database
~/.local/share/sm64coopdx/baserom.us.z64Validated ROM copied here automatically before game launch
~/.local/share/sm64coopdx/game_stderr.logGame process stderr captured for post-mortem diagnosis
~/.local/share/sm64coopdx/_downloads/Temporary directory used during mod and updater downloads; cleaned up after a successful install
The launcher passes --savepath ~/.local/share/sm64coopdx/ to the game binary so both the launcher and the game use the same filesystem root for mods, the ROM, DynOS packs, and saves.

Assets sub-tree

The assets/ directory is populated once from a bundled archive. The launcher references these specific paths at runtime:
Asset pathUsed for
assets/fonts/SuperMario256.ttfPrimary UI font
assets/splash.pngSplash screen graphic
assets/vinyl_disc.pngAnimated vinyl disc graphic
assets/sm64coopdx/logo.pngGame logo shown on the main screen
assets/sm64coopdx/icon.pngWindow icon
assets/background.pngMain background image
assets/sounds/navigation_sound.wavMenu navigation sound effect
assets/sounds/splash_sound.wavSplash screen sound effect
assets/ogg-sounds/Directory of OGG background music tracks
assets/database_sm64coopdx.jsonMod database used by the download browser

Game files

These files live inside the SM64 Coop DX installation directory (for example ~/sm64coopdx_Linux-1.5.1-autoUpdater/). The launcher validates some of them at startup before spawning the game process.
File / DirectoryRequiredPurpose
sm64coopdxYesGame binary — the executable the launcher spawns
lang/English.iniYesLanguage strings; the launcher checks this file exists as part of installation validation
dynos/RecommendedBase DynOS resource packs shipped with the game
mods/NoBase game mods bundled with the release
Super Mario 64 (USA).z64YesROM file searched here first; must have MD5 20b854b239203baf6c961b850a4a51a2
libdiscord_game_sdk.soNoDiscord Game SDK; loaded by the game at runtime for rich presence
coopdx_updaterNoOptional auto-updater helper binary shipped with some release archives
If lang/English.ini is missing, the launcher will display an error and refuse to launch the game. Make sure the lang/ directory is present next to the game binary.
You can have multiple game binary directories and select which one each profile uses by setting the game_path field in that profile’s profile.json. See the profile.json reference for details.

Build docs developers (and LLMs) love