Skip to content

Recreating Manic Miner in HTML

A while ago I stumbled on a great site with a complete disassembly of Matthew Smith‘s seminal original ZX Spectrum version of Manic Miner. I thought it would be a fun project to try and create a faithful version in HTML.

Having the original source code, and as this game is machine code running on a known platform, I was able to accurately replicate the timing of the original. One thing that I didn’t recreate is the ZX Spectrum’s infamous attribute clash. This is an effect caused by the Spectrum’s unusual architecture – it has a lower colour resolution than pixel resolution. Each 8 x 8 block of pixels can only have a single foreground and background colour. This means two sprites of different colours will clash when they enter the same 8 x 8 block.

A screenshot from the original ZX Spectrum Manic Miner showing attribute clash on the player character.
A screenshot from the original Manic Miner showing attribute clash on the player character

I decided to not complicate matters by emulating this effect but to create a copy that worked as the game would have done if each pixel had its own colour mapping.

A screenshot from my conversion of Manic Miner showing that attribute clash doesn't happen.
A similar point in my conversion of the game showing that attribute clash doesn’t happen.

I was also able to add some further enhancements, for example an optional mode that eliminates flashing/strobing effects in the game.

Unfortunately, as Manic Miner is not in the public domain, I can’t make the source code or a playable version of the game available. However, if you’d like to see it in action, there’s a gameplay video:

There’s also a video showing all levels in demo mode:

Published inGamesProgrammingRetro Computing

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *