***************************************** 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 Keens shot can be made to move diagonally. 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. Sometimes a negative speed is used for both left and right, so pay attention to what a speed does. 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 Scrub starts off moving $5A $00, or left when it is first created, changing this to a 'negative' value makes it move right 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' When a Scrub cannot move anymore, either because its hit a block, or run out of surface to walk; it will move in a way that lets it search for something else to grip. For example, apon moving to the end of a floor or being on the ceiling and hitting the left wall, the Scrub will try and 'turn down' to move down the wall. [The 1-way platform has no wall, after 1/4s of moving, the Scrub uses the 'fall' behaviour.] To grip the wall the Scrub must move right a bit, so that it is now grasping the left wall instead of being just in front of it. If its grip speed is set to $00, it will just fall down [And any on the ceiling trying to grip the left wall will instead pass right through it.] The best idea is just to set these speeds to the same ones you set the Scrub's main speeds to. [Don't forget, if you reverse the Scrub's direction, you must also reverse these speeds!] 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 sprite speeds depend on wether it is left, right, above or below Keen; odd but true this, appears to be the remains of some AI behaviour never used in game. *** *Keen: *** %patch $744D $00 $00 #Keen's shot v speed [None] %patch $7463 $90 $01 #Keen's shot right speed %patch $74D8 $70 $FE #Keens shot left speed *** *Moving platform: *** %patch $3DD7 $4B $00 #Initial speed [Right] %patch $469E $4B $00 #Right speed %patch $46AC $B5 $FF #Left speed *** *Robot: *** %patch $3D7B $64 $00 #Initial speed [right] %patch $458B $64 $00 #Right speed %patch $45A5 $9C $FF #Left speed %patch $4619 $5E $01 #Robot shot right speed %patch $4623 $A2 $FE #Robot shot left speed *** *Scrub: *** #'Push' speeds (Let's Scrub grab onto things) %patch $42DF $50 $00 #When moving left, push down %patch $4363 $50 $00 #When moving down, push right %patch $43E7 $B0 $FF #When moving right push up %patch $446B $B0 $FF #When moving up push left %patch $42D9 $B0 $FF #Left speed %patch $435D $50 $00 #Down speed %patch $43E1 $50 $00 #Right speed %patch $4465 $B0 $FF #Up speed *** *Vorticon: *** %patch $3E5B $2C $01 #Jump height %patch $3C42 $5A $00 #Initial speed if left of Keen [Towards him] %patch $3C3B $88 $FF #Initial speed if rightt of Keen [Towards him] %patch $3EC9 $A6 $FF #Reverse speed when hits right wall %patch $3ED5 $5A $00 #Reverse speed when hits left wall %patch $3F22 $A6 $FF #Reverse speed when jumping and hits right wall %patch $3F2E $5A $00 #Reverse speed when jumping and hits left wall %patch $3F3A $00 $00 #Stand still when looking for Keen %patch $3F5F $5A $00 #Move toward Keen after looking for him #Unused, but best change them anyway %patch $3E81 $5A $00 #Unused speed 1 %patch $3E88 $88 $FF #Unused speed 2 %patch $3E8D $A6 $FF #Unused speed 3 %patch $3E94 $78 $00 #Unused speed 4 %patch $3E9E $88 $FF #Unused speed 5 %patch $3EA6 $A6 $FF #Unused speed 6 %patch $3EAE $78 $00 #Unused speed 7 %patch $3EB6 $5A $00 #Unused speed 8 *** *Vorticon Elite: *** %patch $4110 $2C $01 #Jump height [same as Vorticon] %patch $3CFF $9C $FF #Initial speed if right of Keen %patch $3D06 $64 $00 #Initial speed if left of Keen %patch $4150 $C8 $00 #Charging speed l/r (If Keen is level with Elite) %patch $4158 $64 $00 #Walking speed l/r (If Keen is above\below Elite) %patch $4201 $5E $01 #Elite shot right speed %patch $420B $A2 $FE #Elite shot left speed *** *Vortikids: *** %patch $3CA4 $FA $00 #Initial speed if above\left of Keen %patch $3C9D $06 $FF #Initial speed if below right of Keen %patch $403B $06 $FF #Left speed %patch $4047 $FA $00 #Right speed %patch $4082 $06 $FF #Bounce of right walls %patch $408E $FA $00 #Bounce of left walls %patch $400B $90 $01 #Jump height (CANNOT be zero!)