![]() |
Bugs |
When ERIC fires his catapult, he should go through the following animatory states:
1) 10/138: raising arm in preparation
2) 11/139: firing
3) 10/138: lowering arm
4) 0/128: standing normally
However, phase 3 (10/138: lowering arm) is omitted. See 24296.
Fix
POKE 24327,215
When ERIC kisses HAYLEY, he moves one space forward (see 24348). This allows ERIC to pass through the skool gate if he kisses HAYLEY from behind it while it's shut.
If ERIC is standing on a plant pot when a fully grown plant in another pot dies, he will fall to the ground. This is because the routine at 64077 checks whether ERIC is standing on a plant pot when a plant dies, but doesn't check whether it's the plant pot that contains the plant.
ERIC doesn't get pushed to the floor when someone sits in his seat (see 26175).
Fix
POKE 26211,54
POKE 26212,128
If ERIC is at the far left of the boys' skool (x-coordinate 0) facing right, and 'C', 'D', 'G', 'K' or 'T' is pressed, the screen scrolls left, pushing ERIC out of view; the screen then scrolls left again with every step ERIC takes (see 28160).
Fix
POKE 28193,198
POKE 28194,21
POKE 28195,240
If one character is speaking while a second is waiting to speak, and the screen scrolls so that the speaking character is shifted out of view, the second character may start talking garbage. What happens is that the character who was speaking first is tricked into thinking that his speech bubble is still on-screen, and the two characters end up sharing the bubble opened by the second character.
To see how the first character is tricked, consider the case where MR CREAK is at the Blue Room door, telling the kids to sit down, and MR WITHIT is at the Yellow Room door, waiting for MR CREAK to finish speaking:
0) MR CREAK is under control of the entry point at 27182 (speaking); MR WITHIT is under control of the entry point at 27165 (waiting to speak).
1) The screen scrolls left, taking MR CREAK and his speech bubble out of view.
2) 25248 (update display) is called from the main loop; this calls 26849, which sets 32760 to 0 (indicating that the bubble is no longer on-screen).
3) MR WITHIT begins execution of the entry point at 27165; this detects that 32760 is now 0, and so calls 26958 to open the speech bubble, which:
a) sets 32760 to some non-zero value (indicating that the bubble is on-screen), and
b) updates 32762 to the current leftmost column on-screen.
4) MR CREAK begins execution of the entry point at 27182; this first calls 26849, which:
a) detects the non-zero value in 32760, and
b) fails to detect that the screen has scrolled, because MR WITHIT updated 32762,
thus fooling MR CREAK into thinking that his speech bubble is still on-screen.
5) MR CREAK and MR WITHIT share the speech bubble, taking turns rolling message characters into it until one of them finishes.
If a catapult pellet bounces off a teacher's head on the top floor, it never hits the ceiling; instead it hovers just below the ceiling briefly before disappearing (see 30459).
Fix
POKE 30474,250
POKE 30475,207
POKE 30476,116
If ERIC stands against the far wall of the science lab storeroom while facing it, and then fires his catapult, the pellet will travel through the wall. See the routine at 28315 (which lets ERIC reach x-coordinate 63 - rather too close to that far wall), and the routine at 30292 (which takes that far wall to be at x-coordinate 62).
Fix
POKE 28375,62 (to stop ERIC at x-coordinate 62 instead of 63), or...
POKE 30348,63 (to check for the wall in front of the pellet at x-coordinate 63 instead of 62)
If ERIC jumps continuously (hold 'J' down) during class, EINSTEIN will tell the teacher that ERIC is absent.
This is a consequence of the zero flag being set upon entry to the routine at 28085, which forces an early return with D=17, indicating that ERIC is on the bottom floor (even though he isn't). In this case, the zero flag is set by the 'CP 52' instruction at 61515.
During dinner, go to the Yellow Room or the Science Lab, directly above the dinner hall. When the teacher on dinner duty comes and finds ERIC there, jump (press 'J'). The teacher will then return to the dinner hall, tricked into thinking that ERIC is back there too.
This is another consequence of the zero flag being set upon entry to the routine at 28085, which forces an early return with D=17, indicating that ERIC is on the bottom floor (even though he isn't). In this case, the zero flag is set by the 'BIT 0,(HL)' instruction at 61608.
During assembly, go to the area between the Yellow Room and the head's study. When MR WITHIT comes and finds ERIC there, jump (press 'J'). MR WITHIT will then return to the assembly hall, tricked into thinking that ERIC is back there too.
This is yet another consequence of the zero flag being set upon entry to the routine at 28085, which forces an early return with D=17, indicating that ERIC is on the bottom floor (even though he isn't). In this case, the zero flag is set by the 'BIT 0,(HL)' instruction at 61608.
Play truant during class, somewhere on the top or middle floor. (The toilets are an ideal spot.) As ERIC's teacher approaches, start jumping continuously (hold 'J' down). When the teacher reaches the spot four spaces away from ERIC, you might see him turn round briefly, and then turn round again to continue the approach towards ERIC. The reason the teacher turns round is that he is tricked into thinking that ERIC is on the bottom floor, and so starts heading for the nearest staircase.
This is one more (less dramatic) consequence of the zero flag being set upon entry to the routine at 28085, which forces an early return with D=17, indicating that ERIC is on the bottom floor (even though he isn't). In this case, the zero flag is set by the 'CP 4' instruction at 25986.
If ERIC leaves class at some point after the teacher has started wiping the board, but returns while EINSTEIN is telling the teacher that he's absent, the teacher will give ERIC or EINSTEIN lines, and then start wiping the board again (see 61899), without first walking to the right edge of the board. This means that either:
(a) the lesson will resume with the teacher standing near the doorway (if the class is in the Yellow Room or the Science Lab), or
(b) the teacher will walk through the far left wall of the boys' skool and eventually reappear through the far right wall of the girls' skool (if the class is in the Blue Room).
You can confirm (b) by making use of the far left scroll bug to scroll the screen left until the girls' skool is in view. Or you can follow the teacher through the "no man's land" between the two skools by using the POKEs given here (which enable ERIC to walk through walls).
ERIC's teacher and EINSTEIN can hog the 'speech queue' for several rounds of a question-and-answer session, making the other teachers wait a long time - sometimes until after the bell has rung - before they can tell the kids to sit down or what to do during the lesson. This bug is best observed during lessons in the Science Lab, with the Blue Room doorway and the Yellow Room in view.
During assembly, if ERIC is standing a teacher will scream 'SIT FACING THE STAGE', but if he's sitting down facing left (away from the stage), a teacher will scream 'NOW SIT DOWN'. This is the wrong way round.
Fix
POKE 32205,32