๐ŸŽฎ Linux ยท Arch ยท Ubuntu ยท Debian ยท Fedora ยท openSUSE

Super Mario 64
Render96ex / SM64EX + Odyssey

One-shot installer for the SM64 PC port โ€” choose Render96ex (HD + DynOS) or SM64EX (vanilla). Both get Render96 HD textures & models + Odyssey Moveset โ€” Cappy, captures, roll, dive & more.

One-liner โ€” paste in terminal
curl -fsSL https://raw.githubusercontent.com/zonaro/Mario64/main/install.sh -o install.sh && chmod +x install.sh && ./install.sh
View on GitHub โ†’ How it works

You must own a legally dumped, unmodified Super Mario 64 (US) ROM. No ROMs are distributed.

Why this installer?

The official OMM build is manual and fragile. This automates it end-to-end.

โšก

One command

Detects your distro, installs deps, clones, patches, builds and installs. No manual steps.

๐Ÿงน

Temp build, clean output

Clone & compilation happen in /tmp and are deleted. Only the game stays in ~/Mario64.

๐ŸŽจ

Render96 HD + Odyssey

Choose Render96ex or SM64EX โ€” both get Render96 HD textures & models + full Odyssey moveset (Cappy, captures, roll, dive, cap bounce).

๐Ÿง 

Smart & safe

ROM hash verified, patch rejects detected, defensive fixes for the star-crash bug, idempotent re-runs.

How it works

What happens when you run the installer.

1 โ€” Choose base

Pick 1 Render96ex (recommended, tester) or 2 SM64EX (master) โ€” or set ENGINE=render96|sm64ex to skip the prompt. Both get Render96 HD packs.

2 โ€” Dependencies

Detects pacman / apt / dnf / zypper and installs git curl make gcc python3 SDL2 GLEW p7zip (skip with SKIP_DEPS=1).

3 โ€” ROM

Uses ROM_ZIP if set, otherwise scans the script dir. If not found, prompts for the path (drag & drop) or auto-searches ~/Downloads, ~/ROMs, ~/Games etc.

4 โ€” Install location

Prompts for the install folder โ€” leave empty for ~/Mario64. Override with FINAL_DIR=~/Games/Mario64.

5 โ€” Build in temp

Clones the chosen base (Render96/Render96ex or sm64pc/sm64ex), applies omm.patch + defensive fixes, builds with make -j$(nproc) โ€” all inside /tmp/mario64_build_XXXXXX.

6 โ€” Deliver & clean

Moves build/us_pc to the chosen folder, installs Render96 HD packs (both engines), creates launch.sh + desktop entry, then deletes the temp dir.

Output: ~/Mario64/build/us_pc/sm64.r96x (or sm64.us.f3dex2e for SM64EX) ยท ~/Mario64/launch.sh ยท ~/.local/bin/render96-odyssey or sm64ex-odyssey ยท desktop entry in your app menu.

Install options

curl -fsSL https://raw.githubusercontent.com/zonaro/Mario64/main/install.sh -o install.sh && chmod +x install.sh && ./install.sh # piped (also prompts via /dev/tty): bash -c "$(curl -fsSL https://raw.githubusercontent.com/zonaro/Mario64/main/install.sh)" # non-interactive โ€” pick base + ROM + dir: ENGINE=render96 ROM_ZIP=~/roms/sm64.z64 FINAL_DIR=~/Mario64 bash -c "$(curl -fsSL https://raw.githubusercontent.com/zonaro/Mario64/main/install.sh)" ENGINE=sm64ex FINAL_DIR=~/Games/Mario64 ./install.sh # ENGINE aliases: r96/render96ex โ†’ render96, ex/sm64 โ†’ sm64ex
Variable Default Description
ENGINE prompt (render96) render96 (Render96ex) or sm64ex โ€” aliases: r96, ex, sm64; also BASE/R96/SM64EX
ROM_ZIP auto-detect / prompt Path to .z64 / .n64 / .v64 / .zip
FINAL_DIR ~/Mario64 Install folder (prompt; empty = ~/Mario64)
BRANCH tester (r96) / master (ex) Base branch (override per engine)
JOBS nproc Parallel make jobs
SKIP_DEPS 0 1 to skip dep install
SKIP_MODELS 0 1 to skip model packs
FORCE 0 1 to force clean rebuild

First run

๐ŸŽจ HD textures/models

Already installed for both bases (Render96 packs).

๐Ÿงข Render96ex

Pause โ†’ DynOS โ†’ Packs โ†’ enable Render96_DynOS_v3.25

๐Ÿ“ฆ SM64EX / OMM

Options โ†’ Model Packs โ†’ Render96_DynOs_v3.25

๐Ÿ•น๏ธ Controls

Options โ†’ Controls โ€” keyboard or gamepad

~/Mario64/launch.sh # or render96-odyssey # Render96ex sm64ex-odyssey # SM64EX # or from your app menu: Super Mario 64 โ€” Render96 EX (Odyssey) / SM64EX (Odyssey + Render96 HD)

Requirements

Linux ยท unmodified Super Mario 64 (US) ROM ยท build tools auto-installed

The build verifies the ROM SHA1 (9bef1128717f958171a4afac3ed78ee2bb4e86ce) and aborts on a hacked/extended ROM. PortMaster is not used โ€” it targets handheld CFWs and has no desktop Linux port for Render96ex.

Copied to clipboard โœ“