Direction Berk is facing flips instantly
Under certain conditions, Berk will flip instantly from facing into the screen to facing out of the screen, without an intermediate turning animation. For example, if:
then he will flip instantly.
The reason for this is as follows. Under the conditions above, when right is pressed, execution jumps to 36214. At 36221 his facing-into-screen flag is reset. A check is done at 36230 that determines that Berk cannot enter a new room to the right, so the jump at 36233 takes place; execution now jumps to 35786. The check at 35786 determines that Berk is not flying, so execution jumps to 35802. At 35802 a check determines that Berk's facing-into-screen flag is reset (as it was previously reset by the instruction at 36221). This results in a jump to 35821 at which point the script data for Berk facing out of the screen is executed without an intermediate turning phase.
This may occur whether or not Berk is already holding something, however it does not happen if Berk is facing into the screen because he has just picked something up from behind him.
Graphical glitches, part 1
The graphics for the ape-beasts' eyes are located at 29510 (set 9 index 20) and 29518 (set 9 index 21). In the former, a pixel just behind the eye is set but in the latter, this pixel is reset:
Address Set / index Graphic
29510 9 / 20
29518 9 / 21
It is possible that this was intentional, to give the impression of rotation of the eye.
To make the second eye frame consistent with the first:
POKE 29521,63
Graphical glitches, part 2
The graphic layout data for the edible eyes on level 3 uses the wrong graphic index for the eye on the right in the "looking ahead" state (40219). The value at 40222 is 33 (eye looking to the left) when it should be 29 (eye looking ahead). To fix:
POKE 40222,29
Graphical glitches, part 3
The main block of graphic layout data for level 3's edible eyes lies at 40192. This block is set up to select one of the following seven graphic layout data addresses and render the graphic layout data at that selected address. However the following list actually contains eight addresses. The eighth, 40247 located at 40210, is not included in the random address selection because the instruction at 40194 states that there are seven addresses, not eight. The eighth address corresponds to the eyes looking to the left. This final address can be included in the random selection via a POKE:
POKE 40195,8
Graphical glitches, part 4
The ceiling of the door room on level 2 contains a glitch. The lower character block at the rightmost side of the left ceiling section appears to be an eye, rather than rock! This happens because the wrong graphic index is used in the graphic layout data at 51195. This can be fixed with a couple of POKEs:
POKE 51195,20 (to use a rock graphic rather than an eye)
POKE 51196,194 (to apply a vertical mirror to the rock graphic)
Defining duplicate controls
The routine at 47060 is used during the defining of keyboard controls to ensure that the same key is not used for two different functions. However the routine does not function as intended, as it only checks the first five (of seven) controls for duplicates. As a result, the same key can be assigned to both pause and restart. The routine should check the first six keys instead. To fix:
POKE 47064,6 (check the first six keys)
Drutt's name is spelt "DRUT" on the main menu.
Graphical glitches, part 5
The routine at 48738 attempts to position an entity that is being carried by Berk such that it appears in Berk's hands when he moves left. This routine should work the same way as the routine at 48727; the entity should be positioned such that its left edge is half of that entity's width to the left of Berk's left edge. The instruction at 48741 incorrectly doubles the amount by which the carried entity is offset, resulting in a mismatch in the positioning of carried entities when Berk moves left to the positioning when he moves right. This is particularly noticeable for wider entities, such as the weight on level 3 or the cannon on level 4. To fix, the errant instruction should be removed:
POKE 48741,0
Graphical glitches, part 6
When Berk bends down while facing forwards, he takes on the appearance defined in the graphic layout data at 58119. Berk's left hand, however, has one character that is not quite right. A vertical mirror should be applied to this character to correct its appearance. To fix:
POKE 58170,193
Trap Door closing
The routine at 36966 controls the Trap Door closing when Berk and Drutt have passed through. The conditions that have to be met for the Trap Door to close are:
It is possible, however, to complete all levels in the game without meeting both of these conditions simultaneously; in this case the Trap Door would remain open, and upon returning to level 1 at the end of the game, Berk, Boni and Drutt would all fall down the Trap Door again! The way to achieve this would be to send Drutt down the Trap Door first and have him accomplish all of his tasks for level 1 (i.e. knock down the key and push the red sweet into the pit). Then, leaving Drutt in the pit, switching to Berk and having him finish off the level would ensure that the Trap Door would remain open.
Fixing this issue is not such a simple matter as checking that both Berk and Drutt are not in room 1. It is possible that Berk has already gone through the Trap Door and Drutt is jumping up from the Trap Door room to the room above. When coming back down, Drutt would find himself stranded because of the now-closed Trap Door.
Ideally, to fix this, we would look for an occasion when Berk and Drutt are guaranteed to be in a room together, and through the Trap Door. This indeed happens at the end of level 1 when they must both be present in the room with the exit door:
Check whether Berk is in room 9 and return if not:
POKE 36970,9
POKE 36971,192
Check whether Drutt is in room 9 and return if not:
POKE 36976,9