Go to file
MegaMech 32632cacdb
Impl new intro (#193)
* Update menus

* Update CMakeLists.txt

* Add Ship

* Impl hm ship actors

* Update HM course

* Impl new intro

* Finish intro scene

* Rename

* Start Editor Work

* raycast works

* Fix ScreenRayTrace in widescreen

* Basic Actor Picking

* wip

* Editor use vtx collision

* gizmo work

* otr works for object picking

* Impl objects for editor

* actor init

* Update

* Add all axis move (freemove)

* Docking Windows works here

* Setup imgui layout for editor

* Editor Snap to Ground works

* Basic Scene Explorer Works

* Editor get actor names

* Impl editor object names

* impl Editor Play and Pause buttons

* Editor translate works while paused

* Fix freecam lighting

* Added adjustable track properties to editor

* Editor matrix, icons, rotation, impl light

* Setup Track Properties 1

* Editor tooling wip

* Load modded o2rs

* Don't enable hud if editor is enabled

* Updates

* SceneManager nearly working

* Fix mario kart 64 intro logo sizing

* Fix Rotator

* Finish new matrix translation code

* Cleanup headers

* Cleanup

* Cleanup 2

* Cleanup 3

* Prevent divize by zero crash

* Add visible circle for translate in all axis

* Editor scaling/rot works properly now

* Scale All_Axis evenly

* Fixes to includes to work on Linux.

* Removed overfilled arguments in gfx_create_framebuffer()

* Added missing function definitions to Game.h

* Editor sun face the camera

* Add rotation model to gizmo

* Add new handles

* Failed attempt at transforming collision

* Impl water volume

* Import fast64 paths

* water surface

* Scene Setup 1

* Custom Track O2R almost working needs testing

* Custom Track Load path O2r

* Render custom track. Wip collision

* Add missing function

* Debug Spawning Custom O2R Track

* Import courses working now

* Fix memory leak

* Remove New Track Button

* Engine.cpp more consistent with sf64

* Fix Editor Enable Button

* Editor Accurate mouse click drag objects

* Editor selects closest object and cleanup

* Gizmo rot and scale collision working

* Remove constexpr from IRotator

* Impl properties for location/rot/scale

* Better Properties display, swap rot handles

* Fix content browser dock and editor now disabled by default

* Remove GameInfoWindow, Multiplayer Button, and FPS Slider

* Disable Editor when its disabled

* Add new logo to hm intro

* Fix pause menu item box cursor

* Remove minimap from Course::from_json and to_json

* Impl Import Minimap

* Fix custom minimap rendering

* minimap uses extension .png

* Refactor minimap

* Freecam only for player 1

* GrandPrix Balloons work in custom track

* Track Id is now std::string and outside of Props

* Moved editor assets to be included in ship.o2r

* Fixed GenerateO2R to package the correct folder and save to the correct filename

* Linux specific changes.

* Added "#include <stdio.h>" that required them
* Changed how the "ship.o2r" file is loaded to allow it to load the file from within appimages.
* Changed the Linuxdeploy version to avoid errors later when the Github Actions creates appimages(same fix applied to other ports.)

* Revert "Moved editor assets to be included in ship.o2r"

This reverts commit 05704c01f7.

* Added back files(this time without LUS changes)

* Changed workflow file to use correct filename for assets file.

* Missed a few spots in the workflow file.

* Added .desktop file and made corrections to the main workflow.

* Added the rest of upstream CMakeLists.txt

* disabled USE_NETWORKING

* New InverseMatrix

* Renamed both .o2r files to be more accurate to its contents.

* Reverted CmakeList.txt

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
Co-authored-by: sitton76 <58642183+sitton76@users.noreply.github.com>
2025-05-14 18:30:32 -06:00
.github/workflows Impl new intro (#193) 2025-05-14 18:30:32 -06:00
asm Impl new intro (#193) 2025-05-14 18:30:32 -06:00
assets Impl new intro (#193) 2025-05-14 18:30:32 -06:00
cmake Impl new intro (#193) 2025-05-14 18:30:32 -06:00
courses Impl new intro (#193) 2025-05-14 18:30:32 -06:00
data A lot of fixes 2024-05-03 12:14:16 -06:00
docs Updating README.md 2025-02-08 10:46:29 -06:00
doxygen-awesome-css@28ed396de1 update all submodule (#21) 2024-07-27 20:42:07 -06:00
include Impl new intro (#193) 2025-05-14 18:30:32 -06:00
libultraship@58b0509905 update lus branch 2025-03-07 17:35:16 -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 Impl new intro (#193) 2025-05-14 18:30:32 -06:00
textures/crash_screen A lot of fixes 2024-05-03 12:14:16 -06:00
tools update with the decomp (#97) 2024-09-17 09:32:50 -06:00
torch@9d508fc94c Fixed MacOS Build 2025-03-07 18:32:15 -06:00
yamls/us Merge branch 'modding+' of https://github.com/HarbourMasters/SpaghettiKart into modding+ 2024-11-30 23:34:24 -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 Fixed MacOS Build 2025-03-07 18:32:15 -06:00
.gitmodules Modern Menu (#183) 2025-02-04 11:43:20 -07:00
CMakeLists.txt Impl new intro (#193) 2025-05-14 18:30:32 -06:00
Dockerfile update with the decomp (#97) 2024-09-17 09:32:50 -06:00
Doxyfile use github actions instead (#605) 2024-04-12 18:54:59 -06:00
Info.plist Fixed MacOS Build 2025-03-07 18:32:15 -06:00
Makefile Big 19750 renames 2024-12-31 13:04:39 -07:00
Makefile.split Linkage for the ceremony_data file (#478) 2023-10-27 22:18:20 -06:00
README.md Updated hash 2025-02-08 10:47:33 -06:00
SpaghettiKart.desktop Impl new intro (#193) 2025-05-14 18:30:32 -06:00
addr_to_sym.py Delete courses/cup folders and rename course related files (#432) 2023-09-20 17:17:24 -06:00
assets.json Add ymls for Torch code generator (#497) 2024-04-09 21:29:57 -06:00
config.yml Impl new intro (#193) 2025-05-14 18:30:32 -06:00
ctx_includes.c Big 19750 renames 2024-12-31 13:04:39 -07:00
diff Some matches in 80027D00 (#385) 2023-08-25 22:14:08 -06:00
diff_settings.py Document progress.py and correct readme (#483) 2023-11-05 13:57:14 -07:00
extract_assets.py add compatibilty for Windows build (#564) 2024-02-22 08:33:46 -07:00
first-diff.py Update from decomp (#34) 2024-08-22 18:20:13 -06:00
icon.png Fixed MacOS Build 2025-03-07 18:32:15 -06:00
import Matches in 80281fa0, render_courses, and create defines for sound cues. (#276) 2022-11-21 04:06:12 -07:00
lus-cvars.cmake Define default keyboard layout 2024-11-21 17:29:14 -07:00
m2c_helper.sh Big 19750 renames 2024-12-31 13:04:39 -07:00
mk64.eu-1.0.sha1 EU 1.0 OK (#265) 2023-10-19 23:37:21 -06:00
mk64.eu-final.sha1 EU 1.0 OK (#265) 2023-10-19 23:37:21 -06:00
mk64.ld update with the decomp (#97) 2024-09-17 09:32:50 -06:00
mk64.us.sha1 Initial commit 2020-10-14 21:13:33 -07:00
permute Matches in 80281fa0, render_courses, and create defines for sound cues. (#276) 2022-11-21 04:06:12 -07:00
permuter_settings.toml Turn D_802BFB80 into a union (#582) 2024-03-25 13:25:13 -04:00
progress.py Action Renames (#606) 2024-04-12 19:16:13 -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
rename_sym.sh Linkage for the ceremony_data file (#478) 2023-10-27 22:18:20 -06:00
test_blend.bat update with the decomp (#97) 2024-09-17 09:32:50 -06:00
undefined_syms.txt Update decomp (#63) 2024-08-24 18:39:52 -06:00
util.mk update with the decomp (#97) 2024-09-17 09:32:50 -06:00

README.md

SpaghettiKart

Developed by:

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 supported ROM is the USA 1.1 Rev A 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 1.0 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.
  • Copy your ROM to the root of the folder you extracted the zip to.
  • Run "generate_o2r.bat"

MacOS

  • Extract every file from the zip into a folder of your choosing.
  • Copy your ROM to the root of the folder you extracted the zip to.
  • Run "generate_o2r.sh"

4. Play!

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

Configuration

Default keyboard configuration

N64 A B Z Start Analog stick C buttons D-Pad
Keyboard X C Z Space WASD Arrow keys TFGH

Other shortcuts

Keys Action
F1 Toggle menubar
F11 Fullscreen
Tab Toggle Alternate assets
Ctrl+R Reset

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 .otr 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/.otr files, check out the following tools:

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.

Powered by libultraship