Writing Z80 assembly, 4 decades later:-)

Retro fans lose it as a 1980s computer pulls off a tiny 3D comeback

TLDR: A coder got a simple 3D demo running on a ZX Spectrum and made it dramatically faster with old-school hand-tuned code. The comments turned into a joyous retro pile-on, with people calling themselves crazy, sharing speed tricks, and even proving it works on a rare clone machine.

A programmer went full nostalgia mode, returned to the ZX Spectrum—a beloved 1980s home computer—and somehow got a little 3D demo running on it nearly 40 years later. Even juicier: after rewriting parts in old-school assembly language, the demo jumped from 6.2 frames per second to 14, and a precomputed version blasted all the way to 40. In plain English: the ancient machine went from "cute slideshow" to "wait, that actually moves." And the community? Absolutely ate it up.

The comments quickly turned into a support group for people who apparently cannot stop making tiny, outdated computers do ridiculous things. One fan cheered, "I love this!", admitting they were relieved to find they weren’t the only one trying to shove modern-looking graphics onto a Spectrum. Another commenter brought veteran energy, saying they’d done something similar while testing an 8-bit coding tool—and basically hinted that the real madness wasn’t the assembly language, but the fact that they enjoyed it. That’s the vibe here: equal parts admiration, self-dragging, and retro nerd pride.

There was also some gloriously specific backseat coaching, with one user dropping speed tips like a pit crew chief for 1980s silicon. And the best flex of all? A commenter actually showed it running on a Belarusian ZX Spectrum clone, complete with a YouTube clip. So yes, this story is about one coder optimizing ancient hardware—but the real spectacle is the comments section screaming, "you maniac, we love you, and also here’s how to make it even faster."

Key Points

  • The article describes porting a software-only point-based 3D rendering demo to the ZX Spectrum 48K+.
  • The project repository includes TAP files for a statue and sphere demo, plus build instructions using a Makefile and z88dk.
  • To reduce computation on the Spectrum, the author changed the rendering loop to orbit the viewpoint instead of rotating the object.
  • The author rewrote the critical code in Z80 assembly and replaced divisions with reciprocal lookup-table multiplications, increasing performance from 6.2 fps to 14.0 fps.
  • A separate precompute branch calculates animation paths and screen-memory writes ahead of time, reaching 40 fps after minutes of preprocessing.

Hottest takes

"I'm not the only crazy out there trying to port modern renderers to the Spectrum" — ggambetta
"it wasn't coding on assembly level that mad..." — flohofwoe
"It does, here is 'Statue' loading and running on Belarusian 'Bajt' ZX Spectrum clone" — terramex
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.