My first computer was a ZX Spectrum, with all of 48 kilobytes of RAM, and as long as it lasted I obsessively typed in BASIC programs to see what I could get it to do. It was powerful (at least to a child) and expressive, even as it was (even then!) obviously economized to the bone by Sinclair. And now that famous BASIC interpreter has been remade to run in your browser.
The interesting part is that the hardware is not emulated. The browser is not running a Russian doll of software, mapping the traces of a z80, running the old firmware, or modeling some ancient slab of Mostek DRAM. Instead, the original hardware and ROM were used as the specification for AI code tooling, resulting in an extremely efficient replica made from scratch in Rust and running in the browser as web assembly. Here's developer Adam Jesionkiewicz:
zxbasic-rustis a from-scratch reimplementation of the BASIC runtime that shipped on every Sinclair ZX Spectrum 48 K — the interpreter, the line editor, the calculator, the screen, the keyboard handler, the beeper, the lower-screen "0 OK" report, even the flashing inverse-Kcursor. There is no Z80 CPU emulation, no instruction decoder, no bus, no cycle-stepped ULA, and none of the original ROM bytes are ever executed — in the taxonomy of emulator design this is high-level emulation: every behaviour the 1982 hardware exposed is re-derived in idiomatic Rust from reading the original Z80 source as a specification, and then compiled to native macOS / Windows / Linux binaries and a tiny WebAssembly module that boots a Spectrum-perfect screen inside any modern browser.
It seems a good example of when LLMs work well as coding tools: under supervision by humans who know exactly what they need it to accomplish, who strictly circumscribe its stack, and who understand what it generates. Jesionkiewicz evaluates three things here that were genuinely "out of reach for an individual engineer at any reasonable cost:" decoding the hand-written Z80 assembly in the Sinclair ROM, re-implementing all of it in a modern bare-metal language, and doing so with WebAssembly in mind.
The CRT effect is just a shader (no vibe photons and phosphors yet, please, even if we're tokenmaxxing) and can be turned off with a click.