Manic Miner, Matthew Smith’s 1983 platform game, rebuilt in Go from William Humphreys’ Z80 disassembly. All twenty caverns, the original physics, and the gloriously grating piano.
Manic Miner taught the Spectrum what a platform game was. Matthew Smith wrote it in 1983, Bug-Byte published it, and twenty caverns of collapsing floors and unforgiving timing did the rest. This is a faithful Go replication, built from the original Z80 assembly rather than from the feel of it.
Faithful to the code
All twenty caverns play. The physics, the movement and the collision come straight from the disassembly, so Willy jumps the exact parabola he always did, the conveyors drag at the right speed, and the guardians follow their original paths. The music is there too: In the Hall of the Mountain King on the title screen and the Blue Danube during play, both reproduced from the note data, both as charmingly awful as the original beeper made them.
There is the title screen with its animated piano keys and scrolling banner, the game-over sequence with the descending boot, a demo mode that cycles the caverns, a persistent high score table, and the option to continue from the last cavern you reached.
The engine, again
Same architecture as the Atic Atac port, and that was not an accident. A headless engine package with no graphics dependency, an Ebitengine wrapper on top, and a Step(Action) -> StepResult API so the whole thing can be driven by an agent for training. The caverns themselves are extracted from the Z80 into their own definitions.
If you want the long version, the repo carries a development journal that records what went wrong and what I learned. Those lessons fed directly into the Atic Atac project that came after it.
Credit where it is due
Manic Miner is Matthew Smith’s, copyright 1983. The disassembly I worked from was made by William Humphreys, with help from Simon Brattel, who wrote the Zeus Z80 assembler back in the day. This port is an educational exercise: a recreation for preservation and study, nothing more.