1987 · Ocean Software

About this page

This minisite awaits a maintainer’s check. A model this site has not proven yet worked on it (claude-sonnet-5-5), so a maintainer will measure its listing on one it has (how the check works). It is not complete either: 0 % of the program is explained. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to continue games/c64/short-circuit 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.

Status

Tierbronze
Coverage0 % of the bytes the game uses have a description
Comments checkedNot audited. No audit has checked every comment, and the last sample of 28 comments had 5 wrong, so between 8 and 36 % of the listing’s comments are likely wrong. How listings are checked
Build analysedG64 disk image of a cracked original: a loader program, a second program of 1,026 bytes that sets up a fast loader, and one 64,508-byte program that holds both parts of the game
Copyagent-draft
Toolshost: macOS arm64 (Apple silicon), emulator: release v3.14.0, v3.14.0-macos-arm64-gui.dmg, disassembler: regenerator2000 0.9.20, publication: Python 3; symbols_export.py and listing.py, subagents: none: one agent throughout
Modelclaude-sonnet-5-5
Kit version0.0.256

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-sonnet-5-5Looked the game up online (its manual, reviews or wiki pages) before reading its code.
Annotationclaude-sonnet-5-5Wrote the listing’s comments. 0 % of the program is described, in 1,146 comments.
one agent, no helpers
Sample 1claude-sonnet-5-512 of 60 comments wrong, so between 12 and 32 % of the listing is likely wrong. All 12 were then corrected.
checked by the model that wrote the comments, not by another: 2 comments carried a wrong number (rows, an entry's place in a table), 10 variable comments named the wrong routine as writer or reader because their owner labels were missing; all 12 corrected and every other comment of the same two kinds regenerated
Sample 2claude-sonnet-5-55 of 28 comments wrong, so between 8 and 36 % of the listing is likely wrong. All 5 were then corrected.
28 comments of code routines drawn at random and read against their code by the model that wrote them, not by another: 5 were wrong in a detail (a label taken for a mid-instruction operand of a BIT skip, a missing step in a menu, a loose description of two routines, voice 3's command table one word off); all 5 fixed, and the false symbols of the same kind ($03A9, $05A9, $07A9) corrected

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

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), confirmed (in the code, consistent with the emulator), live (observed directly), differs (the code does something else).

Sources:

Features

FeatureStatusWhere
Two parts on one disk: an adventure (part one) and a countryside run (part two)livepart one at $0400, part two at $2624; F1 and F3 on the attract screen start them
Part one: about 36 screens of the Nova laboratory, a side-scrolling map explored with the stickconfirmedmap rows $4000/$4100/$4200, 256 columns each, scrolled by $087B
Space bar cycles the actions JUMP, LASER, SEARCH, UTILISEliveaction_select_poll ($067D), labels at $06E1
Fire performs the selected action; menus are driven by stick and firelivemain_loop_frame ($04E8), mode table $43E8
SEARCH finds objects and lets Johnny TAKE them (hold at most four)liveaction_search ($0BF6), mode_search_finish ($0C2D), object table $1568
UTILISE: HIDE an object in a container, INPUT an object into a terminal or lock, DESCRIBE an objectconfirmedaction_utilise ($166A), modes 5 to 11
Collect the JUMP ROM and LASER ROM to unlock JUMP and LASERconfirmedaction_jump ($192F) and action_laser ($18FF) test the inventory for objects 2 and 0
Terminals: log on, link up, override the alarm, switch the sprinklersconfirmedinput_terminal_computer ($1DC3), puzzle flags at $0299
Locked drawers and cabinets opened with keysconfirmedinput_lock_check ($1CFA), container table $15BC
A thirty-minute clock; running out of time ends the gameconfirmedcheck_time_up ($24D9); the clock starts at 3:00 and the limit is 3:30
Build a decoy robot from four objects to finish part oneconfirmedcheck_decoy_parts ($2219), decoy_parts ($225A)
Energy and shield bars (E and S) that drainliveenergy_drain_step ($1EE4), shield_drain_step ($1F28)
Guards and an enemy robot who capture Johnny ("CAPTURED AND DEACTIVATED")confirmedguard_logic ($227C), capture_ending ($238E)
Part two: jump over animals, duck, shoot soldiers' belt buckles with the lasertracedpart-two actors $2DD4 to $35B3; the laser shot player_fire ($3AEC); no soldier was reached in play
Part two: terrain that slows Johnny (mud)tracedterrain_type_table ($8AFF) and look_up_ground ($8A8E); not isolated in play
Music by Martin Galwayconfirmedthree-voice script driver at $9EB1-$ACA0; its tune table at $ACA0
High-score table of ten entries with three-letter initialslive$83E8, game_over_scores ($97F0)
Pause with F7livepause_check ($21CF): the clock stopped while it was held
F5 abandons a gameliveabort_key_check ($9B3A): the attract mode came back
Escape in a truck at the end of part oneopenmessage 46 says the truck has already left; the ending that uses it was not reached

Beyond the documentation

Open questions

The symbol map for this game is symbols.json; the listing behind the Source tab is listing.json. Write-ups, facts and symbol maps are CC BY-SA 4.0. The game itself is not hosted here.