• v0.4.0 ea90f98830

    v0.4.0 Stable

    intpa released this 2026-10-14 13:14:22 -04:00 | 198 commits to main since this release

    0.4.0 — the character-select stall fix, plus match captures

    Two-image LessLag presents at the flush. The console trace showed the real
    CSS stall: the game presents a frame only after running the next frame's whole
    CPU update, 13.7 ms after submitting it (16 ms with the hand moving), and in a
    two-image ring a present after the vsync costs the next acquire a full vsync.
    LessLag now presents the acquired image at the end of the flush that submits
    it and skips the game's later present of that index. On the console the CSS
    hand sweep went from 49.9 fps with 20 % of frames over 20 ms to 59.85 fps
    with 1.3 %; texture-wait p95 16.4 ms → 2.95 ms. Online matches: 59.7–59.9 fps,
    0.2–0.4 % of frames over 20 ms including the stage load. Eden under a 120 %
    CPU quota: p99 19–22 ms vs 32–33 ms before. Counters in renderer-status.txt
    (early_presents, early_present_skips, early_present_mismatches); install
    log code 105 records a mismatch.

    Vanilla* in the banner. A manual selection that the cleanup hold is
    running as Vanilla (the regular CSS right after a match) now reads Vanilla*
    in the banner, the arena lines and the settings row instead of the saved
    profile name.

    Match capture (opt-in). Create an empty CAPTURE_MATCH in
    sd:/ultimate/ssbu_online_deluxe_rewrite/ before boot: every stage load arms
    the timing + API capture pair (timing-<id>.csv, api-<id>.csv, label
    match_singles / match_doubles / match_training) and the capture ends
    when the game leaves the stage (results screen or character select), ten
    minutes at most. Both files stream to the card from the background thread,
    about 4 MB per minute. The flag also installs the three read-only
    CAPTURE_CSS hooks. Debug view row Match capture; install log code 106;
    tools/analyze_timing.py and tools/analyze_render_trace.py accept
    # reason=scene_end. The capture CSVs' engine footer is sampled per poll
    while recording, so a profile change after the capture no longer labels it
    Mixed.

    Known, not in this release. The opponent window stays after the opponent
    declines a rematch. Two online matches were classified offline by the scene
    hooks although the latency hook fired; manual profiles are unaffected.

    Assets: libssbu_online_deluxe_rewrite.nro and manifest.json (SHA-256 in the
    manifest). Smash 13.0.5.

    Downloads