https://gitlab.synchro.net/main/sbbs/-/commit/e3df945410f392ae2268c9ed
Added Files:
docs/superpowers/specs/2026-07-17-syncscumm-m3-input-design.md
Log Message:
syncscumm: design M3, keyboard and mouse input
Design for making a ScummVM adventure playable over the terminal --
Beneath a Steel Sky first. Today the backend's pollEvent() only ever
emits EVENT_QUIT, so no key or pointer input reaches the engine.
The cursor compositor already exists (built in M2 for the GUI overlay),
so M3 is purely input plumbing: turn terminal input into Common::Events
and call warpMouse() so the existing compositor draws the pointer.
Mouse is absolute point-and-click, modelled on syncconquer: SGR pixel
mouse (DEC 1016) with an automatic cell (DEC 1006) fallback that the
terminal selects by what it reports back. Per the user's decision, the
mouse handshake is extracted into a shared termgfx/mouse module first
and syncconquer refactored onto it, before syncscumm consumes it.
Keyboard reuses termgfx's key-mode negotiator, mapping decoded keys to
ScummVM KeyState.
Also records the resolved hotkey conflict (drop the door +/- volume key,
pass it to the engine, whose GMM Options dialog has the volume sliders)
and the decision to defer the sixel quantizer-stability gate out of M3.
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net