Patch:F10 W Cheat

From KeenWiki
Jump to navigation Jump to search

The F10 + W or warp level cheat in Keen Galaxy and Dreams allows the player to play any level they wish. The selected level will be loaded and played as if accessed from the map. (This oddly enough includes the map level.) There is an upper limit to what levels the cheat can access. (The high scores level for example is off limits.)


Cheat window

These patches affect the cheat window and text. The text location is how far down from the window top, in pixels, the text is drawn. Setting this to 0 will draw the text at the very top of the window.

Keen 4

#Level warp
%patch $777B [$0003W]  #Window height
%patch $777F [$001AW]  #Window width
%patch $778E [$06]     #Text location
%patch $7790 [$05A8W]  #Text called from

#Text
%patch $2F418 " Warp to which level(1-18):" $00

Keen 5

#Level warp
%patch $7730 [$0003W] #Window height
%patch $7734 [$001AW] #Window width
%patch $7743 [$06]    #Text location
%patch $7745 [$0524W] #Text called from

#Text
%patch $30864 " Warp to which level(1-18):" $00

Keen 6

#Level warp
%patch $7550 [$0003W] #Window height
%patch $7554 [$001AW] #Window width
%patch $7563 [$06]    #Text location
%patch $7565 [$0520W] #Text called from

#Text
%patch $31250 " Warp to which level(1-18):" $00

Keen Dreams

#Warp to level cheat
%patch $3911 [$0003W]  #Height
%patch $3915 [$001AW]  #Width
%patch $3926 [$010FW]  #Text read from

#Text
%patch $23B7F "  Warp to which level(0-16):" $00


Show the window but don't allow level warping

This patch shows the cheat window and allows the payer to enter text, but won't warp the player to another level. This is done by setting the range of levels the cheat can warp to to 0.

F10-W doesn't warp to levels

#F10-W doesn't warp to levels -Keen 4
%patch $77E5 $EB

#F10-W doesn't warp to levels -Keen 5
%patch $779A $EB

#F10-W doesn't warp to levels -Keen 6
%patch $75BA $EB


Show the window but don't allow entering text

This patch works identically to the one above but stops the player from being able to enter a level number or any other text into the window. As such not only can they not warp levels, they cannot interact with the cheat at all.

F10-W doesn't warp to levels

#F10-W doesn't warp to levels or allow text -Keen 4 (Frees $77B3-$780D)
%patch $77A0 $9A $1D060A9BRL      $9A $14600EDFRL     $B8 $0001W $5F $5E $8B
             $E5 $5D $CB


Complete window code

This is the complete window\cheat code for the F10-W cheat. The first line contains the two conditions that need to be met to activate the cheat. The first is the 'W' key being pressed. Setting this to $C647, $BCAF, $C7D5 or $E48A (in Keen 4, Keen 5, Keen 6 and Keen Dreams respectively.) will disable the cheat. The second is the 'game state' and stops the cheat being activated during demos.

On the second line the window's size is set up and on the third the text is called. ($06 is how far down from the window top the text is placed, in pixels.)

Line 5 contains a variable that controls how many digits the player can enter into the cheat window. (In this case 2.) Line 9 contains the maximum and minimum level the warp cheat can access (see section below.) as well as setting the level state to 4 to exit the level and enter a new one.

The code is nearly identical for all three Galaxy games.

Keen 4

#Complete warp level cheat code
%patch $7761 $83 $3E $C669W  [$00] {$75} $03 $E9 $008FW  $83 $3E $C631W  [$00] {$75}
             $03 $E9 $0085W  $9A $1D060999RL     $B8 [$0003W]  $50 $B8 [$001AW]
             $50 $9A $19311070RL     $83 $C4 $04 $83 $06 $A535W  [$06] $B8 [$05A8W]
                 $50 $9A $19310CF9RL     $83 $C4 $02 $9A $1D060A9BRL     $33
             $C0 $50 $B8 [$0002W]  $50 $B8 [$0001W]  $50 $33 $C0 $50 $B8 $7A88W 
             $50 $FF $36 $6022W  $FF $36 $6020W  $9A $19311205RL     $83 $C4
             $0E $F7 $D8 $1B $C0 $40 $89 $46 $FE $83 $7E $FE $00 $75 $21 $B8
             $7A88W  $50 $9A $000015CFRL     $83 $C4 $02 $8B $F8 $0B $FF {$7E}
             $0F $83 $FF [$12] {$7F} $0A $89 $3E $7A68W  $C7 $06 {$7A70W}  [$0004W]
             $B8 $0001W  $5F $5E $8B $E5 $5D $CB

Keen 5

#Complete warp level cheat code
%patch $7716 $83 $3E $BCD1W  [$00] {$75} $03 $E9 $008FW  $83 $3E $BC99W  [$00] {$75}
             $03 $E9 $0085W  $9A $1E000995RL     $B8 [$0003W]  $50 $B8 [$001AW]
             $50 $9A $1A2B106ERL     $83 $C4 $04 $83 $06 $9B9DW  $06 $B8 [$0524W]
                 $50 $9A $1A2B0CF7RL     $83 $C4 $02 $9A $1E000A97RL     $33
             $C0 $50 $B8 [$0002W]  $50 $B8 [$0001W]  $50 $33 $C0 $50 $B8 $6F88W 
             $50 $FF $36 $5520W  $FF $36 $551EW  $9A $1A2B1203RL     $83 $C4
             $0E $F7 $D8 $1B $C0 $40 $89 $46 $FE $83 $7E $FE $00 $75 $21 $B8
             $6F88W  $50 $9A $000015CFRL     $83 $C4 $02 $8B $F8 $0B $FF $7E
             $0F $83 $FF [$12] {$7F} $0A $89 $3E $6F68W  $C7 $06 $6F70W  [$0004W]
             $B8 $0001W  $5F $5E $8B $E5 $5D $CB

