Patch:Extra Keen At

From KeenWiki
Jump to: navigation, search

The 'Extra Keen At' (EKA) variable controls how many points Keen must get in order to receive an extra life. There are two systems used, one for Keen Vorticons, the other for Keen Dreams and Galaxy. The variable involved is the score, which involves Patch:Game stats. The EKA value is displayed in the status window, patches for which can be found on the Patch:Status Window (Vorticons) and Patch:Status Window (Galaxy) pages.

The patches on this page are organized by which system they use to award extra lives. The 'score' variable is also in two parts as it is a four byte value that must be divided into two two-byte values. The actual score is thus variable 1 * 65536 plus variable 2. It is possible to make the EKA respond to another variable aside from score.


Keen Vorticons

In Keen Vorticons the EKA value starts at 20'000. Every time Keen's score reaches the EKA value a life is awarded and the EKA value increases by 20'000. Thus Keen gets a life at 20'000, 40'000, 60'000 and so on points.

In the Vorticons EKA system there are a number of values that must be the same in order for the EKA to work. When an extra life is given a sound is also played.

Patch: Keen 1 EKA
%patch $0D62 $AACCW 
#What is looked at 1 (Score)
%patch $0D66 $AACAW %patch $0D8E $AACCW
#What is looked at 2 (Score)
%patch $0D92 $AACAW %patch $0FB0 $4E20W
#Score needed to get first extra Keen (20'000)
%patch $0D9C $4E20W
#Increase after every Keen got (+20'000)
%patch $0D88 $4E20W
#Increase 2 (Should be the same as above!)
%patch $0D78 $4E20W
#Increase 3 (Same as above!)
%patch $0D7D 28
#Extra keen sound
%patch $0D7C $EB $07
#Don't play sound
%patch $0DAC $AAC6W
#What EKA increases by 1 (Lives)

Patch: Keen 2 EKA
%patch $0D62 $9AE2 
#What is looked at 1 (Score)
%patch $0D66 $9AE2 %patch $0D8E $9AE2
#What is looked at 2 (Score)
%patch $0D92 $9AE2 %patch $0F5E $4E20W
#Score needed for first EK (20'000)
%patch $0D78 $4E20W
#EKA increase 1
%patch $0D88 $4E20W
#EKA increase 2 (Same as above!)
%patch $0D9C $4E20W
#EKA increase 3 (Same as above!)
%patch $0D7D 28
#Extra keen sound
%patch $0D7C $EB $07
#Don't play sound
%patch $0DAC $9ADCW
#What EKA increases by 1 (Lives))

Patch: Keen 3 EKA
%patch $0DD5 $9D4CW 
#What is looked at 1 (Score)
%patch $0DD9 $9D4AW %patch $0E00 $9D4CW
#What is looked at 2 (Score)
%patch $0E04 $9D4AW %patch $0FAC $4E20W
#Score needed to get first extra Keen (20'000)
%patch $0DEB $4E20W
#Increase after every Keen got (+20'000)
%patch $0DFA $4E20W
#Increase 2 (Should be the same as above!)
%patch $0E0E $4E20W
#Increase 3 (Same as above!)
%patch $0DF0 28
#Extra keen sound
%patch $0D7C $EB $06
#Don't play sound
%patch $0E1E $9D46W
#What EKA increases by 1 (Lives)


Disable EKA

There are two things that may be disabled, the entire EKA sequence (Increasing the variable, playing the sound, etc.) or just disabling the extra lives.

The first patch disables the entire EKA sequence and therefore overrides the second patch. The second patch allows the sequence to play but Keen gets nothing out of it, no increase in lives. (Rendering it rather pointless.)

Patch: Keen 1
#Disable EKA (Free $0D76-$0DAF)
%patch $0D74 $5D $C3
#Don't add extra life
%patch $0DAA $90 $90 $90 $90

Patch: Keen 2
#Disable EKA (Free $0D76-$0DAF)
%patch $0D74 $5D $C3
#Don't add extra life
%patch $0DAA $90 $90 $90 $90

Patch: Keen 3
#Disable EKA (Free $0DE9-$0E21)
%patch $0DE7 $5D $C3
#Don't add extra life
%patch $0E1C $90 $90 $90 $90


EKA counts Keen's deaths

This patch makes the EKA count the number of times Keen has died. (The third line starts the count at zero.) As a side effect Keen doesn't lose a life on dying. If the second line is removed then Keen can still get extra lives if he dies enough (20'000 times!) This could be tweaked to allow Keen to get 'mercy items' if he fails enough.

Patch: Keen 1
#EKA counts Keen's deaths
%patch $8041 $FF $06 $6EC2W %patch $0D74 $5D $C3 %patch $0FB0 $0000W

Patch: Keen 2
#EKA counts Keen's deaths
%patch $8446 $FF $06 $6E9EW %patch $0D74 $5D $C3 %patch $0F5E $0000W

Patch: Keen 3
#EKA counts Keen's deaths
%patch $8E00 $FF $06 $70EEW %patch $0DE7 $5D $C3 %patch $0FAC $0000W


