GitHub

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)

Read the original on github.com ↗