Adaptations from the software-rendering playbook, at MRPCI's level of the
stack:
- pic.rs: fBm noise fill, jittered Voronoi fill (with mortar edges) and
scatter — seeded, deterministic, Bayer-dithered through palette ramps
- particles.rs: rain/snow/embers layer on its own RNG stream; RoomDoc
gains `weather`; visuals can never perturb gameplay replays
- font.rs: built-in 5x7 font stamped in index space; headless frames are
now annotated (room chip, score, dialogue windows, transcript strip) so
MCP render_frame shows what a player actually reads (--raw to skip)
- render.rs: compose split into index-space compositing + palette blit;
effective_palette() exports the cycle-LUT-applied strip
- GUI: frame ships to the GPU as indices + a 256x1 palette texture; a
fragment shader does the lookup plus CRT curvature/scanlines/vignette
and room-change fades
- Neon Precinct: fBm night sky + stars, Voronoi sidewalk & wet cobbles,
fBm asphalt, rain in Neon Row and Rain Alley
Verified: replay determinism (byte-identical events x2), 25/25 win path,
GUI boots with the shader.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>