BIG DOG — now with a compiled renderer. bigdog play it (SPACE or W flaps) bigdog-demo let it fly itself WHAT CHANGED The game logic is still Tcl. The pixels are not: /bin/fbdraw is a static wasm32 C binary that owns /dev/fb0, and Tcl describes each frame to it as a few dozen command lines over a pipe. Measured in one boot, 300 frames, 480x320: home/bigdog.tcl (Tcl draws every pixel) 602 ms/frame home/bigdog-fbdraw.tcl (fbdraw renders) 2.1 ms/frame The old one was never limited by the framebuffer — the device does 367 MB/s. It was limited by an interpreter touching pixels one list element at a time. WHY IT IS FAST mmap(/dev/fb0) fails ENODEV here, and pwrite64 is ENOSYS on the wasm32 syscall table, so a frame costs lseek+write syscalls. fbdraw keeps the last flushed frame and writes only rows that actually changed; a dog crossing a static sky dirties a fraction of the screen and the rest cost a memcmp. Source: demos/bigdog-fbdraw.tcl and packages/custom/fbdraw/fbdraw.c