Play Online
Download
What's Changed
New platforms
- Add an iOS target and CI job by @KiritoDv
- Add Android support, based on Waterdish's work by @KiritoDv
- Android on device extraction (rebase of #225) by @KiritoDv in #250
- Add a web (Emscripten) build with IDBFS persistence and a Pages deploy by @KiritoDv
Renderer
- Add a Vulkan backend by @KiritoDv
- Add a full postprocessing system with multipass custom shaders, manifest-driven shader settings, and a Shaders tab in the menu by @KiritoDv
- Expose engine variables as custom shader uniforms by @KiritoDv
- Add HD texture support (ported from Jeod) with auto-mipmap generation, async texture loading, and deferred texture frees by @KiritoDv
- Move sRGB to a postprocess pass; fix viewport and depth clamp with postprocess steps by @KiritoDv
- Implement G_CD_* noise dithering; multiple LOD fixes by @KiritoDv
- Fix Metal texture stutter, Metal postprocessing, and the game lagging while unfocused by @KiritoDv
- Fix the D3D11 vertex stride for lit materials without combiner shade by @KiritoDv
- Fix missing Vulkan DLLs on Windows builds by @KiritoDv
- Fix the universal macOS build (tinycc host target leaking into the x86_64 slice) by @KiritoDv
- Fix blurry menu text on Retina displays by @quarrel07 in #234
- Fix the menu tab row showing a scrollbar after the Shaders tab was added by @quarrel07 in #249
Modding API
- Load TCC-compiled mod scripts in memory instead of via a dropped shared library by @KiritoDv
- Big event pass: engine lifecycle, render pipeline, HUD/text-label, camera, level script, geo layout node, entity distance culling, behavior native-call, save load/flush, file select, and pause menu events by @KiritoDv
- Add a keyboard input API and KeyboardInput event by @KiritoDv
- Add ImGui draw callbacks for C mods by @KiritoDv
- Add a data persistence system for mods (player store, channel store, player identity) by @KiritoDv
- Export a large set of previously static engine symbols to mods by @KiritoDv
- Show a readable error when a mod script fails to build by @KiritoDv
- Fix the mod template to target the main repo and add clang-format to it by @KiritoDv
- Fix the preprocessor mis-parsing some constructs by @KiritoDv
Networking
- Move websockets to mbedtls and enable TLS on Linux by @KiritoDv
- Add relay versioning to avoid conflicts between game versions by @KiritoDv
- Add a USE_SATELLA build option and an "Enable Satella" toggle in Developer Tools by @KiritoDv
- Guard Satella behind USE_NETWORKING by @JeodC in #193
- Fix Satella never connecting on macOS by @quarrel07 in #237
Gameplay and fixes
- Fix Goombas insta-killing Mario by @KiritoDv
- Fix crashes when loading saves and improve conversion of old save files by @KiritoDv
- Fix the current save being wiped after a Game Over by @quarrel07 in #229
- Fix the title screen background after a Game Over by @quarrel07 in #238
- Fix the Bowser key being treated like a star with Collecting Stars Will Not Exit Level enabled by @quarrel07 in #243
- Fix achievements tracking and popping while the toggle is off by @quarrel07 in #239
- Enable achievements by default by @KiritoDv
- Fix interpolation of menu text, Mario's hand cursor, and the skybox by @KiritoDv
- Fix use-after-free crash in audio synthesis on level reset (#133) by @JeodC in #197
- Fix the crash on quit by @quarrel07 in #244
- Fix held movement keys opening the macOS accent popup by @quarrel07 in #231
- Move "Disable LoD" to the Graphics tab by @KiritoDv
Extraction and assets
- Port the improved extraction flow: re-extract confirmation, single sm64.o2r generation, and word-wrapped Torch errors by @KiritoDv
- Keep existing sm64.o2r archives working after the Torch CRC byte-order change by @quarrel07 in #248
- Fix special characters in path #126 by @JeodC in #196
- Add a full PNG loader (RawTextureFactory) and make merge.py output PNG textures by @KiritoDv
Build, packaging and CI
- Add a Liquid Glass app icon for macOS by @quarrel07 in #245
- Fix Mac builds reporting version 0.1.0 by @quarrel07 in #228
- Fix the macOS build failing against Homebrew's current mbedtls by @quarrel07 in #232
- Fix the packaged macOS app failing to launch when built with Homebrew's sdl2 by @quarrel07 in #233
- Fix generator mismatch in cmakelists by @JeodC in #195
- Fix AppImage packaging by @KiritoDv
- CI: cut macOS build time from ~86 min to ~15 min by caching MacPorts by @quarrel07 in #247
New Contributors
- @quarrel07 made their first contribution in #228
Full Changelog: 2.0.0...3.0.0