Patch:Status Window (Dreams)

From KeenWiki
Jump to navigation Jump to search

The status window also known as the status box or status screen is a window with text in it that shows the player's current status, their score, what items they have collected and so on. It appears when space is pressed.

Since they are constructed differently each series has its own page for patches relating to its status window: Patch:Status Window (Vorticons) and Patch:Status Window (Galaxy).


This patch disables the status window entirely; pressing space will have no effect whatsoever.

Disable status window

#Disable status window
%patch $44E8 $EB $22

Key that brings up window

This patch alters which key brings up the status window. It uses a scancode value, in this case E48A + (2 * 39) = E4FC. The example patch below it alters this key to be the enter key as it is in Galaxy games.

Status window key

#Status window key
%patch $44EA $E4FCW

#Enter brings up status window
%patch $44EA $E4C2W

Play sound when window appears

This patch allows a sound to play when the status window appears, at the cost of the last line of 'text' in the window, a 'move down a line' command that doesn't seem to have any effect. The sound used here is $0004W, the sound Keen makes when throwing a Boobus Bomb. This can be easily altered.

Play sound when Status Window appears

#Play sound when Status Window appears
%patch $3E8E  [$0004W]  $50 $9A $10BB1282RL

What is displayed

Editing the window is relatively simple once it is understood how it works. The window displays two sorts of things, 8x8 unmasked tiles and text. One of these is composed of letters of varying size, the other of 8x8 blocks. Both are drawn sequentially, that is, altering the position of something will alter the position of everything drawn after it.

Note that the same piece of text, $0A $00 (Which moves the text down a line.) is used in several places and altering it will drastically alter the appearance of the status window.

Keen Dreams status window

#Status window - size
%patch $3CD0  [$0007W] #Height
%patch $3CD4  [$0016W] #Width

#Status window - stats
%patch $3D3B {$7126W} #Lives
%patch $3DB5 {$711EW} #Bombs
%patch $3E30 {$711AW} #Extra Keen high
%patch $3E34 {$7118W} #Extra Keen low
%patch $3E80 {$7122W} #Keys

#Status window - tiles
%patch $3D0B [$001AW] #Leftmost Keen's helmet tile
%patch $3D1F [$001BW] #Rightmost Keen's helmet tile
%patch $3D2A [$0008W] #Number of pixels right second tile is

%patch $3D54 [$0020W] #Top-left Boobus Bomb tile
%patch $3D68 [$0021W] #Top-right Boobus Bomb tile
%patch $3D73 [$0008W] #Number of pixels right TR tile is
%patch $3D7F [$0022W] #Bottom-left Boobus Bomb tile
%patch $3D86 [$0008W] #Number of pixels down BL tile is
%patch $3D96 [$0022W] #Bottom-right Boobus Bomb tile
%patch $3D9D [$0008W] #Number of pixels right BR tile is
%patch $3DA4 [$0008W] #Number of pixels down BR tile is

%patch $3DFF [$001AW] #Leftmost Next helmet tile
%patch $3E13 [$001BW] #Rightmost Next helmet tile
%patch $3E1E [$0008W] #Number of pixels right second tile is

%patch $3E50 [$0018W] #Leftmost key tile
%patch $3E64 [$0019W] #Rightmost key tile
%patch $3E6F [$0008W] #Number of pixels right second tile is

#Status window - text pointers
%patch $3CE0  [$0377W] #Text called from, 'status'
%patch $3D49  [$0385W] #Text called from, $0A $00 after # of lives
%patch $3DC3  [$0385W] #Text called from, $0A $00 after # of bombs
%patch $3DE9  [$0387W] #Text called from 'next'
%patch $3E3F  [$0385W] #Text called from, $0A $00 after next Keen at
%patch $3E8E  [$0385W] #Text called from, $0A $00 after next # of keys

%patch $23DE7 "Status Window" $00
%patch $23DF5 $0A $00
%patch $23DF7 "Next " $00

Don't display bomb counter

This first line of this patch simply removes the bomb counter. The second line centers the key counter on the second line to make the window look more symmetrical. It is optional.

Keen Dreams status window

#Don't display Bomb counter
%patch $3D53 $EB $78

#Center key counter
%patch $3E4C $90 $90 $90

Window has a different border

It is possible to make the status window use a different set of 8x8 tiles for its border. This patch is on the 'text windows' page.