<feed xmlns='http://www.w3.org/2005/Atom'>
<title>SpaghettiKart/src/port/Engine.cpp, branch main</title>
<subtitle>SpaghettiKart: Mario Kart 64 PC port</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/'/>
<entry>
<title>Switch LUS to port-maintenance branch (#727)</title>
<updated>2026-08-02T05:22:35+00:00</updated>
<author>
<name>MegaMech</name>
<email>MegaMech@users.noreply.github.com</email>
</author>
<published>2026-08-02T05:22:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=33817cd1100ab560b16e19af34488de3b5a6b7eb'/>
<id>33817cd1100ab560b16e19af34488de3b5a6b7eb</id>
<content type='text'>
* lus update  compiles but not run

* Game runs, fix demo bug

* Switch lus to port-maintenance branch</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lus update  compiles but not run

* Game runs, fix demo bug

* Switch lus to port-maintenance branch</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor cmake (#721)</title>
<updated>2026-07-23T00:02:58+00:00</updated>
<author>
<name>coco875</name>
<email>59367621+coco875@users.noreply.github.com</email>
</author>
<published>2026-07-23T00:02:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=4c24ae2bc2294c96a81d296a68b6d404f34358e7'/>
<id>4c24ae2bc2294c96a81d296a68b6d404f34358e7</id>
<content type='text'>
* 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</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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</pre>
</div>
</content>
</entry>
<entry>
<title>macOS: sharp ImGui menu text on Retina at every menu scale (#714)</title>
<updated>2026-07-19T14:12:17+00:00</updated>
<author>
<name>quarrel07</name>
<email>178681861+quarrel07@users.noreply.github.com</email>
</author>
<published>2026-07-19T14:12:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=582900a1b9198bc941d139b0374b92a178c27efe'/>
<id>582900a1b9198bc941d139b0374b92a178c27efe</id>
<content type='text'>
* 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 &lt;noreply@anthropic.com&gt;

* Shorten the RasterizerDensity comment

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;

---------

Co-authored-by: Claude Fable 5 &lt;noreply@anthropic.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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 &lt;noreply@anthropic.com&gt;

* Shorten the RasterizerDensity comment

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;

---------

Co-authored-by: Claude Fable 5 &lt;noreply@anthropic.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fix crash when bailing out of first-run setup before the game inits (#707)</title>
<updated>2026-06-29T00:41:26+00:00</updated>
<author>
<name>quarrel07</name>
<email>quarrel-07atolls@icloud.com</email>
</author>
<published>2026-06-29T00:41:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=d1dec0f6f437cf5342a8514f23741da9ded95485'/>
<id>d1dec0f6f437cf5342a8514f23741da9ded95485</id>
<content type='text'>
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 -&gt; World::CleanWorld() -&gt;
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 &lt;paeans-toggle-2e@icloud.com&gt;
Co-authored-by: coco875 &lt;59367621+coco875@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 -&gt; World::CleanWorld() -&gt;
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 &lt;paeans-toggle-2e@icloud.com&gt;
Co-authored-by: coco875 &lt;59367621+coco875@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Switch build (#705)</title>
<updated>2026-06-10T21:42:07+00:00</updated>
<author>
<name>Tim Schneeberger</name>
<email>tim.schneeberger@outlook.de</email>
</author>
<published>2026-06-10T21:42:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=458613f2d94a969c9920dfc12ed57acfca7e5916'/>
<id>458613f2d94a969c9920dfc12ed57acfca7e5916</id>
<content type='text'>
* 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</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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</pre>
</div>
</content>
</entry>
<entry>
<title>Fix switch and windows CI (#700)</title>
<updated>2026-05-04T18:00:43+00:00</updated>
<author>
<name>coco875</name>
<email>59367621+coco875@users.noreply.github.com</email>
</author>
<published>2026-05-04T18:00:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=efdaf9d8fdc99f79527220617ba0004fb882aad3'/>
<id>efdaf9d8fdc99f79527220617ba0004fb882aad3</id>
<content type='text'>
* 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</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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</pre>
</div>
</content>
</entry>
<entry>
<title>Fix NON_PORTABLE build. Ship::Context needs to be initialized first. (#618)</title>
<updated>2026-01-09T18:13:37+00:00</updated>
<author>
<name>Fabien Romano</name>
<email>fabienromano@gmail.com</email>
</author>
<published>2026-01-09T18:13:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=aaae77f3bcb0a93b6fd34bbb82784ba046726083'/>
<id>aaae77f3bcb0a93b6fd34bbb82784ba046726083</id>
<content type='text'>
* 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor Track to CustomTrack Class, impl render layers (#606)</title>
<updated>2025-12-29T22:51:12+00:00</updated>
<author>
<name>MegaMech</name>
<email>MegaMech@users.noreply.github.com</email>
</author>
<published>2025-12-29T22:51:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=81d200e74b6fc245424d13631836e7d1c77ba953'/>
<id>81d200e74b6fc245424d13631836e7d1c77ba953</id>
<content type='text'>
* 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 &lt;7255464+MegaMech@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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 &lt;7255464+MegaMech@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Improve cmake, make release need less dependancy and clean up some file (#584)</title>
<updated>2025-12-08T15:49:21+00:00</updated>
<author>
<name>coco875</name>
<email>59367621+coco875@users.noreply.github.com</email>
</author>
<published>2025-12-08T15:49:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=5b79a1c9106bd1d327d624362620cba1fe4cc674'/>
<id>5b79a1c9106bd1d327d624362620cba1fe4cc674</id>
<content type='text'>
* 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</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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</pre>
</div>
</content>
</entry>
<entry>
<title>Update lus (#580)</title>
<updated>2025-12-08T15:25:10+00:00</updated>
<author>
<name>coco875</name>
<email>59367621+coco875@users.noreply.github.com</email>
</author>
<published>2025-12-08T15:25:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/SpaghettiKart/commit/?id=f022183d6f67a2b099832a3ac77e3c2b66f6ab56'/>
<id>f022183d6f67a2b099832a3ac77e3c2b66f6ab56</id>
<content type='text'>
* fix include

* Update libultraship

* fix Engine.cpp

* fix error

* Update TrackSections.h</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* fix include

* Update libultraship

* fix Engine.cpp

* fix error

* Update TrackSections.h</pre>
</div>
</content>
</entry>
</feed>
