Knight Lore's copyright line is still in the block
Just after the last routine, at OLD_COPYRIGHT, where Knight Lore has its own, lies a line of text naming 1984 and A.C.G. that nothing reads: it is Knight Lore's copyright line, byte for byte (compared with Knight Lore's loaded game). Alien 8's own menu names 1985 (MENU_COPYRIGHT). Knight Lore's block ends the same way -- copyright line, screen buffer, tables -- which suggests the new game was made by working on the old one's source.
An Interface 1 in the leftovers
The tape block runs to the top of memory, so it carries whatever the machine it was saved from had above the code, in the space the game uses for its screen buffer (BUFFER) and its tables (MIRROR_TABLE). Among it are the Spectrum ROM's capital letters, stack debris, another program's font, and 1464 bytes that are, by their structure, the start of the Interface 1's ROM -- its restart routines, its use of the Interface 1's system variables, and its error reports -- so the mastering machine had a Microdrive interface fitted. Measured by disassembling the leftover as if at address 0 (30 of its 31 jumps into itself land on instruction starts); not compared with an Interface 1 ROM image. The game overwrites all of it before reading any (measured in the simulator).
Knight Lore's werewolf and window, left in
Two routines no one calls are Knight Lore's, compared with its loaded game: TRANSFORM_SOUND, the sound of Sabreman turning into the werewolf (sound_transform there), equal but for the address of the sound routine it calls; and the code at $CBE3 inside BORDER_DATA, which coloured Knight Lore's sun-and-moon window (colour_panel), equal but for the address of its fill routine. Alien 8 has neither a werewolf nor the window. Other code left unreached: FACE_BY_STEP_UNUSED, which would turn a thing to face along its steps; code and a table of pitches after the note table at NOTES that would beep at a pitch chosen by the turn counter; a drawing nudge at $BF42; and R_CHECK_LEFTOVER, a check on the refresh register that returns at once.
Knight Lore's rating, word for word
The summary after a game rates the player with one of eight words from $B9DD -- four for a game lost, four better ones for a game won, a step up for every 32 rooms seen (GAME_ENDED, COUNT_ROOMS_SEEN). The words, their order and the rule are Knight Lore's (compared with its table and its game_over_summary), down to AVERAGE ranking below FAIR. Only the counts beside them are Alien 8's: the chambers activated and not, and the crew lost in the ones not (SUMMARISE_CHAMBERS). See Knight Lore's facts.
The clock rolls from a second nought
The light years (RUN_CLOCK) are four digits, each drawn a few rows out of line while it rolls into place, like a mechanical counter's wheel: a digit that has just changed shows mostly the character after it, and scrolls down. The character after 9 in the font (FONT) is a second 0, the same eight bytes, so a 9 that follows a 0 rolls in from a nought as it should. The text printer never uses that code, since it is the colon. It is also why ten lives would print as 00 (see the bugs). Compared from the font's bytes.
Graphic 131 is only a picture on the panel
The graphic table (GRAPHICS) has 132 words, graphics 0 to 131, but the table of update routines (UPDATES) has 131: graphic 131, the last, has none. Nothing in a room could have it -- no template or background places it, and no other graphic draws that sprite -- because nothing but the panel draws it: DISPLAY_PANEL puts it beside the count of chambers activated, as the chambers' icon, through the spare record it draws the panel with, which never goes through the update table. Read from the snapshot at build time.
The remote-controlled robots
Some rooms have a robot of their own, graphic 124 (REMOTE_ROBOT), which the player drives by standing on the buttons on the floor: each of four makes it walk two units a turn one way, the pad (REMOTE_PAD) stops it. Counted from the room data: 8 rooms have them, $0B, $44, $56, $6A, $6B, $74, $8B and $D9. Room $0B has two, and control passes from one to the other each time he steps off a button. They are harmless, and they push the fragile things (graphic 129, FRAGILE) -- deadly to touch, and broken by any push -- that stand in 7 rooms, $44, $56, $6A, $72, $74, $8B and $D9. Measured in the simulator (the build's sessions, room $0B).
The cryonaughts
The frozen crew in the chambers (graphic 74, CRYONAUT) only stand, but the summary counts them: every chamber not activated at the end of the game adds its crew to those lost (SUMMARISE_CHAMBERS). A game lost at once counts all 24 chambers unactivated and 132 crew lost (watched in the emulator and counted from the room data). Both the summary and the arrival screen after a win (ARRIVAL_SCREEN) spell them CRYONAUGHTS.
Waiting at the menu chooses the start
NEW_GAME_START starts a game in one of four rooms from START_ROOMS -- $13, $4E, $88 and $D7 -- by the low two bits of SEED, and INIT_SPECIAL_OBJECTS starts the kinds of valve from SEED plus the refresh register. SEED is the ROM's frame counter as the game first runs (START), plus the turn count at every new game, and MENU adds one to it every time round its loop, about thirty times a second (20 passes took 31 frames, measured): so how long the player waits before pressing 0 chooses the start room. Watched in the emulator, starting the first game after loading at successive passes of the menu: the start room went $13, $4E, $88, $D7 and round again. (Pentagram stirs its random number only once before its menu, so there the wait makes no difference.)
The menu tune plays at every visit
PLAY_TUNE_ONCE plays the menu's tune once and remembers it in TUNE_HEARD; but TUNE_HEARD is one of the variables AFTER_GAME clears after every game, so the tune plays again, in full unless a key stops it, each time the game comes back to the menu. Knight Lore does exactly the same. Watched in the emulator: after a game over, the scene and the return to the menu, the tune's 79 notes played before the menu first read its keys.
Two or three extra lives, all out of one kind
INIT_SPECIAL_OBJECTS deals the 36 places at every new game: valves of the four kinds in turn, but every sixteenth place, by a second count started from the random number, an extra life instead, whose kind is skipped. So there are two or three extra lives a game -- three for 64 of the 256 values the count can start from -- and, because they are sixteen places apart, they all take the place of valves of one kind. With two, that kind has seven valves and the others nine; with three, it has six, exactly as many as the chambers of its kind want. Worked out from the code, and watched in the emulator: the first game after loading dealt extra lives at places 15 and 31 and seven valves of one kind, nine of each of the others.
How long the light years last
6000 light years at the start (AFTER_GAME), a light year off every seven turns (RUN_CLOCK): 42,000 turns. The clock counts turns, not time, and a turn is at least six units of about 20,000 T-states (OBJECT_DONE), so in an empty room, with the robot standing still, 50 turns took 85 frames and the whole clock would last about 24 minutes; busier rooms take longer over a turn and stretch the time with it (50 turns in the start room, 95 frames). Watched in the emulator.
Knight Lore's tune player
The tunes are played by Knight Lore's code: PLAY_NOTE is its note player, and the note table at NOTES, 61 rows of three bytes, is Knight Lore's to the byte (compared with Knight Lore's loaded game) -- as it is Pentagram's, a year later. See Knight Lore's sounds.