Subj : exec/load/game_lobby.js xtrn/syncduke/controls.msg get-binary.js lobby To : Git commit to main/sbbs/master From : Rob Swindell (on Debian Linux) Date : Sun Jun 28 2026 22:01:38 https://gitlab.synchro.net/main/sbbs/-/commit/5c38035bb99b2832e2a85b5a Added Files: exec/load/game_lobby.js xtrn/syncduke/controls.msg get-binary.js lobby.js lobby.msg syncduke_lib.js Modified Files: src/doors/syncduke/Game/src/game.c menues.c src/doors/syncduke/syncduke.h syncduke_config.c syncduke_door.c syncduke_game.c syncduke_input.c syncduke_net.c src/doors/syncduke/tests/test_keymap.c xtrn/syncduke/.gitignore install-xtrn.ini syncduke.example.ini Log Message: syncduke: LAN co-op lobby, chat-sync + alias fixes, door config The v1 co-op feature set on top of the UDP mmulti transport: - Lobby (xtrn/syncduke/lobby.js over the shared exec/load/game_lobby.js): Create/Join a 2-player LAN game, play single-player, or view controls. It spawns the native door directly (-s socket, no drop file), so it registers as a JS module (?lobby), not a DOOR32 native. install-xtrn wires it plus get-binary.js (pre-exec, required) so the door never registers without a runnable executable. - Door net args (-netrole/-netport/-netpeer) parsed and stripped before the engine's command-line parser; syncduke.ini [net] (advertise, port range, stale) and [video] (sixel_max_width, use_cell_size) knobs. - Chat OOS fix: typemode() built the message in a local buffer but sent the stale global tempbuf, corrupting the move FIFO -> "OUT OF SYNC". Send the built text. - Alias fix: seed the player name from the door's -name (the BBS alias) instead of the engine default "XDUKE". - Controls: SyncDOOM-style action layer (Space=fire, WASD move/strafe, arrows turn) gated on gameplay so menus and Talk get literal keys. - Cell-size probe (ESC[16t) for canvas sizing on non-SyncTERM terminals; main-menu version line. Co-Authored-By: Claude Opus 4.8 --- þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net .