Keen 6

#Complete warp level cheat code
%patch $7536 $83 $3E $C7F7W  [$00] {$75} $03 $E9 $008FW  $83 $3E $C7BFW  [$00] {$75}
             $03 $E9 $0085W  $9A $1CF709A3RL     $B8 [$0003W]  $50 $B8 [$001AW]
             $50 $9A $18F81070RL     $83 $C4 $04 $83 $06 $A6C3W  $06 $B8 [$0520W]
                 $50 $9A $18F80CF9RL     $83 $C4 $02 $9A $1CF70AA5RL     $33
             $C0 $50 $B8 [$0002W]  $50 $B8 [$0001W]  $50 $33 $C0 $50 $B8 $75C4W 
             $50 $FF $36 $5B5AW  $FF $36 $5B58W  $9A $18F81205RL     $83 $C4
             $0E $F7 $D8 $1B $C0 $40 $89 $46 $FE $83 $7E $FE $00 $75 $21 $B8
             $75C4W  $50 $9A $000015CFRL     $83 $C4 $02 $8B $F8 $0B $FF $7E
             $0F $83 $FF [$12] {$7F} $0A $89 $3E $75A4W  $C7 $06 {$75ACW}  [$0004W]
             $B8 $0001W  $5F $5E $8B $E5 $5D $CB


Levels F10 + W can access

By default F10 + W can access any level except the high scores. It is possible to limit or expand the cheat's reach so that Keen either cannot access some levels (This may be desired if there are secret levels for example.) or to allow Keen to access the Hall Of Fame or extra levels added to the games. It is not possible to block arbitrary levels; only levels above a certain value may be blocked. The values in the patch below is the maximum level number that F10 + W can reach.

By default level 0 (the map) is excluded as a value of 0 is returned not only if you type '0' into the cheat window but also any invalid number-letter combination.

Note that F10 + D (record a demo) has an independent limit, and indeed in Keen 4 one cannot warp to the high scores but the level can be accessed by recording a demo.

Levels F10 + W accesses

#Levels F10 + W accesses -Keen 4
%patch $77E4 [$12]

#Levels F10 + W accesses -Keen 5
%patch $7799 [$12]

#Levels F10 + W accesses -Keen 6
%patch $75B9 [$12]

#Levels F10 + W accesses -Keen Dreams
%patch $3978 [$10]


Can access level 0

This patch allows the player to access level 0 (By default the map.) using the warp cheat. They can do this by entering '1', '0' or any invalid combination 'E.g. the letter 'h'.) As a side effect the player must enter a number 1 higher to reach a given level. (So entering '2' will warp them to level 1.)

F10 + W can access level 0

#Can access level 0 with warp cheat (Shifts level numbers up 1)
%patch $77DC $83 $FF $12 $7F $10 $89 $3E {$7A68W}  $FF $0E {$7A68W}  $90 $90


Key that activates cheat

This patch alters what key activates the level warp cheat. (See Patch:Scancodes.) By default this is 'w'. Setting this to $C647, $BCAF, $C7D5 or $E48A (in Keen 4, Keen 5, Keen 6 and Keen Dreams respectively.) will disable the cheat.

Note that two keys need to be pressed for the warp level cheat to work; the second is the 'game state' and stops the cheat being activated during demos.

Warp cheat keys

#F10 + W keys -Keen 4
%patch $7763 {$C669W} #W
%patch $776D {$C631W} #Game state

#F10 + W keys -Keen 5
%patch $7718 {$BCD1W} #W
%patch $7722 {$BC99W} #Game state

#F10 + W keys -Keen 6
%patch $7538 {$C7F7W} #W
%patch $7342 {$C7BFW} #Game state

#F10 + W keys -Keen Dreams
%patch $7538 {$E4ACW} #W
%patch $7342 {$E9EAW} #Game state


Disable

These patches disable the F10 W cheat entirely.

Keen 4

#Disable F10-W (Free $776B-$77F9)
%patch $7766 $90 $90

Keen 6

#Disable F10-W
%patch $753B $90 $90

Keen Dreams

#Disable F10-W (Free $38FA-$398B)
%patch $38F7 $E9 $0092W


Disable F10 - N, F10 - V, F10 - S and F10 - W

As well as disabling F10-N, this disables the F10-V, F10-S and F10-W cheats. It frees up significant code space for other patches.

Keen 4

#Disable F10 - N F10-S, F10-V AND F10 - W (Free $75F0-77F9)
%patch $75EF $E9 $0208W


Window has a different border

In Keen Dreams it is possible to make certain windows use a different set of 8x8 tiles for their border. This patch is on the 'text windows' page.