Free extra life
Horace is given three lives before a game starts (see 24787
), but not long
after the game has started he's awarded an extra life, which is not supposed to
happen until the score hits 10,000. This is caused by the section of code at
, which miscalculates the 10,000s digit of the current score.
Broken guard counter
The counter at 27402
is supposed to hold the number of guards in play minus
one, and is used by the routine at 27044
to produce a timing delay in place
of a bell sound. However, because of a bug in the routine at 26988
counter is unlikely to be accurate.
When Horace reaches the 29th maze, the game might slow down significantly,
making it barely playable.
This can happen because the routine at 27044
produces a timing delay (D) of
26*(350+30*S-128*G)+5 T states, where 'S' is the value of the game speed
parameter at 31842
(1-8), and 'G' is the value of the active guard counter at
(0-3). When S>1, 681<=D<=15345; but when S=1 and G=3, D=65437
However, one reason the slowdown might not happen is that the active guard
counter is broken
, and so 'G' might not be 3 even when
all four guards are in play.
How many lives?
If Horace does well enough to get 10 lives remaining, that number is printed as
':' (which follows '9' in the character set) instead of '10'. This is because
the section of code at 26104
cannot handle a number with two or more digits.
Who ate my lunch?
In some situations, a guard will eat the flowers or even another guard's lunch
if Horace hasn't already.
This can happen because the routine at 27797
clears a maze background tile in
a guard's buffer if there is a guard sprite tile at the corresponding location
in the maze; so if two guards are close together and moving in the same
direction, the one following effectively mops up the items that are obscured by
the one in front.