1989 · Firebird

About this page

This minisite was contributed by air, Nico-van-der-Zijden. It’s agent-generated and needs a human editor. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to curate games/c64/rick-dangerous 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 65 comments had 7 wrong, so between 5 and 21 % of the listing’s comments are likely wrong. How listings are checked
Build analysedPAL cassette, Firebird 1989, analysed in play on level one
Copyagent-draft
Toolshost: Linux 6.18 x86_64 (WSL2) on Windows 11, Ubuntu 26.04.1, Intel Core i7-3770, eight threads, display through WSLg, emulator: own build of github.com/barryw/vice-mcp, release v3.13.2, commit 1e83aab134, built with tools.py get-vice build; driven through kit/c64/vice.py; check-emulator 57 of 57, disassembler: regenerator2000 0.9.20, publication: Python 3; symbols_export.py and listing.py
Modelclaude-opus-5-5
Kit version0.0.155

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,361 comments.
Sample 1claude-opus-5-513 of 65 comments wrong, so between 12 and 31 % of the listing is likely wrong. All 13 were then corrected.
45 hand-written and 20 generated comments; about 70 comments that shared their beliefs corrected with them
Audit 1claude-opus-5-5Checked 582 comments and corrected 116.
every hand-written comment, in two halves by two fresh checkers; the generated comments were not audited
Sample 2claude-opus-5-57 of 65 comments wrong, so between 5 and 21 % of the listing is likely wrong. All 7 were then corrected.
45 hand-written comments with 1 wrong and 20 generated with 6 wrong, five of them from one template
Audit 2claude-opus-5-5Checked 346 of 1,361 comments and corrected 346.
partial: that template's 321 comments rewritten to a stricter rule, and 25 self-modified-code comments that named their routine the same way

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:

Credits from the sources: game © Core Design Ltd (manual, loading screen); published by Firebird (loading screen, C64-Wiki), a label of MicroProse Software, whose copyright the manual carries; C64 programming Stuart Gregg and music Dave Pridmore (C64-Wiki); design Simon Phipps (Wikipedia, for the series); manual design and graphics Artistix (manual).

Features

FeatureStatusWhere
Joystick in port 2 (C64-Wiki)livefire on port 2 leaves the Hall of Fame, the title and the story screen
Stick left/right walks; up jumps; up-left/up-right jumps that way (manual)live$0E64 sets the speed from the stick, $0D27 the jump (speed -5.5, sound 7); live: up lifted Rick from Y 139 to 128 in 8 frames (live4.py)
Stick down ducks; down-left/down-right crawls (manual)traced$0CB7 and $0D6A set $4A and the crawl frames from $4326
Fire + left/right jabs with the stick, to press buttons or stun enemies (manual)traced$0CDE puts the stick out ($2B73-$2B75, sound 2); traps with bit 6 set go off at it ($1D1F), enemies are stunned for 25 steps ($1C84)
Fire + up fires the gun the way Rick faces (manual)live$2A17; the bullet is a character moving a cell a step ($2ABA); live: fire and up took a bullet (6 to 5) and one flew (live4.py)
Fire + down lights and drops a stick of dynamite (manual)live$2BAA: a 34-step fuse, then ten steps of explosion ($2BF8); live: fire and down took a stick (6 to 5), its fuse at 30 after 8 frames
The gun holds a limited number of bullets, six to a magazine (manual; C64-Wiki gives six)confirmed$2D32, set to 6 at $09F6 at every level start and after every life lost; six bullets in the panel at the start of level one
Dynamite: six sticks at the start (C64-Wiki)confirmed$2D33, set to 6 at $09F6 with the bullets; six sticks in the panel at the start of level one
A killed enemy may leave a bonus that refills the bullets (manual)differs$1519 only scores and plays a sound; objects start only from the room object lists ($3CCE, called from $3C49 alone). Bullets come from boxes placed in rooms (type 17, $19FA)
Dynamite triggers traps, blows away walls and enemies, and kills Rick if he stays near it (manual)confirmedtraps with bit 4 go off in the blast ($1CFE), Rick and the boxes inside its box are hit ($2C55), enemies by their own test ($2C8A)
The gun often triggers a trap rather than just killing (manual)tracedtraps with bit 5 of their flags go off at a bullet in their zone ($1D10)
Run/Stop toggles pause (manual, C64-Wiki)live$40E0; no main-loop step in 100 frames until pressed again
Up-arrow key quits to the start (manual, C64-Wiki)differs← ends the game ($0A95, keyboard row 7 bit 1), live on 12 October 2026; ↑ did nothing in play
Four levels, 80 rooms, 74 traps and enemies (C64-Wiki)differsfour levels confirmed; the C64 version holds 34 room records, each a tall map that scrolls, and 363 object records. The wiki's counts are not the C64 data's
Levels: Amazon cave and the Goolu tribe, Egyptian pyramid, Schwarzendumpf castle, missile base (Wikipedia; the manual names an Aztec temple, an Egyptian tomb and an enemy fortress)openthe story texts at $AD00 name South America and the Goolu tribe, the pyramids of Egypt, Schwarzendumpf Castle and a secret missile base, in that order; the rooms themselves not read
A story screen before each levelconfirmedfive texts at $AD00-$B253, four levels and the ending; level one's and level two's seen live (reference/story-south-america.png)
The first room: a boulder rolls after Rick (Wikipedia, the manual's drawing)openthe first room's traps were not identified one by one
Lives shown as hats in the panelconfirmed$2D34, six, set at $08C0 in the title loop before every game and taken one at a time at $0AE9; six hats at the start of level one
Hall of Fame of eight scores, 1000 to 8000livereference/hall-of-fame.png; the names include DANGERSTU and JELLY (the font's T and I differ only in the top bar)
Music by Dave Pridmore (C64-Wiki; HVSC MUSICIANS/P/Pridmore_Dave/Rick_Dangerous.sid)confirmeda three-voice player ($5042) and seven tunes ($5732): the four levels, the ending, the title and game over; the composer's name is not in memory

Beyond the documentation

Found in the code, not in the manual.

FeatureStatusWhere
A cheat: the Hall of Fame name BBOOIINNGG sets $53; then 2 refills bullets, dynamite and lives to six and C= skips to the next levellive$2155, $0A6D, $0A87; the keys tested with $53 poked, the name not typed
The Hall of Fame name FLUFOMATIC unlocks a level select on the title screenlive$2146 sets $37; $27C9 then lists the levels reached ($51); tested with $37 poked. A game started from it skips the ending
A rude name is replaced by SNIGGERtraced$2103, eleven words at $2181; not typed in
At power-on, NOBBY or JEZEBEL may replace a Hall of Fame name, chosen by the raster linetraced$226A
Joystick port 1 right and down act as the 2 and ← keyslivethe keyboard row 7 shares $DC01 with port 1; port 1 down ends the game
Collisions are worked out in softwaretracedthe code never reads $D01E or $D01F

Open questions and answers

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.