1986 · Argus Press Software
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.
| 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 60 comments had 14 wrong, so between 14 and 35 % of the listing’s comments are likely wrong. How listings are checked |
| Build analysed | T64 tape image of a cracked release: the game packed into one 44,302-byte program (Trianon, 1987), and a second program of crackers' instructions (Danish Gold, 1987) |
| Copy | agent-draft |
| Tools | host: Windows 11 with WSL2 Ubuntu 26.04, x86_64, emulator: own build of github.com/barryw/vice-mcp, release v3.13.2, commit 1e83aab134, disassembler: regenerator2000 0.9.20, publication: Python 3; symbols_export.py and listing.py, subagents: none: one agent throughout |
| Model | claude-opus-5-5 |
| Kit version | 0.0.283 |
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 754 comments. | |
| Sample 1 | claude-fable-5-1 | 14 of 60 comments wrong, so between 14 and 35 % of the listing is likely wrong. All 14 were then corrected. |
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:
reference/), and its own bytes, such as the icon pictures at $FA00, drawn on the How it works page.DETECTIVE DOX, the second program on the contributor's tape, the crackers' retyping of the instructions ("Danish Gold Ltd. presents instructions as read from original", 1987). It is full of typing mistakes and could not be checked against the original, so nothing below rests on it alone; where it says something the game shows otherwise, the game is what is written here.| Feature | Status | Where |
|---|---|---|
| Joystick in port 2: fire on the title screen starts the game | live | orientation.md; reference/play-hall.png |
| Inspector Snide walks the mansion with the stick, the rooms drawn at an angle (Zzap: "3D ... Ultimate-style") | live | four directions tested from work/play-hall.vsf; work/sheet.png |
| Controls with momentum: the author calls them "Newtonian physics" | traced | the menu pointer, not Snide's walking: $315F changes the pointer's speed with the stick and lets it coast and bounce (Zzap's reviewer: "the inertial cursor"); Snide steps at a fixed rate ($34FE) |
| Fire opens the investigation menu: icons, chosen with an arrow (a pointing hand) moved by the stick, fire again to activate | live | reference/investigation-menu.png; $34E9, $86EE, $87D9; about one press in three is lost, measured (facts.md, "Live tests"; Discoveries) |
| Fire with nothing near answers "NOTHING HERE" | live | reference/nothing-here.png; $8118 |
| The border flashes when Snide is near something to investigate (Zzap, the author) | traced | the border, once on arrival: objects whose flag at $E880 has bit 0 set ($3845) and doors ($3E32), not a closed secret passage |
| The icons: 18 pictures, each with its action | traced | pictures drawn from the game's bytes ($FA00, 48 bytes each) and matched by number to the handlers at $87ED: 0 open box = open (list the contents), 1 magnifying glass = look, 2 notepad = inventory, 3 a red shape on a blue foot (perhaps a microscope) = put the chosen object into the furniture at hand, 6 gun = use the gun, 7 handcuffs = accuse, 8 and 9 arrows up and down through a line = open or close the door, 10 key = unlock, 11 "Q" = question, 12 open book = read, 13 knife and fork = consume, 14 cross = use, 15 clock face = time and pause, 16 box and envelope = put one carried object in another; 4, 5 and 17 have pictures and do nothing ($883A). The How it works page draws all 18 |
| The icons offered depend on the situation | traced | each menu is built from a list or a mask for the situation ($86EE); questions need a character within 22 pixels across and 9 in depth ($B2E1) |
| Accuse | traced | icon 7 ($BB50), in the icon lists of menus 0, 1 and 4 at $8789 |
| Inventory of six items, more with something to carry them in (Zzap) | differs | five: with five objects carried a sixth is refused, "YOU CAN/T CARRY ANY MORE!" ($30CF); an object or piece of furniture holds five more ($8856) |
| Ten pieces of evidence, put in envelopes, before the accusation (the author) | confirmed | $BB17 lists the ten; $BB76 needs all in place $C0 and Dingle accused. Live: refused without them; with them put in place $C0 by hand, the arrest scene, the blanks, the escape and the win all ran; and a whole game was won from the start with stick and keyboard input, all ten put in the envelopes by play (facts.md, "Live tests") |
| Real time, with a time limit; lose the case if it runs out | live | the clock starts at 09:10 ($2153); one minute per 3,000 frames, measured; the limit 11:03 ends the game ($2592), tried by setting the clock (facts.md, "Live tests") |
| Pause, through the clock icon | traced | $A1E0: shows the time and waits for fire with the clock stopped |
| Characters walk the house on their own: the Major, the Reverend Wrinklebottom, the cook Hilda Crumble, a butler, a professor, Cynthia Sludgebucket and others; Angus McFungus is the first victim | live | Bentley walks up and speaks at the start (reference/); the nine scripts at $A904-$B18C; the vicar is "REVERAND WRINKLEBUM" in the game; McFungus is not one of the cast |
| Characters answer questions about McFungus, objects and each other; each drops a clue about the killer (the author) | traced | $B2E1, answers at $B3AF, $B682 and $B895 |
| More murders as time passes: strangling, stabbing, a piano falling on Cynthia Sludgebucket on the landing | differs | Dingle fakes his own strangling; Cynthia's body is put in the hall (room 9), not on the landing ($AC96); the Doctor is killed in room 27 with the knife put down ($B19E); Gabriel in her room ($ACEC); each when the player is elsewhere |
| Secret passages (Zzap) | traced | six doors of types 8 and 10, invisible when closed ($3B8B, $3B97), "A SECRET PASSAGE!" ($892A); drawn on the Maps tab, which test_rooms.js holds against the game's room builder |
| Safe codes, originally part of the copy protection (the author) | traced | the combination is "210319" ($8AFB), McFungus's birthday, which the game itself shows ($9B90) |
| Rain and thunder on the sound chip; a title tune (Zzap) | traced | the storm $BF4D/$BF7A (rain on voice 2, thunder at random); two tunes in the player at $945E, one played at start-up |
| RESTORE restarts the game when a flag allows it | traced | NMI handler $294A; orientation.md, "Steady state" |
| Status line of text under the room ("YOU ARE IN THE HALL") and a picture panel to its right | live | reference/play-hall.png |
Found in the code, not in the manual.
$2000 has 24 entries and the module's at $8009 38; every call and jump from one half to the other goes through them (a search of every instruction's operand on 1 November 2026: the only other cross-references are the flip flags at $3FF0-$3FF9, which the module reads, and the operands of BIT instructions that skip a LDA).$BDE8): "101 DETECTIVE STORIES" at the bookcase where the hardback book is hands it over. (traced)$8151) and the furniture they sit in ($8401), with a line for Examine ($9A47) and for Read ($9EA1); among them a bomb that ends the game when opened ($C066), an elephant gun, bullets and blank bullets. (traced)$99C8). (traced)$2161; the biographies at $8E65). (live: work/shots/attract*.png)facts.md, "Winning"). (traced)$18) in place of the real ones. (traced, $B1E6, $BC5E; live from a state set by hand: with the blanks there the gun clicks and Snide can make the arrest, with the bullets the game ends; live by play in the won game, where the blanks were swapped into the study's desk at 09:19)orientation.md, "Other releases compared"): the game's code and data are the same in all three, apart from runtime state and seven bytes of text spoiled in one of them. No uncracked original was compared, so a change all three cracks inherited from one source cannot be ruled out.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.