Patch:Keen shooting (Vorticons)

From KeenWiki
Jump to navigation Jump to search

This page contains patches that cover Keen shooting and his firing rate, as well as his shots in Keen Vorticons. Some patches will overlap other game actions, such as patches relating to Keen shooting while jumping. Since the three Vorticons games are so similar patches for all three are treated together on this page. Patches for individual episodes that relate to the player can be found at Patch:Keen (Keen 1), Patch:Keen (Keen 2) and Patch:Keen (Keen 3). Unlike Keen galaxy, there is not a separate page for Keen's shots, since they behave in a very basic manner. Closely related patches, especially regarding the destruction of shots can be found at Patch:Zap and zot.

Due to the sheer number of patches relating to Keen and his shots this page contains patches that relate to Keen himself and his shooting behavior only; animations behavior, what happens next and so on. This includes the conditions under which a shot is created. (Such as not having ammunition.) and the shooting sound. For patches relating to his shots, their speed, animations and such see Patch:Keen's shot (Vorticons).


Change shooting controls

This changes the controls of the game to be more like Keen Galaxy. Spacebar shoots, enter brings up the status screen. See http://keenmodding.org/viewtopic.php?t=433 for the original topic. Note that the first two lines alter the status window key and the remaining lines Keen's shot key (In various situations.) To change the key simply alter the blue highlighted values. (Consulting Patch:Scancodes will be informative.)

In this patch the status box lines are included since the shooting key is now the spacebar. This patch also causes the shooting key to be one key, not two (Both ctrl and alt by default.) This can cause some issues with things like keyboard setup and joystick.

Keen 1

#Change the controls to Space, shoot; Enter, status. 
%patch $1251  [$5048W]
%patch $7FA3  [$5048W]
%patch $3B23  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5065W] $00 
%patch $3C4E  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5065W] $00 
%patch $3DB9  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5065W] $00 
%patch $3DCC  $90 $90 
%patch $3E6D  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5065W] $00 
%patch $3FFC  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5065W] $00 
%patch $40AA  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5065W] $00

Keen 2

#Change the controls to: Space, shoot; Enter, status.
%patch $120B  [$5024W]
%patch $83A2  [$5024W]
%patch $6965  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5041W]  $00
%patch $6A90  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5041W]  $00
%patch $6BFB  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5041W]  $00
%patch $6C0E  $90 $90 
%patch $6CAF  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5041W]  $00
%patch $6E3E  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5041W]  $00
%patch $6EEC  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5041W]  $00

Keen 3

#Change the controls to: Space, shoot; Enter, status.
%patch $11AF  [$5274W]
%patch $8D6E  [$5274W]
%patch $71C9  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5291W]  $00
%patch $72FA  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5291W]  $00
%patch $7461  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5291W]  $00
%patch $7474  $90 $90 
%patch $7515  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5291W]  $00
%patch $76A1  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5291W]  $00
%patch $7750  $90 $90 $90 $90 $90 $90 $90 $80 $3E [$5291W]  $00


Keen reloads when out of ammo

This patch causes Keen to 'reload' his raygun when he has 0 ammo and tries to shoot. This has a number of side effects. The first is that the C T Space cheat is disabled for code space. The second side effect is Keen will have infinite ammunition, gaining more when he is out.

The first line calls the extra code. The second ad start of the third line sets Keen's shooting animations. (This overrides all of Keen's other shooting animations.) which are $0014 and the next frame in this example. The rest of the third line performs a check of Keen's ammunition; if it is above zero then the code will be exited and a shot spawned as usual.

If Keen has zero ammo then on the fourth line his 'reloading' animation will be set ($0076 in this example.) and Keen's ammo is reset. (To $0004W in this example.) The code is then exited and the 'out of ammo' sound is played.

Keen reloads when out of ammo

#Keen reloads when out of ammo - Keen 3
%patch $74D5 $E9 $994BW
%patch $0E22 $C3 $C7 $06 {$9938W}  [$0014W]  $81 $3E $78 $62 $0000W  $7F $04 #Set shooting sprite
%patch $0E31 $FF $06 {$9938W}  $81 $3E {$9D48W}  [$0000W]  $74 $03 $E9 $669CW #Ammo check; Goto normal shot creation
%patch $0E40 $81 $06 {$9938W}  [$0076W]  $C7 $06 {$9D48W}  [$0004W]  $E9 $66B1W #Sprite 118; ammo=4, Goto no ammo


