Commit Graph

61 Commits

Author SHA1 Message Date
quarrel07 8629bec320 Fix the warning-flagged real bugs across the codebase (#691, 1 of 3) (#725)
* menu_items: fix the real-bug-tier compiler warnings (#691 batch 1)

Six fixes, all in menu_items.c, all verified by menu playtest on macOS:

- BSWAP16(*color0++) advanced the pointer twice per pixel on little-endian
  builds (the macro evaluates its argument twice) and mixed bytes from two
  different pixels. Read first, increment separately. Note: this function
  (func_8009A9FC) currently has no callers, so the corruption was latent,
  not live.
- func_8009B9D0 fell off the end on a lookup miss, returning garbage (the
  existing code comment already suspected this). The miss path now returns
  the display list head unchanged, i.e. draws nothing.
- update_ok_menu_item read an uninitialized stack slot for unknown menu
  item types; now selects an explicit no-animation value, matching what
  the garbage read did in practice.
- pause_menu_item_box_cursor: removed the three empty 'if (x2);' matching
  artifacts. The x/y/z spin state itself is untouched.
- func_800A1FB0: initialized var_s4/var_s5 against the guarded-but-warned
  switch default.
- func_800A54EC: initialized the pause cursor position pointer against its
  unreachable mode-switch default (would have been a null-deref class bug
  if mode values ever grew).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* collision: define the G_ENDDL opcode shifts, return 0 when no tyre surface found

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* replays: cast staff-ghost pointer comparisons, return 0 for empty ghost buffer

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* update_objects: return 0 from conditional step helpers, fix TLUT pointer comparison, init train draw distances

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* render_player: remove the impossible lamp range (vanilla bug, never glowed on N64 either)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* math_util_2: return the vector, not the address of the parameter slot

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Crab: remove inner declaration shadowing the initialized objectIndex

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* editor: honor InverseMatrix failure (bool was compared against 2, always true)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Track.h: drop dead null checks on array members

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* shells: drop always-true angle and surface gates (behavior unchanged, s16 made them tautological)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* particles: make the no-return particle setters void

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* effects/stubs/skybox/main: align signatures with functions that return nothing

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* menus/save: type the pak status variable as s32, return BAD_READ on the fall-off path

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* audio: remove uninitialized-read matching artifacts, init isSound

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* code_80005FD0/code_80086E70: init dead bomb kart pointer and the no_init variable

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* port/engine UI: fix printf-style format types and non-literal format string

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* render_objects: feed the unused texture param to the uninitialized img walker

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Format the changed lines per .clang-format

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Address review: strip explanatory comments, drop vec3f pointer returns

Comments moved to the PR record; the one flagged worth keeping stays.
vec3f_set_xyz/normalize/cross_product return void now since the out
argument is the interface and nothing used the pointer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Update actors_extended.c

* Add checkbox for 'Shells Shoot Straight' option

* Update render_player.c

* Update PortMenu.cpp

* Update render_player.c

* Update actors_extended.c

* Update render_player.c

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2026-08-01 22:29:56 -06:00
coco875 4c24ae2bc2 Refactor cmake (#721)
* some start of refactor

* Update SetFlags.cmake

* Update SetCmakeVar.cmake

* Update SetFlags.cmake

* Fix error int-convertion

* more refactor

* clean up include and source file

* fix link of lib

* fix a warning

* fix include in src/actors

* fix include in src/debug

* fix include in src/ending

* fix include in src/engine/actors

* fix include in src/engine/cameras

* fix include in src/engine/editor

* fix include in src/engine/objects

* fix include in src/engine/tracks

* fix include in src/port/ui

* fix include in src/racing

* fix include in src/engine/vehicles

* fix include in subfolder of src/engine

* fix include in src/engine

* fix include in src/enhancements

* fix include in src

* fix switch

* invert common and findlib

* Update SetFlags.cmake

* clean up some workflow

* some splification

* Update build.sh

* Update Game.h

* add header back

* Delete test_check.cmake

* continue

* Update common.cmake
2026-07-22 18:02:58 -06:00
Lucas 4c03712561 Fix warnings regarding ambigious typings (#715)
* Fix warnings regarding ambigious typings

* Revert struct Collision name change
2026-07-20 12:14:56 +02:00
MegaMech 132357d9fb Big Interpolation Overhaul (#674)
* Fix FI

* FI statue

* Intepr fixes

* Improve

* More interp

* Fix compile

* More interp

* Fix text
2026-03-06 20:10:07 -07:00
MegaMech 25d49df90f More Interp Fixes (#673)
* Update render_player.c

* Update render.inc.c

* Update render.inc.c

* Fix kart interp

* Remove feature

* Fix error
2026-03-06 01:14:44 -07:00
MegaMech 89cd738955 Fix mistakes (#672) 2026-03-05 23:45:11 -07:00
MegaMech 376087be69 Fix Thwomp Collision and Better Interp Tagging for Actors (#665)
* Update actors.c

* Update actors.c

* actor

* Fix bounding box

* More interp fix

* Update KoopaTroopaBeach.cpp

* Update Thwomp.cpp

* Update actors.c

* Update render.inc.c

* Update render.inc.c
2026-03-05 16:52:14 -07:00
MegaMech 26b2ce90e7 More Interp and Draw Visibility Options (#643)
* Update render.inc.c

* FI improvements

* Rename

* Update PortMenu.cpp
2026-02-06 22:05:41 -06:00
MegaMech c902e200ab Fix Interp Issues (#641)
* Update Seagull.cpp

* Update Seagull.h

* Update Thwomp.cpp

* Update Thwomp.h

* Update Crab.cpp

* Update render.inc.c

* Update Mole.cpp

* Update Mole.h

* Update Mole.cpp

* Update Thwomp.cpp

* Update Thwomp.cpp

* Update Thwomp.cpp

* Update HotAirBalloon.cpp

* Update HotAirBalloon.cpp

* Update ChainChomp.cpp

* Update Hedgehog.h

* Update Hedgehog.cpp

* Update Snowman.cpp

* Update Flagpole.h

* Update Flagpole.cpp

* Update Flagpole.cpp
2026-02-05 12:44:26 -07:00
MegaMech 99b5630055 Impl Triple Shells, fix CPU items (#597)
* Impl triple shell

* CPUs can throw greenshells backwards
---------

Authored-by: Luiz Henrique <luizlink64@gmail.com>
2025-12-16 15:45:10 -07:00
coco875 1a5c79b641 Player bitflag attributes (pr 750 from the decomp) (#592)
* Player bitflag attributes (pr 750 from the decomp)

Co-Authored-By: Jed Grabman <JedGrabman@users.noreply.github.com>

* remove WATER_NO_INTERACTION

---------

Co-authored-by: Jed Grabman <JedGrabman@users.noreply.github.com>
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2025-12-16 09:55:37 -07:00
MegaMech 7bc8d6f4be Refactor Field-of-view into the Camera Struct (#590)
* Fix finishline for toads turnpike in extra

* Fixed trash bin in extra

* Refactor fov

* Update scene.json

* Allow setting fog

* impl fog save & load
2025-12-13 17:28:44 -07:00
coco875 4e51b7d5b6 Document sound effects (pr 735 from the decomp) (#589)
Co-authored-by: Jed Grabman <JedGrabman@users.noreply.github.com>
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2025-12-13 12:08:59 -07:00
MegaMech dbae0c3aca Name ScreenContext, Refactor Course class to Track (#583)
* Rename Screen Contexts

* typedef ScreenContext struct

* Fix Compile

* Rename Course.cpp to Track.cpp

* Refactor Course to Track

* A few renames

* General Cleanup

* More Rename

* More names

* Move TrackSections struct to Track.h

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2025-12-07 21:00:06 -07:00
MegaMech 6585333092 Camera Refactor --> Adds Track Tour Camera (#568)
* Impl SpawnParams

* Added json submodule

* Update json

* Update

* Works

* Remove comment

* Works refactor

* Snowman and thwomp working

* Impl hot air balloon

* More progress

* All OObjects are done

* cleanup

* Refactor 2Dpath to normal path

* Update nlohmann json & fix compile

* Rest of actors

* MORE CHANGES

* Finish actors

* Done PR, some fix to collision viewer

* Impl falling rocks

* Add const

* wip editor refactor

* Property work

* continue

* Overridable editor properties

* Actor saving/loading works now

* Fix light alignment

* Clarification

* Impl penguin

* params impl signs

* properties impl falling rock

* More property impls

* impl air balloon

* Add spawnParams to OObject Translate

* Snowman translate better

* impl hedgehog properly

* properties impl trophy

* thwomp progress

* Finish impl properties

* Fix compile

* Fix cursor collisions

* Move registered actors

* Rename pathPoint XYZ to xyz

* Fix editor pause bug

* Clean up

* Review comments

* Remove SpawnParams struct from actor classes

* Rename

* Player Label First Iteration

* Work now

* Working 3d text

* Fix boo bug

* Finish AText actor

* Fix spawnparams compile

* Register AText

* Finish Text Actor

* Fix thwomp interpolation

* Fix compile

* Fix crab and hedgehog

* Fix loading flagpole

* Fix Hot Air Balloon

* Turn zbuffer on for AText

* Update

* Camera Refactor

* Camera Refactor Complete

* Place Lookbehind behind a CVar

* Make Tour CVar

* Fix Tour Camera Billboarding

* micro optimization

* Impl tour cam in imgui editor and add to scenefile

* As per review

* Revert cleanWorld change as per review

* Cleanup SceneManager

* Func rename

* Proper enabling of freecam and wip zoom fix

* Couple fix

* Fix credits

* Fix podium ceremony

* Stop music on reset & label new play sequence func

* Rename func_800C8EF8 to play_sequence2

* Rename func_800CA414 to play_sequences

* Fix compile

* Label play_sequences

* Clean up

* Verify lakitu access

* Renames

* Fix tour enable logic

* Add Audio

* tour camera impl ending transition

* As per review

* Fix linux compile, probably

* Update TourCamera.cpp

* Update TourCamera.cpp

* Update TrackProperties.cpp

* Update TrackProperties.cpp

* Update Game.cpp

* Update SceneManager.cpp

* Update camera.c

* Update render_objects.h

* Update render_objects.h

* Update code_80057C60.h

* fixing compile

* addition

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2025-12-07 13:14:45 -07:00
coco875 02ad54ca72 Refactor yaml and remove segment (#531)
* move yaml (still need to fix header path)

* fix header

* change kart to karts and add migration

* fix include

* Update migration.py

* fix common_texture_debug_font extraction

* Update torch

* update torch and header

* unduplicate texture for tumble

* Update torch

* Update migration.py

* put the sort by default

* fix replace_segmented_textures_with_o2r_textures

* Update torch

* fix yamls

* add manual_segments in data of course

* comment out replace_segmented_textures_with_o2r_textures and segment 3

* remove segment 5

* (wip) remove segment 6

still plenty of thing to do

* more vtx

* more change

* Update torch

* small fix

* Update BansheeBoardwalk.cpp

* fix blockFort

* Delete test.yaml

* fix bowser castle and simplify track sections

* fix choco mountain

* clean banshee

* fix dk jungle

* fix double deck

* fix macos

* fix error

* fix macos ci

* Update torch

* Update torch

* fix frappe snowland

* fix kalimari desert

* fix koopa troopa beach

* fix luigi raceway

* fix mario raceway and simplify thing

* fix moo moo farm

* fix rainbow road

* Update torch

* Update torch

* hopefully fix windows error

* fix a small error

* fix royal raceway (and podium in theory)

* fix sherbet_land

* fix skyscraper

* fix toads turnpike

* fix wario stadium

* fix yoshi valley

* update torch

* more clang tidy rules

* REMOVE totally SEGMENT (sorry for the PR)

* remove unused field in course and props and unused packed asset

* fix kart texture

* fix particle

* fix track section and transparency

* try fix mode extra

* fix macos build and render

* fix collision in extra

* small change and try fix windows error

* a little of clean

* more cleanup

* forget header and more clean up

* Update Makefile

* fix credits

* fix kart texture offset

* remove LoadTextures and add Unload

* fix definitevely mirror mode

* add unload but it's not perfect

* revert a bad fix

* clean no longer used python script

* fix crash with player

* being able to load the same course twice

* add a comment on DrawWater

* fix render of transparent object

* better hack

* add a proper migration instruction

* fix number

* add basic modsmanager

* add meta/mods.toml

* Update EditorMath.h

* Update ModsManager.cpp

* basic modManager (maybe I should rename it ModLoader)

* use range on dependencies

* add information about mods.toml

* fix coment

* some rename around

* Delete beta-to-v1.md

* Update migrations.md

* Update textures-pack.md

* Update modding.md

* Update modding.md

* clean yamls_old

* move to mods in engine

* rename ModsManger to  ModManager

* move init and unload at the top

* rename ModsMetadata to ModMetadata

* fix header

* Update ModManager.cpp

* put core mods at top
2025-12-07 07:34:53 -07:00
MegaMech de9c5d5101 Implement SpawnParams struct (#536)
* Impl SpawnParams

* Added json submodule

* Update json

* Update

* Works

* Remove comment

* Works refactor

* Snowman and thwomp working

* Impl hot air balloon

* More progress

* All OObjects are done

* cleanup

* Refactor 2Dpath to normal path

* Update nlohmann json & fix compile

* Rest of actors

* MORE CHANGES

* Finish actors

* Done PR, some fix to collision viewer

* Impl falling rocks

* Add const

* wip editor refactor

* Property work

* continue

* Overridable editor properties

* Actor saving/loading works now

* Fix light alignment

* Clarification

* Impl penguin

* params impl signs

* properties impl falling rock

* More property impls

* impl air balloon

* Add spawnParams to OObject Translate

* Snowman translate better

* impl hedgehog properly

* properties impl trophy

* thwomp progress

* Finish impl properties

* Fix compile

* Fix cursor collisions

* Move registered actors

* Rename pathPoint XYZ to xyz

* Fix editor pause bug

* Clean up

* Review comments

* Remove SpawnParams struct from actor classes

* Rename

* Player Label First Iteration

* Work now

* Working 3d text

* Fix boo bug

* Finish AText actor

* Fix spawnparams compile

* Register AText

* Finish Text Actor

* Fix thwomp interpolation

* Fix compile

* Fix crab and hedgehog

* Fix loading flagpole

* Fix Hot Air Balloon

* Turn zbuffer on for AText

* Update

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2025-11-09 19:07:44 -07:00
Varuuna 72b5773d4d Replace FrameInterpolation Pop/Push with RecordOpen/CloseChild (#542)
* Replaced Pop/Push for Yoshi Egg and Mario Sign actors

* Removed comments

* applied suggestions

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2025-09-26 10:14:45 -06:00
coco875 6a8baf8936 port pr 730 from the decomp (#445)
* port pr 730 from the decomp

Co-Authored-By: Jed Grabman <7600154+jedgrabman@users.noreply.github.com>

* rename file

* small fix

* finish fix time trial

---------

Co-authored-by: Jed Grabman <7600154+jedgrabman@users.noreply.github.com>
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2025-07-10 17:11:36 -06:00
MegaMech 371adbd7b9 Update update.inc.c (#444) 2025-07-09 18:07:31 -06:00
coco875 7937896598 make some texture more flexible and editable + port documentation from the decomp + fix some bug (#309)
* support a more flexible background

* remove useless function

* rename of some font

* experimental png

* migrate to the new initdata

* fix skybox and adjust minimap

* format in audio

* simplify player render

* simplify shell render and support custom texture of shell

* clean redshell texture

* format and multiple fix

* some update of name

* allow change icon of character

* more rename

* continue rename

* more documentation and simplification

* change lus and continue rename

* continue rename

* few fix for asan

* fix ghost

* Update menu_items.c

* fix mac error

* some test of tweak for texture

* some tweak

* some button constant

* finish fix ghost

* Update menu_items.c

* Update render_objects.c

* Update menu_items.c

* Update libultraship

* Update libultraship

* Delete valgrind.report

* Update libultraship

* callgrind benchmark

* Update valgrind_callgrind.sh

* fix animation

* some rename

* remove useless submodule

* Update libultraship

* fix assets

* fix mistake

* fix more mistake

* Update menu_items.c

* sync more rename with the decom + fix review

* fix a mistake

* fix more mistake

* re add the limit of fps

* fix some hd texture and minimap

* fix a name

* Update menu_items.c

* fix a regression

* fix some segment 5 texture (not all)

* Update camera.c

* improve performance of custom sprite

* fix flatten bug and add documentation on player vertex

* Update render_player.c

* fix data menu

* fix trophy for 50 and 150

* Update memory.c

* Update code_80057C60.c

* fix ghost

* fix boo tlut

* fix a mistake in yaml

* fix yaml

* Update common_data.yml

* add comment for segment 3

* allow even more change in texture

* Update common_data.yml

* Update update.inc.c

* Update camera.c

* Update some_data.c

* wip changes

* Update other_textures.yml

* More changes

* Update update_objects.c

* Fix compile

* Update memory.c

* Update memory.c

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2025-07-01 17:42:14 -06:00
coco875 5d7cf20c83 pr Code 80005fd0 (#181)
* fix error

* a lot of change

* basic rename of local variable

* continue rename and improve Enhancements

* re-apply change

* revert the remove of dma_texture and fix mtxf_multiplication

* more documentation port

* some fix

* more fix

* fix arround

* Update torch

* fix spelling

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2025-06-19 16:26:04 -06:00
MegaMech 44db9bab77 Add Interpolation (#204)
* initial work

* more work

* progress

* Fixed slow fps

* Add Lywx changes

* Interp Works

* Test default tick/logic update

* Added missing include (#202)

* Added missing include

* More missing includes

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* test

* Revert "test"

This reverts commit 1a810d74cc.

* Interp Item box

* Actually interpolate item box

* fix clouds

* interp player?

* Test 2

* Fix mistake

* tag and fix item boxes

* tag fake item box and whatever func_800696CC is

* these aren't needed

* tag karts

* Slightly better falling rocks(still needs work)

* Tag Smoke and Dust

* Removed unneeded code from falling_rock

* tag whatever func_80051ABC is

* add missing rotate x coord

* GrandPrixBallon/kart shadow

* Green shells tag, and added comments I neglected to add before.

* doesn't compile on win

* Fixes

* Disabled camera interpolation

* Balloons fixes

* progress

* set_transform_matrix compiles

* Compile setTransformMatrix

* More transforms interp

* Add more interps

* matrix

* Matrix multi interp

* Fix interpolation camera bug

* Missing includes needed for Linux.

* Excluded access to HM64 Labs on Switch.

* interpolation tags for various objects

* Bowser castle statue flame interpolated.

* tag hedgehogs

* cloud interpolation

* Interpolated smoke particles from shells

* cloud interpolation refactor

* Interpolated snowflakes

* Interpolated penguins, also added comment tags to places I missed.

* tag Snowman interpolation

* Interpolated player reflection(sherbet land)

* Forgot to uncomment stuff while testing

* better tag

* tag leaves

* Set the default FPS to 30

* tag hud

* Fixed "Match Refresh Rate" option

* adjust draw distance

* remove innecessary rock tag

* rag rocks

* better tag

* Tagged player rank placement in HUD

* Tagged Bat, Boos, and TrashBin(Banshee Boardwalk objects)

* Refactor render_screens and fix editor raycast

* better object interpolation

* shift is not needed here

* fix tag

* fix tags

* mole comments

* comment

* Changed how shell flames are interpolated.

* interpolated ended scene fireworks.

* Tagged star particles in the ending scene

* Shell flames handled better.

* this isn't needed

* Fix multiplayer cameras

* Fixed loading battle maps.

* Tagged battle balloons

* Some fixes for battle mode

* No longer needed changes toAFinishline with the changes mega made.

* Tag finishline

* fix to make it compile with cmake 3.31

* changed mtxf_multiplication() to fix vert explosion in Desert & DK parkway.(provided by Coco.)

* fix memory leaks, avoid invalidate texture (#207)

* Fixed macos

* More stupid fixes

* update with main and update torch and lus and enable action on this branch

* Update FrameInterpolation.h

* Update FrameInterpolation.cpp

* fix some memory leak

* Update torch

* Update torch

* update torch and lus

* reduce texture import

* don't use fork of torch and lus

* Update torch

* Update torch

---------

Co-authored-by: Lywx <kiritodev01@gmail.com>

* Refactor World::Courses to unique_ptr (#211)

* wip course unique ptr

* Track unique_ptr : This probably compiles

* Finish impl Courses as unique_ptr

* Fix error

* Fixes

* More fixes

* Cleanup

* Remove old vars

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>

* particle boat and train

* fix player particle interpolation

* add modify interpolation target fps in menu

* fix windows

* Update libultraship

* Fix logo interp

* Interp SetTextMatrix

* Fix freecam camera

* Clarify comment

* Clarify func

* fix linux compilation

* Update Thwomp.cpp

* Update Thwomp.h

* Update render.inc.c

* Update render.inc.c

* Update gbiMacro.c

* interp falling rock shadow

* Revert change that has no explanation

* Update code_80057C60.c

* Update code_80057C60.c

* Update GrandPrixBalloons.cpp

* Update Lakitu.cpp

* Update framebuffer_effects.c

* Update render_courses.c

---------

Co-authored-by: Sonic Dreamcaster <alejandro.asenjo88@gmail.com>
Co-authored-by: KiritoDv <kiritodev01@gmail.com>
Co-authored-by: sitton76 <58642183+sitton76@users.noreply.github.com>
Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
Co-authored-by: coco875 <59367621+coco875@users.noreply.github.com>
Co-authored-by: coco875 <pereira.jannin@gmail.com>
2025-06-07 21:38:12 -06:00
MegaMech 32632cacdb Impl new intro (#193)
* Update menus

* Update CMakeLists.txt

* Add Ship

* Impl hm ship actors

* Update HM course

* Impl new intro

* Finish intro scene

* Rename

* Start Editor Work

* raycast works

* Fix ScreenRayTrace in widescreen

* Basic Actor Picking

* wip

* Editor use vtx collision

* gizmo work

* otr works for object picking

* Impl objects for editor

* actor init

* Update

* Add all axis move (freemove)

* Docking Windows works here

* Setup imgui layout for editor

* Editor Snap to Ground works

* Basic Scene Explorer Works

* Editor get actor names

* Impl editor object names

* impl Editor Play and Pause buttons

* Editor translate works while paused

* Fix freecam lighting

* Added adjustable track properties to editor

* Editor matrix, icons, rotation, impl light

* Setup Track Properties 1

* Editor tooling wip

* Load modded o2rs

* Don't enable hud if editor is enabled

* Updates

* SceneManager nearly working

* Fix mario kart 64 intro logo sizing

* Fix Rotator

* Finish new matrix translation code

* Cleanup headers

* Cleanup

* Cleanup 2

* Cleanup 3

* Prevent divize by zero crash

* Add visible circle for translate in all axis

* Editor scaling/rot works properly now

* Scale All_Axis evenly

* Fixes to includes to work on Linux.

* Removed overfilled arguments in gfx_create_framebuffer()

* Added missing function definitions to Game.h

* Editor sun face the camera

* Add rotation model to gizmo

* Add new handles

* Failed attempt at transforming collision

* Impl water volume

* Import fast64 paths

* water surface

* Scene Setup 1

* Custom Track O2R almost working needs testing

* Custom Track Load path O2r

* Render custom track. Wip collision

* Add missing function

* Debug Spawning Custom O2R Track

* Import courses working now

* Fix memory leak

* Remove New Track Button

* Engine.cpp more consistent with sf64

* Fix Editor Enable Button

* Editor Accurate mouse click drag objects

* Editor selects closest object and cleanup

* Gizmo rot and scale collision working

* Remove constexpr from IRotator

* Impl properties for location/rot/scale

* Better Properties display, swap rot handles

* Fix content browser dock and editor now disabled by default

* Remove GameInfoWindow, Multiplayer Button, and FPS Slider

* Disable Editor when its disabled

* Add new logo to hm intro

* Fix pause menu item box cursor

* Remove minimap from Course::from_json and to_json

* Impl Import Minimap

* Fix custom minimap rendering

* minimap uses extension .png

* Refactor minimap

* Freecam only for player 1

* GrandPrix Balloons work in custom track

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

* Moved editor assets to be included in ship.o2r

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

* Linux specific changes.

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

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

This reverts commit 05704c01f7.

* Added back files(this time without LUS changes)

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

* Missed a few spots in the workflow file.

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

* Added the rest of upstream CMakeLists.txt

* disabled USE_NETWORKING

* New InverseMatrix

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

* Reverted CmakeList.txt

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
Co-authored-by: sitton76 <58642183+sitton76@users.noreply.github.com>
2025-05-14 18:30:32 -06:00
MegaMech 1f189dfa80 Game.cpp and World.cpp Cleanup (#159)
* Remove CProperties and delete dup Properties from World.h

* Improvement

* Fix compile

* Cleanup

* Document gRaceState

* wip cleanup

* compile

* Impl PlayerBombKart

* Rename CourseManager_ to CM_

* Finish renames m_ to CM_

* cleanup

* Remove extra printf

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2025-01-23 11:22:07 -07:00
Sonic Dreamcaster d514c7f330 default gDisableLod to 1 2025-01-11 15:02:26 -03:00
MegaMech 19135c9ee8 load course dl textures from otr and move objects 2024-12-05 21:41:58 -07:00
Garrett Cox 6b71793b4f Fix clang compiler issues 2024-11-21 20:20:37 -06:00
MegaMech 475f167bb2 [modding] Big Update PR (#118)
* Implement kart vehicle

* Fix menu CC

* Actors

* variable framerate

* Implement Actors vector

* Fix water & scrolling textures

* Finish ACoin

* Refactor finishline

* Refactor mtx to vector

* Fix refactored screen code bugs

* Fix playlist bug

* Switching courses working now

* Fix podium ceremony

* Mostly Fix Demo and Credits

* Credits Load Actors and Textures

* Fix credits

* Formatting

* Update lus and torch

* Fix water features

* Fix crabs

* Combine function

* Fix wheels

* Add Moon Jump Cheat

* Wheel Change

* Fix smoke due to wheel change

* Fix screens for wheels

* Fix transparency

* Fix staff ghost

* Fix lakitu transition widescreen

* Rename and export credits text

* Fixes

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-11-14 23:32:55 -07:00
MegaMech af81bad1f3 [modding] Add Actors (#113)
* fix

* Add Actors

* Refactor

* Update Game.cpp
2024-10-15 18:54:38 -06:00
MegaMech a0862b6a15 [modding] Implement Vehicles & Fix Animations (#109)
* Train works

* Fix minimap

* Fix highway

* Fix

* Refactor train and boat

* Update

* Implement Trucks

* Fix tanker

* Finish implementing vehicles

* Fix animations

* Fix spawn players

* Fix spawn players

* Fix loading custom data

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-10-15 13:09:43 -06:00
MegaMech 75297759ee [modding] Course Mod Support (#104)
* Course Manager

* Course

* Test

* Render

* That escalated quickly

* update

* properties

* Properties

* test

* Fix compile

* Add World

* skycolours

* Skybox Colours done

* Cleanup

* test

* Game runs again

* update

* Game run again

* Cup Works

* continue

* Add Courses

* clouds

* changes

* fixes

* update

* Fix compile

* update

* A few changes

* More Updates

* More refactors

* Fixes

* Fix ai behaviour

* Changes

* Fix courses

* test course test not working

* CUSTOM

* TestCourse works kinda

* fixes

* test course works

* cleanup

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-10-05 15:31:31 -06:00
coco875 203090e591 update with the decomp (#97)
* Update menus.c (#634)

* Update common_data.yml (#635)

* Renames for screenId and other changes (#636)

* screenId renames

* Rename surface map to collision mesh (#637)

* Rename some stack vars (#638)

* Fix syntax error (#639)

* Rename some stack vars

* Update collision.c

* Collision Documentation (#640)

* Collision related renames

* update doxygen (#649)

* change bool (#644)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Update (#642)

* Delete trig_tables_bss.c (#650)

* fix typo audio (#656)

* fix typo src actor (#657)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo include (#658)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix course (#659)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo debug (#660)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo data (#661)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* replace number with const (#665)

* fix typo buffers (#655)

* fix typo buffers

* tweak ld file

* rename to sMemoryPool

* add a warning

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo src (#654)

* fix typo src

* fix non matcing

* Update code_80091750.c

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo racing (#653)

* fix typo racing

* get it match

* replace G_LINE3D to G_QUAD

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo src (#652)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix ending typo (#651)

* Action more info when it doesn't match and fix first diff (#662)

* Update linux-compile.yml

* fix first-diff

* Update first-diff.py

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* document texture of kart (#663)

* document texture of kart

* change screenPlayerId to screenId

* some documentation around object

* Revert "some documentation around object"

This reverts commit cbb39078e036bf2a417bed67359e910213acab28.

* more rename

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Make evaluate_collision_players_palm_tree better (#667)

This matches just the same as before,	but using those two casts instead of
shifts seems more likely to be accurate to the original source code

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>

* add fedora instruciton (#666)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* start documenting animation (#668)

* start documenting animation

* Update course_data.c

* change comment

* update libultra asm (#648)

* update libultra asm

* fix gcc __osThreadTail

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Document Vehicles (#641)

* start doc collision

* fix merge

* finish rename fonction related to vehicle

* document around waypoint of vehicle

* make some modification

* make some change and rename one

* copy_ to oldPos

* doc smoke ferry and train

* some rename

* fix some renaming

* precise index

* rename a funciton

* simplify waypoint_vehicles

* change some name

* change some name

* rename move_to_point_direction

* fix some conflict

* Update code_80005FD0.c

* Update code_80005FD0.h

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Label a save info loop (#645)

* save info

* more gcc progress

* fix a value and do a rename (#669)

* update clang and add action (#664)

* update clang and add action

* try clang on course folder only

* forget two file

* Update course_displaylists.inc.c

* forget few other file

* Update course_vertices.inc.c

* format all code while get it match

* second pass

* format other dir

* disable clang format on bad ido code

* fix some tabulation

* revert format on tool dir

* Update clang-format.yml

* ignore gbi.h

* add some read me instruction

* fix error

* format and fixing error

* Update README.md

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Update linkonly_generator.py (#670)

* some rename for torch (#588)

* rename gBombKartSpawns, and fix cup ID

* Update doxygen_syms.md

* rename for gCourseIndexInCup and his constant

* rename to gCupSelectedCourseIndex

* forget a change in constant

* fix compilation issue

* Update Dockerfile to latest Ubuntu LTS + fixed missing cmake (#674)

* Fix color font matrix function (#676)

* Fix label variables used in menus (#675)

* Fix label variables used in menus

* split D_800F2BDC and clang format menu.c

---------

Co-authored-by: coco875 <pereira.jannin@gmail.com>

* Fix some libultra struct types (#677)

* Uintptr (#671)

* Update render_courses.c

* Update math_util.c

* Update math_util.c

* Update math_util.h

* Update render_courses.c

* Clang suggest (#678)

* add clang suggestion

* Update clang-format-suggest.yml

* Update clang-format-suggest.yml

* simplify

* switch to ubuntu

* Update clang-format-suggest.yml

* update ubuntu

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Clang pr (#679)

* Create clang-pr.yml

* Update clang-pr.yml

* Update osCreateMesgQueue.c

* Update osCreateMesgQueue.c

* Update clang-pr.yml

* Update clang-pr.yml

* Update clang-format.yml

* clang format (#680)

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>

* some rename in ceremony (#647)

* rename ceremony

* apply some suggestion

* some rename

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* clang format (#681)

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>

* Rename Object Timing Related Code (#673)

* start making models extraction with blender

* finishing extract model

* Update fast64

* extract course

* Update fast64

* Update fast64

* simplify import of course_displaylists and course_textures and remplace adress with texture

* Update fast64

* change data format and simplify the thread queue

* move in a blender folder

* remove fast64

* re add fast64

* add model_extract and fast64_blender in makefile

* multithread with make file split the models into multiple json and add course segment

* Update fast64

* remove old model_extract

* remove the error when he don't find blender

* start rename around course section

* rename around object

* update submodule fast64

* fix compilation issue and add some model to extract

* Update fast64

* remove fast64

* re add fast64

* update submodule

* fix compilation issue

* add other collision gfx and prepare reorganise file

* re arrange json

* Create README.MD

* Update README.MD

* Update README.MD

* update fast64

* rename to initiate_next_state

* Revert "Merge branch '3d-objects' into general-object"

This reverts commit f5347b38cc75af4d10ee3726dc1524c1c71d6849, reversing
changes made to a353c4d954fb5b50c8b48fe3f9d67c95ccaab299.

* revert the revert...

* revert 3d-models PR

* finish some revert

* Update code_80005FD0.c

* fix code_80091750.c

* Update code_80091750.c

* rename isTimerRunning to isTimerActive and set_object_timer_running to set_object_timer_state

* rename to initialize_next_state

* rename to object_next_state

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* extract models with blender (#577)

* start making models extraction with blender

* finishing extract model

* Update fast64

* extract course

* Update fast64

* Update fast64

* simplify import of course_displaylists and course_textures and remplace adress with texture

* Update fast64

* change data format and simplify the thread queue

* move in a blender folder

* remove fast64

* re add fast64

* add model_extract and fast64_blender in makefile

* multithread with make file split the models into multiple json and add course segment

* Update fast64

* remove old model_extract

* remove the error when he don't find blender

* start rename around course section

* update submodule fast64

* fix compilation issue and add some model to extract

* Update fast64

* remove fast64

* re add fast64

* update submodule

* fix compilation issue

* add other collision gfx and prepare reorganise file

* re arrange json

* Create README.MD

* Update README.MD

* Update README.MD

* update fast64

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* other

* fix some error of compilation

* finish fix all error

---------

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
Co-authored-by: Gabriel Ravier <gabravier@gmail.com>
Co-authored-by: MisterSheeple <27652712+MisterSheeple@users.noreply.github.com>
Co-authored-by: AloXado320 <38191089+AloXado320@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-09-17 09:32:50 -06:00
coco875 b36b9e3180 [enhancement] Disable Culling (#58)
* less intrusif possible way to disable culling

* forget cloud and star

* some change and add gFarFrustrum

* reduce range of gFarFrustrum

* minor rename of a CVar

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2024-09-10 16:20:55 -06:00
coco875 56de6d00ea [enhancement] Disable LOD (#72)
* implement disable LOD

* disable lod for bowser statue

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2024-08-31 21:14:39 -06:00
coco875 a1f0d32d66 Update decomp clang (#67)
* Update menus.c (#634)

* Update common_data.yml (#635)

* Renames for screenId and other changes (#636)

* screenId renames

* Rename surface map to collision mesh (#637)

* Rename some stack vars (#638)

* Fix syntax error (#639)

* Rename some stack vars

* Update collision.c

* Collision Documentation (#640)

* Collision related renames

* update doxygen (#649)

* change bool (#644)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* Update (#642)

* Delete trig_tables_bss.c (#650)

* fix typo audio (#656)

* fix typo src actor (#657)

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>

* fix typo include (#658)

* fix course (#659)

* fix typo debug (#660)

* fix typo data (#661)

* replace number with const (#665)

* fix typo buffers (#655)

* fix typo buffers

* tweak ld file

* rename to sMemoryPool

* add a warning

---------

* fix typo src (#654)

* fix typo src

* fix non matcing

* Update code_80091750.c

---------

* fix typo racing (#653)

* fix typo racing

* get it match

* replace G_LINE3D to G_QUAD

---------

* fix typo src (#652)

* fix ending typo (#651)

* Action more info when it doesn't match and fix first diff (#662)

* Update linux-compile.yml

* fix first-diff

* Update first-diff.py

---------

* document texture of kart (#663)

* document texture of kart

* change screenPlayerId to screenId

* some documentation around object

* Revert "some documentation around object"

This reverts commit cbb39078e036bf2a417bed67359e910213acab28.

* more rename

---------

* Make evaluate_collision_players_palm_tree better (#667)

This matches just the same as before,	but using those two casts instead of
shifts seems more likely to be accurate to the original source code

Signed-off-by: Gabriel Ravier <gabravier@gmail.com>

* add fedora instruciton (#666)

* start documenting animation (#668)

* start documenting animation

* Update course_data.c

* change comment

* update libultra asm (#648)

* update libultra asm

* fix gcc __osThreadTail

---------

* Document Vehicles (#641)

* start doc collision

* fix merge

* finish rename fonction related to vehicle

* document around waypoint of vehicle

* make some modification

* make some change and rename one

* copy_ to oldPos

* doc smoke ferry and train

* some rename

* fix some renaming

* precise index

* rename a funciton

* simplify waypoint_vehicles

* change some name

* change some name

* rename move_to_point_direction

* fix some conflict

* Update code_80005FD0.c

* Update code_80005FD0.h

---------

* Label a save info loop (#645)

* save info

* more gcc progress

* fix a value and do a rename (#669)

* update clang and add action (#664)

* update clang and add action

* try clang on course folder only

* forget two file

* Update course_displaylists.inc.c

* forget few other file

* Update course_vertices.inc.c

* format all code while get it match

* second pass

* format other dir

* disable clang format on bad ido code

* fix some tabulation

* revert format on tool dir

* Update clang-format.yml

* ignore gbi.h

* add some read me instruction

* fix error

* format and fixing error

* Update README.md

---------

* Update linkonly_generator.py (#670)

* format more file

* update

* fix compilation issue

* remove course_metadata folder

* re add course metadata folder

* fix banshee bordwalk crash

* fix windows eurk

* Update CMakeLists.txt

---------
2024-08-27 17:47:39 -06:00
MegaMech 09505cc0aa Fix Falling Rocks and Vehicles (#55)
* valley

* beach

* sherbet & rainbow

* fix ceremony

* Fix parser for course displaylists

* Fix crash near end of ceremony

* Clean rock

* Fix actors

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-08-16 21:37:51 -06:00
MegaMech bd6e3d18e0 Courses (#54)
* valley

* beach

* sherbet & rainbow

* fix ceremony

* Fix parser for course displaylists

* Fix crash near end of ceremony

* Clean rock

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-08-15 22:20:08 -06:00
MegaMech 258892c6c9 Fix Jungle (#52)
* castle and stadium

* castle

* boardwalk & snowland

* turnpike

* jungle

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-08-14 14:17:45 -06:00
coco875 33154e1d32 add dks_jungle_parkway (#50)
* add dks_jungle_parkway

* correct value

---------

Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2024-08-13 22:29:32 -06:00
MegaMech 177504c495 Add Courses (#49)
* castle and stadium

* castle

* boardwalk & snowland

* turnpike

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-08-13 22:26:16 -06:00
MegaMech 12b31d8c24 Choco (#48)
* Choco courseb
2024-08-12 15:16:01 -06:00
MegaMech 533713180b Moo (#46)
* moo
2024-08-12 01:01:53 -06:00
MegaMech 30667f2824 Fix Course (#42)
* Fix menu bug

* Fix undefined behaviour

* Fix kart textures

* Fix boost texture

* Rename as per review

* Fix buffer overflows

* Fix lakitu progress

* Fix race starter character

* wip fixes to kart wheels

* Fix inaccuracy

* improve wheels

* Fix staff ghosts

* course stuff

* wip changes

* Fix course

* Update kalimari_desert_displaylists.yml

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-08-11 19:44:56 -06:00
MegaMech 9540a4b772 Kalimari desert continuation (#40)
* wip kalimari desert

* fix offset

* Update kalimari_desert_data.yml

* Update kalimari_desert_data.yml

* fix issue

* Update kalimari_desert_data.yml

* add missing vtx and texture

* fix error of size

* Update kalimari_desert_displaylists.yml

---------

Co-authored-by: coco875 <pereira.jannin@gmail.com>
Co-authored-by: coco875 <59367621+coco875@users.noreply.github.com>
2024-08-09 14:20:09 -06:00
coco875 35bc5a58f9 wip kalimari desert (#38)
* wip kalimari desert

* fix offset

* Update kalimari_desert_data.yml

* Update kalimari_desert_data.yml

* fix issue

* Update kalimari_desert_data.yml
2024-08-05 18:09:52 -06:00
MegaMech 2a8362dd10 Add royal raceway course (#29)
* Add files via upload

* Update memory.c

* Update render_courses.c

* Update code_80281780.c

* Update path_spawn_metadata.c

* Update render.inc.c

* Update all_course_packed.h

* Update all_course_model.h

* Update all_course_data.h

* Delete courses/royal_raceway/course_data.c

* Delete courses/royal_raceway/course_data.h

* Delete courses/royal_raceway/course_vertices.inc.c

* Delete courses/royal_raceway/course_displaylists.c

* Delete courses/royal_raceway/course_displaylists.h

* Update memory.c

* Update royal_raceway_displaylists.yml

* Update values

* update

* Course works now

* fixes

* wip framebuffer

* Fix trees

* Fix player select borders

* Remove commented code

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-07-31 21:57:02 -06:00
MegaMech 532ad5a4c0 Renames & seg 3 & 5 texture fixes (#19)
* Remove tools/torch

* Auto compile torch and extract

* Re-implement soh's implementation of lus implementation of an array

* Fix static actors in mr

* Update

* Updated torch

* Updated lus

* uncomment

* Fix collision

* Renames

* More renaming

* Collision Renames

* Update collision.c

* Collision Documentation (#640)

* Collision related renames

* Update

* update lus

* Bug fixes

* remove tabs

* fixes

* fixes

* Fix kart textures

* Networking

* net

* Add networking

* Update

* Cleanup

* Fix balloon rendering

* Fix lakitu and red shell

* fixes

* Implement new random system

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2024-07-26 11:29:35 -06:00
MegaMech 78a7d156c9 Changes for OTR (#15)
* Bunch of fixes
2024-05-22 19:19:16 -06:00
MegaMech e86b876992 Changes (#9) 2024-05-03 21:38:56 -06:00