• src/doors/syncdoom/syncdoom.c src/doors/syncduke/syncduke_io.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Jun 28 22:01:38 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/07a345e9877bb6111267b752
    Modified Files:
    src/doors/syncdoom/syncdoom.c src/doors/syncduke/syncduke_io.c
    Log Message:
    syncduke/syncdoom: fill the terminal window without the last-row sixel white bar

    The image tiers now scale up to fill the probed window (sixel width cap
    raised 640 -> 1024) instead of a small centered image. To do that safely, reserve one text-cell row at the bottom of the sixel fit: a terminal that ignores DECSDM ?80l (e.g. Windows Terminal) scrolls a sixel that reaches its last text row, scrolling blank/white lines in below it -- the image renders short with a white bar beneath. Keeping the sixel off the last row avoids the scroll. JXL/PPM (positioned by APC pixel offset, not a text cell) are unaffected and keep the full scale_max.

    Both doors fit a 1.6:1 frame through the same path, so the change is mirrored in syncduke_io.c and syncdoom.c.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sun Jun 28 22:01:38 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/79cb5100c17d9ca0c116551d
    Modified Files:
    src/doors/syncdoom/syncdoom.c src/doors/syncduke/syncduke_io.c
    Log Message:
    syncduke/syncdoom: full-resolution sixel F4 opt-in for pan-ignoring terminals

    Default non-SyncTERM sixel encodes at half vertical resolution and relies on the
    terminal's "2;1 raster aspect to double it. Some terminals (e.g. WezTerm) ignore
    the aspect ratio and render the image at half height. Add a "sixel-full" stop to
    the F4 video-tier cycle (offered only on non-SyncTERM) that encodes at full vertical resolution (vsc=1, no terminal scaling) -- correct on any sixel terminal
    at ~2x the wire bytes. Default stays the cheap half-res; the choice is per-user sticky (SyncDOOM: <home>/syncdoom.ini [video] sixel_fullres; SyncDuke: a syncduke.fullres flag-file in the per-user dir). SyncTERM is unaffected (JXL tier;
    the vsc=1 path is gated off there).

    Also: shorten the F4 cycle banner to "Video: <tier>" (drop the app name and the "(F4 to cycle)" tip -- it only shows on an F4 press) and fix its centering to use
    the real cell width instead of out_w/8 (a wide font over-counted columns and ran
    the label off-screen); show "sixel-full" in the Ctrl-S stats strip in both doors.

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net