1983 · Brøderbund

Lode Runner

This minisite was contributed by jankfoundry, air. It’s currently claimed by jankfoundry who is editing it to reach a Gold tier standard.

Rooms, guards, and temporary holes in the Commodore 64 disk game.

01 · Room data

The rooms on disk

Read this disk room’s packed data

The maps show actors in their starting cells. Yellow outlines mark hidden exits; blue outlines mark trapdoors. These editor markers disappear during play. Both board sets are drawn with disk artwork; matching boards contain identical stored cells.

Each disk board packs its 28 × 16 cells into 224 bytes. The disk reader skips raw sector byte zero and loads those cells from raw offsets 1–224. Each byte holds two cells, with the low nibble read first. Values above nine become blank when the game builds the room.

The disk game keeps its engine in memory and reads a new sector for each board. The Source tab has the resident engine and each of the 150 room loads. The 150 boards occupy tracks 3–12. Those room sectors are identical in the three supplied disks. The Editions tab compares the disk variants with the separate cartridge engine.

Surplus guard and exit markers disappear when a room is built. The disk engine keeps at most five guards and 45 hidden exit cells, even when the stored board contains more. The scan runs from the bottom-right cell toward the top-left, so the first markers encountered get the available slots. $6FA6, $728F, $709C.

Trapdoors and direction

A trapdoor looks like a brick and lets the runner fall through from above. The cell blocks sideways and upward entry. Its picture uses brick tile 1, while the maps keep trapdoor tile 5. $733E, $73C7, $74DE, $7550, $75C8.

Falling from above

Trapdoor

Falls through

Brick

Stands on top

Concrete

Stands on top

Select an approach to animate the comparison.
ApproachTrapdoorBrickConcrete
FallsStopsStops
BlockedBlockedBlocked
BlockedBlockedBlocked
BlockedBlockedBlocked
PassesBlockedBlocked

Gravity carries the runner through a trapdoor. Brick and concrete support the runner.

The arrows show the tile’s support and entry tests. The animation illustrates the result; climbing also requires ladder access and the right movement phase. All ten tile IDs were checked in five approaches against both original engines. $73C7, $7671.

02 · Graphics

Bitmap scenery and sprites

Loading the shared C64 renderer.

VICE reference pictureOriginal room-one gameplay in VICE

The runner and guards use up to six hardware sprites, in slots 0, 2, 3, 4, 6, and 7. Those sprites move over multicolour bitmap scenery.

The work bitmap at $4000 preserves the scenery. When a shape is erased from the display bitmap at $2000, that background restores the picture beneath the shape.

Browse the game’s pictures

Choose a group, then select a picture to see it larger.

How the pictures are stored

The game reuses its source shapes for scenery, actor poses, and bitmap text. Each shape has eleven rows, with two encoded patterns supplying each row. Four pairs of lookup pages shift an actor’s mask to its horizontal phase. $8AF8, $8BF3. The disk atlas holds 104 shapes as 22 transposed rows of 104 bytes at $A800. Digits occupy indexes 59–68; letters occupy 69–94. The cartridge atlas has 76 compact source shapes, expanded into RAM at startup. Each edition uses its own shape indexes.

Actor previews show the single-colour masks used during play, at the unshifted horizontal phase. Guard shape indexes select shared runner masks; the preview identifies the selected mask. Scenery and text previews use bitmap colours. $8AF8, $8BBA.

03 · Digging

When a hole closes

Brick intact

—

game updates remaining

A hole lasts about six seconds at the default disk pace.

Dig to open the brick and start the countdown.

The hole keeps its open picture until 20 updates remain. The second closing picture appears with 10 left, and the brick returns at zero. “Dig & watch” plays at the undelayed disk pace of about 30 updates per second; pause, scrub, or select a picture to inspect that stage. The countdown and picture changes were checked against the original routine. $84F1.

Drilling opens a brick diagonally below the runner. The cell beside the runner must be clear. Concrete blocks resist drilling. $76E6, $77A5.

A completed hole stays open for 180 main-loop passes. Partial refill pictures appear with 20 and 10 passes remaining. At zero, the brick returns. $7B12, $84F1.

