Case study
SpaghettiKart: a native Mario Kart 64 port built on decompiled source
Builds a native Mario Kart 64 port for Windows, Linux, macOS and Switch from source that keeps the Mario Kart 64 decompilation’s file layout, running on libultraship’s reimplemented N64 SDK. Its bundled Torch extractor converts the user’s US ROM into an asset archive, and the port adds mods, custom tracks and an editor. The README does not name its upstream decompilation, and no matching or fidelity checks are published.
- Targets
- Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: Supports only the US ROM with SHA-1 579C48E211AE952530FFC8738709F078D5DD215E in .z64 byte order. The bundled extractor converts that user-supplied ROM into mk64.o2r; the README states that SpaghettiKart includes no copyrighted assets, and the Switch build reuses an archive generated by a PC release.
- Prerequisites: Source builds need submodules (libultraship, Torch, fast64 and others), CMake 3.16+ and Python 3. Windows uses Visual Studio 2022 with the v143 toolset and at least 8 GB of RAM; Linux needs GCC or Clang with SDL2, libzip, tinyxml2, spdlog, Boost and Ogg/Vorbis packages. Rendering backends are DirectX 11 on Windows, OpenGL on all platforms and Metal on macOS.
- Scope: The README does not name its upstream, but the tree keeps the Mario Kart 64 decompilation’s src/, course, extraction and progress-tooling layout, while new engine and port directories add C++ systems, mod loading, custom tracks and the unfinished HM64 Labs editor. Release 1.0.0 “Bolognese Alfa” (February 2026) is the latest stable release; nightly CI builds are for playtesting only.
- Testing evidence: CI compiles Windows, Linux and macOS packages and packs the project’s own spaghetti.o2r; no ROM-based test, matching check or gameplay comparison is published. The FAQ records limits such as eight racers and eight selectable characters, limited HD texture support and no online play.
- License: The reviewed tree has no top-level license file, so reuse terms for the project’s code are unstated; libultraship and Torch declare MIT, and Nintendo content retains separate rights.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · HarbourMasters/SpaghettiKart · Revision 5073d2e
- docs/BUILDING.md GitHub · HarbourMasters/SpaghettiKart · Revision 5073d2e
- docs/faq.md GitHub · HarbourMasters/SpaghettiKart · Revision 5073d2e
- CMakeLists.txt GitHub · HarbourMasters/SpaghettiKart · Revision 5073d2e
- .gitmodules GitHub · HarbourMasters/SpaghettiKart · Revision 5073d2e
- .github/workflows/main.yml GitHub · HarbourMasters/SpaghettiKart · Revision 5073d2e
- .github/workflows/linux-compile.yml GitHub · HarbourMasters/SpaghettiKart · Revision 5073d2e
- README.md GitHub · Kenix3/libultraship · Revision 60c9bb7
- README.md GitHub · HarbourMasters/Torch · Revision 2d474dd
- https://github.com/HarbourMasters/SpaghettiKart/releases/tag/1.0.0
More in Games
- Starship: a Star Fox 64 PC port built from the decompilation · Case study
- Super Mario Sunshine: a native PC port from an AI-assisted decompilation · Case study
- TH08 Web: a WebAssembly port built from reconstructed source · Case study
- TonyWasAProSkater: a THPS1 native port forked from a matching decompilation · Case study
- Vandal Hearts: native PC port built on matching decompilations · Case study
- Age of Empires Free Software Remake: a re-implementation on the original data · Case study