Keen's shooting rate

There is a maximum rate at which the player can produce shots; this is controlled in part by how long Keen holds his shooting animation for. If this is made smaller the player can shoot faster, if it is made larger they must wait longer. There are two limits to this patch; firstly, even a value of 0 will still result in a significant pause between shots; secondly, the maximum pause is $7F ticks, any higher and the game treats it as a value of 0.

Keen's shooting rate

#Keen 1 Keen's shooting rate
%patch $3E6A [$1E]

#Keen 2 Keen's shooting rate
%patch $6CAC [$1E]

#Keen 3 Keen's shooting rate
%patch $7512 [$1E]


Keen's shooting and out-of-ammo sounds

There are two sounds relevant to Keen shooting. The first is that played when Keen successfully shoots; the second is played when he tries to shoot but does not have any ammunition. (See section below.) Both sounds can be disabled.

Keen 1 shooting sounds

#Keen has no ammo sound
%patch $3E58 $24     #Keen has no ammo sound
%patch $3E57 $EB $07 #Keen has no ammo sound disabled

#Keen shoot sound
%patch $3E33 $0B     #Keen shoot sound
%patch $3E32 $EB $07 #Keen shoot sound disabled

Keen 2 shooting sounds

#Keen has no ammo sound
%patch $6C9A $24     #Keen Keen has no ammo sound
%patch $6C99 $EB $07 #Keen Keen has no ammo sound disabled

#Keen shoot sound
%patch $6C75 $0C     #Keen shoot sound
%patch $6C74 $EB $07 #Keen shoot sound disabled

Keen 3 shooting sounds

#Keen has no ammo sound
%patch $7501 $24     #Keen has no ammo sound
%patch $7500 $EB $06 #Keen has no ammo disabled

#Keen shoot sound
%patch $74DD $0C     #Keen shoot sound
%patch $74DC $EB $06 #Keen shoot sound disabled


Keen's shooting height

This controls the height at which Keen's shots are spawned. It is divided into two values, the first in a 'fine-tuner', the number of pixels down from the player's sprite's top the bullet appears. The second value is much rougher and is worth 256 pixels when +-1 It is really only useful when making the shot appear a negative number of pixels below (That is above) the sprite, when it will be changed to $FFFFW.

Keen 1

#Robot shot height (Default $000009, if zero then no shot appears)
%patch $46DC    [$09]
%patch $46DE [$0000W]

Keen 2

#Robot shot height (Default $000009, if zero then no shot appears)
%patch $743B    [$09]
%patch $743D [$0000W]

Keen 3

#Robot shot height (Default $000009, if zero then no shot appears)
%patch $7CFA    [$09]
%patch $7CFC [$0000W]


Keen can shoot up and down

This patch allows Keen to shoot up by pressing up and shoot, and down by pressing down and shoot. (He can shoot down while standing, which is a big waste of a shot.) Keen will use the same shooting animation when shooting in any direction and can still shoot left and right. This patch overwrites the code that checks for pg up, pg down, end and insert, so these keys will be unavailable. Another side effect is the border flash when a Vorticon is shot is disabled.

This patch works by setting Keen's horizontal and vertical shot speeds to one of three values in the patch, marked in blue; $0190W, $FE70W and $0000W. For example, when the player presses the up key Keen's shot's vertical speed is set to $FE70W (up) and its left and right speeds are set to 0. When the player shoots right Keen's shot's vertical speed is set to 0 and its left and right speeds set to $0190W and $FE70W. Therefore changing the three blue values will change how fast Keen's shot moves.

This means that this default patch will make Keen's shot's vertical speeds the same as its horizontal speeds, but if this is not desired it can easily be changed so that horizontal\vertical speeds are different.

Keen 1

#Keen can shoot up and down using the ^v keys
%patch $55EF $90 $90 $2E $A1 $46EEW  $8B $1E $CA $7F $D1 $E3 $2E $FF $A7 $4A48W
                 $2E $A1 $4A5CW  $2E $A3 $46EEW  $EB $08 $2E $A1 $4A5AW  $2E
             $A3 $46EEW  $2E $A1 $4A5EW  $2E $A3 $4704W  $2E $A3 $4779W  $EB
             $1B $2E $A1 $4A5EW  $2E $A3 $46EEW  $2E $A1 $4A5AW  $2E $A3 $4704W
             $2E $A1 $4A5CW  $2E $A3 $4779W  $90 $90 $90

