Blog Home

This new game engine runs Manic Miner on an Arduino UNO

Arduino TeamMarch 13th, 2024

For owners of Sinclair ZX Spectrum computers in the ‘80s, few games were more desirable than Matthew Smith’s Manic Miner. It is very much a classic and has official and unofficial ports available for just about every console and computer released since. There was even a port made for Microsoft’s Zune MP3 player. And now you can play it on an Arduino UNO thanks to Scott Porter’s custom game engine and port.

This isn’t the first time someone has done this, as James Bowman created a Manic Miner port for Gameduino a decade ago. But Porter’s project is a little different. His port runs on a custom engine on an Arduino UNO Rev3 that produces composite video output through a custom shield. That shield also contains a speaker driver circuit, buttons for control, and a port to connect an NES controller for a more comfortable gaming experience.

Porter’s biggest challenge was generating video, as that requires very accurate timing. For that reason, he recommends using an official UNO and not generic boards that sometimes cut corners with resonators instead of crystals. 

The game engine is impressive, with a fixed framerate of 50fps at 256×256 and up to nine sprites on screen. One of those sprites can have pixel-perfect collision detection with all of the others, which is ideal for a game like Manic Miner. But the video is monochrome and there do seem to be some glitches evident in the demonstration video. Regardless, this is very impressive and we’re excited to see what else Porter can achieve with his engine.