Patch:Save Game (Vorticons)
This page deals with patches relating to loading, saving and saved games in Keen. For saved game filenames see Patch:Files and filenames. Related patches are Patch:Main menu. This page does include patches relating to loading games, which can usually only be done from the main menu.
In Vorticons, games can be saved on the world map. They are saved to a file SAVEDx.CKx and store Keen's position on the map, levels done, ammo, parts, cities and pogo. Games are saved by pressing F5 and can be loaded from the main menu.
Remove save game option
This stops Keen from being able to save games at all. This may be useful in one-level mods or if the modder wishes to make the game completable only in a single run.
Keen 1
#Cannot save game
%patch $0D18 $EB $31
Keen 2
#Cannot save game
%patch $0D18 $EB $31
Keen 3
#Cannot save game
%patch $0DC3 $0D7EW
Saved game filenames
By default the game loads\saves to a file called SAVED?.CKx where x is the episode number and ? is replaced by the save game slot selected, 1-9. The game builds this name up by reading the first part of the filename from memory, taking the player's input (In theory it can be any key including letters.), replacing the sixth character in it then adding the extension.
In theory both save and load filenames should be the same and should use the exact same text, but due to the way the games were compiled two different but identical text strings were used instead, complicating matters.
Save\Load game filenames
#Keen 1 :
%patch $9AC4 [$30E8W]
%patch $9C5B [$30F5W]
%patch $16138 "SAVED?." $00
%patch $16145 "SAVED?." $00
#Keen 2 :
%patch $94A1 [$318CW]
%patch $9638 [$3199W]
%patch $1A90C "SAVED?." $00
%patch $1A919 "SAVED?." $00
#Keen 3:
%patch $A2BD [$3208W]
%patch $A44D [$3215W]
%patch $1CA28 "SAVED?." $00
%patch $1CA35 "SAVED?." $00
Number of save slots
By default the game allows 9 savegames at any one time. This is because the load\save windows accept the inputs 1-9 exclusively. In the standard ASCII method of input these are values between $31-$39. If this last value is reduced then the number of save slots will likewise be reduced.
Alternatively one can expand the number of save slots to 26 by using values between $41-$5A; this will allow the player to use A-Z options for almost unlimited savegames. As a side note the 'esc' key, $1B backs out of saving.
Keen 1 save slots
#Saving:
%patch $9B46 $1B #Esc 1
%patch $9B54 $1B #Esc 2
%patch $9B4A $31 #Slots start at 1...
%patch $9B4E $39 #...and end at 9
#Loading:
%patch $9CC5 $1B #Esc 1
%patch $9CCB $1B #Esc 2
%patch $9CBB $31 #Slots start at 1...
%patch $9CBF $39 #...and end at 9
Keen 2 save slots
#Saving:
%patch $9523 $1B #Esc 1
%patch $952E $1B #Esc 2
%patch $9527 $31 #Slots start at 1...
%patch $952B $39 #...and end at 9
#Loading:
%patch $96A2 $1B #Esc 1
%patch $96A8 $1B #Esc 2
%patch $9698 $31 #Slots start at 1...
%patch $969C $39 #...and end at 9
Keen 3 save slots
#Saving:
%patch $A338 $1B #Esc 1
%patch $A34A $1B #Esc 2
%patch $A33E $31 #Slots start at 1...
%patch $A344 $39 #...and end at 9
#Loading:
%patch $A4B8 $1B #Esc 1
%patch $A4BE $1B #Esc 2
%patch $A4AC $31 #Slots start at 1...
%patch $A4B2 $39 #...and end at 9
Saved/load game windows
There are several windows that appear when a game is being saved or loaded. It should be noted that a new window will not erase an old one from the screen, so it should be larger than the previous window to look neat.
Like all text patches windows have patches for their height and width, where text is read from, and the text itself. Note that for Keen 1, when altering the text, you MUST include the text read patch.
Keen 1
#Can only save on map:
%patch $9AE3 [$0003W] #Height
%patch $9AE7 [$0016W] #Width
%patch $9AF1 [$3130W] $50 $EB $10 #Text read from
#Text
%patch $16180 "You can SAVE the game" $0A
"ONLY on the World Map!" $0A
" press a key:" $00
#Which position do you want save:
%patch $9B15 [$0003W] #Height
%patch $9B19 [$0014W] #Width, (3,14! O.o)
%patch $9B23 [$3170W] $50 $EB $10 #Text read from
#Text
%patch $161C0 "Which game position" $0A
"do you want to save?" $0A
" 1-9 or ESC:" $00
#Overwrite:
%patch $9B72 [$0003W] #Height
%patch $9B76 [$0014W] #Width, (3,14! O.o)
%patch $9B80 [$31ABW] $50 $EB $10 #Text read from
%patch $161FB "That game position" $0A
"already exists!" $0A
"Overwrite it?:" $00
#Can continue from menu:
%patch $9C1E [$0003W] #Height
%patch $9C22 [$001DW] #Width
%patch $9C2C [$31DFW] $50 $EB $10 #Text read from
#Text
%patch $1622F "You can continue this game" $0A
"from the Main Menu next time" $0A
"you play. Press a key:" $00
#Load 1–9
%patch $9C7D [$0002W] #Height
%patch $9C81 [$0019W] #Width
%patch $9CA1 [$3230W] $50 $EB $07 #Text read from
#Text
%patch $16280 " Continue Which Game?" $0A
" 1-9 or ESC:" $00
#Not saved!
%patch $9CFE [$0002W] #Height
%patch $9D02 [$0019W] #Width
%patch $9D0C [$325BW] $50 $EB $07 #Text read from
#Text
%patch $162AB " That game hasn't" $0A
" been saved yet!:" $00
#Not compatible!
%patch $9D4A [$0002W] #Height
%patch $9D4E [$0019W] #Width
%patch $9D58 [$3282W] $50 $EB $07 #Text read from
#Text
%patch $162D2 "That file is incompatible" $0A
"with this version of CK:" $00
Keen 2
#Can only save on map:
%patch $94C0 [$0003W] #Height
%patch $94C4 [$0016W] #Width
%patch $94CE [$31AEW] $50 $EB $10 #Text read from
#Text
%patch $1A92E "You can SAVE the game" $0A
"ONLY on the World Map!" $0A
" press a key:" $00
#Which position do you want save:
%patch $94F2 [$0003W] #Height
%patch $94F6 [$0014W] #Width, (3,14! O.o)
%patch $9500 [$31EEW] $50 $EB $10 #Text read from
#Text
%patch $1A96E "Which game position" $0A
"do you want to save?" $0A
" 1-9 or ESC:" $00
#Overwrite:
%patch $954F [$0003W] #Height
%patch $9553 [$0014W] #Width, (3,14! O.o)
%patch $955D [$3229W] $50 $EB $10 #Text read from
%patch $1A9A9 "That game position" $0A
"already exists!" $0A
"Overwrite it?:" $00
#Can continue from menu:
%patch $95FB [$0003W] #Height
%patch $95FF [$001DW] #Width
%patch $9609 [$325DW] $50 $EB $10 #Text read from
#Text
%patch $1A9DD "You can continue this game" $0A
"from the Main Menu next time" $0A
"you play. Press a key:" $00
#Load 1–9
%patch $965A [$0002W] #Height
%patch $965E [$0019W] #Width
%patch $967E [$32AEW] $50 $EB $07 #Text read from
#Text
%patch $1AA2E " Continue Which Game?" $0A
" 1-9 or ESC:" $00
#Not saved!
%patch $96DB [$0002W] #Height
%patch $96DF [$0019W] #Width
%patch $96E9 [$32D9W] $50 $EB $07 #Text read from
#Text
%patch $1AA59 " That game hasn't" $0A
" been saved yet!:" $00
#Not compatible!
%patch $9727 [$0002W] #Height
%patch $972B [$0019W] #Width
%patch $9735 [$3300W] $50 $EB $07 #Text read from
#Text
%patch $1AA80 "That file is incompatible" $0A
"with this version of CK:" $00
Keen 3
#Can only save on map:
%patch $A2DB [$0003W] #Height
%patch $A2DF [$0016W] #Width
%patch $A2E8 [$3222W] $50 $EB $10 #Text read from
#Text
%patch $1CA42 "You can SAVE the game" $0A
"ONLY on the World Map!" $0A
" press a key:" $00
#Which position want save:
%patch $A309 [$0003W] #Height
%patch $A30D [$0014W] #Width
%patch $A316 [$3262W] $50 $EB $0E #Text read from
#Text
%patch $1CA82 "Which game position" $0A
"do you want to save?" $0A
" 1-9 or ESC:" $00
#Overwrite:
%patch $A367 [$0003W] #Height
%patch $A36B [$0014W] #Width
%patch $A374 [$329DW] $50 $EB $10 #Text read from
%patch $1CABD "That game position" $0A
"already exists!" $0A
"Overwrite it?:" $00
#Can continue from menu:
%patch $A414 [$0003W] #Height
%patch $A418 [$001DW] #Width
%patch $A421 [$32D1W] $50 $EB $0E #Text read from
#Text
%patch $1CAF1 "You can continue this game" $0A
"from the Main Menu next time" $0A
"you play. Press a key:" $00
#Load 1–9
%patch $A46F [$0002W] #Height
%patch $A473 [$0019W] #Width
%patch $A492 $22 $33 #Read text from
%patch $A49A $3A $33
%patch $1CB42 " Continue Which Game?" $0A $00
%patch $1CB5A " 1-9 or ESC:" $00
#Not saved!
%patch $A4F3 [$0002W] #Height
%patch $A4F7 [$0019W] #Width
%patch $A500 [$334DW] $50 $EB $06 #Text read from
%patch $1CB6D " That game hasn't" $0A
" been saved yet!:" $00
#Not compatible!
%patch $A53D [$0002W] #Height
%patch $A541 [$0019W] #Width
%patch $A54A [$3374W] $50 $EB $06 #Text read from
%patch $1CB94 "That file is incompatible" $0A
"with this version of CK:" $00
Press any animation
This is the little twirling blue circle displayed at the very end of the window message. it waits for Keen to press a key. Patches relating to it can be found at Patch:Press any key.
Keys used for overwrite options
If the player attempts to save a game overwriting an already existing saved game the 'overwrite' window will appear. Pressing 'Y' will overwrite the game, pressing 'N' will return to the slot selection window and any other keys will have no effect.
The 'overwrite' window displayed when the player attempts to save to a filled game slot uses an alphanumeric scancode to discern which key has been pressed. By default it responds to the 'Y' key by exiting. (All other keys close the window.) In this scheme 'A' has a value of $41, 'B' $42, etc.
Both the 'Y' key values must be the same to avoid problems. Reassigning the 'N' key causes both the 'N' key and the new key to be valid keys for declining. It is not known why.
Keen Vorticons overwrite saved game keypress patches
#Overwrite saved game keys -Keen 1:
%patch $9BAE $59 #Y
%patch $9BC1 $59 #Y
%patch $9BB2 $4E #N
#Overwrite saved game keys -Keen 2:
%patch $958A $59 #Y
%patch $959E $59 #Y
%patch $958F $4E #N
#Overwrite saved game keys -Keen 3:
%patch $A3A2 $59 #Y
%patch $A3B7 $59 #Y
%patch $A3A8 $4E #N