1986 · Mindscape
The copy is a Mindscape disk. It shows the Mindscape logo and asks for Training or Adventure; each has its own set of files. This site covers the Adventure. Its loader reads six files and moves some of them under the Commodore's input and output chips and its operating system ROM, until the game fills memory from $0400 to $FFF8.

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.
| What | Bytes | Of 64 KB |
|---|---|---|
| Program | 63,256 | 96.5 % |
| Code | 19,399 | 29.6 % |
| Graphics | 22,216 | 33.9 % |
| Level data | 12,915 | 19.7 % |
| Sound | 2,291 | 3.5 % |
| Tables | 5,936 | 9.1 % |
| Variables | 499 | 0.8 % |
| Screen, bitmap, colour, stack, I/O | 2,280 | 3.5 % |
| Unused | 0 | 0.0 % |
| Tier | silver (claimed) |
|---|---|
| Coverage | 100 % of the bytes the game uses have a description |
| Build analysed | Mindscape disk, 20 files, SHA-256 d61d133d231b6453d4c409f0ff8d058771493b9030384a7d1c67758fee873b54 |
| Copy | agent-draft |
| Tools | emulator: release v3.13.1, v3.13.1-linux-x86_64-gui.zip (vice-mcp), disassembler: regenerator2000 0.9.20, host: Linux 6.18 (Ubuntu 24.04 cloud container, no display), x86_64 Intel Xeon |
| Model | claude-opus-5-5 (Claude Code, lead and eight annotation subagents) |
| Kit version | 0.0.44 |
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:
| Feature | Status | Where |
|---|---|---|
| Two modes on the disk: Training and Adventure | live (menu) | LL at $9800 |
| A large scrolling world of screens and areas | live (jungle, stone wall); 123 screens, 48 areas | $4A71, $4AEC |
| Walk left and right | live | move map $33C3 |
| Turn round with fire and back | traced | $33C3 |
| Up: evade, climb stairs; down: duck, climb down | traced | $33C3, $33E3 |
| Punches and kicks by joystick position, with and without fire | confirmed (flying kick, sweep live) | $33C3, move scripts $AF46 |
| Opponents fought one to one, with attack combinations | confirmed (one fought live) | $2E0E-$32F8 |
| Dogs and other hazards | traced: hazard objects cost 2 or 10 energy and can be knocked away | $2A57, $2BB4 |
| A life bar that refills slowly | confirmed (47 at the start live; +1 every 128 frames traced) | $2D14 |
| Eight scrolls to collect | traced | flags $0405-$040C |
| Meditation chambers: refill, respawn point, progress kept | traced: rooms $44-$4B; meditation raises the maximum by beaten opponents; respawn in the last chamber | $396F, $2D33 |
| Lives | live: 1 at the start; traced: +1 per scroll delivered | $2D32 |
| Puzzles around scrolls and shrines | traced in part: area 5 drains the hero unless scroll 8 is delivered | $2CE4 |
| The Warlord in the volcano | open: an ending scene is reached from room $7A ($2DB5), not tested | |
| Score and high score | confirmed (score rises on a hit, live) | $CC01, $CC21 |
| Music, three tunes by zone | confirmed (tune 3 in the jungle) | $F400 |
| Sampled sound effects | traced | $3D8B, $3DB8 |
| RESTORE pauses | live | $3C23 |
| F5 restarts | traced | $2444 |
| Training / combat practice mode | live (menu); not analysed: a separate load | LOADIT |
See facts.md, Open questions.
$2CE4, agrees); one gives night vision in the pitch-black place (scroll 7, $10E5, agrees); and "Fall down into the hole, and the game is completed". Checked against the tables: the volcano rooms 60, 61 and 63 each hold an opponent record, and the way on from 63 to the ending, room 122, is an exit of type 3 (stick up and right at column 69), not a hole; what the player sees there has not been watched. The RESTORE key pauses the game ($3C23); how a pause would help at the waterfalls is open. The count of 39 has not been compared: the encounter table has 40 opponent records (flags bit 6 clear), and hordes add opponents beyond them.$2820); "no end game screen, and no title screen" (the Mindscape disk studied here shows a title picture while loading, and the ending is the final scene $2DB5; the review's copy is not named); a one-on-one tournament version "given away for free on side two".$2444); "you will be unable to smash through strong barriers ... with insufficient Chi" (the barrier test $0A2E reads no energy); a poisoned hero "will not regain Chi" until meditation cures him (no poison state found; regeneration $2D14 tests none); Chi drains "underwater, and in poisonous gas chambers" (area 5, $2CE4); entering a temple, the hero walks to the shrine by himself, and fire ends the meditation; sweeps and somersaults are "restricted" in swamps and river currents; some opponents "will still pursue you even if you choose to run"; shoguns often follow "hordes of warrior guards" (hordes, $27A1); the main game is joystick only, in the rear port. The swamp, current and pursuit claims have not been checked in the code.$0659/$0660; warriors not found, no horde record in $E609); Barnett as Beam's Commodore expert; the Tsumea interview by Souri dated 2014. Its story of a hidden figure in Fist II's shrubbery is about the Spectrum version and was left out.How to get from the contributor's own copy to the analysed state. Someone else must be able to follow this exactly.
exploding_fist_2.d64, 174,848 bytes, SHA-256 d61d133d231b6453d4c409f0ff8d058771493b9030384a7d1c67758fee873b54. A standard 35-track disk with no disk name. It shows a Mindscape logo, so it is the Mindscape release (as "Fist: The Legend Continues" in the US; the in-game title reads FIST, THE LEGEND CONTINUES, COPYRIGHT 1986 BEAM SOFTWARE). No crack intro or trainer appears. The directory holds twenty files:
| File | Loads at | Bytes | What it is |
|---|---|---|---|
L | $032C | 90 | autostart stub: hooks a KERNAL vector, loads LL at $9800 and jumps to it |
LL | $9800 | 1,187 | the menu: "PRESS THE NUMBER OF YOUR CHOICE 1) TRAINING 2) ADVENTURE" |
M, T | $6000 | 3,890 / 6,949 | the Mindscape logo and a second picture (not traced) |
LOADALL | $C000 | 689 | the Adventure loader |
TITLE, TSETUP | $6000, $1000 | 1,024 / 98 | the title picture and the code that shows it |
BNK4B, BNK4A, BNK3, BNK12A, COLOR, BNK2B | see below | Adventure | |
LOADIT and the TNK/TOLOR files | Training, the same layout | ||
DUMMY | $1000 | 256 | not loaded by either loader |
On 2 October 2026 the contributor supplied two GCR images of the Mindscape disk: fist_the_legend_continuesmindscape_1986.g64 (SHA-256 87ad649d2d08ff86431e15f3349a050b4ebc556835c2c9d3262b02fc18ad547e) and ...1986alt.g64 (SHA-256 7a80f5e037734d178b3b3359b74658bbbd7bb69134a5c0a2db16044c18b83771). Both decode to 35 standard tracks with every sector's checksum good, and both directories (disk name fist) list the same twenty files with no TITLE. Nineteen files are byte for byte the same in the two; BNK12A, BNK2B and BNK3 also match the analysed load at $0400, $5C00 and $8000 exactly.
The one file that differs is LL, the menu, in 268 bytes at $9866-$9971:
$C6), copies a routine to $033F, sends the drive a program with M-W and starts it with M-E. The drive program reads track 2, sector 0, a sector no file owns (the BAM marks it used), and the menu then fetches 256 bytes back from the drive's memory with M-R into $9866 and jumps there. So the menu's own code comes from the drive, after the drive has read the disk: a copy protection check. The rest of track 2 (only sector 7 belongs to a file), and sectors on tracks 18, 33, 34 and 35 that no file uses, hold data, and a 36th track carries five sync marks and no sectors.SETLFS, SETNAM, LOAD of the logo and the next file), written straight into the file. Track 2 and the unused sectors are zeroed and tracks 36-41 are blank. It is the disk with the protection removed.Neither image is the .d64 analysed here (its SHA-256 differs and it has no disk name); its game files were not compared with these byte for byte beyond the three above.
L.work/f2-menu.vsf there.2 (Adventure). The title picture stays up while the loader reads six files through the KERNAL; warp mode makes this take seconds.JMP $C3FD. work/f2-entry.vsf is stopped there (a stopping checkpoint on $C3FD set from the menu snapshot).work/f2-play.vsf is a few seconds in, no input.$01 = $15 in play: I/O visible, RAM everywhere else. The hardware vectors are the game's: IRQ $FFFE = $3B43, NMI $FFFA = $3C23, reset $FFFC = $39BF. Program-counter samples fall in $2000-$22xx, $3F67-$3F91 and $F5F9. The game runs $C400 once at the hand-over and then JMP $0402.
The Adventure is one load: nothing is read from disk once play has started. Training is a separate load of its own files.
release v3.13.1, v3.13.1-linux-x86_64-gui.zip, Linux x86_64 in a cloud container with no display. check-emulator: 56 of 57, failed pause-at-instruction.
LOADALL ($C000) loads TITLE and TSETUP and calls $1000 to show the title picture. It then loads BNK4B at $1000 and, with every ROM and the I/O switched out ($01 = 0), copies $1000-$3FF8 up to $D000-$FFF8, under the I/O area and the KERNAL. It loads BNK4A at $C280-$CFFF (over the end of the loader itself), BNK3 at $1000 and copies it to $8000-$BFFF, BNK12A at $0400-$5BFF, COLOR at $6000 copied into colour RAM, and BNK2B at $5C00-$7FFF. Then it switches everything out again and jumps to $C3FD. The game fills all of memory from $0400 to $FFF8, the RAM under the I/O chips included.
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.