Trapping a guard earns 75 points. Burying the trapped guard when the brick returns earns another 75.

A buried guard moves to a respawn position. After the respawn delay, the guard’s sprite returns when that cell is clear in the actor map. $7BD2, $862F.

At the disk version’s default pace, an undelayed hole lasts about six seconds. The measured PAL setup runs about 30 main-loop passes per second. Scoring, drawing, and disk operations can delay those passes, so the timer follows the game’s progress rather than elapsed seconds.

Digging cadence and hole count

The disk’s normal digging cadence limits how many timed holes can overlap. A successful dig takes 13 runner updates, and each continuing main-loop pass also ages the holes. With legal positions and the normal loop and room-reset flow, a 180-pass lifetime allows at most 14 active timed holes: 180 / 13, rounded up. Walking and interrupted digs lengthen the gap between completions. The allocator has room for 30. $611C, $76E6, $77A5, $7B12.

13180

The diagram arranges one completed dig at the selected interval, starting with an empty table. Each completion precedes that pass’s hole update. The timers match the original routines. Movement and room geometry are omitted, so the 14-hole peak establishes timer overlap rather than a route a player can follow.

The final drill check

The neighboring cell is checked on every dig update. A nonblank cell, including a guard marker, cancels the dig even on its final update. The brick remains, and no hole timer is allocated. $7712, $77D3.

04 · Guard movement

Guard route costs

The controls score one candidate exit; route searches remain outside the diagram. The scoring helper matches $81CE for all 200,704 legal row/column combinations.

Guards first try a supported horizontal chase when they share the runner’s row. Otherwise they look for ladders and drop points within their walking range.

The guard assigns a cost to each candidate exit. A candidate on the runner’s row costs the lateral distance from guard to candidate. An exit above the runner costs its vertical gap plus 100; an exit below costs its gap plus 200.

Equal route costs preserve the guard’s search order. The guard tries its current column before searching left and then right. Each side scan starts at its outer walking limit and works inward. A candidate replaces the previous choice only when its cost is strictly lower. $7FD2, $809C, $8106, $816F.

05 · Points

Gold and points

The counter arithmetic and displayed digits match $87E6 in 1,624 boundary and seeded cases.

The status bar hides the score’s highest digit. The counter stores eight decimal digits in four packed-BCD bytes, while the status bar prints the lowest seven. The highest digit remains in the counter and high-score record. Overflow beyond eight digits discards the carry.

Gold is collected only when both movement phases are centered. Collecting the last gold queues a motif and enables hidden exits. The Music tab plays those motifs and explains their changing pitch. $7A4A.

An enabled exit can become a ladder beneath an actor while preserving that actor’s collision marker. With the gold collected, reaching row zero at the centered vertical phase completes the room and awards 1,500 points plus a life. $8D96, $611C, $6162.

06 · Controls and disks

Controls and the editor

ControlAction
Port-2 joystick; I / K / J / LMove up / down / left / right
Fire; U / ODrill according to facing/polarity; drill left / right
Ctrl-J / Ctrl-KJoystick / keyboard
Run/Stop; + / −Pause; change pacing threshold
Ctrl-A / Ctrl-RAbandon a life / return to attract mode
Ctrl-F / Ctrl-UExtra life / skip room; both disqualify the score
Ctrl-D / Ctrl-ZReverse fire’s drill polarity / toggle room reveal
Ctrl-E at attract screen; ReturnEditor / score display

Commands labeled Ctrl also accept other modifier combinations with the same letter. The IRQ sets the key byte’s high bit whenever a modifier is active, matching the command codes at $7A10.

The editor reads and writes the same packed sectors used by the game. Its commands play, clear, edit, move, initialize, and clear scores. $65D6.

The editor protects the master disk’s room data. Clearing the master score file is permitted. $6A88.

High scores rank displayed level before points. Before writing an edited record, the game rereads the score sector. $6CAD.

The Black Label disk engine is covered here. Gray uses a different disk-probe path, and Yellow has additional startup differences.

The supplied 16 KB CRT boots a separate engine outside the disk Source tab. The cartridge’s complete controls and editor workflow are outside this disk analysis.