• src/doors/syncscumm/syncscumm.example.ini src/doors/termgfx/termgfx_te

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Sat Jul 25 23:10:02 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c3abb18b543f19fd531ed7a0
    Modified Files:
    src/doors/syncscumm/syncscumm.example.ini src/doors/termgfx/termgfx_termio.c
    Log Message:
    termgfx: repaint under the stats bar, show dr%, add an aspect key

    Three things about the Ctrl-S row and what sits under it.

    Toggling the bar OFF left a black band across the bottom of the picture
    until something happened to change those pixels. Erasing the row assumed
    it was the reserved one, which it is on the sixel tier -- but the JXL tier reserves nothing, so there the bar is drawn straight over the image and
    ESC[K takes game pixels with it. Nothing repainted them either: an
    unchanged frame is deduped, and the dirty path only patches cells the GAME changed, which those are not. Invalidate the last-frame cache instead, so
    the next present is a whole frame. One repaint per toggle; on the sixel
    tier the row is outside the image and correctly stays blank.

    The bar now carries dr%, the share of frames patched rather than
    repainted, over the same rolling window as fps and KB/f -- the sibling
    doors have shown this for a while and it is the number that says whether
    the dirty path is doing anything on this content. Three states, as
    elsewhere: a percentage, "n/a" when there is no cell grid to place a box
    in, and "-" before the first window closes. A lifetime average is the
    wrong readout, since a session's early frames (with nothing to diff
    against) drag it down forever and a static screen can never move it.

    Finally, an "aspect" ini key: square (the default, and what this module
    has always drawn), 4:3, or a plain decimal. These games are VGA mode 13h,
    whose art was drawn on a 320x200 grid for a 4:3 monitor -- pixels that
    were never square, which is what ScummVM's own aspect-ratio correction
    undoes. Whether a given title looks right that way is a judgement rather
    than a fact: Flight of the Amazon Queen was compared side by side and
    looked better square, and nothing else has been checked. So the shape is
    a sysop's choice per install, with today's behaviour as the default.

    It has no effect on SyncTERM, which applies an aspect of its own per
    video mode (conio/vidmodes.c) and cannot be asked which way it is set, so correcting here as well would correct twice. The gate is the terminal's identity rather than the tier, because a SyncTERM without JXL still lands
    on the sixel path.

    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)