Patch:Difficulty Level

From KeenWiki
(Redirected from Patch:Hard Difficulty)
Jump to navigation Jump to search

The difficulty level is a parameter in Keen Galaxy and Dreams that determines how hard the resulting game is. There are three difficulties, easy, normal and hard. In Keen Dreams the only difference is that enemies recover from being a Wilted Flower faster. In Keen Galaxy there are more effects, some enemies appear only on harder levels, more enemies spawn, Keen's pogo height is reduced and it is possible to code entire sprite behaviors that work only on higher difficulty.

This page covers patches that relate to the difficulty level and what is different between them. Note that in Galaxy the difficulty is a single value with a value of 1 (easy) 2 (normal) or 3 (hard).


Difficulty text in Status window

The status window is displayed in-game when Keen presses enter. It shows what difficulty the current game is being played at. This is done by checking the difficulty and displaying a different set of text for each. It may be wise to investigate Patch:Jump conditions when looking at this patch.

There are two subsections, the first gives the text and text calls for the status window, the second the check which determines which text is shown. This means there are two ways to change the text displayed, firstly alter the check or secondly alter the text calls.

Keen 4

#Status window difficulty text check
%patch $7ECD $7A6CW $3D $0001W  $74 $0C #Easy
                    $3D $0002W  $74 $15 #Medium
                    $3D $0003W  $74 $1E #Hard

Difficulty text in status window

#Keen 4 :
%patch $7EE1  [$063AW] #Text called from
%patch $2F4AA "Easy" $00

%patch $7EEF  [$063FW] #Text called from
%patch $2F4AF "Normal" $00

%patch $7EFD  [$0646W] #Text called from
%patch $2F4B6 "Hard" $00


#Keen 5 :
%patch $7EAC  [$05B6W] #Text called from
%patch $308F6 "Easy" $00

%patch $7EBA  [$05BBW] #Text called from
%patch $308FB "Normal" $00

%patch $7EC8  [$05C2W] #Text called from
%patch $30902 "Hard" $00


#Keen 6 :
%patch $7C11  [$05AAW] #Text called from
%patch $312DA "Easy" $00

%patch $7C1F  [$05AFW] #Text called from
%patch $312DF "Normal" $00

%patch $7C2D  [$05B6W] #Text called from
%patch $312E6 "Hard" $00


Difficulty selection menu

This is the menu right before a new game starts. In this menu the player is asked to select a difficulty level for the game.

Keen 4

#Text read from:
%patch $1F936 $47E6W #Easy
%patch $1F948 $47F6W #Normal
%patch $1F95A $4808W #Hard

#Text
%patch $33656 "BEGIN EASY GAME" $00
%patch $33666 "BEGIN NORMAL GAME" $00
%patch $33678 "BEGIN HARD GAME" $00

Keen 5

%patch $3412F "BEGIN EASY GAME" $00
%patch $3413F "BEGIN NORMAL GAME" $00
%patch $34151 "BEGIN HARD GAME" $00

Keen 6

%patch $34F90 "BEGIN EASY GAME" $00
%patch $34FA0 "BEGIN NORMAL GAME" $00
%patch $34FB2 "BEGIN HARD GAME" $00


Skip difficulty menu, only one difficulty

This patch skips the difficulty selection menu, selecting 'New Game' simply sends the player to the map. The value $0006W sets the new game's difficulty as 'normal', 5 is easy while 7 is hard. I using this patch all new games will have the same difficulty, essentially removing difficulty as a selectable game mechanic. (Difficulty can still be altered in other ways however.)

Keen 4

#Skip difficulty menu, games start on normal
%patch $1FD80 $0001W $0000W $0031W $48BFW $0006W $00000000L  $0000W $0000W


Reduce number of difficulty options

It is possible to reduce the number of difficulty options to 2 or 1 by using one or the other of the following patches. Each line reduces the number of options by 1, starting with the hard difficulty. The options will be completely absent with no text or option of moving the highlighted menu option.

Keen 4

#Reduce number of difficulty options in selection menu to 1
%patch $1F942 $0000W

#Reduce number of difficulty options in selection menu to 2
%patch $1F954 $0000W


Game always has same difficulty level

This patch makes the difficulty always normal, no matter what is selected at the difficulty selection screen. This negates the need for most difficulty patches, but does not eliminate the selection window. This patch sets the game difficulty to the same level as the demo difficulty. (Normal by default.) This can be changed on the second line of the patch.

Keen 4

#Difficulty always the same as demo difficulty
%patch $61DE $0B
%patch $61EE [$0002W]


Difficulty of demos

This patch alters the default difficulty level of demos both when recording and playing them. By default all demos are recorded\played on normal difficulty mode. Making this something aside from the difficulty will result in a difficulty level of 0, which can have some side effects. (It can also make the demo levels drastically different from actual gameplay.) See also: Patch:Game stats.

Note that if a demo is played back on a different difficulty level than it was recorded the demo may degrade and do unexpected things.

Keen 4

#Demo difficulty level
%patch $61EC {$7A5CW} [$0002W]


Difficulty of demo mode game

By default the demo mode game will always have a difficulty of 2

This patch changes the default difficulty of demo mode. (Not to be confused with game demos.) By default this is 2, or normal difficulty. 1 is easy, 3 is hard and other values may cause unexpected problems. The first value is for levels started after the first game started, the second for the first game started only.

Keen 4

#Difficulty of demo mode
%patch $3EF6 [$0002W]
%patch $5209 [$0002W]


Amount of shots given by Neural Stunners

This changes the amount of shots a raygun gives Keen on easy, medium and hard. This is controlled by a list which is called several times potentially allowing the creation of several kinds of ammunition. See also Patch:Neural stunner.

Keen 4

