• v0.3.0 f636df2980

    intpa released this 2026-10-12 15:59:32 -04:00 | 240 commits to main since this release

    Dispatcher idle backoff: the character-select slowdown fix, applied to all profiles and scenes.

    Root cause (Astra xhigh trace): the game's task dispatcher (main+0x354a6d0) busy-polls six empty job queues while the main thread waits ~4.8 ms per CSS frame on one nn::ui2d::Layout animation job (main+0x375e260, worker 1); in a match the same wait is ~0.9 ms. The two-image LessLag ring cannot hide the resulting variance. This release adds one inline hook at main+0x354ab48 that lets MainThread sleep briefly (5 us doubling to 50 us after 16 spinning passes) only when every queue is empty, every pending counter is still non-zero and no fiber is ready to resume. No job, counter, lock or ordering changes. Performance view gains a "Backoff" row; DISABLE_BACKOFF flag and dispatcher_backoff.ini tunables documented in README.

    Eden production A/B/A (175% CPU quota): CSS LessLag 55.6 -> 60.0 -> 54.2 fps (off/on/off) at 26.6 -> 19.5 -> 26.8 CPU ms/frame; Vanilla 60.0; live match 59.8 fps at 16.3 CPU ms/frame; unlimited 60. Installed on the Switch 2026-10-12 19:58Z; hardware observation pending (docs/VALIDATION.md).

    Standalone version: https://git.syntaxbyexample.com/intpa/ssbu-dispatcher-backoff (one owner per hook site; do not stack both).

    Assets: libssbu_online_deluxe_rewrite.nro SHA-256 f22d94950be1b4601ad9137a8d87acf6eccf2ec599eb48812e6f386f8e7403d8 (2465792 bytes, build 0.3.0-8aeaa5391343-1791833455, module cac8cc1b...ca31) and its manifest.json.

    Downloads