You are on page 1of 24


N Updates
-----------------Updates are in order of most recent first. It will be easier to
read this from the bottom up.
15 Apr 2001
At a Glance
----------- Cooperative Team mode returns (it was missing from 2001.04.01)
- You can now swap character order in Turns team mode (see readme.txt)
- Some bugfixes and speed improvements
---- CNS: Projectile controller: new parameter: projscale
scales a projectile by x,y.
- Added Cooperative Team mode (that was missing from 2001.04.01)
Selection scheme is slightly different: p1 gets first selection,
then p2. After that, p1 selects opponent team mode
- CNS: trigger: P1Name is now Name. P1Name remains an alias for
- CNS: new triggers: IsHomeTeam, AuthorName, TeamSide
- CNS: new triggers: RoundsExisted, TeamMode, NumEnemy, NumPartner
ID, PlayerIDExist
See trigger docs.
*** These triggers are deprecated to begin with. Use at your
own risk ***
- CNS: exp: new redirection keywords: enemy, enemyNear, partner,
See exp docs section VI (Trigger redirection).
*** These redirection keywords are deprecated to begin with. Use
at your own risk ***
- system.def: [Title Info] group: Added parameters for menu
customization. See data/system.def.
- fight.def: [Round] group: Added roundX.* components. You can
define your own anims/sprites to use for each round (up to
round 9).
- Turns mode: You can now swap player order within your team
before a match and between rounds. Hold forward to rotate your
team order to the next player, backwards to rotate to the last
player, and up to rotate two players (only for 4 players).
For clarity, here is the swap chart:
starting team
1 2 3 4 | 1 2 3 | 1 2
----------+---------+-----fwd: 2 3 4 1 | 2 3 1 | 2 1
back: 4 1 2 3 | 3 1 2 | 2 1
up: 3 4 1 2 |
- Command line: replaced all of -nomp3, -nomidi and -nocda options
with -nomusic


a BindToX facing parameter bug

some slowdown problems at character select screen
title BGM bug when demo starts
bug where players do nothing in demo fight

- Now using Allegro 3.9.34 (WIP)

---- Added introduction to air.txt
- Finished tutorials 3 and 4. Rewrote parts of tutorial 1 and 2.
(Look in docs/tutorial/)
---- Moved "big" motif into main distribution.
- Tools: updated sprmaker docs, added missing prompt to sprmaker.
New version for sprmaker: 0.97a
New version for tools package: 0.98a
Known issues/Notes
------------------- Storyboards lack text and sound options. These will be added
- You cannot enable more than one joystick at a time. This is a
limitation of DOS.
- Specifying an invalid font bank may cause crashes
- Hitdefs with p2stateno may not work right if 3 or more players
interact in collisions at the exact same time
- Palfx might not work if continually asserted between rounds,
such as if done in a state -2
- Helpers used as projectile replacements do not have all the desired
properties of a projectile.
- Soundcards that are not true SB16 tend to have the stereo
backwards. Set reversestereo = 1 in mugen.cfg
- Shadows and reflections will not display correctly for characters
using the AngleDraw controller.

1 Apr 2001
At a Glance
----------- New team mode! Turns mode lets you pick 2 to 4 characters per team.
If one character is knocked out, the next will enter the fight.
You can even mix team types.
- Now M.U.G.E.N supports storyboards! Game intro, character endings
and other cutscenes are now possible.
- New fight demo kicks in if game is left idle at title screen
- Joystick configuration added to options menu
---- *** Changed from previous version ***
common1.cns changed to include guard states.
Affected states: 120, 140
- *** Changed from previous version ***
system.def: Added some new parameters. Search for those labeled

as "new". [Team ?] group names renamed to [Simul ?].

- Added fight demo. When the game idles at the title screen for
some time, a demo fight will be begin between two characters.
Options are configurable in data/system.def
- Added storyboard engine. A storyboard is a script that describes
a cutscene. An example of use is for a character ending.
See storybrd docs for details.
- system.def: Storyboards added for pre-game logo, game intro,
game over, default ending and credits
- *** Changed from previous version ***
char def: Storyboards added for arcade intro and ending
See chars/kfm.def for the new groups.
- Added -storyboard option to command-line. Following argument is
filename of storyboard to play. MUGEN will play the storyboard,
then exit. Use for testing. eg.
mugen -storyboard data/kfm/credits.def
- Added joystick configuration to options screen
- BGMs: for all non-stage BGMs, you can specify a loop parameter.
eg. in system.def under [Music]:
title.bgm.loop = 0
will prevent the title music from looping
- CNS: Statedef: type, movetype and physics parameters:
Now can take "U" to leave old value unchanged. Documented in
cns.doc section III.d.
- CNS: StatetypeSet controller:
Added "physics" parameter. "value" parameter renamed to "statetype".
Old parameter name is still recognized, but may be removed in
upcoming releases
- CNS: HitFallDamage controller:
damage taken is now scaled by player's defence
- CNS: New trigger: TicksPerSecond
- Match logging: Now logs "teamX" instead of "playerX" for
single-person teams as well as multi-person teams.
- CNS: TargetState/TargetVelSet/TargetVelAdd/TargetFacing/
TargetLifeAdd/TargetPowerAdd controllers:
Added "ID" parameter.

system.def changed. Please update your motifs

Bugfix: CNS: HitDef: nochainID now works according to spec
Bugfix: Sprites in fightfx.sff are now affected by screen fades
Backgrounds: fixed jerky parallax movement for BGs with small delta-x
Some parts of code rewritten. Please report bugs that may have
been introduced, particularly in the character selection system
- Fixed bug where palette selections sometimes get changed over
the course of a match
- Fixed guarding corner pushback bug
---- New KFM motif:
Contains logo, game intro and ending credits storyboards, as well
as a replacement title screen. To run: mugen -r kfm
You can look at these files in data/kfm to see how simple
storyboards are done.
- Kung Fu Man perfected his fearsome Kung Fu Knee attack with
a follow-up kick
- Kung Fu Man adds Kung Fu Upper and Smash Kung Fu upper to his
deadly arsenal of attacks. See chars/kfm/readme.txt for his
move list.

