https://gitlab.synchro.net/main/sbbs/-/commit/96a148297f256e0fb9f02f66
Modified Files:
src/doors/syncdoom/README.md m_menu.c render_text.c render_text.h syncdoom.c xtrn/syncdoom/controls.msg lobby.js syncdoom.example.ini
Log Message:
syncdoom: Ctrl-N dither toggle + per-user syncdoom.ini; fix dither washout on F4 cycle
- Dither washout fix: init_noise() rescaled noise_textures in place, and rt_config
calls it on every F4 tier cycle, so the repeated rescaling flattened the dither
until it vanished and never came back. Guard it to scale once (color depth is
fixed for the life of the process). User-confirmed on Windows Terminal (8-bit).
- Per-user prefs: the per-user file is now a sectioned syncdoom.ini in -home
([input] kp* graces + [video] dither), mirroring the house syncdoom.ini beside
the exe (was a flat input.ini). Saved read-modify-write so unmanaged keys
survive. Precedence: built-in -> house ini -> per-user -> CLI.
- [video] dither = auto|on|off (auto = by color depth: on at 256-color, off at
16-color and truecolor) plus a live Ctrl-N toggle -- no function key was free,
so 0x0E is intercepted at the door level (never reaches Doom). rt_set_dither()
re-derives the dither state without rescaling. Dither is text-tier only; off
also trims text bandwidth (fewer SGR color escapes from broken-up flat runs). - Docs: Ctrl-N row in controls.msg (byte-correct codes + the per-user note) and
the README controls table; example.ini [video] dither + per-user overlay note.
- Lobby: drop the redundant console.pause() in sd_controls -- printfile's
auto-pause is the single dismissal; trimmed controls.msg to one screen.
Co-Authored-By: Claude Opus 4.8 <
[email protected]>
---
■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net