1985 · Ocean Software

About this page

This minisite was contributed by unorig. It’s agent-generated and needs a human editor. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to curate games/c64/rambo-first-blood-part-ii with me to Gold.

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

Tiersilver
Coverage100 % of the bytes the game uses have a description
Comments checkedNot audited. No audit has checked every comment, and the last sample of 60 comments had 18 wrong, so between 20 and 43 % of the listing’s comments are likely wrong. How listings are checked
Build analysedOcean's original disk, mastered 4 December 1985 ("MASTER DATE 04/12/85 NO:014.006.2" on track 18, sector 2), protected by the XROM system of Tequila Sunrise, Belgium; a G64 image
Copyagent-draft
Toolshost: macOS 27.0 on Apple silicon (arm64), emulator: release v3.13.2, v3.13.2-macos-arm64-gui.dmg (tools/vice-mcp), driven through kit/c64/vice.py and codemap.py; check-emulator 57 of 57 on release v3.14.0 (v3.14.0-macos-arm64-gui.dmg), which booted the disk the same way, disassembler: regenerator2000 (tools/cargo/bin), through kit/c64/r2000.py, publication: Python 3 and Node.js; symbols_export.py, listing.py
Modelclaude-opus-5-5
Kit version0.0.289

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 925 comments.
Sample 1claude-opus-5-518 of 60 comments wrong, so between 20 and 43 % of the listing is likely wrong. All 18 were then 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

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
Joystick moves Rambo; fire uses the weapon in hand ("PLACE YOUR WEAPON INTO PORT TWO")liveread_stick $1CD0 ANDs both ports, so either port works; fire_check $19F7
Space bar selects the weapontracedweapon_select_key $19BD, key code $3C; steps to the previous owned weapon. Pressed in the play session; the change was not measured
"S" toggles music and sound effectstracedmusic_toggle_key $0CCC: toggles effects off ($0D11) and the voices the music may use (7 or 0)
RUN/STOP toggles a pausetracedkey_pause_toggle $09F8 sets $0A19; irq_panel then freezes input and silences the SID
Extra weapons lie in the terrain and the enemy campsiteconfirmedfour map items ($0BB7-$0BCB); item_pickup_check $0A1A adds weapon bits to $19ED
Starting weapons (the sources disagree)tracedweapons 0-2 owned at the start ($19ED = 7); which weapon each number is was not tied to a picture
An energy bar; death when it runs outconfirmedenergy_tick $0C89, energy $0CC3 from $30; damage per hit in facts.md
Free scrolling in every direction over a jungle maplivescroll_jungle $1C67; map of 119 by 16 tiles at $E770
The POW camp, Banks and the hut opened with the knifetracedhut_door_check $08D9: weapon 0 on the hut-door character $E0, after the first flight, frees ten POWs ($0846). Banks on a cross was not found as a separate object; open
A helicopter; once aboard its fuel runs down fastconfirmedthe fuel is the energy bar: gunship_fire_timer $304E adds a unit of damage every $3064 frames
Inside the helicopter only the rocket launcher firestracedheli_fire_rocket $3140 fires only with weapon 5
An enemy gunship harasses the flight northconfirmedgunship_update $3066; pursues on the second flight ($3825); five hits bring it down
Three stages, points for each, the game starts again after the missiontracedthe mission ends on landing from map row $300 northward with message 4, then game_start again (heli_landing_check $356E)
Name-entry wheel and all-time heroes tablelivename_entry $C367, attract_pages $C827; 80 entries at $B000/$B0F0
Martin Galway's music; nine tunes counted in playconfirmedtwelve tunes and their effects on the driver at $8100, played on the page; tune 28 has no caller
Noise draws the enemyconfirmedexplosions and weapon 4 add 5 each to the spawn budget $119B

Beyond the documentation

Found in the code, not in the manual.

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.