Patch:High Scores (Galaxy)
This page deals with patches involving the high scores, the level they are displayed in and any messages related to them or acquiring one. Related patches are Patch:Main menu and Patch:Game over. Patches relating to high score filenames can be found in Patch:Files and filenames. Patches involving Keen's score itself can be found in Patch:Score.
Highscore demo
This is a special demo played showing the high scores. It must be at the top-leftmost corner of the level and not move off the starting screen. It does not show the demo sprite or the 'Demo' loading window like other demos. See also, Patch:Demo.
Highscore demo number
Related to the above section, the highscore demo number is the demo used for the highscores. By default it is the highest demo number possible.
Highscore demo number
#Keen 4
%patch $5C34 [$0004W]
#Keen 5
%patch $5C08 [$0004W]
#Keen 6
%patch $5A08 [$0004W]
Don't play highscroe demo in demo loop
This patch stops the highscore demo being shown in the main menu demo loop. All the ordinary demos will play, but not the special one showing the high scores. The demo will play when Keen gets a new high score, or quits his game however.
Don't play highscroe demo in demo loop
#Don't play high score demo in demo loop - Keen 4
%patch $3C51 $90 $90 $90 $90 $90
#Don't play high score demo in demo loop - Keen 6
%patch $3C32 $90 $90 $90 $90 $90
Don't play highscore demo when a game is quit or new high score is obtained
Separate from the above patch this prevents the highscore demo being played when a game is quit. Instead the player will be sent to the title screen.
Don't play highscore demo when a game is quit or new high score is obtained
#Don't play highscore demo when a game is quit or new high score is obtained - Keen 4
%patch $3C7D $90 $90 $90 $90 $90
#Don't play highscore demo when a game is quit or new high score is obtained - Keen 6
%patch $3C5E $90 $90 $90 $90 $90
What is ranked in High Scores
These patches control what is ranked in the High Scores. By default this is the two score variables (and in Keen 4 the number of Council Members saved.)but this can be anything.
To rank a single word variable (Such as Keen's shots) the second score variable should be set to $0000W.
Keen 4
#High scores variables -win game
%patch $6B07 {$7A5EW} #Members saved
%patch $6B0B {$7A52W} #Score 1
%patch $6B0F {$7A50W} #Score 2
#High scores variables -game over
%patch $6BAC {$7A5EW} #Members saved
%patch $6BB0 {$7A52W} #Score 1
%patch $6BB4 {$7A50W} #Score 2
Don't Ever Add New Highscore
This patch stops Keen's score ever being entered into the high scores table. That is, the scores the game starts with cannot be changed. Alternatively entering a new name can be disabled; this allows new scores to be added, but their name field will always be blank.
Keen 4
#Don't ever add Keen's score to high scores
%patch $6BB6 $90 $90 $90 $90 $90
#Don't ask for player's name for new highscore
%patch $5C11 $90 $90 $90 $90 $90
Default score names
In galaxy you can alter the default highscore entries. These are written when the CONFIG.CKx file is absent (That is, when settings are reset.) They are basically just copied from the executable, starting at a specific location that is referenced no less than 7 times by the game, all of which should match.
Keen 4
#Defaults read from
%patch $5A09 {$43C4W}
%patch $5B58 {$43C4W}
%patch $5B63 {$43C4W}
%patch $5B89 {$43C4W}
%patch $5C06 {$43C4W}
%patch $194FF {$43C4W}
%patch $196A9 {$43C4W}
#Names:
%patch $33234 "Id Software - '91" $00
%patch $33274 " " $00
%patch $332B4 "Jason Blochowiak " $00
%patch $332F4 "Adrian Carmack " $00
%patch $33334 "John Carmack " $00
%patch $33374 "Tom Hall " $00
%patch $333B4 "John Romero " $00
%patch $333F4 " " $00
#Points: (10'000)
%patch $3326E [$00002710L]
%patch $332AE [$00002710L]
%patch $332EE [$00002710L]
%patch $3332E [$00002710L]
%patch $3336E [$00002710L]
%patch $333AE [$00002710L]
%patch $333EE [$00002710L]
%patch $3342E [$00002710L]
#Number of council members saved:
%patch $33272 [$0000W]
%patch $332B2 [$0000W]
%patch $332F2 [$0000W]
%patch $33332 [$0000W]
%patch $33372 [$0000W]
%patch $333B2 [$0000W]
%patch $333F2 [$0000W]
%patch $33432 [$0000W]
Keen 5
#Defaults read from
%patch $5A07 {$3A16W}
%patch $5B22 {$3A16W}
%patch $5B2D {$3A16W}
%patch $5B53 {$3A16W}
%patch $5BD5 {$3A16W}
%patch $1A49D {$3A16W}
%patch $1A647 {$3A16W}
#Names:
%patch $33D56 "Id Software - '91" $00
%patch $33D96 " " $00
%patch $33DD6 "Jason Blochowiak " $00
%patch $33E16 "Adrian Carmack " $00
%patch $33E56 "John Carmack " $00
%patch $33E96 "Tom Hall " $00
%patch $33ED6 "John Romero " $00
%patch $33F16 " " $00
#Points: (10'000)
%patch $33D90 [$00002710L]
%patch $33DD0 [$00002710L]
%patch $33E10 [$00002710L]
%patch $33E50 [$00002710L]
%patch $33E90 [$00002710L]
%patch $33ED0 [$00002710L]
%patch $33F10 [$00002710L]
%patch $33F50 [$00002710L]
Keen 6
#Names:
%patch $34AF4 "Id Software - '91" $00
%patch $34B34 " " $00
%patch $34B74 "Jason Blochowiak " $00
%patch $34BB4 "Adrian Carmack " $00
%patch $34BF4 "John Carmack " $00
%patch $34C34 "Tom Hall " $00
%patch $34C74 "John Romero " $00
%patch $34CB4 " " $00
#Points: (10'000)
%patch $34B2E [$00002710L]
%patch $34B6E [$00002710L]
%patch $34BAE [$00002710L]
%patch $34BEE [$00002710L]
%patch $34C2E [$00002710L]
%patch $34C6E [$00002710L]
%patch $34CAE [$00002710L]
%patch $34CEE [$00002710L]
Number of high scores
There are two values that govern how many high scores are displayed; the first controls how many are shown, the second how many default scores there are. It should be noted that when changing this the vertical position of the new highscore name box will probably have to be altered also. (See bottom of page.)
Number of high scores
#Number of high scores -Keen 4
%patch $5AB7 [$08]
%patch $5BAA [$08]
#Number of high scores -Keen 5
%patch $5A84 [$08]
%patch $5B74 [$08]
#Number of high scores -Keen 6
%patch $588E [$08]
%patch $597E [$08]
Position of names and scores
There are several things that are positioned in the High scores screen. The first is the vertical location of the table itself on the screen. The remaining two variables are how far right the names and scores columns are. (In Keen 4 there is a third column, see the next section. Notice that Keen 4's column is moved left by 16 pixels to make room for the Saved column.)
Keen 4
#Position of names and scores
%patch $5A16 [$0033W] #Vertical location of table
%patch $5A1F [$0018W] #Horizontal position of names column
%patch $5A9A [$0128W] #Horizontal position of scores column
Keen 5
#Position of names and scores
%patch $5A12 [$0023W] #Vertical location of table
%patch $5A1B [$0028W] #Horizontal position of names column
%patch $5A69 [$0118W] #Horizontal position of scores column
Keen 6
#Position of names and scores
%patch $581C [$0033W] #Vertical location of table
%patch $5825 [$0028W] #Horizontal position of names column
%patch $5873 [$0118W] #Horizontal position of scores column
Keen 4 'Saved' column appearance
By default in Keen 4 there are three columns to the high scores. The middle column records how many Council Members were saved by Keen by displaying a certain 8x8 tile on the screen for each member saved. This variable can be changed (E.g. to difficulty level) or removed entirely.
The horizontal position is in pixels and is simple enough. The 8x8 tile used however is more complex; the actual tile is tile $28 (40) but the value used here is $47 (71) As such changing the tile used roughly requires the modder to change the value by 2 for each 1 tile change desired, and even then it is easily possible to get 'nonsense tiles' displayed. Finally the 8x8 tiles are placed 8 pixels apart. Closer than this and they start to overlap, further and there is space between them.
Keen 4
#Members saved column
%patch $6BAC {$7A5EW} #What game variable is displayed
%patch $5A2E [$0098W] #Horizontal position
%patch $5A38 [$0047W] #8x8 tile used
%patch $5A50 [$08] #8x8 tile separation
Don't display Members saved
This patch removes the members saved tiles from the high scores, making them behave like the Keen5\6 scores.
Keen 4
#Don't show Members saved in High Scores
%patch $5A36 $25
What level a new High Score is entered in
By default a new high score is entered at 0,0 in Level 19, 15 or 18 (Keen 4, 5 and 6 respectively.). It can however be any valid level, including an extra level set up only for the High Scores. (By default the High score level can be 'completed' like a normal level.) This is separate from the highscore demo level which will play immediately after the score has been entered.
The second set of patches are less useful; they makes the high score be entered into 0,0 of the level the player has died or quit the game in. (Meaning each level will require a screen's worth of high score entry tiles to be set up.)
Level high scores are entered in
#Level high scores are entered in -Keen 4
%patch $5BC0 [$0013W]
#Level high scores are entered in -Keen 5
%patch $5B8A [$000FW]
#Level high scores are entered in -Keen 6
%patch $5994 [$0012W]
High scores are entered at 0,0 in the level the player died\quit in
#High scores are entered at 0,0 in the level the player died\quit in - Keen 4
%patch $5BC6 $90 $90 $90 $90 $90
#High scores are entered at 0,0 in the level the player died\quit in - Keen 5
%patch $5B90 $90 $90 $90 $90 $90
#High scores are entered at 0,0 in the level the player died\quit in - Keen 4
%patch $599A $90 $90 $90 $90 $90
Entering a new highscore name
When Keen enters a new high score name there are several variables that matter. The first two are the vertical and horizontal locations of the entered text. The second is how long the name can be both in characters and in pixels. (The limit to the name length will be whichever is smaller, most names for example won't be the limit of 57 characters but instead will be pixel-limited.)
Keen 4
#Name entry position
%patch $5BE4 [$0033W] #Vertical
%patch $5BED [$0018W] #Horizontal
#Maximum length of highscore name in...
%patch $5BF0 [$0070W] #...pixels
%patch $5BF4 [$0039W] #...characters
Keen 5
#Name entry position
%patch $5BB3 [$0023W] #Vertical
%patch $5BBC [$0028W] #Horizontal
#Maximum length of highscore name in...
%patch $5BBF [$0070W] #...pixels
%patch $5BC3 [$0039W] #...characters
Keen 6
#Name entry position
%patch $5BB8 [$0033W] #Vertical
%patch $59C1 [$0028W] #Horizontal
#Maximum length of highscore name in...
%patch $59C4 [$0070W] #...pixels
%patch $59C8 [$0039W] #...characters