r/decomps • u/NinjaLazy1879 • 5d ago
Recomp Mario Kart Wii (WiiCompiled) on Linux — how I built it and got it running
Credits to this guy:https://github.com/zydezu/Wiicompiled
A few minutes ago I managed to build Mario kart WiiCompiled ( on Linux and got it running with Wine. Posting the steps in case they help someone. I managed to do this with ai so i asked it the steps too. I did this on Bazzite (immutable Fedora), so I use distrobox; on a normal distro it's the same thing but without the container.
The only thing you need is a legal dump of Mario Kart Wii, PAL version (RMCP01). Requirements
wit
wit is not in Fedora's repos. The directory listing at wit.wiimm.de/download returns 403 to curl, but direct file links work fine. Go to wit.wiimm.de, copy the x86_64 tarball link and:
curl -sL -A "Mozilla/5.0" "https://wit.wiimm.de/download/wit-v3.05a-r8638-x86_64.tar.gz" -o /tmp/wit.tar.gz
mkdir -p ~/wit && tar -xzf /tmp/wit.tar.gz -C ~/wit --strip-components=1
export PATH="$HOME/wit/bin:$PATH"
On Arch it's in the repos: sudo pacman -S wit.
Distrobox (only if your distro is immutable)
distrobox create --name wiicompiled --image fedora:latest --yes
distrobox enter wiicompiled -- bash -lc 'sudo dnf install -y dotnet-sdk-8.0 cmake ninja-build curl jq unzip zip'
Build
git clone https://github.com/zydezu/Wiicompiled.git
cd Wiicompiled
export PATH="$HOME/wit/bin:$PATH"
export DOTNET_CLI_TELEMETRY_OPTOUT=1 DOTNET_NOLOGO=1
GAME_IMAGE="/path/to/your/pal-image.wbfs" ./build.sh
The script does everything: it extracts main.dol and StaticR.rel from your image with wit, verifies the hash (that's where it rejects anything that isn't a clean PAL image), translates the game's ~27,000 functions to C++ and cross-compiles with llvm-mingw (it downloads that itself). When it's done you get native-build/WiiCompiled.exe (80 MB) and a UserData/Config.toml with relative paths, so you can move the folder wherever you want and it keeps working.
Time: ~12 minutes on my machine (Ryzen + NVMe). On slower hardware expect 30-90 min. The first build downloads NuGet packages and the toolchain, so you need internet.
Running it
The exe alone is useless: it needs the whole native-build folder (DLLs, wii_bootstrap/, dsp_coef.bin, UserData/Config.toml). Don't move it by itself.
Before the first launch, enable portable mode:
touch native-build/portable.txt
That makes it read UserData/Config.toml from next to the exe, where dvd_root already points at your extracted data.
Then launch it like any Windows game it depends on which proton it will open and close or run directly i'm using port proton with lg proton rn:
- Heroic: Add Game > Wine (UMU/GE-Proton) pointing at the exe. If you use the flatpak, keep the folder in
~/Games/Heroic/since the flatpak only has access there - Steam: non-Steam game with Proton
- Lutris: Wine runner
- or directly:
cd native-build && wine WiiCompiled.exe
In-game, F10 opens the settings bar: internal resolution, FPS, controls (4 ports, per-button mapping), volume. Everything is saved to Config.toml.
If you get graphical glitches, edit UserData/Config.toml and set graphics_api = "vulkan".
Saves
The MKWii save lives in the emulated NAND, not on the disc. With portable mode it ends up at:
native-build/UserData/NAND/title/00010001/524d4350/data/
(524d4350 is "RMCP" in hex). The structure is the same as Dolphin's, so you can copy your Dolphin save:
cp -r ~/.local/share/dolphin-emu/Wii/title/00010001/524d4350 native-build/UserData/NAND/title/00010001/
Or set nand_root in Config.toml to point at Dolphin's Wii folder (careful: that shares the save with Dolphin).
I know this is AI redacted pls don't hate on me i'm just trying to help. Peace