Undocumented MUGEN Stuff

In this article, we're going to talk about content and parameters that Elecbyte didn't document anywhere. They can be found within MUGEN's memory and appear to be recognized by the engine, despite having no officially known function.

WinMUGEN

The Power Constant/Data

The oldest constant to be discovered that's used to set your character's power, its default value is 3000, so setting it to 4000 or more will increase it.

Velocity Constants

Names suggest that these were used for the Pos Z/Z Axis of the character. Adding them to a character's constants does nothing, but the engine will read and store them in memory.


Size Constants

Similarly, size constants also exist. Only z.width has an side effect; Modifying its value, whether too high or too low, can disrupt hit detection when a character attacks one with an altered z.width. Additionally, attack.z.width may have a similar impact, potentially affecting guard distance detection.

All these Z constants are present in all MUGEN versions.


NoKO

An undocumented flag in AssertSpecial.
It makes someone's alive to not be set to 0, even if the char has no life, the match will also not end if it's in effect even if both characters aren't alive unless timer ran out. Making the match semi-endless unless in some situations, works in all versions.


Undocumented HelperType

Helpers have one called helpertype = proj. It's essentially helpertype = normal with a different name, A rumor says that this helpertype was meant to replace the Projectile controller but this is unconfirmed, regardless this works for all versions.


Undocumented State Controllers

WinMUGEN & 1.0 have 2 undocumented state controllers, TagIn and TagOut

TagOut temporarily disables the state controllers below it and sets StandBy to 1.

TagIn only changes the state number of the player and the partner.


Undocumented Triggers/Parameters


The "M" Gametype

Despite mugen.cfg says VS is the only gametype, there's actually another undocumented gametype.

This works for all versions and the effects are the same. It's name is unknown but it's assumed to be either Melee or Mission, It's impossible to know its real name as the engine only reads the first letter digit of it. Typing just GameType=M will still work, similary to where setting VS to just GameType=V will set it to Versus anyways.

M's effects are when a char is defeated, they can go off-camera and disappear after a flicker effect by using it's struct's time to alternately assign 0 and 1 if defeated, similar to some Beat 'Em Up games. This mode also disables P2 redirection so triggers like P2StateNo don't work, which can break characters that use them. There are also some unknown effects on commands.


Unused Command

It has a name of N but it's real name is also unknown, None is assumed to be. It only works if the keys were released but this doesn't apply to movement keys (U, D, B, and F). N is the release key but odd cases like $N, $N, $N are recognized when pressing any key three times. It's rumored that N has it's own key but this is still under investigation.


RemapPal Internal Function

Inside WinMUGEN there is an internal subroutine, not directly used by the engine, that allows you to remap the palette of a sprite by using another sprite’s palette as the source. The source and destination are defined by their group and index values.

This function is located at 0x0044F1E0 and is identified as:

void SpriteArrayPalRemapFromRootGrpItem(
    SpriteArrayEx* sprArray,
    int destGrp,
    int destIdx,
    int srcGrp,
    int srcIdx
);
  

Although this function is never used by the base engine, it's used by Choon’s Explod Expansion, where it is called when the palsource parameter is used in the Explod state controller.


1.x

Undocumented Postype

PosType = None repositions explods, helpers or projectiles relative to the stage origin.


Unused Console Commands

By pressing either Ctrl + ~ an internal console can be accessed. It has it's own array of valid commands but the unused commands function similar to the debug keys or command prompts, regardless if the keys were disabled in mugen.cfg.


New TagIn/Out

A state controller called Tag was found in 1.1b. It shows a PlayerSCtrlApplyElem error message if used as it has the wrong sctrlID. It also only works if a team has a partner but it's assigned to the removed TagOut. Looking at previous alpha versions this seems to be a combination of TagIn & TagOut. Despite this, The TagOut sctrl is still in the engine's memory but cannot be called since no state controller has that ID.


Undocumented Player Parameter in select.def

In the select.def file, besides specifying the character’s folder name, you can also add optional parameters separated by commas. These parameters are executed when entering Arcade Mode. Elecbyte has officially documented four of them:

Example:
kfm, stages/kfm.def, music=sound/song.mp3, includestage=0

However, there is a fifth, undocumented parameter: boss.

This parameter does not appear to have any functional impact on the game engine. Its only purpose is to check whether the assigned value is numeric and store it in memory.

Example:
kfm, stages/kfm.def, music=sound/song.mp3, includestage=0, boss=1

Undocumented Parameter in Explod SCtrl

Another undocumented parameter is usefightfx, found inside the Explod state controller. The only known behavior is that it accepts a value between 0 and 1, effectively functioning as a boolean.


Undocumented Parameters in mugen.cfg

[Config]

A parameter called PlayerPalMax exists, but modifying its value has no effect, except when set below 12, in which case the engine forces it back to 12. Putting a value beyond 12 seems to keep the omitted value.

[Video]

FilterIndexed is enabled by default but disabling it has no effect.

RenderMode has a setting called OpenGLScreen. It seems to be a mix between DirectX and OpenGL, This was also sorta-mentioned by Elecbyte albeit indirectly.

[Sound]

BitDepth is probably the amount of detail in each audio sample. Higher bit depth means more precise volume levels, allowing for clearer & more dynamic sound. It has 16 as the default value. Only 8 and 16 work.

The Channels parameter has 2 as default value, the name suggests you could edit how many channels MUGEN could have, similar to WavChannels, but changing it's value does nothing.

[Input]

ForceFeedback's name suggest it was meant toggle the feature to vibrate the controller during certain actions defined by the state controller of the same name.

PSXDelay's name suggests something about a delay for PS1/X controllers.


Tag Mode

All MUGEN versions also have a built-in Tag Team Mode.