website statistics

Manic Miner

../../../_images/manicminer.gif

A quite accurate conversion of the ZX Spectrum classic.

Download the sketch from: manicminer.zip.

By default, the game uses the following inputs:

  • pin 6 Left
  • pin 3 Right
  • pin 4 Jump

These are the buttons on the Sparkfun joystick shield. You can change them by modifying these #defines at the start of the sketch: PIN_L, PIN_R, PIN_J.

How it was made

Luckily the game’s level format is described in lots of detail. Using a RAM snapshot from an emulator, the above documentation and a chunk of Python it was quite easy to pull the graphics and level data out. After compression, this fitted easily in the Arduino’s 32K flash.

The graphics were pretty simple to get running on the Gameduino, despite the very different graphics systems. The levels are all drawn with character graphics. The sprites are all actual hardware sprites (so no attribute clash!) using 256 colors, to keep the coding simple.

The in-game sound duplicates the crappy 1-bit sound of the original, using this technique to get a square wave.

The hardest part was reproducing the logic for the jumping and walking. If you find a bug in that, please let me know or better yet mail me a patch. Cheers!

Last modified $Date: 2011-09-17 19:07:44 -0700 (Sat, 17 Sep 2011) $

../../../_images/bgcolor-screenshot.jpg ../../../_images/wireframe-screenshot.jpg ../../../_images/frogger.jpg ../../../_images/blog-gameduino1.jpg