This all started with ElitePetite where I recreated the iconic start screen from 1984's "Elite" using an Uno, a small LCD and my compressed frame buffer algorithm.
Six months later I created LittleZone for a similar treatment of the attract/demo mode of 1980's "Battlezone".
A few months later I started on this, the third, and likely final, project in this vein, the attract/demo mode of 1979's Asteroids.
After a lot of initial progress, studying the 6502 disassembly listing, implementing an emulation of the Digital Vector Generator and adapting the Vector Generator ROM data I had Rasteroids 90% done.
But then I got distracted by other projects. I finally got back to it over the 2024/2025 Xmas break and it's done. I think with a bit less verisimilitude than the others, but it has the feel of the original.
The LCD displays Asteroids and (periodically) the Saucer, a count of the lives left and the score. The latter can show the time if an RTC is present.
On a small touch LCD (320x240) there's the ability to configure the time with on-screen Arcade-style buttons
It also runs on a larger non-touch LCD (480x320) with push-buttons for setting the time
Some videos:
Some screen-grabs:
The sketch source is available at GitHub
The Rasteroids.ino file has some more code details.
Photos on Flickr
Videos on YouTube