• exec/load/syncretro_lobby.js

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tue Jul 21 01:41:46 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/88cf67b5761d0cff1c95aa76
    Modified Files:
    exec/load/syncretro_lobby.js
    Log Message:
    syncretro lobby: pass the ROM relative to the door directory

    The door command line is assembled by the BBS into a buffer that truncates silently at 260 characters, and the ROM is the LAST argument on it -- so the ROM is what disappears when the line overflows, producing a door that reports its content missing while the BBS log shows that content's full path.

    Passing "roms\pacman.zip" instead of "s:\sbbs\xtrn\syncarcade\roms\pacman.zip" gives 24 characters back, taking a SyncArcade line from ~240 to ~216 and roughly doubling the margin. That covers a long game title: "1943: The Battle of Midway" costs 19 characters more than "Pac-Man" and previously came within
    a few bytes of the cliff.

    Safe because the BBS starts the door IN the door's directory -- Synchronet passes startup_dir to CreateProcess as the working directory on Windows and chdir()s to it before exec on *nix -- and sr_resolve_file() tries the name as-given (against that cwd) before absolutizing, all of it before the door chdir()s into the per-user sandbox. It is not a new dependency: the door already locates syncretro.ini, its core and its BIOS relative to the same
    cwd, so a door started elsewhere could not run at all.

    Built from rules.dir rather than a hardcoded "roms" so a sysop who moves the ROM directory keeps working -- the lobby names the directory it actually scanned, which also side-steps the door's own bare-name fallback being hardcoded to roms/.

    Verified against the installed door: galaga, dkong and mspacman all load from
    a relative argument, and the derived content path is identical to the absolute form's.

    ---
    þ 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 Aug 2 22:35:14 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/7c0a817f100a48cfe3737683
    Modified Files:
    exec/load/syncretro_lobby.js
    Log Message:
    syncretro: stop the resume marker's legend reading as a hotkey

    Everything before the page counter in the lobby's prompt is a key the
    player presses. The resume marker's legend was written "*=resumes" and
    styled exactly like its neighbours -- a highlighted character followed by
    a verb -- so it read as "press * to resume" rather than as a key to the
    mark beside a cartridge title.

    Parenthesised, unhighlighted and phrased as a noun, it reads as a legend.
    The prompt stays within its width budget at 67 visible columns with a three-digit page count.

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

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