#Jump table
%patch $4A45 $C3 $5600W  $5600W  $5600W  $5620W  $560AW  $560AW
                 $560AW  $5620W  $5600W  $5620W  [$0190W  $FE70W]
                 [$0000W]

Keen 3

#Keen can shoot up and down using the ^v keys
%patch $1B4A $90 $90 $2E $A1 $7D0CW  $8B $1E $BA $96 $D1 $E3 $2E $FF $A7 $804BW
                 $2E $A1 $805FW  $2E $A3 $7D0CW  $EB $08 $2E $A1 $805DW  $2E
             $A3 $7D0CW  $2E $A1 $8061W  $2E $A3 $7D22W  $2E $A3 $7D95W  $EB
             $1B $2E $A1 $8061W  $2E $A3 $7D0CW  $2E $A1 $805DW  $2E $A3 $7D22W
             $2E $A1 $805FW  $2E $A3 $7D95W  $90 $90 $90

#Jump table
%patch $8048 $C3 $1B5BW  $1B5BW  $1B5BW  $1B7BW  $1B65W  $1B65W
                 $1B65W  $1B7BW  $1B5BW  $1B7BW  [$0190W  $FE70W]
                 [$0000W]


Control Keen's shot angle with up and down arrow keys

This patch allows keen to "tune" his shot angle by pressing up or down. When up or down is released, the variable returns to its default value. This patch overwrites the code that checks for pg up, pg down, end and insert, so these keys will be unavailable. Another side effect is the border flash when a Vorticon is shot is disabled. This patch works best with the control change patch above that let's Keen shoot with the spacebar. (Since pressing three keys to shoot is tricky.)

The jump table section of the patch can be completely ignored. (It is technical.) The variable being changed, (Keen's shot's vertical speed.) is highlighted in brown.

Note the five blue values; the first is the maximum upwards angle, the second the rate of upwards change per keypress, the third the maximum upwards angle, the fourth the rate of downwards change per keypress and the fifth is the 'neutral value' (The value when no keys are being pressed.) The second and fourth values must be a simple fraction of the first and fourth (E.g one half, one third, one quarter...) and must not be larger than them, or problems will occur.

In this patch Keen can fire only straight ahead (no keys pressed) up 15 degrees (up key pressed) or down 15 degrees (down key pressed.) If the rate changes are made smaller then Keen has more leeway. If for example they are half of the maximum rate Keen can shoot across, up at 8 degrees, up at 15 degrees and so on. (However getting the exact angle can be tricky.)

If intending to stick with this basic setup the exact angle of Keen's shot can be determined by taking the max up/down value, multiplying by $2D and dividing by $190 (Keen's horizontal shot speed.) So in this patch $40 * $2D / $190 = $0E (14 degrees). Altering the min\max values will alter this angle.

The original page discussing this patch is here: #http://keenmodding.org/viewtopic.php?t=1229 Note that the Keen 1 patch will be incompatible with any other patches that use the $55EF line to free up space, such as the 'breeze patch', so check your patchfile before adding this patch.

Keen 1

#Change Keen's firing angle by using ^v keys in-game.
%patch $55EF $90 $90 $2E $A1 {$46EEW}  $8B $1E $CA $7F $D1 $E3 $2E $FF $A7 $4A48W
                 $3D [$FFC0W]  $7C $16 $05 [$FFC0W]  $EB $0D $3D [$0040W]  $7F $0C
             $05 [$0040W]  $EB $03 $B8 [$0000W]  $2E $A3 {$46EEW}  $E9 $001DW

#Jump table
%patch $4A45 $C3 $5600W  $5600W  $5600W  $5614W  $560AW  $560AW
                 $560AW  $5614W  $5600W  $5614W

Keen 3

#Change Keen's firing angle by using ^v keys in-game.
%patch $1B4A $90 $90 $2E $A1 {$7D0CW}  $8B $1E $BA $96 $D1 $E3 $2E $FF $A7 $804BW
                 $3D [$FFC0W]  $7C $16 $05 [$FFC0W]  $EB $0D $3D [$0040W]  $7F $0C
             $05 [$0040W]  $EB $03 $B8 [$0000W]  $2E $A3 {$7D0CW}  $E9 $001DW

