JOSTLE is meant to add -10 to +10 to a blow and to a guard, but it
turns every downward jostle into zero (see
the bug). Its last eight bytes,
from $921C, can be rewritten so that it tests the sign first --
BIT 7,C / JR Z,+1 / CCF / JR NC,+1 / SBC A,A -- and then only a sum that really
passes 255 is clamped. No blow or guard is ever zero after that, and fights
come out as the rest of
DO_ATTACK expects.
Tested, with the vicious warg kept beside the player in the treeless
opening: without the poke it killed the player with its twelfth blow, when the
player's guard came out as 0; with it the player took 61 of its blows,
from 46 to 65 against guards from 54 to 74, was wounded once, and was alive at
the end. The warg's blow, 55 give or take ten, can never be more than 16 over the
player's guard of 64 give or take ten, so the poke makes it harmless in one
blow, as it was meant to be.
POKE 37404,203: POKE 37405,121: POKE 37406,40: POKE 37407,1: POKE 37408,63: POKE 37409,48: POKE 37410,1: POKE 37411,159