https://gitlab.synchro.net/main/sbbs/-/commit/5bd9a9251416f85e3f649284
Modified Files:
exec/load/syncretro_lobby.js src/doors/syncretro/syncretro.h syncretro_config.c syncretro_door.c syncretro_input.c syncretro_io.c xtrn/syncarcade/syncretro.example.ini xtrn/syncivision/syncretro.example.ini xtrn/syncnes/syncretro.example.ini
Log Message:
syncretro: default the idle timeout to 10 minutes, and let "any key" mean it
Two changes on top of the idle-user detection added earlier in this batch,
both found by testing at a real terminal.
DEFAULT. The timeout was opt-in: no configuration meant no idle detection at all, so the feature would sit dormant on almost every install. It now defaults to 10 minutes -- lenient on purpose, because a player reading a hint screen, watching an attract loop or answering the door is not gone, and a false termination costs far more than a node held a few extra minutes. Setting `timeout = 0` still disables it outright, and "unset" no longer means "off", which the shipped ini templates now say explicitly.
The number lives in two places that MUST agree, because each governs a path
the other cannot see: SR_IDLE_DEFAULT in syncretro_config.c is the no-lobby (DOOR32.SYS / other-BBS) default, and SYNCRETRO_IDLE_DEFAULT in the lobby is the Synchronet one, since the lobby always passes -i. Both carry a comment pointing at the other.
"PRESS ANY KEY" NOW MEANS ANY KEY. The countdown invites a keystroke, and the likeliest key a player reaches for is the space bar -- which every controller profile binds to pause. Answering the countdown therefore paused the game and raised the pause/legend screen, which is not what the prompt offered; any
other bound key would likewise have fired its action for a player who only meant "I am still here".
The key that answers a countdown is now consumed: it resets the clock, retires the countdown, and is not dispatched further. Only the press edge is
swallowed, so the release still falls through and no key is left stuck down, and this happens only while the countdown is actually on screen -- space at
any other moment still pauses exactly as before.
Retiring the countdown immediately also hands the shared bottom row straight back to the Ctrl-S stats strip rather than leaving it covered for the rest of the toast's dwell.
Verified by driving the door over -stdio with an injected keystroke: the countdown appears, the space is consumed with no pause screen, the clock
resets far enough to survive the original deadline, and the countdown reopens
a full threshold later. A control run with idle disabled confirms space still pauses normally, and one with no keystroke confirms the legend is not drawn on its own.
Co-Authored-By: Claude Opus 4.8 (1M context) <
noreply@anthropic.com>
--- SBBSecho 3.37-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)