********** SAVED GAMES ********** %patch $16180 "You can SAVE the game" %patch $16197 "ONLY on the World Map!" %patch $161AF " press a key:" %patch $161C0 "Which game position" %patch $161D5 "do you want to save?" %patch $161EF "1-9 or ESC:" %patch $161FB "That game position" %patch $1620F "already exists!" %patch $16220 "Overwrite it?:" %patch $1622F "You can continue this game" %patch $1624B "from the Main Menu next time" %patch $16269 "you play." %patch $16273 "Press a key:" %patch $16282 "Continue Which Game?" %patch $16298 " 1-9 or ESC:" %patch $162AB " That game hasn't" %patch $162BF "been saved yet!:" See also FILES AND FILENAMES ********** SCREEN ********** #Change the Screen Mode to splitscreen %patch $6E47 $0E ********** SHOOTING ********** See also RAYGUN ------------------------------------------------------------------------------- #Keens shot spawns ?? pixels to the right of Keen #Incompatible with the multiple backgrounds patch #Call our subroutine from the correct place %patch $46CD $E8 $4C $FD #Our subroutine, Add ?? pixels to the sprite's x co-ordinate and #store it in the sprite structure. %patch $441C $83 $3E $4C $60 $00 %patch $4421 $7C $0B %patch $4423 $81 $C2 $00 $66 %patch $4427 $15 $00 $00 %patch $442A $89 $54 $04 %patch $442D $C3 %patch $442E $89 $54 $04 %patch $4431 $C3 #Create some spare space by using the multiple background patch's space %patch $4409 $B8 $14 $01 $26 $81 $3F $31 $01 $73 $03 $B8 $8F $00 $26 $89 $07 $E9 $5C $01 ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- #Give Keen's gun recoil: %patch $55EF $EB $4A #Make room %patch $3E6A $1E #Wait time after shot (Make larger for larger recoil) %patch $3E52 $E9 $9C $17 %patch $55F1 $56 $57 $BE $30 $00 #Recoil amount $BF $00 $02 $A1 $4C $60 $3D $00 $00 $7E $04 $F7 $DE $F7 $DF $89 $36 $40 $82 $89 $3E $3C $82 $5F $5E $83 $C4 $08 $E9 $40 $E8 ------------------------------------------------------------------------------- #Misc %patch $3E26 $90 #Masked tiles make it hard for keen to shoot %patch $3E2C $90 #keen can't shoot if he stomps a yorp %patch $3E33 $24 #The sound Keen uses when shooting %patch $483C $6F #Keens shot always makes ZOT %patch $46DC $00 #Keens shot height %patch $3E6A $1E #How long Keen holds gun after shooting #Remove shooting entirely: %patch $3E36 $90 $90 $90 #stop the shooting sound %patch $3E5B $90 $90 $90 #and don't play the 'click-out-of-ammo' sound %patch $3E3B $90 $90 $90 $90 #stop losing a shot [Infinite ammo] %patch $3E4F $90 $90 $90 #don't spawn a shot #Shooting and shot numbers: %patch $3E30 $90 $90 #shoot even when counter is zero %patch $9008 $10 $00 #Bullets Keen has @ start %patch $3E30 $EB #Make Keen act as if he has no shots all the time. #Keen has a Machine Gun! %patch $3E24 $90 $90 #Let Keen keep keycards when exiting a level, and set his shots to zero: %patch $4F43 $31 $C0 $A3 $C8 $AA $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 #Set Keen's shots to zero on exiting all levels %patch $4F43 $31 $C0 $A3 $9E $AA $A3 $A0 $AA $A3 $A2 $AA $A3 $A4 $AA $A3 $C8 $AA $90 $90 $90 $90 $90 $90 $90 $90 $90 $90 #Set shots to zero on exiting level xx only %patch $4F43 $31 $C0 $A3 $9E $AA $A3 $A0 $AA $A3 $A2 $AA $A3 $A4 $AA $83 $3E $04 $83 $xx $75 $03 $A3 $C8 $AA $90 $90 $90 ********** SOUND EFFECTS ********** These patches allow you to change most of the sounds in the Keen game, especially those involving sprites. Setting the value to 63 will result in no sound being played, no values above 63 are allowed. You should be able to figure out what values are for what sound by looking at the sounds on the lsit below, if not, experiment. Sounds themselves can be changed by downloading COmmander Spleen's sound modding program; see http://andy.durdin.net/keen/modding/viewtopic.php?t=450 #Sound list %patch $0D7D 28 #Extra keen %patch $1A9C 34 #Yorp death %patch $1D8E 35 #Garg death %patch $1C02 39 #Vort death %patch $1FDC 38 #Tankbot fire %patch $209B 23 #Ice cannon fire %patch $229A 19 #Icecube smash %patch $2344 39 #Chain shot %patch $2801 33 #Open door %patch $35DB 25 #Flip lightswitch %patch $3A59 4 #Keen walking %patch $3A88 5 #Keen blocked by wall %patch $3AA5 27 #Keen plummets off egdes %patch $3C3D 6 #Keen jump %patch $3D60 5 #Keen jumping blocked by wall %patch $3D75 2 #Keen lands %patch $3D87 21 #Keen jumping bump head %patch $3E33 12 #Keen shoot %patch $3E58 36 #Keen no ammo gunclick %patch $3FA4 5 #Keen pogoing blocked by wall %patch $3FD1 21 #Keen pogoing bump head %patch $42A2 8 #Keen dies %patch $43F1 9 #Keen get points %patch $447A 11 #Keen gets ship part %patch $44B2 10 #Keen gets ammo or pogo %patch $44DE 15 #Keen exits levels %patch $450B 32 #Keen gets a keycard %patch $463C 31 #Yorp stunned %patch $4691 40 #Keen frozen %patch $474A 37 #Keen's shot hits wall and Keen %patch $47BB 37 #Keen's shot hits wall and Keen %patch $4816 37 #Keen/Tank shots hit walls %patch $485F 37 #Keen's shots hit sprites %patch $4967 37 #Unknown shot hit %patch $49D3 37 #Unknown shot hit %patch $4A16 37 #Tank shots hit sprites %patch $85A0 25 #Light turning off [End sequence] %patch $85C3 25 #Light turning off [End sequence] %patch $862C 25 #Light turning on sound [Parents come in] %patch $8759 25 #Light turning off sound [Parents leave] %patch $8792 25 #Light turning on sound [Keen sneaks out] %patch $88F7 41 #Endtext appears %patch $8BBF 16 #Game over %patch $8F82 41 #Keens left (Shown on map) %patch $AC65 1 #Keen walking on map %patch $AF6C 18 #Teleporter ********** SPRITES ********** See BUTLER BOTS, GARGS, ICE CANNONS, TNAK BOTS, VORTICONS, YORPS, ZAP AND ZOT See Sprite Patches.txt for sprite editing in full ********** STATUS WINDOW ********** #Status window text %patch $14E52 " SCORE EXTRA KEEN AT " %patch $14E73 " KEENS SHIP PARTS " %patch $14E9A " RAYGUN POGO KEYCARDS " %patch $14EC7 " CHARGE " %patch $14ED9 " PLEASE PRESS A KEY " ------------------------------------------------------------------------------- #What causes the parts tiles to light up %patch $101D $94 #Joystick %patch $1049 $9C #Battery %patch $1075 $96 #Vacum %patch $10A1 $98 #Whiskey #What the byte means: $94: Joystick $96: Vaccum $98: Whiskey $9A: Pogo $9C: Battery $9E: Yellow card $A0; Red card $A2: Green card $A4: Blue card $A6: Level 1 $A8: Level 2 $AA: Level 3 $AC: Level 4 $AE: Level 5 $B0: Level 6 $B2: Level 7 $B4: Level 8 $B6: Level 9 $B8: Level 10 $BA: Level 11 $BC: Level 12 $BE: Level 13 $C0: Level 14 $C2: Level 15 $C4: Level 16 $C6: Lives $C8: Ammo $CA: Points ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- # Change the controls to: Space, shoot; Enter, status. #http://andy.durdin.net/keen/modding/viewtopic.php?t=433 %patch $1251 $48 %patch $7FA3 $48 %patch $3B23 $90 $90 $90 $90 $90 $90 $90 $80 $3E $65 $50 $00 %patch $3C4E $90 $90 $90 $90 $90 $90 $90 $80 $3E $65 $50 $00 %patch $3DB9 $90 $90 $90 $90 $90 $90 $90 $80 $3E $65 $50 $00 %patch $3DCC $90 $90 %patch $3E6D $90 $90 $90 $90 $90 $90 $90 $80 $3E $65 $50 $00 %patch $3FFC $90 $90 $90 $90 $90 $90 $90 $80 $3E $65 $50 $00 %patch $40AA $90 $90 $90 $90 $90 $90 $90 $80 $3E $65 $50 $00 ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- #Big versitile status window patch: # Patch in the long-integer drawing function %patch $11B4 $55 $89 $E5 $B8 $0A $00 $50 $B8 $90 $82 $50 $FF $76 $06 $FF $76 $04 $E8 $03 $C2 $83 $C4 $08 $B8 $90 $82 $50 $E8 $A5 $C5 $44 $44 $8B $56 $08 $29 $C2 $89 $16 $82 $82 $8B $46 $0A $A3 $F8 $82 $B8 $90 $82 $50 $E8 $E8 $50 $44 $44 $89 $EC $5D $C3 # Patch in the name of the status dialog text file, you'll need to create a file with this name and put your status # text in it or Keen will crash. An example status file can be found in this directory. %patch $13084 "STATUS.CK1" $00 # Patch in the code to draw the status text (coordinates are measure in characters--8 pixel blocks) %patch $0E6A $B8 $00 $3D $BA $34 $00 # Show status window (0E6A) $CD $21 $89 $C3 $BF $27 $00 $C6 $06 $9A $82 $00 $B9 $0A $00 $BA $90 $82 $B4 $3F $CD $21 $53 $B8 $90 $82 $50 $E8 $2E $97 $44 $44 $5B $4F $75 $E8 $B4 $3E $CD $21 $8B $46 $FE $05 $01 $00 $50 $89 # Show score (0E98) $F0 $05 $0A $00 $50 $FF $36 $CC $AA $FF $36 $CA $AA $E8 $04 $03 $83 $C4 $08 $8B $46 $FE $05 $01 $00 $50 $89 $F0 $05 $1A $00 $50 # Show extra Keen score (0EB3) $A1 $C4 $6E $8B $16 $C2 $6E $81 $C2 $20 $4E $15 $00 $00 $50 $52 $E8 $E1 $02 $83 $C4 $08 $31 $FF $3B $3E $C6 $AA $7D $29 $83 $FF # Show Keens (0ED6) $06 $7D $24 $B8 $7B $00 $50 $8B $46 $FE $05 $03 $00 $B1 $03 $D3 $E0 $90 $90 $50 $89 $F8 $D1 $E0 $05 $01 $00 $01 $F0 $50 $E8 $2C $AC $83 $C4 $06 $47 $EB $D1 %patch $0F07 $B8 $41 $01 $83 $3E $94 $AA $00 $74 # Draw the joystick $03 $B8 $3D $01 $50 $8B $46 $FE $05 $03 $00 $B1 $03 $D3 $E0 $05 $04 $00 $50 $89 $F0 $05 $10 $00 $50 $E8 $0D $AA $83 $C4 $06 $B8 # Draw the battery $42 $01 $83 $3E $9C $AA $00 $74 $03 $B8 $3E $01 $50 $8B $46 $FE $05 $03 $00 $B1 $03 $D3 $E0 $05 $04 $00 $50 $89 $F0 $05 $13 $00 $50 $E8 $E5 $A9 $83 $C4 $06 $B8 $43 $01 $83 $3E $96 $AA $00 $74 # Draw the vacuum $03 $B8 $3F $01 $50 $8B $46 $FE $05 $03 $00 $B1 $03 $D3 $E0 $05 $04 $00 $50 $89 $F0 $05 $16 $00 $50 $E8 $BD $A9 $83 $C4 $06 $B8 # Draw the whiskey $44 $01 $83 $3E $98 $AA $00 $74 $03 $B8 $40 $01 $50 $8B $46 $FE $05 $03 $00 $B1 $03 $D3 $E0 $05 $04 $00 $50 $89 $F0 $05 $19 $00 $50 $E8 $95 $A9 $83 $C4 $06 %patch $0FA7 $B8 $2E $02 $83 $3E $9E $AA $00 $74 # Keycard A $03 $B8 $A8 $01 $50 $8B $46 $FE $05 $07 $00 $B1 $03 $D3 $E0 $05 $04 $00 $50 $89 $F0 $05 $13 $00 $50 $E8 $6D $A9 $83 $C4 $06 $B8 # Keycard B $2E $02 $83 $3E $A0 $AA $00 $74 $03 $B8 $A9 $01 $50 $8B $46 $FE $05 $07 $00 $B1 $03 $D3 $E0 $05 $04 $00 $50 $89 $F0 $05 $17 $00 $50 $E8 $45 $A9 $83 $C4 $06 $B8 $2E $02 $83 $3E $A2 $AA $00 $74 # Keycard C $03 $B8 $AA $01 $50 $8B $46 $FE $05 $09 $00 $B1 $03 $D3 $E0 $05 $04 $00 $50 $89 $F0 $05 $13 $00 $50 $E8 $1D $A9 $83 $C4 $06 $B8 # Keycard D $2E $02 $83 $3E $A4 $AA $00 $74 $03 $B8 $AB $01 $50 $8B $46 $FE $05 $09 $00 $B1 $03 $D3 $E0 $05 $04 $00 $50 $89 $F0 $05 $17 $00 $50 $E8 $F5 $A8 $83 $C4 $06 %patch $1047 $B8 $0B $00 $83 $3E $9A $AA $00 $74 # Pogo stick $03 $B8 $9F $01 $50 $8B $46 $FE $05 $08 $00 $B1 $03 $D3 $E0 $05 $04 $00 $50 $89 $F0 $05 $0B $00 $50 $E8 $CD $A8 $83 $C4 $06 $8B # Draw ammo $46 $FE $05 $0B $00 $50 $89 $F0 $05 $06 $00 $50 $31 $C0 $50 $FF $36 $C8 $AA $E8 $2E $01 $83 $C4 $08 $B8 $9E $01 $50 $8B $46 $FE # Draw raygun (replace first two bytes $05 $07 $00 $B1 $03 $D3 $E0 $05 $04 $00 $50 $89 $F0 $05 $03 $00 # with $EB $1C if you don't want to $50 $E8 $95 $A8 $83 $C4 $06 # draw the raygun on the status screen) $E8 $90 $4B $31 $C0 $50 $E8 $1E $AD # Wait for a key, then return $44 $44 $E8 $81 $A6 $E8 $D1 $F1 $E8 $CE $F1 $E8 $7C $4B $8B $46 $FC $8B $56 $FA $89 $16 $35 $51 $A3 $37 $51 $5F $5E $89 $EC $5D $C3 #Locations and tiles used in the patch %patch $0E53 $0D $00 #Window height %patch $0E57 $1C $00 #Window width %patch $0E9C $01 $00 #Score Y position %patch $0EA2 $0A $00 #Score X position %patch $0EB7 $01 $00 #Extra life Y position %patch $0EBD $1A $00 #Extra life X position %patch $0EE0 $06 #Maximum number of Keens to show %patch $0EE4 $7B $00 #Sprite to use for Keens left %patch $0EEB $03 $00 #Y position of Keens %patch $0EF9 $01 $00 #X position if Keens %patch $0F08 $41 $01 #Tile for no joystick %patch $0F12 $C0 $01 #Tile for got joystick %patch $0F19 $03 $00 #Y position of Joystick %patch $0F20 $04 $00 #Joystick Y offset (pixels) %patch $0F26 $10 $00 #X position of Joystick %patch $0F30 $42 $01 #Tile for no battery %patch $0F3A $C1 $01 #Tile for got battery %patch $0F41 $03 $00 #Y position of Battery %patch $0F48 $04 $00 #Battery Y offset (pixels) %patch $0F4E $13 $00 #X position of Battery %patch $0F58 $43 $01 #Tile for no Vacum %patch $0F62 $C2 $01 #Tile for got Vacum %patch $0F69 $03 $00 #Y position of Vacum %patch $0F70 $04 $00 # Vacum Y offset (pixels) %patch $0F76 $16 $00 #X position of Vacum %patch $0F80 $44 $01 #Tile for no Whiskey %patch $0F8A $C1 $01 #Tile for got Whiskey %patch $0F91 $03 $00 #Y position of Whiskey %patch $0F98 $04 $00 # Whiskey Y offset (pixels) %patch $0F9E $19 $00 #X position of Whiskey %patch $0FA8 $0B $00 #Tile for no Keycard A %patch $0FB2 $A8 $01 #Tile for got Keycard A %patch $0FB9 $07 $00 #Y position of Keycard A %patch $0FC0 $04 $00 # Keycard A Y offset (pixels) %patch $0FC6 $13 $00 #X position of Keycard A %patch $0FD0 $0B $00 #Tile for no Keycard B %patch $0FDA $A9 $01 #Tile for got Keycard B %patch $0FE1 $07 $00 #Y position of Keycard B %patch $0FE8 $04 $00 # Keycard B Y offset (pixels) %patch $0FEE $17 $00 #X position of Keycard B %patch $0FF8 $0B $00 #Tile for no Keycard C %patch $1002 $AA $01 #Tile for got Keycard C %patch $1009 $09 $00 #Y position of Keycard C %patch $1010 $04 $00 # Keycard C Y offset (pixels) %patch $1016 $13 $00 #X position of Keycard C %patch $1020 $0B $00 #Tile for no Keycard D %patch $102A $AB $01 #Tile for got Keycard D %patch $1031 $09 $00 #Y position of Keycard D %patch $1038 $04 $00 # Keycard D Y offset (pixels) %patch $103E $17 $00 #X position of Keycard D %patch $1048 $0B $00 #Tile for no Pogo %patch $1052 $9F $01 #Tile for got Pogo %patch $1059 $08 $00 #Y position of Pogo %patch $1060 $04 $00 # Pogo Y offset (pixels) %patch $1066 $0B $00 #X position of Pogo %patch $1073 $0B $00 #Y position of ammo text %patch $1079 $06 $00 #X position of ammo text %patch $1091 $07 $00 #Y position of raygun %patch $1098 $04 $00 #Y offset of raygun (pixels) %patch $109E $03 $00 #X position of raygun ------------------------------------------------------------------------------- ********** SWITCHES AND BRIDGES ********** #Change lightswitch tile %patch $36D6 $0F $01 #Sound switch makes when flipped %patch $35DB $13 $00 #Bridge block (Affects lightswitch!) %patch $4AEE $0E $01 %patch $4B3D $0E $01 %patch $36DB $E0 $01 #This tile when flipped becomes... %patch $36E0 $ED $01 #This tile and... %patch $36FC $ED $01 #This tile when flipped becomes... %patch $3716 $E0 $01 #This tile. #Switch tiles change to the next in the tileset when flipped #Doesn't affect lightswitch; switches don't need to be the same as in Keen 2 %patch $36D5 $05 $01 $00 $26 $89 $07 $90 $90 $90 $90 $90 $90 $90 $90 $90