There are times when a project becomes such a big part of a maker’s life that they find themselves revisiting it even years later. [Thanassis] combined this phenomena with his love for the ZX Spectrum when he ported one of his old 3D rendering projects to the ZX Spectrum 48K. The video below shows the result, and they speak for themselves.
The roots of this project go back around three years, when [Thanassis] posted a similar project for the ATMega328 which employed fixed point math tricks for achieving the graphics. The code needed to be even tighter to run on the Spectrum, eventually getting boiled down to just a handful of calculations. This got the proof of concept working with the z88dk compiler, but it wasn’t quite fast enough.
In the end, hand assembly optimizations nearly doubled the performance to a blistering 10 frames per second. There’s also a version that kicks it all the way up to 40 FPS, but only if you give it a few minutes to do the calculations ahead of time. With a few teaks and the right display, this project could produce some very cool retro visuals.
>”With a few teaks and the right display…”
Those teaks really do a great job rendering tree-D! ;-)
B^)
There were some games back in the day for the speccy, doing full 3D environments with filled triangles. But frame rate was like 1 FPS or so. Pretty impressive considering the machine limitations.
Oh yes, i remember those… think one of the titles was Driller? you were all excited to get the latest game, loaded it up and then nothing happened on screen and controls didnt work. It always made me wonder why they released these unplayable games. they were basically tech demos
Freescape games were pretty slow but looked pretty good on the 8-bitters. That’s why they were mainly puzzle-based games with no action. I imagine they run nicely on the Spectrum Next at 8x speed.
For more action games, the programmers resorted to lines. And probably even more optimisation than this project. Starglider, 3d star strike, etc.
Yep, i remember those too. Lotta hype, little gameplay. I preferred the Ultimate games and of course Manic Miner.
Jump on to the new “Spectrum Next” kickstarter and you’ll have a 28Mhz z80 to play with :-P
The Kickstarter page says 7 MHz
https://www.kickstarter.com/projects/spectrumnext/zx-spectrum-next
The NEW Kickstarter says 28
https://www.kickstarter.com/projects/spectrumnext/zx-spectrum-next-issue-2
The soft core Z80 was upgraded to run at 28MHz during the original development after the first Kickstarter (and many other bells and whistles were also added), it’s not been a static target for the spec at all :-)
I stand (sit actually) corrected!
I missed Elite
https://www.youtube.com/watch?v=4lKKy3l_5YI
…have tried many a time to do this similiar concept on the VZ200 in Z88dk, but my knowledge is a bit limited. Can get 3 frames per second with ~50 pixels, but what we see here is my ultimate goal with hand opto’d asm.
I’m more interested in that terminal program that emulates the look of a curved amber CRT.
https://github.com/Swordfish90/cool-retro-term/releases
I3wm + coolreteoterm rocks