Warning
This is a community port of the original SpaghettiKart PC port specifically geared towards an Xbox One and Xbox Series X|S release via UWP (Universal Windows Platform) in Developer Mode.
Please DO NOT open issues on the upstream SpaghettiKart repository or Harbour Masters repositories for any bugs, crashes, or issues you encounter while using or building this Xbox port. Direct all Xbox-related issues to this repository's issue tracker.
SpaghettiKartX brings the Harbour Masters SpaghettiKart project — a native PC port of Mario Kart 64 — to the Xbox One, Xbox Series S, and Xbox Series X family of consoles. It leverages the n64-decomp/mariokart64 decompilation, using libultraship alongside Mesa Gallium OpenGL translation over DirectX 12 for console-native rendering, low-latency SDL2 audio, and native controller input.
Runs natively on Xbox One, Xbox One S/X, Xbox Series S, and Xbox Series X via Xbox Developer Mode.
None of Nintendo's assets (code, textures, audio, models, text, ROM data) are checked into this repo or distributed with builds. The port is a pure C/C++ source tree; every byte of Nintendo-owned data must be extracted at build time or first launch from a legally owned US Mario Kart 64 ROM dump (.z64) that you supply. If you do not own a legal copy of Mario Kart 64 for the Nintendo 64, you cannot build or run this project.
The application includes an integrated, controller-driven Boot Menu that automatically prompts you to select and extract your ROM into the required mk64.o2r asset archive on first launch.
- An Xbox console (Xbox One, Xbox One S/X, Xbox Series S, or Xbox Series X) with Developer Mode activated.
- A PC connected to the same local network as your Xbox.
- A clean, legally dumped copy of Mario Kart 64 (USA) in
.z64format (SHA-1:579C48E211AE952530FFC8738709F078D5DD215E).
- Power on your Xbox and launch the Dev Home dashboard.
- Note the Windows Device Portal (WDP) URL displayed on the top-right corner of the Dev Home screen (e.g.,
https://192.168.1.xxx:11443). - On your PC, open a web browser and navigate to your Xbox's Device Portal URL.
- Under the Apps section, click Add.
- Select
SpaghettiKartX_x64.msixand deploy the package.
- Launch SpaghettiKart from your Xbox dashboard.
- If
mk64.o2rhas not yet been generated, the SpaghettiKart Boot Menu will appear. - Place your
Mario Kart 64 (USA).z64ROM file intoD:\SpaghettiKart\(via the Device Portal File Explorer underDevelopmentFiles) or on an external USB flash drive (E:\SpaghettiKart\). - Select your ROM and storage destination using the Xbox controller, then choose Extract.
- The extractor will verify your ROM checksum and compile
mk64.o2rdirectly on the console (typically takes 1–2 minutes). - Once extraction completes, select Launch Game to jump straight to the title screen!
SpaghettiKartX features full support for custom assets, character skins, custom courses, and HD texture packs!
- High-Res Texture Packs: Place HD texture
.ziparchives (or loose folders) directly into themods/directory located in your storage root (e.g.,D:\SpaghettiKart\mods\). - Custom Characters & Tracks: Drop any packaged
.o2rmod archives into themods/folder. - Instant Loading: Installed mods are loaded on game boot.
Storage directory layout:
D:\SpaghettiKart\
+-- mk64.o2r
+-- spaghetti.o2r
+-- spaghettify.cfg.json
+-- mods/
+-- hd_textures.zip
+-- custom_course.o2r
All port enhancements, cheats, gameplay tweaks, and audio controls are accessible via the in-game Port Menu Bar.
- To toggle the menu: Press the View button (the button with two overlapping squares / Back) on your Xbox controller at any time during gameplay.
- Controller Navigation:
- D-Pad / Left Stick: Move cursor between menu items and sliders.
- A Button: Select item, check boxes, or activate toggles.
- B Button: Close open dropdowns or submenus.
- Key Enhancements:
- 60fps Interpolation: Fluid 60fps racing physics with frame interpolation.
- Widescreen Mode: True 16:9 widescreen presentation.
- Audio Controls: Master, BGM, and SFX volume sliders.
- Fast3D Enhancements: Internal resolution scaling and texture filtering options.
- Console-Native Rendering: Fast3D OpenGL pipeline translated through Mesa Gallium WGL to DirectX 12 for reliable hardware acceleration on Xbox OS.
- Full Widescreen Support: Native 16:9 widescreen gameplay, perfectly filling TV screens without stretching.
- Xbox Controller Integration: Fully mapped Xbox controller inputs out of the box with seamless menu bar navigation.
- Auxiliary Storage Manager: Persistent configurations, save files, logs, and mods routed to console storage (
D:\SpaghettiKart\or USB drive). - Graceful Delay-Loading: Custom Win32 delay-load thunks prevent Xbox PE loader import errors on desktop-only APIs.
- Visual Studio 2022 with the following workloads installed:
- Desktop development with C++
- Universal Windows Platform development (v143 toolset and Windows 10/11 SDK
10.0.26100.0or10.0.19041.0)
- CMake (3.24 or newer)
- Git
-
Clone the repository and submodules:
git clone --recursive https://github.com/KawaiiBunga/SpaghettiKartX.git cd SpaghettiKartX -
Compile the Spaghettify Engine DLL:
msbuild _ref\SpaghettiKart-src\build-win32\Spaghettify.vcxproj /p:Configuration=Release /p:Platform=x64 /m
-
Build the SpaghettiKartX UWP MSIX Package:
msbuild SpaghettiKartX.vcxproj /p:Configuration=Release /p:Platform=x64 /p:AppxBundle=Never /m
-
Sign the Package:
signtool sign /fd SHA256 /a /f SpaghettiKartX_TemporaryKey.pfx /p SpaghettiKartX AppPackages\SpaghettiKartX\SpaghettiKartX_1.0.10.0_x64_Test\SpaghettiKartX_1.0.10.0_x64.msix
-
Deploy to Console:
WinAppDeployCmd install -file "AppPackages\SpaghettiKartX\SpaghettiKartX_1.0.10.0_x64_Test\SpaghettiKartX_1.0.10.0_x64.msix" -ip <your-xbox-ip>
- Harbour Masters & Kenix3: Creators of SpaghettiKart and libultraship.
- mk64 Decomp Team: For the reverse engineering and decompilation of Mario Kart 64.
- SternXD & worleydl: For the UWP Xbox porting foundation and boot menu architecture from 2Ship2Harkinian-UWP.
I love what I do and want to keep sharing it with the world. You can directly support me and my projects here: https://ko-fi.com/kawaiibunga