• src/doors/syncconquer/door/door_io.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed Jul 8 01:33:29 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/cbea88cb7ee78a73e6657384
    Modified Files:
    src/doors/syncconquer/door/door_io.c
    Log Message:
    syncalert: TODO note 640x384 downscale + the DECSSDT status-line fix

    The engine is 640x400 (80x25) but SyncTERM defaults to an 80x24 / 640x384 canvas (its status line takes the 25th row), so every image tier downscales 0.96x and RA's single-pixel vertical bars drop -- text/gauges degrade;
    crisp only at a true 640x400. Record the proper fix inline: drop the status line with DECSSDT (CSI 0 $ ~), first saving the client's current setting via DECRQSS (DCS $ q $ ~ ST) so door exit can restore it. Notes the separate, smaller one-row sixel reserve too.

    Co-Authored-By: Claude Fable 5 <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 Fri Jul 10 23:41:57 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/5936da4d1c60ec677eff815a
    Modified Files:
    src/doors/syncconquer/door/door_io.c
    Log Message:
    syncalert: play FMV cutscenes by default (-NOMOVIES now opt-in)

    The door forced -NOMOVIES into the engine argv, which suppressed Red
    Alert's VQA intro/campaign cutscenes. That suppression was intentional
    early on, but the movies actually stream fine over the terminal: the VQA
    frames route through the game page-flip into door_present(), and the
    movie loop keeps pumping the door's input/pacing (so they're skippable
    and don't stall the connection).

    Stop forcing the flag. -NOMOVIES is now injected only when the sysop
    sets the SYNCALERT_NOMOVIES environment variable, so cutscenes play by
    default. The door-arg neutering (sanitizing door-owned tokens out of the engine's view) is unchanged.

    Cutscenes are silent for now -- the no-video build links the null VQA
    audio backend; wiring VQA audio into termgfx is a separate follow-up.

    Co-Authored-By: Claude Opus 4.8 (1M context) <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 Fri Jul 10 23:41:57 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/0edf7a3435f121d8097ee0d6
    Modified Files:
    src/doors/syncconquer/door/door_io.c
    Log Message:
    syncalert: keep the PPM tier out of the F4 cycle when JXL is available

    The uncompressed PPM image tier is only a useful fallback for a SyncTERM
    build that lacks JPEG XL -- and a raw P6 carries no colorspace tag, so
    SyncTERM decodes it as BT.709 rather than our sRGB and the palette looks
    wrong. Real SyncTERM has JXL, so cycling into PPM with F4 was only ever a surprise with off colors.

    Add it to the F4 tier list only when JXL is not available. sa_auto_tier()
    still selects PPM as the automatic fallback for a no-JXL SyncTERM, so that niche keeps working.

    Co-Authored-By: Claude Opus 4.8 (1M context) <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 Sat Jul 11 04:50:47 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/bdd485515c8db099897fc76a
    Modified Files:
    src/doors/syncconquer/door/door_io.c
    Log Message:
    syncalert: merge REDALERT.INI instead of clobbering it

    door_setup_engine_paths() rewrote the per-user REDALERT.INI from scratch on every launch with only a [Paths] section. That wiped the engine's own
    persisted settings (music/sound volume, etc.) each session, and left
    [Intro] PlayIntro absent -- so it defaulted true, Special.IsFromInstall
    stayed true, and the door auto-started a Soviet campaign game on Normal
    every session instead of showing the main menu.

    Now merge with xpdev's INI reader/writer: read the existing file, (re)write only the runtime [Paths] UserPath/DataPath, and seed [Intro] PlayIntro=false ONLY when it is absent. So a fresh install boots to the main menu (with the Allies/Soviet and difficulty choosers), a sysop's or the engine's own later values survive, and iniWriteFile() rewinds+truncates so everything else in
    the file is preserved. Existing broken per-user INIs self-heal on the next launch.

    Co-Authored-By: Claude Opus 4.8 (1M context) <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 Sat Jul 11 18:22:41 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/28800fb9114d146eaf591669
    Modified Files:
    src/doors/syncconquer/door/door_io.c
    Log Message:
    syncalert: fit-toggle fixes and a tighter stats overlay

    Three fixes to the Ctrl-F Aspect<->Fill display toggle and the Ctrl-S
    stats overlay:

    - Clearing: door_fit_toggle() forced a repaint but not a screen clear,
    so switching Fill (full-width) -> Aspect (narrower, centered) left the
    old wider frame's pixels bleeding through the newly-exposed side
    margins. Request a clear, as door_tier_cycle() already does when the
    image re-centers.

    - Fill centering: Fill set the emitted width to the whole canvas width
    and centered on that, but door_emit_sixel then clamps sixel width to
    DOOR_SCALE_MAX. On a canvas wider than the cap the image landed
    flush-left with a lopsided right margin. Apply the same cap in
    door_calc_rect (sixel only) before centering so it stays symmetric.

    - Overlay: add a "fill" token (shown only in Fill mode, like "blob"),
    drop the space before the rate unit, round bytes/frame to KB, and
    remove the redundant trailing space, so the widest line (JXL with
    both blob and fill) fits one 80-column row instead of truncating.

    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

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