• src/doors/syncretro/retro_env.c

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tuesday, July 21, 2026 01:41:45
    https://gitlab.synchro.net/main/sbbs/-/commit/5acdd27b543affbd6863576f
    Modified Files:
    src/doors/syncretro/retro_env.c
    Log Message:
    syncretro: don't forward the core's DEBUG log to the door log

    env_log() ignored the retro_log_level it was handed ((void)level) and
    forwarded every message the core produced. FreeIntv and FCEUmm say almost nothing at debug level, so this cost nothing and looked harmless.

    MAME 2003-Plus logs a line every time the emulated game pokes an unmapped address -- and Pac-Man hammers its watchdog register during play, so one session produced ~1900 copies of a single message (85% of the log). Each
    became a vfprintf to the door's stderr, which the BBS redirects to data/syncretro/syncretro_n<node>.log -- a file that on a multi-host install lives on an SMB share. A synchronous network write several times a frame
    blows the frame budget: the game visibly ran slow and the audio FIFO
    starved, stalling the sound about twice a second.

    The core's own speed was never the problem -- measured at ~1100 fps, 18x real-time. The frame budget was going into logging.

    Drop RETRO_LOG_DEBUG; keep INFO and above, which are bounded (paths, the matched driver) and are what makes a failed load diagnosable. Set SYNCRETRO_CORE_DEBUG=1 to get the firehose back when diagnosing a core.

    Introduced in 5d08adc15a (cycle-3-decreased), which wrote the callback.

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