Keen Galaxy\Dreams

In Keen galaxy the EKA value starts at 20'000, like in Vorticons. When Keen's score reaches this value a life is awarded, however the EKA value then doubles. Thus Keen gets an extra life at 20'000, 40'000, 80'000 and so on points. This is different from the Vorticons system as it becomes increasingly harder to get extra lives as the game progresses, and due to the greater abundance of points, Keen gets a larger number of lives when starting a game, thus aiding inexperienced players.


Value at game start

As noted the value is reset at the game start. (See also Patch:Game stats) If this is in some way disabled the EKA will be zero or, if a game has previously been played, the same value as in that game.

Patch: Keen 4
#Stuff Keen has at game start (Defaults)
%patch $5CBB $7A56W $0000W
#Extra Keen at score (High word)
%patch $5CC1 $7A54W $4E20W
#Extra Keen at score (Low word)


Disable EKA

These patches disable the EKA entirely meaning that although Keen starts the game with an EKA score, it never changes or does anything no matter how many points he gets.

Patch: Disable EKA
#Disable EKA -Keen 4
%patch $8AD1 $5D $CB
#Disable EKA -Keen 5
%patch $8A4D $5D $CB
#Disable EKA -Keen 6
%patch $88B5 $5D $CB


How much EKA multiplies by each cycle

These patches disable the EKA entirely meaning that although Keen starts the game with an EKA score, it never changes or does anything no matter how many points he gets.

Patch: How much EKA multiplies by each cycle
#How much EKA multiplies by each cycle -Keen 4
%patch $8B00 $0002W
#How much EKA multiplies by each cycle -Keen 5
%patch $8A7C $0002W
#How much EKA multiplies by each cycle -Keen 6
%patch $88E4 $0002W


What is increased when EKA is obtained

This patch changes what is increased by 1 each time and EKA is reached. By default this is lives.

Patch: What is increased when EKA is obtained
#What is increased when EKA is obtained -Keen 4
%patch $8AFB $7A6AW
#Lives
#What is increased when EKA is obtained -Keen 5
%patch $8A77 $6F6AW
#Lives
#What is increased when EKA is obtained -Keen 6
%patch $88DF $75A6W
#Lives


Don't increase lives at EKA

This patch stops lives increasing by 1 when an EKA is obtained. This makes the EKA rather pointless.

Patch: Don't increase lives at EKA
#Don't increase lives at EKA -Keen 4
%patch $8AF9 $90 $90 $90 $90
#Don't increase lives at EKA -Keen 5
%patch $8A75 $90 $90 $90 $90
#Don't increase lives at EKA -Keen 6
%patch $88DD $90 $90 $90 $90


EKA sound

By default the game uses sound $11 when an EKA is obtained. This is the same as he 'extra life' sound palyed when Keen acquires a 1UP item or 100 collectibles.

Patch: EKA sound
#EKA sound -Keen 4
%patch $8AEE $11
#EKA sound -Keen 5
%patch $8A6A $11
#EKA sound -Keen 6
%patch $88D2 $11


Don't play EKA sound

These patches disable the EKA sound, making it silent.

Patch: Don't play EKA sound
#Don't play EKA sound -Keen 4
%patch $8AED $EB $0A
#Don't play EKA sound -Keen 5
%patch $8A69 $EB $0A
#Don't play EKA sound -Keen 6
%patch $88D1 $EB $0A


What values are checked

By default the game checks Keen's score against the EKA value. Both of these are made from two separate variables. The score is checked once, but the EKA is involved three times. The first is against the score, the second loading for increase and the third actually increasing the EKA.

Patch: Keen 4
#What is checked
%patch $8AD9 $7A52W
#Score high
%patch $8ADD $7A50W
#Score low
#What is checked against
%patch $8AE1 $7A56W
#EKA high 1
%patch $8AE9 $7A54W
#EKA low 1
%patch $8B04 $7A56W
#EKA high 2
%patch $8B07 $7A54W
#EKA low 2
%patch $8B10 $7A56W
#EKA high 3
%patch $8B13 $7A54W
#EKA low 3

Patch: Keen 5
#What is checked
%patch $8A55 $6F50W
#Score high
%patch $8A59 $6F4EW
#Score low
#What is checked against
%patch $8A5D $6F54W
#EKA high 1
%patch $8A65 $6F52W
#EKA low 1
%patch $8A80 $6F54W
#EKA high 2
%patch $8A83 $6F52W
#EKA low 2
%patch $8A8C $6F54W
#EKA high 3
%patch $8A8F $6F52W
#EKA low 3

Patch: Keen 6
#What is checked
%patch $88BD $758AW
#Score high
%patch $88C1 $7588W
#Score low
#What is checked against
%patch $88C5 $758EW
#EKA high 1
%patch $88CD $758CW
#EKA low 1
%patch $88E8 $758EW
#EKA high 2
%patch $88EB $758CW
#EKA low 2
%patch $88F4 $758EW
#EKA high 3
%patch $88F7 $758CW
#EKA low 3