1984 · Mastertronic

Chiller

This minisite was curated by unorig, air.

What the boy and the girl must do on each of the ten screens, the crosses only one of them can take, the energy bar that stands in for lives, and the enemies in the way.

The quest

Ten screens to the haunted house and back

The boy crosses a forest, a cinema, a ghetto, and a graveyard to reach his girlfriend in the haunted house, then brings her home through the same places in reverse.1 Each screen ends when its last cross is taken, and a card before it sets the scene in a line of verse. Each pin opens that screen on the Maps tab.

ScreenWho playsCrossesWhat the card says
The forestthe boy5 blueMOVE THE BOY AROUND THE FOREST COLLECTING THE BLUE MAGIC CROSSES.
The cinemathe boy5 blueTHERE'S A MESSAGE SCRAWLED IN BLOOD...
The ghettothe boy5 blueSAVE YOUR ENERGY, YOU'LL NEED IT.
The graveyardthe boy5 blueTHE MIDNIGHT HOUR IS CLOSE AT HAND, YOUR DEATH AWAITS IN THIS EVIL LAND.
The haunted housethe boy5 blueYOUR GIRLFRIEND YOU ARE SEARCHING FOR, WHEN YOU HAVE THE CROSSES SHE'LL APPEAR BY THE DOOR.
The haunted house, backthe boy and the girl5 blue, 5 redBOTH BOY AND GIRL MUST TURN AROUND, BECAUSE YOUR QUEST IS HOMEWARD BOUND.
The graveyard, backthe boy and the girl5 blue, 5 redBY NOW YOUR ENERGY MUST BE LOW, SO FIND A MUSHROOM BEFORE YOU SLOW.
The ghetto, backthe boy and the girl5 blue, 5 redTHE GHETTO IS A LONELY PLACE, SO GET YOUR CROSSES WITH GREAT HASTE.
The cinema, backthe boy and the girl5 blue, 5 redTHE FINAL MINUTES ARE WITH YOU, USE THEM WELL.
The forest, backthe boy and the girl5 blue, 5 redTHE END IS NIGH, YOU'RE GOING TO DIE.

The game plays the ten screens from a list, in order (level_records, $7290). A screen's own settings say how many crosses it needs, five going out and ten coming back, and the count runs down as they are taken (crosses_left, $7F00). The way home is not a fresh copy of the outward screens: each place comes back as the boy left it, so a mushroom eaten on the way out is still gone (next_screen, $7680).

The crosses

Blue for him, red for her

Every cross is the same character, tile $57. The only thing that makes it the boy's or the girl's is its colour. Pick a character and a cross colour to see what cross_touch does.

touches a

cross_touch ($7F50) reads the colour under the cross and tests one bit. Light blue is 14 (%1110) and light red is 10 (%1010), so bit 2 tells them apart. A match replaces the cross with a space and counts it off the MAGIC CROSSES counter (cross_count, $5B5E). The crosses flash because every 40th pass colour_cycle ($7F80) takes 8 off each cross's colour and then puts it back.

Going out, only the boy plays, and each screen needs its five blue crosses. On the way back the girl comes too, and all ten are needed. Fire, or the ? key, swaps who you control, but not before the first way-back screen (switch_allowed, $7280). The border shows who is playing: blue for the boy, light red for the girl.

A swap does not move anyone. player_swap exchanges the two sprites, positions and all, so whoever you control is always sprite 0. The one left behind stands still, and still loses energy when an enemy touches it (girl_touch, $CD9D).

Energy

No lives, and every step costs

Chiller has no lives. You have one energy bar to manage, and when it empties the game is over. Enemies and toadstools drain it and mushrooms fill it. Walking and jumping cost energy too. Try each on the bar below, which uses the game's own step sizes.

Drawn with the game's own bar characters, $A1-$A9, in the forest's colours: 33 cells of eight steps. An empty bar ends the game.

WhatEffect on the barWhere
Walkingone step every 765 passes of the main loop with a direction heldwalk_drain $5A20
Jumpingone step each time a counter runs out in the airdrain_step $59E6
Standing stillnothingdrain_step
An enemy sprite overlapping yourstwo steps, again every pass it stayssprite_touch $CE87
A toadstool, tile $5524 steps, one every 18 calls, each with a border flashpoison_tick $5B2C
A mushroom, tile $5423 steps back, one every 16 calls; on a full bar, 10 points each insteadenergy_tick $5B00
A bonus, tile $56100 points, no energytile_touch_b $5AC7

The inlay warns that walking, running, and jumping each cost more than the last.1 The code has no running. There is one walking speed, and it gets slower as the bar empties: once the bar's seventh cell is no longer full, bar_speed ($5961) patches the main loop to read the controls every 128 passes instead of every 32. An empty bar goes straight to GAME OVER (out_of_energy, $5A70).

Creatures

Five enemies on every screen, and none can be killed

Every screen brings five enemies, each looping through its own frames as it follows its path. An enemy that runs into the character you control costs energy and nothing else: it carries on along its path, and nothing in play can kill it. Pick a screen to see its five.

Each enemy steps from its first frame to its last and starts again (enemy_move, $CCAB), in the colours the game sets when the screen begins ($D029-$D02D). Every enemy shape in the game is on the Graphics tab.

The game has no hit test of its own. sprite_touch ($CE87) reads the hardware's sprite collision register, $D01E, and when your sprite and exactly one enemy sprite overlap, two steps of poison go on the bar. Stand still at the start of the forest and the bar holds for 16 seconds, until an enemy wanders onto the boy and takes 69 steps in a single visit.

The enemies follow scripts of direction bytes (0 up, 1 down, 2 left, 3 right), each ended by $FF, at path_scripts ($4A00-$4A8F). path_step ($CC12) moves an enemy one pixel every few passes and reads the next byte every eighth move. Nine scripts serve all fifty slots. Three walk down and back up, four hold one direction for ever, and three are long runs down with one stray byte that matches none of the four directions, so it does nothing. Step through any enemy's script on the Maps tab.

The five enemies are sprites 2 to 6, and now and then one of them throws a sixth onto sprite 7. An enemy that walks off an edge comes back later: respawn_timer ($2FB2) gives an empty slot a chance out of 128 ($45E2) to return.

The journey home

Home again, then back to the forest

Take the last cross on the way home and Chiller starts again in the forest, with its five crosses restored and your score kept. There is no ending screen or message, and the game does not count how many times you have made the trip.

When a screen's last cross is taken, crosses_left ($7F00) passes the next screen number from its settings to next_screen ($7680). After the final return screen, the number is $12; the game changes it to $FE, which starts the outward journey in the forest again.