Patch:High Scores (Vorticons)

From KeenWiki
Jump to navigation Jump to search

This page deals with patches that relate to the high scores in Keen Vorticons. In Keen Vorticons, the High scores have two main components, the main level screen where they are displayed, and the window that appears when the player gets a high score. This second component is part of the game over sequence and is treated on that page. There is also the default score names, a list of three names used to build the high scores when no SCORES.CKx file is found. As such this page will be divided into two main sections; the default score names and the high scores window.


High scores screen

In Keen Vorticons, the high score screen is what is used to display the high scores. This is in the main menu level and shows a list of scores and names as well as some bitmaps. Keen 1 shows ship part tiles got and Keen 2 number of cities saved.


Location of screen in Main Menu level

The high score screen is located int he same level as the Main Menu, but at a different location. This location (horizontal and vertical) is defined by four variables. The biggest two define the location in sixteens of tiles. (This a value of 5 is 5*16 or 80 tiles across the level.) The smaller two variables are in 256ths of a pixel meaning that on1 pixel is $100.

Given these rather odd units the default location of the high scores is 80 tiles plus 64 pixels (= 84 tiles) horizontal and 0 + 32 pixels (= 2 tiles) vertical.

Location of screen in Main Menu level

#Location of screen in Main Menu level - Keen 1
%patch $9A31 [$0005W] #Horizontal location in 16 tile units
%patch $9A2B [$4000W] #Added horizontal location in pixels
%patch $9A3D [$0000W] #Vertical location in 16 tile units
%patch $9A37 [$2000W] #Added vertical location in pixels

#Location of screen in Main Menu level - Keen 2
%patch $940E [$0005W] #Horizontal location in 16 tile units
%patch $9408 [$4000W] #Added horizontal location in pixels
%patch $941A [$0000W] #Vertical location in 16 tile units
%patch $9414 [$2000W] #Added vertical location in pixels

#Location of screen in Main Menu level - Keen 3
%patch $A22B [$0005W] #Horizontal location in 16 tile units
%patch $A225 [$4000W] #Added horizontal location in pixels
%patch $A237 [$0000W] #Vertical location in 16 tile units
%patch $A231 [$2000W] #Added vertical location in pixels


Names, Scores, Parts, etc

The high score table has at least three bitmaps used to head the various columns of the high score table. each entry in the high score table has a figure (or tile) in these columns.


Bitmaps used for high scores

There are three of four bitmaps used in the high score screen. The first is the screen's title while the other two or three are the titles of various columns in the high score table. It is possible to alter what bitmaps are used and where they are located.

Bitmaps used for high scores

#Bitmaps used for high scores - Keen 1
%patch $9875 [$0003W] #High Scores
%patch $9887 [$0004W] #Name
%patch $9899 [$0005W] #Score
%patch $98AB [$0006W] #Parts

#Bitmaps used for high scores - Keen 2
%patch $92F6 [$0003W] #High Scores
%patch $9308 [$0004W] #Name
%patch $931A [$0005W] #Score
%patch $932C [$0006W] #Cities

#Bitmaps used for high scores - Keen 3
%patch $A14D [$0003W] #High Scores
%patch $A15F [$0004W] #Name
%patch $A171 [$0005W] #Score


Locations of bitmaps

As with most position patches in Keen Vorticons the horizontal location is in 8 pixel blocks while the vertical position is in pixels.

Locations of bitmaps in high score table

#Locations of bitmaps - Keen 1
%patch $9879 [$0007W] #Vertical position: High scores
%patch $987D [$000FW] #Horizontal position: High scores
%patch $988B [$002CW] #Vertical position: Name
%patch $988F [$0009W] #Horizontal position: Name
%patch $989D [$002CW] #Vertical position: Score
%patch $98A1 [$0017W] #Horizontal position: Score
%patch $98AF [$002CW] #Vertical position: Parts
%patch $98B3 [$0021W] #Horizontal position: Parts

