├── .clang-format ├── .clang-tidy ├── .editorconfig ├── .gitattributes ├── .github └── workflows │ ├── android-compile.yml │ ├── clang-format-suggest.yml │ ├── clang-format.yml │ ├── clang-pr.yml │ ├── doxygen-and-linux-test.yml │ ├── linux-compile.yml │ ├── macos-compile.yml │ ├── main.yml │ ├── release.yml │ └── windows-compile.yml ├── .gitignore ├── .gitmodules ├── CMakeLists.txt ├── Dockerfile ├── Doxyfile ├── ExecutableResource.h ├── Info.plist ├── README.md ├── Resource.rc ├── SpaghettiKart.desktop ├── addr_to_sym.py ├── android ├── .gitignore ├── app │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ ├── gamecontrollerdb.txt │ │ └── mods │ │ │ └── place_mods_here.txt │ │ ├── ic_launcher-playstore.png │ │ ├── java │ │ ├── com │ │ │ └── izzy │ │ │ │ └── kart │ │ │ │ ├── AssetCopyUtil.java │ │ │ │ ├── ControllerButtons.java │ │ │ │ └── MainActivity.java │ │ └── org │ │ │ └── libsdl │ │ │ └── app │ │ │ ├── HIDDevice.java │ │ │ ├── HIDDeviceBLESteamController.java │ │ │ ├── HIDDeviceManager.java │ │ │ ├── HIDDeviceUSB.java │ │ │ ├── SDL.java │ │ │ ├── SDLActivity.java │ │ │ ├── SDLAudioManager.java │ │ │ ├── SDLControllerManager.java │ │ │ └── SDLSurface.java │ │ └── res │ │ ├── drawable │ │ ├── dialog_background.xml │ │ ├── ic_button.xml │ │ ├── ic_cross.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── ic_rectangular_button.xml │ │ ├── ic_show.xml │ │ ├── ic_stick.xml │ │ ├── ic_trigger_button_left.xml │ │ └── ic_trigger_button_right.xml │ │ ├── layout │ │ └── touchcontrol_overlay.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.webp │ │ ├── ic_launcher_foreground.webp │ │ └── ic_launcher_round.webp │ │ └── values │ │ ├── colors.xml │ │ ├── ic_launcher_background.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── assets ├── editor │ ├── gizmo │ │ ├── center_handle │ │ ├── center_handle_tri_0 │ │ ├── center_handle_vtx_0 │ │ ├── center_handle_vtx_cull │ │ ├── mat_center_handle_f3dlite_material │ │ ├── mat_revert_center_handle_f3dlite_material │ │ ├── mat_revert_rot_handle_blue_f3dlite_material │ │ ├── mat_revert_rot_handle_green_f3dlite_material │ │ ├── mat_revert_rot_handle_green_f3dlite_material_002 │ │ ├── mat_revert_rot_handle_red_f3dlite_material │ │ ├── mat_revert_rotate_handle_red_f3dlite_material │ │ ├── mat_revert_scale_handle_blue_f3dlite_material │ │ ├── mat_revert_scale_handle_blue_f3dlite_material_001 │ │ ├── mat_revert_scale_handle_green_f3dlite_material_001 │ │ ├── mat_revert_scale_handle_red_f3dlite_material_001 │ │ ├── mat_revert_translate_handle_blue_f3dlite_material │ │ ├── mat_revert_translate_handle_green_f3dlite_material │ │ ├── mat_revert_translate_handle_red_f3dlite_material │ │ ├── mat_rot_handle_blue_f3dlite_material │ │ ├── mat_rot_handle_green_f3dlite_material │ │ ├── mat_rot_handle_green_f3dlite_material_002 │ │ ├── mat_rot_handle_red_f3dlite_material │ │ ├── mat_rotate_handle_red_f3dlite_material │ │ ├── mat_scale_handle_blue_f3dlite_material │ │ ├── mat_scale_handle_blue_f3dlite_material_001 │ │ ├── mat_scale_handle_green_f3dlite_material_001 │ │ ├── mat_scale_handle_red_f3dlite_material_001 │ │ ├── mat_translate_handle_blue_f3dlite_material │ │ ├── mat_translate_handle_green_f3dlite_material │ │ ├── mat_translate_handle_red_f3dlite_material │ │ ├── model.xml │ │ ├── rot_handle_blue │ │ ├── rot_handle_blue_tri_0 │ │ ├── rot_handle_blue_vtx_0 │ │ ├── rot_handle_blue_vtx_cull │ │ ├── rot_handle_green │ │ ├── rot_handle_green_tri_0 │ │ ├── rot_handle_green_vtx_0 │ │ ├── rot_handle_green_vtx_cull │ │ ├── rot_handle_red │ │ ├── rot_handle_red_tri_0 │ │ ├── rot_handle_red_vtx_0 │ │ ├── rot_handle_red_vtx_cull │ │ ├── rotate_handle_red │ │ ├── rotate_handle_red_tri_0 │ │ ├── rotate_handle_red_vtx_0 │ │ ├── rotate_handle_red_vtx_cull │ │ ├── scale_handle_blue │ │ ├── scale_handle_blue_tri_0 │ │ ├── scale_handle_blue_vtx_0 │ │ ├── scale_handle_blue_vtx_cull │ │ ├── scale_handle_green │ │ ├── scale_handle_green_tri_0 │ │ ├── scale_handle_green_vtx_0 │ │ ├── scale_handle_green_vtx_cull │ │ ├── scale_handle_red │ │ ├── scale_handle_red_tri_0 │ │ ├── scale_handle_red_vtx_0 │ │ ├── scale_handle_red_vtx_cull │ │ ├── translate_handle_blue │ │ ├── translate_handle_blue_tri_0 │ │ ├── translate_handle_blue_vtx_0 │ │ ├── translate_handle_blue_vtx_cull │ │ ├── translate_handle_green │ │ ├── translate_handle_green_tri_0 │ │ ├── translate_handle_green_vtx_0 │ │ ├── translate_handle_green_vtx_cull │ │ ├── translate_handle_red │ │ ├── translate_handle_red_tri_0 │ │ ├── translate_handle_red_vtx_0 │ │ └── translate_handle_red_vtx_cull │ ├── light │ │ ├── mat_revert_sun_arrow_f3dlite_material_001 │ │ ├── mat_revert_sun_arrow_f3dlite_material_002 │ │ ├── mat_sun_arrow_f3dlite_material_001 │ │ ├── mat_sun_arrow_f3dlite_material_002 │ │ ├── model.xml │ │ ├── sun_arrow │ │ ├── sun_arrow_tri_0 │ │ ├── sun_arrow_vtx_0 │ │ └── sun_arrow_vtx_cull │ └── water │ │ ├── mat_revert_water_plane_f3dlite_material │ │ ├── mat_water_plane_f3dlite_material │ │ ├── model.xml │ │ ├── water_plane │ │ ├── water_plane_tri_0 │ │ ├── water_plane_vtx_0 │ │ └── water_plane_vtx_cull ├── fonts │ ├── Fipps-Regular.otf │ ├── Inconsolata-Regular.ttf │ ├── Montserrat-Regular.ttf │ └── PressStart2P-Regular.ttf ├── gizmo │ ├── gizmo_center_button │ ├── gizmo_center_button_tri_0 │ ├── gizmo_center_button_vtx_0 │ ├── gizmo_center_button_vtx_cull │ ├── mat_gizmo_center_button_gizmo_center_button │ ├── mat_scale_handle_f3dlite_material │ ├── model.xml │ ├── scale_handle │ ├── scale_handle_tri_0 │ ├── scale_handle_vtx_0 │ └── scale_handle_vtx_cull ├── hmintro │ ├── gradientbottom.rgba16 │ ├── lusgrade.rgba16 │ ├── mat_poweredbylus_lus │ ├── mat_poweredbylus_power │ ├── mat_revert_poweredbylus_lus │ ├── mat_revert_poweredbylus_power │ ├── poweredbylus │ ├── poweredbylus_tri_0 │ ├── poweredbylus_tri_1 │ ├── poweredbylus_vtx_0 │ ├── poweredbylus_vtx_1 │ └── poweredbylus_vtx_cull ├── shaders │ ├── directx │ │ └── default.shader.hlsl │ ├── metal │ │ └── default.shader.metal │ └── opengl │ │ ├── default.shader.fs │ │ └── default.shader.vs ├── textures │ ├── buttons │ │ ├── ABtn.png │ │ ├── BBtn.png │ │ ├── CDown.png │ │ ├── CLeft.png │ │ ├── CRight.png │ │ ├── CUp.png │ │ ├── LBtn.png │ │ ├── RBtn.png │ │ ├── StartBtn.png │ │ └── ZBtn.png │ ├── icons │ │ └── gIcon.png │ └── virtual │ │ └── gEmptyTexture.rgba32.png └── tracks │ └── harbour │ ├── ARmosMap.rgba16 │ ├── Cube.002_mesh │ ├── Cube.002_mesh_tri_0 │ ├── Cube.002_mesh_tri_1 │ ├── Cube.002_mesh_tri_2 │ ├── Cube.002_mesh_tri_3 │ ├── Cube.002_mesh_tri_4 │ ├── Cube.002_mesh_vtx_0 │ ├── Cube.002_mesh_vtx_1 │ ├── Cube.002_mesh_vtx_2 │ ├── Cube.002_mesh_vtx_3 │ ├── Cube.002_mesh_vtx_4 │ ├── Cube.002_mesh_vtx_cull │ ├── Harbour 0.6.blend │ ├── bark2.rgba16 │ ├── bars1.rgba16 │ ├── beware.rgba16 │ ├── brick1.rgba16 │ ├── coffins.rgba16 │ ├── data_paths │ ├── data_track_sections │ ├── door1.rgba16 │ ├── fence.rgba32 │ ├── flag.rgba16 │ ├── flowers1.rgba32 │ ├── gallows.rgba16 │ ├── grayishtoblue.ci8 │ ├── heart1.ci8 │ ├── keyboardArt.i8 │ ├── leaf.rgba16 │ ├── leaves1.rgba32 │ ├── map.001_mesh │ ├── map.001_mesh_tri_0 │ ├── map.001_mesh_vtx_0 │ ├── map.001_mesh_vtx_cull │ ├── map.002_mesh │ ├── map.002_mesh_tri_0 │ ├── map.002_mesh_tri_1 │ ├── map.002_mesh_tri_2 │ ├── map.002_mesh_tri_3 │ ├── map.002_mesh_tri_4 │ ├── map.002_mesh_tri_5 │ ├── map.002_mesh_vtx_0 │ ├── map.002_mesh_vtx_1 │ ├── map.002_mesh_vtx_2 │ ├── map.002_mesh_vtx_3 │ ├── map.002_mesh_vtx_4 │ ├── map.002_mesh_vtx_5 │ ├── map.002_mesh_vtx_cull │ ├── map.003_mesh │ ├── map.003_mesh_tri_0 │ ├── map.003_mesh_tri_1 │ ├── map.003_mesh_vtx_0 │ ├── map.003_mesh_vtx_1 │ ├── map.003_mesh_vtx_cull │ ├── map.004_mesh │ ├── map.004_mesh_tri_0 │ ├── map.004_mesh_tri_1 │ ├── map.004_mesh_tri_2 │ ├── map.004_mesh_vtx_0 │ ├── map.004_mesh_vtx_1 │ ├── map.004_mesh_vtx_2 │ ├── map.004_mesh_vtx_cull │ ├── map.005_mesh │ ├── map.005_mesh_tri_0 │ ├── map.005_mesh_tri_1 │ ├── map.005_mesh_tri_2 │ ├── map.005_mesh_tri_3 │ ├── map.005_mesh_tri_4 │ ├── map.005_mesh_vtx_0 │ ├── map.005_mesh_vtx_1 │ ├── map.005_mesh_vtx_2 │ ├── map.005_mesh_vtx_3 │ ├── map.005_mesh_vtx_4 │ ├── map.005_mesh_vtx_cull │ ├── map_mesh │ ├── map_mesh_tri_0 │ ├── map_mesh_tri_1 │ ├── map_mesh_tri_10 │ ├── map_mesh_tri_11 │ ├── map_mesh_tri_12 │ ├── map_mesh_tri_13 │ ├── map_mesh_tri_14 │ ├── map_mesh_tri_15 │ ├── map_mesh_tri_16 │ ├── map_mesh_tri_17 │ ├── map_mesh_tri_2 │ ├── map_mesh_tri_3 │ ├── map_mesh_tri_4 │ ├── map_mesh_tri_5 │ ├── map_mesh_tri_6 │ ├── map_mesh_tri_7 │ ├── map_mesh_tri_8 │ ├── map_mesh_tri_9 │ ├── map_mesh_vtx_0 │ ├── map_mesh_vtx_1 │ ├── map_mesh_vtx_10 │ ├── map_mesh_vtx_11 │ ├── map_mesh_vtx_12 │ ├── map_mesh_vtx_13 │ ├── map_mesh_vtx_14 │ ├── map_mesh_vtx_15 │ ├── map_mesh_vtx_16 │ ├── map_mesh_vtx_17 │ ├── map_mesh_vtx_2 │ ├── map_mesh_vtx_3 │ ├── map_mesh_vtx_4 │ ├── map_mesh_vtx_5 │ ├── map_mesh_vtx_6 │ ├── map_mesh_vtx_7 │ ├── map_mesh_vtx_8 │ ├── map_mesh_vtx_9 │ ├── map_mesh_vtx_cull │ ├── marble1.rgba16 │ ├── mat_mk64_HM │ ├── mat_mk64__64 │ ├── mat_mk64_bark1 │ ├── mat_mk64_beware │ ├── mat_mk64_black │ ├── mat_mk64_coffin │ ├── mat_mk64_dock │ ├── mat_mk64_door1 │ ├── mat_mk64_eye2 │ ├── mat_mk64_f3d_material_001 │ ├── mat_mk64_f3d_material_005 │ ├── mat_mk64_f3d_material_006 │ ├── mat_mk64_f3d_material_012 │ ├── mat_mk64_f3d_material_013 │ ├── mat_mk64_f3d_material_014 │ ├── mat_mk64_f3dlite_material_001 │ ├── mat_mk64_f3dlite_material_002 │ ├── mat_mk64_f3dlite_material_007 │ ├── mat_mk64_f3dlite_material_009 │ ├── mat_mk64_fence │ ├── mat_mk64_flag │ ├── mat_mk64_flowers │ ├── mat_mk64_gallows1 │ ├── mat_mk64_grate │ ├── mat_mk64_ground │ ├── mat_mk64_leaf1 │ ├── mat_mk64_leaves │ ├── mat_mk64_moon1 │ ├── mat_mk64_moon2 │ ├── mat_mk64_office1 │ ├── mat_mk64_parking │ ├── mat_mk64_path │ ├── mat_mk64_roof1 │ ├── mat_mk64_rope │ ├── mat_mk64_sand │ ├── mat_mk64_sign │ ├── mat_mk64_teeth │ ├── mat_mk64_wall1 │ ├── mat_mk64_water1 │ ├── mat_mk64_water2 │ ├── mat_mk64_window1 │ ├── mat_revert_mk64_HM │ ├── mat_revert_mk64__64 │ ├── mat_revert_mk64_bark1 │ ├── mat_revert_mk64_beware │ ├── mat_revert_mk64_black │ ├── mat_revert_mk64_coffin │ ├── mat_revert_mk64_dock │ ├── mat_revert_mk64_door1 │ ├── mat_revert_mk64_eye2 │ ├── mat_revert_mk64_f3d_material_001 │ ├── mat_revert_mk64_f3d_material_005 │ ├── mat_revert_mk64_f3d_material_006 │ ├── mat_revert_mk64_f3d_material_012 │ ├── mat_revert_mk64_f3d_material_013 │ ├── mat_revert_mk64_f3d_material_014 │ ├── mat_revert_mk64_f3dlite_material_001 │ ├── mat_revert_mk64_f3dlite_material_002 │ ├── mat_revert_mk64_f3dlite_material_007 │ ├── mat_revert_mk64_f3dlite_material_009 │ ├── mat_revert_mk64_fence │ ├── mat_revert_mk64_flag │ ├── mat_revert_mk64_flowers │ ├── mat_revert_mk64_gallows1 │ ├── mat_revert_mk64_grate │ ├── mat_revert_mk64_ground │ ├── mat_revert_mk64_leaf1 │ ├── mat_revert_mk64_leaves │ ├── mat_revert_mk64_moon1 │ ├── mat_revert_mk64_moon2 │ ├── mat_revert_mk64_office1 │ ├── mat_revert_mk64_parking │ ├── mat_revert_mk64_path │ ├── mat_revert_mk64_roof1 │ ├── mat_revert_mk64_rope │ ├── mat_revert_mk64_sand │ ├── mat_revert_mk64_sign │ ├── mat_revert_mk64_teeth │ ├── mat_revert_mk64_wall1 │ ├── mat_revert_mk64_water1 │ ├── mat_revert_mk64_water2 │ ├── mat_revert_mk64_window1 │ ├── minimap.png │ ├── mk64 │ ├── mk64_tri_0 │ ├── mk64_vtx_0 │ ├── mk64_vtx_cull │ ├── moon1.rgba16 │ ├── moon2.rgba16 │ ├── moon_mesh │ ├── moon_mesh_tri_0 │ ├── moon_mesh_tri_1 │ ├── moon_mesh_tri_2 │ ├── moon_mesh_tri_3 │ ├── moon_mesh_tri_4 │ ├── moon_mesh_vtx_0 │ ├── moon_mesh_vtx_1 │ ├── moon_mesh_vtx_2 │ ├── moon_mesh_vtx_3 │ ├── moon_mesh_vtx_4 │ ├── moon_mesh_vtx_cull │ ├── noparking.rgba16 │ ├── office1.rgba16 │ ├── parascode.rgba16 │ ├── paraseye.rgba32 │ ├── parking.rgba16 │ ├── pirate.rgba16 │ ├── road4.rgba16 │ ├── rope.rgba16 │ ├── sand.rgba16 │ ├── scene.json │ ├── seamless-green-lush-grass-texture-seamless-green-lush-grass-texture-fresh-backdrop-144751691.rgba16 │ ├── seamless-wood-texture-free-76.rgba16 │ ├── superFXSteel.rgba16 │ ├── teeth1.rgba32 │ ├── water1.rgba32 │ ├── water1_mesh │ ├── water1_mesh_tri_0 │ ├── water1_mesh_tri_1 │ ├── water1_mesh_vtx_0 │ ├── water1_mesh_vtx_1 │ ├── water1_mesh_vtx_cull │ ├── water3.rgba16 │ ├── window.rgba16 │ └── woodPlanks1.rgba16 ├── cmake ├── automate-vcpkg.cmake ├── configure-packaging.cmake ├── ios.toolchain.cmake ├── lus-cvars.cmake ├── modules │ ├── FindOgg.cmake │ ├── FindPulseAudio.cmake │ ├── FindVorbis.cmake │ ├── FindlibUsb.cmake │ └── Findudev.cmake ├── packaging.cmake └── toolchain-x86_64-w64-mingw32.cmake ├── config.yml ├── courses ├── all_course_data.h ├── all_course_model.h ├── all_course_offsets.h ├── all_course_packed.h ├── banshee_boardwalk │ └── course_offsets.c ├── big_donut │ └── course_offsets.c ├── block_fort │ └── course_offsets.c ├── bowsers_castle │ └── course_offsets.c ├── choco_mountain │ └── course_offsets.c ├── courseTable.c ├── courseTable.h ├── dks_jungle_parkway │ └── course_offsets.c ├── double_deck │ └── course_offsets.c ├── frappe_snowland │ └── course_offsets.c ├── harbour │ ├── ghostship_model.c │ ├── ghostship_model.h │ ├── powered.c │ ├── powered.h │ ├── ship2_model.c │ ├── ship2_model.h │ ├── ship3_model.c │ ├── ship3_model.h │ ├── ship_model.c │ ├── ship_model.h │ ├── starship_model.c │ ├── starship_model.h │ ├── track.c │ └── track.h ├── kalimari_desert │ └── course_offsets.c ├── koopa_troopa_beach │ └── course_offsets.c ├── luigi_raceway │ ├── course_displaylists.h │ ├── course_offsets.c │ └── staff_ghost.inc.c ├── mario_raceway │ ├── course_displaylists.h │ ├── course_offsets.c │ └── staff_ghost.inc.c ├── moo_moo_farm │ └── course_offsets.c ├── rainbow_road │ └── course_offsets.c ├── royal_raceway │ ├── course_offsets.c │ └── staff_ghost.inc.c ├── sherbet_land │ └── course_offsets.c ├── staff_ghost_data.c ├── staff_ghost_data.h ├── test_course │ ├── data.c │ ├── model.c │ └── vtx.c ├── toads_turnpike │ └── course_offsets.c ├── wario_stadium │ └── course_offsets.c └── yoshi_valley │ └── course_offsets.c ├── docs ├── BUILDING.md ├── MK64_Spaghetti_Adjusted_Kart_Setup.blend ├── actors │ ├── actors.md │ ├── items.md │ ├── objects.md │ └── vehicles.md ├── actorsmenu.md ├── basics │ ├── basicconcepts.md │ ├── compiling.md │ ├── controlflow.md │ ├── placeholder.png │ └── terminology.md ├── basicsmenu.md ├── change_viewport.png ├── courses │ ├── courses.md │ └── surfacetypes.md ├── coursesmenu.md ├── custom-audio.md ├── custom-characters.md ├── custom-track.md ├── docs.css ├── faq.md ├── header.html ├── html │ └── buttonimage.png ├── images │ └── buttonimage.png ├── mainpage.md ├── modding.md ├── poweredbylus.darkmode.png ├── poweredbylus.lightmode.png ├── sequences-information.md ├── spaghettigithublight.png ├── spaghettigithubnight.png ├── textures-pack.md ├── track_returns.md ├── tutorials.md └── tutorials │ ├── audio.md │ ├── boostramps.md │ └── paths.md ├── extract_assets.py ├── icon.png ├── include ├── PR │ ├── libaudio.h │ ├── os_rdp.h │ ├── os_thread.h │ ├── os_time.h │ └── os_tlb.h ├── actor_types.h ├── align_asset_macro.h ├── assets │ ├── banshee_boardwalk_data.h │ ├── banshee_boardwalk_displaylists.h │ ├── banshee_boardwalk_vertices.h │ ├── big_donut_data.h │ ├── big_donut_displaylists.h │ ├── big_donut_vertices.h │ ├── block_fort_data.h │ ├── block_fort_displaylists.h │ ├── block_fort_vertices.h │ ├── boo_frames.h │ ├── bowser_kart.h │ ├── bowsers_castle_data.h │ ├── bowsers_castle_displaylists.h │ ├── bowsers_castle_vertices.h │ ├── ceremony_data.h │ ├── choco_mountain_data.h │ ├── choco_mountain_displaylists.h │ ├── choco_mountain_vertices.h │ ├── common_data.h │ ├── data_800E8700.h │ ├── data_segment2.h │ ├── dks_jungle_parkway_data.h │ ├── dks_jungle_parkway_displaylists.h │ ├── dks_jungle_parkway_vertices.h │ ├── donkeykong_kart.h │ ├── double_deck_data.h │ ├── double_deck_displaylists.h │ ├── double_deck_vertices.h │ ├── frappe_snowland_data.h │ ├── frappe_snowland_displaylists.h │ ├── frappe_snowland_vertices.h │ ├── kalimari_desert_data.h │ ├── kalimari_desert_displaylists.h │ ├── kalimari_desert_vertices.h │ ├── koopa_troopa_beach_data.h │ ├── koopa_troopa_beach_displaylists.h │ ├── koopa_troopa_beach_vertices.h │ ├── luigi_kart.h │ ├── luigi_raceway_data.h │ ├── luigi_raceway_displaylists.h │ ├── luigi_raceway_vertices.h │ ├── mario_kart.h │ ├── mario_raceway_data.h │ ├── mario_raceway_displaylists.h │ ├── mario_raceway_vertices.h │ ├── moo_moo_farm_data.h │ ├── moo_moo_farm_displaylists.h │ ├── moo_moo_farm_vertices.h │ ├── other_textures.h │ ├── peach_kart.h │ ├── player_selection.h │ ├── rainbow_road_data.h │ ├── rainbow_road_displaylists.h │ ├── rainbow_road_vertices.h │ ├── royal_raceway_data.h │ ├── royal_raceway_displaylists.h │ ├── royal_raceway_vertices.h │ ├── sherbet_land_data.h │ ├── sherbet_land_displaylists.h │ ├── sherbet_land_vertices.h │ ├── skyscraper_data.h │ ├── skyscraper_displaylists.h │ ├── skyscraper_vertices.h │ ├── some_data.h │ ├── sound │ │ └── root.h │ ├── startup_logo.h │ ├── texture_data_2.h │ ├── texture_tkmk00.h │ ├── toad_kart.h │ ├── toads_turnpike_data.h │ ├── toads_turnpike_displaylists.h │ ├── toads_turnpike_offsets.h │ ├── toads_turnpike_vertices.h │ ├── wario_kart.h │ ├── wario_stadium_data.h │ ├── wario_stadium_displaylists.h │ ├── wario_stadium_vertices.h │ ├── yoshi_kart.h │ ├── yoshi_valley_data.h │ ├── yoshi_valley_displaylists.h │ └── yoshi_valley_vertices.h ├── audio │ └── miniaudio.h ├── bomb_kart.h ├── common_structs.h ├── course.h ├── course_offsets.h ├── debug.h ├── decode.h ├── defines.h ├── kart_attributes.h ├── libc │ ├── math.h │ ├── stdarg.h │ ├── stddef.h │ ├── stdio.h │ ├── stdlib.h │ └── string.h ├── macros.h ├── macros.inc ├── mk64.h ├── objects.h ├── portable-file-dialogs.h ├── save_data.h ├── segments.h ├── sounds.h ├── spline.h ├── stubs.h ├── vehicles.h └── waypoints.h ├── libultraship ├── .clang-format ├── .clang-tidy ├── .github │ └── workflows │ │ ├── apt-deps.txt │ │ ├── brew-deps.txt │ │ ├── tidy-format-validation.yml │ │ └── tidy-result-publish.yml ├── .gitignore ├── CMakeLists.txt ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── cmake │ ├── Default.cmake │ ├── DefaultCXX.cmake │ ├── HandleCompilerRT.cmake │ ├── Utils.cmake │ ├── automate-vcpkg.cmake │ ├── cvars.cmake │ ├── dependencies │ │ ├── android.cmake │ │ ├── common.cmake │ │ ├── git-patch.cmake │ │ ├── ios.cmake │ │ ├── linux.cmake │ │ ├── mac.cmake │ │ ├── patches │ │ │ ├── imgui-fixes-and-config.patch │ │ │ └── stormlib-optimizations.patch │ │ ├── windows-vcpkg.cmake │ │ └── windows.cmake │ └── ios-toolchain-populate.cmake ├── include │ └── libultraship │ │ ├── bridge.h │ │ ├── classes.h │ │ ├── color.h │ │ ├── libultra.h │ │ ├── libultra │ │ ├── abi.h │ │ ├── controller.h │ │ ├── convert.h │ │ ├── eeprom.h │ │ ├── exception.h │ │ ├── gbi.h │ │ ├── gs2dex.h │ │ ├── gu.h │ │ ├── internal.h │ │ ├── interrupt.h │ │ ├── mbi.h │ │ ├── message.h │ │ ├── motor.h │ │ ├── os.h │ │ ├── pfs.h │ │ ├── pi.h │ │ ├── printf.h │ │ ├── r4300.h │ │ ├── rcp.h │ │ ├── rdp.h │ │ ├── sptask.h │ │ ├── thread.h │ │ ├── time.h │ │ ├── types.h │ │ └── vi.h │ │ ├── libultraship.h │ │ └── luslog.h └── src │ ├── CMakeLists.txt │ ├── Context.cpp │ ├── Context.h │ ├── audio │ ├── Audio.cpp │ ├── Audio.h │ ├── AudioPlayer.cpp │ ├── AudioPlayer.h │ ├── SDLAudioPlayer.cpp │ ├── SDLAudioPlayer.h │ ├── WasapiAudioPlayer.cpp │ └── WasapiAudioPlayer.h │ ├── config │ ├── Config.cpp │ ├── Config.h │ ├── ConsoleVariable.cpp │ └── ConsoleVariable.h │ ├── controller │ ├── controldeck │ │ ├── ControlDeck.cpp │ │ ├── ControlDeck.h │ │ ├── ControlPort.cpp │ │ └── ControlPort.h │ ├── controldevice │ │ ├── ControlDevice.cpp │ │ ├── ControlDevice.h │ │ └── controller │ │ │ ├── Controller.cpp │ │ │ ├── Controller.h │ │ │ ├── ControllerButton.cpp │ │ │ ├── ControllerButton.h │ │ │ ├── ControllerGyro.cpp │ │ │ ├── ControllerGyro.h │ │ │ ├── ControllerLED.cpp │ │ │ ├── ControllerLED.h │ │ │ ├── ControllerRumble.cpp │ │ │ ├── ControllerRumble.h │ │ │ ├── ControllerStick.cpp │ │ │ ├── ControllerStick.h │ │ │ └── mapping │ │ │ ├── ControllerAxisDirectionMapping.cpp │ │ │ ├── ControllerAxisDirectionMapping.h │ │ │ ├── ControllerButtonMapping.cpp │ │ │ ├── ControllerButtonMapping.h │ │ │ ├── ControllerDefaultMappings.cpp │ │ │ ├── ControllerDefaultMappings.h │ │ │ ├── ControllerGyroMapping.cpp │ │ │ ├── ControllerGyroMapping.h │ │ │ ├── ControllerInputMapping.cpp │ │ │ ├── ControllerInputMapping.h │ │ │ ├── ControllerLEDMapping.cpp │ │ │ ├── ControllerLEDMapping.h │ │ │ ├── ControllerMapping.cpp │ │ │ ├── ControllerMapping.h │ │ │ ├── ControllerRumbleMapping.cpp │ │ │ ├── ControllerRumbleMapping.h │ │ │ ├── factories │ │ │ ├── AxisDirectionMappingFactory.cpp │ │ │ ├── AxisDirectionMappingFactory.h │ │ │ ├── ButtonMappingFactory.cpp │ │ │ ├── ButtonMappingFactory.h │ │ │ ├── GyroMappingFactory.cpp │ │ │ ├── GyroMappingFactory.h │ │ │ ├── LEDMappingFactory.cpp │ │ │ ├── LEDMappingFactory.h │ │ │ ├── RumbleMappingFactory.cpp │ │ │ └── RumbleMappingFactory.h │ │ │ ├── keyboard │ │ │ ├── KeyboardKeyToAnyMapping.cpp │ │ │ ├── KeyboardKeyToAnyMapping.h │ │ │ ├── KeyboardKeyToAxisDirectionMapping.cpp │ │ │ ├── KeyboardKeyToAxisDirectionMapping.h │ │ │ ├── KeyboardKeyToButtonMapping.cpp │ │ │ ├── KeyboardKeyToButtonMapping.h │ │ │ └── KeyboardScancodes.h │ │ │ ├── mouse │ │ │ ├── MouseButtonToAnyMapping.cpp │ │ │ ├── MouseButtonToAnyMapping.h │ │ │ ├── MouseButtonToAxisDirectionMapping.cpp │ │ │ ├── MouseButtonToAxisDirectionMapping.h │ │ │ ├── MouseButtonToButtonMapping.cpp │ │ │ ├── MouseButtonToButtonMapping.h │ │ │ ├── MouseWheelToAnyMapping.cpp │ │ │ ├── MouseWheelToAnyMapping.h │ │ │ ├── MouseWheelToAxisDirectionMapping.cpp │ │ │ ├── MouseWheelToAxisDirectionMapping.h │ │ │ ├── MouseWheelToButtonMapping.cpp │ │ │ ├── MouseWheelToButtonMapping.h │ │ │ ├── WheelHandler.cpp │ │ │ └── WheelHandler.h │ │ │ └── sdl │ │ │ ├── SDLAxisDirectionToAnyMapping.cpp │ │ │ ├── SDLAxisDirectionToAnyMapping.h │ │ │ ├── SDLAxisDirectionToAxisDirectionMapping.cpp │ │ │ ├── SDLAxisDirectionToAxisDirectionMapping.h │ │ │ ├── SDLAxisDirectionToButtonMapping.cpp │ │ │ ├── SDLAxisDirectionToButtonMapping.h │ │ │ ├── SDLButtonToAnyMapping.cpp │ │ │ ├── SDLButtonToAnyMapping.h │ │ │ ├── SDLButtonToAxisDirectionMapping.cpp │ │ │ ├── SDLButtonToAxisDirectionMapping.h │ │ │ ├── SDLButtonToButtonMapping.cpp │ │ │ ├── SDLButtonToButtonMapping.h │ │ │ ├── SDLGyroMapping.cpp │ │ │ ├── SDLGyroMapping.h │ │ │ ├── SDLLEDMapping.cpp │ │ │ ├── SDLLEDMapping.h │ │ │ ├── SDLMapping.h │ │ │ ├── SDLRumbleMapping.cpp │ │ │ └── SDLRumbleMapping.h │ └── physicaldevice │ │ ├── ConnectedPhysicalDeviceManager.cpp │ │ ├── ConnectedPhysicalDeviceManager.h │ │ ├── GlobalSDLDeviceSettings.cpp │ │ ├── GlobalSDLDeviceSettings.h │ │ ├── PhysicalDeviceType.h │ │ ├── SDLAddRemoveDeviceEventHandler.cpp │ │ └── SDLAddRemoveDeviceEventHandler.h │ ├── debug │ ├── Console.cpp │ ├── Console.h │ ├── CrashHandler.cpp │ └── CrashHandler.h │ ├── graphic │ └── Fast3D │ │ ├── .gitrepo │ │ ├── Fast3dWindow.cpp │ │ ├── Fast3dWindow.h │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── backends │ │ ├── gfx_direct3d11.cpp │ │ ├── gfx_direct3d11.h │ │ ├── gfx_direct3d_common.cpp │ │ ├── gfx_direct3d_common.h │ │ ├── gfx_dxgi.cpp │ │ ├── gfx_dxgi.h │ │ ├── gfx_metal.cpp │ │ ├── gfx_metal.h │ │ ├── gfx_metal_shader.cpp │ │ ├── gfx_metal_shader.h │ │ ├── gfx_opengl.cpp │ │ ├── gfx_opengl.h │ │ ├── gfx_rendering_api.h │ │ ├── gfx_screen_config.h │ │ ├── gfx_sdl.h │ │ ├── gfx_sdl2.cpp │ │ └── gfx_window_manager_api.h │ │ ├── debug │ │ ├── GfxDebugger.cpp │ │ └── GfxDebugger.h │ │ ├── f3dex.h │ │ ├── f3dex2.h │ │ ├── interpreter.cpp │ │ ├── interpreter.h │ │ ├── lus_gbi.h │ │ └── shaders │ │ ├── directx │ │ └── default.shader.hlsl │ │ ├── metal │ │ └── default.shader.metal │ │ └── opengl │ │ ├── default.shader.fs │ │ └── default.shader.vs │ ├── install_config.h.in │ ├── log │ ├── luslog.cpp │ └── luslog.h │ ├── port │ └── mobile │ │ ├── MobileImpl.cpp │ │ ├── MobileImpl.h │ │ └── imgui_impl_sdl2.cpp │ ├── public │ ├── bridge │ │ ├── audiobridge.cpp │ │ ├── audiobridge.h │ │ ├── consolevariablebridge.cpp │ │ ├── consolevariablebridge.h │ │ ├── controllerbridge.cpp │ │ ├── controllerbridge.h │ │ ├── crashhandlerbridge.cpp │ │ ├── crashhandlerbridge.h │ │ ├── gfxbridge.cpp │ │ ├── gfxbridge.h │ │ ├── gfxdebuggerbridge.cpp │ │ ├── gfxdebuggerbridge.h │ │ ├── resourcebridge.cpp │ │ ├── resourcebridge.h │ │ ├── windowbridge.cpp │ │ └── windowbridge.h │ └── libultra │ │ ├── os.cpp │ │ ├── os_cache.cpp │ │ ├── os_eeprom.cpp │ │ ├── os_mesg.cpp │ │ ├── os_pi.cpp │ │ ├── os_vi.cpp │ │ └── os_vm.cpp │ ├── resource │ ├── File.h │ ├── Resource.cpp │ ├── Resource.h │ ├── ResourceFactory.h │ ├── ResourceFactoryBinary.cpp │ ├── ResourceFactoryBinary.h │ ├── ResourceFactoryXML.cpp │ ├── ResourceFactoryXML.h │ ├── ResourceLoader.cpp │ ├── ResourceLoader.h │ ├── ResourceManager.cpp │ ├── ResourceManager.h │ ├── ResourceType.h │ ├── archive │ │ ├── Archive.cpp │ │ ├── Archive.h │ │ ├── ArchiveManager.cpp │ │ ├── ArchiveManager.h │ │ ├── FolderArchive.cpp │ │ ├── FolderArchive.h │ │ ├── O2rArchive.cpp │ │ ├── O2rArchive.h │ │ ├── OtrArchive.cpp │ │ └── OtrArchive.h │ ├── factory │ │ ├── BlobFactory.cpp │ │ ├── BlobFactory.h │ │ ├── DisplayListFactory.cpp │ │ ├── DisplayListFactory.h │ │ ├── JsonFactory.cpp │ │ ├── JsonFactory.h │ │ ├── LightFactory.cpp │ │ ├── LightFactory.h │ │ ├── MatrixFactory.cpp │ │ ├── MatrixFactory.h │ │ ├── ShaderFactory.cpp │ │ ├── ShaderFactory.h │ │ ├── TextureFactory.cpp │ │ ├── TextureFactory.h │ │ ├── VertexFactory.cpp │ │ └── VertexFactory.h │ └── type │ │ ├── Blob.cpp │ │ ├── Blob.h │ │ ├── DisplayList.cpp │ │ ├── DisplayList.h │ │ ├── Json.cpp │ │ ├── Json.h │ │ ├── Light.cpp │ │ ├── Light.h │ │ ├── Matrix.cpp │ │ ├── Matrix.h │ │ ├── Shader.cpp │ │ ├── Shader.h │ │ ├── Texture.cpp │ │ ├── Texture.h │ │ ├── Vertex.cpp │ │ └── Vertex.h │ ├── utils │ ├── AppleFolderManager.h │ ├── AppleFolderManager.mm │ ├── StrHash64.cpp │ ├── StrHash64.h │ ├── StringHelper.cpp │ ├── StringHelper.h │ ├── Utils.cpp │ ├── Utils.h │ ├── binarytools │ │ ├── BinaryReader.cpp │ │ ├── BinaryReader.h │ │ ├── BinaryWriter.cpp │ │ ├── BinaryWriter.h │ │ ├── BitConverter.h │ │ ├── MemoryStream.cpp │ │ ├── MemoryStream.h │ │ ├── Stream.cpp │ │ ├── Stream.h │ │ └── endianness.h │ ├── filesystemtools │ │ ├── Directory.h │ │ ├── DiskFile.h │ │ ├── FileHelper.h │ │ ├── Path.h │ │ └── PathHelper.h │ ├── glob.c │ ├── glob.h │ ├── macUtils.h │ ├── macUtils.mm │ ├── stox.cpp │ └── stox.h │ └── window │ ├── FileDropMgr.cpp │ ├── FileDropMgr.h │ ├── Window.cpp │ ├── Window.h │ └── gui │ ├── ConsoleWindow.cpp │ ├── ConsoleWindow.h │ ├── Fonts.h │ ├── GameOverlay.cpp │ ├── GameOverlay.h │ ├── GfxDebuggerWindow.cpp │ ├── GfxDebuggerWindow.h │ ├── Gui.cpp │ ├── Gui.h │ ├── GuiElement.cpp │ ├── GuiElement.h │ ├── GuiMenuBar.cpp │ ├── GuiMenuBar.h │ ├── GuiWindow.cpp │ ├── GuiWindow.h │ ├── IconsFontAwesome4.h │ ├── InputEditorWindow.cpp │ ├── InputEditorWindow.h │ ├── StatsWindow.cpp │ ├── StatsWindow.h │ └── resource │ ├── Font.cpp │ ├── Font.h │ ├── FontFactory.cpp │ ├── FontFactory.h │ ├── GuiTexture.cpp │ ├── GuiTexture.h │ ├── GuiTextureFactory.cpp │ └── GuiTextureFactory.h ├── lus-cvars.cmake ├── models ├── README.MD ├── common_textures.json └── tracks │ ├── banshee_boardwalk.json │ ├── battle_track.json │ ├── bowsers_castle.json │ ├── choco_mountain.json │ ├── dks_jungle_parkway.json │ ├── frappe_snowland.json │ ├── kalimari_desert.json │ ├── koopa_troopa_beach.json │ ├── luigi_raceway.json │ ├── mario_raceway.json │ ├── moo_moo_farm.json │ ├── rainbow_road.json │ ├── royal_raceway.json │ ├── sherbet_land.json │ ├── toads_turnpike.json │ ├── wario_stadium.json │ └── yoshi_valley.json ├── mods ├── C │ ├── compile.sh │ └── test.c ├── asc │ ├── .gitignore │ ├── asconfig.json │ ├── assembly │ │ ├── index.ts │ │ └── tsconfig.json │ ├── compile.sh │ ├── index.html │ ├── package.json │ ├── setup.sh │ └── tests │ │ └── index.js ├── cython │ ├── compile.sh │ ├── file.text │ ├── setup.py │ ├── test.c │ └── test.py ├── go │ ├── compile.sh │ └── test.go ├── js │ ├── compile.sh │ ├── test.js │ └── test.wit ├── lua │ ├── compile.sh │ ├── definition.yml │ └── test.lua ├── ocaml │ ├── .gitignore │ ├── compile.sh │ ├── test.ml │ └── test.mli ├── py │ ├── compile.sh │ ├── py2wasmtest.py │ ├── setup.sh │ └── test.py ├── py2many │ ├── .gitignore │ ├── compile.sh │ ├── export.cpp │ └── main.py ├── python-rust │ ├── .github │ │ └── dependabot.yml │ ├── .gitignore │ ├── .travis.yml │ ├── Cargo.toml │ ├── LICENSE_APACHE │ ├── LICENSE_MIT │ ├── README.md │ ├── compile.sh │ ├── setup.sh │ ├── src │ │ └── lib.rs │ └── tests │ │ └── web.rs └── rust │ ├── .github │ └── dependabot.yml │ ├── .gitignore │ ├── .travis.yml │ ├── Cargo.toml │ ├── LICENSE_APACHE │ ├── LICENSE_MIT │ ├── compile.sh │ ├── setup.sh │ ├── src │ └── lib.rs │ └── tests │ └── web.rs ├── port └── assets │ └── fonts │ ├── Fipps-Regular.otf │ └── PressStart2P-Regular.ttf ├── progress.py ├── properties.h ├── properties.h.in ├── python_convert.py ├── rename_sym.sh ├── spaghettikart.ico ├── spaghettikart.manifest ├── src ├── actors │ ├── banana │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── blue_and_red_shells │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── box_truck │ │ └── render.inc.c │ ├── car │ │ └── render.inc.c │ ├── cow │ │ └── render.inc.c │ ├── fake_item_box │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── falling_rock │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── green_shell │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── item_box │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── kiwano_fruit │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── mario_sign │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── paddle_boat │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── palm_tree │ │ └── render.inc.c │ ├── piranha_plant │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── railroad_crossing │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── school_bus │ │ └── render.inc.c │ ├── tanker_truck │ │ └── render.inc.c │ ├── train │ │ ├── render.inc.c │ │ └── update.inc.c │ ├── trees │ │ └── render.inc.c │ ├── wario_sign │ │ ├── render.inc.c │ │ └── update.inc.c │ └── yoshi_egg │ │ ├── render.inc.c │ │ └── update.inc.c ├── animation.c ├── animation.h ├── audio │ ├── GameAudio.h │ ├── audio_session_presets.c │ ├── data.c │ ├── data.h │ ├── effects.c │ ├── effects.h │ ├── external.c │ ├── external.h │ ├── heap.c │ ├── heap.h │ ├── internal.h │ ├── load.c │ ├── load.h │ ├── mixer.c │ ├── mixer.h │ ├── playback.c │ ├── playback.h │ ├── port_eu.c │ ├── port_eu.h │ ├── seqplayer.c │ ├── seqplayer.h │ ├── synthesis.c │ └── synthesis.h ├── buffers.h ├── buffers │ ├── audio_heap.c │ ├── audio_heap.h │ ├── buffers.c │ ├── gfx_output_buffer.c │ ├── gfx_output_buffer.h │ ├── memory_pool.c │ ├── random.c │ ├── random.h │ ├── trig_tables.c │ ├── trig_tables.h │ └── trig_tables_bss.c ├── camera.c ├── camera.h ├── code_800029B0.c ├── code_800029B0.h ├── code_80005FD0.c ├── code_80005FD0.h ├── code_8003DC40.c ├── code_8003DC40.h ├── code_80057C60.c ├── code_80057C60.h ├── code_80057C60_var.c ├── code_8006E9C0.c ├── code_8006E9C0.h ├── code_80086E70.c ├── code_80086E70.h ├── code_80091440.c ├── code_80091440.h ├── code_800AF9B0.c ├── code_800AF9B0.h ├── course_metadata.c ├── course_metadata.h ├── crash_screen.c ├── crash_screen.h ├── data │ ├── kart_attributes.c │ ├── path_spawn_metadata.c │ ├── path_spawn_metadata.h │ ├── some_data.c │ ├── some_data.h │ └── textures.c ├── debug │ ├── all_variables.h │ ├── crash_screen_enhancement.c │ ├── crash_screen_enhancement.h │ ├── debug.c │ └── debug.inc.c ├── effects.c ├── effects.h ├── ending │ ├── camera_junk.c │ ├── camera_junk.h │ ├── ceremony_and_credits.c │ ├── ceremony_and_credits.h │ ├── code_80280000.c │ ├── code_80280000.h │ ├── code_80281780.c │ ├── code_80281780.h │ ├── code_80281C40.c │ ├── code_80281C40.h │ ├── credits.c │ ├── credits.h │ ├── dl_unk_80284EE0.c │ ├── podium_ceremony_actors.c │ └── podium_ceremony_actors.h ├── engine │ ├── Actor.cpp │ ├── Actor.h │ ├── AllActors.h │ ├── CoreMath.h │ ├── Cup.cpp │ ├── Cup.h │ ├── GameAPI.h │ ├── GarbageCollector.cpp │ ├── GarbageCollector.h │ ├── HM_Intro.cpp │ ├── HM_Intro.h │ ├── Matrix.cpp │ ├── Matrix.h │ ├── ModelLoader.cpp │ ├── ModelLoader.h │ ├── PlayerBombKart.cpp │ ├── PlayerBombKart.h │ ├── Registry.cpp │ ├── Registry.h │ ├── Rulesets.cpp │ ├── Rulesets.h │ ├── Smoke.cpp │ ├── Smoke.h │ ├── StaticMeshActor.cpp │ ├── StaticMeshActor.h │ ├── TrainCrossing.cpp │ ├── TrainCrossing.h │ ├── World.cpp │ ├── World.h │ ├── actors │ │ ├── Banana.cpp │ │ ├── Banana.h │ │ ├── BowserStatue.cpp │ │ ├── BowserStatue.h │ │ ├── Cloud.cpp │ │ ├── Cloud.h │ │ ├── Finishline.cpp │ │ ├── Finishline.h │ │ ├── MarioSign.cpp │ │ ├── MarioSign.h │ │ ├── Ship.cpp │ │ ├── Ship.h │ │ ├── SpaghettiShip.cpp │ │ ├── SpaghettiShip.h │ │ ├── Starship.cpp │ │ ├── Starship.h │ │ ├── Tree.cpp │ │ ├── Tree.h │ │ ├── WarioSign.cpp │ │ └── WarioSign.h │ ├── courses │ │ ├── BansheeBoardwalk.cpp │ │ ├── BansheeBoardwalk.h │ │ ├── BigDonut.cpp │ │ ├── BigDonut.h │ │ ├── BlockFort.cpp │ │ ├── BlockFort.h │ │ ├── BowsersCastle.cpp │ │ ├── BowsersCastle.h │ │ ├── ChocoMountain.cpp │ │ ├── ChocoMountain.h │ │ ├── Course.cpp │ │ ├── Course.h │ │ ├── DKJungle.cpp │ │ ├── DKJungle.h │ │ ├── DoubleDeck.cpp │ │ ├── DoubleDeck.h │ │ ├── FrappeSnowland.cpp │ │ ├── FrappeSnowland.h │ │ ├── Harbour.cpp │ │ ├── Harbour.h │ │ ├── KalimariDesert.cpp │ │ ├── KalimariDesert.h │ │ ├── KoopaTroopaBeach.cpp │ │ ├── KoopaTroopaBeach.h │ │ ├── LuigiRaceway.cpp │ │ ├── LuigiRaceway.h │ │ ├── MarioRaceway.cpp │ │ ├── MarioRaceway.h │ │ ├── MooMooFarm.cpp │ │ ├── MooMooFarm.h │ │ ├── PodiumCeremony.cpp │ │ ├── PodiumCeremony.h │ │ ├── RainbowRoad.cpp │ │ ├── RainbowRoad.h │ │ ├── RoyalRaceway.cpp │ │ ├── RoyalRaceway.h │ │ ├── SherbetLand.cpp │ │ ├── SherbetLand.h │ │ ├── Skyscraper.cpp │ │ ├── Skyscraper.h │ │ ├── TestCourse.cpp │ │ ├── TestCourse.h │ │ ├── ToadsTurnpike.cpp │ │ ├── ToadsTurnpike.h │ │ ├── WarioStadium.cpp │ │ ├── WarioStadium.h │ │ ├── YoshiValley.cpp │ │ └── YoshiValley.h │ ├── editor │ │ ├── Collision.cpp │ │ ├── Collision.h │ │ ├── Editor.cpp │ │ ├── Editor.h │ │ ├── EditorMath.cpp │ │ ├── EditorMath.h │ │ ├── GameObject.cpp │ │ ├── GameObject.h │ │ ├── Gizmo.cpp │ │ ├── Gizmo.h │ │ ├── Handles.cpp │ │ ├── Handles.h │ │ ├── Light.cpp │ │ ├── Light.h │ │ ├── ObjectPicker.cpp │ │ ├── ObjectPicker.h │ │ ├── SceneManager.cpp │ │ └── SceneManager.h │ ├── items │ │ ├── Items.cpp │ │ └── Items.h │ ├── objects │ │ ├── Bat.cpp │ │ ├── Bat.h │ │ ├── BombKart.cpp │ │ ├── BombKart.h │ │ ├── Boos.cpp │ │ ├── Boos.h │ │ ├── ChainChomp.cpp │ │ ├── ChainChomp.h │ │ ├── CheepCheep.cpp │ │ ├── CheepCheep.h │ │ ├── Crab.cpp │ │ ├── Crab.h │ │ ├── Flagpole.cpp │ │ ├── Flagpole.h │ │ ├── GrandPrixBalloons.cpp │ │ ├── GrandPrixBalloons.h │ │ ├── Hedgehog.cpp │ │ ├── Hedgehog.h │ │ ├── HotAirBalloon.cpp │ │ ├── HotAirBalloon.h │ │ ├── Lakitu.cpp │ │ ├── Lakitu.h │ │ ├── Mole.cpp │ │ ├── Mole.h │ │ ├── MoleGroup.cpp │ │ ├── MoleGroup.h │ │ ├── Object.cpp │ │ ├── Object.h │ │ ├── Penguin.cpp │ │ ├── Penguin.h │ │ ├── Podium.cpp │ │ ├── Podium.h │ │ ├── Seagull.cpp │ │ ├── Seagull.h │ │ ├── Snowman.cpp │ │ ├── Snowman.h │ │ ├── Thwomp.cpp │ │ ├── Thwomp.h │ │ ├── TrashBin.cpp │ │ ├── TrashBin.h │ │ ├── Trophy.cpp │ │ └── Trophy.h │ ├── particles │ │ ├── ParticleEmitter.cpp │ │ ├── ParticleEmitter.h │ │ ├── StarEmitter.cpp │ │ └── StarEmitter.h │ ├── readme.txt │ ├── vehicles │ │ ├── Boat.cpp │ │ ├── Boat.h │ │ ├── Bus.cpp │ │ ├── Bus.h │ │ ├── Car.cpp │ │ ├── Car.h │ │ ├── TankerTruck.cpp │ │ ├── TankerTruck.h │ │ ├── Train.cpp │ │ ├── Train.h │ │ ├── Truck.cpp │ │ ├── Truck.h │ │ ├── Utils.cpp │ │ └── Utils.h │ ├── wasm.cpp │ └── wasm.h ├── enhancements │ ├── collision_viewer.c │ ├── collision_viewer.h │ ├── freecam │ │ ├── freecam.cpp │ │ ├── freecam.h │ │ ├── freecam_engine.c │ │ └── freecam_engine.h │ ├── moon_jump.c │ └── moon_jump.h ├── gbiMacro.c ├── harbour_masters.c ├── harbour_masters.h ├── kart_dma.c ├── kart_dma.h ├── main.c ├── main.h ├── math_util_2.c ├── math_util_2.h ├── menu_items.c ├── menu_items.h ├── menus.c ├── menus.h ├── networking │ ├── networking.c │ ├── networking.h │ ├── packets.c │ ├── replication.c │ └── start_game.c ├── os │ ├── NaN.c │ ├── _Ldtob.c │ ├── _Litob.c │ ├── _Printf.c │ ├── __osAiDeviceBusy.c │ ├── __osAtomicDec.c │ ├── __osDequeueThread.c │ ├── __osDevMgrMain.c │ ├── __osEPiRawReadIo.c │ ├── __osEPiRawWriteIo.c │ ├── __osGetCurrFaultedThread.c │ ├── __osLeoInterrupt.c │ ├── __osPiCreateAccessQueue.c │ ├── __osResetGlobalIntMask.c │ ├── __osSetGlobalIntMask.c │ ├── __osSetHWIntrRoutine.c │ ├── __osSiCreateAccessQueue.c │ ├── __osSiDeviceBusy.c │ ├── __osSiRawReadIo.c │ ├── __osSiRawStartDma.c │ ├── __osSiRawWriteIo.c │ ├── __osSpDeviceBusy.c │ ├── __osSpGetStatus.c │ ├── __osSpRawStartDma.c │ ├── __osSpSetPc.c │ ├── __osSpSetStatus.c │ ├── __osSyncPutChars.c │ ├── __osViGetCurrentContext.c │ ├── __osViInit.c │ ├── __osViSwapContext.c │ ├── alBnkfNew.c │ ├── bstring.h │ ├── contpfs.c │ ├── contramread.c │ ├── contramwrite.c │ ├── controller.h │ ├── crc.c │ ├── epidma.c │ ├── guLookAtF.c │ ├── guLookAtRef.c │ ├── guMtxCatF.c │ ├── guMtxCatL.c │ ├── guMtxF2L.c │ ├── guNormalize.c │ ├── guOrthoF.c │ ├── guPerspectiveF.c │ ├── guRotateF.c │ ├── guScaleF.c │ ├── guTranslateF.c │ ├── hardware.h │ ├── is_debug.c │ ├── ldiv.c │ ├── libaudio_internal.h │ ├── libultra_internal.h │ ├── math │ │ ├── cosf.c │ │ ├── llconv.c │ │ └── sinf.c │ ├── new_func.h │ ├── osAi.h │ ├── osAiGetLength.c │ ├── osAiSetFrequency.c │ ├── osAiSetNextBuffer.c │ ├── osCartRomInit.c │ ├── osContInit.c │ ├── osContStartReadData.c │ ├── osCreateMesgQueue.c │ ├── osCreatePiManager.c │ ├── osCreateThread.c │ ├── osCreateViManager.c │ ├── osDestroyThread.c │ ├── osEPiRawStartDma.c │ ├── osEepromLongRead.c │ ├── osEepromLongWrite.c │ ├── osEepromProbe.c │ ├── osEepromRead.c │ ├── osEepromWrite.c │ ├── osGetThreadPri.c │ ├── osGetTime.c │ ├── osInitialize.c │ ├── osJamMesg.c │ ├── osLeoDiskInit.c │ ├── osPfsAllocateFile.c │ ├── osPfsChecker.c │ ├── osPfsDeleteFile.c │ ├── osPfsFileState.c │ ├── osPfsFreeBlocks.c │ ├── osPfsInit.c │ ├── osPfsIsPlug.c │ ├── osPfsNumFiles.c │ ├── osPfsReadWriteFile.c │ ├── osPfsSearchFile.c │ ├── osPiGetCmdQueue.c │ ├── osPiRawReadIo.c │ ├── osPiRawStartDma.c │ ├── osPiStartDma.c │ ├── osRecvMesg.c │ ├── osSendMesg.c │ ├── osSetEventMesg.c │ ├── osSetThreadPri.c │ ├── osSetTime.c │ ├── osSetTimer.c │ ├── osSpTaskLoadGo.c │ ├── osSpTaskYield.c │ ├── osSpTaskYielded.c │ ├── osStartThread.c │ ├── osSyncPrintf.c │ ├── osTimer.c │ ├── osViBlack.c │ ├── osViData.c │ ├── osViSetEvent.c │ ├── osViSetMode.c │ ├── osViSetSpecialFeatures.c │ ├── osViSwapBuffer.c │ ├── osViTable.c │ ├── osVirtualToPhysical.c │ ├── osYieldThread.c │ ├── osint.h │ ├── piint.h │ ├── printf.h │ ├── sprintf.c │ └── string.c ├── player_controller.c ├── player_controller.h ├── port │ ├── Engine.cpp │ ├── Engine.h │ ├── GBIMiddleware.cpp │ ├── Game.cpp │ ├── Game.h │ ├── GameExtractor.cpp │ ├── GameExtractor.h │ ├── ShipUtils.cpp │ ├── ShipUtils.h │ ├── SpaghettiGui.cpp │ ├── SpaghettiGui.h │ ├── Variables.cpp │ ├── audio │ │ ├── HMAS.cpp │ │ └── HMAS.h │ ├── interpolation │ │ ├── FrameInterpolation.cpp │ │ ├── FrameInterpolation.h │ │ ├── matrix.c │ │ └── matrix.h │ ├── pak.cpp │ ├── resource │ │ ├── importers │ │ │ ├── ActorSpawnDataFactory.cpp │ │ │ ├── ActorSpawnDataFactory.h │ │ │ ├── ArrayFactory.cpp │ │ │ ├── ArrayFactory.h │ │ │ ├── AudioBankFactory.cpp │ │ │ ├── AudioBankFactory.h │ │ │ ├── AudioSampleFactory.cpp │ │ │ ├── AudioSampleFactory.h │ │ │ ├── AudioSequenceFactory.cpp │ │ │ ├── AudioSequenceFactory.h │ │ │ ├── BetterTextureFactory.cpp │ │ │ ├── BetterTextureFactory.h │ │ │ ├── CPUFactory.cpp │ │ │ ├── CPUFactory.h │ │ │ ├── CourseVtxFactory.cpp │ │ │ ├── CourseVtxFactory.h │ │ │ ├── GenericArrayFactory.cpp │ │ │ ├── GenericArrayFactory.h │ │ │ ├── MinimapFactory.cpp │ │ │ ├── MinimapFactory.h │ │ │ ├── ResourceUtil.h │ │ │ ├── TrackPathPointFactory.cpp │ │ │ ├── TrackPathPointFactory.h │ │ │ ├── TrackSectionsFactory.cpp │ │ │ ├── TrackSectionsFactory.h │ │ │ ├── UnkActorSpawnDataFactory.cpp │ │ │ ├── UnkActorSpawnDataFactory.h │ │ │ ├── Vec3fFactory.cpp │ │ │ ├── Vec3fFactory.h │ │ │ ├── Vec3sFactory.cpp │ │ │ └── Vec3sFactory.h │ │ └── type │ │ │ ├── Animation.cpp │ │ │ ├── Animation.h │ │ │ ├── Array.cpp │ │ │ ├── Array.h │ │ │ ├── AudioBank.cpp │ │ │ ├── AudioBank.h │ │ │ ├── AudioSample.cpp │ │ │ ├── AudioSample.h │ │ │ ├── AudioSequence.cpp │ │ │ ├── AudioSequence.h │ │ │ ├── CPU.cpp │ │ │ ├── CPU.h │ │ │ ├── ColPoly.cpp │ │ │ ├── ColPoly.h │ │ │ ├── CourseVtx.cpp │ │ │ ├── CourseVtx.h │ │ │ ├── EnvSettings.cpp │ │ │ ├── EnvSettings.h │ │ │ ├── GenericArray.cpp │ │ │ ├── GenericArray.h │ │ │ ├── Hitbox.cpp │ │ │ ├── Hitbox.h │ │ │ ├── Limb.cpp │ │ │ ├── Limb.h │ │ │ ├── Message.cpp │ │ │ ├── Message.h │ │ │ ├── Minimap.cpp │ │ │ ├── Minimap.h │ │ │ ├── ObjectInit.cpp │ │ │ ├── ObjectInit.h │ │ │ ├── ResourceType.h │ │ │ ├── Script.cpp │ │ │ ├── Script.h │ │ │ ├── Skeleton.cpp │ │ │ ├── Skeleton.h │ │ │ ├── SpawnData.cpp │ │ │ ├── SpawnData.h │ │ │ ├── TrackPathPointData.cpp │ │ │ ├── TrackPathPointData.h │ │ │ ├── TrackSections.cpp │ │ │ ├── TrackSections.h │ │ │ ├── UnkSpawnData.cpp │ │ │ ├── UnkSpawnData.h │ │ │ ├── Vec3fArray.cpp │ │ │ ├── Vec3fArray.h │ │ │ ├── Vec3sArray.cpp │ │ │ └── Vec3sArray.h │ └── ui │ │ ├── ContentBrowser.cpp │ │ ├── ContentBrowser.h │ │ ├── FreecamWindow.cpp │ │ ├── FreecamWindow.h │ │ ├── ImguiUI.cpp │ │ ├── ImguiUI.h │ │ ├── Menu.cpp │ │ ├── Menu.h │ │ ├── MenuTypes.h │ │ ├── MultiplayerWindow.cpp │ │ ├── MultiplayerWindow.h │ │ ├── PortMenu.cpp │ │ ├── PortMenu.h │ │ ├── Properties.cpp │ │ ├── Properties.h │ │ ├── ResolutionEditor.cpp │ │ ├── ResolutionEditor.h │ │ ├── SceneExplorer.cpp │ │ ├── SceneExplorer.h │ │ ├── Tools.cpp │ │ ├── Tools.h │ │ ├── TrackProperties.cpp │ │ ├── TrackProperties.h │ │ ├── UIWidgets.cpp │ │ └── UIWidgets.h ├── profiler.c ├── profiler.h ├── racing │ ├── actors.c │ ├── actors.h │ ├── actors_extended.c │ ├── actors_extended.h │ ├── collision.c │ ├── collision.h │ ├── framebuffer_effects.c │ ├── framebuffer_effects.h │ ├── math_util.c │ ├── math_util.h │ ├── memory.c │ ├── memory.h │ ├── race_logic.c │ ├── race_logic.h │ ├── render_courses.c │ ├── render_courses.h │ ├── skybox_and_splitscreen.c │ └── skybox_and_splitscreen.h ├── render_objects.c ├── render_objects.h ├── render_player.c ├── render_player.h ├── replays.c ├── replays.h ├── save.c ├── save.h ├── spawn_players.c ├── spawn_players.h ├── stubs.c ├── textures.h ├── update_objects.c └── update_objects.h ├── test_blend.bat ├── tools ├── .gitignore ├── Makefile ├── apply_patch.sh ├── asm_processor │ ├── asm_processor.py │ ├── build.py │ └── prelude.inc ├── bin2c.py ├── blender │ ├── blender_export.py │ ├── clean_scene.py │ ├── extract_models.py │ └── fast64_run.py ├── create_patch.sh ├── displaylist_packer.c ├── doxygen_symbol_gen.py ├── extract_data_for_mio.c ├── format.py ├── gfxdis_multi.py ├── ido-recomp │ ├── linux │ │ ├── acpp │ │ ├── as0 │ │ ├── as1 │ │ ├── c++filt │ │ ├── cc │ │ ├── cfe │ │ ├── copt │ │ ├── crt1.o │ │ ├── crtn.o │ │ ├── err.english.cc │ │ ├── ld │ │ ├── libc.so │ │ ├── libc.so.1 │ │ ├── libexc.so │ │ ├── libgen.so │ │ ├── libm.so │ │ ├── strip │ │ ├── ugen │ │ ├── ujoin │ │ ├── uld │ │ ├── umerge │ │ ├── uopt │ │ ├── upas │ │ └── usplit │ ├── macos │ │ ├── acpp │ │ ├── as0 │ │ ├── as1 │ │ ├── c++filt │ │ ├── cc │ │ ├── cfe │ │ ├── copt │ │ ├── crt1.o │ │ ├── crtn.o │ │ ├── err.english.cc │ │ ├── ld │ │ ├── libc.so │ │ ├── libc.so.1 │ │ ├── libexc.so │ │ ├── libgen.so │ │ ├── libm.so │ │ ├── strip │ │ ├── ugen │ │ ├── ujoin │ │ ├── uld │ │ ├── umerge │ │ ├── uopt │ │ ├── upas │ │ └── usplit │ ├── versions.txt │ └── windows │ │ ├── acpp.exe │ │ ├── as0.exe │ │ ├── as1.exe │ │ ├── c++filt.exe │ │ ├── cc.exe │ │ ├── cfe.exe │ │ ├── copt.exe │ │ ├── crt1.o │ │ ├── crtn.o │ │ ├── err.english.cc │ │ ├── ld.exe │ │ ├── libc.so │ │ ├── libc.so.1 │ │ ├── libexc.so │ │ ├── libgen.so │ │ ├── libm.so │ │ ├── msys-2.0.dll │ │ ├── strip.exe │ │ ├── ugen.exe │ │ ├── ujoin.exe │ │ ├── uld.exe │ │ ├── umerge.exe │ │ ├── uopt.exe │ │ ├── upas.exe │ │ └── usplit.exe ├── libmio0.c ├── libmio0.h ├── libtkmk00.c ├── libtkmk00.h ├── linkonly_generator.py ├── m2ctx ├── mkgccgen.py ├── n64cksum.c ├── n64cksum.h ├── n64graphics.c ├── n64graphics.h ├── new_extract_assets.py ├── revert_patch.sh ├── set_o32abi_bit.py ├── stb │ ├── stb_image.h │ └── stb_image_write.h ├── utils.c ├── utils.h └── windows_build.py ├── valgrind_callgrind.sh ├── vcpkg.json └── yamls └── us ├── banshee_boardwalk_data.yml ├── banshee_boardwalk_displaylists.yml ├── banshee_boardwalk_vertices.yml ├── big_donut_data.yml ├── big_donut_displaylists.yml ├── big_donut_vertices.yml ├── block_fort_data.yml ├── block_fort_displaylists.yml ├── block_fort_vertices.yml ├── boo_frames.yml ├── bowser_kart.yml ├── bowsers_castle_data.yml ├── bowsers_castle_displaylists.yml ├── bowsers_castle_vertices.yml ├── ceremony_data.yml ├── choco_mountain_data.yml ├── choco_mountain_displaylists.yml ├── choco_mountain_vertices.yml ├── common_data.yml ├── data_800E45C0.yml ├── data_800E8700.yml ├── data_segment2.yml ├── dks_jungle_parkway_data.yml ├── dks_jungle_parkway_displaylists.yml ├── dks_jungle_parkway_vertices.yml ├── donkeykong_kart.yml ├── double_deck_data.yml ├── double_deck_displaylists.yml ├── double_deck_vertices.yml ├── frappe_snowland_data.yml ├── frappe_snowland_displaylists.yml ├── frappe_snowland_vertices.yml ├── kalimari_desert_data.yml ├── kalimari_desert_displaylists.yml ├── kalimari_desert_vertices.yml ├── koopa_troopa_beach_data.yml ├── koopa_troopa_beach_displaylists.yml ├── koopa_troopa_beach_vertices.yml ├── luigi_kart.yml ├── luigi_raceway_data.yml ├── luigi_raceway_displaylists.yml ├── luigi_raceway_vertices.yml ├── mario_kart.yml ├── mario_raceway_data.yml ├── mario_raceway_displaylists.yml ├── mario_raceway_vertices.yml ├── moo_moo_farm_data.yml ├── moo_moo_farm_displaylists.yml ├── moo_moo_farm_vertices.yml ├── other_textures.yml ├── peach_kart.yml ├── player_selection.yml ├── rainbow_road_data.yml ├── rainbow_road_displaylists.yml ├── rainbow_road_vertices.yml ├── royal_raceway_data.yml ├── royal_raceway_displaylists.yml ├── royal_raceway_vertices.yml ├── sherbet_land_data.yml ├── sherbet_land_displaylists.yml ├── sherbet_land_vertices.yml ├── skyscraper_data.yml ├── skyscraper_displaylists.yml ├── skyscraper_vertices.yml ├── some_data.yml ├── sound ├── banks.yml ├── root.yml ├── samples.yml └── sequences.yml ├── startup_logo.yml ├── texture_data_2.yml ├── texture_tkmk00.yml ├── toad_kart.yml ├── toads_turnpike_data.yml ├── toads_turnpike_displaylists.yml ├── toads_turnpike_offsets.yml ├── toads_turnpike_vertices.yml ├── wario_kart.yml ├── wario_stadium_data.yml ├── wario_stadium_displaylists.yml ├── wario_stadium_vertices.yml ├── yoshi_kart.yml ├── yoshi_valley_data.yml ├── yoshi_valley_displaylists.yml └── yoshi_valley_vertices.yml /.editorconfig: -------------------------------------------------------------------------------- 1 | end_of_line = lf 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "doxygen-awesome-css"] 2 | path = doxygen-awesome-css 3 | url = https://github.com/jothepro/doxygen-awesome-css.git 4 | [submodule "torch"] 5 | path = torch 6 | url = https://github.com/HarbourMasters/Torch 7 | [submodule "lib/wasm-micro-runtime"] 8 | path = lib/wasm-micro-runtime 9 | url = https://github.com/bytecodealliance/wasm-micro-runtime.git 10 | [submodule "tools/blender/fast64"] 11 | path = tools/blender/fast64 12 | url = https://github.com/Fast-64/fast64.git 13 | -------------------------------------------------------------------------------- /SpaghettiKart.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Name=SPAGHETTIKART 4 | Exec=Spaghettify 5 | Terminal=false 6 | Icon=icon 7 | Type=Application 8 | Categories=Game; 9 | X-AppImage-Integrate=false 10 | -------------------------------------------------------------------------------- /android/app/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/app/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /android/app/src/main/assets/mods/place_mods_here.txt: -------------------------------------------------------------------------------- 1 | Place mods in this folder 2 | -------------------------------------------------------------------------------- /android/app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/dialog_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #000000 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Spaghetti Kart 3 | 4 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Dec 27 18:25:48 PST 2024 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_center_handle_f3dlite_material: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_rot_handle_blue_f3dlite_material: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_rot_handle_green_f3dlite_material: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_rot_handle_green_f3dlite_material_002: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_rot_handle_red_f3dlite_material: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_rotate_handle_red_f3dlite_material: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_scale_handle_blue_f3dlite_material: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_scale_handle_blue_f3dlite_material_001: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_scale_handle_green_f3dlite_material_001: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_scale_handle_red_f3dlite_material_001: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_translate_handle_blue_f3dlite_material: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_translate_handle_green_f3dlite_material: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/gizmo/mat_revert_translate_handle_red_f3dlite_material: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/light/mat_revert_sun_arrow_f3dlite_material_001: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/editor/light/mat_revert_sun_arrow_f3dlite_material_002: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/water/mat_revert_water_plane_f3dlite_material: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/editor/water/water_plane_tri_0: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/editor/water/water_plane_vtx_0: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/fonts/Fipps-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/fonts/Fipps-Regular.otf -------------------------------------------------------------------------------- /assets/fonts/Inconsolata-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/fonts/Inconsolata-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/Montserrat-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/fonts/Montserrat-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/PressStart2P-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/fonts/PressStart2P-Regular.ttf -------------------------------------------------------------------------------- /assets/gizmo/gizmo_center_button: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /assets/gizmo/scale_handle: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /assets/hmintro/gradientbottom.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/hmintro/gradientbottom.rgba16 -------------------------------------------------------------------------------- /assets/hmintro/lusgrade.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/hmintro/lusgrade.rgba16 -------------------------------------------------------------------------------- /assets/hmintro/mat_revert_poweredbylus_lus: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/hmintro/mat_revert_poweredbylus_power: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/textures/buttons/ABtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/buttons/ABtn.png -------------------------------------------------------------------------------- /assets/textures/buttons/BBtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/buttons/BBtn.png -------------------------------------------------------------------------------- /assets/textures/buttons/CDown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/buttons/CDown.png -------------------------------------------------------------------------------- /assets/textures/buttons/CLeft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/buttons/CLeft.png -------------------------------------------------------------------------------- /assets/textures/buttons/CRight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/buttons/CRight.png -------------------------------------------------------------------------------- /assets/textures/buttons/CUp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/buttons/CUp.png -------------------------------------------------------------------------------- /assets/textures/buttons/LBtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/buttons/LBtn.png -------------------------------------------------------------------------------- /assets/textures/buttons/RBtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/buttons/RBtn.png -------------------------------------------------------------------------------- /assets/textures/buttons/StartBtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/buttons/StartBtn.png -------------------------------------------------------------------------------- /assets/textures/buttons/ZBtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/buttons/ZBtn.png -------------------------------------------------------------------------------- /assets/textures/icons/gIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/icons/gIcon.png -------------------------------------------------------------------------------- /assets/textures/virtual/gEmptyTexture.rgba32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/textures/virtual/gEmptyTexture.rgba32.png -------------------------------------------------------------------------------- /assets/tracks/harbour/ARmosMap.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/ARmosMap.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/Cube.002_mesh_tri_1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/tracks/harbour/Cube.002_mesh_tri_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/tracks/harbour/Cube.002_mesh_vtx_1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/tracks/harbour/Harbour 0.6.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/Harbour 0.6.blend -------------------------------------------------------------------------------- /assets/tracks/harbour/bark2.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/bark2.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/bars1.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/bars1.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/beware.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/beware.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/brick1.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/brick1.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/coffins.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/coffins.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/door1.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/door1.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/fence.rgba32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/fence.rgba32 -------------------------------------------------------------------------------- /assets/tracks/harbour/flag.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/flag.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/flowers1.rgba32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/flowers1.rgba32 -------------------------------------------------------------------------------- /assets/tracks/harbour/gallows.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/gallows.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/grayishtoblue.ci8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/grayishtoblue.ci8 -------------------------------------------------------------------------------- /assets/tracks/harbour/heart1.ci8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/heart1.ci8 -------------------------------------------------------------------------------- /assets/tracks/harbour/keyboardArt.i8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/keyboardArt.i8 -------------------------------------------------------------------------------- /assets/tracks/harbour/leaf.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/leaf.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/leaves1.rgba32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/leaves1.rgba32 -------------------------------------------------------------------------------- /assets/tracks/harbour/map.002_mesh_tri_3: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map.002_mesh_tri_4: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map.004_mesh_tri_0: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map.004_mesh_tri_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map.005_mesh_tri_0: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map_mesh_tri_1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map_mesh_tri_15: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map_mesh_tri_17: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map_mesh_tri_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map_mesh_tri_6: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map_mesh_tri_8: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map_mesh_tri_9: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map_mesh_vtx_2: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/tracks/harbour/map_mesh_vtx_6: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/tracks/harbour/marble1.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/marble1.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_HM: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64__64: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_bark1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_beware: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_black: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_coffin: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_dock: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_door1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_eye2: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_f3d_material_001: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_f3d_material_005: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_f3d_material_006: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_f3d_material_012: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_f3d_material_013: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_f3d_material_014: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_f3dlite_material_001: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_f3dlite_material_002: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_f3dlite_material_007: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_f3dlite_material_009: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_fence: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_flag: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_flowers: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_gallows1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_grate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_ground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_leaf1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_leaves: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_moon1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_moon2: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_office1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_parking: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_path: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_roof1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_rope: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_sand: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_sign: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_teeth: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_wall1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_water1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_water2: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/mat_revert_mk64_window1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/tracks/harbour/minimap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/minimap.png -------------------------------------------------------------------------------- /assets/tracks/harbour/moon1.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/moon1.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/moon2.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/moon2.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/noparking.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/noparking.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/office1.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/office1.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/parascode.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/parascode.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/paraseye.rgba32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/paraseye.rgba32 -------------------------------------------------------------------------------- /assets/tracks/harbour/parking.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/parking.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/pirate.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/pirate.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/road4.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/road4.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/rope.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/rope.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/sand.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/sand.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/seamless-green-lush-grass-texture-seamless-green-lush-grass-texture-fresh-backdrop-144751691.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/seamless-green-lush-grass-texture-seamless-green-lush-grass-texture-fresh-backdrop-144751691.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/seamless-wood-texture-free-76.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/seamless-wood-texture-free-76.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/superFXSteel.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/superFXSteel.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/teeth1.rgba32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/teeth1.rgba32 -------------------------------------------------------------------------------- /assets/tracks/harbour/water1.rgba32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/water1.rgba32 -------------------------------------------------------------------------------- /assets/tracks/harbour/water1_mesh_tri_0: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/tracks/harbour/water1_mesh_tri_1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/tracks/harbour/water1_mesh_vtx_0: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/tracks/harbour/water1_mesh_vtx_1: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/tracks/harbour/water3.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/water3.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/window.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/window.rgba16 -------------------------------------------------------------------------------- /assets/tracks/harbour/woodPlanks1.rgba16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/assets/tracks/harbour/woodPlanks1.rgba16 -------------------------------------------------------------------------------- /cmake/lus-cvars.cmake: -------------------------------------------------------------------------------- 1 | # kept for future reference 2 | #set(CVAR_VSYNC_ENABLED "${CVAR_PREFIX_SETTING}.VsyncEnabled") 3 | include("libultraship/cmake/cvars.cmake") 4 | -------------------------------------------------------------------------------- /courses/big_donut/course_offsets.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "course_offsets.h" 3 | 4 | 5 | -------------------------------------------------------------------------------- /courses/block_fort/course_offsets.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "course_offsets.h" 3 | #include 4 | -------------------------------------------------------------------------------- /courses/double_deck/course_offsets.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "course_offsets.h" 3 | -------------------------------------------------------------------------------- /courses/luigi_raceway/course_displaylists.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include "macros.h" 3 | 4 | #define d_course_luigi_raceway_packed_end GET_PACKED_END(d_course_luigi_raceway_packed_dl_C730) 5 | -------------------------------------------------------------------------------- /courses/mario_raceway/course_displaylists.h: -------------------------------------------------------------------------------- 1 | #ifndef MARIO_RACEWAY_DISPLAYLISTS_H 2 | #define MARIO_RACEWAY_DISPLAYLISTS_H 3 | 4 | #include 5 | #include "macros.h" 6 | 7 | #define d_course_mario_raceway_packed_end GET_PACKED_END(d_course_mario_raceway_packed_dl_6928) 8 | 9 | #endif // MARIO_RACEWAY_DISPLAYLISTS_H 10 | -------------------------------------------------------------------------------- /courses/staff_ghost_data.h: -------------------------------------------------------------------------------- 1 | #ifndef _STAFF_GHOST_DATA 2 | #define _STAFF_GHOST_DATA 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | extern StaffGhost d_mario_raceway_staff_ghost[]; 9 | extern StaffGhost d_royal_raceway_staff_ghost[]; 10 | extern StaffGhost d_luigi_raceway_staff_ghost[]; 11 | 12 | 13 | 14 | #endif // _STAFF_GHOST_DATA -------------------------------------------------------------------------------- /docs/MK64_Spaghetti_Adjusted_Kart_Setup.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/docs/MK64_Spaghetti_Adjusted_Kart_Setup.blend -------------------------------------------------------------------------------- /docs/actors/items.md: -------------------------------------------------------------------------------- 1 | @page items Items 2 | -------------------------------------------------------------------------------- /docs/actors/objects.md: -------------------------------------------------------------------------------- 1 | @page objects Objects 2 | # Objects 3 | -------------------------------------------------------------------------------- /docs/actors/vehicles.md: -------------------------------------------------------------------------------- 1 | @page vehicles Vehicles 2 | 3 | [TOC] 4 | 5 | See vehicles.h for defines and other configurable options. This includes how many of each vehicle to spawn. 6 | 7 | The game evenly disperses vehicles around their path even when spawning extra vehicles. 8 | 9 | # Trains 10 | * Follows a path containing only an x and z coordinate. 11 | * Y coordinate is hard-coded. 12 | * Some of the train path is generated to save space. 13 | 14 | 15 | # Cars & Trucks 16 | 17 | 18 | # Boats 19 | -------------------------------------------------------------------------------- /docs/basics/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/docs/basics/placeholder.png -------------------------------------------------------------------------------- /docs/change_viewport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/docs/change_viewport.png -------------------------------------------------------------------------------- /docs/courses/courses.md: -------------------------------------------------------------------------------- 1 | \page courses Courses 2 | # Courses 3 | 4 | -------------------------------------------------------------------------------- /docs/html/buttonimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/docs/html/buttonimage.png -------------------------------------------------------------------------------- /docs/images/buttonimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/docs/images/buttonimage.png -------------------------------------------------------------------------------- /docs/poweredbylus.darkmode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/docs/poweredbylus.darkmode.png -------------------------------------------------------------------------------- /docs/poweredbylus.lightmode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/docs/poweredbylus.lightmode.png -------------------------------------------------------------------------------- /docs/spaghettigithublight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/docs/spaghettigithublight.png -------------------------------------------------------------------------------- /docs/spaghettigithubnight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/docs/spaghettigithubnight.png -------------------------------------------------------------------------------- /docs/tutorials/audio.md: -------------------------------------------------------------------------------- 1 | @page tutorialaudio Audio 2 | -------------------------------------------------------------------------------- /docs/tutorials/boostramps.md: -------------------------------------------------------------------------------- 1 | \page boostramps Boost Ramps 2 | # Boost Ramps 3 | 4 | Boost ramps use a surface-type and is part of the course geography. 5 | -------------------------------------------------------------------------------- /docs/tutorials/paths.md: -------------------------------------------------------------------------------- 1 | @page paths Paths 2 | The game uses multiple types of course paths 3 | 4 | # Course Paths 5 | Used by courses 6 | 7 | 8 | # Horizontal Paths (no Y coordinate) 9 | Used by the train 10 | 11 | # Camera Rails 12 | Pathing for the camera during end of race scene, podium ceremony, and credits. 13 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/icon.png -------------------------------------------------------------------------------- /include/PR/libaudio.h: -------------------------------------------------------------------------------- 1 | #ifndef _ULTRA64_LIBAUDIO_H_ 2 | #define _ULTRA64_LIBAUDIO_H_ 3 | 4 | #include 5 | 6 | typedef struct { 7 | u8* offset; 8 | s32 len; 9 | } ALSeqData; 10 | 11 | typedef struct { 12 | s16 revision; 13 | s16 seqCount; 14 | ALSeqData seqArray[1]; 15 | } ALSeqFile; 16 | 17 | void alSeqFileNew(ALSeqFile* f, u8* base); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /include/assets/banshee_boardwalk_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_packed_dls[] = "__OTR__banshee_boardwalk_displaylists/d_course_banshee_boardwalk_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/banshee_boardwalk_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_banshee_boardwalk_vertex[] = "__OTR__banshee_boardwalk_vertices/d_course_banshee_boardwalk_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/big_donut_data.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_big_donut_dl[] = "__OTR__big_donut_data/d_course_big_donut_dl"; 8 | 9 | static const ALIGN_ASSET(2) char d_course_big_donut_item_box_spawns[] = "__OTR__big_donut_data/d_course_big_donut_item_box_spawns"; 10 | 11 | -------------------------------------------------------------------------------- /include/assets/big_donut_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_big_donut_packed_dls[] = "__OTR__big_donut_displaylists/d_course_big_donut_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/big_donut_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_big_donut_vertex[] = "__OTR__big_donut_vertices/d_course_big_donut_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/block_fort_data.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_block_fort_dl[] = "__OTR__block_fort_data/d_course_block_fort_dl"; 8 | 9 | static const ALIGN_ASSET(2) char d_course_block_fort_item_box_spawns[] = "__OTR__block_fort_data/d_course_block_fort_item_box_spawns"; 10 | 11 | -------------------------------------------------------------------------------- /include/assets/block_fort_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_block_fort_packed_dls[] = "__OTR__block_fort_displaylists/d_course_block_fort_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/block_fort_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_block_fort_vertex[] = "__OTR__block_fort_vertices/d_course_block_fort_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/bowsers_castle_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_bowsers_castle_packed_dls[] = "__OTR__bowsers_castle_displaylists/d_course_bowsers_castle_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/bowsers_castle_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_bowsers_castle_vertex[] = "__OTR__bowsers_castle_vertices/d_course_bowsers_castle_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/choco_mountain_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_choco_mountain_packed_dls[] = "__OTR__choco_mountain_displaylists/d_course_choco_mountain_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/choco_mountain_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_choco_mountain_vertex[] = "__OTR__choco_mountain_vertices/d_course_choco_mountain_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/dks_jungle_parkway_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_packed_dls[] = "__OTR__dks_jungle_parkway_displaylists/d_course_dks_jungle_parkway_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/dks_jungle_parkway_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_dks_jungle_parkway_vertex[] = "__OTR__dks_jungle_parkway_vertices/d_course_dks_jungle_parkway_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/double_deck_data.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_double_deck_dl[] = "__OTR__double_deck_data/d_course_double_deck_dl"; 8 | 9 | static const ALIGN_ASSET(2) char d_course_double_deck_item_box_spawns[] = "__OTR__double_deck_data/d_course_double_deck_item_box_spawns"; 10 | 11 | -------------------------------------------------------------------------------- /include/assets/double_deck_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_double_deck_packed_dls[] = "__OTR__double_deck_displaylists/d_course_double_deck_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/double_deck_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_double_deck_vertex[] = "__OTR__double_deck_vertices/d_course_double_deck_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/frappe_snowland_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_frappe_snowland_packed_dls[] = "__OTR__frappe_snowland_displaylists/d_course_frappe_snowland_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/frappe_snowland_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_frappe_snowland_vertex[] = "__OTR__frappe_snowland_vertices/d_course_frappe_snowland_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/kalimari_desert_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_kalimari_desert_packed_dls[] = "__OTR__kalimari_desert_displaylists/d_course_kalimari_desert_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/kalimari_desert_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_kalimari_desert_vertex[] = "__OTR__kalimari_desert_vertices/d_course_kalimari_desert_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/koopa_troopa_beach_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_packed_dls[] = "__OTR__koopa_troopa_beach_displaylists/d_course_koopa_troopa_beach_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/koopa_troopa_beach_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_koopa_troopa_beach_vertex[] = "__OTR__koopa_troopa_beach_vertices/d_course_koopa_troopa_beach_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/luigi_raceway_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_luigi_raceway_packed_dls[] = "__OTR__luigi_raceway_displaylists/d_course_mario_raceway_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/luigi_raceway_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_luigi_raceway_vertex[] = "__OTR__luigi_raceway_vertices/d_course_luigi_raceway_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/mario_raceway_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_mario_raceway_packed_dls[] = "__OTR__mario_raceway_displaylists/d_course_mario_raceway_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/mario_raceway_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_mario_raceway_vertex[] = "__OTR__mario_raceway_vertices/d_course_mario_raceway_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/moo_moo_farm_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_moo_moo_farm_packed_dls[] = "__OTR__moo_moo_farm_displaylists/d_course_moo_moo_farm_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/moo_moo_farm_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_moo_moo_farm_vertex[] = "__OTR__moo_moo_farm_vertices/d_course_moo_moo_farm_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/rainbow_road_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_rainbow_road_packed_dls[] = "__OTR__rainbow_road_displaylists/d_course_rainbow_road_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/rainbow_road_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_rainbow_road_vertex[] = "__OTR__rainbow_road_vertices/d_course_rainbow_road_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/royal_raceway_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_royal_raceway_packed_dls[] = "__OTR__royal_raceway_displaylists/d_course_royal_raceway_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/royal_raceway_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_royal_raceway_vertex[] = "__OTR__royal_raceway_vertices/d_course_royal_raceway_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/sherbet_land_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_sherbet_land_packed_dls[] = "__OTR__sherbet_land_displaylists/d_course_sherbet_land_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/sherbet_land_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_sherbet_land_vertex[] = "__OTR__sherbet_land_vertices/d_course_sherbet_land_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/skyscraper_data.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_skyscraper_dl[] = "__OTR__skyscraper_data/d_course_skyscraper_dl"; 8 | 9 | static const ALIGN_ASSET(2) char d_course_skyscraper_item_box_spawns[] = "__OTR__skyscraper_data/d_course_skyscraper_item_box_spawns"; 10 | 11 | -------------------------------------------------------------------------------- /include/assets/skyscraper_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_skyscraper_packed_dls[] = "__OTR__skyscraper_displaylists/d_course_skyscraper_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/skyscraper_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_skyscraper_vertex[] = "__OTR__skyscraper_vertices/d_course_skyscraper_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/some_data.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char gTLUTOnomatopoeia[] = "__OTR__some_data/gTLUTOnomatopoeia"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/sound/root.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | static const ALIGN_ASSET(2) char gSeqFontTableInit[] = "__OTR__sound/root/audio_seq_font_table"; 6 | 7 | -------------------------------------------------------------------------------- /include/assets/toads_turnpike_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_toads_turnpike_packed_dls[] = "__OTR__toads_turnpike_displaylists/d_course_toads_turnpike_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/toads_turnpike_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_toads_turnpike_vertex[] = "__OTR__toads_turnpike_vertices/d_course_toads_turnpike_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/wario_stadium_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_wario_stadium_packed_dls[] = "__OTR__wario_stadium_displaylists/d_course_wario_stadium_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/wario_stadium_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_wario_stadium_vertex[] = "__OTR__wario_stadium_vertices/d_course_wario_stadium_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/yoshi_valley_displaylists.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_yoshi_valley_packed_dls[] = "__OTR__yoshi_valley_displaylists/d_course_yoshi_valley_packed_dls"; 8 | 9 | -------------------------------------------------------------------------------- /include/assets/yoshi_valley_vertices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | static const ALIGN_ASSET(2) char d_course_yoshi_valley_vertex[] = "__OTR__yoshi_valley_vertices/d_course_yoshi_valley_vertex"; 8 | 9 | -------------------------------------------------------------------------------- /include/course.h: -------------------------------------------------------------------------------- 1 | #ifndef COURSE_H 2 | #define COURSE_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | /** 9 | * @file Include for course gfx.inc.c. 10 | */ 11 | 12 | typedef struct { 13 | Gfx* addr; 14 | u8 surfaceType; 15 | u8 sectionId; 16 | u16 flags; 17 | } TrackSections; 18 | 19 | #endif // COURSE_H 20 | -------------------------------------------------------------------------------- /include/decode.h: -------------------------------------------------------------------------------- 1 | #ifndef _FUNCTIONS_H_ 2 | #define _FUNCTIONS_H_ 3 | 4 | #include 5 | #ifdef TARGET_N64 6 | void mio0decode(u8* arg0, u8* arg1); 7 | #endif 8 | 9 | // Unused mio0decode function. 10 | void func_80040030(u8* arg0, u8* arg1); 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /include/libc/math.h: -------------------------------------------------------------------------------- 1 | #ifndef MATH_H 2 | #define MATH_H 3 | 4 | #define M_PI 3.14159265358979323846 5 | 6 | float sinf(float); 7 | double sin(double); 8 | float cosf(float); 9 | double cos(double); 10 | 11 | float sqrtf(float); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /include/libc/stddef.h: -------------------------------------------------------------------------------- 1 | #ifndef STDDEF_H 2 | #define STDDEF_H 3 | 4 | #ifndef TARGET_N64 5 | #include 6 | #else 7 | #include 8 | #endif 9 | 10 | #ifndef offsetof 11 | #define offsetof(st, m) ((size_t) & (((st*) 0)->m)) 12 | #endif 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /include/libc/stdio.h: -------------------------------------------------------------------------------- 1 | #ifndef STDIO_H 2 | #define STDIO_H 3 | 4 | extern int sprintf(char* s, const char* fmt, ...); 5 | 6 | #endif 7 | -------------------------------------------------------------------------------- /include/libc/stdlib.h: -------------------------------------------------------------------------------- 1 | #ifndef STDLIB_H 2 | #define STDLIB_H 3 | 4 | typedef struct lldiv_t { 5 | long long quot; 6 | long long rem; 7 | } lldiv_t; 8 | 9 | typedef struct ldiv_t { 10 | long quot; 11 | long rem; 12 | } ldiv_t; 13 | 14 | lldiv_t lldiv(long long num, long long denom); 15 | ldiv_t ldiv(long num, long denom); 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /include/libc/string.h: -------------------------------------------------------------------------------- 1 | #ifndef STRING_H 2 | #define STRING_H 3 | 4 | #ifndef TARGET_N64 5 | #include 6 | #else 7 | #include 8 | #endif 9 | 10 | void* memcpy(void* dst, const void* src, size_t size); 11 | size_t strlen(const char* str); 12 | char* strchr(const char* str, s32 ch); 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /libultraship/.github/workflows/apt-deps.txt: -------------------------------------------------------------------------------- 1 | libsdl2-dev libpng-dev libglew-dev libzip-dev zipcmp zipmerge ziptool ninja-build nlohmann-json3-dev libtinyxml2-dev libspdlog-dev -------------------------------------------------------------------------------- /libultraship/.github/workflows/brew-deps.txt: -------------------------------------------------------------------------------- 1 | sdl2 libpng glew ninja libzip nlohmann-json tinyxml2 spdlog -------------------------------------------------------------------------------- /libultraship/cmake/dependencies/linux.cmake: -------------------------------------------------------------------------------- 1 | #=================== ImGui =================== 2 | find_package(SDL2 REQUIRED) 3 | target_link_libraries(ImGui PUBLIC SDL2::SDL2) 4 | 5 | if (USE_OPENGLES) 6 | target_link_libraries(ImGui PUBLIC ${OPENGL_GLESv2_LIBRARY}) 7 | add_compile_definitions(IMGUI_IMPL_OPENGL_ES3) 8 | else() 9 | target_link_libraries(ImGui PUBLIC ${OPENGL_opengl_LIBRARY}) 10 | endif() 11 | -------------------------------------------------------------------------------- /libultraship/cmake/dependencies/windows.cmake: -------------------------------------------------------------------------------- 1 | #=================== ImGui =================== 2 | target_sources(ImGui 3 | PRIVATE 4 | ${imgui_SOURCE_DIR}/backends/imgui_impl_dx11.cpp 5 | ${imgui_SOURCE_DIR}/backends/imgui_impl_win32.cpp 6 | ) 7 | 8 | find_package(SDL2 CONFIG REQUIRED) 9 | target_link_libraries(ImGui PUBLIC SDL2::SDL2 SDL2::SDL2main) 10 | 11 | find_package(GLEW REQUIRED) 12 | target_link_libraries(ImGui PUBLIC opengl32 GLEW::GLEW) 13 | -------------------------------------------------------------------------------- /libultraship/include/libultraship/bridge.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "public/bridge/resourcebridge.h" 4 | #include "public/bridge/audiobridge.h" 5 | #include "public/bridge/controllerbridge.h" 6 | #include "public/bridge/windowbridge.h" 7 | #include "public/bridge/consolevariablebridge.h" 8 | #include "public/bridge/crashhandlerbridge.h" 9 | #include "public/bridge/gfxdebuggerbridge.h" 10 | #include "public/bridge/gfxbridge.h" 11 | -------------------------------------------------------------------------------- /libultraship/include/libultraship/libultra/eeprom.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "message.h" 4 | 5 | #define EEPROM_TYPE_4K 0x01 6 | #define EEPROM_TYPE_16K 0x02 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | int32_t osEepromProbe(OSMesgQueue*); 13 | int32_t osEepromLongRead(OSMesgQueue*, uint8_t, uint8_t*, int32_t); 14 | int32_t osEepromLongWrite(OSMesgQueue*, uint8_t, uint8_t*, int32_t); 15 | 16 | #ifdef __cplusplus 17 | } 18 | #endif 19 | -------------------------------------------------------------------------------- /libultraship/include/libultraship/libultra/interrupt.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | typedef uint32_t OSIntMask; 6 | -------------------------------------------------------------------------------- /libultraship/include/libultraship/libultra/time.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "message.h" 4 | 5 | typedef u64 OSTime; 6 | 7 | typedef struct OSTimer { 8 | /* 0x00 */ struct OSTimer* next; 9 | /* 0x04 */ struct OSTimer* prev; 10 | /* 0x08 */ OSTime interval; 11 | /* 0x10 */ OSTime value; 12 | /* 0x18 */ OSMesgQueue* mq; 13 | /* 0x1C */ OSMesg msg; 14 | } OSTimer; // size = 0x20 15 | -------------------------------------------------------------------------------- /libultraship/include/libultraship/libultraship.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "libultra.h" 4 | #include "bridge.h" 5 | #include "color.h" 6 | #include "luslog.h" 7 | 8 | #ifdef __cplusplus 9 | #include "classes.h" 10 | #endif 11 | -------------------------------------------------------------------------------- /libultraship/include/libultraship/luslog.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "log/luslog.h" 4 | -------------------------------------------------------------------------------- /libultraship/src/controller/controldevice/ControlDevice.cpp: -------------------------------------------------------------------------------- 1 | #include "ControlDevice.h" 2 | 3 | namespace Ship { 4 | ControlDevice::ControlDevice(uint8_t portIndex) : mPortIndex(portIndex) { 5 | } 6 | 7 | ControlDevice::~ControlDevice() { 8 | } 9 | 10 | } // namespace Ship 11 | -------------------------------------------------------------------------------- /libultraship/src/controller/controldevice/ControlDevice.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace Ship { 6 | class ControlDevice { 7 | public: 8 | ControlDevice(uint8_t portIndex); 9 | virtual ~ControlDevice(); 10 | 11 | protected: 12 | uint8_t mPortIndex; 13 | }; 14 | } // namespace Ship 15 | -------------------------------------------------------------------------------- /libultraship/src/controller/controldevice/controller/mapping/ControllerInputMapping.cpp: -------------------------------------------------------------------------------- 1 | #include "ControllerInputMapping.h" 2 | 3 | namespace Ship { 4 | ControllerInputMapping::ControllerInputMapping(PhysicalDeviceType physicalDeviceType) 5 | : ControllerMapping(physicalDeviceType) { 6 | } 7 | 8 | ControllerInputMapping::~ControllerInputMapping() { 9 | } 10 | 11 | std::string ControllerInputMapping::GetPhysicalInputName() { 12 | return "Unknown"; 13 | } 14 | } // namespace Ship 15 | -------------------------------------------------------------------------------- /libultraship/src/controller/controldevice/controller/mapping/ControllerInputMapping.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "ControllerMapping.h" 5 | 6 | namespace Ship { 7 | 8 | class ControllerInputMapping : public ControllerMapping { 9 | public: 10 | ControllerInputMapping(PhysicalDeviceType physicalDeviceType); 11 | ~ControllerInputMapping(); 12 | virtual std::string GetPhysicalInputName(); 13 | }; 14 | } // namespace Ship 15 | -------------------------------------------------------------------------------- /libultraship/src/controller/controldevice/controller/mapping/sdl/SDLMapping.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace Ship { 6 | 7 | enum Axis { X = 0, Y = 1 }; 8 | enum AxisDirection { NEGATIVE = -1, POSITIVE = 1 }; 9 | 10 | } // namespace Ship 11 | -------------------------------------------------------------------------------- /libultraship/src/controller/physicaldevice/PhysicalDeviceType.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Ship { 4 | 5 | enum PhysicalDeviceType { Keyboard = 0, Mouse = 1, SDLGamepad = 2, Max = 3 }; 6 | 7 | } // namespace Ship 8 | -------------------------------------------------------------------------------- /libultraship/src/controller/physicaldevice/SDLAddRemoveDeviceEventHandler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "window/gui/GuiWindow.h" 4 | 5 | namespace Ship { 6 | 7 | class SDLAddRemoveDeviceEventHandler : public GuiWindow { 8 | public: 9 | using GuiWindow::GuiWindow; 10 | virtual ~SDLAddRemoveDeviceEventHandler(); 11 | 12 | protected: 13 | void InitElement() override; 14 | void DrawElement() override; 15 | void UpdateElement() override; 16 | }; 17 | } // namespace Ship 18 | -------------------------------------------------------------------------------- /libultraship/src/graphic/Fast3D/.gitrepo: -------------------------------------------------------------------------------- 1 | ; DO NOT EDIT (unless you know what you are doing) 2 | ; 3 | ; This subdirectory is a git "subrepo", and this file is maintained by the 4 | ; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme 5 | ; 6 | [subrepo] 7 | remote = https://github.com/Emill/n64-fast3d-engine 8 | branch = master 9 | commit = 7353aa30570682ef3bfe31cffc115f1561163270 10 | parent = 36d578a78dff501c380e24b2c41fda62c173ea20 11 | method = merge 12 | cmdver = 0.4.3 13 | -------------------------------------------------------------------------------- /libultraship/src/graphic/Fast3D/backends/gfx_direct3d11.h: -------------------------------------------------------------------------------- 1 | #ifdef ENABLE_DX11 2 | 3 | #ifndef GFX_DIRECT3D11_H 4 | #define GFX_DIRECT3D11_H 5 | 6 | #include "gfx_rendering_api.h" 7 | #include 8 | 9 | #endif 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /libultraship/src/graphic/Fast3D/backends/gfx_direct3d_common.cpp: -------------------------------------------------------------------------------- 1 | #if defined(ENABLE_DX11) || defined(ENABLE_DX12) 2 | 3 | #include 4 | 5 | #endif 6 | -------------------------------------------------------------------------------- /libultraship/src/graphic/Fast3D/backends/gfx_screen_config.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define DESIRED_SCREEN_WIDTH 640 4 | #define DESIRED_SCREEN_HEIGHT 480 5 | -------------------------------------------------------------------------------- /libultraship/src/install_config.h.in: -------------------------------------------------------------------------------- 1 | #define CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@" 2 | #cmakedefine NON_PORTABLE -------------------------------------------------------------------------------- /libultraship/src/port/mobile/MobileImpl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #include 7 | 8 | namespace Ship { 9 | 10 | class Mobile { 11 | public: 12 | static void ImGuiProcessEvent(bool wantsTextInput); 13 | static bool IsUsingTouchscreenControls(); 14 | static void EnableTouchArea(); 15 | static void DisableTouchArea(); 16 | static float GetCameraYaw(); 17 | static float GetCameraPitch(); 18 | }; 19 | }; // namespace Ship 20 | -------------------------------------------------------------------------------- /libultraship/src/public/bridge/controllerbridge.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | void ControllerBlockGameInput(uint16_t inputBlockId); 10 | void ControllerUnblockGameInput(uint16_t inputBlockId); 11 | 12 | #ifdef __cplusplus 13 | }; 14 | #endif 15 | -------------------------------------------------------------------------------- /libultraship/src/public/bridge/crashhandlerbridge.cpp: -------------------------------------------------------------------------------- 1 | #include "crashhandlerbridge.h" 2 | #include "Context.h" 3 | #include "debug/CrashHandler.h" 4 | 5 | void CrashHandlerRegisterCallback(CrashHandlerCallback callback) { 6 | Ship::Context::GetInstance()->GetCrashHandler()->RegisterCallback(callback); 7 | } 8 | -------------------------------------------------------------------------------- /libultraship/src/public/bridge/crashhandlerbridge.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | typedef void (*CrashHandlerCallback)(char*, size_t*); 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | void CrashHandlerRegisterCallback(CrashHandlerCallback callback); 12 | 13 | #ifdef __cplusplus 14 | } 15 | #endif 16 | -------------------------------------------------------------------------------- /libultraship/src/public/bridge/gfxdebuggerbridge.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | #ifdef __cplusplus 7 | extern "C" { 8 | #endif 9 | 10 | void GfxDebuggerRequestDebugging(); 11 | bool GfxDebuggerIsDebugging(); 12 | bool GfxDebuggerIsDebuggingRequested(); 13 | void GfxDebuggerDebugDisplayList(void* cmds); 14 | 15 | #ifdef __cplusplus 16 | }; 17 | #endif 18 | -------------------------------------------------------------------------------- /libultraship/src/public/bridge/windowbridge.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "stdint.h" 4 | 5 | #ifdef __cplusplus 6 | extern "C" { 7 | #endif 8 | 9 | bool WindowIsRunning(); 10 | uint32_t WindowGetWidth(); 11 | uint32_t WindowGetHeight(); 12 | float WindowGetAspectRatio(); 13 | int32_t WindowGetPosX(); 14 | int32_t WindowGetPosY(); 15 | bool WindowIsFullscreen(); 16 | 17 | #ifdef __cplusplus 18 | }; 19 | #endif 20 | -------------------------------------------------------------------------------- /libultraship/src/public/libultra/os_cache.cpp: -------------------------------------------------------------------------------- 1 | #include "libultraship/libultraship.h" 2 | 3 | extern "C" { 4 | 5 | void osWritebackDCacheAll() { 6 | } 7 | 8 | void osInvalICache(void* p, int32_t x) { 9 | } 10 | 11 | void osWritebackDCache(void* p, int32_t x) { 12 | } 13 | 14 | void osInvalDCache(void* p, int32_t l) { 15 | } 16 | } -------------------------------------------------------------------------------- /libultraship/src/public/libultra/os_vm.cpp: -------------------------------------------------------------------------------- 1 | #include "libultraship/libultraship.h" 2 | 3 | extern "C" { 4 | 5 | uintptr_t osVirtualToPhysical(void* addr) { 6 | return (uintptr_t)addr; 7 | } 8 | 9 | void osMapTLB(int32_t a, uint32_t b, void* c, uint32_t d, uint32_t e, uint32_t f) { 10 | } 11 | } -------------------------------------------------------------------------------- /libultraship/src/resource/ResourceFactoryBinary.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ResourceFactory.h" 4 | 5 | namespace Ship { 6 | class ResourceFactoryBinary : public ResourceFactory { 7 | protected: 8 | bool FileHasValidFormatAndReader(std::shared_ptr file, 9 | std::shared_ptr initData) override; 10 | }; 11 | } // namespace Ship 12 | -------------------------------------------------------------------------------- /libultraship/src/resource/ResourceFactoryXML.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "ResourceFactory.h" 4 | 5 | namespace Ship { 6 | class ResourceFactoryXML : public ResourceFactory { 7 | protected: 8 | bool FileHasValidFormatAndReader(std::shared_ptr file, 9 | std::shared_ptr initData) override; 10 | }; 11 | } // namespace Ship 12 | -------------------------------------------------------------------------------- /libultraship/src/resource/factory/BlobFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | #include "resource/ResourceFactoryBinary.h" 5 | 6 | namespace Ship { 7 | class ResourceFactoryBinaryBlobV0 final : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | }; // namespace Ship 13 | -------------------------------------------------------------------------------- /libultraship/src/resource/factory/JsonFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | #include "resource/ResourceFactoryBinary.h" 5 | 6 | namespace Ship { 7 | class ResourceFactoryBinaryJsonV0 final : public ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | }; // namespace Ship 13 | -------------------------------------------------------------------------------- /libultraship/src/resource/factory/LightFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | #include "resource/ResourceFactoryBinary.h" 5 | 6 | namespace Fast { 7 | class ResourceFactoryBinaryLightV0 final : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | } // namespace Fast -------------------------------------------------------------------------------- /libultraship/src/resource/factory/MatrixFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | #include "resource/ResourceFactoryBinary.h" 5 | 6 | namespace Fast { 7 | class ResourceFactoryBinaryMatrixV0 final : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | } // namespace Fast 13 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Blob.cpp: -------------------------------------------------------------------------------- 1 | #include "Blob.h" 2 | 3 | namespace Ship { 4 | Blob::Blob() : Resource(std::shared_ptr()) { 5 | } 6 | 7 | void* Blob::GetPointer() { 8 | return Data.data(); 9 | } 10 | 11 | size_t Blob::GetPointerSize() { 12 | return Data.size() * sizeof(uint8_t); 13 | } 14 | } // namespace Ship 15 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Blob.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | 5 | namespace Ship { 6 | class Blob final : public Ship::Resource { 7 | public: 8 | using Resource::Resource; 9 | 10 | Blob(); 11 | 12 | void* GetPointer() override; 13 | size_t GetPointerSize() override; 14 | 15 | std::vector Data; 16 | }; 17 | }; // namespace Ship 18 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Json.cpp: -------------------------------------------------------------------------------- 1 | #include "Json.h" 2 | 3 | namespace Ship { 4 | Json::Json() : Resource(std::shared_ptr()) { 5 | } 6 | 7 | void* Json::GetPointer() { 8 | return &Data; 9 | } 10 | 11 | size_t Json::GetPointerSize() { 12 | return DataSize * sizeof(char); 13 | } 14 | } // namespace Ship 15 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Json.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | #include 5 | 6 | namespace Ship { 7 | 8 | class Json final : public Resource { 9 | public: 10 | using Resource::Resource; 11 | 12 | Json(); 13 | 14 | void* GetPointer() override; 15 | size_t GetPointerSize() override; 16 | 17 | nlohmann::json Data; 18 | size_t DataSize; 19 | }; 20 | }; // namespace Ship 21 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Light.cpp: -------------------------------------------------------------------------------- 1 | #include "Light.h" 2 | 3 | namespace Fast { 4 | LightEntry* Light::GetPointer() { 5 | return &mLight; 6 | } 7 | 8 | size_t Light::GetPointerSize() { 9 | return sizeof(mLight); 10 | } 11 | } // namespace Fast -------------------------------------------------------------------------------- /libultraship/src/resource/type/Matrix.cpp: -------------------------------------------------------------------------------- 1 | #include "resource/type/Matrix.h" 2 | 3 | namespace Fast { 4 | Matrix::Matrix() : Resource(std::shared_ptr()) { 5 | } 6 | 7 | Mtx* Matrix::GetPointer() { 8 | return &Matrx; 9 | } 10 | 11 | size_t Matrix::GetPointerSize() { 12 | return sizeof(Mtx); 13 | } 14 | } // namespace Fast 15 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Matrix.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | #include "libultraship/libultra/types.h" 5 | 6 | namespace Fast { 7 | class Matrix final : public Ship::Resource { 8 | public: 9 | using Resource::Resource; 10 | 11 | Matrix(); 12 | 13 | Mtx* GetPointer() override; 14 | size_t GetPointerSize() override; 15 | 16 | Mtx Matrx; 17 | }; 18 | } // namespace Fast 19 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Shader.cpp: -------------------------------------------------------------------------------- 1 | #include "Shader.h" 2 | 3 | namespace Ship { 4 | Shader::Shader() : Resource(std::shared_ptr()) { 5 | } 6 | 7 | void* Shader::GetPointer() { 8 | return &Data; 9 | } 10 | 11 | size_t Shader::GetPointerSize() { 12 | return Data.size(); 13 | } 14 | } // namespace Ship 15 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Shader.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | namespace Ship { 5 | 6 | class Shader final : public Resource { 7 | public: 8 | using Resource::Resource; 9 | 10 | Shader(); 11 | 12 | void* GetPointer() override; 13 | size_t GetPointerSize() override; 14 | 15 | std::string Data; 16 | }; 17 | }; // namespace Ship 18 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Texture.cpp: -------------------------------------------------------------------------------- 1 | #include "resource/type/Texture.h" 2 | 3 | namespace Fast { 4 | Texture::Texture() : Resource(std::shared_ptr()) { 5 | } 6 | 7 | uint8_t* Texture::GetPointer() { 8 | return ImageData; 9 | } 10 | 11 | size_t Texture::GetPointerSize() { 12 | return ImageDataSize; 13 | } 14 | 15 | Texture::~Texture() { 16 | if (ImageData != nullptr) { 17 | delete[] ImageData; 18 | } 19 | } 20 | } // namespace Fast 21 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Vertex.cpp: -------------------------------------------------------------------------------- 1 | #include "resource/type/Vertex.h" 2 | #include "libultraship/libultra/gbi.h" 3 | 4 | namespace Fast { 5 | Vertex::Vertex() : Resource(std::shared_ptr()) { 6 | } 7 | 8 | Vtx* Vertex::GetPointer() { 9 | return VertexList.data(); 10 | } 11 | 12 | size_t Vertex::GetPointerSize() { 13 | return VertexList.size() * sizeof(Vtx); 14 | } 15 | } // namespace Fast 16 | -------------------------------------------------------------------------------- /libultraship/src/resource/type/Vertex.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | #include 5 | 6 | union Vtx; 7 | 8 | namespace Fast { 9 | class Vertex final : public Ship::Resource { 10 | public: 11 | using Resource::Resource; 12 | 13 | Vertex(); 14 | 15 | Vtx* GetPointer() override; 16 | size_t GetPointerSize() override; 17 | 18 | std::vector VertexList; 19 | }; 20 | } // namespace Fast 21 | -------------------------------------------------------------------------------- /libultraship/src/utils/binarytools/Stream.cpp: -------------------------------------------------------------------------------- 1 | #include "Stream.h" 2 | 3 | uint64_t Ship::Stream::GetBaseAddress() { 4 | return mBaseAddress; 5 | } 6 | -------------------------------------------------------------------------------- /libultraship/src/utils/glob.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | bool glob_match(char const* pat, char const* str); 8 | #ifdef __cplusplus 9 | }; 10 | #endif -------------------------------------------------------------------------------- /libultraship/src/utils/macUtils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | void toggleNativeMacOSFullscreen(SDL_Window* window); 8 | bool isNativeMacOSFullscreenActive(SDL_Window* window); 9 | #ifdef __cplusplus 10 | } 11 | #endif 12 | -------------------------------------------------------------------------------- /libultraship/src/utils/stox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | 5 | namespace Ship { 6 | bool stob(const std::string& s, bool defaultVal = false); 7 | int32_t stoi(const std::string& s, int32_t defaultVal = 0); 8 | float stof(const std::string& s, float defaultVal = 1.0f); 9 | int64_t stoll(const std::string& s, int64_t defaultVal = 0); 10 | } // namespace Ship -------------------------------------------------------------------------------- /libultraship/src/window/FileDropMgr.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace Ship { 4 | 5 | class FileDropMgr { 6 | public: 7 | FileDropMgr() = default; 8 | ~FileDropMgr(); 9 | void SetDroppedFile(char* path); 10 | void ClearDroppedFile(); 11 | bool FileDropped() const; 12 | char* GetDroppedFile() const; 13 | 14 | private: 15 | char* mPath = nullptr; 16 | bool mFileDropped = false; 17 | }; 18 | 19 | } // namespace Ship 20 | -------------------------------------------------------------------------------- /libultraship/src/window/gui/StatsWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "window/gui/GuiWindow.h" 4 | 5 | namespace Ship { 6 | class StatsWindow : public GuiWindow { 7 | public: 8 | using GuiWindow::GuiWindow; 9 | virtual ~StatsWindow(); 10 | 11 | private: 12 | void InitElement() override; 13 | void DrawElement() override; 14 | void UpdateElement() override; 15 | }; 16 | } // namespace Ship -------------------------------------------------------------------------------- /libultraship/src/window/gui/resource/Font.cpp: -------------------------------------------------------------------------------- 1 | #include "Font.h" 2 | 3 | namespace Ship { 4 | Font::Font() : Resource(std::shared_ptr()) { 5 | } 6 | 7 | Font::~Font() { 8 | if (Data != nullptr) { 9 | delete[] Data; 10 | } 11 | } 12 | 13 | void* Font::GetPointer() { 14 | return Data; 15 | } 16 | 17 | size_t Font::GetPointerSize() { 18 | return DataSize * sizeof(char); 19 | } 20 | } // namespace Ship 21 | -------------------------------------------------------------------------------- /libultraship/src/window/gui/resource/Font.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | 5 | namespace Ship { 6 | #define RESOURCE_TYPE_FONT 0x464F4E54 // FONT 7 | 8 | class Font : public Resource { 9 | public: 10 | using Resource::Resource; 11 | 12 | Font(); 13 | virtual ~Font(); 14 | 15 | void* GetPointer() override; 16 | size_t GetPointerSize() override; 17 | 18 | char* Data = nullptr; 19 | size_t DataSize; 20 | }; 21 | }; // namespace Ship 22 | -------------------------------------------------------------------------------- /libultraship/src/window/gui/resource/FontFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | #include "resource/ResourceFactoryBinary.h" 5 | 6 | namespace Ship { 7 | class ResourceFactoryBinaryFontV0 final : public ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | }; // namespace Ship 13 | -------------------------------------------------------------------------------- /libultraship/src/window/gui/resource/GuiTexture.cpp: -------------------------------------------------------------------------------- 1 | #include "GuiTexture.h" 2 | 3 | namespace Ship { 4 | GuiTexture::GuiTexture() : Resource(std::shared_ptr()) { 5 | } 6 | 7 | GuiTexture::~GuiTexture() { 8 | if (Data != nullptr) { 9 | stbi_image_free(Data); 10 | } 11 | } 12 | 13 | void* GuiTexture::GetPointer() { 14 | return Data; 15 | } 16 | 17 | size_t GuiTexture::GetPointerSize() { 18 | return DataSize * sizeof(uint8_t); 19 | } 20 | } // namespace Ship 21 | -------------------------------------------------------------------------------- /libultraship/src/window/gui/resource/GuiTextureFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | #include "resource/ResourceFactoryBinary.h" 5 | 6 | namespace Ship { 7 | class ResourceFactoryBinaryGuiTextureV0 final : public ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | }; // namespace Ship 13 | -------------------------------------------------------------------------------- /mods/C/compile.sh: -------------------------------------------------------------------------------- 1 | emcc test.c -o testc.wasm -O3 -s LINKABLE=1 -s EXPORT_ALL=1 -s PURE_WASI=1 2 | mkdir -p ../../build/mods/ 3 | rm ../../build/mods/test.wasm 4 | cp testc.wasm ../../build/mods/test.wasm -------------------------------------------------------------------------------- /mods/asc/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package-lock.json -------------------------------------------------------------------------------- /mods/asc/assembly/index.ts: -------------------------------------------------------------------------------- 1 | export function fib(n: i32): i32 { 2 | if (n <= 1) { 3 | return n; 4 | } 5 | return fib(n - 1) + fib(n - 2); 6 | } 7 | -------------------------------------------------------------------------------- /mods/asc/assembly/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "assemblyscript/std/assembly.json", 3 | "include": [ 4 | "./**/*.ts" 5 | ] 6 | } -------------------------------------------------------------------------------- /mods/asc/compile.sh: -------------------------------------------------------------------------------- 1 | npm run asbuild 2 | rm ../../build/test.wasm 3 | cp build/release.wasm ../../build/test.wasm -------------------------------------------------------------------------------- /mods/asc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /mods/asc/setup.sh: -------------------------------------------------------------------------------- 1 | npm install -------------------------------------------------------------------------------- /mods/asc/tests/index.js: -------------------------------------------------------------------------------- 1 | import assert from "assert"; 2 | import { add } from "../build/debug.js"; 3 | assert.strictEqual(add(1, 2), 3); 4 | console.log("ok"); 5 | -------------------------------------------------------------------------------- /mods/cython/compile.sh: -------------------------------------------------------------------------------- 1 | python setup.py build_ext --inplace 2 | rm ../../build/test.wasm 3 | cp test.cp311-wasm32_wasip1_threads.wasm ../../build/test.wasm -------------------------------------------------------------------------------- /mods/cython/setup.py: -------------------------------------------------------------------------------- 1 | from setuptools import setup 2 | from wasmpy_build import build_ext 3 | from Cython.Build import cythonize 4 | 5 | setup( 6 | name='Hello world app', 7 | ext_modules=cythonize("test.py"), 8 | cmdclass={"build_ext": build_ext}, 9 | ) -------------------------------------------------------------------------------- /mods/cython/test.py: -------------------------------------------------------------------------------- 1 | def fib(n): 2 | if n <= 1: 3 | return n 4 | return fib(n - 1) + fib(n - 2) -------------------------------------------------------------------------------- /mods/go/compile.sh: -------------------------------------------------------------------------------- 1 | GOOS=wasip1 GOARCH=wasm tinygo build -o testgo.wasm test.go 2 | rm ../../build/test.wasm 3 | cp testgo.wasm ../../build/test.wasm -------------------------------------------------------------------------------- /mods/go/test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | //export fib 4 | func fib(n uint32) uint32 { 5 | if (n <= 1) { 6 | return n 7 | } 8 | return fib(n - 1) + fib(n - 2) 9 | } 10 | 11 | // main is required for the `wasip1` target, even if it isn't used. 12 | func main() {} 13 | -------------------------------------------------------------------------------- /mods/js/compile.sh: -------------------------------------------------------------------------------- 1 | ~/Documents/bin/javy-x86_64-linux-v3.1.0 build mods/js/test.js -C wit=mods/js/test.wit -C wit-world=index-world -o testjs.wasm 2 | rm build/test.wasm 3 | cp testjs.wasm build/test.wasm -------------------------------------------------------------------------------- /mods/js/test.js: -------------------------------------------------------------------------------- 1 | 2 | export function fib(n) { // don't accept argument 3 | if (n <= 1){ 4 | return n; 5 | } 6 | return fib(n - 1) + fib(n - 2); 7 | } -------------------------------------------------------------------------------- /mods/js/test.wit: -------------------------------------------------------------------------------- 1 | package local:main; 2 | 3 | world index-world { 4 | export fib: func(); 5 | } -------------------------------------------------------------------------------- /mods/lua/compile.sh: -------------------------------------------------------------------------------- 1 | sudo docker pull ysugimoto/webassembly-lua 2 | sudo docker run --rm -v $PWD:/src ysugimoto/webassembly-lua emcc-lua 3 | rm ../../build/test.wasm 4 | cp testlua.wasm ../../build/test.wasm -------------------------------------------------------------------------------- /mods/lua/definition.yml: -------------------------------------------------------------------------------- 1 | functions: 2 | fib: 3 | return : int 4 | args: 5 | - int 6 | 7 | entry_file: test.lua 8 | output_file: testlua.wasm -------------------------------------------------------------------------------- /mods/lua/test.lua: -------------------------------------------------------------------------------- 1 | function fib(n) 2 | if n <= 1 then 3 | return n 4 | end 5 | return fib(n - 1) + fib(n - 2) 6 | end -------------------------------------------------------------------------------- /mods/ocaml/.gitignore: -------------------------------------------------------------------------------- 1 | *.byte 2 | *.wat 3 | *.js 4 | *.cmi 5 | *.cmo -------------------------------------------------------------------------------- /mods/ocaml/compile.sh: -------------------------------------------------------------------------------- 1 | ocamlfind ocamlc -package js_of_ocaml,js_of_ocaml-ppx,js_of_ocaml-lwt -linkpkg -o test.byte test.mli test.ml 2 | wasm_of_ocaml test.byte -------------------------------------------------------------------------------- /mods/ocaml/test.ml: -------------------------------------------------------------------------------- 1 | let rec fib n = if n <= 1 then n else fib (n - 1) + fib (n - 2) -------------------------------------------------------------------------------- /mods/ocaml/test.mli: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/mods/ocaml/test.mli -------------------------------------------------------------------------------- /mods/py/compile.sh: -------------------------------------------------------------------------------- 1 | python3.11 py2wasmtest.py test.py -o testpy.wasm 2 | rm ../../build/test.wasm 3 | cp testpy.wasm ../../build/test.wasm -------------------------------------------------------------------------------- /mods/py/py2wasmtest.py: -------------------------------------------------------------------------------- 1 | import re 2 | import sys 3 | from nuitka.__main__ import py2wasm 4 | if __name__ == '__main__': 5 | sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) 6 | sys.exit(py2wasm()) -------------------------------------------------------------------------------- /mods/py/setup.sh: -------------------------------------------------------------------------------- 1 | python3.11 -m pip install py2wasm 2 | -------------------------------------------------------------------------------- /mods/py/test.py: -------------------------------------------------------------------------------- 1 | def fib(n): 2 | if n <= 1: 3 | return n 4 | return fib(n - 1) + fib(n - 2) -------------------------------------------------------------------------------- /mods/py2many/.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | *.pyc 3 | __pycache__ -------------------------------------------------------------------------------- /mods/py2many/compile.sh: -------------------------------------------------------------------------------- 1 | py2many . --cpp=1 --outdir out 2 | echo "#include \"../export.cpp\"" >> out/main.cpp 3 | emcc out/main.cpp -o out/testpython.wasm -O3 -s LINKABLE=1 -s EXPORT_ALL=1 -s PURE_WASI=1 4 | rm ../../build/test.wasm 5 | cp out/testpython.wasm ../../build/test.wasm 6 | -------------------------------------------------------------------------------- /mods/py2many/export.cpp: -------------------------------------------------------------------------------- 1 | extern "C" { 2 | __attribute__((export_name("fib"))) int exp_fib(int n) { 3 | return fib(n); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /mods/py2many/main.py: -------------------------------------------------------------------------------- 1 | def fib(n): 2 | if n <= 1: 3 | return n 4 | return fib(n - 1) + fib(n - 2) 5 | 6 | if __name__=="__main__": 7 | pass 8 | -------------------------------------------------------------------------------- /mods/python-rust/.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: cargo 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "08:00" 8 | open-pull-requests-limit: 10 9 | -------------------------------------------------------------------------------- /mods/python-rust/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | Cargo.lock 4 | bin/ 5 | pkg/ 6 | wasm-pack.log 7 | -------------------------------------------------------------------------------- /mods/python-rust/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "python" 3 | version = "0.1.0" 4 | authors = ["coco875 "] 5 | edition = "2018" 6 | 7 | [lib] 8 | crate-type = ["cdylib"] 9 | 10 | [dependencies] 11 | rustpython = { git = "https://github.com/RustPython/RustPython", version = "0.4.0" } 12 | wasi = "0.11" 13 | -------------------------------------------------------------------------------- /mods/python-rust/compile.sh: -------------------------------------------------------------------------------- 1 | cargo build --target wasm32-wasip1 --lib --release 2 | rm ../../build/test.wasm 3 | cp target/wasm32-wasip1/release/rust.wasm ../../build/test.wasm -------------------------------------------------------------------------------- /mods/python-rust/setup.sh: -------------------------------------------------------------------------------- 1 | rustup target add wasm32-wasip1 2 | -------------------------------------------------------------------------------- /mods/python-rust/tests/web.rs: -------------------------------------------------------------------------------- 1 | //! Test suite for the Web and headless browsers. 2 | 3 | #![cfg(target_arch = "wasm32")] 4 | 5 | extern crate wasm_bindgen_test; 6 | use wasm_bindgen_test::*; 7 | 8 | wasm_bindgen_test_configure!(run_in_browser); 9 | 10 | #[wasm_bindgen_test] 11 | fn pass() { 12 | assert_eq!(1 + 1, 2); 13 | } 14 | -------------------------------------------------------------------------------- /mods/rust/.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: cargo 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "08:00" 8 | open-pull-requests-limit: 10 9 | -------------------------------------------------------------------------------- /mods/rust/.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | Cargo.lock 4 | bin/ 5 | pkg/ 6 | wasm-pack.log 7 | -------------------------------------------------------------------------------- /mods/rust/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rust" 3 | version = "0.1.0" 4 | authors = ["coco875 "] 5 | edition = "2018" 6 | 7 | [lib] 8 | crate-type = ["cdylib"] 9 | 10 | [dependencies] 11 | wasi = "0.11" 12 | -------------------------------------------------------------------------------- /mods/rust/compile.sh: -------------------------------------------------------------------------------- 1 | cargo build --target wasm32-wasip1 --release 2 | rm ../../build/test.wasm 3 | cp target/wasm32-wasip1/release/rust.wasm ../../build/test.wasm -------------------------------------------------------------------------------- /mods/rust/setup.sh: -------------------------------------------------------------------------------- 1 | rustup target add wasm32-wasip1 2 | -------------------------------------------------------------------------------- /mods/rust/src/lib.rs: -------------------------------------------------------------------------------- 1 | #[no_mangle] 2 | pub fn fib(n: u32) -> u32 { 3 | if n <= 1 { 4 | return n; 5 | } 6 | return fib(n - 1) + fib(n - 2); 7 | } 8 | -------------------------------------------------------------------------------- /mods/rust/tests/web.rs: -------------------------------------------------------------------------------- 1 | //! Test suite for the Web and headless browsers. 2 | 3 | #![cfg(target_arch = "wasm32")] 4 | 5 | extern crate wasm_bindgen_test; 6 | use wasm_bindgen_test::*; 7 | 8 | wasm_bindgen_test_configure!(run_in_browser); 9 | 10 | #[wasm_bindgen_test] 11 | fn pass() { 12 | assert_eq!(1 + 1, 2); 13 | } 14 | -------------------------------------------------------------------------------- /port/assets/fonts/Fipps-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/port/assets/fonts/Fipps-Regular.otf -------------------------------------------------------------------------------- /port/assets/fonts/PressStart2P-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/port/assets/fonts/PressStart2P-Regular.ttf -------------------------------------------------------------------------------- /rename_sym.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | shopt -s globstar 4 | 5 | if [ "$#" -ne "2" ]; 6 | then 7 | echo "usage: $0 old_name new_name" 8 | exit 1 9 | fi 10 | 11 | #echo "Replace $1 with $2?" 12 | #read 13 | grep -rl "$1" asm/**/*.s data/*.s src/**/*.c src/audio/*.c src/**/*.h src/os/*.{c,h} courses/**/*.{c,h} undefined_syms.txt | xargs sed -i "s/\b$1\b/$2/g" 14 | -------------------------------------------------------------------------------- /spaghettikart.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/spaghettikart.ico -------------------------------------------------------------------------------- /src/actors/paddle_boat/update.inc.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | /** 5 | * @brief Updates the paddle boat actor. 6 | * Actor used in DK's Jungle Parkway. 7 | * Rotate only the paddle wheel, for position and rotation of the boat it's in vehicle. 8 | * 9 | * @param boat 10 | */ 11 | void update_actor_paddle_boat(struct PaddleWheelBoat* boat) { 12 | boat->wheelRot += 0x38E; 13 | } 14 | -------------------------------------------------------------------------------- /src/actors/wario_sign/update.inc.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | /** 4 | * @brief Updates the Wario sign actor. 5 | * Used in Wario Stadium. 6 | * 7 | * @param arg0 8 | */ 9 | void update_actor_wario_sign(struct Actor* arg0) { 10 | arg0->rot[1] += 0xB6; 11 | } 12 | -------------------------------------------------------------------------------- /src/audio/GameAudio.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | static struct { 7 | std::thread thread; 8 | std::condition_variable cv_to_thread, cv_from_thread; 9 | std::mutex mutex; 10 | bool running; 11 | bool processing; 12 | } audio; 13 | -------------------------------------------------------------------------------- /src/buffers/audio_heap.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include "audio_heap.h" 6 | #include "audio/data.h" 7 | 8 | ALIGNED8 u8 gAudioHeap[DOUBLE_SIZE_ON_64_BIT(AUDIO_HEAP_SIZE)]; 9 | -------------------------------------------------------------------------------- /src/buffers/audio_heap.h: -------------------------------------------------------------------------------- 1 | #ifndef AUDIO_HEAP_H 2 | #define AUDIO_HEAP_H 3 | 4 | #include 5 | #include 6 | 7 | #define AUDIO_HEAP_SIZE 0x48C00 8 | #define AUDIO_HEAP_INIT_SIZE 0x2600 9 | 10 | #endif // AUDIO_HEAP_H 11 | -------------------------------------------------------------------------------- /src/buffers/gfx_output_buffer.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "gfx_output_buffer.h" 4 | 5 | ALIGNED8 u64 gGfxSPTaskOutputBuffer[GFX_OUTPUT_BUFFER_SIZE]; 6 | 7 | u32 gGfxSPTaskOutputBufferSize; 8 | -------------------------------------------------------------------------------- /src/buffers/gfx_output_buffer.h: -------------------------------------------------------------------------------- 1 | #ifndef GFX_OUTPUT_BUFFER_H 2 | #define GFX_OUTPUT_BUFFER_H 3 | 4 | #include 5 | 6 | // 0x1f000 bytes, aligned to a 0x1000-byte boundary through sm64.ld. (This results 7 | // in a bunch of unused space: ~0x100 in JP, ~0x300 in US.) 8 | #define GFX_OUTPUT_BUFFER_SIZE 0x3f00 9 | 10 | // 0x3F00 11 | extern u64 gGfxSPTaskOutputBuffer[GFX_OUTPUT_BUFFER_SIZE]; 12 | 13 | #endif // GFX_OUTPUT_BUFFER_H 14 | -------------------------------------------------------------------------------- /src/buffers/memory_pool.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #define MEMORY_POOL_SIZE 0xAB630 6 | 7 | /** 8 | * Memory pool variable prevents code segments flowing into the memory pool 9 | * for easier portability. 10 | * @warning should not really be used. 11 | */ 12 | u8 sMemoryPool[MEMORY_POOL_SIZE]; 13 | -------------------------------------------------------------------------------- /src/buffers/random.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | u16 gRandomSeed16; 4 | u8 randomSeedPadding[216]; 5 | -------------------------------------------------------------------------------- /src/buffers/random.h: -------------------------------------------------------------------------------- 1 | #ifndef RANDOM_H 2 | #define RANDOM_H 3 | 4 | #include 5 | 6 | extern u16 gRandomSeed16; 7 | extern u8 randomSeedPadding[]; 8 | 9 | #endif // RANDOM_H 10 | -------------------------------------------------------------------------------- /src/buffers/trig_tables_bss.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | /** 5 | * Trig tables get loaded into memory at this location. 6 | * See trig_tables.c for the real file. 7 | */ 8 | 9 | #ifdef VERSION_EU 10 | ALIGNED8 u8 trigTablesPadding[0x5750]; 11 | #else 12 | ALIGNED8 u8 trigTablesPadding[0x5810]; 13 | #endif 14 | -------------------------------------------------------------------------------- /src/code_80091440.h: -------------------------------------------------------------------------------- 1 | #ifndef CODE_80091440_H 2 | #define CODE_80091440_H 3 | 4 | #include 5 | 6 | void func_80091440(s8); 7 | void func_800914A0(void); 8 | void func_800914E0(void); 9 | 10 | #endif // CODE_80091440_H 11 | -------------------------------------------------------------------------------- /src/code_800AF9B0.h: -------------------------------------------------------------------------------- 1 | #ifndef CODE_800AF9B0_H 2 | #define CODE_800AF9B0_H 3 | 4 | #include 5 | 6 | /* Function Prototypes */ 7 | void func_800AF9B0(void); 8 | void func_800B0004(void); 9 | 10 | #endif /* CODE_800AF9B0_H */ 11 | -------------------------------------------------------------------------------- /src/course_metadata.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #include 4 | #include 5 | 6 | extern Vec4f CurveTargetSpeed[]; 7 | extern Vec4f NormalTargetSpeed[]; 8 | extern Vec4f D_0D0096B8[]; 9 | extern Vec4f OffTrackTargetSpeed[]; 10 | -------------------------------------------------------------------------------- /src/crash_screen.h: -------------------------------------------------------------------------------- 1 | #ifndef CRASH_SCREEN_H 2 | #define CRASH_SCREEN_H 3 | 4 | #include 5 | #include 6 | 7 | extern u16* pFramebuffer; 8 | 9 | void crash_screen_set_framebuffer(u16*); 10 | 11 | #endif // CRASH_SCREEN_H 12 | -------------------------------------------------------------------------------- /src/ending/camera_junk.h: -------------------------------------------------------------------------------- 1 | #ifndef CAMERA_JUNK_H 2 | #define CAMERA_JUNK_H 3 | 4 | /* Function Prototypes */ 5 | 6 | void update_camera_podium_ceremony(void); 7 | void init_camera_podium_ceremony(void); 8 | 9 | // guPerspective params 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /src/ending/code_80280000.h: -------------------------------------------------------------------------------- 1 | #ifndef CODE_80280000_H 2 | #define CODE_80280000_H 3 | 4 | #include 5 | 6 | /* Function Prototypes */ 7 | 8 | void func_80280000(void); 9 | void func_80280038(void); 10 | void func_80280268(s32 arg0); 11 | void credits_loop(void); 12 | void load_credits(void); 13 | 14 | extern s32 D_802874A0; 15 | 16 | extern u16 D_80164714, D_80164716, D_80164718; 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /src/ending/code_80281C40.h: -------------------------------------------------------------------------------- 1 | #ifndef CODE_80281C40_H 2 | #define CODE_80281C40_H 3 | 4 | /* Function Prototypes */ 5 | 6 | void func_80281C40(void); 7 | void func_80281CB4(s32, s32, s32, s32); 8 | void func_80281D00(void); 9 | 10 | extern s32 gGotoMenu; 11 | extern u16 gIsInQuitToMenuTransition; 12 | extern Gfx D_00284F70[]; 13 | extern Gfx D_00284EE0[]; 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /src/engine/GameAPI.h: -------------------------------------------------------------------------------- 1 | #ifndef GAME_API_H 2 | #define GAME_API_H 3 | 4 | void* GetCourse(void); 5 | 6 | #endif // GAME_API_H -------------------------------------------------------------------------------- /src/engine/GarbageCollector.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include "Object.h" 6 | #include "World.h" 7 | 8 | 9 | void RunGarbageCollector(); 10 | void CleanActors(); 11 | void CleanStaticMeshActors(); 12 | void CleanObjects(); 13 | -------------------------------------------------------------------------------- /src/engine/Rulesets.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "World.h" 5 | 6 | class Rulesets { 7 | public: 8 | virtual void PreLoad(); 9 | virtual void PreInit(); 10 | virtual void PostInit(); 11 | }; 12 | -------------------------------------------------------------------------------- /src/engine/Smoke.h: -------------------------------------------------------------------------------- 1 | #ifndef _ENGINE_SMOKE_H 2 | #define _ENGINE_SMOKE_H 3 | 4 | void TrainSmokeTick(void); 5 | void TrainSmokeDraw(s32 cameraId); 6 | 7 | #endif // _ENGINE_SMOKE_H 8 | -------------------------------------------------------------------------------- /src/engine/actors/MarioSign.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "engine/Actor.h" 5 | #include "CoreMath.h" 6 | 7 | extern "C" { 8 | #include "common_structs.h" 9 | } 10 | 11 | class AMarioSign : public AActor { 12 | public: 13 | 14 | virtual ~AMarioSign() = default; 15 | explicit AMarioSign(FVector pos); 16 | 17 | virtual void Tick() override; 18 | virtual void Draw(Camera*) override; 19 | }; 20 | -------------------------------------------------------------------------------- /src/engine/actors/WarioSign.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "engine/Actor.h" 5 | #include "CoreMath.h" 6 | 7 | extern "C" { 8 | #include "common_structs.h" 9 | } 10 | 11 | class AWarioSign : public AActor { 12 | public: 13 | 14 | virtual ~AWarioSign() = default; 15 | explicit AWarioSign(FVector pos); 16 | 17 | virtual void Tick() override; 18 | virtual void Draw(Camera*) override; 19 | }; 20 | -------------------------------------------------------------------------------- /src/engine/editor/Handles.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "Handles.h" 5 | 6 | namespace Editor { 7 | Handles::Handles() { 8 | Pos = &pos; 9 | Rot = &rot; 10 | } 11 | 12 | void Handles::Load() { 13 | 14 | } 15 | 16 | void Handles::Tick() { 17 | 18 | } 19 | 20 | void Handles::Draw() { 21 | 22 | } 23 | } -------------------------------------------------------------------------------- /src/engine/editor/Handles.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include "GameObject.h" 6 | 7 | namespace Editor { 8 | class Handles : public GameObject { 9 | 10 | Handles(); 11 | 12 | virtual void Tick() override; 13 | virtual void Draw() override; 14 | virtual void Load() override; 15 | 16 | FVector pos; 17 | IRotator rot; 18 | }; 19 | } 20 | -------------------------------------------------------------------------------- /src/engine/items/Items.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/src/engine/items/Items.cpp -------------------------------------------------------------------------------- /src/engine/items/Items.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/src/engine/items/Items.h -------------------------------------------------------------------------------- /src/engine/particles/ParticleEmitter.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "ParticleEmitter.h" 4 | 5 | 6 | 7 | ParticleEmitter::ParticleEmitter() {} 8 | 9 | // Virtual functions to be overridden by derived classes 10 | void ParticleEmitter::Tick() { } 11 | void ParticleEmitter::Draw(s32 cameraId) { } 12 | 13 | bool ParticleEmitter::IsMod() { return false; } 14 | -------------------------------------------------------------------------------- /src/engine/readme.txt: -------------------------------------------------------------------------------- 1 | # Engine 2 | 3 | The replacement C++ engine which contains many code refactors for flexibility. -------------------------------------------------------------------------------- /src/engine/vehicles/Utils.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "Utils.h" 3 | 4 | extern "C" { 5 | #include "macros.h" 6 | #include "defines.h" 7 | #include "code_80005FD0.h" 8 | } 9 | 10 | uint32_t CalculateWaypointDistribution(size_t i, uint32_t numVehicles, size_t numWaypoints, uint32_t centerWaypoint) { 11 | return (uint32_t)(((i * numWaypoints) / numVehicles) + centerWaypoint) % numWaypoints; 12 | } 13 | -------------------------------------------------------------------------------- /src/engine/vehicles/Utils.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | uint32_t CalculateWaypointDistribution(size_t i, uint32_t numVehicles, size_t numWaypoints, uint32_t centerWaypoint); 6 | -------------------------------------------------------------------------------- /src/engine/wasm.h: -------------------------------------------------------------------------------- 1 | void load_wasm(); 2 | void call_render_hook(); -------------------------------------------------------------------------------- /src/enhancements/collision_viewer.h: -------------------------------------------------------------------------------- 1 | #ifndef COLLISION_VIEWER_H 2 | #define COLLISION_VIEWER_H 3 | 4 | #include 5 | 6 | void render_collision(void); 7 | 8 | #endif // COLLISION_VIEWER_H 9 | -------------------------------------------------------------------------------- /src/enhancements/moon_jump.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "main.h" 3 | #include "code_800029B0.h" 4 | #include "common_structs.h" 5 | 6 | void moon_jump(Player* player, struct Controller* controller) { 7 | if (controller->button & L_TRIG) { 8 | if (player->velocity[1] <= 3.2f) { 9 | player->velocity[1] += 0.5f; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/enhancements/moon_jump.h: -------------------------------------------------------------------------------- 1 | #ifndef _MOON_JUMP_H 2 | #define _MOON_JUMP_H 3 | 4 | #include 5 | #include "main.h" 6 | #include "code_800029B0.h" 7 | 8 | void moon_jump(Player*, struct Controller*); 9 | 10 | #endif // _MOON_JUMP_H -------------------------------------------------------------------------------- /src/networking/replication.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "networking.h" 3 | #include "main.h" 4 | 5 | void replicate_player(const char* data) { 6 | // gPlayerOne->pos[0]; 7 | // send_data_packet(client, PACKET_PLAYER, &gPlayerOne, sizeof(Player)); 8 | } 9 | 10 | void ActorReplication() { 11 | } 12 | 13 | void ObjectReplication() { 14 | } 15 | -------------------------------------------------------------------------------- /src/os/NaN.c: -------------------------------------------------------------------------------- 1 | typedef union { 2 | int i; 3 | float f; 4 | } fu; 5 | const fu NAN = { 0x7f810000 }; 6 | -------------------------------------------------------------------------------- /src/os/__osAiDeviceBusy.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | 4 | s32 __osAiDeviceBusy(void) { 5 | register s32 status = HW_REG(AI_STATUS_REG, u32); 6 | if ((status & AI_STATUS_AI_FULL) != 0) { 7 | return 1; 8 | } else { 9 | return 0; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/os/__osAtomicDec.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | s32 __osAtomicDec(u32* a0) { 4 | s32 sp1c; 5 | s32 sp18; 6 | sp1c = __osDisableInt(); 7 | 8 | if (*a0 != 0) { 9 | (*a0)--; 10 | sp18 = 1; 11 | } else { 12 | sp18 = 0; 13 | } 14 | 15 | __osRestoreInt(sp1c); 16 | return sp18; 17 | } 18 | -------------------------------------------------------------------------------- /src/os/__osEPiRawReadIo.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | 4 | s32 __osEPiRawReadIo(OSPiHandle* arg0, u32 devAddr, u32* data) { 5 | register s32 stat; 6 | while (stat = HW_REG(PI_STATUS_REG, s32), stat & (PI_STATUS_BUSY | PI_STATUS_IOBUSY | PI_STATUS_ERROR)) { 7 | ; 8 | } 9 | *data = HW_REG(arg0->baseAddress | devAddr, s32); 10 | return 0; 11 | } 12 | -------------------------------------------------------------------------------- /src/os/__osGetCurrFaultedThread.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | OSThread* __osGetCurrFaultedThread() { 4 | return __osActiveQueue; // 80302efc 5 | } 6 | -------------------------------------------------------------------------------- /src/os/__osResetGlobalIntMask.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "new_func.h" 3 | 4 | void __osResetGlobalIntMask(u32 mask) { 5 | register u32 prev; 6 | prev = __osDisableInt(); 7 | __OSGlobalIntMask &= ~(-0x402 & mask); 8 | __osRestoreInt(prev); 9 | } 10 | -------------------------------------------------------------------------------- /src/os/__osSetGlobalIntMask.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | #include "new_func.h" 4 | 5 | void __osSetGlobalIntMask(s32 arg0) { 6 | register u32 prev = __osDisableInt(); 7 | __OSGlobalIntMask |= arg0; 8 | __osRestoreInt(prev); 9 | } 10 | -------------------------------------------------------------------------------- /src/os/__osSiDeviceBusy.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | 4 | s32 __osSiDeviceBusy() { 5 | register u32 status; 6 | status = HW_REG(SI_STATUS_REG, u32); 7 | if (status & (SI_STATUS_DMA_BUSY | SI_STATUS_IO_READ_BUSY)) { 8 | return 1; 9 | } else { 10 | return 0; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/os/__osSiRawReadIo.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | 4 | s32 __osSiRawReadIo(void* a0, u32* a1) { 5 | if (__osSiDeviceBusy()) { 6 | return -1; 7 | } 8 | *a1 = HW_REG((uintptr_t) a0, u32); 9 | return 0; 10 | } 11 | -------------------------------------------------------------------------------- /src/os/__osSiRawWriteIo.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | 4 | s32 __osSiRawWriteIo(void* a0, u32 a1) { 5 | if (__osSiDeviceBusy()) { 6 | return -1; 7 | } 8 | HW_REG((uintptr_t) a0, u32) = a1; 9 | return 0; 10 | } 11 | -------------------------------------------------------------------------------- /src/os/__osSpDeviceBusy.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | 4 | s32 __osSpDeviceBusy() { 5 | register u32 status = HW_REG(SP_STATUS_REG, u32); 6 | if (status & (SP_STATUS_IO_FULL | SP_STATUS_DMA_FULL | SP_STATUS_DMA_BUSY)) { 7 | return 1; 8 | } 9 | return 0; 10 | } 11 | -------------------------------------------------------------------------------- /src/os/__osSpGetStatus.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | 4 | u32 __osSpGetStatus() { 5 | return HW_REG(SP_STATUS_REG, u32); 6 | } 7 | -------------------------------------------------------------------------------- /src/os/__osSpSetPc.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | 4 | s32 __osSpSetPc(void* pc) { 5 | register u32 status = HW_REG(SP_STATUS_REG, u32); 6 | if (!(status & SP_CLR_HALT)) { 7 | return -1; 8 | } else { 9 | HW_REG(SP_PC_REG, void*) = pc; 10 | return 0; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/os/__osSpSetStatus.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | 4 | void __osSpSetStatus(u32 status) { 5 | HW_REG(SP_STATUS_REG, u32) = status; 6 | } 7 | -------------------------------------------------------------------------------- /src/os/__osViGetCurrentContext.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | extern OSViContext* __osViCurr; 4 | 5 | OSViContext* __osViGetCurrentContext() { 6 | return __osViCurr; 7 | } 8 | -------------------------------------------------------------------------------- /src/os/guNormalize.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | void guNormalize(f32* x, f32* y, f32* z) { 4 | f32 tmp = 1.0f / sqrtf(*x * *x + *y * *y + *z * *z); 5 | *x = *x * tmp; 6 | *y = *y * tmp; 7 | *z = *z * tmp; 8 | } 9 | -------------------------------------------------------------------------------- /src/os/guScaleF.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "port/interpolation/FrameInterpolation.h" 3 | 4 | void guScaleF(float mf[4][4], float x, float y, float z) { 5 | guMtxIdentF(mf); 6 | mf[0][0] = x; 7 | mf[1][1] = y; 8 | mf[2][2] = z; 9 | mf[3][3] = 1.0; 10 | } 11 | 12 | void guScale(Mtx* m, float x, float y, float z) { 13 | float mf[4][4]; 14 | guScaleF(mf, x, y, z); 15 | FrameInterpolation_RecordMatrixMtxFToMtx((MtxF*) mf, m); 16 | guMtxF2L(mf, m); 17 | } 18 | -------------------------------------------------------------------------------- /src/os/guTranslateF.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "port/interpolation/FrameInterpolation.h" 3 | 4 | void guTranslateF(float m[4][4], float x, float y, float z) { 5 | guMtxIdentF(m); 6 | m[3][0] = x; 7 | m[3][1] = y; 8 | m[3][2] = z; 9 | } 10 | 11 | void guTranslate(Mtx* m, float x, float y, float z) { 12 | float mf[4][4]; 13 | guTranslateF(mf, x, y, z); 14 | FrameInterpolation_RecordMatrixMtxFToMtx((MtxF*) mf, m); 15 | guMtxF2L(mf, m); 16 | } 17 | -------------------------------------------------------------------------------- /src/os/osAi.h: -------------------------------------------------------------------------------- 1 | #ifndef _OSAI_H_ 2 | #define _OSAI_H_ 3 | 4 | s32 osAiSetFrequency(u32); 5 | s32 osAiSetNextBuffer(void*, u32); 6 | u32 osAiGetLength(void); 7 | #endif 8 | -------------------------------------------------------------------------------- /src/os/osAiGetLength.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "osAi.h" 3 | #include "hardware.h" 4 | 5 | u32 osAiGetLength() { 6 | return HW_REG(AI_LEN_REG, u32); 7 | } 8 | -------------------------------------------------------------------------------- /src/os/osCreateMesgQueue.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | void osCreateMesgQueue(OSMesgQueue* mq, OSMesg* msgBuf, s32 count) { 4 | mq->mtqueue = (OSThread*) &__osThreadTail.next; 5 | mq->fullqueue = (OSThread*) &__osThreadTail.next; 6 | mq->validCount = 0; 7 | mq->first = 0; 8 | mq->msgCount = count; 9 | mq->msg = msgBuf; 10 | } 11 | -------------------------------------------------------------------------------- /src/os/osEepromProbe.c: -------------------------------------------------------------------------------- 1 | #include "macros.h" 2 | #include "libultra_internal.h" 3 | #include "controller.h" 4 | 5 | s32 __osEepStatus(OSMesgQueue*, OSContStatus*); 6 | s32 osEepromProbe(OSMesgQueue* mq) { 7 | s32 ret = 0; 8 | OSContStatus status; 9 | 10 | __osSiGetAccess(); 11 | ret = __osEepStatus(mq, &status); 12 | ret = (ret == 0 && (status.type & CONT_EEPROM) != 0) ? EEPROM_TYPE_4K : 0; 13 | __osSiRelAccess(); 14 | return ret; 15 | } 16 | -------------------------------------------------------------------------------- /src/os/osGetThreadPri.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | OSPri osGetThreadPri(OSThread* thread) { 4 | if (thread == NULL) { 5 | thread = __osRunningThread; 6 | } 7 | return thread->priority; 8 | } 9 | -------------------------------------------------------------------------------- /src/os/osGetTime.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | extern OSTime __osCurrentTime; 4 | extern u32 __osBaseCounter; 5 | 6 | OSTime osGetTime() { 7 | u32 tmptime; 8 | u32 elapseCount; 9 | OSTime currentCount; 10 | register u32 saveMask; 11 | saveMask = __osDisableInt(); 12 | tmptime = osGetCount(); 13 | elapseCount = tmptime - __osBaseCounter; 14 | currentCount = __osCurrentTime; 15 | __osRestoreInt(saveMask); 16 | return currentCount + elapseCount; 17 | } 18 | -------------------------------------------------------------------------------- /src/os/osPiGetCmdQueue.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | extern OSMgrArgs __osPiDevMgr; 4 | 5 | OSMesgQueue* osPiGetCmdQueue(void) { 6 | if (!__osPiDevMgr.initialized) { 7 | return NULL; 8 | } 9 | return __osPiDevMgr.cmdQueue; 10 | } 11 | -------------------------------------------------------------------------------- /src/os/osPiRawReadIo.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "hardware.h" 3 | 4 | extern u32 osRomBase; 5 | 6 | s32 osPiRawReadIo(u32 a0, u32* a1) { 7 | register int status; 8 | status = HW_REG(PI_STATUS_REG, u32); 9 | while (status & (PI_STATUS_BUSY | PI_STATUS_IOBUSY | PI_STATUS_ERROR)) { 10 | status = HW_REG(PI_STATUS_REG, u32); 11 | } 12 | *a1 = HW_REG(osRomBase | a0, u32); 13 | return 0; 14 | } 15 | -------------------------------------------------------------------------------- /src/os/osSetTime.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | extern OSTime __osCurrentTime; 4 | 5 | void osSetTime(OSTime time) { 6 | __osCurrentTime = time; 7 | } 8 | -------------------------------------------------------------------------------- /src/os/osSpTaskYield.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | void osSpTaskYield(void) { 4 | __osSpSetStatus(SPSTATUS_SET_SIGNAL0); 5 | } 6 | -------------------------------------------------------------------------------- /src/os/osViBlack.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "libultra_internal.h" 3 | 4 | extern OSViContext* __osViNext; 5 | 6 | //! @todo name magic constants 7 | void osViBlack(u8 active) { 8 | register u32 int_disabled = __osDisableInt(); 9 | if (active) { 10 | __osViNext->state |= 0x20; 11 | } else { 12 | __osViNext->state &= ~0x20; 13 | } 14 | __osRestoreInt(int_disabled); 15 | } 16 | -------------------------------------------------------------------------------- /src/os/osViSetEvent.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | extern OSViContext* __osViNext; 4 | 5 | void osViSetEvent(OSMesgQueue* mq, OSMesg msg, u32 retraceCount) { 6 | register u32 int_disabled = __osDisableInt(); 7 | (__osViNext)->mq = mq; 8 | (__osViNext)->msg = msg; 9 | (__osViNext)->retraceCount = retraceCount; 10 | __osRestoreInt(int_disabled); 11 | } 12 | -------------------------------------------------------------------------------- /src/os/osViSetMode.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | extern OSViContext* __osViNext; 4 | 5 | void osViSetMode(OSViMode* mode) { 6 | register u32 int_disabled = __osDisableInt(); 7 | __osViNext->modep = mode; 8 | __osViNext->state = 1; 9 | __osViNext->features = __osViNext->modep->comRegs.ctrl; 10 | __osRestoreInt(int_disabled); 11 | } 12 | -------------------------------------------------------------------------------- /src/os/osViSwapBuffer.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | extern OSViContext* __osViNext; 4 | 5 | void osViSwapBuffer(void* vaddr) { 6 | u32 int_disabled = __osDisableInt(); 7 | __osViNext->buffer = vaddr; 8 | //! @todo figure out what this flag means 9 | __osViNext->unk00 |= 0x10; 10 | __osRestoreInt(int_disabled); 11 | } 12 | -------------------------------------------------------------------------------- /src/os/osVirtualToPhysical.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | 3 | uintptr_t osVirtualToPhysical(void* addr) { 4 | if ((uintptr_t) addr >= 0x80000000 && (uintptr_t) addr < 0xa0000000) { 5 | return ((uintptr_t) addr & 0x1fffffff); 6 | } else if ((uintptr_t) addr >= 0xa0000000 && (uintptr_t) addr < 0xc0000000) { 7 | return ((uintptr_t) addr & 0x1fffffff); 8 | } else { 9 | return __osProbeTLB(addr); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/os/osYieldThread.c: -------------------------------------------------------------------------------- 1 | #include "libultra_internal.h" 2 | #include "osint.h" 3 | 4 | void osYieldThread(void) { 5 | register u32 saveMask = __osDisableInt(); 6 | __osRunningThread->state = OS_STATE_RUNNABLE; 7 | __osEnqueueAndYield(&__osRunQueue); 8 | __osRestoreInt(saveMask); 9 | } 10 | -------------------------------------------------------------------------------- /src/port/GameExtractor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Companion.h" 4 | #include 5 | #include 6 | #include 7 | 8 | class GameExtractor { 9 | public: 10 | static bool GenAssetFile(); 11 | std::optional ValidateChecksum() const; 12 | bool SelectGameFromUI(); 13 | bool GenerateOTR() const; 14 | private: 15 | fs::path mGamePath; 16 | std::vector mGameData; 17 | }; 18 | -------------------------------------------------------------------------------- /src/port/ShipUtils.h: -------------------------------------------------------------------------------- 1 | #ifndef SHIP_UTILS_H 2 | #define SHIP_UTILS_H 3 | 4 | #include 5 | 6 | #ifdef __cplusplus 7 | 8 | void LoadGuiTextures(); 9 | 10 | extern "C" { 11 | #endif 12 | 13 | bool Ship_IsCStringEmpty(const char* str); 14 | 15 | #ifdef __cplusplus 16 | } 17 | #endif 18 | 19 | #endif // SHIP_UTILS_H 20 | -------------------------------------------------------------------------------- /src/port/Variables.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | extern "C" { 5 | 6 | u64 osClockRate = 62500000; 7 | } 8 | -------------------------------------------------------------------------------- /src/port/resource/importers/ActorSpawnDataFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Resource.h" 4 | #include "ResourceFactoryBinary.h" 5 | 6 | namespace MK64 { 7 | class ResourceFactoryBinaryActorSpawnDataV0 : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | 13 | } // namespace MK64 14 | -------------------------------------------------------------------------------- /src/port/resource/importers/ArrayFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "resource/Resource.h" 4 | #include "resource/ResourceFactoryBinary.h" 5 | 6 | namespace MK64 { 7 | class ResourceFactoryBinaryArrayV0 : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, std::shared_ptr initData) override; 10 | }; 11 | } // namespace MK64 12 | -------------------------------------------------------------------------------- /src/port/resource/importers/AudioBankFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Resource.h" 4 | #include "ResourceFactoryBinary.h" 5 | 6 | namespace SM64 { 7 | class AudioBankFactoryV0 : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | } // namespace SM64 13 | -------------------------------------------------------------------------------- /src/port/resource/importers/AudioSampleFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Resource.h" 4 | #include "ResourceFactoryBinary.h" 5 | 6 | namespace SM64 { 7 | class AudioSampleFactoryV0 : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | } // namespace SM64 13 | -------------------------------------------------------------------------------- /src/port/resource/importers/CPUFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Resource.h" 4 | #include "ResourceFactoryBinary.h" 5 | 6 | namespace MK64 { 7 | class ResourceFactoryBinaryCPUV0 : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | 13 | } // namespace MK64 14 | -------------------------------------------------------------------------------- /src/port/resource/importers/CourseVtxFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Resource.h" 4 | #include "ResourceFactoryBinary.h" 5 | 6 | namespace MK64 { 7 | class ResourceFactoryBinaryCourseVtxV0 : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | 13 | } // namespace MK64 14 | -------------------------------------------------------------------------------- /src/port/resource/importers/GenericArrayFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Resource.h" 4 | #include "ResourceFactoryBinary.h" 5 | 6 | namespace SF64 { 7 | class ResourceFactoryBinaryGenericArrayV0 : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | }; // namespace SF64 13 | -------------------------------------------------------------------------------- /src/port/resource/importers/Vec3fFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Resource.h" 4 | #include "ResourceFactoryBinary.h" 5 | 6 | namespace SF64 { 7 | class ResourceFactoryBinaryVec3fV0 : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | }; // namespace SF64 13 | -------------------------------------------------------------------------------- /src/port/resource/importers/Vec3sFactory.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Resource.h" 4 | #include "ResourceFactoryBinary.h" 5 | 6 | namespace SF64 { 7 | class ResourceFactoryBinaryVec3sV0 : public Ship::ResourceFactoryBinary { 8 | public: 9 | std::shared_ptr ReadResource(std::shared_ptr file, 10 | std::shared_ptr initData) override; 11 | }; 12 | }; // namespace SF64 13 | -------------------------------------------------------------------------------- /src/port/resource/type/Animation.cpp: -------------------------------------------------------------------------------- 1 | #include "Animation.h" 2 | 3 | namespace SF64 { 4 | AnimationData* Animation::GetPointer() { 5 | return &mData; 6 | } 7 | 8 | size_t Animation::GetPointerSize() { 9 | return sizeof(mData); 10 | } 11 | } // namespace SF64 12 | -------------------------------------------------------------------------------- /src/port/resource/type/AudioSequence.cpp: -------------------------------------------------------------------------------- 1 | #include "AudioSequence.h" 2 | 3 | namespace SM64 { 4 | AudioSequenceData* AudioSequence::GetPointer() { 5 | return &mData; 6 | } 7 | 8 | size_t AudioSequence::GetPointerSize() { 9 | return sizeof(mData); 10 | } 11 | } -------------------------------------------------------------------------------- /src/port/resource/type/CPU.cpp: -------------------------------------------------------------------------------- 1 | #include "CPU.h" 2 | #include "libultraship/libultra/gbi.h" 3 | 4 | namespace MK64 { 5 | CPU::CPU() : Resource(std::shared_ptr()) { 6 | } 7 | 8 | CPUBehaviour* CPU::GetPointer() { 9 | return CPUList.data(); 10 | } 11 | 12 | size_t CPU::GetPointerSize() { 13 | return CPUList.size() * sizeof(CPUBehaviour); 14 | } 15 | } // namespace MK64 16 | -------------------------------------------------------------------------------- /src/port/resource/type/ColPoly.cpp: -------------------------------------------------------------------------------- 1 | #include "ColPoly.h" 2 | 3 | namespace SF64 { 4 | ColPolyData* ColPoly::GetPointer() { 5 | return mColPolys.data(); 6 | } 7 | 8 | size_t ColPoly::GetPointerSize() { 9 | return sizeof(mColPolys); 10 | } 11 | } // namespace SF64 12 | -------------------------------------------------------------------------------- /src/port/resource/type/CourseVtx.cpp: -------------------------------------------------------------------------------- 1 | #include "CourseVtx.h" 2 | #include "libultraship/libultra/gbi.h" 3 | 4 | namespace MK64 { 5 | CourseVtxClass::CourseVtxClass() : Resource(std::shared_ptr()) { 6 | } 7 | 8 | CourseVtxData* CourseVtxClass::GetPointer() { 9 | return CourseVtxList.data(); 10 | } 11 | 12 | size_t CourseVtxClass::GetPointerSize() { 13 | return CourseVtxList.size() * sizeof(CourseVtxData); 14 | } 15 | } // namespace MK64 16 | -------------------------------------------------------------------------------- /src/port/resource/type/EnvSettings.cpp: -------------------------------------------------------------------------------- 1 | #include "EnvSettings.h" 2 | 3 | namespace SF64 { 4 | EnvSettingsData* EnvSettings::GetPointer() { 5 | return &mSettings; 6 | } 7 | 8 | size_t EnvSettings::GetPointerSize() { 9 | return sizeof(EnvSettingsData); 10 | } 11 | } // namespace SF64 12 | -------------------------------------------------------------------------------- /src/port/resource/type/GenericArray.cpp: -------------------------------------------------------------------------------- 1 | #include "GenericArray.h" 2 | 3 | namespace SF64 { 4 | uint8_t* GenericArray::GetPointer() { 5 | return mData.data(); 6 | } 7 | 8 | size_t GenericArray::GetPointerSize() { 9 | return mData.size(); 10 | } 11 | } // namespace SF64 12 | -------------------------------------------------------------------------------- /src/port/resource/type/Hitbox.cpp: -------------------------------------------------------------------------------- 1 | #include "Hitbox.h" 2 | 3 | namespace SF64 { 4 | float* Hitbox::GetPointer() { 5 | return mHitbox.data(); 6 | } 7 | 8 | size_t Hitbox::GetPointerSize() { 9 | return sizeof(float) * mHitbox.size(); 10 | } 11 | } // namespace SF64 12 | -------------------------------------------------------------------------------- /src/port/resource/type/Hitbox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | namespace SF64 { 7 | class Hitbox : public Ship::Resource { 8 | public: 9 | using Resource::Resource; 10 | 11 | float* GetPointer() override; 12 | size_t GetPointerSize() override; 13 | 14 | std::vector mHitbox; 15 | }; 16 | } // namespace SF64 17 | -------------------------------------------------------------------------------- /src/port/resource/type/Limb.cpp: -------------------------------------------------------------------------------- 1 | #include "Limb.h" 2 | 3 | namespace SF64 { 4 | LimbData* Limb::GetPointer() { 5 | return &mData; 6 | } 7 | 8 | size_t Limb::GetPointerSize() { 9 | return sizeof(mData); 10 | } 11 | } // namespace SF64 12 | -------------------------------------------------------------------------------- /src/port/resource/type/Message.cpp: -------------------------------------------------------------------------------- 1 | #include "Message.h" 2 | 3 | namespace SF64 { 4 | void* Message::GetPointer() { 5 | return mMessage.data(); 6 | } 7 | 8 | size_t Message::GetPointerSize() { 9 | return mMessage.size() * sizeof(uint16_t); 10 | } 11 | 12 | MsgLookup* MessageLookup::GetPointer() { 13 | return mLookupTable.data(); 14 | } 15 | 16 | size_t MessageLookup::GetPointerSize() { 17 | return mLookupTable.size() * sizeof(MsgLookup); 18 | } 19 | } // namespace SF64 20 | -------------------------------------------------------------------------------- /src/port/resource/type/Minimap.cpp: -------------------------------------------------------------------------------- 1 | #include "Minimap.h" 2 | #include "libultraship/libultra/gbi.h" 3 | 4 | namespace MK64 { 5 | Minimap::Minimap() : Resource(std::shared_ptr()) { 6 | } 7 | 8 | MinimapTexture* Minimap::GetPointer() { 9 | return &Texture; 10 | } 11 | 12 | size_t Minimap::GetPointerSize() { 13 | return sizeof(Texture); 14 | } 15 | 16 | } // namespace MK64 17 | -------------------------------------------------------------------------------- /src/port/resource/type/ObjectInit.cpp: -------------------------------------------------------------------------------- 1 | #include "ObjectInit.h" 2 | 3 | namespace SF64 { 4 | ObjectInitData* ObjectInit::GetPointer() { 5 | return mObjects.data(); 6 | } 7 | 8 | size_t ObjectInit::GetPointerSize() { 9 | return sizeof(ObjectInitData) * mObjects.size(); 10 | } 11 | } // namespace SF64 12 | -------------------------------------------------------------------------------- /src/port/resource/type/Script.cpp: -------------------------------------------------------------------------------- 1 | #include "Script.h" 2 | 3 | namespace SF64 { 4 | uint16_t** Script::GetPointer() { 5 | return mScripts.data(); 6 | } 7 | 8 | size_t Script::GetPointerSize() { 9 | return sizeof(uint16_t*) * mScripts.size(); 10 | } 11 | 12 | uint16_t* ScriptCMDs::GetPointer() { 13 | return mCommands.data(); 14 | } 15 | 16 | size_t ScriptCMDs::GetPointerSize() { 17 | return sizeof(uint16_t) * mCommands.size(); 18 | } 19 | } // namespace SF64 20 | -------------------------------------------------------------------------------- /src/port/resource/type/Skeleton.cpp: -------------------------------------------------------------------------------- 1 | #include "Skeleton.h" 2 | 3 | namespace SF64 { 4 | LimbData** Skeleton::GetPointer() { 5 | return mLimbs.data(); 6 | } 7 | 8 | size_t Skeleton::GetPointerSize() { 9 | return mLimbs.size() * sizeof(LimbData*); 10 | } 11 | } // namespace SF64 12 | -------------------------------------------------------------------------------- /src/port/resource/type/Skeleton.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Limb.h" 4 | 5 | #include 6 | 7 | namespace SF64 { 8 | class Skeleton : public Ship::Resource { 9 | public: 10 | using Resource::Resource; 11 | 12 | Skeleton() : Resource(std::shared_ptr()) { 13 | } 14 | 15 | LimbData** GetPointer(); 16 | size_t GetPointerSize(); 17 | 18 | std::vector mLimbs; 19 | }; 20 | } // namespace SF64 21 | -------------------------------------------------------------------------------- /src/port/resource/type/SpawnData.cpp: -------------------------------------------------------------------------------- 1 | #include "SpawnData.h" 2 | #include "libultraship/libultra/gbi.h" 3 | 4 | namespace MK64 { 5 | ActorSpawn::ActorSpawn() : Resource(std::shared_ptr()) { 6 | } 7 | 8 | ActorSpawnData* ActorSpawn::GetPointer() { 9 | return ActorSpawnDataList.data(); 10 | } 11 | 12 | size_t ActorSpawn::GetPointerSize() { 13 | return ActorSpawnDataList.size() * sizeof(ActorSpawnData); 14 | } 15 | } // namespace MK64 16 | -------------------------------------------------------------------------------- /src/port/resource/type/UnkSpawnData.cpp: -------------------------------------------------------------------------------- 1 | #include "UnkSpawnData.h" 2 | #include "libultraship/libultra/gbi.h" 3 | 4 | namespace MK64 { 5 | UnkActorSpawn::UnkActorSpawn() : Resource(std::shared_ptr()) { 6 | } 7 | 8 | UnkActorSpawnData* UnkActorSpawn::GetPointer() { 9 | return UnkActorSpawnDataList.data(); 10 | } 11 | 12 | size_t UnkActorSpawn::GetPointerSize() { 13 | return UnkActorSpawnDataList.size() * sizeof(UnkActorSpawnData); 14 | } 15 | } // namespace MK64 16 | -------------------------------------------------------------------------------- /src/port/resource/type/Vec3fArray.cpp: -------------------------------------------------------------------------------- 1 | #include "Vec3fArray.h" 2 | 3 | namespace SF64 { 4 | Vec3fData* Vec3fArray::GetPointer() { 5 | return mData.data(); 6 | } 7 | 8 | size_t Vec3fArray::GetPointerSize() { 9 | return sizeof(mData); 10 | } 11 | } // namespace SF64 12 | -------------------------------------------------------------------------------- /src/port/resource/type/Vec3sArray.cpp: -------------------------------------------------------------------------------- 1 | #include "Vec3sArray.h" 2 | 3 | namespace SF64 { 4 | Vec3sData* Vec3sArray::GetPointer() { 5 | return mData.data(); 6 | } 7 | 8 | size_t Vec3sArray::GetPointerSize() { 9 | return sizeof(mData); 10 | } 11 | } // namespace SF64 12 | -------------------------------------------------------------------------------- /src/port/ui/FreecamWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace Freecam { 6 | } // namespace Freecam 7 | -------------------------------------------------------------------------------- /src/port/ui/ImguiUI.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | namespace GameUI { 5 | void SetupGuiElements(); 6 | void Destroy(); 7 | } // namespace GameUI 8 | 9 | class GameMenuBar : public Ship::GuiMenuBar { 10 | public: 11 | using Ship::GuiMenuBar::GuiMenuBar; 12 | 13 | protected: 14 | void DrawElement() override; 15 | void InitElement() override {}; 16 | void UpdateElement() override {}; 17 | }; 18 | -------------------------------------------------------------------------------- /src/port/ui/MultiplayerWindow.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace Multiplayer { 6 | } // namespace Multiplayer 7 | -------------------------------------------------------------------------------- /src/port/ui/Properties.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "port/Game.h" 5 | 6 | 7 | namespace Editor { 8 | class PropertiesWindow : public Ship::GuiWindow { 9 | public: 10 | using Ship::GuiWindow::GuiWindow; 11 | ~PropertiesWindow(); 12 | protected: 13 | void InitElement() override {}; 14 | void DrawElement() override; 15 | void UpdateElement() override {}; 16 | }; 17 | } -------------------------------------------------------------------------------- /src/port/ui/ResolutionEditor.h: -------------------------------------------------------------------------------- 1 | #ifndef RESOLUTIONEDITOR_H 2 | #define RESOLUTIONEDITOR_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace GameUI { 9 | bool IsDroppingFrames(); 10 | void RegisterResolutionWidgets(); 11 | void UpdateResolutionVars(); 12 | } // namespace BenGui 13 | 14 | #endif // RESOLUTIONEDITOR_H 15 | -------------------------------------------------------------------------------- /src/port/ui/SceneExplorer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include "port/Game.h" 5 | 6 | 7 | namespace Editor { 8 | class SceneExplorerWindow : public Ship::GuiWindow { 9 | public: 10 | using Ship::GuiWindow::GuiWindow; 11 | ~SceneExplorerWindow(); 12 | protected: 13 | void InitElement() override {}; 14 | void DrawElement() override; 15 | void UpdateElement() override {}; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /src/port/ui/Tools.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace Editor { 6 | class ToolsWindow : public Ship::GuiWindow { 7 | public: 8 | using Ship::GuiWindow::GuiWindow; 9 | 10 | ~ToolsWindow(); 11 | protected: 12 | void InitElement() override; 13 | void DrawElement() override; 14 | void UpdateElement() override {}; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /test_blend.bat: -------------------------------------------------------------------------------- 1 | "c:\Program Files\Blender Foundation\Blender 4.0\blender.exe" -b --python tools/blender_extension/blender_export.py -- courses/dks_jungle_parkway/course_data.inc.c d_course_dks_jungle_parkway_dl_E058 -------------------------------------------------------------------------------- /tools/.gitignore: -------------------------------------------------------------------------------- 1 | /iplfontutil 2 | /mio0 3 | /n64cksum 4 | /n64graphics 5 | /displaylist_packer 6 | /tkmk00 7 | /extract_data_for_mio 8 | /torch/cmake-build-release/* 9 | __pycache__ 10 | *.pyc 11 | -------------------------------------------------------------------------------- /tools/ido-recomp/linux/acpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/acpp -------------------------------------------------------------------------------- /tools/ido-recomp/linux/as0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/as0 -------------------------------------------------------------------------------- /tools/ido-recomp/linux/as1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/as1 -------------------------------------------------------------------------------- /tools/ido-recomp/linux/c++filt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/c++filt -------------------------------------------------------------------------------- /tools/ido-recomp/linux/cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/cc -------------------------------------------------------------------------------- /tools/ido-recomp/linux/cfe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/cfe -------------------------------------------------------------------------------- /tools/ido-recomp/linux/copt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/copt -------------------------------------------------------------------------------- /tools/ido-recomp/linux/crt1.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/crt1.o -------------------------------------------------------------------------------- /tools/ido-recomp/linux/crtn.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/crtn.o -------------------------------------------------------------------------------- /tools/ido-recomp/linux/ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/ld -------------------------------------------------------------------------------- /tools/ido-recomp/linux/libc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/libc.so -------------------------------------------------------------------------------- /tools/ido-recomp/linux/libc.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/libc.so.1 -------------------------------------------------------------------------------- /tools/ido-recomp/linux/libexc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/libexc.so -------------------------------------------------------------------------------- /tools/ido-recomp/linux/libgen.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/libgen.so -------------------------------------------------------------------------------- /tools/ido-recomp/linux/libm.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/libm.so -------------------------------------------------------------------------------- /tools/ido-recomp/linux/strip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/strip -------------------------------------------------------------------------------- /tools/ido-recomp/linux/ugen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/ugen -------------------------------------------------------------------------------- /tools/ido-recomp/linux/ujoin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/ujoin -------------------------------------------------------------------------------- /tools/ido-recomp/linux/uld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/uld -------------------------------------------------------------------------------- /tools/ido-recomp/linux/umerge: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/umerge -------------------------------------------------------------------------------- /tools/ido-recomp/linux/uopt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/uopt -------------------------------------------------------------------------------- /tools/ido-recomp/linux/upas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/upas -------------------------------------------------------------------------------- /tools/ido-recomp/linux/usplit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/linux/usplit -------------------------------------------------------------------------------- /tools/ido-recomp/macos/acpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/acpp -------------------------------------------------------------------------------- /tools/ido-recomp/macos/as0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/as0 -------------------------------------------------------------------------------- /tools/ido-recomp/macos/as1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/as1 -------------------------------------------------------------------------------- /tools/ido-recomp/macos/c++filt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/c++filt -------------------------------------------------------------------------------- /tools/ido-recomp/macos/cc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/cc -------------------------------------------------------------------------------- /tools/ido-recomp/macos/cfe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/cfe -------------------------------------------------------------------------------- /tools/ido-recomp/macos/copt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/copt -------------------------------------------------------------------------------- /tools/ido-recomp/macos/crt1.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/crt1.o -------------------------------------------------------------------------------- /tools/ido-recomp/macos/crtn.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/crtn.o -------------------------------------------------------------------------------- /tools/ido-recomp/macos/ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/ld -------------------------------------------------------------------------------- /tools/ido-recomp/macos/libc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/libc.so -------------------------------------------------------------------------------- /tools/ido-recomp/macos/libc.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/libc.so.1 -------------------------------------------------------------------------------- /tools/ido-recomp/macos/libexc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/libexc.so -------------------------------------------------------------------------------- /tools/ido-recomp/macos/libgen.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/libgen.so -------------------------------------------------------------------------------- /tools/ido-recomp/macos/libm.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/libm.so -------------------------------------------------------------------------------- /tools/ido-recomp/macos/strip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/strip -------------------------------------------------------------------------------- /tools/ido-recomp/macos/ugen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/ugen -------------------------------------------------------------------------------- /tools/ido-recomp/macos/ujoin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/ujoin -------------------------------------------------------------------------------- /tools/ido-recomp/macos/uld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/uld -------------------------------------------------------------------------------- /tools/ido-recomp/macos/umerge: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/umerge -------------------------------------------------------------------------------- /tools/ido-recomp/macos/uopt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/uopt -------------------------------------------------------------------------------- /tools/ido-recomp/macos/upas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/upas -------------------------------------------------------------------------------- /tools/ido-recomp/macos/usplit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/macos/usplit -------------------------------------------------------------------------------- /tools/ido-recomp/versions.txt: -------------------------------------------------------------------------------- 1 | v1.1 -------------------------------------------------------------------------------- /tools/ido-recomp/windows/acpp.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/acpp.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/as0.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/as0.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/as1.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/as1.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/c++filt.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/c++filt.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/cc.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/cc.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/cfe.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/cfe.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/copt.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/copt.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/crt1.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/crt1.o -------------------------------------------------------------------------------- /tools/ido-recomp/windows/crtn.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/crtn.o -------------------------------------------------------------------------------- /tools/ido-recomp/windows/ld.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/ld.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/libc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/libc.so -------------------------------------------------------------------------------- /tools/ido-recomp/windows/libc.so.1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/libc.so.1 -------------------------------------------------------------------------------- /tools/ido-recomp/windows/libexc.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/libexc.so -------------------------------------------------------------------------------- /tools/ido-recomp/windows/libgen.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/libgen.so -------------------------------------------------------------------------------- /tools/ido-recomp/windows/libm.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/libm.so -------------------------------------------------------------------------------- /tools/ido-recomp/windows/msys-2.0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/msys-2.0.dll -------------------------------------------------------------------------------- /tools/ido-recomp/windows/strip.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/strip.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/ugen.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/ugen.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/ujoin.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/ujoin.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/uld.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/uld.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/umerge.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/umerge.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/uopt.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/uopt.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/upas.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/upas.exe -------------------------------------------------------------------------------- /tools/ido-recomp/windows/usplit.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/izzy2lost/SpaghettiKart/1c2d3c42a69a17f744ac18c310a7752ddd071553/tools/ido-recomp/windows/usplit.exe -------------------------------------------------------------------------------- /tools/n64cksum.h: -------------------------------------------------------------------------------- 1 | #ifndef N64CKSUM_H_ 2 | #define N64CKSUM_H_ 3 | 4 | #include 5 | 6 | // compute N64 ROM checksums 7 | // buf: buffer with extended SM64 data 8 | // cksum: two element array to write CRC1 and CRC2 to 9 | void n64cksum_calc_6102(uint8_t *buf, uint32_t cksum[]); 10 | 11 | // update N64 header checksums 12 | // buf: buffer containing ROM data 13 | // checksums are written into the buffer 14 | void n64cksum_update_checksums(uint8_t *buf); 15 | 16 | #endif // N64CKSUM_H_ 17 | -------------------------------------------------------------------------------- /tools/windows_build.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | 3 | bp = subprocess.Popen("tools/mingw64/w64devkit.exe", stdin=subprocess.PIPE) 4 | bp.stdin.write(b"make assets && make -j && exit\n") 5 | bp.stdin.close() 6 | exit(bp.wait()) -------------------------------------------------------------------------------- /valgrind_callgrind.sh: -------------------------------------------------------------------------------- 1 | timeout 2m valgrind --tool=callgrind --callgrind-out-file=spaghetti.out ./build/Spaghettify 2 | callgrind_annotate spaghetti.out > spaghetti_bench.out -------------------------------------------------------------------------------- /yamls/us/banshee_boardwalk_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x8B9630] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_banshee_boardwalk_vertex: 12 | symbol: d_course_banshee_boardwalk_vertex 13 | type: mk64:course_vtx 14 | count: 4945 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/big_donut_displaylists.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | vram: 3 | addr: 0x800E8700 # not used for anything 4 | offset: 0x965A74 5 | no_compression: true 6 | header: 7 | code: 8 | - '#include ' 9 | header: 10 | - '#include ' 11 | - '#include ' 12 | - '#include ' 13 | d_course_big_donut_packed_dls: 14 | symbol: d_course_big_donut_packed_dls 15 | type: blob 16 | offset: 0x965A74 17 | size: 0x7EC 18 | -------------------------------------------------------------------------------- /yamls/us/big_donut_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x963EF0] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_big_donut_vertex: 12 | symbol: d_course_big_donut_vertex 13 | type: mk64:course_vtx 14 | count: 1165 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/block_fort_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x951780] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_block_fort_vertex: 12 | symbol: d_course_block_fort_vertex 13 | type: mk64:course_vtx 14 | count: 1088 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/bowsers_castle_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x8A7640] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_bowsers_castle_vertex: 12 | symbol: d_course_bowsers_castle_vertex 13 | type: mk64:course_vtx 14 | count: 9527 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/choco_mountain_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x89B510] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_choco_mountain_vertex: 12 | symbol: d_course_choco_mountain_vertex 13 | type: mk64:course_vtx 14 | count: 5560 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/dks_jungle_parkway_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x956670] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_dks_jungle_parkway_vertex: 12 | symbol: d_course_dks_jungle_parkway_vertex 13 | type: mk64:course_vtx 14 | count: 5679 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/double_deck_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x955620] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_double_deck_vertex: 12 | symbol: d_course_double_deck_vertex 13 | type: mk64:course_vtx 14 | count: 555 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/frappe_snowland_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x8CC900] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_frappe_snowland_vertex: 12 | symbol: d_course_frappe_snowland_vertex 13 | type: mk64:course_vtx 14 | count: 5529 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/kalimari_desert_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x928c70] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_kalimari_desert_vertex: 12 | symbol: d_course_kalimari_desert_vertex 13 | type: mk64:course_vtx 14 | count: 6393 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/koopa_troopa_beach_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x8D8E50] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_koopa_troopa_beach_vertex: 12 | symbol: d_course_koopa_troopa_beach_vertex 13 | type: mk64:course_vtx 14 | count: 9376 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/luigi_raceway_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x8FE640] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_luigi_raceway_vertex: 12 | symbol: d_course_luigi_raceway_vertex 13 | type: mk64:course_vtx 14 | count: 5936 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/mario_raceway_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x88FA10] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_mario_raceway_vertex: 12 | symbol: d_course_mario_raceway_vertex 13 | type: mk64:course_vtx 14 | count: 5757 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/moo_moo_farm_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x90B3E0] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_moo_moo_farm_vertex: 12 | symbol: d_course_moo_moo_farm_vertex 13 | type: mk64:course_vtx 14 | count: 7972 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/rainbow_road_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x93CC60] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_rainbow_road_vertex: 12 | symbol: d_course_rainbow_road_vertex 13 | type: mk64:course_vtx 14 | count: 3111 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/royal_raceway_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x8EC390] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_royal_raceway_vertex: 12 | symbol: d_course_royal_raceway_vertex 13 | type: mk64:course_vtx 14 | count: 8306 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/sherbet_land_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x936FD0] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_sherbet_land_vertex: 12 | symbol: d_course_sherbet_land_vertex 13 | type: mk64:course_vtx 14 | count: 3111 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/skyscraper_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x953890] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_skyscraper_vertex: 12 | symbol: d_course_skyscraper_vertex 13 | type: mk64:course_vtx 14 | count: 1086 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/some_data.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | vram: 3 | addr: 0x800E52D0 4 | offset: 0xE5ED0 5 | header: 6 | code: 7 | - '#include ' 8 | header: 9 | - '#include ' 10 | - '#include ' 11 | - '#include ' 12 | gTLUTOnomatopoeia: 13 | symbol: gTLUTOnomatopoeia 14 | type: texture 15 | offset: 0x800E52D0 16 | ctype: u16 17 | width: 16 18 | height: 16 19 | format: rgba16 20 | -------------------------------------------------------------------------------- /yamls/us/sound/root.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | force: true 3 | header: 4 | code: 5 | - '#include ' 6 | header: 7 | - '#include ' 8 | 9 | header: 10 | type: NAUDIO:V0:AUDIO_HEADER 11 | ctl: 12 | offset: 0x966260 13 | size: 0x13840 14 | tbl: 15 | offset: 0x979AA0 16 | size: 0x24C4C0 17 | 18 | audio_seq_font_table: 19 | { type: ARRAY, count: 0x80, array_type: u8, offset: 0xBE90E0, symbol: gSeqFontTableInit } -------------------------------------------------------------------------------- /yamls/us/toads_turnpike_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x91B980] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_toads_turnpike_vertex: 12 | symbol: d_course_toads_turnpike_vertex 13 | type: mk64:course_vtx 14 | count: 6359 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/wario_stadium_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x9438C0] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_wario_stadium_vertex: 12 | symbol: d_course_wario_stadium_vertex 13 | type: mk64:course_vtx 14 | count: 6067 15 | offset: 0x0 16 | -------------------------------------------------------------------------------- /yamls/us/yoshi_valley_vertices.yml: -------------------------------------------------------------------------------- 1 | :config: 2 | segments: 3 | - [0x0F, 0x8C2510] 4 | header: 5 | code: 6 | - '#include ' 7 | header: 8 | - '#include ' 9 | - '#include ' 10 | - '#include ' 11 | d_course_yoshi_valley_vertex: 12 | symbol: d_course_yoshi_valley_vertex 13 | type: mk64:course_vtx 14 | count: 3720 15 | offset: 0x0 16 | --------------------------------------------------------------------------------