Patch:Ending sequence (Keen 5)

From KeenWiki
Jump to navigation Jump to search

The ending sequence in Keen 5 occurs after Keen has destroyed the Q.E.D.; the screen goes dark, the ending sequence of text and images plays, followed by the high scores level. The ending sequence is mostly due to a loaded text chunk that allows the game to load images and text in a defined sequence. This chunk is handled completely uniquely, not allowing the player just to scroll through it as fast as they wish, but making them wait until the page is 'ready.'

Win game on entering a specific level from map

This patch causes the game to automatically be won when the player attempts to enter a certain level from the map. Instead of playing the level entry sound the player is taken directly to the ending sequence. As a side effect this moves the level entry sound, which becomes the final blue value in the patch.

The specific level is the first blue value, on line 1. Here it is level 13, $0D. The value $000FW is what wins the game and is the level state the game is set to.

Keen 5

#Automatically win game when entering level 13:
%patch $D2E6 $0F920545RL
%patch $FE65 $55 $8B $EC $56 $8B $76 $06 $83 $3E $6F68W  [$0D] {$75} $06 $C7 $06
             $6F70W [$000FW]   $EB $0C $B8 [$000CW]  $50 $9A $196E09EFRL     $83
             $C4 $02 $5E $5D $CB

Music played during ending sequence

This is the song played in the ending sequence. Due to the way music works it is actually the level whose music is played. See Patch:Music.

Keen 5

#Ending Sequence music
%patch $EC67 $000EW

Don't change music for ending sequence

This patch prevents the ending sequence having its own music. Instead the music playing in the level where Keen won the game will continue.

Keen 5

#Don't change music for ending sequence
%patch $EC66 $EB $0A

Ready for next page images

When the current page of graphics and text has loaded and is ready for the player to press a key to move to the next page, a flashing animation of two images appears in the lower right of the page indicating this. By default this animation is of a dark\light green arrow. Both of these images and their location can be altered.

Both images must be cached first before being displayed.

Ending sequence 'page ready' animation

#Cache images for display
%patch $EC18 [$001BW] #Dark green arrow
%patch $EC24 [$001AW] #Light green arrow

#Display dark green arrow at 184,298
%patch $EC94 [$001AW] #Image
%patch $EC98 [$00B8W] #Vertical location
%patch $EC9C [$012AW] #Horizontal location

#Display lark green arrow at 184,298
%patch $ECC7 [$001BW] #Image
%patch $ECCB [$00B8W] #Vertical location
%patch $ECCF [$012AW] #Horizontal location

Animation speed

The arrow switching speed can be controlled to an extent. By default it is the quickest it can be, and this can be doubled, tripled, etc. Doing this will create a slight lag between when a key can be pressed and when the page will change, but since this will generally only be a few cycles it will be unnoticeable unless the animation speed is lengthened to ridiculous levels.

In general the values given here are in seconds, so the default switch happens once every second for both arrows.

Arrow animation speed

#Seconds each arrow displays
%patch $ECB5 [$0001W] #Dark
%patch $ECE8 [$0001W] #Light

Don't show animation

This patch stops both images being displayed when the page is ready. This can make it difficult for the player to tell when they can press a key, however in some situations it may be desirable. Using just one line of the patch will make only one image appear, which is more subtle.

Don't show ending sequence 'page ready' animation

#Don't show ending sequence 'page ready' animation
%patch $EC9F $90 $90 $90 $90 $90
%patch $ECD2 $90 $90 $90 $90 $90

Ending sequence doesn't wait for keypresses

This patch skips the animation and waiting when a page has loaded. This means that the player can do nothing once the ending sequence starts except wait for it to end. However this can be easily altered to make the ending sequence 'automatic'. By the use of timed bitmaps and texts a page can be lingered on for any desired amount of time.

Ending sequence doesn't wait for keypresses

#Ending sequence doesn't wait for keypresses
%patch $EC93 $EB $66