# M.U.G.E.N Update History

Updates shown are in order of most recent to least recent.

# New in 1.1

## Overview

- New rendering engine based on OpenGL
- Camera zooming

## Graphical

- New rendering engine based on OpenGL (mugen.cfg: [Video]: RenderMode = OpenGL). RenderMode=System now deprecated (it still works but will not support all the new features). RenderMode=OpenGLScreen removed.
- mugen.cfg: [Video]: KeepAspect, StageFit, SystemFit options added. Various window-related preferences. If you prefer the 1.0 behavior of cropping stages and motifs to match the window aspect, set StageFit and SystemFit to 0.
- Alt-Enter during OpenGL windowed video mode (fullscreen = 0) will toggle windowed fullscreen instead of exclusive fullscreen mode.
- Added RGB and RGBA sprite support. Use the updated SprMake2 tool.
- AIR: Added scale and angle optional parameters. More info: AIR Optional Parameters
- AIR: Added linear interpolation support. More info: AIR Interpolation
- AIR: Floating point values now accepted for offsets.

## Stages and Backgrounds

- BG: Added maskwindow, startscale, scaledelta, zoomdelta parameters. Backgrounds: Advanced Parameters
- BG: Deprecated window parameter. Use maskwindow instead.
- BG: Parallax: Deprecated yscalestart and yscaledelta parameters. Use startscale and scaledelta instead.
- BG: Parallax: use of the width parameter is now the preferred method for hardware-accelerated rendering modes due to visual artifacts resulting from using xscale method.
- BG: Parallax: support for animated parallax added.
- Stages: [Camera]: added zoomout, zoomin, tensionhigh, tensionlow parameters. Backgrounds: Camera Group
- Stages: [Shadow]: Added xshear parameter (RenderMode=OpenGL only). Removed support for color parameter; use intensity instead. Backgrounds: Shadow Group

## CNS

- CNS: DestroySelf: Added recursive param. State Controllers: Destroyself

- CNS: DestroySelf: Fixed instability if explods are not removed before DestroySelf.

- CNS: Explod: Added angle params (behavior will likely be changed before stable release). More info: State Controllers: Explod

- CNS: Explod: Added remappal param. State Controllers: Explod

- CNS: Helper: Added remappal param. State Controllers: Helper

- CNS: Explod: Added space, bindID params. Deprecated postype param; use combination of pos and screen instead. State Controllers: Explod

  Because stage zooming was added in 1.1, there is a need to distinguish screen space from stage space to achieve the desired effect.

- CNS: Projectile: Added ownpal and remappal params. State Controllers: Projectile

- CNS: RemapPal: now restricted to 8 mappings. State Controllers: Remappal

- CNS: Trans: Deprecated addalpha and add1 parameters; use add with alpha parameter instead. State Controllers: Trans

- CNS: Added CameraPos trigger. Triggers: CameraPos

- CNS: Added CameraZoom trigger. Triggers: CameraZoom

- CNS: Added ScreenWidth, ScreenHeight triggers for use with screen-space explods. Triggers: ScreenWidth, ScreenHeight

- CNS: Added BackEdge, FrontEdge, LeftEdge, RightEdge, TopEdge, BottomEdge triggers. Triggers

- CNS: Line number report on parse errors.

## Misc

