1986 · MicroProse

About this page

This minisite was contributed by air. It’s agent-generated and needs a human editor. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to curate games/c64/gunship 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.

This game is in 8 parts, and the map is of one of them: Title sequence. The Source tab has the listing of each part that has one.

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 80 comments had 15 wrong, so between 12 and 29 % of the listing’s comments are likely wrong. How listings are checked
Build analysedoriginal disk, Rapidlok V6, PAL, C64 Preservation Project gunship_s1/s2[microprose_1985](rl6)(pal)
Copyagent-draft
Toolsemulator: release v3.14.0, v3.14.0-linux-x86_64-gui.zip, disassembler: regenerator2000 0.9.20, host: Linux x86_64, Ubuntu 24.04.5 (cloud container)
Modelclaude-opus-5-5
Kit version0.0.277

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 2,051 comments.
Sample 1claude-opus-5-515 of 80 comments wrong, so between 12 and 29 % of the listing is likely wrong. All 15 were then corrected.
Port checkclaude-opus-5-5Checked a page’s port or widget against the game and corrected 10 comments it showed wrong.
the big map, the hit simulation and the missile check

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
Animated title: a helicopter flies in, rotors turn, "Ride of the Valkyries" playslivetitle
Vehicle identification at start (copy protection): a random picture, the answer from the manual; a wrong answer allows only a training flightlivefront
Pilot roster of up to eight pilots saved on side 1, with rank, medals and pointslivetitle, front, base
Roster corruption: "ROSTER DATA HAS BEEN CORRUPTED!" and the roster clearedlive (the text, in the boot program)title
Five duty assignments: training in the USA, Southeast Asia, Central America, Middle East, Western Europelivefront
Three styles: regular, volunteer, volunteer hazardous; said to change damage tolerance, cannon effect and Hind activitytraced: the style (zpa_4C) gates hits on the helicopter, how many hits stop the engines, the cannon's range and the Hind's take-offsfront; flight $5AE5, $3D60, $598D
Reality levels (flight model, landings, winds and temperature)livefront
Overall risk shown on the menulivefront
Briefing with primary and secondary missions at map coordinateslivefront
Map and intelligence screens, sick callopenfront
Checklist before take-offlivefront
Arming: weapons loads chosen within a weight limitlivefront
Night missionstraced: half a page more of CH, units see half as far, the night window colours, the target box a step lighterfront; flight $0A24, $5495, $3CB6
Weather: wind and temperature change the load the helicopter can lifttraced for the wind, added to the position every second pass; the temperature openfront; flight $3B10
Engines 1 and 2, rotor clutch 3, collective on F1/F3/F5/F7liveflight
Pitch and roll on the joystick; yaw on the cursor keys (only at low speed), RETURN stops the turntracedflight $370F, $353A, $35AD, $348D
Sidewinder, FFAR, Hellfire, 30 mm cannon on keys 4 to 7tracedflight $348D, $3E1E, $3D60
Chaff (9), radar jammer (0), infrared jammer (+), flares (-)tracedflight $34FC, $353A
Views to the side and forward (DEL, £, HOME)tracedflight $3383
Target switching with right SHIFT; the target box's colour shows the chance of a hittraced: four colours by distance and aimflight $3383, $3CB6, $53A4
CRT display cycled with SPACE (map, target, messages); big map on Ztracedflight $332E, $9614
Damage display (left SHIFT), weapons display (C=)traced: each picture is loaded from side 2 when asked forflight $332E, $999E
Pause (RUN/STOP), fast motion on ← in the map viewtracedflight $3383, $332E
RESTORE with a weapon key jettisons it; RESTORE with RUN/STOP abortstracedflight $35AD, $332E
Hills drawn filled, block line of sight and can be hittraced for the drawing and the line of sight; a hill hit openflight $A163, hill_between
Missiles and shells as spritestraced: five sizes by distance, launch smoke from each wing, six explosion framesflight $958F, $7200
Hind helicopters as airborne enemiestraced: one Hind, from a base unit, flying at the helicopter and backflight $5727, $598D, $53FB
Password and countersign to land at a friendly basetraced: a checksum of the typed countersign against the codeword's; two wrong tries set every damage bitflight challenge, $E741
Landing judged on speed and rate of descent, near the Ttraced for speed and sink rate; the T openflight $39CC, debrief
Mission result summary: rank, time, landing, position, damage, missions, woundslivedebrief
Medals and promotion up to colonel, then brigadier generalopendebrief, base
What next after landing: inspect, take off again, rearm, repair, leavelivebase
Points subtracted after a mission longer than 20 minutesopendebrief
Cheat (wiki): unlimited ammunition, POKE 23082,189traced: $5A2A is the DEC that takes from a store; 189 makes it an LDAflight use_store
Cheat (wiki, "Master .d64 version"): no damage, no fuel useopenflight

Beyond the documentation

Found in the code, not in the manual.

Open questions

None that the code leaves open. The roster's changes go through two hands: the flight leaves its variables in the copy of its zero page at $3F00 (swap_zp, $919B), the debriefing B reads them there (lines 4-5) and copies the ones the base needs into the cassette buffer at $033C (lines 59-62), and the base program E saves the roster.

Each part of the game has its own symbol map and listing: Title sequence, symbols.json and listing.json; Machine-code library, symbols.json and listing.json; Front end, symbols.json and listing.json; Side two helpers, symbols.json and listing.json; Side two loader, symbols.json and listing.json; Flight, symbols.json and listing.json; Debriefing, symbols.json and listing.json; Base, symbols.json and listing.json. Write-ups, facts and symbol maps are CC BY-SA 4.0. The game itself is not hosted here.