1991 · Imageworks (Mirrorsoft)
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 2 parts, and the map is of one of them: Intro. The Source tab has the listing of each part that has one.
| Tier | silver |
|---|---|
| Coverage | 100 % of the bytes the game uses have a description |
| Comments checked | Not audited. No audit has checked every comment, and the last sample of 80 comments had 21 wrong, so between 18 and 37 % of the listing’s comments are likely wrong. How listings are checked |
| Build analysed | Mirrorsoft's 1991 disk release, speedball_2[mirrorsoft_1991].g64 from the C64 Preservation Project's 10th Anniversary Collection on the Internet Archive (SHA-256 c379e7c1…4dc4) |
| Copy | agent-draft |
| Tools | host: Linux 6.18 x86_64, cloud container with no display, emulator: VICE, release v3.14.0, v3.14.0-linux-x86_64-gui.zip (vice-mcp), driven through kit/c64/vice.py; check-emulator 57 of 57, disassembler: regenerator2000 0.9.20, built with cargo install --locked, one session for each part, depacking: each file's decryptor and unpackers run in the emulator to the jump into the part; the game's four packed routines unpacked with a Python port of its own unpacker at $498E, python: 3.13.17, node: v22.22.0 |
| Model | claude-opus-5-5 |
| Kit version | 0.0.268 |
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.
| Step | By | What it found | Of the listing |
|---|---|---|---|
| Research | claude-opus-5-5 | Looked the game up online (its manual, reviews or wiki pages) before reading its code. | |
| Annotation | claude-opus-5-5 | Wrote the listing’s comments. 100 % of the program is described, in 1,092 comments. | |
| Sample 1 | claude-opus-5-5 | 21 of 80 comments wrong, so between 18 and 37 % of the listing is likely wrong. All 21 were then corrected. | |
| Port check | claude-opus-5-5 | Checked a page’s port or widget against the game and corrected 4 comments it showed wrong. the tune player, held to the intro's own player over 6,643 frames; the pickups' sprites and the score panel's frame, rebuilt from the listing's bytes and compared with the game in the emulator, which corrected the comments on the match's sprite blocks and mirror pairs at game $2657, $2A0B, $A1D0 and $A5BB |
likely wrong the sample’s range corrected right, or likely right not yet measured
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:
REPLAY GOALS entry the C64 game lacks: it is the 16-bit manual. Where the C64 game differs, the row says so.| Feature | Status | Where |
|---|---|---|
Menu: 1 PLAYER GAME, 2 PLAYER GAME, DEMO; up, down and fire on port 2 (manual: also REPLAY GOALS) | live | |
One player: KNOCKOUT, LEAGUE, CUP, PRACTICE | live | |
| Knockout: play ever tougher teams until you lose; through the gym; cannot be saved | live | |
| League: Brutal Deluxe in division 2 of two divisions of 8; 14 weeks a season; first is promoted, second plays off against the second-bottom team of division 1 | traced: two halves of seven weeks, places 0-7 division 2; top of division 2 and bottom of division 1 change places; the play-off is replayed until one wins | game $715D, $71A1, $721E |
| League points: 10 for a win, 5 for a draw, 1 for every 10 scored; points difference splits ties | traced: ties go to goals for less goals against | game $5431, $5558 |
| Cup: four rounds of two legs each; a draw is settled by a decider | traced: 8, 4, 2 and 1 ties; a tie level after two legs is played again | game $703F, $7159 |
| Practice: no opposition | traced: mode $FF, the other team's energy cleared | game $7452, $2551 |
League and cup submenu: NEW GAME, TEAM GAME (the computer plays your matches), LOAD GAME | live | |
Two players: ONE MATCH, BEST OF THREE, BEST OF FIVE; stick 1 blue, stick 2 red; teams swap ends at half time | traced: player one plays team 1, in red, on joystick port 2, and player two on port 1; both squads start at 170 in every attribute with 1100 in the bank | game $6F7B, $22CC, $1D40 |
| Demo: computer against computer; RUN/STOP leaves it (manual: ESC) | live | |
Manager screen: squad of 12 (9 on the pitch, 3 substitutes), each with a portrait, name, position and eight attributes; keys TRA, ESC, SAV, TAB, FIX, GYM, STA, SUB, two cycle arrows, the bank | live | |
Gym: train one player (I), a group (G) or the team (T); the eight attribute buttons, ALL (+10 to every attribute), BUY; prices AGR 5, ATT 10, DEF 10, SPD 15, THR 10, POW 10, STA 15, INT 15 | live | |
Bank starts at 1100 credits; buying ALL for the team took it to 320 | live | |
| Transfer screen: buy star players for a player and a fee (only when players are on the market) | traced: 14 stars, three places on offer, the first seven in division 2 and the last seven in division 1 | game $56A9, $6C11 |
Fixture screen (NEXT FIXTURE): both teams' points, places and defence, midfield, attack and substitutes ratings | live | |
League table (DIVISION 1, DIVISION 2) and cup fixtures | live | |
Statistics (STA): shots at goal, goals scored, goals saved, time in possession, time in opponents' half, successful tackles, substitutions, bonus points | traced | game $5878, $5EB6 |
Save and load a league or cup to disk (SAV, LOAD GAME) | traced: the file SAVESPEED, $CC00-$CD60 | game $78BF, $79FF |
Substitution (SUB) and changing positions | traced: fire on one squad place and then another swaps them | game $68A0, $6C99 |
| Match: two halves of 90 seconds; ends swap at half time; play restarts with the ball launched from the centre | live | |
| You control the player nearest the ball, marked with an arc; a letter over the ball carrier's head gives his position | live | |
| Fire: in possession, throw (short press low, long press high); without the ball, jump for a high ball, slide for a low one, tackle a player with the ball; aftertouch steers a thrown ball | traced: fire throws; fire still held when the throw ends, three frames later, lobs the ball; the stick then steers it | game $3AA4, $37D2, $3DB1 |
| Goalkeeper: under control when nearest; dives with fire and left or right; stays in his own goal area | traced | game $3AA4, $3A52, $23A6 |
| Tackles decided by the players' attack and defence; the loser loses energy; injured players are stretchered off and replaced | traced | game $3B2C, $3868, $39CF |
| Scoring: goal 10, star 2, all five stars 10 more, bounce dome 2, injuring a player 10 | traced | game $34C7, $1C6E |
| Score multiplier ramp: +50 % after one throw up it, +100 % after two; the opponents' throws take it back | traced | game $2C61, $34C7 |
| Electrobounce: four units electrify the ball, which tackles the next opponent it hits (ZZAP!64: on the C64 it tackles one opponent and runs out) | differs: two units, one on each side wall; the ball knocks down 1 to 3 opponents, more as the multiplier favours the thrower's team | game $2F18, $1C82 |
| Warp gates: four, which move the ball from one side of the pitch to the other | live: two on each side wall, at the same rows | game $33D3 |
| Tokens: freeze team, reverse joystick, reduce team, increase team, manic, slow team, grab ball, transport, goal door, shield, full energy, zap team; most last 6 seconds | differs: all twelve, each running for 10 seconds; reverse joystick only in a two-player game | game $30AF, $3195, $2FE8 |
| Coins: 100 credits (200 in a cup match) | differs: 100, in a cup 200 in the first two rounds and 400 in the semi-final and final; a most per match by game type | game $7586, $7459 |
| Armour on the pitch: boots, helmet, chestplate, shoulder pads, glove, bottle, armplate, Bitmap shades; each raises one attribute | differs: eight pieces, each raising one attribute halfway to 255 until its wearer is tackled; the gym names them BITMAP SHADES, BARGE PADS, CHEST GUARD, SPEED BOOTS, POWER ELBOWS, POWER GLOVES, THUNDA THIGHS and BRAIN BOOST | game $3106, $315B, $62D5 |
GOAL screen with the scorer's team, a lap of the players, a result picture (A WIN FOR THE RENEGADES) | live | |
Pause on any other key; F for fast mode in a team game | differs: only P pauses, until fire; there is no fast mode, and F acts only with the cheat on | game $212E, $2143 |
| Each league team has its own colours (ZZAP!64) | differs: four colours, by the low two bits of the team's number | game $1D34 |
Found in the code, not in the manual.
$C008 in the game, never printed: STOP PERVING AT MY CODE SCUMBAG! WRITE YOUR OWN ****** GAME.Each part of the game has its own symbol map and listing: Intro, symbols.json and listing.json; Game, symbols.json and listing.json. Write-ups, facts and symbol maps are CC BY-SA 4.0. The game itself is not hosted here.