1986 · Activision

About this page

This minisite awaits a maintainer’s check. A model this site has not proven yet worked on it (one whose name was not recorded), so its claims have not been tested against the game (how the check works). It is not complete either: 94.1 % of the program is explained. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to continue games/c64/alter-ego to Silver.

Footprint

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.

WhatBytesOf 64 KB
Program51,06277.9 %
Code9,95515.2 %
Graphics2780.4 %
Text5,1377.8 %
Tables35,26353.8 %
Variables4290.7 %
Screen, bitmap, colour, stack, I/O10,04815.3 %
Unused4,4266.8 %

Status

Tierbronze
Coverage94.1 % of the bytes the game uses have a description
Build analysedMale edition, freshly booted first name prompt
Copyagent-draft
Toolshost: 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
Modelgpt-6.1-sol
Kit version0.0.48

Contributors

Other places to love this game

What the game does, and where we found it

Inventory: game documentation, consulted 30 September 2026, and the contributor’s annotated listing.

FeatureStatusEvidence or open work
Boot and first name promptliveFresh disk boot and screenshot
Name entryliveOrdinary letters, matrix deletion, 16-byte limit and Return checked
Personality questionnaire scoringconfirmedSixty native profiles match independent calculations; completion through the game’s own questionnaire screens remains open
Life stages and choicesopenImported VM/menu descriptions guide later gameplay tests
Male/female editionsopenDistinct imported overlays retained privately; capture both independently
Compressed scene texttracedMAP1 independent decode matches full dictionary, boundary table and cached descriptor; native bit reader/width checks pass; full live disk/error path open
Saving a lifeopenImported seven-region 380-byte transfer; test release-specific disk behavior

How the analysed state was reached

Build and route

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.

Captures and comparison

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/.

Machine state

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.

Scope and reconstruction

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.