#Jump table
%patch $8048 $C3 $1B5BW  $1B5BW  $1B5BW  $1B6FW  $1B65W  $1B65W
                 $1B65W  $1B6FW  $1B5BW  $1B6FW


Ammo

These patches relate to what Keen uses as ammo.


What Keen needs to shoot

By default Keen needs raygun shots to shoot (See Patch:Game stats.), without them he cannot shoot. But it is possible to make him use other things instead. Keen can also shoot if he has negative ammo. In the patch below the game stat is marked in brown and the number in blue. (The second brown value is a jump condition, changing it to '$90 $90' will mean Keen doesn't need ammo at all to shoot.)

Keen 1

#What Keen needs to shoot
%patch $3E2D  {$AAC8W}  [$00] {$74}

Keen 2

#What Keen needs to shoot
%patch $6C6F  {$9ADEW}  [$00] {$74}

Keen 3

#What Keen needs to shoot
%patch $74D7  {$9D48W}  [$00] {$74}


Infinite ammo

This patch skips the 'ammo check'; this means that Keen can shoot as many times as he wants no matter how many shots he has. It is also combined on the second line with the 'don't lose a shot' patch below so that Keen doesn't loose a shot each time he shoots (This is optional but prevents Keen getting a negative number of shots which can look odd.)

Keen 1

#Infinite ammo
%patch $3E2B  $EB $05
%patch $3E3B  $90 $90 $90 $90

Keen 2

#Infinite ammo
%patch $6C6D $EB $05
%patch $6C7D $90 $90 $90 $90

Keen 3

#Infinite ammo
%patch $74D5 $EB $05
%patch $74E4 $90 $90 $90 $90


Infinite ammo IF Keen has a raygun

This patch has a slightly different effect than the one above. Keen can shoot as much as he likes, IF he has a raygun. It works by stopping Keen losing a shot when he shoots, meaning that while he can't shoot when he has 0 shots, as soon as he gets even a single raygun he can shoot as much as he wants without it running out.

Keen 1

#Infinite ammo IF Keen has a raygun
%patch $3E3B  $90 $90 $90 $90

Keen 2

#Infinite ammo IF Keen has a raygun
%patch $6C7D $90 $90 $90 $90

Keen 3

#Infinite ammo IF Keen has a raygun
%patch $74E4 $90 $90 $90 $90


What decreases when Keen shoots

By default Keen loses 1 ammo each time he shoots. It is possible to make something increase when Keen shoots, or change what is decreased. (See Patch:Game stats.)

Keen 1

#What Keen needs to shoot
%patch $3E3D  {$AAC8W}

Keen 2

#What Keen needs to shoot
%patch $6C7F  {$9ADEW}

Keen 3

#What Keen needs to shoot
%patch $74E6  {$9D48W}


Keen has an ammo limit

This patch sets a limit as to how many shots Keen can have. It is incompatible with all other $0AF2 using patches without modification.

If Keen has equal or more ammo than the limit then the raygun tile will be taken, but no ammo added to Keen. The first blue value is the limit, the second how many shots are given per raygun tile. Note that using this patch means that there is no need to use the above patches altering what the raygun gives (They will in fact break this patch.)

Keen 1

#Keen has ammo limit of 100
#If ammo tile, go to new ammo code
%patch $44A0 $E9 $C650W

#New ammo code
%patch $0AF2 $C3 $83 $3E {$AAC8W}  [$64] $7D $05 $83 $06 {$AAC8W}  [$05] $E9 $39A3W


Ammo limit and unique sound

This patch is similar to the above. However getting the raygun can have a different sound from the pogo (see sound section.) and the raygun will not make a sound if Keen is above the ammo limit. (To make the raygun make a sound even when not giving Keen ammo change $7D $0E to $7D $05.) The unique sound is the third blue value and in this patch is unchanged from the default sound (same as the pogo.)

Note that using this patch means that there is no need to use the above patches altering what the raygun gives (They will in fact break this patch.) It is also incompatible with all other $0AF2 using patches without modification.

Keen 1

#Keen has ammo limit of 100
#If ammo tile, go to new ammo code
%patch $44A0 $E9 $C650W

%patch $0AF2 $C3 $83 $3E {$AAC8W}  [$64] $7D $0E $83 $06 {$AAC8W}  [$05] $B8 [$000AW]
             $50 $E8 $B3EDW  $44 $44 $E9 $39AFW


Machine gun shooting patch

This patch lets Keen spawn a constant stream of shots. It makes his shot count meaningless. Removing the last line results in a 'flamethrower' effect where bullets will destroy each other, limiting their range. (But this can look a bit odd, shots can 'escape' and behave like normal shots.)

The first line increases Keen's shot rate, the second line stops Keen losing shots and the third stops the 'out of ammo' sound being played. Any line can be removed at the patcher's whim.

Keen 1

#Keen has a Machine Gun!
%patch $3E24 $90 $90
%patch $3E3B $90 $90 $90 $90
%patch $3E5B $90 $90 $90
%patch $46F3 [$3360W] #Optional last line

Keen 2

#Keen has a machine gun
%patch $6C66 $90 $90
%patch $6C7D $90 $90 $90 $90
%patch $6C9D $90 $90 $90
%patch $7452 [$61A2W] #Optional last line

Keen 3

#Keen has a machine gun
%patch $74CC $90 $90
%patch $74E4 $90 $90 $90 $90
%patch $7503 $90 $90 $90
%patch $7D11 [$6A00W] #Optional last line


Keen's gun has recoil

This patch makes Keen slide backwards whenever he shoots (recoil.) Note that the Keen 1 patch will be incompatible with any other patches that use the $55EF line to free up space, such as the 'breeze patch', so check your patchfile before adding this patch.

There are two variables controlling the recoil; the first is the 'wait after shooting time' that controls how long Keen uses his shooting animation for (How long before he can shoot again.); if this is too small or the recoil too large the recoil will be 'cut short', so this variable will need to be increased. The second is the actual recoil, making this larger or smaller will alter how much Keen is pushed back. Both values are marked in blue.

Keen 1

#Give Keen's gun recoil:
%patch $3E6A [$1E]         #Wait time after shot
%patch $3E52 $E9 $179CW
%patch $55EF $EB $4A $56 $57 $BE [$0030W]  $BF $00 $02 
             $A1 $4C $60 $3D $00 $00 $7E $04 $F7 $DE $F7 $DF $89 $36
             $40 $82 $89 $3E $3C $82 $5F $5E $83 $C4 $08 $E9 $E840W


Stop Keen shooting

This patch stops Keen from shooting entirely, though he will still use the shooting animation when he presses the shoot keys. (This can also be easily patched.)

Keen 1

#Remove shooting entirely:
%patch $3E24 $EB

Keen 3

#Remove shooting entirely:
%patch $74CC $EB


Stop Keen making shots

This patch prevents Keen from producing shots. He will still lose one ammo, make the shooting sound and use the shooting animation, but no shot will appear.

Keen 3

#Stop Keen making bullets (Frees $7CD8-$7D)
%patch $74F8 $90 $90 $90


Keen's shooting animations

Keen does not have one single shooting animation, but rather several depending on what keys are pressed and in what order.

Keen 1

#Keen shooting animations
%patch $3B61 [$0014W]  #Shooting right (ctrl + alt: normal)
%patch $3B69 [$0015W]  #Shooting left (ctrl + alt: normal)

%patch $3C7E [$0014W]  #Shooting right (ctrl -> alt)
%patch $3C86 [$0015W]  #Shooting left (ctrl -> alt)

%patch $3DF7 [$0014W]  #Shooting right (ctrl -> alt while jumping)
%patch $3DFF [$0015W]  #Shooting left (ctrl -> alt while jumping)

%patch $402C [$0014W]  #Shooting right (alt -> ctrl while pogoing)
%patch $4034 [$0015W]  #Shooting left (alt -> ctrl while pogoing)

%patch $40DA [$0014W]  #Shooting right (alt\ctrl at same time)
%patch $40E2 [$0015W]  #Shooting left (alt\ctrl at same time)

Keen 3

#Keen shooting animations
%patch $720F [$0015W] #Keen presses ctrl and alt at same time
%patch $7207 [$0014W] #Keen presses ctrl and alt at same time

%patch $732A [$0015W] #Keen moves then presses ctrl and alt
%patch $7332 [$0014W] #Keen moves then presses ctrl and alt

%patch $749F [$0015W] #Keen jumping left and shooting together (Ctrl pressed Then alt)
%patch $74A7 [$0014W] #Keen jumping right and shooting together (Ctrl pressed Then alt)

%patch $76D9 [$0015W] #Keen pogoing left and shooting (alt pressed first, then ctrl)
%patch $76D1 [$0014W] #Keen pogoing right and shooting (alt pressed first, then ctrl)

%patch $7788 [$0015W] #Keen presses alt then ctrl quickly, but not at same time 
%patch $7780 [$0014W] #Keen presses alt then ctrl quickly, but not at same time


Don't change animations when unable to shoot

This patch changes things so that Keen will not use the shooting animation when he has no ammunition. (Though if standing he will occasionally use the first frame of the jumping sequence if keys are pressed in the right order. This is a minor issue.) If Keen can shoot however he will use the shooting animations.


Keen 1

#Don't change Keen's animations when unable to shoot
%patch $3B56 $EB $13     #Normal 1
%patch $3C73 $5D $C3     #Normal 2
%patch $3DEC $5E $5D $C3 #Jumping
%patch $4021 $EB $13     #Two-button


Complete shooting Keen code

This is the complete code used by Keen when he enters his shooting behavior. This includes code used when he does not in fact have any ammunition and code to turn him back into standing Keen. It contains and is thus incompatible with most of the patches on this page.

The end of the first line\start of the second tests whether Keen's shooting rate timer is 0; this is part of what sets the shooting rate. If it is not Keen cannot shoot. It is also checked to see if it is equal or less than 1, which is rather redundant. The next check, at the end of line 2, is for ammunition; if Keen has 0 ammo the code skips the bullet production and goes to line 5. (Playing sound $24, the 'no ammo' sound.)

At the start of line 3 sound $0C, the shooting sound, is played and his ammo variable decreased by 1. Keen's position variables are loaded and passed on to the shot creation code at the end of line 4.

Line 5 is where shooting and no ammo codes combine. Sound $24 is played if no ammunition and Keen's shot timer is set to 1. Next Keen's frame timer is checked (that is, how long he has been using the shooting animation for.) If it is larger than $1E (The shooting rate) then the game checks to see if the two shooting keys (By default ctrl and alt) are being held down. If they are, nothing happens otherwise Keen returns to standing (Behavior $3867W) The combined effect of this is Keen can only shoot every $1E game ticks but will hold the shooting posture if the shooting keys are held down.

Line 8 onwards does some rather pointless stuff. Keen's horizontal speed is checked and if not 0 is set to 0 in a very convoluted manner. (Especially since his speed is often set to 0 before he shoots.)

Keen 1

#Keen's shooting behavior code
%patch $3E12 $55 $8B $EC $A1 $824AW  $03 $06 $5B14W  $A3 $824AW  $83 $3E {$824CW}
                 [$00] {$75} $40 $3D [$0001W]  {$7E} $3B $83 $3E {$AAC8W}  [$00] {$74} $25
             $B8 [$000CW]  $50 $E8 $80BAW  $44 $44 $FF $0E {$AAC8W}  $FF $36 $822AW
                 $FF $36 $8228W  $FF $36 $8226W  $FF $36 $24 $82 $E8 $0868W 
             $83 $C4 $08 $EB $09 $B8 [$0024W]  $50 $E8 $8095W  $44 $44 $C7 $06
             {$824CW}  [$0001W]  $83 $3E {$824AW}  [$1E] {$7E} $14 $83 $3E {$7FCCW}  [$00]
             {$75} $0D $83 $3E {$7FCEW}  [$00] {$75} $06 $C7 $06 $8252W  {$3867W}  $83
             $3E {$8240W}  [$00] {$7E} $18 $B8 [$FFFFW]  $50 $E8 $ED0BW  $44 $44 $83
             $3E {$8240W}  [$00] {$7D} $25 $C7 $06 {$8240W}  [$0000W]  $EB $1D $83 $3E
             {$8240W}  [$00] {$7D} $16 $B8 [$0001W]  $50 $E8 $ECECW  $44 $44 $83 $3E
             {$8240W}  [$00] {$7E} $06 $C7 $06 {$8240W}  [$0000W]  $E8 $ED6AW  $E8 
         $EDAAW  $E8 $F49FW  $5D $C3


Shooting kills Keen

It is possible to make it so that when Keen attempts to shoot, he instead dies. It is covered on the Keen dying page.