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.

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.

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:
Be First to Comment