1990 · Thalamus

Creatures

This minisite was contributed by air. It’s agent-generated and needs a human editor. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to curate games/c64/creatures with me to Gold.

What reading the whole program turned up that the manual leaves out: a rescue that can pay thirty potion creatures, a spare hit in every life, prizes no shot can reach, and the lines, the pictures and the sounds that no player meets.

01 · The rescue

Secret: a rescue pays five times over after a big potion creature

A rescue from a torture chamber pays six Magic Potion Creatures, two of each kind, counted out one at a time on the WELL DONE screen (potion_award). Each one goes through the routine that counts a pickup in a level, potion_add, which adds the amount held in its own ADC instruction. The last pickup wrote that amount ($3C80): 1, or 5 for a creature on a double-height sprite. Nothing sets it back. If the last potion creature Clyde collected before the chamber was a double-height one, the rescue pays ten of each kind, thirty in all. Levels 1.2, 2.2 and 3.2, the stages before the chambers, each have one in plain view.

02 · Clyde

Secret: Clyde can take one hit in every life

The manual says nothing about it, but each life has a spare hit. stage_start, after every Get Ready screen, sets $12A0 to 1. The first touch stops Clyde for 40 frames and leaves him untouchable for 127 more, flashing light red and black (player_hurt, player_dying_wait), and only the second touch kills him. Water kills at once, as do level 3.2's spikes, the timer running out, any touch while he rides level 3's broomstick, and every touch in a torture chamber.

03 · Hidden prizes

Secret: some creatures hide a prize until their group dies

A spawn record of type 55 shows the blank sprite, and no shot or touch reaches it. It belongs to a linked group, and killing any creature of the group kills the rest of it, the hidden one included, which then turns into its death type: a potion creature or an extra life (object_kill, object_kill_linked). Twenty-one such records hide ten potion creatures and nine extra lives across the six stages. Of the other two, one in level 1.1 hides only a puff of smoke, and one in level 3.1 belongs to no group, so nothing ever kills it.

04 · The cheat

Secret: the ending suggests the cheat to those who did not use it

The high-score table, TODAYS TOP HEROS, with the fuzzies at its sides drawn in grey
CTRL and 2 on the high-score table: the fuzzies turn grey.
The ending's text, GAME COMPLETE, ending with WHY NOT USE THE CHEAT MODE NEXT TIME
The ending, for a player who used no cheat.

Holding CTRL and 2 on the high-score table, once the title tune has ended, turns the table's fuzzies grey and writes three NOPs over the instruction that takes a life, DEC $B7BF at $1CA0 (title_cheat_input in the attract block). The cheat lasts one game, because the next title puts the DEC back. The ending reads the same three bytes, and when it finds the DEC still there, it adds "WHY NOT USE THE CHEAT MODE NEXT TIME" to its text ($7DE6). The ending on How it works runs the text screen either way.

The C64-Wiki's poke for the same effect, POKE 7328,208, writes a branch over the DEC. The branch is not taken, the two bytes after it run as other instructions, and at the first lost life the game hangs with the panel gone. POKE 7328,173 turns the DEC into an LDA instead and keeps the lives as they are.

05 · The witch

Secret: the witch has a line for a Clyde with no lives, and no one hears it

With no lives at all, the witch would say "OH BUCK UP LITTLE TROOPER. WE WILL BEAT THE BAD GUYS TOGETHER." Every level file holds the line, and no player sees it. The engine adds a life before it starts the shop ($BE36), and a game that has run out goes back to the title, so the shop always counts at least one. Set the lives to 0 in the witch's shop on How it works to see her say it.

06 · Resets

Secret: a reset erases the game

Every level, chamber and ending file starts at $8000 with the bytes the KERNAL looks for at a reset to start a cartridge, and both of its vectors point at memory_wipe ($AF6A), a loop that clears memory upward without end. A reset button pressed while a stage is in memory, to get at the game with a monitor, erases it instead. A VICE reset in chamber 1 stopped at $AF6A.

The same routine waits for anything else that looks like interference. The Get Ready screen and the title time each frame with CIA 2's timer B (timing_check), and anything but a PAL frame of 19,656 cycles, from an NTSC machine or a game frozen and restarted, goes to memory_wipe. RESTORE does nothing, because the NMI vector points at an RTI in every part.

07 · Left in the files

Secret: a picture, messages and sounds the game never uses

Clyde pointing at the player under the words CLYDE NEEDS YOUR HELP
"uncle clyde", a file on side A that no part loads, run on its own.

Side A holds a program called "uncle clyde" that the game never loads: a packed multicolour picture of Clyde pointing at the player, under the words CLYDE NEEDS YOUR HELP. It unpacks and waits when run on its own.

Level 1.1's file carries a message nothing prints, thanking Ablex "for their hospitality and support (and all the free food)". The title's NMI handler, a single RTI, is also the "@" in front of another message nothing prints, "FUZZIES RULE OK!", followed by a quote from Clyde. Unused sprite blocks in the title hold a message from Apex, the team the manual credits with the game: "THE APEX BOYZ ARE BACK!", with the follow-up to the shoot-'em-up Retrograde.

Each level file gives the witch six message addresses, and message 4 is never read. In worlds 1 and 2 it points at the same text as message 3, her second line. In world 3 it points at world 2's second line, "LET ME HELP YOU CLYDE", which world 3's file still holds and never shows. Of the engine's 29 sound effects, five, numbers 22, 23, 25, 26 and 28, are asked for by no code in any of the game's files.

The ending's routine for the music, frame_music, is in the file as DEC $D020, a delay and INC $D020: a stripe in the border at the line where it runs. The ending writes a call of the music driver over it before the scenes start, so the stripe never shows.