No description
Find a file
AltoXorg db01cf3d6f
Some checks failed
clang-format Check / Formatting Check (push) Has been cancelled
clang-format PR / formatting-check (push) Has been cancelled
Doxygen GitHub Pages Deploy Action / deploy (push) Has been cancelled
GenerateBuilds / generate-port-o2r (push) Has been cancelled
GenerateBuilds / build-windows (Debug) (push) Has been cancelled
GenerateBuilds / build-windows (Release) (push) Has been cancelled
GenerateBuilds / build-macos (Debug) (push) Has been cancelled
GenerateBuilds / build-macos (Release) (push) Has been cancelled
GenerateBuilds / build-linux (Debug) (push) Has been cancelled
GenerateBuilds / build-linux (Release) (push) Has been cancelled
GenerateBuilds / build-linux-old (Debug) (push) Has been cancelled
GenerateBuilds / build-linux-old (Release) (push) Has been cancelled
GenerateBuilds / build-linux-docker (Debug) (push) Has been cancelled
GenerateBuilds / build-linux-docker (Release) (push) Has been cancelled
GenerateBuilds / build-switch (Debug) (push) Has been cancelled
GenerateBuilds / build-switch (Release) (push) Has been cancelled
Fix non-portable (#532)
* Fix for non-portable builds

* submodule update Torch, [TEMP] libultraship

* submodule update libultraship

* place assets in exe's dir on post build
2025-08-09 11:25:46 -06:00
.github/workflows fix some compilation issue (#511) 2025-07-26 09:17:57 -06:00
assets fix(shader/metal): correct noise coords and frame input in fragmentShader 2025-07-25 19:39:48 -06:00
cmake Impl new intro (#193) 2025-05-14 18:30:32 -06:00
courses pr Code 80005fd0 (#181) 2025-06-19 16:26:04 -06:00
docs Adds information about what each sequence file does. (#500) 2025-07-29 07:07:29 -06:00
doxygen-awesome-css@9760c30014 Enable link-time optimization 2025-07-18 11:58:48 +02:00
include Adds information about what each sequence file does. (#500) 2025-07-29 07:07:29 -06:00
libultraship@09dfab5fb2 Fix non-portable (#532) 2025-08-09 11:25:46 -06:00
models Impl new intro (#193) 2025-05-14 18:30:32 -06:00
mods [modding] Implement jumbtron fb effect (#125) 2024-11-15 03:02:20 -07:00
port/assets/fonts Fix Compile (#188) 2025-02-07 23:48:36 -07:00
src Fix non-portable (#532) 2025-08-09 11:25:46 -06:00
tools properly Fix ci (#233) 2025-06-19 20:12:39 -06:00
torch@cd92cc0f16 Fix non-portable (#532) 2025-08-09 11:25:46 -06:00
yamls/us Adds information about what each sequence file does. (#500) 2025-07-29 07:07:29 -06:00
.clang-format Update decomp clang (#67) 2024-08-27 17:47:39 -06:00
.clang-tidy Update decomp clang (#67) 2024-08-27 17:47:39 -06:00
.editorconfig Memory and Actor decomp (#201) 2022-05-14 15:12:32 -07:00
.gitattributes Add building on macOS (#224) 2022-06-15 17:26:03 -07:00
.gitignore Add basic documentation (#416) 2025-07-04 19:30:04 -06:00
.gitmodules Remove unused submodules (#226) 2025-06-16 16:33:31 -06:00
addr_to_sym.py Delete courses/cup folders and rename course related files (#432) 2023-09-20 17:17:24 -06:00
CMakeLists.txt Fix non-portable (#532) 2025-08-09 11:25:46 -06:00
config.yml Impl new intro (#193) 2025-05-14 18:30:32 -06:00
Dockerfile Docker: Use latest cmake release 2025-07-04 11:17:06 +02:00
Doxyfile re add the doxyfile who get remove (#365) 2025-06-25 09:03:35 -06:00
ExecutableResource.h Pr before release (#239) 2025-06-20 16:54:31 -06:00
extract_assets.py add compatibilty for Windows build (#564) 2024-02-22 08:33:46 -07:00
icon.png Fixed MacOS Build 2025-03-07 18:32:15 -06:00
Info.plist Fixed MacOS Build 2025-03-07 18:32:15 -06:00
lus-cvars.cmake Define default keyboard layout 2024-11-21 17:29:14 -07:00
progress.py Action Renames (#606) 2024-04-12 19:16:13 -06:00
properties.h Pr before release (#239) 2025-06-20 16:54:31 -06:00
properties.h.in Pr before release (#239) 2025-06-20 16:54:31 -06:00
python_convert.py place surface type const and unassemble flag in vtx and document effects (#553) 2024-01-20 21:22:35 -07:00
README.md Update README.md 2025-07-19 14:36:19 +02:00
rename_sym.sh Linkage for the ceremony_data file (#478) 2023-10-27 22:18:20 -06:00
Resource.rc Pr before release (#239) 2025-06-20 16:54:31 -06:00
SpaghettiKart.desktop Impl new intro (#193) 2025-05-14 18:30:32 -06:00
spaghettikart.ico Pr before release (#239) 2025-06-20 16:54:31 -06:00
spaghettikart.manifest Pr before release (#239) 2025-06-20 16:54:31 -06:00
test_blend.bat update with the decomp (#97) 2024-09-17 09:32:50 -06:00
valgrind_callgrind.sh make some texture more flexible and editable + port documentation from the decomp + fix some bug (#309) 2025-07-01 17:42:14 -06:00
vcpkg.json Add vcpkg.json, change MacOS CI to use that (#346) 2025-06-24 10:50:46 -06:00

Spaghetti Kart Spaghetti Kart

Help Wanted!

This project is looking for a C or C++ coder interested in making a couple scrollable menus that can have lots of items in it. As a method to display custom content does not exist. A tick/render system for custom menus already exists. So just someone willing to build out the menu.

Discord

Official Discord: https://discord.com/invite/shipofharkinian

If you're having any trouble after reading through this README, feel free ask for help in the SpaghettiKart Support text channels. Please keep in mind that we do not condone piracy.

Quick Start

SpaghettiKart does not include any copyrighted assets. You are required to provide a supported copy of the game.

1. Verify your ROM dump

The US ROM is the only supported version. You can verify you have dumped a supported copy of the game by using the SHA-1 File Checksum Online at https://www.romhacking.net/hash/. The hash for a US ROM is SHA-1: 579C48E211AE952530FFC8738709F078D5DD215E.

2. Verify your ROM is in .z64 format

Your ROM needs to be in .z64 format. If it's in .n64 format, use the following to convert it to a .z64: https://hack64.net/tools/swapper.php

2. Download SpaghettiKart from Releases

3. Generating the O2R from the ROM

Windows

  • Extract every file from the zip into a folder of your choosing.
  • Run "Spaghettify.exe" and select your US ROM.

Linux

  • Extract every file from the zip into a folder of your choosing.
  • Ensure zenity or kdialog package is installed.
  • Run "spaghetti.appimage" and select your US ROM. You may have to chmod +x the appimage via terminal.

Nintendo Switch

  • Run one of the PC releases to generate an mk64.o2r file. After launching the game on PC, you will be able to find these files in the same directory as Spaghettify.exe or spaghetti.appimage.
  • Copy the files to your sd card

4. Play!

  • Launch Spaghettify.exe Congratulations, you are now sailing with SpaghettiKart! Have fun!

Configuration

Default controls configuration

N64 A B L R Z Start Analogue stick C buttons D-Pad
Keyboard Shift Ctrl Q Space Z Enter Arrow keys TGFH (↑ ↓ ← →) Num 8 2 4 6
SDL Gamepad A X LB RB LT Start L-Stick R-Stick Up, B, Y, R-Stick Right (↑ ↓ ← →) D-Pad

Other shortcuts

Keys Action
F11 Fullscreen
Tab Toggle Alternate assets
Ctrl+R Reset
Esc Settings

Graphics Backends

Currently, there are three rendering APIs supported: DirectX11 (Windows), OpenGL (all platforms), and Metal (macOS). You can change which API to use in the Settings menu of the menubar, which requires a restart. If you're having an issue with crashing, you can change the API in the spaghettify.cfg.json file by finding the line "Backend":{... and changing the id value to 3 and set the Name to OpenGL. DirectX 11 with id 2 is the default on Windows. Metal with id 4 is the default on macOS.

Custom Assets

Custom assets are packed in .o2r or stored .zip files. To use custom assets, place them in the mods folder.

If you're interested in creating and/or packing your own custom asset .o2r files, check out the following tools:

Note that .otr archives are not supported in SpaghettiKart!

Development

Building

If you want to manually compile SpaghettiKart, please consult the building instructions.

Playtesting

If you want to playtest a continuous integration build, you can find them at the links below. Keep in mind that these are for playtesting only, and you will likely encounter bugs and possibly crashes.

Maintainers: MegaMech, Coco, Kirito

Powered by libultraship