From KeenWiki
Jump to navigation Jump to search

This page covers patches relating to the Bips in Keen 6. It does not contain patches relating to the Bips that ride moving platforms, or their craft, Bipships, as these are separate sprites and have their own pages. Bips themselves are harmless and squashable creatures not placed into the game 'as-is'; they can only be spawned from crashed Bipships. It may however be possible to tweak the game to make the Bip a palceable enemy.

Sprite Type

There are several sprite types used by Bips and related sprites. Bipships when spawned use type 26 and Bips use sprite type 20 when produced by a crashed ship. These two types aren't used by anything else, nor do they affect any other sprite type. The crashed ship also makes smoke, which uses type 1, used by any 'misc sprite'. Finally the Bipship's shot is type 4, used for enemy projectiles. Note that the 'as-is' Bip does not have a sprite type set.

Keen 6

#Bip sprite type
%patch $11A71 $14 #Spawned from Bipship

#Bipship sprite types
%patch $117D7 $1A #Bipship
%patch $11A37 $01 #Bipship crash smoke
%patch $11918 $04 #Bipship's shot

Sprite Actions

A Bip is quite simple, action-wise. A Bip is spawned standing (Either from a Bipship or as-is). Standing Bips go to walking, a 4 frame loop which they will randomly exit by returning to standing again.

When Keen touches a Bip, it is squashed. Squashed Bips do nothing.

$29A8W  #Bip standing
$29C6W  #Bip walking 1
$29E4W  #Bip walking 2
$2A02W  #Bip walking 3
$2A20W  #Bip walking 4
$2A3EW  #Bip squished

<patch title="Bip actions>

  1. Spawned

%patch $11786 [$29A8W] #As-is (Not used) %patch $11AAB [$29A8W] #From crashed Bipship

  1. While standing

%patch $336F4 [$29C6W]

  1. While walking

%patch $33712 [$29E4W] %patch $33730 [$2A02W] %patch $3374E [$2A20W] %patch $3376C [$29C6W]

  1. When squashed

%patch $117B3 [$2A3EW]

  1. Squashed

%patch $3378A [$0000W]</syntaxhighlight>

Sprite Behavior

These are the values the Bip uses for its behavior. The Bip has only one unique behavior used when walking. This makes it randomly go to standing and move back and forth. While standing the Bip has no behavior and when squished it uses a general 'fall through the air' behavior.

Keen 6

%patch $336E8 $00000000L

%patch $33706 $10CC0A71RL
%patch $33724 $10CC0A71RL
%patch $33742 $10CC0A71RL
%patch $33760 $10CC0A71RL

%patch $3377E $08F41765RL

Speed and Jump Height

The Bip's only speed is its walking speed, defined in its animation motion. Otherwise it is still.

Animation motion

%patch $336E4 [$0000W $0000W]

%patch $33702 [$0020W $0000W]
%patch $33720 [$0020W $0000W]
%patch $3373E [$0020W $0000W]
%patch $3375C [$0020W $0000W]

%patch $3377A [$0000W $0000W]

Sprite Collision

The Bip has one collision value. It will be killed if Keen touches (squashes) it, much like the landed Skypest. A squished Bip has no collision, as expected.

Collision values

Keen 6 collision values

%patch $336EC $10CC0ACCRL

%patch $3370A $10CC0ACCRL
%patch $33728 $10CC0ACCRL
%patch $33746 $10CC0ACCRL
%patch $33764 $10CC0ACCRL

%patch $33782 $00000000L


The Bip has ten animations, one is used when standing, one when squashed and eight when walking left or right. The walking animation speeds affect the Bip's walking speed and its standing animation speed affects how long it will stand still.

Keen 6 Animations

%patch $32444 [$019EW] #Bip cache start
%patch $32494 [$01A6W] #Bip cache end

%patch $336D8 $019EW $019EW 
%patch $336E2 $001EW        #Stand around time

%patch $336F6 $01A3W $019FW
%patch $33700 $0004W        #Animation speed
%patch $33714 $01A4W $01A0W
%patch $3371E $0004W        #Animation speed
%patch $33732 $01A5W $01A1W
%patch $3373C $0004W        #Animation speed
%patch $33750 $01A6W $01A2W
%patch $3375A $0004W        #Animation speed

%patch $3376E $01A7W $01A7W
%patch $33778 $0000W        #Animation speed

Sprite-tile interaction

The Bip uses generic tile interactions. When walking or standing it uses 'stay on platforms', also used by many walking sprites. When squished it uses 'display sprite' which is even simpler.

Sprite tile interactions

%patch $336F0 $08F41831RL

%patch $3370E $08F41831RL
%patch $3372C $08F41831RL
%patch $3374A $08F41831RL
%patch $33768 $08F41831RL

%patch $33786 $08F4180ARL

Action type

The Bip's actions are simple and as such are type 0. Oddly the squished Bip is type 2.

Sprite action types

%patch $336DC [$0000W]

%patch $336FA [$0000W]
%patch $33718 [$0000W]
%patch $33736 [$0000W]
%patch $33754 [$0000W]

%patch $33772 [$0002W]

Deprotect and stick to ground

The Bip needs to stick to the ground when walking and uses a value of 1 for this variable in all its actions, suggesting that both the standing and squished Bip are considered to be 'walking' in some sense. Oddly its animations are deprotected when walking too.

Sprite deprotect, stick

%patch $336DE [$0000W $0001W]

%patch $336FC [$0001W $0001W]
%patch $3371A [$0001W $0001W]
%patch $33738 [$0001W $0001W]
%patch $33756 [$0001W $0001W]

%patch $33774 [$0000W $0001W]