Fairlight 2 — the locked door

As discussed elsewhere, it doesn't seem to be possible to get through this door without cheating. This page looks at the game engine to try and find out why.

Stored objects

Pointers to your five stored objects are held starting at 7b8f. So (7b8f; 7b90) points to your first held object. If IX is set to this address then (ix+$13) is the identifer of the object. (ix+$10) holds, amongst other information, the weight of the object.

Locked doors

When you are at a door, the following code checks whether or not it is locked:

8354   cp (ix+$13)

Here (ix+$13) is an identifier for the object you're holding. Within each half of the game, there is a unique identifier for each collectable object, baddie, plus some of the moving background objects. A holds the identifier of the lock.

This mystery door has an identifier of C9, i.e. you have to find an object with id C9 in order to open it.

Setting up the rooms

As you move from room to room, information about the objects in the room is used to set up various chunks of memory. A breakpoint at 76a9 will fire for each object (collectable, baddie, or platform) in the room being set up.

This gives us the chance to see which objects exist in the map and what their codes are.

So far I've got as far as finding objects in the range 00..4f — nowhere near the C9 needed to unlock the final door.

Next questions