#Call ammo list
%patch $CD69 $13D4W #Ammo sprites got
%patch $CFDE $13D4W #Ammo tiles got
%patch $F9E2 $13D4W #Keen swimming related?

#Ammo stunners give Keen
%patch $30246 [$0008W] #Easy
              [$0005W]  #Medium
              [$0005W]  #Hard

Keen 5

#Ammo stunners give Keen
%patch $315F4 [$0008W]  #Easy
              [$0005W]  #Medium
              [$0005W]  #Hard

Keen 6

#Ammo stunners give Keen
%patch $31F7E [$0008W]  #Easy
              [$0005W]  #Medium
              [$0005W]  #Hard


Add an extra difficulty level to game

This basic patch allows the player to select an additional difficulty level in the New Game menu. This sets the difficulty level to 4, but because the game is not coded to handle this things can be a little strange. However this does allow for expanded difficulty with additional patches.

Add an extra difficulty level to game -Keen 4

#Make debug menu difficulty menu
%patch $1FD8A $1F850004RL
%patch $1F854 $0008W $0000W $0059W $0000W $0000W $1F93RW $00000000L   $0001W $0000W $0000W

#New difficulty option
%patch $1F966 $0001W $0000W $0016W $4806W $0004W $00000000L  $0000W $0000W
              $0000W $0000W $0000W $0000W $0000W $00000000L  $0000W $0000W

#Menu texts
%patch $1F948 $47F0W
%patch $1F95A $47FCW
%patch $33656 "EASY GAME" $00
              "NORMAL GAME" $00
              "HARD GAME" $00
              "ULTRA HARD GAME" $00

#Rearrange difficulty selection code to include a 4th option
%patch $1CD08 $63
%patch $1CCC1 $2F
%patch $1CCF3 $C7 $06 $474AW  $0004W  $5D $CB

#Status screen has four difficulties
%patch $2F590 "Ultra Hard" $00
%patch $7ED3 $0F $3D $0002W  $74 $0F $3D $0003W  $74 $0F $B8 $0720W  $EB $0D
             $B8 $063AW  $EB $08 $B8 $063FW  $EB $03 $B8 $0646W  $50 $9A
         $19310EBDRL     $83 $C4 $02 $EB $0D

#Allow 4 'number of shots given' options
%patch $CD69  $13D2W #Ammo sprites got
%patch $CFDE  $13D2W #Ammo tiles got
%patch $30244 [$0008W] #Easy
              [$0005W] #Medium
              [$0005W] #Hard
              [$0002W] #Ultra Hard

Add an extra difficulty level to game -Keen 5

#Make debug menu difficulty menu
%patch $20C1A $206E0004RL
%patch $206E4 0008W $0000W $0044W $0000W $0000W $207CRW $00000000L   $0001W $0000W $0000W

#New difficulty option
%patch $207F6 $0001W $0000W $0016W $3E0FW $0004W $00000000L  $0000W $0000W
              $0000W $0000W $0000W $0000W $0000W $00000000L  $0000W $0000W

#Menu texts
%patch $207D8 $3DF9W
%patch $207EA $3E05W
%patch $3412F "EASY GAME" $00
              "NORMAL GAME" $00
              "HARD GAME" $00
              "ULTRA HARD GAME" $00

#Rearrange difficulty selection code to include a 4th option
%patch $1DCA4 $60
%patch $1DC5E $2F
%patch $1DC90 $C7 $06 $3D66W  $0004W  $5D $CB

#Status screen has four difficulties
%patch $30B21 "Ultra Hard" $00
%patch $7E9E $0F $3D $0002W  $74 $0F $3D $0003W  $74 $0F $B8 $07E1W  $EB $0D
             $B8 $05B6W  $EB $08 $B8 $05BBW  $EB $03 $B8 $05C2W  $50 $9A
         $1A2B0EBBRL     $83 $C4 $02 $EB $0D

#Allow 4 'number of shots given' options
%patch $C114  $12B2W #Ammo sprites got
%patch $C2F1  $12B2W #Ammo tiles got
%patch $315F2 [$0008W] #Easy
              [$0005W] #Medium
              [$0005W] #Hard
              [$0002W] #Ultra Hard

Add an extra difficulty level to game -Keen 6

#Make debug menu difficulty menu
%patch $1FBEA $1F6B0004RL
%patch $1F6B4 $0008W $0000W $000CW $0000W $0000W $1F79RW $00000000L   $0001W $0000W $0000W

#New difficulty option
%patch $1F7C6 $0001W $0000W $0016W $4280W $0004W $00000000L  $0000W $0000W
              $0000W $0000W $0000W $0000W $0000W $00000000L  $0000W $0000W

#Menu texts
%patch $1F7A8 $426AW
%patch $1F7BA $4276W
%patch $34F90 "EASY GAME" $00
              "NORMAL GAME" $00
              "HARD GAME" $00
              "ULTRA HARD GAME" $00

#Rearrange difficulty selection code to include a 4th option
%patch $1C976 $62
%patch $1C930 $2F
%patch $1C962 $C7 $06 $414AW  $0004W  $5D $CB

#Status screen has four difficulties
%patch $314EC "Ultra Hard" $00
%patch $7C03 $0F $3D $0002W  $74 $0F $3D $0003W  $74 $0F $B8 $07BCW  $EB $0D
             $B8 $05AAW  $EB $08 $B8 $05AFW  $EB $03 $B8 $05B6W  $50 $9A
         $18F80EBDRL     $83 $C4 $02 $EB $0D

#Allow 4 'number of shots given' options
%patch $BF04  $124CW #Ammo sprites got
%patch $C0D8  $124CW #Ammo tiles got
%patch $31F7C [$0008W] #Easy
              [$0005W] #Medium
              [$0005W] #Hard
              [$0002W] #Ultra Hard