1986 · Activision
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 | 51,062 | 77.9 % |
| Code | 9,955 | 15.2 % |
| Graphics | 278 | 0.4 % |
| Text | 5,137 | 7.8 % |
| Tables | 35,263 | 53.8 % |
| Variables | 429 | 0.7 % |
| Screen, bitmap, colour, stack, I/O | 10,048 | 15.3 % |
| Unused | 4,426 | 6.8 % |
| Tier | bronze |
|---|---|
| Coverage | 94.1 % of the bytes the game uses have a description |
| Build analysed | Male edition, freshly booted first name prompt |
| Copy | agent-draft |
| Tools | host: Linux x86_64, disassembler: regenerator2000 0.9.20, publication: Python 3; symbols_export.py and listing.py, browser: Firefox 157.0 (installed); WebDriver BiDi, emulator: VICE MCP 3.13.1 |
| Model | gpt-6.1-sol |
| Kit version | 0.0.48 |
Inventory: game documentation, consulted 30 September 2026, and the contributor’s annotated listing.
| Feature | Status | Evidence or open work |
|---|---|---|
| Boot and first name prompt | live | Fresh disk boot and screenshot |
| Name entry | live | Ordinary letters, matrix deletion, 16-byte limit and Return checked |
| Personality questionnaire scoring | confirmed | Sixty native profiles match independent calculations; completion through the game’s own questionnaire screens remains open |
| Life stages and choices | open | Imported VM/menu descriptions guide later gameplay tests |
| Male/female editions | open | Distinct imported overlays retained privately; capture both independently |
| Compressed scene text | traced | MAP1 independent decode matches full dictionary, boundary table and cached descriptor; native bit reader/width checks pass; full live disk/error path open |
| Saving a life | open | Imported seven-region 380-byte transfer; test release-specific disk behavior |
Male edition disk 01a, first directory entry. Hard reset, autostart, run until the FNC introduction appears. Hold Space in the keyboard matrix for 60 frames, release, and allow loading to finish. Select Begin a new game with Return held for 60 frames, release, then wait for the name prompt. Use direct matrix keys; an ordinary timed Space event did not leave the intro in this run. An early Space during autostart cancelled its queued RUN once; entering RUN then reached the intro.
work/name-prompt.vsf is the canonical Source snapshot. A second cold boot stopped on execution at $4000 before startup and saved work/entry.vsf. Both snapshots retain all 9,794 imported code bytes unchanged. At the prompt, all 2,718 imported word bytes match the contributor capture. Between hand-over and prompt, 338 word bytes and 14,598 byte-data bytes change; 7,593 bitmap bytes differ. No imported code is lost at the hand-over.
The Source listing uses the fresh prompt and --entry work/entry.vsf for the untracked-data audit. Its physical RAM begins at offset 209. Snapshots, original exports and replacement-phase leads are private under work/.
Visible processor registers $00=$2F, $01=$36; their shadow RAM bytes do not describe banking. IRQ vector $0314 points to $4229; the NMI vector $0318 points to KERNAL $FE47. $DD00=$C7 selects VIC bank zero; $D018=$19 selects screen $0400 and hires bitmap $2000. VICE uses dummy audio on a virtual display. Emulator health workarounds apply for instruction pause and unpaced transport calls.
Male first name prompt only. Later male/female gameplay loads remain separate states under RFC #124. Rebuild the private regenerator project with symbols_import.py on symbols.json and work/name-prompt.vsf; export with symbols_export.py, then generate Source with listing.py on that same snapshot. The original Ghidra text seeds annotations and is not published as a parallel listing.
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.