summaryrefslogtreecommitdiff
path: root/src/port
AgeCommit message (Collapse)Author
24 hoursSwitch LUS to port-maintenance branch (#727)HEADmainMegaMech
* lus update compiles but not run * Game runs, fix demo bug * Switch lus to port-maintenance branch
25 hoursFix the warning-flagged real bugs across the codebase (#691, 1 of 3) (#725)quarrel07
* 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>
28 hoursmacOS: package the game as a proper SpaghettiKart.app bundle (#724)quarrel07
* macOS: package the game as a proper SpaghettiKart.app bundle Turns the bare Spaghettify executable into a self-contained SpaghettiKart.app: - cmake/macos/apple_bundle.cmake: bundle metadata (using the existing Info.plist, which already described a bundle), app icon, runtime resources (config.yml, yamls, meta, spaghetti.o2r) into Contents/Resources, dylib relinking for local Homebrew builds (no-op with static vcpkg deps), and ad-hoc codesigning so the app launches without 'damaged app' warnings - App icon: on Xcode 26+ the Icon Composer package (SpaghettiKartIcon.icon, drawn from the existing HM ship-kart icon.png art) compiles with actool into an Assets.car, giving the native Liquid Glass look on macOS 26+, plus a flattened icns for older systems; older Xcode falls back to the previous sips/iconutil flat icon. Supersedes the CreateOSXIcons target. - Game.cpp: default SHIP_HOME to ~/Library/Application Support/SpaghettiKart on macOS so first-run extraction, saves, config, and mods land there instead of scattering into the user's home folder; a user-set SHIP_HOME still wins - Info.plist: NSHighResolutionCapable for proper Retina rendering - CI: mac jobs now ship the .app (ditto zip so the executable bit survives artifact upload) - the yamls-next-to-exe copy is scoped to non-Darwin; on macOS those files live in Contents/Resources instead * macOS: ship prebuilt icon artifacts instead of compiling them at build time Commits the compiled Assets.car (Liquid Glass icon for macOS 26+) and the flattened SpaghettiKart.icns, both built from the in-repo Icon Composer package. The build now just copies them into the bundle, which removes the actool machinery and the Xcode 26 requirement entirely: every build on any machine, including CI, gets the real icon. Also adds a staleness guard: the artifacts carry a hash stamp of the icon.png they were made from, and if icon.png ever changes without them being regenerated, the build automatically generates a flat icns from the current icon.png instead, so updating the logo never requires any macOS work and an outdated icon can never ship. Regeneration steps are documented in apple_bundle.cmake. * Rename the icon layer to ship-kart-layer.png Group 2.png was the design tool's default layer name; name it for what it is. Verified the Icon Composer package still compiles with actool after the rename; the committed Assets.car is unaffected (compiled, self-contained). --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
7 daysFix garbage frame flash on cinematic camera cuts (#720)quarrel07
* Fix garbage frame flash on cinematic camera cuts Frame interpolation blended matrices across instant camera teleports in attract/demo and post-race cameras, flashing 1-2 frames of sheared geometry. Complete the existing camera-epoch mechanism: flag a cut in func_80019890 when the camera moves >100 units, and have the interpolator snap that frame to the new view instead of blending. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Retrigger CI (transient 502 downloading libogg from gitlab.xiph.org) * Name the cinematic shot dispatcher Review feedback on #720: func_80019890 -> camera_start_cinematic_shot. It starts whichever shot D_80164680 has selected for a camera, dispatching to the per-shot setup that teleports the camera to the shot's opening position, which is why the cut detection lives there. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Apply fix to freecam Added FrameInterpolation_DontInterpolateCamera calls to improve camera behavior when changing target players. --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
10 daysExit cleanly after teardown instead of racing static destructors (#718)quarrel07
Normal quits ran the full static-destructor chain, where destruction order is unspecified and something logs through spdlog after its statics are destroyed, intermittently segfaulting on exit (same class as upstream issue #689). All user-visible state (config, saves) is already persisted by GameEngine::Destroy, so end the process with _Exit like the extraction error paths already do. Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
10 daysFix the reset button doing nothing or looping the start screen when pressed ↵quarrel07
repeatedly (#719) * Make the reset button reliable from any screen Pressing reset repeatedly near app start could do nothing, fade the music with no reset, or bounce the press-start screen back to itself. Three defects in the old handler: - It ran from the ImGui widget, racing the menu state machine; a press landing mid-fade was re-advanced by the in-flight transition (the press-start loop). - It always wrote gGamestateNext = MAIN_MENU_FROM_QUIT; once the game was already in that state a repeat write is swallowed by the != guard in main.c, so nothing happened. - CM_ResetAudio ran unconditionally, so the music faded even when the reset was swallowed. The widget now only sets an atomic request flag; ApplyPendingReset (top of push_frame, on the game loop) performs the reset. It alternates between the two identical FROM_QUIT gamestates so every press trips the gamestate switch, and re-enters the menus through the intro's own transition protocol (FADE_MODE_LOGO -> setup_menus rebuild + fresh fade-in), which replaces any in-flight transition. Audio only fades when a reset actually executes. The dead gSkipIntro switch in the old handler (an unconditional override below it always won) is gone; behavior is unchanged: reset lands on the logo intro, or the start menu in debug mode. Play-verified: hammering reset during the splash screens restarts the logo every press; reset mid-fade after press-start no longer loops back; resets from the main menu and mid-race work as before. * Honor gSkipIntro when picking the post-reset screen Review feedback on #719: restore the gSkipIntro switch from the old handler instead of hard-coding the logo intro, keeping the debug-mode override on top (no else), matching the boot-time logic in main(). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
11 daysRefactor cmake (#721)coco875
* 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
12 daysmacOS: disable press-and-hold accent popup while moving (#713)quarrel07
14 daysFix warnings regarding ambigious typings (#715)Lucas
* Fix warnings regarding ambigious typings * Revert struct Collision name change
2026-07-19macOS: sharp ImGui menu text on Retina at every menu scale (#714)quarrel07
* macOS: sharp ImGui menu text on Retina at every menu scale On a HiDPI display the ImGui overlay renders into a 2x framebuffer, but the glyph atlas is rasterized at the logical point size and stretched up by DisplayFramebufferScale, so all menu text looks fuzzy. Set ImFontConfig::RasterizerDensity on the game fonts and the merged FontAwesome icons: glyphs rasterize at higher resolution without changing logical size or layout. Baked at retinaScale (2.0) times the Menu Scale slider's maximum (2.0) so the runtime FontGlobalScale only ever downsamples a high-res atlas instead of stretching a low-res one, keeping text crisp at every Menu Scale setting. Standard-DPI displays just get a supersampled atlas (identical layout, slightly sharper). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Shorten the RasterizerDensity comment Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-06-29Fix crash when bailing out of first-run setup before the game inits (#707)quarrel07
InitModsSystem() runs before the game world is set up. Its bail-out paths (no O2R + user declines generation, missing mods.toml, cyclic/outdated mod deps, and GenAssetFile's no-ROM / unsupported-ROM cases) call exit(), which runs the global `static World sWorldInstance` destructor -> World::CleanWorld() -> dereferences Sky::Instance and other singletons that are still null this early, segfaulting. The most visible case: declining the first-run "Generate one now?" prompt pops a crash report instead of quitting cleanly. Use _Exit() on these pre-initialization bail-outs so no static destructors run. Co-authored-by: quarrel07 <paeans-toggle-2e@icloud.com> Co-authored-by: coco875 <59367621+coco875@users.noreply.github.com>
2026-06-10Fix Switch build (#705)Tim Schneeberger
* Remove duplicate Switch::Init(PostInit) call. It was called multiple times, causing multiple applet hooks (that all point to the same callback address) to be registered. For some reason, the OS started spamming us with FocusUpdate events via that hook because of that. * Hide fullscreen and app data directory button on Switch
2026-05-04Fix switch and windows CI (#700)coco875
* merge upstream commit to fix some bug * fix merge * add a local user for the merge * Update main.yml * revert main.yml * fix windows CI * fix switch build * fix windows and try a fix for switch * fix windows build
2026-04-22Fix compiling for linux arm64 (#650)Jeod
* Enable MK64 build option for torch * Fix HMAS type error (present on arm64) * Align memory pool and fix empty macro * Experimental: Add 4096 memory alignment * Add alignment for ALIGNED8 macro * Use memset over deprecated bzero * Ensure OPENGLES flag can be used in CMakeLists.txt * Diagnostic: align ship2_window_i8 to rule out odd-alignment crash --------- Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2026-04-21Add CoreAudio to audio backend combobox map (#686)mkoterski
macOS uses COREAUDIO as the default audio backend, but the combobox display map in MenuTypes.h only contained SDL and WASAPI. This causes an unordered_map::at crash on first frame draw when the Audio API dropdown tries to render. Fixes the menu crash portion of #681.
2026-03-29Allowing user-set internal resolution in menu (#682)EJStaats
2026-03-05Fix editor loading and finishline duplication (#653)MegaMech
* Fix editor loading and finishline duplication * Update SceneManager.cpp
2026-03-05Fix retry issue with actors (#669)MegaMech
* Update World.h * Update World.cpp * Update Game.cpp
2026-02-26Fix Lakitu in Time Trials (#657)MegaMech
* Update Game.cpp * Add functions for various quit transitions
2026-02-24Impl Sky and SkyActors (#630)MegaMech
* Create Cloud.cpp * Create Cloud.h * Fix the cloud * Cleanup * More cleanup * Update Track.h * Refactor SkyboxCloud position calculations * Update SkyboxStar.cpp * Update SkyboxStar.cpp * Refactor SkyboxStar.cpp by removing redundant code * Update SkyboxCloud.cpp * Refactor SkyboxSnow.cpp by reordering includes * Update SkyboxCloud.h * Refactor SkyboxStar.h for improved formatting * Impl skyboxcloud * Update comment * update comment * Work now * Fully impl Sky * Fix define * Fix args
2026-02-08Attempt At Fixing Clang (#647)MegaMech
* Update Game.h * Update Game.h * Update macros.h
2026-02-06More Interp and Draw Visibility Options (#643)MegaMech
* Update render.inc.c * FI improvements * Rename * Update PortMenu.cpp
2026-02-04Update Game.cpp (#640)MegaMech
2026-02-04[Enhancement] Allow Non-unique Character Selections (#638)MegaMech
* Update PortMenu.cpp * Update menus.c
2026-01-09Fix NON_PORTABLE build. Ship::Context needs to be initialized first. (#618)Fabien Romano
* Fix NON_PORTABLE build. Ship::Context needs to be initialized before resolving files. Move offending calls inside functions where they are used. Those will always be called after GameEngine() which runs Ship::Context::CreateUninitializedInstance() early. * Replace hardcoded string mk64.o2r and spaghetti.o2r with variables game_asset_file and engine_asset_file.
2026-01-01fix build on OpenBSD (#621)Fabien Romano
* fix build on OpenBSD * Update src/port/Game.cpp * Update ceremony_and_credits.c
2025-12-29Refactor Track to CustomTrack Class, impl render layers (#606)MegaMech
* impl Custom track transparency and clip * Rename DrawWater to DrawTransparency * Impl z-sorting for transparent mesh * Interp work * rename track function * cleanup * Revert texture interp * Further revert * Update Harbour * Impl custom track path select * Add check * Fix compile * Fix function extern --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2025-12-23invert condition in menu and some adjustement in interpolation (#611)coco875
* use more unique ptr and fix a shell crash * remove useless mods folder * add even more unique_ptr * Update KoopaTroopaBeach.cpp * restore a throw * Update Game.cpp * automatically create mods folder * fix oob in external by assuming that all 8 player can make sound * better texture loading * add destructor for gameobject * avoid out of bound in audio sample * Update FrameInterpolation.cpp * Update torch * invert condition * adjust interpolation
2025-12-22Clean ptr and fix (#610)coco875
* use more unique ptr and fix a shell crash * remove useless mods folder * add even more unique_ptr * Update KoopaTroopaBeach.cpp * restore a throw * Update Game.cpp * automatically create mods folder * fix oob in external by assuming that all 8 player can make sound * better texture loading * add destructor for gameobject * avoid out of bound in audio sample * Update FrameInterpolation.cpp * Update torch
2025-12-20fix podium ceremony (#608)coco875
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2025-12-19make id of cup more robust and fix a mistake (#604)coco875
* fix id koopa troopa beach * make id of cup more robust
2025-12-18Fix Camera nullptr (#599)MegaMech
* Update spawn_players.c * Update spawn_players.c * Update code_80280000.c * Update Game.cpp * Add CM_ThrowRuntimeError function declaration * Update spawn_players.c * Modify CM_ThrowRuntimeError for improved error handling Increased the buffer size for error messages and added a crash description. * Update Game.cpp * Update Game.cpp * Update Game.h * Update Game.h * Update Game.h
2025-12-18Impl RandomItemTable class (#598)MegaMech
* Impl RandomItem class * Refactor func * Impl RandomItemTable * Revert probability inaccuracy * Remove unnecessary comment * Fix compile, probably * As per review 1 --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
2025-12-16fix Ressource name (#596)coco875
* fix Ressource name * add a fallback * use the correct name for dk jungle * use the correct name for macos intel CI * add print
2025-12-15Edit TrackInfo Properties (#594)MegaMech
* Fix finishline for toads turnpike in extra * Fixed trash bin in extra * Refactor fov * Update scene.json * Allow setting fog * impl fog save & load * Fix modifying resourceName and rename editor namespace to trackeditor * small change
2025-12-14Fix new track bug (#593)MegaMech
2025-12-13Refactor Field-of-view into the Camera Struct (#590)MegaMech
* 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-13Refactor Track Class To Instantiate On Track Load (#587)MegaMech
* Initial Commit * First compilation of Registry template * Further changes * wip changes * Impl TrackBrowser and Registry Info * Remove const from TInfo * Prep GetWorld * Name refactor * Refactor gWorldInstance to GetWorld() * wip * Should work now * Data menu work again * Fix editor staying open after program close * Rename LoadLevel to LoadTrackDataFromJson * More changes * Add statue * Add search to content browser using tags * Fix statue pos and register tags * Fix actor loading * Fix delete all bug which deleted cameras * reduce some boiler plate in actor and object * Remove unused rulesets * Search bar for all tabs * fix data screen * fix actor spawning * temp editor fix * Clean up * improve extra mode transformation * fix podium crash * Fix editor clicking * Fix editor clicking 2 * fix extra in custom track * Fix FI for three actors * Fix divide by zero error * Ids managed by Registry * Add scary comment --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com> Co-authored-by: coco875 <pereira.jannin@gmail.com>
2025-12-08Improve cmake, make release need less dependancy and clean up some file (#584)coco875
* Update CMakeLists.txt * try something to use less dependancy * improve script * Delete addr_to_sym.py * restore dockerfile * move the docker for release and a script to execute it to script * Delete build.sh * move more script to script folder * add the new docker in the CI * Update vcpkg.json * fix windows and macos in theory
2025-12-08more clang tidy (#586)coco875
Co-authored-by: MegaMech <MegaMech@users.noreply.github.com>
2025-12-08Update lus (#580)coco875
* fix include * Update libultraship * fix Engine.cpp * fix error * Update TrackSections.h
2025-12-07Name ScreenContext, Refactor Course class to Track (#583)MegaMech
* 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-07Camera Refactor --> Adds Track Tour Camera (#568)MegaMech
* 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-07Refactor yaml and remove segment (#531)coco875
* 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-06Auto-detect Game (#579)MegaMech
* Update GameExtractor.cpp * Update GameExtractor.h * Update GameExtractor.cpp * Update GameExtractor.cpp * Update GameExtractor.cpp
2025-11-22Fix Moles and some UI Interpolation bugs (#565)MegaMech
* Update render_objects.c * Update FrameInterpolation.h * Update render_objects.c * Fix mac compile probably * Fix Mole Dirt Particles * Fix Mole Duplication Bug, probably * Fix drawing using wrong camera bug
2025-11-14RaceManager class (#562)MegaMech
* Create RaceManager.cpp * Create RaceManager class for race lifecycle management Added RaceManager class to manage race events lifecycle. * Refactor World class and implement ClearWorld method Refactor World class constructor and destructor. Implement ClearWorld method to delete all objects and reset state. * Add RaceManager to World class * Update ValidateString for editor mode checks Refactor ValidateString to handle editor mode and empty strings. * Update Text.cpp * Add SetText method to Text class * Document RunGarbageCollector function Added documentation for the RunGarbageCollector function. * Refactor Game.cpp by removing dead code Removed unused ruleset handling and clean-up code. * Update Game.h * Remove CM_SpawnFromLevelProps call * Update Text.cpp * Update World.cpp * Add Clean method to RaceManager class * Update RaceManager.cpp * Update World.cpp * Update World.h * Update World.cpp
2025-11-09Fix Sherbet (#558)MegaMech
* Update Game.cpp * Update Penguin.cpp
2025-11-09Implement SpawnParams struct (#536)MegaMech
* 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-09-27Update PortMenu.cpp (#552)MegaMech