• xtrn/synchess/images/piec

    From Deuc¿@VERT to Git commit to main/sbbs/m on Sat Mar 21 13:02:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/2925e44447e1ccb7e6b96a5e
    Added Files:
    xtrn/synchess/images/piece_mask.pbm
    Modified Files:
    xtrn/synchess/synchess.js
    Log Message:
    SynChess: add piece slide animation for all moves

    AI moves flash the source square twice before sliding to draw
    attention. Player moves slide immediately (board is redrawn first
    to clear drag highlights). Castling animates both king and rook.

    JXL mode uses flicker-free pixel animation with the two-mask trick
    from syncterm-bounce.js: each frame draws the piece silhouette at
    the new position, then erases the trail with an inverted mask that
    has a hole preserving the piece just drawn. Both paste commands
    are emitted in a single console.write() for atomic rendering.

    ANSI fallback steps the piece character along the path with
    ease-in-out timing, restoring board squares as it goes.

    New file: piece_mask.pbm Ä 136x960 PBM containing draw masks
    (piece silhouettes) and erase masks (inverted silhouettes with
    48px border) for all 6 piece types.

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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sat Mar 21 13:24:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/229a255d5d9dd75cf3e6d441
    Added Files:
    xtrn/synchess/images/piece_sprites.jxl
    Modified Files:
    xtrn/synchess/synchess.js
    Log Message:
    SynChess: pre-load all piece images into a sprite sheet buffer

    Combine all 48 piece images (12 pieces ¨ 4 variants: dark, light,
    cap, promo) into a single JXL sprite sheet loaded into pixel
    buffer 1 at startup. All JXL drawing now uses Paste from the
    buffer with SY offsets instead of DrawJXL from cache, avoiding
    repeated disk reads.

    Also remove the unnecessary final-position cleanup from the slide
    animation Ä the piece remains drawn at its destination since
    drawBoard() follows.

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

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