Known issues/Notes
------------------- You cannot change character order in Turns team mode. There is
currently no provision for character intro states past round 1 in
Turns mode. Support for these features will be added later.
- Storyboards lack text and sound options. These will be added
- You cannot enable more than one joystick at a time. This is a
limitation of DOS.
- Specifying an invalid font bank may cause crashes
- Hitdefs with p2stateno may not work right if 3 or more players
interact in collisions at the exact same time
- Palfx might not work if continually asserted between rounds,
such as if done in a state -2
- Helpers used as projectile replacements do not have all the desired
properties of a projectile.
- Soundcards that are not true SB16 tend to have the stereo
backwards. Set reversestereo = 1 in mugen.cfg
- Shadows and reflections will not display correctly for characters
using the AngleDraw controller.

29 Nov 2000
- Fixed a major bug in the player caching system

18 Nov 2000
At a Glance
----------- Some bugfixes
- Minor additions to engine
---- trigger and sctrls documentation updated with new triggers
and controllers, some corrections made.
---- mugen.cfg:
[Sound]: Added cdadevice option. Selects CD-ROM device (drive).
[Misc]: Added UnloadSystem option. Set to 1 to save some memory.
- system.def: alignmt flag no longer ignored for font elements:
font = fontno, fontbank, alignmt
- Characters turn to face the enemy after KO.
- Characters turn to face the enemy whenever ctrl=1 and a
ChangeState controller is executed.
- CNS: HitDef:
New parameters:
envshake.*, fall.envshake.*, guard.kill, fall.kill
- CNS: GetHitVar trigger:
New parameters: fall.envshake.*, fall.kill

- CNS: New controller: FallEnvShake

- CNS: New trigger: DrawGame
- CNS: All palfx controllers (includes palfx parameters to HitDef)
New parameter: color
Adjusts the color level. 0 is black and white. 256 is normal.
Defaults to 256.
- CNS: AfterImage controller:
New parameters: palcolor, palinvertall. Same effect as for palfx.
- mugen.cfg: [Debug] group:
Added AllowDebugMode and AllowDebugKeys.
- mugen.cfg: [Video] group:
Added VESA3 video mode option.
- Clipboard history made to scroll. Newest text event is at the bottom of
the clipboard.
- CNS: DisplayToClipboard and AppendToClipboard:
Backslash (\) is now escape sequence. The 3 sequences recognized are:
\" - quote
\n - newline
\\ - backslash
- Fixed memory leak for parallax backgrounds (bug was introduced
in 07.31)
- Fixed bug where one extra pixel is drawn for tiled parallax
- Bug fixed: Projectiles created by helpers while the root player
is in an opponent's custom animation inherit incorrect animation
---- Kung Fu Man mastered a new attack, the Kung Fu Knee

13 Aug 2000
At a Glance
----------- Some optimizations for speed
- Added CD Audio support for BGMs
- Added Random Select to character select screen
- Many bug fixes
---- trigger and sctrls documentation updated with new triggers
and controllers, some corrections made.
---- A warning is logged if required sprites or animations are missing
- CNS: New trigger: matchno
- *** Changed from previous version ***
- system.def: [Select Info]:
New parameters: cell.random, showemptyboxes and moveoveremptyboxes

- system.sff: Added boxrand.pcx (random select icon)

Please update your motifs with the new icon.
select.def: added random selection. See comments.
*** Changed from previous version ***
Players can now cancel any state into a walk state, as long
as ctrl=1. To prevent this behavior, use the new NoWalk
AssertSpecial flag. If your character overrides the run state,
you may want to use it.
Maximum number of state changes for "State machine stuck in loop"
error increased from 5 to 500.
Recoded some input handling.
Affected areas: All player input, all menus (most changes in title,
options, training menu), key config, character selection.
Small bug in options screen fixed. Keys held down from before a
round starts now register correctly.
Please report any bugs.
CNS: Persistent vars can now persist between matches in arcade mode.
common1.cns state 5900 has been changed to reset all variables
in the first round, so you can override state 5900 to keep your
persistent variables.
CD Audio support added.
To use CDA for BGMs, the filename should be the track number, and the
extension "da". For example, Track 3 will be "3.da". See
stages/stage0.def or stages/kfm.def for a description.
Added CDAVolume and PlayCDA options to [Sound]
CNS: Helper: New parameter: facing
See sctrls docs for description.
CNS: Explod: New parameter: removeongethit
See sctrls docs for description.
*** Changed from previous version ***
CNS: HitCount trigger:
Now counts the number of frames in which a hit was registered,
not the total number of hits in that move. If this change gives you
undesired behavior in your character, use UniqHitCount instead.
CNS: New trigger: UniqHitCount
Counts the total number of hits in the current move, like
the old HitCount trigger in earlier versions of MUGEN.
select.def: Increased the number of "order" groups from
3 to 10.
CNS: AssertSpecial controller: Added new flags:
- NoBG - Background is black
- NoFG - Force foreground not to be drawn
CNS: Statedef: Added new parameter: sprpriority
You are encouraged to set attacks states to use
sprpriority = 2, so that the player will appear in
front of standing, crouching or jumping players.
Details in cns.doc.
CNS: Projectile controller:
Changed default value for sprpriority from 2 to 3.
CNS: Superpause controller updated. Can use self's anims
and sounds now. Player is now unhittable by default during
superpause. See sctrls.doc.

- CNS: Fixed Offset display update problems

- CNS: Helper offset bugs have been fixed to match its described
behavior in the sctrls docs.
- BG: Reduced memory consumption when using type = Paral
- select.def: "random" for the stagename no longer adds to the stage
select list.

- Backgrounds: fixed crashes that occur when using Parallax backgrounds

- Optimized collision detection for speed
- Debug keys no longer work unless in debug mode, except for
Ctrl-D which takes you in and out of debug mode.
(Release version only - no changes for beta testers)
- Fixed bindtoparent/bindtoroot bug, where helpers are
affected by bindings set by previous helpers.
- Fixed bug where "KOed by teammate" icon does not show up.
- Collision detection is stopped after round enters "Over"
state, ie. when players go into their win poses.
- Fixed bug where player sometimes doesn't fall when
simultaneously KOed by two attackers
- Fixed bug where playing after winning the game causes
strange behaviour (especially in team modes)
- These states in common1.cns have changed. Please make
sure your characters' state overrides are kept up to date.
0, 11, 20, 40, 100, 110 - sprpriority added

