_  _    __    ___  __    ___  _____  _  _
 ( \( )  /__\  / __)(  )  / __)(  _  )( \( )
  )  (  /(__)\( (__  )(__( (__  )(_)(  )  (
 (_)\_)(__)(__)\___)(____)\___)(_____)(_)\_)

The History of Hacking  ·  May 31 – June 2, 2026  ·  Carolina Beach, NC

Connect from your terminal: telnet naclconbbs.net 23  |  ssh naclconbbs.net -p 2222

  • docs/superpowers/specs/2026-07-08-syncmoo1-sfx-audio-design.md

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Thu Jul 9 01:55:11 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/5b22fcff57fe8acdd12ae0ab
    Modified Files:
    docs/superpowers/specs/2026-07-08-syncmoo1-sfx-audio-design.md
    Log Message:
    syncmoo1: spec -- fix the s_ rationale, flag the transcode-version gap

    Two corrections to the SFX audio spec, both found by checking what the
    other doors actually do rather than assuming.

    The spec claimed the "s_" prefix keeps the sfx and music namespaces from aliasing. It does not, and nothing needs to: cache_name() already
    separates them by sub-directory (<prefix>/sfx/<leaf> vs
    <prefix>/music/<key>). The prefix is a legibility tag, which is what SyncDuke's own comment says of its "<trackname>_<hash>" scheme -- "the
    name just makes the cache files readable". Keep "s_", drop the false
    reason.

    More usefully: termgfx does not ship our VOC verbatim. sfx_store_bytes() transcodes it to an 8-bit WAV, so s_<hash> names the SOURCE bytes, not
    the cached ones. Music already solved this -- mus_key() appends _v<MUS_RENDER_VER> so the name changes when the renderer does. SFX have
    no such tag. Harmless today, because every session re-Stores and the
    Store overwrites; it becomes a stale-audio bug the moment step 3 makes name-presence mean "skip the upload". Step 3 now says the leaf must gain
    its own transcode-version tag (s_<hash8>_v<n>, 13 chars, inside the
    16-byte bound termgfx enforces) before, or with, widening the C;L glob.

    ---
    þ 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 Thu Jul 9 01:55:11 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/01f7dea9c9e7fc2a8ca46204
    Modified Files:
    docs/superpowers/specs/2026-07-08-syncmoo1-sfx-audio-design.md
    Log Message:
    syncmoo1: spec -- repair the step-3 follow-on, state both preconditions

    The previous commit inserted the transcode-version note into the step-3
    heading and left the old sentence's tail orphaned: a paragraph beginning
    " Only safe once step 2 lands:" with no subject.

    Rewrite the section so it names both of step 3's preconditions, which are independent and easy to conflate:

    1. Step 2 must land first -- the C;L skip is name-presence, so it is
    only correct once SyncDOOM's and SyncDuke's SFX names are
    content-addressed rather than keyed on a WAD/GRP-dependent id.

    2. The SFX leaf must gain a transcode-version tag. termgfx Stores a
    WAV transcoded from our VOC, so s_<hash> names the source bytes and
    not the cached ones; music already appends _v<MUS_RENDER_VER> for
    exactly this reason.

    Docs only.

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