Patch:Keen bored

From KeenWiki
Jump to: navigation, search

This page deals with patches relating to the player's 'bored sequences' in Keen Galaxy. These include looking at the player, looking up and reading a book. It does not include Keen's mooning sequence in Keen 4 which has its own page.

Keen also has a bored sequence in Keen Dreams. This is somewhat more complex than the Keen galaxy sequences.


How the bored sequences work

The principle behind the bored sequences is simple enough. If the player stands in a level for long enough they will begin executing a series of animation sequences, one after the other. It is somewhat more complicated in execution. Only Keen's standing action will produce the bored sequences.

In Keen galaxy There are three different sequences (On this page referred to as Bored-1, Bored-2 and Bored-3); the first two return to the standing action while the third waits for the player to press a key. Pressing any key 'resets' the bored sequence.

In Keen Dreams there are six different bored states which utilize any one of four bored sequences in the following order: 1-2-3-1-2-4. Movement at any time resets the sequence. In Dreams it is very important to keep in mind the difference between the bored state and bored sequence.


Keen Dreams bored states

These are the bored states involved in Keen Dreams. The individual states are reached by a list that is 5 + 1 entries long. Each state's code is nearly identical. First the sprite's timer variable ($3E) is checked. If this is below a certain value the code is skipped. If it is above then the bored state variable is increased by 1, Keen's action is set to the appropriate bored start and Keen's sprite timer is reset to zero.

When Keen awakens from napping his timer and the bored counter are set to zero which restarts the entire sequence. This list can be used to change the total number of bored sequences, selectively eliminating those that are not desired. This must be done by changing the whole list, there is no simple way of tweaking an individual entry to skip it. (Though setting it to the first bored sequence will make it pass quickly.)

Patch: Keen Dreams
#List length
%patch $6DC6 $05
#List offset
%patch $6DD1 $0DF4W
#Keen bored list
%patch $6E54 $0F53W
#At $6DD3
%patch $6E56 $0F69W
#At $6DE9
%patch $6E58 $0F7FW
#At $6DFF
%patch $6E5A $0F95W
#At $6E15
%patch $6E5C $0FABW
#At $6E2B
%patch $6E5E $0FC1W
#At $6E41
#First bored state code
%patch $6DD3 $81 $7C $3E $00C8W $7E $76 $FF $44 $40 $C7 $44 $1E $0EF6W $C7 $44 $3E $0000W $EB $67
#Second bored state code
%patch $6DE9 $81 $7C $3E $012CW $7E $60 $FF $44 $40 $C7 $44 $1E $0F8CW $C7 $44 $3E $0000W $EB $51
#Third bored state code
%patch $6DFF $81 $7C $3E $02BCW $7E $4A $FF $44 $40 $C7 $44 $1E $0F14W $C7 $44 $3E $0000W $EB $3B
#Fourth bored state code
%patch $6E15 $81 $7C $3E $0190W $7E $34 $FF $44 $40 $C7 $44 $1E $0EF6W $C7 $44 $3E $0000W $EB $25
#Fifth bored state code
%patch $6E2B $81 $7C $3E $02BCW $7E $1E $FF $44 $40 $C7 $44 $1E $0F14W $C7 $44 $3E $0000W $EB $0F
#Sixth bored state code
%patch $6E41 $81 $7C $3E $0190W $7E $08 $FF $44 $40 $C7 $44 $1E $1040W


Time needed to become bored

These patches alter the time needed for Keen to become bored. The times are reset after every bored sequence. So, for example, the time taken to reach the third bored state is $00C8 + $012CW + $02BCW = $04B0W.

Bored timers also reset to zero after each sequence, changing this can have effects if sequences are patched to happen multiple times.

Patch: Keen 4
#Time taken to become bored
%patch $BBFC $00C8W
#Bored-1
%patch $BC16 $012CW
#Bored-2
%patch $BC45 $02BCW
#Bored-3
#Reset bored timer
%patch $BC0B $0000W
#After bored-1
%patch $BC20 $0000W
#After bored-2
%patch $BC54 $0000W
#After bored-3

Patch: Keen Dreams
#Time taken to become bored
%patch $6DD6 $00C8W
#Bored-1
%patch $6DEC $012CW
#Bored-2
%patch $6E02 $02BCW
#Bored-3
%patch $6E18 $0190W
#Bored-4
%patch $6E2E $02BCW
#Bored-5
%patch $6E44 $0190W
#Bored-6


Number of times bored sequences occur

