Skip to content
lazuli

lazuli

GAMECUBE WII EMULATOR

lazuli

Lazuli is a work-in-progress, open-source GameCube emulator written in Rust that boots multiple commercial titles and homebrew. It implements a Cranelift-based PowerPC JIT, a wgpu renderer, a DSP LLE interpreter, and an IPL HLE so games can boot without a separate IPL ROM.

gamecube wiiPRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

WHY IT MATTERS

Why Lazuli exists

Lazuli is a solo-driven reimplementation of a GameCube emulator built from the ground up in Rust. The project aims to experiment with a modern Rust codebase, Cranelift-based JIT compilation, and a developer-friendly debugging UI; long-term goals include expanding to Wii support.

BEST FOR

Notable features

Cranelift-based PowerPC JIT, JIT vertex parser, wgpu renderer backend, cpal audio backend, DSP low-level emulation (LLE) with a planned JIT for DSP, IPL high-level emulation (HLE) so an IPL ROM is not required for many games, support for .iso/.rvz/.ciso/.cso images, and an integrated debugging UI with breakpoints, memory watches, and GPU FIFO inspection.

The people behind lazuli

Project status and history

The official repository describes Lazuli as a toy-stage emulator that nevertheless boots multiple commercial GameCube titles (examples listed in the repository include Super Mario Sunshine, Luigi's Mansion, The Wind Waker, Crash Bandicoot: The Wrath of Cortex, and WarioWare). Development is active on the GitHub repository; the codebase is a ground-up reimplementation (no Dolphin code) and the README explicitly notes that Wii support is a long-term goal rather than currently available. The project is licensed primarily under GPLv3 with some crates under MIT. The repository contains build instructions and daily/nightly prebuilt releases for Windows and Linux, with macOS supported on a best-effort basis.

What lazuli supports

  • Windows (official/nightly builds and build-from-source)
  • Linux (official/nightly builds and build-from-source)
  • macOS (best-effort support; macOS binaries require removing quarantine when downloaded)
  • Game formats: .iso, .rvz, .ciso/.cso

Download and availability

OFFICIAL DOWNLOADS

Get lazuli

Official prebuilt Nightly builds and release artifacts are published on the repository's Releases tab. Alternatively, build from source using the project’s Rust toolchain instructions.

Get lazuli ↗

DOCUMENTATION

Official documentation

Read the official configuration, compatibility, and troubleshooting material before changing advanced options.

Read official documentation ↗
Broken or missing download? Emulator projects move and official links sometimes change. Please contact Retro Replay so the source can be verified and updated.

lazuli setup guide

Setup note: The repository README provides explicit build and run steps. Lazuli supports running games without a separate IPL ROM via IPL HLE, but can accept an IPL ROM for IPL-LLE boot. The build requires Rust nightly and the just command runner; a small helper binary (ipl-hle) is built first and embedded into the main executable.

  1. 1) Obtain source or a prebuilt: Either download a prebuilt binary from the repository Releases tab or clone the official GitHub repo (https://github.com/vxpm/lazuli) and build from source.
  2. 2) Prepare toolchain (build-from-source only): Install Rust and rustup. Lazuli requires a nightly Rust toolchain (the repo provides rust-toolchain.toml). Install the just command runner (used by the project). Verify cargo and rustup are available on PATH.
  3. 3) Build the embedded IPL helper: From the repository workspace run: just ipl-hle build. That generates an ipl-hle.dol inside a local/ directory which is embedded into the main lazuli executable.
  4. 4) Build the main app: Build the main binary with cargo build. For optimized builds use cargo build –release. The output executable will be located under target/<chosen_profile> as described by the workspace profile.
  5. 5) Running Lazuli: Run lazuli from a terminal with the –rom flag to point to your GameCube image: lazuli –rom path/to/game.iso. Supported image formats include .iso, .rvz, and compressed .ciso/.cso.
  6. 6) Optional: supply an IPL ROM: Lazuli provides IPL HLE so an IPL/BIOS is not required for most games. If you need IPL LLE functionality or want to boot to the system menu, pass –ipl path/to/ipl.bin or use –ipl-lle to force LLE IPL boot. Lazuli does not include any IPL/BIOS files.
  7. 7) Platform-specific notes: Windows and Linux are first-class supported platforms for releases and builds. For macOS downloads extracted from a nightly zip, remove macOS quarantine before running: xattr -d com.apple.quarantine lazuli.
  8. 8) Input and debugging: Lazuli auto-selects a connected gamepad as the active input; keyboard is used otherwise. The README documents current keyboard mappings and notes mappings are not configurable yet. The integrated UI provides debugging features (breakpoints, memory watches, GPU FIFO inspection) accessible via the view menu in the app.

Software reminder: Lazuli does not include commercial games, firmware, IPL/BIOS files, or other copyrighted content. If you provide an IPL ROM or game images, ensure you have the legal right to use them.

Sources and further reading

Detailed guides and tutorials

Explore step-by-step guides for lazuli as they are published.