1992 · Ocean Software

About this page

This minisite is not complete: 100 % of the program is explained. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to continue games/c64/lethal-weapon to Silver.

Footprint

Every byte of the C64's 64 KB, one pixel each, 512 to a row. Lit pixels are what this game is: its code, graphics, level data, sound, text, tables and variables, exactly where they sit in memory. Dim areas are screen and working memory; dark is unused.

This game is in 3 parts, and the map is of one of them: The title screen and character select. The Source tab has the listing of each part that has one.

Status

Tierbronze
Coverage100 % of the bytes the game uses have a description
Comments checkedNot measured. No sample of the listing’s comments has been checked. How listings are checked
Build analysedPAL disk release in a G64 image whose title program is the file LOADER (no file TITLE, which the game-over code asks for); three parts: the title and character select, the game at stage 1A played as Riggs, and the ending
Copyagent-draft
Toolshost: macOS 27.0 on an Apple M4 (arm64), emulator: release v3.14.0, v3.14.0-macos-arm64-gui.dmg (tools/vice-mcp); driven through kit/c64/vice.py; check-emulator 57 of 57, disassembler: regenerator2000 0.9.20, publication: Python 3 and Node.js; symbols_export.py, listing.py; work/scripts/unpack.js runs the game's unpacker on the kit's 6502 for the Maps tab
Modelclaude-opus-5-5
Kit version0.0.280

How the listing was checked

Every step that measured the Source tab’s comments or made them more accurate, in the order it happened, with the models that did it. Accuracy of the Source explains each step and what the row above makes of them.

StepByWhat it foundOf the listing
Researchclaude-opus-5-5Looked the game up online (its manual, reviews or wiki pages) before reading its code.
Annotationclaude-opus-5-5Wrote the listing’s comments. 100 % of the program is described, in 1,507 comments.
Port checkclaude-opus-5-5Checked a page’s port or widget against the game and corrected 1 comment it showed wrong.
the music player: the page's driver held against the title's listing, which showed 64 bytes of the frequency tables missing from it

likely wrong the sample’s range corrected right, or likely right not yet measured

Contributors

Other places to love this game

What the game does, and where we found it

Read this before annotating code. What the game is documented to do, with verification status against the binary. Statuses: open (documented, not found yet), traced (in the code, could not be exercised; say what was tried), confirmed (in the code, consistent with the emulator), live (observed directly), differs (the code does something else). "Absent" is not a status.

Sources:

Features

FeatureStatusWhere
Choose Riggs or Murtaugh at the startlive$C34C, $FFF1
Linear stages, no choice of missionconfirmedexits in each overlay, $22CB, $2388
Side-scrolling platform playliveeight-way scroll, $14E1
Gunslive$1DB3, $1EB1, $1F37
Grenadesopenno grenade throw found for the player; searched the joystick actions ($2813, $2502) and the fire code
Punchingopennot found in the player's controls; searched the same
Riggs fires faster, Murtaugh jumps higher (other versions)differsboth fire the same way; same jump height, Riggs slower ($36A0, $36E2)
Music by Mark Cooksey: Game Theme and Game OverconfirmedMUSI, three tunes ($E8C1); which is "Game Over" is open
Time limitlive$F424
Energy, lives, continuesconfirmed$F373, $373C, $2865

Beyond the documentation

Open questions

Each part of the game has its own symbol map and listing: The title screen and character select, symbols.json and listing.json; The game, symbols.json and listing.json; The ending, symbols.json and listing.json. Write-ups, facts and symbol maps are CC BY-SA 4.0. The game itself is not hosted here.