In Keen Galaxy the game keeps track of how many times Keen has been bored; this is used to determine which bored sequence to proceed to next. By default all three sequences happen once in turn. Changing this will allow the first and second sequences to happen more than once. (For example changing the two numbers in the patch from 1-2 to 2-3 lets the first bored sequence happen twice. Making them 1-4 let's the second bored sequence happen three times.)

Patch: Keen 4
#Times sequences happen
%patch $BBED $0001W
#Bored 1
%patch $BBF2 $0002W
#Bored 2


Disable bored sequences

These patches disable various bored sequences. Disabling a sequence in Keen galaxy will also disable all sequences that occur after it. Disabling the second bored sequence in Keen 4 will also disable Keen's mooning.

To more selectively disable sequences the first action of a sequence can be set to Keen's standing action (See Sprite Actions section below.) This will eliminate just that bored sequence, not affecting any others. In Keen Dreams it is possible to selectively disable bored sequences in Keen Dreams by altering the bored list.

Patch: Keen 4
#Disable Bored sequences
%patch $BBEB $0A
#Disable Bored-1,2,3
%patch $BBF0 $1F
#Disable Bored-2,3
%patch $BBF5 $49
#Disable Bored-3
%patch $BBB7 $15
#Disable all bored sequences

Patch: Keen Dreams
#No bored Keens at all
%patch $6DC1 $5E $5D $CB


Sprite Actions

As mentioned above there are three bored sequences. For a complete list of Keen's actions see Patch:Keen (Keen 4)#Sprite_Actions. There is an 'activation point' for each sequence in the same segment of code.

The Bored-1 sequence is quite simple, only one action long, Keen immediately returns to standing after executing it.

The second bores sequence is more complex, it is five actions long but is otherwise not any different.

The third sequences is the longest and does not return to standing by itself. It is composed of three 'sub-sequences'; the first is Keen starting to read his book. It is four actions long and ends with Keen on the first frame of the Bored-3 loop. The Bored-3 loop is 3 actions long (Keen reading and flipping pages.) The player continues in the loop until interrupted by pressing a key. When a key is pressed Keen enters the Bored-3 end sequence, four actions long and ending with him standing. Neither the start nor end sequence can be interrupted by pressing a key.

Things are slightly different in Keen Dreams; firstly the bored-1 and bored-2 sequences occur twice in the six-state 'bored loop.' Secondly there are four bored sequences instead of three. Finally when napping Keen also spawns a 'Zzz' sprite that sits over his head. (This vanishes when he awakes.)


Keen 4

Keen 4 actions:
$098CW #Keen stand
$09AAW #Keen looks up (Bored-1)
$09C8W #Keen shrugs (Bored-2)
$09E6W #Keen shrugs 1
$0A04W #Keen shrugs 2
$0A22W #Keen shrugs 3
$0A40W #Keen shrugs 4
$0A5EW #Keen shrugs 5
$0AD6W #Keen starts reading book 1 (Bored-3)
$0AF4W #Keen starts reading book 2
$0B12W #Keen starts reading book 3
$0B30W #Keen starts reading book 4
$0B4EW #Keen reads book 1
$0B6CW #Keen reads book 2
$0B8AW #Keen reads book 3
$0BA8W #Keen stops reading book 1
$0BC6W #Keen stops reading book 2
$0BE4W #Keen stops reading book 3

Patch: Keen 4
#Keen goes from standing to bored
%patch $BC06 $09AAW
#Bored-1 start
%patch $BC3A $09C8W
#Bored-2 start
%patch $BC4F $0AD6W
#Bored-3 start
#Bored-1 sequence
%patch $2F836 $098CW
#Bored-2 sequence
%patch $2F854 $09E6W %patch $2F872 $0A04W %patch $2F890 $0A22W %patch $2F8AE $0A40W %patch $2F8CC $0A5EW %patch $2F8EA $098CW
#Bored-3 start sequence
%patch $2F962 $0AF4W %patch $2F980 $0B12W %patch $2F99E $0B30W %patch $2F9BC $0B4EW
#Bored-3 loop
%patch $2F9DA $0B6CW %patch $2F9F8 $0B8AW %patch $2FA16 $0B4EW
#Bored-3 end sequence
%patch $2FA34 $0BC6W %patch $2FA52 $0BE4W %patch $2FA70 $098CW
#When a key is pressed during Bored-3 sequence
%patch $BC95 $0BA8W


Keen 5

Keen 5 actions:
$0888W #Keen standing
$08A6W #Keen on platforms
$08C4W #Keen looks up (Bored)
$08E2W #Keen shrugs (Bored more)
$0900W #Keen shrugs
$091EW #Keen shrugs
$093CW #Keen shrugs
$095AW #Keen shrugs
$0978W #Keen shrugs
$0996W #Keen starts reading book
$09B4W #Keen starts reading book
$09D2W #Keen starts reading book
$09F0W #Keen starts reading book
$0A0EW #Keen reads book
$0A2CW #Keen reads book
$0A4AW #Keen reads book
$0A68W #Keen stops reading book
$0A86W #Keen stops reading book
$0AA4W #Keen stops reading book

Patch: Keen 5
#Bored-1 sequence
%patch $30C20 $0888W
#Bored-2 sequence
%patch $30C3E $0900W %patch $30C5C $091EW %patch $30C7A $093CW %patch $30C98 $095AW %patch $30CB6 $0978W %patch $30CD4 $0888W
#Bored-3 start sequence
%patch $30CF2 $09B4W %patch $30D10 $09D2W %patch $30D2E $09F0W %patch $30D4C $0A0EW
#Bored-3 loop
%patch $30D6A $0A2CW %patch $30D88 $0A4AW %patch $30DA6 $0A0EW
#Bored-3 end sequence
%patch $30DC4 $0A86W %patch $30DE2 $0AA4W %patch $30E00 $0888W


Keen 6

Keen 6 actions:
$089AW #Keen stand
$08B8W #Keen looks up (Bored-1)
$08D6W #Keen shrugs (Bored-2)
$08F4W #Keen shrugs 1
$0912W #Keen shrugs 2
$0930W #Keen shrugs 3
$094EW #Keen shrugs 4
$096CW #Keen shrugs 5
$098AW #Keen starts reading book 1 (Bored-3)
$09A8W #Keen starts reading book 2
$09C6W #Keen starts reading book 3
$09E4W #Keen starts reading book 4
$0A02W #Keen reads book 1
$0A20W #Keen reads book 2
$0A3EW #Keen reads book 3
$0A5CW #Keen stops reading book 1
$0A7AW #Keen stops reading book 2
$0A98W #Keen stops reading book 3


Keen Dreams

Keen Dreams actions:
$0E7EW #Zzzz 1
$0E9CW #Zzzz 2
$0EBAW #Zzzz 3
$0ED8W #Keen stand
$0EF6W #Keen bored (Look up)
$0F14W #Keen bored (Yawn) 1
$0F32W #Keen bored (Yawn) 2
$0F50W #Keen bored (Yawn) 3
$0F6EW #Keen bored (Yawn) 4
$0F8CW #Keen bored (Blink-shrug) 1
$0FAAW #Keen bored (Blink-shrug) 2
$0FC8W #Keen bored (Blink-shrug) 3
$0FE6W #Keen bored (Blink-shrug) 4
$1004W #Keen bored (Blink-shrug) 5
$1022W #Keen bored (Blink-shrug) 6
$1040W #Keen bored (Nap) 1
$105EW #Keen bored (Nap) 2
$107CW #Keen bored (Nap) 3
$109AW #Keen bored (Nap) 4
$10B8W #Keen wake up

Patch: Keen Dreams
#Keen goes to bored-1
%patch $6DE0 $0EF6W
#First time
%patch $6E22 $0EF6W
#Second time
#Bored-1 sequence
%patch $24982 $0ED8W
#Keen goes to bored-2
%patch $6E0C $0F14W
#First time
%patch $6E38 $0F14W
#Second time
#Bored-2 sequence
%patch $249A0 $0F32W %patch $249BE $0F50W %patch $249DC $0F6EW %patch $249FA $0ED8W
#Keen goes to bored-3
%patch $6DF6 $0F8CW
#Bored-3 sequence
%patch $24A18 $0FAAW %patch $24A36 $0FC8W %patch $24A54 $0FE6W %patch $24A72 $1004W %patch $24A90 $1022W %patch $24AAE $0ED8W
#Keen goes to bored-4
%patch $6E4E $1040W
#Bored-4 loop
%patch $24ACC $105EW %patch $24AEA $107CW %patch $24B08 $109AW %patch $24B26 $107CW
#Keen goes to awakening on keypress
%patch $6EF4 $10B8W
#Keen awaken sequence
%patch $24B44 $0ED8W
#Napping Keen spawns Zzz
%patch $6EA4 $0E7EW
#Keen's Zzzz sequence
%patch $2490A $0E9CW %patch $24928 $0EBAW %patch $24946 $0E7EW


Sprite Behavior

Keen has too many possible behaviors to list here. However they can be found by clicking this section's title. Both Bored-1 and Bored-2 Keen use the same behavior as standing Keen, meaning he waits for arrow\jump\shoot keys to be pressed. This also means that these sequences can be interrupted at any time and anything Keen can do while standing he can do while bored. Replacing the behaviors with $00000000L will make the sequences uninterruptable. (The player will lose control of Keen when he is bored.)

The Bored-3 start and stop sequences have no behavior meaning that they cannot be interrupted. The Bored-3 reading loop has its own unique behavior. This stops Keen reading when the arrow, alt or ctrl keys are pressed.

Patch: Bored Keen 4 behaviors
#Bored-1 sequence
%patch $2F82A $0B800395RL
#Bored-2 sequence
%patch $2F848 $0B800395RL %patch $2F866 $0B800395RL %patch $2F884 $0B800395RL %patch $2F8A2 $0B800395RL %patch $2F8C0 $0B800395RL %patch $2F8DE $0B800395RL
#Bored-3 start
%patch $2F956 $00000000L %patch $2F974 $00000000L %patch $2F992 $00000000L %patch $2F9B0 $00000000L
#Bored-3 loop
%patch $2F9CE $0B80045CRL %patch $2F9EC $0B80045CRL %patch $2FA0A $0B80045CRL
#Bored-3 stop
%patch $2FA28 $00000000L %patch $2FA46 $00000000L %patch $2FA64 $00000000L

Patch: Bored Keen 5 behaviors
#Bored-1 sequence
%patch $30C14 $0AAF046DRL
#Bored-2 sequence
%patch $30C32 $0AAF046DRL %patch $30C50 $0AAF046DRL %patch $30C6D $0AAF046DRL %patch $30C8C $0AAF046DRL %patch $30CAA $0AAF046DRL %patch $30CC8 $0AAF046DRL
#Bored-3 start
%patch $30CE6 $00000000L %patch $30D04 $00000000L %patch $30D22 $00000000L %patch $30D40 $00000000L
#Bored-3 loop
%patch $30D5D $0AAF0531RL %patch $30D7C $0AAF0531RL %patch $30D9A $0AAF0531RL
#Bored-3 stop
%patch $30DB8 $00000000L %patch $30DD6 $00000000L %patch $30DF4 $00000000L

Patch: Bored Keen Dreams behaviors
#Bored-1 sequence
%patch $24976 $05E80EF9RL
#Bored-2 sequence
%patch $24994 $05E80EF9RL %patch $249B2 $05E80EF9RL %patch $249D0 $05E80EF9RL %patch $249EE $05E80EF9RL
#Bored-3 sequence
%patch $24A0C $05E80EF9RL %patch $24A2A $05E80EF9RL %patch $24A48 $05E80EF9RL %patch $24A66 $05E80EF9RL %patch $24A84 $05E80EF9RL %patch $24AA2 $05E80EF9RL
#Keen nap
%patch $24AC0 $05E80EF9RL %patch $24ADE $05E80FE0RL %patch $24AFC $05E8103CRL %patch $24B1A $05E8103CRL
#Keen wake
%patch $24B38 $00000000L
#Zzz
%patch $248FE $00000000L %patch $2491C $00000000L %patch $2493A $00000000L


Reading\Napping Keen behavior

This behavior is used only by reading Keen. It consists mainly of a number of checks. On the first line the game checks to see if 'demo mode' is enabled. If it is then the level state is set to 8, which exits the level, ends the game and runs the high score demo. See also Patch:Game stats.

On the second line the game checks to see if any of the arrow keys are being pressed. (This requires only one check.) On line 3 the game checks to see if ctrl or alt is being pressed (in that order.) If any of these keys is being pressed Keen will reset his timer and change his action to the first action of the Bored-3 stop sequence. (That is, he will stop reading.)

Keen's napping behavior (In Keen Dreams) is slightly different. The first line checks to see if any arrows are being pressed. The second line has two other, unknown, checks. If any of the three checks is passed Keen will wake. If his 'timer' is $7060W then something unknown occurs. Keen's timer is set to 0 and his action is then set to 'wake up'.

Patch: Keen Reading\Napping behaviors
#Keen 4 reading behavior
%patch $BC5C $55 $8B $EC $56 $8B $76 $06 $83 $3E $7A72W $00 $74 $0B $C7 $06 $7A70W $0008W $9A $146008A8RL $83 $3E $A7D2W $08 $75 $0E $83 $3E $C5C9W $00 $75 $07 $83 $3E $C5C5W $00 $74 $0D $33 $C0 $89 $44 $40 $89 $44 $3E $C7 $44 $1C $0BA8W $5E $5D $CB
#Keen 5 reading behavior
%patch $B021 $55 $8B $EC $56 $8B $76 $06 $83 $3E $6F72W $00 $74 $0B $C7 $06 $6F70W $0008W $9A $155A08A5RL $83 $3E $9E3AW $08 $75 $0E $83 $3E $BC31W $00 $75 $07 $83 $3E $BC2DW $00 $74 $0D $33 $C0 $89 $44 $40 $89 $44 $3E $C7 $44 $1C $0A68W $5E $5D $CB
#Keen 6 reading behavior
%patch $AE5D $55 $8B $EC $56 $8B $76 $06 $83 $3E $75AEW $00 $74 $0B $C7 $06 $75ACW $0008W $9A $141308A9RL $83 $3E $A960W $08 $75 $0E $83 $3E $C757W $00 $75 $07 $83 $3E $C753W $00 $74 $0D $33 $C0 $89 $44 $40 $89 $44 $3E $C7 $44 $1C $0A5CW $5E $5D $CB
#Napping Keen behavior
%patch $6EBC $55 $8B $EC $56 $8B $76 $06 $83 $3E $7022W $08 $75 $0E $83 $3E $7016W $00 $75 $07 $83 $3E $7018W $00 $74 $1E $81 $7C $3E $7060W $74 $0A $FF $74 $3E $9A $044D0240RL $44 $44 $33 $C0 $89 $44 $40 $89 $44 $3E $C7 $44 $1E $10B8W $5E $5D $CB


Keen going to nap behavior

This is the behavior used by the first frame of Keen going to nap in Keen Dreams. It spawns his 'Zzzz' sprite $0040W pixels above him. The sprite is set to move right and up, though it doesn't actually move by default. Its type is $19 or 'harmless'.

Patch: Keen going to nap behavior
#Keen going to nap behavior code
%patch $6E60 $55 $8B $EC $56 $8B $76 $06 $B8 $0001W $50 $9A $044D01C9RL $44 $44 $8B $1E $3E $70 $C7 $07 $0019W $8B $1E $34 $70 $8B $47 $0A $8B $1E $3E $70 $89 $47 $0A $8B $1E $34 $70 $8B $47 $0C $2D $0040W $8B $1E $3E $70 $89 $47 $0C $C7 $47 $0E $0001W $C7 $47 $10 $FFFFW $B8 $0E7EW $50 $FF $36 $3E $70 $9A $044D1212RL $83 $C4 $04 $A1 $703EW $89 $44 $3E $5E $5D $CB


Speed and Jump Height

Bored Keen is still by default, not using any motion at any time.

Patch: Animation motion
#Bored-1 sequence
%patch $2F826 $0000W $0000W
#Bored-2 sequence
%patch $2F844 $0000W $0000W %patch $2F862 $0000W $0000W %patch $2F880 $0000W $0000W %patch $2F89E $0000W $0000W %patch $2F8BC $0000W $0000W %patch $2F8DA $0000W $0000W
#Bored-3 start
%patch $2F952 $0000W $0000W %patch $2F970 $0000W $0000W %patch $2F98E $0000W $0000W %patch $2F9AC $0000W $0000W
#Bored-3 loop
%patch $2F9CA $0000W $0000W %patch $2F9E8 $0000W $0000W %patch $2FA06 $0000W $0000W
#Bored-3 stop
%patch $2FA24 $0000W $0000W %patch $2FA42 $0000W $0000W %patch $2FA60 $0000W $0000W


Animations

The bored sequence animations are part of Keen's general cache and so can be used in any level Keen has been placed in. The sole exception is the mooning sequence which needs its animations cached before it can be used. However it is treated on its own page.

Several animations are used more than once per sequence. Notably the stopping reading sequence is the reverse of the starting reading sequence. When in bored-2 Keen also uses the 'face player' and 'blink' animations more than once.

Patch: Keen 4
#Keen looking up when bored (Bored 1)
%patch $2F81A $0092W $0092W %patch $2F824 $003CW
#Look up time
#Keen shrug-blinks (Bored 2)
%patch $2F838 $0094W $0094W
#Face player
%patch $2F842 $005AW
#Animation speed
%patch $2F856 $0093W $0093W
#Blink
%patch $2F860 $000AW
#Animation speed
%patch $2F874 $0094W $0094W
#Face player
%patch $2F87E $005AW
#Animation speed
%patch $2F892 $0093W $0093W
#Blink 2
%patch $2F89C $000AW
#Animation speed
%patch $2F8B0 $0094W $0094W
#Face player
%patch $2F8BA $005AW
#Animation speed
%patch $2F8CE $0095W $0095W
#Shrug
%patch $2F8D8 $0046W
#Animation speed
#Keen start reading book (Bored 3)
%patch $2F946 $0096W $0096W %patch $2F950 $0010W
#Animation speed
%patch $2F964 $0097W $0097W %patch $2F96E $0010W
#Animation speed
%patch $2F982 $0098W $0098W %patch $2F98C $0010W
#Animation speed
%patch $2F9A0 $0099W $0099W %patch $2F9AA $0010W
#Animation speed
#Keen read book
%patch $2F9BE $009AW $009AW %patch $2F9C8 $012CW
#Reading time (Before looking up at player)
%patch $2F9DC $009BW $009BW %patch $2F9E6 $0010W
#Animation speed
%patch $2F9FA $009CW $009CW %patch $2FA04 $0010W
#Animation speed
#Keen stops reading book
%patch $2FA18 $009DW $009DW %patch $2FA22 $000CW
#Animation speed
%patch $2FA36 $009EW $009EW %patch $2FA40 $000CW
#Animation speed
%patch $2FA54 $0097W $0097W %patch $2FA5E $000CW
#Animation speed

Patch: Keen 5
#Keen shrug-blinks (Bored 2)
%patch $30C04 $007CW $007CW
#Look up
%patch $30C0E $003CW
#Animation speed
%patch $30C22 $007EW $007EW
#Face player
%patch $30C2C $005AW
#Animation speed
%patch $30C40 $007DW $007DW
#Blink
%patch $30C4A $000AW
#Animation speed
%patch $30C5E $007EW $007EW
#Face player
%patch $30C68 $005AW
#Animation speed
%patch $30C7C $007DW $007DW
#Blink 2
%patch $30C86 $000AW
#Animation speed
%patch $30C9A $007EW $007EW
#Face player
%patch $30CA4 $005AW
#Animation speed
%patch $30CB8 $007FW $007FW
#Shrug
%patch $30CC2 $0046W
#Animation speed
#Keen start reading book (Bored 3)
%patch $30CD6 $0080W $0080W %patch $30CE0 $0010W
#Animation speed
%patch $30CF4 $0081W $0081W %patch $30CFE $0010W
#Animation speed
%patch $30D12 $0082W $0082W %patch $30D1C $0010W
#Animation speed
%patch $30D30 $0083W $0083W %patch $30D3A $0010W
#Animation speed
#Keen read book
%patch $30D4E $0084W $0084W %patch $30D58 $012CW
#Animation speed
%patch $30D6C $0085W $0085W %patch $30D76 $0010W
#Animation speed
%patch $30D8A $0086W $0086W %patch $30D94 $0010W
#Animation speed
#Keen stops reading book
%patch $30DA8 $0087W $0087W %patch $30DB2 $000CW
#Animation speed
%patch $30DC6 $0088W $0088W %patch $30DD0 $000CW
#Animation speed
%patch $30DE4 $0081W $0081W %patch $30DEE $000CW
#Animation speed

Patch: Keen 6
#Keen looking up when bored (Bored 1)
%patch $315E8 $0044W $0044W %patch $315F2 $003CW
#Animation speed
#Keen shrug-blinks (Bored 2)
%patch $31606 $0046W $0046W
#Face player
%patch $31610 $005AW
#Animation speed
%patch $31624 $0045W $0045W
#Blink
%patch $3162E $000AW
#Animation speed
%patch $31642 $0046W $0046W
#Face player
%patch $3164C $005AW
#Animation speed
%patch $31660 $0045W $0045W
#Blink 2
%patch $3166A $000AW
#Animation speed
%patch $3167E $0046W $0046W
#Face player
%patch $31688 $005AW
#Animation speed
%patch $3169C $0047W $0047W
#Shrug
%patch $316A6 $0046W
#Animation speed
#Keen start reading book (Bored 3)
%patch $316BA $0048W $0048W %patch $316C4 $0010W
#Animation speed
%patch $316D8 $0049W $0049W %patch $316E2 $0010W
#Animation speed
%patch $316F6 $004AW $004AW %patch $31700 $0010W
#Animation speed
%patch $31714 $004BW $004BW %patch $3171E $0010W
#Animation speed
#Keen read book
%patch $31732 $004CW $004CW %patch $3173C $012CW
#Animation speed
%patch $31750 $004DW $004DW %patch $3175A $0010W
#Animation speed
%patch $3176E $004EW $004EW %patch $31778 $0010W
#Animation speed
#Keen stops reading book
%patch $3178C $004FW $004FW %patch $31796 $000CW
#Animation speed
%patch $317AA $0050W $0050W %patch $317B4 $000CW
#Animation speed
%patch $317C8 $0049W $0049W %patch $317D2 $000CW
#Animation speed

Patch: Keen Dreams
#Bored 1
%patch $24966 $005FW $0058W %patch $24970 $003CW
#Animation speed
#Bored 2
%patch $24984 $0066W $0066W %patch $2498E $0028W
#Animation speed
%patch $249A2 $0067W $0067W %patch $249AC $0028W
#Animation speed
%patch $249C0 $0068W $0068W %patch $249CA $0028W
#Animation speed
%patch $249DE $0069W $0069W %patch $249E8 $0028W
#Animation speed
#Bored 3
%patch $249FC $0061W $005AW %patch $24A06 $005AW
#Animation speed
%patch $24A1A $0060W $0059W %patch $24A24 $000AW
#Animation speed
%patch $24A38 $0061W $005AW %patch $24A42 $005AW
#Animation speed
%patch $24A56 $0060W $0059W %patch $24A60 $000AW
#Animation speed
%patch $24A74 $0061W $005AW %patch $24A7E $005AW
#Animation speed
%patch $24A92 $0062W $005BW %patch $24A9C $0046W
#Animation speed
#Keen nap
%patch $24AB0 $0071W $0071W %patch $24ABA $0014W
#Animation speed
%patch $24ACE $0072W $0072W %patch $24AD8 $0014W
#Animation speed
%patch $24AEC $0073W $0073W %patch $24AF6 $0078W
#Animation speed
%patch $24B0A $0074W $0074W %patch $24B14 $0078W
#Animation speed
#Keen wake up
%patch $24B28 $00A1W $009CW %patch $24B32 $000FW
#Animation speed
#Keen's ZZZZZ
%patch $248EE $0078W $0078W %patch $248F8 $001EW
#Animation speed
%patch $2490C $0079W $0079W %patch $24916 $001EW
#Animation speed
%patch $2492A $007AW $007AW %patch $24934 $001EW
#Animation speed

Sprite Collision

Keen's sprite collision is varied, complex and not covered here. Rather it is covered on the player patch page for an episode. (Patch:Keen (Keen 4), Patch:Keen (Keen 5), Patch:Keen (Keen 6) and Patch:Keen (Keen Dreams)].) In all of his bored actions Keen uses the same sprite collision as he does when standing still. In Keen Dreams Keen's 'Zzzz' sprite has no sprite collision as it is not meant to interact with anything.

Patch: Keen 4 Bored Keen sprite collisions
#Bored-1 sequence
%patch $2F82E $0B8014A9RL
#Bored-2 sequence
%patch $2F84C $0B8014A9RL %patch $2F86A $0B8014A9RL %patch $2F888 $0B8014A9RL %patch $2F8A6 $0B8014A9RL %patch $2F8C4 $0B8014A9RL %patch $2F8E2 $0B8014A9RL
#Bored-3 start
%patch $2F95A $0B8014A9RL %patch $2F978 $0B8014A9RL %patch $2F996 $0B8014A9RL %patch $2F9B4 $0B8014A9RL
#Bored-3 loop
%patch $2F9D2 $0B8014A9RL %patch $2F9F0 $0B8014A9RL %patch $2FA0E $0B8014A9RL
#Bored-3 stop
%patch $2FA2C $0B8014A9RL %patch $2FA4A $0B8014A9RL %patch $2FA68 $0B8014A9RL

Patch: Keen 5 Bored Keen sprite collisions
#Bored-1 sequence
%patch $30C18 $0AAF1597RL
#Bored-2 sequence
%patch $30C36 $0AAF1597RL %patch $30C54 $0AAF1597RL %patch $30C72 $0AAF1597RL %patch $30C90 $0AAF1597RL %patch $30CAE $0AAF1597RL %patch $30CCC $0AAF1597RL
#Bored-3 start
%patch $30CEA $0AAF1597RL %patch $30D08 $0AAF1597RL %patch $30D26 $0AAF1597RL %patch $30D44 $0AAF1597RL
#Bored-3 loop
%patch $30D62 $0AAF1597RL %patch $30D80 $0AAF1597RL %patch $30D9E $0AAF1597RL
#Bored-3 stop
%patch $30DBC $0AAF1597RL %patch $30DDA $0AAF1597RL %patch $30DF8 $0AAF1597RL

Patch: Keen 6 Bored Keen sprite collisions
#Bored-1 sequence
%patch $315FC $0AA2144ARL
#Bored-2 sequence
%patch $3161A $0AA2144ARL %patch $31638 $0AA2144ARL %patch $31656 $0AA2144ARL %patch $31674 $0AA2144ARL %patch $31692 $0AA2144ARL %patch $316B0 $0AA2144ARL
#Bored-3 start
%patch $316CE $0AA2144ARL %patch $316EC $0AA2144ARL %patch $3170A $0AA2144ARL %patch $31728 $0AA2144ARL
#Bored-3 loop
%patch $31746 $0AA2144ARL %patch $31764 $0AA2144ARL %patch $31782 $0AA2144ARL
#Bored-3 stop
%patch $317A0 $0AA2144ARL %patch $317BE $0AA2144ARL %patch $317DC $0AA2144ARL

Patch: Keen Dreams Bored Keen sprite collisions
#Bored 1
%patch $2497A $05E817FCRL
#Bored 2
%patch $24998 $05E817FCRL %patch $249B6 $05E817FCRL %patch $249D4 $05E817FCRL %patch $249F2 $05E817FCRL
#Bored 3
%patch $24A10 $05E817FCRL %patch $24A2E $05E817FCRL %patch $24A4C $05E817FCRL %patch $24A6A $05E817FCRL %patch $24A88 $05E817FCRL %patch $24AA6 $05E817FCRL
#Napping
%patch $24AC4 $05E817FCRL %patch $24AE2 $05E817FCRL %patch $24B00 $05E817FCRL %patch $24B1E $05E817FCRL
#Waking up
%patch $24B3C $05E817FCRL
#Zzzz
%patch $24902 $00000000L %patch $24920 $00000000L %patch $2493E $00000000L


Sprite-tile interaction

Keen's tile interaction is varied, complex and not covered here. Rather it is covered on the player patch page for an episode. (Patch:Keen (Keen 4), Patch:Keen (Keen 5), Patch:Keen (Keen 6) and Patch:Keen (Keen Dreams).) In all of his bored actions Keen uses the same tile collision as he does when standing still.

In Keen Dreams there are some subtle differences; Keen's 'Zzzz' sprite uses the 'sit' tile collision as it is not meant to interact with tiles in any way. Keen's waking action uses the same tile collision as he uses when dying, so the player cannot do things like grasp poles while waking.

Patch: Keen 4 Bored Keen tile collisions
#Bored-1 sequence
%patch $2F832 $0B801AA2RL
#Bored-2 sequence
%patch $2F850 $0B801AA2RL %patch $2F86E $0B801AA2RL %patch $2F88C $0B801AA2RL %patch $2F8AA $0B801AA2RL %patch $2F8C8 $0B801AA2RL %patch $2F8E6 $0B801AA2RL
#Bored-3 start
%patch $2F95E $0B801AA2RL %patch $2F97C $0B801AA2RL %patch $2F99A $0B801AA2RL %patch $2F9B8 $0B801AA2RL
#Bored-3 loop
%patch $2F9D6 $0B801AA2RL %patch $2F9F4 $0B801AA2RL %patch $2FA12 $0B801AA2RL
#Bored-3 stop
%patch $2FA30 $0B801AA2RL %patch $2FA4E $0B801AA2RL %patch $2FA6C $0B801AA2RL

Patch: Keen 5 Bored Keen tile collisions
#Bored-1 sequence
%patch $30C1C $0AAF1AC6RL
#Bored-2 sequence
%patch $30C3A $0AAF1AC6RL %patch $30C58 $0AAF1AC6RL %patch $30C76 $0AAF1AC6RL %patch $30C94 $0AAF1AC6RL %patch $30CB2 $0AAF1AC6RL %patch $30CD0 $0AAF1AC6RL
#Bored-3 start
%patch $30CEE $0AAF1AC6RL %patch $30D0C $0AAF1AC6RL %patch $30D2A $0AAF1AC6RL %patch $30D48 $0AAF1AC6RL
#Bored-3 loop
%patch $30D66 $0AAF1AC6RL %patch $30D84 $0AAF1AC6RL %patch $30DA2 $0AAF1AC6RL
#Bored-3 stop
%patch $30DC0 $0AAF1AC6RL %patch $30DDE $0AAF1AC6RL %patch $30DFC $0AAF1AC6RL

Patch: Keen Dreams Bored Keen tile collisions
#Bored 1
%patch $2497E $05E81AE2RL
#Bored 2
%patch $2499C $05E81AE2RL %patch $249BA $05E81AE2RL %patch $249D8 $05E81AE2RL %patch $249F6 $05E81AE2RL
#Bored 3
%patch $24A14 $05E81AE2RL %patch $24A32 $05E81AE2RL %patch $24A50 $05E81AE2RL %patch $24A6E $05E81AE2RL %patch $24A8C $05E81AE2RL %patch $24AAA $05E81AE2RL
#Napping
%patch $24AC8 $05E81AE2RL %patch $24AE6 $05E81AE2RL %patch $24B04 $05E81AE2RL %patch $24B22 $05E81AE2RL
#Waking up
%patch $24B40 $05E81ABARL
#Zzzz
%patch $24906 $07C501DDRL %patch $24924 $07C501DDRL %patch $24942 $07C501DDRL