Disassembly of the Lode Runner game for the ZX Spectrum 48K — every routine named and documented, and byte-exact recompilable to the original image. See ARCHITECTURE.md for the code map (memory layout, the play loop, the actor state machine, data formats, and the dead/duplicate low bank).
Compilation
Sources can be compiled with SjASMPlus (at the moment there is 1.23.1 available) https://github.com/z00m128/sjasmplus
If you need to check integrity of the result: ZX-M8XXX verifies it automatically against
the inline ; md5 check: hashes on the savebin/savesna lines (see Editor / build
helpers below) — no extra tools needed. Alternatively, the Python diff tool that
compile_lode.bat runs binary-diffs the rebuild against the original —
https://www.python.org/downloads/
-
get SjASMPlus
-
get Python
-
compile with compile_lode.bat
-
ready files are put into "recompile" directory. lode.sna is ready to run in emulator.
-
fast room redraw can be set in Lode_runner_loader.asm if you uncomment DEFINE LEVELADDR
Editor / build helpers
The sources are compatible with ZX-M8XXX (a browser ZX Spectrum emulator/debugger with an integrated sjasmplus-compatible assembler, for reverse engineering) and carry its helper directives so the tool can assemble & run them without manual configuration:
; ZX-M8XXX helpers
; @main - assemble THIS file (the loader), not an include
; @entry GAME_START - program entry point for the emulator
Assemble Lode_runner_loader.asm (marked @main) — Lode_runner_main.asm is an
include and will not build on its own.
Integrity is self-checked: the savebin / savesna lines carry an inline MD5 of the
expected output, so a byte-exact rebuild reproduces it:
savebin "recompile/lode.bin", STARTBLOCK,$FFFF-STARTBLOCK+1 ; md5 check: d193a89ef4527c903463b4b8ecd81bb2
best wishes, Bedazzle 2024.12.16 (updated 2026.06.18)