• exec/load/syncretro_lobby.js xtrn/syncivision/syncretro.example.ini te

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Fri Jul 17 02:57:08 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c4720dc2b85bd3775856c69e
    Modified Files:
    exec/load/syncretro_lobby.js xtrn/syncivision/syncretro.example.ini test_lobby_headless.js xtrn/syncnes/syncretro.example.ini
    Log Message:
    syncretro: play a sysop-supplied sound on lobby entry

    SyncDuke and SyncDOOM play a one-shot sound when a player enters the lobby,
    via game_lobby.js's shared enter_sound(); the SyncRetro consoles did not. syncretro_lobby.js already loads game_lobby.js, so this is the same one-line call the siblings make, plus the [lobby] section read that feeds it. Both consoles inherit it from the one shared call site.

    Nothing ships: silent until a sysop sets [lobby] enter_sound, and silent on a terminal that cannot decode audio files. The templates document the key with one caveat the siblings don't need -- SyncDuke can tell you to extract a quip from your own GRP and SyncDOOM a blast from your own WAD, but a cartridge has nothing to extract: a console's sound is generated by its sound chip as the game runs, so it is nowhere in the ROM as data.

    The headless harness gains a stub console that can ANSWER the libsndfile
    probe, so the test drives the real path: a configured sound is uploaded,
    loaded and queued when the terminal decodes audio, and nothing is queued when it doesn't. It calls the helper directly with its own cfg rather than writing
    a [lobby] key into the sysop's live syncretro.ini to test itself.

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