- Motifs: sysexplods: added angle parameter (doesn't work right for text yet)
- Text line limit increase from 4k to 16k.
- Graphics: Fight player portraits are no longer affected by player PalFX.
- Efficiency of ownpal=1 explods improved.
- Fixed possible resource leak in survival mode.
- select.def: Increased arcade.maxmatches and team.maxmatches limit to 30.
- Font v2: added banktype parameter: palette (default) and sprite. Sprite banktype lets you substitute an entirely new set of sprites instead of changing the palette.
- Font v2: added RGBA font support. Use an SFF with RGBA sprites, and optionally set banktype = sprite. See font/num72.def and work/font/num72/ for an example of an RGBA font.
- Precaching does not work yet in 1.1 and is currently disabled.

## Tools

- SprMake2: Added support for 24 (RGB) and 32 bit (RGBA) sprites. Including such sprites will generate an SFF (v2.01) that is incompatible with MUGEN 1.0.
- SprMake2: Added png8, png24 and png32 compression methods. Using such compression methods will generate an SFF (v2.01) that is incompatible with MUGEN 1.0.

## Reimplemented

These have been partly or fully reimplemented. Info for alpha testers only.

- Graphical renderer (affects all sprites)
- Palfx and RemapPal (affects all players, helpers, explods, projectiles and afterimages)
- Explod drawing
- Shadows drawing
- Screen fading
- Game flow, i.e. transitions between mode select, vs screen, fight, etc. (not in alpha 1)

## Player Update Notes

- Some explods in 1.0 characters may not appear correctly when the camera zooms in or out. This happens because 1.0 does not understand if an explod is meant to be zoomed with the camera or not.

  Convert existing explod controllers to use the new parameters, particularly "space", in order to display explods correctly. Examples of explod effects that should be in screen space are fullscreen background shown during supers, character portraits, victory screens implemented in CNS, etc. Examples of explod effects that should be in stage space are hit and super sparks, dust, character parts (e.g. a shield), etc.

  More info: State Controllers

- Explods now take angle, yangle and xangle parameters. This means you can rotate an explod in 3D space. Those of you familiar with 3D will notice that there is a fixed perspective projection. You can play with these new parameters, but note that we'll probably change how this works, so expect breakages during the alpha and beta phases of 1.1.

## Stage Update Notes

- There is a temporary parameter "ForceStageZoomout" under [Misc] in mugen.cfg. This enables zooming on all stages that do not have explicit zoom parameters.

  Camera zooming has a tendency to expose blank areas around the edges of stages, especially on background elements with a small delta. You can think of zooming out to be like switching a camera to a wide-angle lens, enabling you to see a wider view of the same scene.

  For 1.1, you should explicitly set the zoomout and zoomin parameters in the [Camera] group. It's also recommended to use tensionhigh and tensionlow to control vertical movement as they look better than verticalfollow for tall stages.

  If you're using content from 1.0, you'll want to fix the blank areas around the edges of your stage. One way to do this is draw in the edges of the affected sprites.

  There is another method that works on multi-layered stages: use the zoomdelta BG element parameter. For elements on layers that are "far away", such as the sky, use a small zoomdelta. Use progressively larger zoomdeltas up to 1.0 for elements that appear closer to the foreground. A general guideline is to use a zoomdelta that is close in value to the delta value of each element. This method requires less touch up artwork and gives stages a feeling of depth. You may need to reduce your stage bounds slightly using this method.

  See the Background/Stage documentation for more info.

  Note that the example KFM stage has zooming explicitly disabled.

# Version 1.1 Beta 1

28 Jul 2013

## Graphics

- Fixed allpalfx from affecting the debug overlay text.

## Fixed

- Fixed intro.waitcycles from not activating at the specified time.
- Fixed parsing crash with sysvar/sysfvar when used in ParentVarAdd/ParentVarSet.
- Fixed evaluation crash with performing the mod operation with a floating point number as the denominator. Now produces an error message.

## Changes

- Pause key disabled on Continue and Results screen (Survival mode). Use the M.U.G.E.N console to pause on these screens if necessary.

## Additions

- Added console prompt to the engine. Introduced in the alpha series, but has been expanded. Use Ctrl+tilde (Ctrl+~) to activate/deactivate. Type 'help' for a list of commands.

# Version 1.1 Alpha 4

31 Aug 2012

## Graphics

- Fixed palette reservation bug
- Fixed round fade in.
- Fixed a shadow flipping bug.
- Fixed projectile ownpal=0 bug.

## Fixed

- Fixed F4 not resetting life in survival.
- Fixed victory screen showing wrong portrait in turns.
- Fixed bug where victory screen can't be disabled by motif.
- Fixed F1 and Ctrl-F1 debugkeys swapped.
- Disabled debug keys outside of fight screen.

# Version 1.1 Alpha 3

18 Feb 2011

## Graphics

- [A1] Alt-Enter doesn't toggle windowed when starting with fullscreen=1
- [A1] NVidia GeForce 7300SE/7200GS has a lot of render problems, possibly related to frame clearing Also affects GeForce 6150SE.
- [A2] Window forgets size after maximize followed by fullscreen.
- [A2] Explod postype=front/back/left/right behavior is not backwards compatible

1.0 -> 1.1 new engine bugs

- [A2] explod bindtime doesn't work if there's no postype=p1 (version < 1.1)

## Fixed

- [A1] BG anims do not tile correctly with tile=1,1 (fixed)
- [A1] Cutscenes are not properly cropped in GL (fixed)
- [A1] Camera moves/zooms in if no players are screenbound. (fixed)
- [A2] Intel GMA cards draws large empty black areas. (fixed)
- [A2] Program sometimes exits without error (fixed)
- [A2] Afterimages ignore interpolation (fixed)
- [A1] Tiled animated BGs don't show if tilespacing is 0 for either x or y. (fixed)
- [A2] alpha = 0,0 does not draw sprite (fixed)
- [A2] common1.cns errors are not reported (fixed)
- [A2] autoturn does not work correctly while direction is held (fixed)

# Version 1.1 Alpha 1

20 Jul 2010

- First 1.1 alpha test release

## Bug Fixes

- Fixed bug where some long strings could cause MUGEN to behave erratically.

# Version 1.0

18 Jan 2011

## Engine Changes

- Title screen F1 info box text can now be customized in system.def.
- SND files with invalid WAV files now log a warning instead of causing MUGEN to abort.

## Bug Fixes

- CNS: Fixed associativity of := for fvars.
- Fixed a bug that caused some sounds to be played on incorrect channels or with incorrect stereo panning.
- Storyboard: Replaced broken soundX.volume parameters with soundX.volumescale.
- Fixed incorrect character positioning in win and results screens.

## Doc Changes

- Some documentation was updated.

## License Changes

- The license has been updated to permit inclusion of the MUGEN executable into free non-commercial bundles. See readme.txt.

# Version 1.0 RC8

29 Jun 2010

## Engine Changes

- Merged EX + alpha audio system into main RC line.
- BG: tilespacing is now a required parameter for tiled anim BG elements. Setting any tilespacing argument to 0 will disable tiling in that axis (prevents problems with 2002 BGs that have incorrect tilespacing).
- CNS: Added StageVar trigger with basic functionality for checking stage name and author.

## Bug Fixes

- BG: Fixed paral not working with compressed sprites
- BG: Fixed paral BGs drawn at incorrect y position at certain resolutions.
- CNS: fixed InGuardDist trigger incorrectly returning 0 during enemy attacks when projectiles outside guard distance exist.
- CNS: Fixed PlayerPush coordspace height bug.
- Fixed physics precision error in certain situations.
- Fixed software rendering sprite scaling position accuracy.
- Fixed player SelfAnim drawn with incorrect offset scaling when in temporary state.
- Removed common1.cns stand state pos y < 0 detection for compatibility reasons.
- Font v2: fixed bank palette using palettes in the order added to the sff, instead of the actual palette item number.
- Fixed problem where program would not start on some older Windows installs.
- Fixed mouse pointer not reappearing after switching out of fullscreen mode by Alt-Enter or task switch.
- Fixed AllPalFX green and blue fields being ignored.
- Fixed system explods not getting reset before mode select and character select screens.
- Fixed cutscene to not adjust BGM path if the filename is empty.
- Fixed sound volume and panning bugs.
- Fixed volumescale bug.
- Fixed victory screen showing after quick VS.
- Fixed mode select repeating sound during fade in.

## Tools

- Fixed sprmake2 crash on pal.discardduplicates=0.

# Version 1.0 RC7

20 Mar 2010

## Engine Changes

- Options screen now uses font/options.def font if present. If Truetype, size adapts to game resolution.
- Implemented Alt-Enter fullscreen toggle.
- mugen.cfg: [Video] Implemented BlitMode=PageFlip (resolves video tearing).
- motif: system.def: Added title param to [Options]

## Bug Fixes

- CNS: Cond trigger now works properly inside all comma-separated parameter lists.
- CNS: Fixed projectile screen and edge bounds being calculated incorrectly.
- CNS: Fixed projectile hits causing player hitdefs to reactivate.
- CNS: Fixed screen postype explods incorrectly positioned during envshake.
- CNS: HitDef: Fixed guard damage not affected by AttackMulSet controller.
- CNS: HitDef: Fixed fall.yvelocity and fall.xvelocity scaled incorrectly in different coordspaces.
- CNS: ChangeAnim2: Fixed reflection drawing position when other player has different scale.
- CNS: Fixed TargetBind controller default value (0,0).
- CNS: Fixed "no" debug spam.
- Input: Partial fix for num lock and caps lock keys only working every other key press. Is still buggy on first press if state of key lock is on when starting MUGEN.
- Motif: system.def: Fixed survival mode using selftitle instead of enemytitle for team selection.
- Storyboard: Fixed drawing some BG sprites off-center in pillarbox mode.
- Fixed 1P vs Team (Simul) advantage option not working
- Fixed space bar resetting time in survival mode.

## Backwards Compatibility

- ver2002 backwards compatibility: CNS: Pos Z trigger will return the value of pXstartz in the stage def file that corresponds to the player (or root, if the player is a helper). This will only work for players with mugenversion under 1.0.

## Tools

- Added sff2png tool: extracts sprites from an SFF file.

# Version 1.0 RC6

8 Dec 2009

## Engine Changes

- CNS: New Trigger: Cond. This is a short-circuiting version of ifelse.
- CNS: Set to use precise floating point model; was previously using a less accurate model that might have caused strange rounding errors.
- fight.def: Added [Fightfx] section with scale parameter.
- Keyboard: Fixed bug where keyboard presses/releases are sometimes lost when other keys are pressed at the same time.
- Storyboards: now scaled to fit screen aspect instead of being cropped.
- Stages: Added displayname, versiondate, mugenversion, author parameters to stage [Info]. Stages older than 1.0 will have camera movement snapped to whole stage coordspace units.

## Doc Changes

- Added description of special forms (ifelse, cond).
- Stages + Backgrounds: Fixed Parallax parameters description to match implementation.
- Other minor fixes.

## Bug Fixes

- CNS: HitDef: Fixed bug that set default guarded getpower/givepower parameters to 0.
- CNS: AppendToClipboard and DisplayToClipboard: More robust handling of type mismatch scenarios.
- CNS: Fixed bug where Const trigger returned incorrectly-scaled values if player is in a temporary state of another player with a different coordspace.
- CNS: Fixed bug where AssertSpecial flag=invisible does not work during hitpauses.
- Display: Fixed Offset sctrl not scaling properly to coordspace.
- Display: Fixed fightfx explods being created with incorrect scale when character and system have different coordspaces.
- Display: Fixed projectile Clsn2 not being displayed in Ctrl-C mode.
- Fixed bug where loading malformed SFFv1 sprites would prevent the program from closing properly.
- Fixed character mugenversion date parser to reject malformed version strings.

## Backwards Compatibility

- Fixed: ver2002 characters only: After a ReversalDef with p2stateno and p1stateno parameters has been executed, P2's state updates will lag behind P1's by 1 tick.
- ver2002 backwards compatibility: implemented bug where AssertSpecial flags that affect a single player are not reset each tick when the player is in a hitpause. Flags affected are: nostandguard, nocrouchguard, noairguard, noautoturn, noshadow, nojugglecheck, nowalk, unguardable, invisible.
- ver2002 backwards compatibility: implemented bug where the effects for the following controllers are not reset during hitpause: AngleDraw, PlayerPush, Offset, ScreenBound, Trans, Width.

# Version 1.0 RC5

28 Oct 2009

## Bug Fixes

- CNS: Fixed bug where teammode and hitdefattr were being evaluated incorrectly.
- CNS: Fixed bug where hit attribute string parsing could fail in expressions.
- CNS: Fixed bug where explod's Y position is displaced if explod is created on the first tick of the round on cut stages.
- CNS: Fixed bug where DestroySelf did not abort remainder of state evaluation. This could lead to crashes or indeterminate behavior depending on the controllers used after.
- Fixed bug where pre-1.0 stages with zoffsetlink are drawn displaced by upwards 1 stage unit.

# Version 1.0 RC4

25 Oct 2009

## Engine Changes

- CNS: Added GameWidth and GameHeight triggers.
- CNS: Display error if character uses a controller or trigger inappropriate for its mugenversion.
- Localization: Implemented storyboard scene localization. See localization docs for notes.
- Implemented png screenshots. Press F12 to take a screenshot.
- Mouse cursor now hidden in fullscreen.

## Bug Fixes

- AIR: Fixed empty anim actions throwing error. Empty actions will be ignored.
- BGs: Changed start position value from integer to float.
- CNS: Fixed AIlevel triggering in cooperative dummy in training mode.
- CNS: Fixed players with HitOverride taking damage outside of movetype = H
- CNS: Fixed bug where CNS load error is not reported for common1.cns in a player's directory.
- CNS: Fixed player with HitOverride not being affected by a HitDef with p2stateno = <any value that is not -1> and p2getp1state = 1.
- CNS: Fixed bug where != operator was incorrectly parsed for HitDefAttr, AuthorName, TeamMode
- CNS: Fixed helper facing bug introduced in RC3.
- Fixed guard distance checking bug in a different coordinate spaces.
- Fixed helpers/explods with ownpal=1 not being affected by RemapPal
- Disabled logo storyboard from showing during quickvs

# Version 1.0 RC3

12 Oct 2009

## Bug Fixes

- CNS: Fixed ScreenPos y trigger value calculation in cut stages.
- CNS: Fixed Explod y offset calculation in cut stages.
- CNS: Fixed issue where player may get incorrect custom state resources
- Renderer: Fixed master palfx not affecting TTF fonts.
- Input: Fixed keyboard input
- Input: Implemented joystick hat support
- mugen.cfg: Fixed AI.cheat not working
- General: Fixed Start+button not choosing palettes 7-12
- General: Fixed game slowdown when skipping frames
- Miscellaneous other fixes.

# Version 1.0 RC2

29 Sep 2009

## Engine Changes

- BG: Improved performance of parallax BGs.
- Stages: Added a hack to recognize the "hires = 1" stage parameter. This parameter isn't officially supported so we strongly recommend against using it for new content.

## Bug Fixes

- BG: Fixed bug where tiled parallax BGs did not draw.
- BG: Fixed scaled trans sub BGs.
- CNS: Fixed trigger redirection coordspace bug.
- CNS: Fixed screenpos x trigger.
- CNS: Fixed helper not inheriting palno from parent.
- CNS: Corrected bug in ** operator for integer arguments with exponent >= 0.
- CNS: Integer exponentiation, Floor(), and Ceil() now generate a warning and clamp to INT_MAX or INT_MIN (2^31-1 or -2^31) when the integer range is exceeded.
- FNT: Fixed font newline bug for True Type fonts with text wrapping.
- Motifs: Fixed invalid font in combo counter crash.
- mugen.cfg: Added DirectX option to RenderMode. Setting this mode may help some people with startup issues.
- SND: Fixed snd loading failure using wavs with certain headers.
- Stages: Fixed random stage load error during continue.
- Added hardcoded pal change for SFFv1 sprites. This addresses the palette problem for old characters that override state 5900.
- Fixed UTF-8 BOM detection bug that caused the first group not to be read in some def files.
- Fixed AI.RandomColor = 0 crash.
- Resolved SDL crash on non-SSE2 processors.

# Version 1.0 RC1

22 Sep 2009

## Engine Changes

- Added high-definition (HD) graphical support.
  - Any arbitrary resolution or aspect ratio can be set. For best compatibility, we recommend using 640x480, 1280x720 or 1920x1080.
  - 1280x720 set as the new default resolution. This can be changed with the GameWidth and GameHeight parameters in mugen.cfg.
  - Characters' target resolution can be set with the localcoord parameter in the character def file. An alternative, which affects sprites only, is to set smaller xscale and yscale parameters in the constants section of a character's CNS files.
  - Stages' target resolution can also be set with the localcoord parameter in the stage def file.
  - Characters, stages and motifs made for different resolutions can still interoperate with each other.
- Added localization support.
  - Preferred language can be set in mugen.cfg
- Added sound and text support to storyboards.
- New sprite file format: SFF v2.
  - Multiple palette support.
  - Support for realtime compressed sprites to reduce memory usage.
- New format for FNT.
  - Bitmap fonts now based on SFF v2.
  - Supports Truetype fonts.
  - UTF-8 text support (Truetype only).
  - Text can be quoted in order to use escape sequences, e.g. \n for a line break: "line1\nline2"
- CNS: New triggers.
  - AILevel: returns the AI difficulty setting.
- CNS: Added [Quotes] group to constants.
- CNS: New controllers.
  - VictoryQuote: Selects a quote for the victory screen.
- Stages: StageInfo: New parameters:
  - xscale, yscale: Specifies the drawing scale of the stage.
  - overdrawhigh, overdrawlow: Specifies the number of pixels of extra drawing beyond the top and bottom of the screen.
  - cuthigh, cutlow: Suggests the number of pixels that can be cut from the top and bottom of the screen when playing in a shorter game aspect than the stage was designed for. cutlow especially will be useful for making 4:3 stages look better when viewed in 16:9.
- Motifs: Victory screen definition can be added to system.def. See [Victory Screen] and [VictoryBG] groups.
  - Characters may use sprite 9000,2 for the victory screen.
- Motifs: system.def and fight.def font parameters standardized to take alignment and RGB color values. See font notes at end of fight.def.
- Motifs: common1.cns can now be included with motifs.
- Motifs: system.def: [VS Screen]: For consistency, changed pX.pos and pX.name.pos to pX.offset and pX.name.offset (.pos is deprecated but will still work).
- Storyboards: Added sound playback and text display capability.

## Tools

- New tool: sprmake2 - Generates sff v2 files; replaces sprmaker.
  - Enhanced sprite and palette manipulation options.
- fntmaker tool deprecated; use fnt v2 def files instead.

## Bug Fixes

- CNS: Fixed: HitDef P1 pausetimes expired 1 tick sooner than specified. When loading 2002.04.14 and older characters, this fix will be compensated for by subtracting 1 from the P1 pausetime after expression evaluation.
- CNS: Fixed incorrect computation results using the ** operator.
- Motifs: fight: Fixed issue where power bar anims get out of sync with each other.

## Sample Content

- Added sample HD content:
  - mugen1 -- 720p motif. This is the new default motif.
  - stage0-720 -- 720p version of stage0.
- Added sample truetype font

## Misc

- Base engine ported from Allegro to use SDL. There may be some minor differences, such as a change in audio volumes.

## Notes

- See readme.txt for known issues.
- To update a character from 2002.04.14 to 1.0, add 1 to the value of the P1 parameter of all HitDef pausetimes. Then set mugenversion = 1.0 in the player's def file.

# 14 April 2002

## At a Glance

- Added zipped character support
- Some bugfixes

## Code

- select.def: Added experimental ZIP character support (zipped storyboards not yet supported) .def file must have same name as .zip file

- CNS: New trigger: MoveReversed

- CNS: Modified triggers: MoveContact, MoveGuarded, MoveHit

    Return values now give information about time since hit status change.

- CMD: Added [Remap] section for button remapping.

- CNS: ReversalDef controller: sparkxy now treated as spark offset

- CNS: Hitdef controller: "sprpriority" parameter renamed to "p1sprpriority".

    New p2sprpriority parameter added

- CNS: Pause/Superpause controller: new params: pausebg, endcmdbuftime

- Training menu: Added AI level option to "AI" dummy

- CMD: Fixed $ (4-way dir detection) bug: release of a direction was being detected as a press by the $ direction modifier. "Transfer of charge direction" bug (feature?) is still there

- fonts: fixed bug where right/center justified strings are cut off after a newline

- *** Changed from previous version ***

- common1.cns: states 120,130,131,132: added guard-release handling (mugen exe no longer does this internally)

- Fixed bug in CMD detection, where the same command will get detected multiple times if the last button is repeatedly pressed

- Tweaked precaching (performance may increase or decrease)

## Known Issues / Notes

Please consult readme.txt for known issues and problems.

# 14 November 2001

## At a Glance

- Added Survival play modes. See how long you can last!
- Some bugfixes

## Code

- system.def: [Title Info]: menu.itemname.*: you can disable an item by using "" Added items for survival modes.
- mugen.cfg: [Arcade]: added AI ramping options
- New play modes: Survival, Co-op Survival
- CNS: HitDef: ground.type and air.type: hi/lo attributes are swapped if p2 is hit from behind
- Nonexistent stages in select.def now automatically excluded from stage list
- Projectile damage now affected by AttackMulSet
- Fixed palette section bug introduced in 2001.11.01
- Fixed serious precaching bug

## Known Issues / Notes

Please consult readme.txt for known issues and problems.

# 1 Nov 2001 and older

For older change history, refer to oldhistory.txt.