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

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

  • src/doors/syncretro/retro_env.c

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Tue Jul 21 01:41:45 2026
    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