***************************************** 4.) Sprite speeds and jump heights: ***************************************** This section deals with the speeds of sprites and how hight/fast they can jump. Unlike previous sections, these are listed by sprite, as each sprite has its own speeds that can bet set to any value you desire, wheras previous patches required specific values that were used by individual sprites. Some special notes on behaviour should be noted: Some sprites do not move and thus cannot be patched to move [at least yet] Some sprites can move diagonally and thus have two speed values for the diagonal speed [Horizontal and vertical speeds] Note that if you want Keen's shots to move diagonally, you can do so. Some speeds are $FF $FF [Zero speed] MINUS the actual speed. Such speeds are called 'negative' and they make a sprite move left, [unlike 'positive' speeds which make a sprite move right] This is slightly deceptive though, for a sprites speed does not always dictate direction. For example, altering the Gargs speed to negative will not make it always move left, but will make it move *away* from Keen! [The reverse 'negative' of its normal behaviour] Most sprites have an 'initial' speed, a speed that the sprite uses when it is first created, but never again. This is important to patch when you want to change the direction a sprite starts moving in. For example, the Butler Bot starts off moving $5A $00, or right when it is first created, changing this to a 'negative' value makes it move left when first created, something that may be very useful in certain situations, such as if Keen starts a level near the sprite and you want it to head towards him. Also, since this is an additional speed, you can make a sprite rush around madly [or crawl slowly] initially, and then move at a different speed later. [For example you can make a sprite appear 'sleepy' at first, but faster when it ' wakes up' The Vorticon has many poorly defined speeds that take part in a complex pseudo-random set of 10 subroutines. This makes it very hard to make it do what you want, so when in doubt, patch all the speeds. Some sprites speeds are not an absolute value, they are just 'towrd Keen' or 'away from keen'; such as the Foob, which flees Keen by default. Some sprite speeds depend on where the sprite is or was spawned relative to Keen; higher, lower, left or right, this can be useful, or a pain. *** Vorticon: *** #Speed when sliding\walking left [after midjump] if above or left of Keen %patch $3C78 $5A $00 #Speed when sliding\walking if below right of Keen %patch $3C71 $A6 $FF #Speed when sliding\walking and hits left wall %patch $4270 $5A $00 #Speed when sliding\walking and hits right wall %patch $4264 $A6 $FF #Vorticon left speed when touching right wall [Walking] %patch $41F9 $A6 $FF #Vorticon right speed when touching left wall [Walking] %patch $4205 $5A $00 #Occasionally used left speed %patch $42A3 $5A $00 #Initial left speed [occasionally used.] %patch $41D3 $A6 $FF #A right speed sometimes used. %patch $41DB $78 $00 #Vorticon jump height %patch $418D $2C $01 *** Vortikid: *** #Initial [right] speed IF vortikid is spawned above/left of Keen %patch $3CDA $FA $00 #Initial [left] speed IF vortikid is spawned below right of Keen %patch $3CD3 $06 $FF #Kid hits left wall while running\sliding [Goes right] %patch $43D4 $FA $00 #Kid hits left wall while jumping [goes right] %patch $438C $FA $00 #Kid hits right wall while jumping [goes left] %patch $4380 $06 $FF #Kid hits right wall when running/sliding [goes left] %patch $43C8 $06 $FF *** Vortimom: *** #Initial [right] speed if above/left of Keen %patch $3D3C $32 $00 #Initial [left] speed if below right of Keen %patch $3D35 $CE $FF #Right speed after touching a wall %patch $44B2 $32 $00 #Left speed after touching a wall %patch $44A6 $CE $FF #Left bullet speed %patch $4502 $6A $FF #Right bullet speed %patch $4507 $96 $00 *** Meep: *** #Initial [right] speed if above/left of Keen %patch $3DA4 $41 $00 #Initial [Left] speed if below right of Keen %patch $3D9D $BF $FF #Left speed when hits right wall %patch $47C2 $BF $FF #Right speed when hits left wall %patch $47CE $41 $00 #Meep left bullet speed %patch $483A $38 $FF #Meep right bullet speed %patch $4855 $C8 $00 *** Vort elite: *** #Jumping right speed %patch $4916 $FA $00 #Jumping left speed %patch $4924 $06 $FF *** Foob: *** #Initial speed [left] %patch $3E61 $CE $FF #Speed if doesn't see Keen and hits wall [right] %patch $3E68 $32 $00 #Walking left %patch $4AC4 $CE $FF #Walking right %patch $4AD0 $32 $00 #Running away right %patch $4B6C $FA $00 #Running away left %patch $4B74 $06 $FF *** Jack and ball *** Jacks and balls have different initial speed depending on where they're placed relative to Keen in the level, basically desigend so that wherever they are, they'll hunt for Keen. When a jack or ball hits a left wall, its horizontal speed changes to rightt speed 2, when it hits a right wall, left speed 2; a floor its vertical speed changes to upwards speed 2,etc When it hits a corner both h and v speeds change at one depending on what corner its in. For example, if it hits a bottom left corner, it will have the right and up 2 speeds %patch $3ECA $90 $01 #Ball initial if spawned above\left Keen [right] %patch $3EC3 $70 $FE #Ball initial if spawned below right of Keen [Left] %patch $3EEA $90 $01 #Ball initial if spawned above Keen [down] %patch $3EE3 $70 $FE #Ball initial if spawned below Keen [up] %patch $3F4C $90 $01 #Jack initial if spawned above/left of Keen [right] %patch $3F45 $70 $FE #Jack initial if spawned below right of Keen [left] %patch $3F6C $90 $01 #Jack initial if spawned above Keen [down] %patch $3F65 $70 $FE #Jack initial if spawned below Keen [up] %patch $4BE2 $70 $FE #Jack left speed 2 %patch $4BEE $90 $01 #Jack right speed 2 %patch $4BFA $70 $FE #Jack upwards speed 2 %patch $4C06 $90 $01 #Jack downwards speed 2 %patch $4C1E $70 $FE #Ball left speed 2 %patch $4C2A $90 $01 #Ball right speed 2 %patch $4C36 $70 $FE #Ball upwards speed 2 %patch $4C42 $90 $01 #Ball downwards speed 2 *** Vert platform *** #Initial speed [until hits wall] = right %patch $3FFB $4B $00 #Final speed right %patch $4CA6 $4B $00 #Final speed left %patch $4CC5 $B5 $FF *** Horz platform *** #Initial speed [until hits wall] = right %patch $3FB9 $4B $00 *** Enemy gun shots *** #Horizontal shot speed %patch $4D69 $90 $01 #Vertical bullet speed %patch $4DD0 $90 $01 *** Keen *** %patch $729D $78 $00 #Some jumping speed? %patch $72BB $88 $FF #Some jumping speed? %patch $6252 $88 $FF #Keen l walking speed 1 %patch $6243 $78 $00 #Keen walking r speed 1 %patch $7250 $06 $00 #Keens jump height [in half tiles] %patch $772C $C8 $00 #Pogo height [if smaller than $C8 $00, this will dominate high AND low pogos] %patch $75E6 $C8 $00 #High pogo height [in pixels] #Keens high jump pogo height variable, bigger = lower #$FE $FF and $03 $00 are interesting as is $FA $FF %patch $75E2 $FF $FF #Both shot's vertical speed [i.e. none] %patch $7D0C $00 $00 #Right shot speed %patch $7D22 $90 $01 #Left shot speed %patch $7D95 $70 $FF