1 Jul 2000
At a Glance
----------- Game engine updates:
- Expressions support added to CNS and CMD. Gives much more
control and flexibility over character behaviour
- Lots of additions to the CNS format
- Better customizability for title screen, lifebars, etc
- Animation and text support added
- Control over layering priority and more
- Various win icons, such as "special win", "cheese win", etc
- New sound engine
- panning based on character position on screen
- better sound control
- Better camera algorithm. Less "drunkenness" on tall stages.
- More command line options
- Fixed various bugs
- Fontmaker tool added to toolset
- Updated docs. Full listing of state controllers and triggers available
*** There are compatibility issues with previous version of MUGEN.
Please see incompt2.txt
---- Most docs have been updated.
---- CNS: SuperPause controller
New parameter: "poweradd". Adds power to the player.
- CNS: HitOverride controller
New parameter: "forceair".
- Added information screen. Info screen comes up automatically
the first time you run MUGEN, or if the medium on which

MUGEN is run from is not writable (eg. CD-ROM).

- Frame skipping ability extended to all screens, not just the
fight screen.
- 4 frame upper limit imposed on auto frameskip. This means that
on slow computers, the game speed might slow down to ensure
regular screen updates.
- *** Changed from previous version ***
Stages: stage names must be encased in quotemarks
- *** Changed from previous version ***
Characters are set to a new initial state (number 5900) at
the start of each round. You can override this state
to initialize variables and helpers.
- *** Changed from previous version ***
Characters are no longer frozen during PreIntro (fade in).
Character intro states will need to account for updates
during PreIntro. Use the RoundState trigger to tell
when PreIntro is over.
For most cases, it is a simple matter of freezing the
animation while RoundState = 0.
- CNS: New trigger: HitPauseTime
- Added some options to select.def, like max matches to fight in
arcade mode, etc. Check it for details.
- Added match logging: mugen -log <logfile>
Records some match details to a file.
- *** Changed from previous version ***
AIR: Some required animations have been changed. See docs/air.txt
for details.
- *** Changed from previous version ***
SPR: 10 new required sprites. See docs/spr.txt for details.
- common.snd: Added medium and heavy fall sounds (7,1 and 7,2
- *** Changed from previous version ***
CNS: having a fall flag on a Hitdef will now force p2 to fall,
even if he is standing and the y-component of ground.velocity
is 0
- CNS: HitDef controller:
Added "HitOnce" paramater.
If set to 1, the HitDef only affects one opponent. If the hit is
successful, all other targets will be dropped.
Defaults to 0 most of the time. Only exception is if the attr parameter
is a throw type, which makes it default to 1.
- CNS: HitDef controller:
Added 'S' option to sparkno, guard.sparkno
sparkno = S500
will use anim action 500 from the player's own .air file for
the spark.
- CNS: New controller: ModifyExplod
Modifies a existing explods' parameters.
Takes all parameters that Explod takes, with the exception of anim.
In general, specifying any parameter in ModifyExplod will affect the
corresponding parameter in the existing explod.
id - the ID number of the explod(s) to change. -1 to affect all.
-1 by default.
- CNS: HitDef controller
Added parameters:

ground.cornerpush.veloff = ?
(float) velocity at which p1 is pushed back if p2 is hit while
in the corner and on the ground
Defaults to 1.3 * (x-component of guard.velocity)
air.cornerpush.veloff = ?
(float) velocity at which p1 is pushed back if p2 is hit while
in the corner and in the air
Defaults to ground.cornerpush.veloff
down.cornerpush.veloff = ?
(float) velocity at which p1 is pushed back if p2 is hit while
in the corner and in a "down" movetype state (eg. lying down)
Defaults to ground.cornerpush.veloff
guard.cornerpush.veloff = ?
(float) velocity at which p1 is pushed back if p2 guards while
in the corner and on the ground
Defaults to ground.cornerpush.veloff
airguard.cornerpush.veloff = ?
(float) velocity at which p1 is pushed back if p2 guards while
in the corner and in the air
Defaults to guard.cornerpush.veloff
- CNS: AssertSpecial controller updated
"NoShadow" flag only affects p1 now. Use "GlobalNoShadow"
to affect all players, explods and projectiles.
New flags have been added. See sctrl docs for details
- CNS: New controller: Pause
- CNS: Superpause controller
added darken, p2defmul parameters
- CNS: Explod controller
added supermovetime parameter (supermove parameter now deprecated)
added pausemovetime parameter
- CNS: Helper controller
added pausemovetime parameter
- CNS: Projectile controller
added supermovetime parameter
added pausemovetime parameter
- CNS: All PalFX controllers
added invertall parameter
See sctrl docs for details.
- *** Changed from previous version ***
All spark references have been changed from "0, anim#" to just
"anim#". For example, in a HitDef,
sparkno = 0,6
would be:
sparkno = 6
Anim numbers have changed in fightfx.air!
(with the new anim numbers, that '6' would be different too)
Here are the places that are affected in the cns files:
sparkno = 0, ??
guard.sparkno = 0, ??
type = HitDef
sparkno = 0, ??
guard.sparkno = 0, ??
All references to anims in fightfx.air should be changed
to reflect the new numbers. Check these also:

type = Explod
anim = F??
type = SuperPause
anim = ??
type = GameMakeAnim
anim = ??
- Each helper's power guage is now linked to its root's. So adding and
subtracting power in the helper's states affects the team's power.
- CNS: New trigger: Const
Returns value of one of the player's constants. See trigger documentation
for details.
- MUGEN command line format changed:
Type MUGEN -h for more info.
- *** Changed from previous version ***
Font format has been changed. You will need to download the new version of
AirView to use the new format.
- *** Changed from previous version ***
Eliminated data/select.cfg, graphics/select.sff, graphics/selectbg.sff,
Moved graphics/system.sff to data/system.sff
Renamed graphics/staticfx.* to data/fightfx.*
data/title.pcx no longer used. Title screen background def will handle it.
Character and stage list is now in data/select.def.
System information and background definitions are in data/system.def
Formats have changed! If you have made custom versions of these files
before, you'll need to update them. Please look inside system.def and
fight.def for details.
- cns: Added BGPalFx controller
Works like the PalFx controller, except it affects the background.
- cns: Added AllPalFx controller
Works like the PalFx controller, but affects everything.
- *** Changed from previous version ***
Added win icons for normal, special, super, time over and other wins.
Fight screen syntax has been standardized, and is now more customizable.
Sorry, older versions of data/fight.def are not compatible.
graphics/fight.sff moved to data/fight.sff
sound/fight.snd has been split into two files and moved.
Announcer sounds such as "round 1" are in data/fight.snd.
Shared sounds between characters, including all the hit noises, are
now in data/common.snd. The PlaySnd controller now plays sounds from
common.snd instead of fight.snd when you use the F prefix.
- *** Changed from previous version ***
Updated common1.cns:
Moved some hard-coded logic into common1.cns, such as standing, walking,
etc. If you overrode these states before, you should take a look at
common1.cns to make sure you don't miss something that was added.
Also, all references to var(9) in common1.cns have been switched to SysVar(0)
in order to prevent clashes with user variables. Please check your state
- Added resolution-doubling modes. Look under [Video] in data/mugen.cfg.
- data/mugen.cfg: QuickVS option removed. Now allowed at all times.
- CNS: New trigger: prevno
Returns the previous state number
- CNS: New trigger: GetHitVar
Format: GetHitVar(varname)
where varname is the name of the GetHit variable you request. This trigger

is mainly for common1.cns, and you should take note of its existence when
overriding gethit states.
CNS: HitDef controller: New parameter: yaccel
yaccel = y
where y is the downward acceleration you want p2 to experience if he is hit
into the air
CNS: Helper controller:
Added new parameters that allow you to override members of the [Size] group.
For example, you can override xscale with this parameter:
size.xscale = 2
CNS: TargetBind, BindToTarget controllers:
Added "ID" parameter. If set to a value that is not -1, then controller
affects only a target that was previously hit by a hitdef with a matching
"ID" parameter. Defaults to -1, meaning that it affects any target.
Use to prevent binding to incorrect targets in team mode.
- reduced "drunken camera" problem on tall stages
- added new parameter: "floortension" to [Camera] group. Is distance
of highest player from ground before camera starts to move up.
see stages/stage0.def for details.
Bug fix: music on title screen now plays at the correct volume.
If the same music file is specified between two successive screens,
such as between the title screen and select screen, then the music
does not restart between those screens.
"ReverseStereo" parameter added to [Sound] group.
"StereoEffects" parameter added to [Sound] group.
"BufferedRead" parameter added to [Misc] group.

- CNS: Redirection to "target" is now possible.

eg. trigger1 = target, pos y > 0
;Refers to first target, if any
eg. trigger1 = target(50), command = x ;Refers to 1st target with chain-ID of
In the second case above, the target should have been previously hit by
a HitDef with a parameter "ID = 50".
(Reminder: don't confuse it with the "chainID" parameter in the HitDef)
- CNS: New trigger: NumTarget
Returns the number of targets.
- CNS: AssertSpecial controller:
New flag: TimerFreeze - assert to temporarily freeze the game timer
- CNS: PlaySnd controller:
New parameters:
channel = c
(optional, int) Plays the sound on the player's sound channel c.
Only one voice may play on a particular channel at a time.
For example, if you play a sound on channel 2, then play any sound
on the same channel before the first sound is done, then by
default the first sound is stopped as the second one plays.
0 is a special channel reserved for player voices. Channel 0 voices
are stopped when the player is hit. It's recommended you play your
character's voice sounds on channel 0.
If omitted, defaults to -1, meaning it will play on any free channel.
lowpriority = ?
(optional, boolean) Only valid if channel != -1.
If this is set to 1, then a sound currently playing on that channel
(from a previous PlaySnd call) cannot be interrupted by this sound.
freqmul = f
The sound frequency will be multiplied by f. For example. f = 1.1
will result in a higher-pitched sound.
Defaults to 1 (no change in frequency).

loop = ?
Set to 1 to have the sound sample loop over and over.
Defaults to 0.
pan = p
(mutually exclusive with abspan)
This is the positional offset of the sound, measured in pixels.
If p > 0, then the sound is offset to the front of the player.
If p < 0, then sound is offset to the back.
Defaults to 0.
abspan = p
(mutually exclusive with pan)
Like pan, except the sound is panned from the center of the screen,
not from the player's position.
- CNS: New controller: StopSnd
Required parameters:
channel = c
Stops playback of a sound on channel c, if there is any. If c is
-1, then sounds on all channels are stopped, including those
belonging to other players.
- CNS: New controller: SndPan
Required parameters:
channel = c
pan = p
abspan = p
Pans a sound playing on channel c. c must be >= 0 (-1 not accepted)
See PlaySnd for description on pan and abspan parameters.
You can continually assert this controller as the player moves
across the screen, to have his sound "follow" him.
Bug fixes
--------- Explods (with ownpal = 1) and projectiles are now affected by global
palette changes, such as screen fade in and fade out
- Fixed bug where some explod shadows did not draw in the right place
- Fixed bug that causes a single hitdef to register multiple
hits in team mode
- Hitdefs that affect only one opponent now randomly select
one opponent instead of giving preference to p2
- Fixed problem where offsets of projectiles and bound targets are
updated one frame late during an EnvShake
- Fixed bug where juggles points are reset if comboing into a move
with throw attribute on the HitDef.
- camera "shake" fixed
- fixed bug where anim 5090 is not played back when it should be
- fixed bug that causes the state to be updated twice as a player turns
- fixed problem where player would sometimes not fall if hit with a
second attack right after being hit with an attack that should have
caused him to fall
- solved problem where the x-component of the velset parameter in the
StateDef is ignored for p1, if p2 is in a gethit state in the screen
corner. Old method required this strange behavior to push p1 back from
the corner when hitting p2, but now that push-back behavior is handled with
a temporary velocity variable, you do not have to worry about p1's
x-velocity being modified by attacks in the corner.
- dust is now created as explods with sprpriority = 10, preventing them
from showing up over the foreground
- Sound system was changed. Hopefully no major bugs popped up.
- Fixed bug where tabs are not recognised as whitespace.
- Fixed minor animation bug that occurs when you hit a person out of a

custom state with certain HitDefs, such as those with the "Up" animtype.
----- Sprmaker: -p option (eliminate successive palettes) now works.
You are encouraged to use this option on your stage .sff files,
as having fewer total palettes makes MUGEN run faster.
- Added Fntmaker tool
1 Jan 2000
At a glance:
- Began testing of helpers. Helpers can be used to create and control
player-type objects that have their own states. Assisting characters
such as pets can be done using helpers, but one might find other
uses too.
- Training dummy controls - Press 'M' while paused in training mode.
- Complete documentation is available for state triggers.
- Stages now support reflections for a shiny-smooth effect.
- Explods bugs have been fixed. Explods let you create simple effects.
- Lots of engine updates
Known issues
------------ Camera make shake horizontally when there are opposing players
standing very close to the tension lines on either end of the
screen. This problem goes away if one of the characters move.
- Dust is drawn over the foreground layer of a stage
- Lifebars are not very customizable, especially in team mode
- No tools are available for creating fonts
---- cns documentation has been updated. Minor points have been
clarified or elaborated on. Trigger documentation has been
moved out of cns.txt.
- full trigger documentation is in trigger.txt. We do not
have full controller documentation yet
- incompatibility issues are addressed in incompat.txt
- a html table of contents is available in docs/ as mugen.htm
---- *** changed from previous version ***
Intro is no longer held by using var9. Instead, use the new AssertSpecial
controller to assert the "Intro" flag:
[State 191, 1]
;In the intro state
type = AssertSpecial
trigger1 = Time = [0,70]
flag = Intro
More on the AssertSpecial controller below.
- *** changed from previous version ***
CNS: MakeExplod controller renamed to Explod
Lots of explod updates
- *** changed from previous version ***
Palette ordering is now:
4 5 6

1 2 3
As before, holding down start while selecting gives you the
extra palettes (palno+6)
- mugen.cfg: [Arcade] group: "AI.Cheat" added. Check mugen.cfg
for a description of it. You may want to turn this off if a
AI that cheats offends you.
- Players now cannot guard a hit that does enough guard damage to KO them.
- Triggers now allow retargeting. See trigger.txt for details.
- CNS: New controllers: Helper, DestroySelf
See incompat.txt for a mini-guide on helpers.
- CNS: New controller: HitOverride
Overrides the player's gethit state. Useful for preventing helper
characters from changing into clones of p1 if they are hit. Still
under development, so format may change.
- CNS: HitDef controller
Added new optional parameter "AffectTeam". This lets you choose who you
can hit. Valid values are "Enemy", "Friendly" and "Both". Defaults
to "Enemy" if omitted.
- CNS: Projectile controller
Added optional "projcancelanim" parameter. It is the animation to play
when the projectile is canceled out by another.
- CNS: ProjHit, ProjContact, ProjGuarded controllers
Format has changed. Please see docs/trigger.txt for more information.
- CNS: ScreenBound controller
Minor change in parameter "movecamera". It now takes two arguments,
the first for x and the second for y. For example, if you only want the
camera to follow your character horizontally but not vertically, you
would use "movecamera = 1, 0".
This defaults to 0,0 if omitted (camera does not follow at all)
- CNS: New trigger: NumExplod
Returns the number of explods belonging to the player. If you append
an ID number to the trigger name, it counts only explods with a matching
ID. For example, trigger1 = NumExplod1000 < 2
will trigger if there are fewer than 2 explods with ID 1000
- CNS: New controller: MoveHitReset
Resets MoveHit, MoveGuarded and MoveContact flags.
- CNS: New trigger: Lose
Works like the win trigger, except detects if p1's team has lost.
- CNS: Hitdef controller:
Velocity parameters can now take the letter 'n' in place of a velocity
component. This keeps the opponent's velocity unchanged when he is hit.
For example,
ground.velocity = n, -5
x-velocity is unchanged, but y-velocity is set to -5.
- CNS: [Size] group:
Added optional "shadowoffset" parameter. This is the amount by which the
shadow of the character will be offset as it is drawn. Use to prevent
characters from "floating" in the air.
- CNS: New controllers: BindToParent, BindToRoot
Binds a player's position to its parent or root.
Takes parameters:
pos = x,y
time = t
facing = f
x,y is the offset to the position you are binding to
t is the time to bind (default 1). Set to -1 to bind indefinitely
f is the direction to face relative to the parent/root. Valid values
are 1, -1 and 0. Set to 0 to ignore the parent/root's facing direction.

- CNS: New controller: BindToTarget

Takes parameters:
pos = x,y [, relpos]
time = t
x,y is the offset to the position you are binding to
The optional relpos parameter is one of {foot, mid, head}. Defaults
to "foot".
t is the time to bind (default 1). Set to -1 to bind indefinitely
For example,
pos = 5,20, head
time = 10
- CNS: Added parameters to constants: [Size] group:
head.pos = x, y ;Def: -5,-90
mid.pos = x, y ;Def: -5,-60
head.pos is the approximate position of the head of your character in one of
his light gethit frames. head.pos is the approximate position of the
midsection of your character in a light gethit frame. May be used in
the BindToTarget controller to position yourself at the corresponding
positions of the opponent. All positions are relative to the player's axis.
- Ctrl-D now cycles through all active players and helpers.
- Fixed some rounding errors in drawing sprites. You may need to check
your background and character offsets again.
- CNS: New trigger: Matchover
Returns 1 if the match has ended, 0 if not. We say a match has ended when
either side has won enough rounds necessary to proceed to the next stage.
Might be useful for win poses that only occur when a player wins a match.
- CNS: Controllers in general:
Added "ignorehitpause" paremeter. If set to 1, then that state controller
will continue to be updated during the pausetime of the player, that is,
when the player is frozen for a short time on a successful attack. Example
uses: play sounds, flash screen white, create explods, etc
Be careful not to abuse this parameter; it may cause difficult-to-trace
character problems when used incorrectly
- CNS: AfterImage controller:
Added optional "trans" parameter. Set to "add", "sub" or "add1" to
make the after images transparent.
- Stages: Added "reflect" parameter to [Shadow] group. If set to 1,
a "reflection" effect will be applied to all players, as well as their
projectiles and explods that have a non-zero shadow paremeter.
See KFM's updated stage.
- Improved loading time by pre-caching sound and graphics files. Also fixed
bug that made large sound files load very slowly
- CNS: PalFX controller:
Added optional parameter "sinadd". Creates "blinking" or "slow blinking"
effects by applying color offsets to the player's palette using sinusoidal
sinadd = r, g, b, P
r,g,b are the maximum amounts of red, green and blue to add/subtract from
the palette. P is the period of the sine wave in game ticks.
You might like to use this for fireballs that "burn" people.
- CNS: HitDef controller:
animtype, air.animtype and fall.animtype now accept "Up" as a value.
This makes the opponent go into an animation where he is knocked straight
up (anim action 5060), and then arcs over and comes down head-first
(action 5061). If you have the optional actions 5101 and 5016, these
will replace 5100 (hit ground and bounce into air) and 5105 (hit ground from
bounce) in the case of "Up" anim types.
If the opponent does not have these animations, then he will default to
the normal falling animations.

- CNS: Projectile controller:

Added "projsprpriority" parameter. It is the sprite drawing priority of
the projectile. Defaults to 2.
- CNS: New Controller: AssertSpecial
Lets you assert special flags, such as ones to keep the fight from
starting (Intro) as well ones to keep the round from ending (RoundNotOver).
Asserted flags are valid only for one game tick; for most flags, you may
need to continuously assert it over a period of time.
The required parameter is "flag", and its value must be one of:
To assert multiple flags in a single controller (up to 3), you can use
the optional parameters "flag2" and "flag3", which take the same values
as "flag".
For example, this is one you might find useful for very long win poses.
[State 181, 1]
;During the win state
type = AssertSpecial
trigger1 = Time = [0,500]
flag = RoundNotOver
- Training mode: Training dummy control added - see readme.txt
- Camera shaking slightly changed (does it look better?)
- CNS: StateDef:
Added new parameters: hitdefpersist, movehitpersist
- AIR: added new transparency mode: A1
Fades background to 50% intensity before adding the sprite.
So far all transparency functions do not work for vertically-flipped sprites
[Begin Action 1]
10,0, 0,0, 5, , A1
- Fixed problem with slow camera panning. Basically, the camera will
pan quickly if the player at the edges have an x-velocity that moves
the player towards the edge. Camera will still pan slowly if you
use PosAdd to move the players towards the edges (this is intentional)
- CNS: New trigger: palno
Gives you the palette number of the player, starting from 1.
- Projectiles:
Projectiles that have an animation action with infinite looptime (when set to
the remove state) are now immediately deleted.
Projectiles can simultaneously affect multiple opponents (in team battle)
---- name1.fnt has most characters now
Bug fixes
--------- Fixed minor anim bug in SelfState
- Recoded some palette-handling functions
- More camera problems have been fixed. Camera should be able to scroll
quickly if needed, but stage tension should be kept around 50 in
order for it to look right.
- Rewrote combo-counting code. The counter should work properly in team
mode now.

19 Oct 99
At a glance:
- Added Team Battle mode. Go against two computers at
a time if the game's too easy for you.
- More background control
- Implemented explods
- Slightly more control over projectiles
- Planstation joypad support with force-feedback
(through converter)
- Updated some documentation
- Improved camera movement
- Several bug fixes
Known bugs
---------- In team battle, players may occasionally get stuck in a "thrown" state
if the attacker was hit out of start of the throw state.
---- cns: more trigger information in Appendix A
full documentation of the HitDef controller in Appendix B
- readme: Added HotKeys info
- added mugen.htm, a
- more FAQs in the FAQ
- added spr.gif. Refer to this for required sprites and their axes.
- updated spr.txt
- For cmd docs: see player.cmd
- For background: see stages/stage0.def
---- CNS: Implemented "MakeExplod" controller, which is a more flexible version
of GameMakeAnim. Format may change; we recommend you do not use it yet.
- Background controllers implemented. Still under testing.
These let you have more control over how the background elements
behave. Format may change.
- CNS: Variable added to [Size]:
proj.doscale = ?
Set to 1 if you want to apply scaling to your projectiles. The scale factor
will be the same as the character's.
- CNS: LifeAdd and TargetLifeAdd controllers damages are now affected by the
the player's defense multiplier.
- The players no longer continually update at time 0 of the intro state during
the initial fade-in. Any controller at state time 0 of the intro states will
be executed once at the beginning of the fade-in, and the character will be
frozen until the fade-in is complete.
- Training mode: Training dummy no longer gets KOed. Life will return to full
after 1 second of idle time.
- CNS: [Data]: Added "volume" parameter. Adjust the volume of individual
players' voices using this.
- Support for PSX controllers in place. Final implementation of input devices
still not decided.
- CNS: Projectile controller:
-Added optional "ProjHeightBound" parameter. Has two values:
ProjHeightBound = y1, y2

y1 is the upper bound of the projectile, and y2 is the lower bound. If the
projectile vertically leaves the range between y1 and y2 it will remove
itself. Default value is -240, 1
-Added optional "ProjStageBound" parameter.
The value is the the distance the projectile can travel off the edge of the
stage (not screen) before being deleted. Default value is 40.
-Added optional "ProjRemAnim" parameter. It is the action number of the
animation to play when the projectile removes itself, or when it hits another
projectile. Defaults to the same value as "ProjHitAnim" parameter. Set to -1
if you do not want an animation to play.
-Also, projectile now plays the remove-animation when it deletes itself, eithe
when its time runs out, or when it leaves its set boundary ("projedgebound"
and "projheightbound" parameters)
-Added projpriority controller. If projectile collides with
another projectile of equal priority, they will cancel. If
it collides with another of lower priority, it will cancel the
lower-priority projectile, and the higher-priority one will have
its priority decreased by 1.
Defaults to 4.
- data/mugen.cfg:
Tweaked default volume settings.
Added mp3 volume control.
- *** changed from previous version ***
BG on title, options, select and versus screens no longer move on their own.
Assign velocities if you want the background to move.
- Added a few more parameters to data/select.cfg under [Portrait] and
[VS Screen] and [Dimensions]
- Slight update on select screen graphics
- CNS: Projectile controller:
Added "projedgebound" parameter. The value is distance off the edge of the
screen before projectile is deleted. Default value is 40.
- Changed palette controllers to a dynamically-sized array. Will handle palette
effect on an arbitrary number of sprites now (instead of the old 64)
- You can now load up a different def file within a player's directory.
This will allow for distribution of different versions of a character
that use some common files, such as the sff and snd. Within a different
def file, you can specify different cns and air files. See data/select.cfg
for details.
- Better camera algorithm
- Key Config now displays key names instead of scancodes
6x9 FNT files updated with '*' and '~' characters
- CNS: HitDef controller: hitflag parameter:
Added '+' to the list of possible options. If '+' is added, then hit can only
affect people who are in a gethit state
- CNS: HitDef:
All moves with "throw" attribute can now only hit one opponent at a time.
This is so you cannot throw 2 people at the same time in Team Battle.
- CNS: HitDef controller:
Added new parameter "ID". You can assign an ID number to the hit. May be
used to test if an opponent was last hit by a certain move. If omitted
defaults to 0
- CNS: HitDef controller:
Added new parameter "chainID". If included, then the hit can only hit people
that were previously hit by a hit with the same ID value. Use in
conjunction with a hit that has the "ID" parameter.
- CNS: Added TargetDrop controller:

Removes all targets from P1's list of targets (you hit Ctrl-C to see the
list). You should drop unwanted targets if you do not want them to be
affected by controllers such as TargetBind.
This is an advanced controller. You may see little use for it unless you
are making complex chain-type moves. This is mainly intended to make moves
work correctly during Team Battle modes.
No required args.
Optional Args:
excludeID = ?
If an opponent was last hit by a move which has the hitID number
(parameter "ID" of attacker's HitDef controller) equal to the excludeID
value, then he will not be dropped from the list of the attacker's
- data/fight.def:
Added to [Round]: win2text
- Added Team battle mode.
- CNS: Minor change in "target???" controllers: these controllers no longer
affect targets who are guarding. eg. TargetLifeAdd will change the life
of a target being hit, but not of one who is guarding
- Updated to link with Allegro 3.9.25
- BG: Element: Added optional "positionlink" parameter
Set to 1 to link that bg element's position to the previous element.
The "velocity" and "delta" parameters will be ignored.
The "start" parameter becomes the offset from the previous element.
- BG: Element: Added optional "sin.x" and "sin.y" parameters
Offsets the background position using a sine function.
"sin.x" and "sin.y" are for offsetting the x and y positions respectively.
Each has 3 parameters, ie:
sin.x = M, P, O
M (decimal) is the magnitude in pixels
P (decimal) is the period in game ticks
O (decimal) is the time offset in game ticks
Specifically, the function is computed as such:
offset = M * sine ((ticks+O)/P * 2 * Pi)
- DEF: Added optional "displayname" parameter to [Info].
It is the name to display on the select screen, fight screen, etc.
If omitted, will be same as "name" parameter.
- CNS: Added "p1name" and "p2name" triggers.
p1name returns the name of the player (in the DEF file, under [Info]: name)
p2name returns the name of the opponent
trigger1 = p1name = KFM
Case insensitive, so "KFM" is the same as "kfM" and "kfm".
Example use for p1name:
Special reactions for certain characters when they are throw. Ie,
use "p1name" in the states that p2 will get from p1's CNS.
Example use for p2name:
Special reactions towards certain characters, or special intros.
- Background:
The "mask" parameter is no longer ignored for parallax background
elements. An example use for this could be clouds, where you can
see the sky through holes in the clouds.
- CNS: TargetBind controller:
Default value of "time" parameter changed from 0 to 1.
- CNS: HitDef controller:
If the "ground.velocity" parameter has a non-zero y value, then
the "forcestand" parameter's value will default to 1 instead of 0.
It can still be overridden by setting it to 0, but it will look

- You can now type: mugen <char1> <char2> [stagename]
For example, if you type: mugen kfm kfm mystage
Then the game will load stages/mystage.def for the quickvs stage.
- P2 is now invincible during the p1pausetime of p1's reversal.
Stops projectiles from interrupting the reversal.
- Can now change states right away in intro (state 191).
You can use "p2name" trigger for special intros between people.
-------- Fixed the floating point exception from having topz and botz being
equal in the stage definition.
- You can't "influence" the AI by whacking its buttons anymore
- Fixed a nasty bug where missing characters would cause Mugen to
crash at the versus screen.
- Fixed problems where P2 bound to P1 by the TargetBind controller
would not fall down if P1 was hit.
- Fixed some problems with reversals. Mainly, some parameters such as fall
and fall.yvelocity, etc were not working before.

3 Sep 99
A lot of engine updates this time.
At a glance:
-Added reversal attacks
-Guard cancels
-Character palette effects
-Added Training mode to main menu
-Stage select in all but Arcade mode
-Sound device configuration
-MOD and S3M music capability (thanks to Guan Foo Wah's JGMOD)
-Projectile control improvements
-Lots of updates to state control
-Various bug fixes
---- Added new hit spark: Use spark 0,6 for blood
- Updated action numbers in docs/air.txt. Also added
something about flipping and transparency in air.
---- Added Training Mode. Will add more functionality later.
If you want to turn on the CPU, Hit Ctrl-1 (p1) or Ctrl-2 (p2)
- Select-cursor positions are now remembered in VS, Watch and Training.
- CNS: Put in mod-playing capability. Supports, MOD, S3M and whatever
works with JGMOD.
New in data/mugen.cfg:
playmod = ?
modvolume = ?
- CNS: Added "height" to [Size] group.
Say you set "height = 60", then it means that if p2 is jumping
over p1 (p1 is standing), and p2's y-pos is < -60, then p2 will
pass through p1. This makes it easy to jump over tall people.

If omitted, defaults to 60.

- CNS: "Projectile" controller:
Added "projID" parameter. Set to a number that you want to identify
the projectile with. If omitted, defaults to 0. Can ignore this
parameter if you don't want to do advanced projectile stuffs.
- CNS: "Projectile" controller: "postype" parameter:
Added value "p2". If use "p2", then projectile is created relative to
the opponent. Useful for explosions that appear under the other guy's
feet and stuff.
- CNS: Added "NumProjID" trigger.
Returns the number of projectiles that currently exist (doesn't
count the other player's projectiles, only yours), and
have the specified ID number. Place the ID number right after
"NumProjID" (no spaces). Eg,
trigger1 = NumProjID500 = 0
Triggers if there are no projectiles with ID number 500.
Note: If the ID number is omitted, defaults to 0.
- CNS: Added "ProjHit", "ProjGuarded" and "ProjContact" triggers.
Works like MoveHit, etc, except it detects if a projectile
with the specified ID has hit. Like NumProjID, place the ID
number after the triggername. Eg,
trigger1 = ProjContact1000 = 0
Triggers if a projectile with ID 1000 has come in contact with p2.
Note: It will trigger once for each hit of the projectile, so
a multi-hit projectile can activate the trigger multiple times.
Note2: Unlike "MoveHit", etc, the "Projhit" triggers are valid only
for one game-tick after hit/contact.
- CNS: "Superpause" controller:
Added "movetime" parameter. Set to the number of game-ticks to
allow the player to move DURING the superpause. Eg, "movetime = 30"
lets the player continue moving during the first 30 ticks of
the pause, while everything else in the game is frozen.
- select.cfg: [Characters]: stagefilename made optional.
If you omit the stagefilename, a random stage will be chosen.
- CNS: "Projectile" controller:
p1stateno and p2stateno parameters now work properly
- CMD:
You can now interrupt guard by using a trigger like:
triggerall = command = some_command
trigger1 = stateno >= 150 ; These are the guard
trigger1 = stateno <= 153 ; states.
- Added stage select to versus and watch modes.
To name your stage, add a group [Info] to your stage def,
and put the name in a parameter called "name". eg:
name = My Stage Name
- CNS: Added new controller "statetypeset".
Lets you change the statetype and/or the movetype in the
middle of a state. Params:
value = state_type
movetype = move_type
state_type is S, C, A or L
move_type is A, H or I
- Changed to dynamically-allocated array for characters
in charsel.c
- Fixed bug where you could not guard a hit after being hit
in the air (common1.cns problem that came up when fixing a
small combo-count bug last time)
- Fixed bug where guard sounds played from the hit sound bank
instead of its own

- Fixed bug in tiled backgrounds that had tilespacing

- Allowed animated backgrounds to tile (the tilespacing parameter
must have values > 0)
- Added sound configuration routines to data/mugen.cfg
See for details.
- CNS: Added trigger "p2life" returns amount of life that p2 has
- CNS: "LifeAdd" and "TargetLifeAdd" controllers:
Added "kill" parameter. Set "kill = 0" if you do not want
the player's life to go below 1.
- CNS: "HitDef" controller:
Added "guard.pausetime" parameter. Like "pausetime", except
values are for guarded hits.
- Added "Draw Game" state (state 175 in common1.cns)
Will go to this state if both players have same life when
time runs out. If player does not have anim 175, defaults
to "Time Over" state (state 170)
- You can jump over people lying down in the corner now.
- CMD: Added "s" button, for start. Use it like any other
button. If you want to make a taunt, you'll need to program
it into the CMD and CNS. Use state 195 for taunt.
- CNS: Added "facep2" parameter to StateDef. If set to "1",
the player will turn to face p2 at the start of the
state (see cns docs).
- CNS: Added new triggers: "FrontEdgeDist", "BackEdgeDist",
"FrontEdgeBodyDist", "BackEdgeBodyDist".
"FrontEdgeDist" is the x-distance of the player's x-axis
from the edge of the screen that is in front of the player.
"FrontEdgeDist" is the x-distance of the player's x-axis
from the edge of the screen that is behind the player.
"FrontEdgeBodyDist" and "BackEdgeBodyDist" are almost the
same as the other two, except it takes the distance
from the edge to the sides of the players, instead of
the x-axis.
- CNS: Added new controller: "PalFX"
Adjusts palette of player.
time = time
mul = mulr, mulg, mulb
add = addr, addg, addb
time (int) - Time to keep the palette effect
mul? (int) - 0 for dark, 256 for normal, >256 for contrast
add? (int) - 0 for normal, -1 to -256 for dark, 1 to 256 for
- CNS: HitDef controller:
Added new parameters:
These are the same as "PalFX". It will do palette effects on
the opponent if the move hits.
- common1.cns: player blinks white when recovering from fall
- CNS: Projectile trigger:
Added optional "projshadow" parameter. Set to color of
shadow: eg.
projshadow = 64,64,64
To use stage's shadow color settings, set to -1, eg.
projshadow = -1
- CNS: Added "Reversal" controller
Like HitDef, but with limited parameters
P1's clsn1 box catches p2's clsn1 box (attack).

New parameter:
p2attr = attr_list
attr_list is the list of attributes of p2's hitdef that
p1 can catch. eg.
p2attr = SA, NA,SA
means Stand+Air, NormalAttack,SpecialAttack
Use with p1stateno (and optionally p2stateno) for creating
reversal attacks. Use a "targetbind" controller in p1's
reversal-success-state to bind p2, if necessary.
- Fixed minor guard problem, where you could not immediately
guard low attacks if you weren't already crouching

16 Aug 99
At a glance:
- Animated backgrounds
- Change background implementation
- Lots of doc updates, but still far from done
- Music in title, select and versus screens
- Lots of small fixes
---- Updated docs for most things
- New suggested life for players is 1000, instead of 256.
- Moved all stage defs and sffs from data/ into the stages/ directory
If you made backgrounds, check your defs to set the files to
the stages/ directory.
- Added new hit spark.
---- Added BGM capability at Char Select and VS Screen.
Check select.cfg, under [Music].
- Added BGM capability at Title Screen.
Check system.def, under [Music].
- Does not require "sound = blah.snd" in the DEF file to run
- Added screenshot to title screen
- Changed implementation of backgrounds. Now a background x-position
of 0 corresponds to the middle of the screen. It can move left
(negative) and right (positive). This makes it much easier to
do the def for the backgrounds.
Parallax works slightly different now. If you use "width = ?,?"
it acts like it did before: scales the background to create a
perspective effect. If you use "xscale = ?,?" it doesn't
pull off the scaling. That way if you have a floor that already
looks "3D", it leaves it alone.
Player start x-positions should now be -70 and 70 for all stages.
- Animated BGs at last! The anim data is kept in the def
file for the BGs.
- Added "boundhigh", "boundlow" and "verticalfollow" to [Camera]
in stage0.def. Controls vertical movement.
- Added key config to options
- Now there's a line-fade when you skip the intro
- CNS: Hitdef: Added "P" type to hitflag. If you have a hitflag
with "P" in it, the attack can cancel out projectiles.
- CNS: Added new trigger: AnimExist = actionno

1 if actionno exists in P1's AIR, 0 if not.

Used this to fix small animation bug in common1.cns.
--- Changed life and damage to match new 1000 life.
-------- Fixed skipping intro multiple times
- Fixed another bug in common1.cns, where action 5040 would repeat
over and over in state 5040 (air recover)
- Fixed the problem where you don't really get pushed back from
the corner if you're doing a combo. So now in the CNS, if you have
a "velset = 0" in the StateDef, it sets your x-velocity to 0 as
usual, except if the other guy is being hit in the corner.
- Fixed bugs on timeover, where characters did not stop guarding
or crouching
- Deletes projectiles if skipping intro (no more leftover KFM wood
- Fixed a bug it did not check hold-commands
for buttons. Like, /a and /b etc were not being detected
- Fixed bug where keypresses are lost during game slowdown
- Fixed the problem where the "command" state controller doesn't
work in the win pose -- useful for selecting the win pose by
holding buttons