#Locations of bitmaps - Keen 2
%patch $92FA [$0007W] #Vertical position: High scores
%patch $92FE [$000FW] #Horizontal position: High scores
%patch $930C [$002CW] #Vertical position: Name
%patch $9310 [$0009W] #Horizontal position: Name
%patch $931E [$002CW] #Vertical position: Score
%patch $9322 [$0017W] #Horizontal position: Score
%patch $9330 [$002CW] #Vertical position: Cities
%patch $9334 [$0021W] #Horizontal position: Cities

#Locations of bitmaps - Keen 3
%patch $A151 [$0007W] #Vertical position: High scores
%patch $A155 [$000FW] #Horizontal position: High scores
%patch $A163 [$002CW] #Vertical position: Name
%patch $A167 [$0009W] #Horizontal position: Name
%patch $A175 [$002CW] #Vertical position: Score
%patch $A179 [$0017W] #Horizontal position: Score


Don't show bitmaps

These patches remove one or more bitmaps from the high score screen. Each line removes on bitmap. All patches are independent of each other.

Don't show bitmaps in high scores

#Don't show bitmaps in high scores - Keen 1
%patch $9874 $EB $10 #High Scores
%patch $9886 $EB $10 #Name
%patch $9898 $EB $10 #Score
%patch $98AA $EB $10 #Parts

#Don't show bitmaps in high scores - Keen 2
%patch $92F5 $EB $10 #High Scores
%patch $9307 $EB $10 #Name
%patch $9319 $EB $10 #Score
%patch $932B $EB $10 #Cities

#Don't show bitmaps in high scores - Keen 3
%patch $A14C $EB $10 #High Scores
%patch $A15E $EB $10 #Name
%patch $A170 $EB $10 #Score


Number of entries in high scores

This is the number of entries in the high score table. The current maximum is 7 entries and any smaller number is allowed. Notice that the player can still get a high score even if it is not displayed on the table.

Number of entries in high scores

#Number of entries in high scores - Keen 1
%patch $9A18 $07

#Number of entries in high scores - Keen 2
%patch $93F5 $07

#Number of entries in high scores - Keen 3
%patch $A213 $07


Where things are horizontally on each entry of the high score table

These patches control the horizontal locations of items in each entry of the high scores. each value is in 8 pixel blocks from the left edge of the screen.

Where items are horizontally on each entry of the high score table

#Where items are horizontally on each entry of the high score table -Keen 1
%patch $99EE [$1D] #Scores
%patch $9A03 [$09] #Names
%patch $991E [$0E] #Battery
%patch $9951 [$0F] #Joystick
%patch $9984 [$10] #Vacuum
%patch $99B7 [$11] #Whiskey

#Where items are horizontally on each entry of the high score table -Keen 2
%patch $93CB [$1D] #Scores
%patch $93E0 [$09] #Names

#Where items are horizontally on each entry of the high score table -Keen 3
%patch $A1EB [$22] #Scores
%patch $A1FF [$0E] #Names


Names and\or scores use the other kind of text

In Keen Vorticons there are two kinds of 8x8 text that can appear in a window, 'normal' and 'white'. These patches change the high score screen so that the score or name in each entry uses the second kind of writing instead of the first. Each line is independent.

Keen 1

#Highscore text uses white backgrounded writing
%patch $99FA $E8 $C8D5W #Score
%patch $9A10 $E8 $C8BFW #Name


Keen 1 ship parts

If Keen has acquired any of the ship parts during he game in which the high score was obtained, this will be recorded in the high scores window a line of up to 4 ship parts tiles. Note that the locations of the ship parts are covered in the locations section above.

This patch changes the ship tiles used. By default the tiles will animate, using the next three frames. This allows the high scores to animate tiles that don't animate in-game.

Keen 1

#Change high score table item tiles
%patch $992A  [$00DDW] #Joystick
%patch $995D  [$00EDW] #Battery
%patch $9990  [$00F1W] #Vacuum cleaner
%patch $99C3  [$00F5W] #Whiskey bottle


Ship parts tiles don't animate

This patch stops the ship parts tiles from animating, though they will still appear.

Keen 1

