• src/doors/syncscumm/COMPI

    From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Sun Jul 19 01:09:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/745c1c542b233f4652e136d0
    Added Files:
    src/doors/syncscumm/COMPILING.md README.md build.bat src/doors/syncscumm/door/sst_plat.c sst_plat.h src/doors/syncscumm/msvc/Directory.Build.props Directory.Build.targets vcpkg.json src/doors/syncscumm/scummvm/backends/platform/sdl/win32/win32_wrapper.cpp win32_wrapper.h src/doors/syncscumm/scummvm/devtools/create_project/cmake.cpp cmake.h src/doors/syncscumm/scummvm/devtools/create_project/cmake/.gitignore CMakeLists.txt src/doors/syncscumm/scummvm/devtools/create_project/codeblocks.cpp codeblocks.h src/doors/syncscumm/scummvm/devtools/create_project/codeblocks/create_project.cbp src/doors/syncscumm/scummvm/devtools/create_project/config.h create_project.cpp create_project.h module.mk msbuild.cpp msbuild.h msvc.cpp msvc.h src/doors/syncscumm/scummvm/devtools/create_project/scripts/installer.vbs postbuild.cmd prebuild.cmd revision.vbs scummvm.natvis src/doors/syncscumm/scummvm/devtools/create_project/xcode.cpp xcode.h src/doors/syncscumm/scummvm/devtools/create_project/xcode/create_project.xcodeproj/project.pbxproj src/doors/syncscumm/scummvm/dists/engine-data/engine_data.mk engine_data_big.mk engine_data_core.mk
    Modified Files:
    src/doors/syncscumm/.gitignore PROVENANCE.md src/doors/syncscumm/door/CMakeLists.txt module.mk sst_io.c syncscumm.cpp src/doors/syncscumm/scummvm/backends/module.mk
    Log Message:
    syncscumm: add the Win32/MSVC build (create_project + vcpkg)

    Windows has no gcc/configure, so the door builds through ScummVM's own
    MSVC project generator rather than build.sh's configure+make. build.bat restores and drives devtools/create_project -- patched with a --synchronet option that emits our backends/platform/synchronet module in place of the
    SDL platform backend -- then MSBuilds the generated solution against vcpkg, producing syncscumm.exe with the same curated engines and the JPEG-XL and Opus/Ogg audio tiers as the *nix build.

    The door glue is ported to Windows behind door/sst_plat.{c,h} (winsock send/recv, the monotonic clock, sleep, over xpdev's sockwrap/genwrap/
    dirwrap), mirroring the sibling termgfx doors; syncscumm.cpp selects the WindowsFilesystemFactory and blanket-allows forbidden symbols so the
    Windows fs headers' <tchar.h> compiles.

    Restored from the pinned tarball for this build (see PROVENANCE.md): devtools/create_project, dists/engine-data/engine_data*.mk, and backends/platform/sdl/win32/win32_wrapper.{h,cpp} (a Win32 Unicode helper
    that core backend files pull in). backends/module.mk gates the
    SDL-dependent win32 backend files on SDL_BACKEND, since the door defines
    WIN32 without SDL.

    Adds build.bat, msvc/Directory.Build.{props,targets} + vcpkg.json (local
    vcpkg integration, x64-hosted compiler, LTCG/-Za disabled to dodge toolset ICEs, Console subsystem, syncscumm.exe output), COMPILING.md and README.md.

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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows@VERT to Git commit to main/sbbs/m on Sun Jul 19 17:31:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/0b19104335dba4b499f937fd
    Modified Files:
    src/doors/syncscumm/COMPILING.md README.md
    Log Message:
    syncscumm: make README BBS-agnostic; add Maniac Mansion install example

    The README read as Synchronet-only. Reframe it around the fact that
    SyncSCUMM is a standard DOOR32.SYS socket door (stdio also, on *nix) with
    no Synchronet runtime dependency, so it runs under Mystic BBS or any
    DOOR32.SYS BBS. Synchronet-only conveniences (the %-macro command line, install-xtrn.ini, SCFG menu names) are now labelled as such.

    Add a full "Installing a game" worked example using Maniac Mansion (a commercial title, so the sysop supplies data files): general steps for
    any DOOR32.SYS BBS, plus exact Synchronet SCFG field values (External
    Programs -> Online Programs (Doors) -> section, I/O Method = Socket, BBS
    Drop File Type = DOOR32.SYS, etc.).

    Also correct the docs against the actual build:
    - the produced binary is syncscumm, not scummvm (build.sh renames it),
    in the intro and the "Produces build/..." line;
    - COMPILING's "#ifdef _WIN32 only in the filesystem factory" claim was
    understated -- syncscumm.cpp also has a Windows path-separator block;
    - clarify jsexec/deploy.js are Synchronet-only, SBBSDATA is optional and
    drives only diagnostics (no node-presence line), savepath has no
    /saves subdir, and drop the redundant post-SCFG recycle step.

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

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian L@VERT to Git commit to main/sbbs/m on Wed Jul 22 16:22:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/7788b512f9afea0bd1da66de
    Modified Files:
    src/doors/syncscumm/COMPILING.md
    Log Message:
    syncscumm: spell out the Linux build prerequisites in COMPILING.md

    The Linux section hand-waved "ScummVM's usual dependency -dev packages"
    and buried the fact that libmad is required in mid-paragraph prose, so a first-time builder had no copy-pasteable install line and no clear signal
    that a missing MP3 library would fail the build. Give it a proper
    Prerequisites subsection mirroring the Windows one:

    - An apt-get line for Debian/Ubuntu (verified package names).
    - A pacman line for Arch and other distros that don't split out -dev
    packages -- the headers ship in the base library package, so there is
    no separate libmad0-dev to find; the package is just "libmad".
    - libmad called out as required, with the reason (talkie speech is MP3)
    and the exact "fatal error: mad.h: No such file or directory" it
    produces when absent, so the error is greppable straight to the fix.
    - libjxl/libsndfile flagged optional-but-recommended (JXL + Opus tiers),
    the rest noted as ScummVM's autodetected deps.

    Prompted by Accession's report on IRC of the mad.h build failure on Arch,
    where "libmad0-dev" sent him looking for a -dev package that his distro
    doesn't ship.

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

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