• src/doors/syncretro/probe_core.csrc/doors/syncretro/CMakeLists.txt

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tuesday, July 21, 2026 01:41:46
    https://gitlab.synchro.net/main/sbbs/-/commit/f72a5729d772dc5db32a1c2d
    Added Files:
    src/doors/syncretro/probe_core.c
    Modified Files:
    src/doors/syncretro/CMakeLists.txt
    Log Message:
    syncretro: add probe_core, a libretro core diagnostic

    Every SyncRetro console so far was scoped from measurement rather than from
    a core's documentation -- M3_MULTICORE.md sec 2 is a table of what fceumm
    was observed to do -- but the harness that produced it was thrown away. This
    is that harness, kept, because the questions that decide a console's cost
    are all empirical and all cheap to get wrong from a distance:

    - does the core ask the FRONTEND to rotate (env 1), or hand us an
    already-rotated buffer? Decides whether a portrait arcade game needs a
    rotate path in retro_bridge.c or nothing at all;
    - what geometry/fps/sample_rate does it report, and does it CHANGE them
    after load (env 32/37), which the door reads only once;
    - which core options does it actually read, and is it playable on their
    defaults;
    - how many distinct colours does a frame really have, i.e. is the sixel
    quantization exact.

    It links the door's real retro_core.c and retro_options.c and answers env exactly as retro_env.c does, so the report is the door's own view of the
    core and a probe run is a live test of the shipped option store. Each policy the door does not implement can be flipped on (-accept-rotation, -optver)
    and each one it does can be flipped off (-no-options); that difference is
    the work estimate. It links no termgfx, no xpdev and no libjxl, opens no terminal and needs no BBS.

    Opt-in: cmake -DSYNCRETRO_PROBE=ON. Not built by default and not part of
    the door.

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