#Stop the high score items animating 
%patch $9929 $B8 #Joystick
%patch $995C $B8 #Battery
%patch $998F $B8 #Vacuum
%patch $99C2 $B8 #Whiskey


Always show parts items

This patch changes things so that the parts items always appear in the high scores, whether or not they were obtained during that player's run.

Keen 1

#Always show item (whether picked up or not)
%patch $9900 $90 #Joystick
%patch $9937 $90 #Battery
%patch $9969 $90 #Vacuum cleaner
%patch $999D $90 #Whiskey


Never show parts items

This patch changes things so that the parts items never appear in the high scores, whether or not they were obtained during that player's run.

Keen 1

#Don't show the four items (Whether they have been picked up or not)
%patch $9928 $90 #Joystick
%patch $995B $90 #Battery
%patch $998E $90 #Vacuum cleaner
%patch $99C1 $90 #Whiskey


Default score names

When Keen is run with no SCORES.CKx file present, score entries are read from a default list of three names (default score is 100). The list thus repeats twice. (6 scores.)


Score file to look for\write to

Before the game creates a set of default scores it checks to see if the 'score read' file (plus game extension) is present. If not, default scores are created. When the game is quit another file 'score write' is created or updated. By default both of these filenames are the same, if they are not scores behave in odd ways. See Patch:Files and filenames.

Keen 1 scores files

#Load scores from
%patch $7921  [$28E2W]
%patch $15932 "SCORES." $00

#Save scores to
%patch $8AEE  [$2AB6W]
%patch $15B06 "SCORES." $00

Keen 2 scores files

#Load scores from
%patch $7D3D  [$2D4AW]
%patch $1A4CA "SCORES." $00

#Save scores to
%patch $85A5  [$2D95W]
%patch $1A515 "SCORES." $00

Keen 3 scores files

#Load scores from
%patch $8652  [$2D84W]
%patch $1C5A4 "SCORES." $00

#Save scores to
%patch $9478  [$2E37W]
%patch $1C657 "SCORES." $00


Default scores

By default all default score entries have a score of 100. The value of this can be changed. The score has two variables, the 'low' and 'high'; the high variable is multiplied by 65535 and added to the low.

Keen default scores values

#Keen 1:
%patch $7A12 [$0064W] #Low
%patch $7A18 [$0000W] #High

#Keen 2:
%patch $7E22 [$0064W] #Low
%patch $7E28 [$0000W] #High

#Keen 3:
%patch $872C [$0064W] #Low
%patch $7732 [$0000W] #High


Number of different default names and name text

The score names are loaded as a single block of text that is then cut up into a number of names of a certain length. By default a block of text $2D (45) letters long is loaded cut up into 3 names of length $0F (15).

If the number of names exceeds the block of text some names will be blank. All names will be the same maximum length with their actual length depending on how many letters are in the name. (By default these are 5, 7 and 6 letters.) Name length includes any terminal $00s. Names repeat in sequence until the required number of high score entries is filled.

Keen 1

#Default high score entries
%patch $7931 [$28EFW] #Block location
%patch $7935 [$002DW] #Block length
%patch $7A31 [$0003W] #Number of names
%patch $7A37 [$000FW] #Name length

#Default highscore names
%patch $1593F "Yorpy    " $00
%patch $1594E "Gargile  " $00
%patch $1595D "Zzapp!   " $00

Keen 2

#Default high score entries
%patch $7D4D [$2D57W] #Block location
%patch $7D51 [$002DW] #Block length
%patch $7E41 [$0003W] #Number of names
%patch $7E47 [$000FW] #Name length

#Default highscore names
%patch $1A4D7 "Yorpy    " $00
%patch $1A4E6 "Gargile  " $00
%patch $1A4F5 "Zzapp!   " $00

Keen 3

#Default high score entries
%patch $8662  [$2D91W] #Block location
%patch $8666  [$002DW] #Block length
%patch $874B [$0003W] #Number of names
%patch $8751 [$000FW] #Name length

#Default highscore names
%patch $1C5B1 "Yorpy    " $00
%patch $1C5C0 "Gargile  " $00
%patch $1C5CF "Zzapp!   " $00