aboutsummaryrefslogtreecommitdiffstats
path: root/gbctl
diff options
context:
space:
mode:
authorgbc dev <gbc@localhost>2026-09-22 14:55:45 +0200
committergbc dev <gbc@localhost>2026-09-22 14:55:45 +0200
commit44c21908b4ff6a1e41a6b9ba17e3ed78de8ec3db (patch)
tree1278a79c6b16bff4b64a0798c91045d7ae72abff /gbctl
parentmain: keep signal handlers installed (sigaction, not signal) (diff)
downloadsl0pboy-master.tar.gz
sl0pboy-master.tar.xz
sl0pboy-master.zip
kitty: truecolor graphics output with a layered HUDHEADmaster
Sixel is a 1987 printer format wearing a terminal costume: 256 colors per image, no alpha, no compositing, one flat picture. --kitty [scale] takes the other road on kitty/ghostty/WezTerm/Konsole: - the framebuffer ships as raw RGB888, so no per-frame palette build and no coarser quantization when a CGB game blows past 256 colors - the HUD (title, render rate, frameskip, turbo, live button readout) is a *separate* alpha-blended image on z-index 1, composited over the game by the terminal instead of being burned into the picture; 'h' toggles it, --no-hud starts without it - consecutive identical images are dropped, so a pause menu or text box stops the traffic dead - pixels go over at 1x and the terminal scales them into a cell box, so --kitty 6 costs the same bytes as --kitty 1 (padded to whole cells first, so the zoom stays exact) Two transfers: shm hands over the name of a POSIX shared-memory object (~60 bytes/frame) when we can tell the terminal is local, b64 inlines the bytes for ssh and tmux (which might be attached from another machine). --kitty-shm / --kitty-b64 force either. tmux gets DCS passthrough wrapping. --chrome and --palette work here just like in sixel mode. Nothing about a graphics stream is human-readable, so tools/kitty_decode.py reassembles a capture back into images - chunked payloads, tmux wrapping and all - and can assert a frame is pixel-identical to a --shot: tools/kitty_decode.py cap.bin -o frames --check shot.ppm -> OK: image 1 matches shot.ppm exactly (160x144)
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions