• src/doors/syncscumm/door/sst_io.c sst_io.h syncscumm.cpp

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sunday, July 19, 2026 05:16:09
    https://gitlab.synchro.net/main/sbbs/-/commit/db6bd14f9746e4a6dcb86e88
    Modified Files:
    src/doors/syncscumm/door/sst_io.c sst_io.h syncscumm.cpp
    Log Message:
    syncscumm: add mixer-volume knobs and a Ctrl-G Global Main Menu key

    Two door-wide conveniences for reaching audio balance and menus from any terminal.

    Mixer volumes: new syncscumm.ini "[audio]" knobs music_volume,
    speech_volume and sfx_volume (0-100 percent) set ScummVM's own per-
    channel mixer levels, so a title whose soundtrack overbears its dialogue
    can ship a rebalanced default. These are ScummVM's linear 0-255 channels
    (what its GMM Volume sliders show), distinct from the "[audio] volume"
    knob, which scales the whole pre-mixed stream. Applied to kSessionDomain
    by resolveVolumes(), mirroring resolveSubtitles().

    Global Main Menu key: ScummVM's "MENU" action defaults to the keyboard
    "Menu" key, which no terminal sends, so the GMM (Volume/Save/Load/Quit)
    was unreachable outside SCUMM. F5 stays the game's own menu; a reserved
    Ctrl-G is intercepted in all three input paths (kitty, legacy byte, and SyncTERM evdev) and delivered to the engine as EVENT_MAINMENU, which
    opens the GMM in every engine, on every terminal -- a control byte, not
    a modified function key. Ctrl-G is free in the non-SCUMM engines; in
    SCUMM it takes over the "very fast mode" toggle while Ctrl-F "fast mode"
    still works. Configurable via "[input] menu_key = ctrl-<letter>" (or
    "off"); default ctrl-g.

    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net