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.](https://www.laurencescotford.net/wp-content/uploads/2023/07/original-manic-miner-1024x775.png)
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.](https://www.laurencescotford.net/wp-content/uploads/2023/07/manic_miner_no_attribute_clash-1024x698.png)
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