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