1988 · Imagine Software
The edition examined, the evidence behind the explanations, and the people and tools that contributed to this minisite.
The Source tab and the analysis come from a supplied EasyFlash cartridge image, the OneLoad64 edition of the game.7 It starts with five lives where the manual says three (Discoveries).
A second copy, a disk image headed "ASS PRESENTS:", opens with a cracker's logo before the game.8 Its picture file, TARGET REN. SPIC, drew the loading picture shown on the overview when run on its own. The cartridge's own loader also shows a picture before the title. The two pictures have not been compared.
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 a cartridge of 11 banks and 4 parts in RAM. The map is of Shared engine, which stays in memory; the band marked as varying holds whichever of the 3 parts loaded over it is there. The cartridge's banks, switched in at $8000–$9FFF and $A000–$BFFF one at a time, are not on this map, though the RAM beneath them is. 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 | Audited & low error rate. Every comment was audited twice, then the last sample of 60 comments had 2 wrong, so between 1 and 11 % of the listing’s comments are likely wrong. How listings are checked |
| Build analysed | Supplied OneLoad64 EasyFlash edition; cartridge SHA-256 4a15d0ee31f58427723170975a31bd05a900e9a5914bd84f8fc28c742e4ed924 |
| Copy | agent-draft |
| Tools | host: macOS arm64, emulator: release v3.13.2, v3.13.2-macos-arm64-gui.dmg (VICE MCP), disassembler: regenerator2000 0.9.20, analysis: Python 3.9; Node.js 25.8.1; kit cartridge/snapshot readers, native VICE state tests, 6502 simulator and pixel comparison, browser: Codex in-app browser; desktop and 390-pixel iframe checks |
| Model | gpt-6.1-sol |
| Kit version | 0.0.236 |
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 | gpt-6.1-sol | Looked the game up online (its manual, reviews or wiki pages) before reading its code. C64-Wiki and the Commodore section of the Spanish Total compilation manual, read before final annotations. | |
| Annotation | gpt-6.1-sol | Wrote the listing’s comments. Bronze: 22 entry/table comments. Author review checked five of 16 handwritten comments (title fire, keyboard test, new-game lives, interrupt setup, score digits). The simulator checked 256 score-byte cases and four keyboard/joystick cases. All six generated title rows were checked against their 27-byte copy boundaries; three rows were read individually. This is not an independent sample or audit. | |
| Annotation | gpt-6.1-sol | Wrote the listing’s comments. Partitioned native resource loads, decoded graphics, music, sound effects, stage transitions and the initial combat routines. | |
| Sample 1 | gpt-6-astra | 19 of 60 comments wrong, so between 21 and 44 % of the listing is likely wrong. All 19 were then corrected. Foundation sample: 40 of 60 handwritten comments and 20 of 856 generated comments. Four handwritten details and fifteen generated sprite-writer citations were wrong. All occurrences of those claims were corrected. One unsupported table-mutation claim was removed; four unverifiable references to a future browser were removed. No full audit. Weighted error estimate before corrections: 70.7%, dominated by the repeated sprite citation. | |
| Annotation | gpt-6.1-sol | Wrote the listing’s comments. 100 % of the program is described, in 1,622 comments. Completed the shared engine, pointer-dispatched code, combat/AI/pose tables and raster/mirror routines. All four RAM ledgers have zero bare bytes. | |
| Port check | gpt-6.1-sol | Checked a page’s port or widget against the game and corrected 1 comment it showed wrong. Native map, score, sound and reflection comparisons. Following the effect-driver active/sequence flags also corrected the page player's end condition. | |
| Sample 2 | gpt-6-astra, gpt-6.1-sol | 5 of 60 comments wrong, so between 4 and 18 % of the listing is likely wrong. All 5 were then corrected. Draw from 379 handwritten and 1,243 generated comments: 40 handwritten and 20 generated selected. The first checker completed 40 before its usage limit; a fresh independent checker completed the remaining 20. Five handwritten sound-driver detail errors were corrected, including every matching sequence-table sentence. No full audit. Unweighted rate 8.3%; stratum-weighted estimate 2.9%. Recommend a full audit. | |
| Audit 1 | unorig, with claude-opus-5-5 | Checked all 1,622 comments and corrected 56. All four parts. The 458 handwritten comments were each read and checked against the code; the 1,164 generated comments, in 33 template families, were checked by a script for every instance and read by hand for at least eight each. Every claim in facts.md and features.md was checked (88 claims: two corrected, 15 not checkable without the live emulator or snapshots), and so was the page copy. 56 comments corrected. | |
| Sample 3 | unorig, with claude-opus-5-5 | 0 of 60 comments wrong, so between 0 and 6 % of the listing is likely wrong. Drawn after the audit from all four parts; 22 of the 60 were sprite-shape template comments. | |
| Audit 2 | claude-opus-5-5 | Checked all 1,622 comments and corrected 550. A second full audit, made independently of the first: every comment in 21 chunks by checkers that wrote none of them. Where both audits corrected a comment (23) they agreed on the error. This one also corrected 548 more: 24 hand-written details the first kept, 372 graphics-slot phrases rewritten to name the $A774 exchange by stage index, 316 'alignment padding' sentences that now give the nonzero 64th byte, and $0629/$0614 renamed player_sprite_y/player_ground_y because their names were swapped. The post-merge sample's two fixes are counted here. | |
| Sample 4 | claude-opus-5-5 | 2 of 60 comments wrong, so between 1 and 11 % of the listing is likely wrong. Both were then corrected. Drawn from all four parts after both audits were merged. Wrong: the colour-RAM destination of $2B90 (it is $DB60-$DB7F) and the end of the sprite area at $7DC0 (the mirror routines also write sprite $FF). Both corrected. |
likely wrong the sample’s range corrected right, or likely right not yet measured
reference/wiki-stages.gif.reference/wiki-stages.gif. Claims about other conversions have not been imported.| Feature | Status | Evidence / remaining question |
|---|---|---|
| Title credits and joystick-port-1 start | live | Native title, source records and port comparison. |
| Single-player fighting and floor movement | live | Thirty-six neutral input/facing cases; all eight movement directions. |
| Two resource loads: stages 1–3 and 4–5 | traced/live | Native E/F/G load; exact directory/payload comparisons and stage captures. |
| Five stage settings and an ending | live, state-assisted | Native setup/load snapshots and reference images for stages 1–5 plus H/I ending. Fights were not completed. |
| Up+fire jump; diagonal-up jump movement | live | Jump state and Y change in both facings; a held diagonal jump moved raw X by 36 over its active sequence. |
| Down+fire duck and weapon pickup | traced/live dispatch | $A2D6 tests dropped state 3, Y/X windows and makes state 2 player-held. Neutral down-fire pose verified; the pickup window was traced. |
| Horizontal fire front attack, bat swing or back kick | traced/live dispatch | $A278 branches by facing and held-object state. Both facing-dependent unarmed entries were exercised; named bat animation remains a visual identification question. |
| Lower-diagonal special moves | traced, names open | $A1A4/$A21C select different poses and resolve held states. All four facing/direction dispatch cases were exercised; precise manual move-name mapping remains open. |
| Enemy holds while another attacks | traced | $9418/$94C7 set grab ownership and align actors; $99CF and $A1D4/$A1E0 resolve holds. Detailed live combat choreography remains open. |
| Motorbike rider can be kicked off | traced | $8E44 tests elevated-player overlap, $902B starts dismount and $8F8E transfers the rider to an ordinary enemy slot. |
| A bat can be acquired | traced, visual assignment open | Shared object state supports drop, pickup, ownership and player-held animation; exact weapon/pose identification remains open. |
| Armed enemy and reload interval | partly traced, interval open | Type-1 handler $9232, projectile creation $99DD and shared action state $0635. Exact documented reload pacing has not been verified live. |
| Dogs and Mr. Big | documented/traced, mapping open | Type-4 special-hit path and type-8 death/end path are traced. Exact visual type mapping remains an explicit question. |
| Endurance, lives, score, stage and timer panel | live/traced | HUD copy, live game view and state fixtures. Timer decrement interval is 51 normal-loop calls. |
| Supplied edition starts with five lives | differs/live | $8000, $020C and native HUD. Manual says three; Zzap!64 38 says five, as the cartridge does. Why the manual differs is open. |
| Extra life at 50,000 then 100,000 intervals | differs/traced/live | $FC00 requires strictly greater. Equal, greater and nine-life native cases agree; threshold advances by 100,000. |
| Attack scores from 200 to 2,000 in manual | partly traced, full schedule open | $A0AD stores per-type awards and $A0F9 applies pending BCD score. Documented event-by-event schedule remains open. |
| Commodore pause/resume | live | Two key presses toggled $0689 from 0 to 1 to 0. |
| Space switches MUSIC and FX | phase-specific live | Title selection changed on release. $0200 chooses the music tick ($07BF) when zero and the effects tick ($21F5) otherwise (main loop $811E). Normal-play passes tested did not change $0200; no whole-game absence claim is made. |
| Music and effects | traced/verified | All nine cues and thirteen requests have page players and native ordered-write comparisons. |
The remaining open items concern exact visual move/type names, the documented reload/event-score schedule and the supplied edition's provenance. They are explicit gaps, rather than inferred absences. Listing coverage describes the scoped bytes; it does not resolve these historical or observational questions.
The symbol map and listing for each part of this game are on the Source tab. Write-ups, facts, and symbol maps are CC BY-SA 4.0. The game itself is not hosted here.