SSBM/Advanced Controls

From SuperCombo Wiki

The purpose of this page is to elaborate on the specific architecture and implementation of the GameCube Controller in the context of Super Smash Bros. Melee.

For Further Reading, visit these pages:

For programs that can display a visualization of Controller Inputs, visit these pages:

  • StickMap Visualizer: A Website hosting Altimor's StickMap (Associated Discord, Associated GitHub), a tool to visualize the Coordinate/Angle/Magnitude Plane of SSBM's ButtonIcon-GCN-Control Stick.pngLeft-Stick and/or ButtonIcon-GCN-C-Stick.pngC-Stick.
  • SmashScope: Best Controller Calibration App for measuring the inputs of the GameCube Controller with extremely high degree of accuracy and a massively overclocked polling rate. Works best on a Wii because of the Wii-exclusive increased-polling-rate exploit.
  • M'Overlay: Windowed App used for live-streaming input visualizers (for multiple GameCube games), and playing music for Rollback.
  • UnclePunch's Training Mode: Training Lab Mod that lets the user create and share Detailed Save-State Files that cover specific scenerios. It provides many streamlined-practicing tools including those for theory-crafting, CPU Manipulation, frame-data monitoring with mid-game text, and input visualization.
  • 20XX Hack Pack: Training Lab/Friendlies QoL Modpack that offers incredibly nuanced manipulation of the game engine and visuals, including many upgraded Debug features and custom game-modes.

Released in 2001, the Nintendo GameCube's First-Party GameCube Controller is released with along with the original console. Coincidentally, the successor to the Nintendo 64 being the GameCube, also lined up with both the Successor of the Nintendo 64 Controller and the development of Super Smash Bros. Melee, the Successor to Super Smash Bros. for the Nintendo 64. Following the trends of the SONY DualShock Controller, Nintendo opted to include two Analog-Sticks (ButtonIcon-GCN-Control Stick.pngLeft-Stick/ButtonIcon-GCN-C-Stick.pngC-Stick) on either side of the controller; The methodology gave an excuse to replace the ButtonIcon-N64-C.pngC-Buttons on the N64 Controller with a ButtonIcon-GCN-C-Stick.pngC-Stick, a Fully-Analog companion to the ButtonIcon-GCN-Control Stick.pngLeft-Stick. Both the ButtonIcon-GCN-Control Stick.pngLeft-Stick and the ButtonIcon-GCN-C-Stick.pngC-Stick are virtually identical, with the one exception being their uniquely shaped thumb-sticks (the part of each Analog-Stick that touch the player's thumbs). The N64 Controller's ButtonIcon-N64-L.png and ButtonIcon-N64-R.png have been upgraded on the GameCube Controller to include single-axis ButtonIcon-GCN-L-P.pngAnalog-L-Slider and ButtonIcon-GCN-R-P.pngAnalog-R-Slider as well, while still maintaining ButtonIcon-GCN-L-C.pngDigital-L-Button and ButtonIcon-GCN-R-C.pngDigital-R-Button inputs, respectively.

SSBM was intentionally designed to fit the developers' idea of the connection between how to fit all of the game's options on the controller, and how they thought the player would want to play the game. This ideology, coupled with the manufacturing quirks of the Nintendo GameCube Controller, and the meta-game of competitive SSBM evolving as it did, caused for a rise in discoveries and insights into the general mechanics of the game.

An Introduction to the Controls of SSBM

Fundamental Controls

To a Newcomer, the controls of the Super Smash Bros. franchise are simple to grasp; *(This is just a VERY basic explanation of the controls of SSBM for beginners)

  • The ButtonIcon-GCN-Control Stick.pngLeft-Stick (a.k.a. Main-Stick, Control-Stick, or Grey-Stick) moves the player around. ButtonIcon-GCN-Control Stick-U-S.png makes the character Jump, and ButtonIcon-GCN-Control Stick-D.png makes the character Crouch.
    • Furthermore, how fast the ButtonIcon-GCN-Control Stick.pngLeft-Stick is moved changes character's action.
      • Slowly "Tilt" LeftButtonIcon-GCN-Control Stick-L.png to Walk to the Left, Quickly "Tap" LeftButtonIcon-GCN-Control Stick-L-S.png to Dash to the Left
      • Tilting Up ButtonIcon-GCN-Control Stick-U.png does nothing, Tapping Up ButtonIcon-GCN-Control Stick-U-S.png makes the character Jump (Hence: "Tap-Jump").
    • The ButtonIcon-GCN-X.pngX-Button and ButtonIcon-GCN-Y.pngY-Button each act as dedicated Jump buttons.
  • The ButtonIcon-GCN-A.pngA-Button performs Attacks.
  • The ButtonIcon-GCN-B.pngB-Button performs Special Moves.
    • By using the ButtonIcon-GCN-Control Stick.pngLeft-Stick in tandem with the ButtonIcon-GCN-A.pngA-Button or the ButtonIcon-GCN-B.pngB-Button, different attacks and special moves can be performed, respectively.
    • "Tilting" and "Tapping" the ButtonIcon-GCN-Control Stick.pngLeft-Stick in tandem with the ButtonIcon-GCN-A.pngA-Button or the ButtonIcon-GCN-B.pngB-Button produces different affects; "Tilt" Attacks & "Smash" Attacks for the ButtonIcon-GCN-A.pngA-Button, and similar-but-situational occurrences of Special Move variations for the ButtonIcon-GCN-B.pngB-Button.
  • The ButtonIcon-GCN-C-Stick.pngC-Stick (a.k.a. Right-Stick or Yellow-Stick) acts like a macro of Tapping the ButtonIcon-GCN-Control Stick.pngLeft-Stick and the ButtonIcon-GCN-A.pngA-Button.
  • The ButtonIcon-GCN-L.pngL-Shoulder-Button and ButtonIcon-GCN-R.pngR-Shoulder-Button each make the character hold up their Shield.
    • Pressing the ButtonIcon-GCN-A.pngA-Button while holding up their Shield makes the character perform a Grab.
    • Tilting the ButtonIcon-GCN-Control Stick.pngLeft-Stick while holding up their Shield makes the character Tilt their Shield.
    • Tapping the Left-Stick Left ButtonIcon-GCN-Control Stick-L-S.png and Right ButtonIcon-GCN-Control Stick-R-S.png while holding up their Shield makes the character perform a Roll.
    • Tapping the Left-Stick Down ButtonIcon-GCN-Control Stick-D-S.png while holding up their Shield makes the character perform a Spotdodge.
  • The ButtonIcon-GCN-Z.pngZ-Button acts like a macro of holding down one ButtonIcon-GCN-L.pngL-Shoulder-Button/ButtonIcon-GCN-R.pngR-Shoulder-Button a little bit while also pressing the ButtonIcon-GCN-A.pngA-Button, so a Grab is performed, followed by a larger-but-more-fragile Lightshield if the ButtonIcon-GCN-Z.pngZ-Button is held.
  • The ButtonIcon-GCN-D-Pad.pngD-Pad generally does nothing except Taunt.
  • While in the Air, all of the controls trigger Counterpart Actions to their Grounded Actions.

For a more in-depth overview of the basic game mechanics, and their changes from Super Smash Bros. (N64), watch "Melee Compatitive Mechanics EXPLAINED" YouTube Video by FalseSwipeGaming.

Diving Deeper into SSBM's Control Scheme

Once a player has become familiar with the basic movements and options available, they should have a basic understanding that moving the ButtonIcon-GCN-Control Stick.pngLeft-Stick in a certain way is necessary to performing certain actions in a consistent manner (i.e., ensuring that the ButtonIcon-GCN-Control Stick.pngLeft-Stick is "Tapped" quickly enough to the LeftButtonIcon-GCN-Control Stick-L-S.png or RightButtonIcon-GCN-Control Stick-R-S.png to make the character perform a Dash and not a slower Walk, for example). It is well established that the polished and tight feeling of SSBM's movement engine and similar game mechanics is something to behold, even in the modern era. But, a common criticism of SSBM in contrast to the later titles in the franchise is a feeling of "clunky," "stiff," and/or "unresponsive" controls, as well as a high degree of difficulty to perform the desired actions consistently.

We can analyze these properties as consequences to the decisions made in the development of SSBM's game mechanics, physics engine, and the internal properties of the Nintendo GameCube Controller.

The Technical Specifications of the Nintendo GameCube and the GameCube Controller

Digital Inputs

Each individual button on the controller controls one digital output; ButtonIcon-GCN-A.pngA-Button, ButtonIcon-GCN-B.pngB-Button, ButtonIcon-GCN-X.pngX-Button, ButtonIcon-GCN-Y.pngY-Button, ButtonIcon-GCN-Z.pngZ-Button, ButtonIcon-GCN-L-C.pngDigital-L-Button, ButtonIcon-GCN-R-C.pngDigital-R-Button, ButtonIcon-GCN-D-Pad-U.pngD-Pad Up, ButtonIcon-GCN-D-Pad-D.pngD-Pad Down, ButtonIcon-GCN-D-Pad-L.pngD-Pad Left, ButtonIcon-GCN-D-Pad-R.pngD-Pad Right, and the ButtonIcon-GCN-Start-Pause.pngSTART-Button, for a total of twelve digital inputs.

We'll ignore the ButtonIcon-GCN-D-Pad.pngD-Pad and the ButtonIcon-GCN-Start-Pause.pngSTART-Button for now, as they do not play a role in the game-play controls.

Analog Inputs


Each Analog Stick controls a 2D Grid of X and Y Coordinates, corresponding to their respective East-West and North-South axes. The use of one rotating Potentiometer, per axis, per stick, is used to measure the indirect rotation of that axis' post, cause by moving the stick along that axis with the thumb.

StickMap Visualizer: A Website hosting Altimor's StickMap (Associated Discord, Associated GitHub), a tool to visualize the Coordinate/Angle/Magnitude Plane of SSBM's ButtonIcon-GCN-Control Stick.pngLeft-Stick and/or ButtonIcon-GCN-C-Stick.pngC-Stick.

The ButtonIcon-GCN-L.pngL-Shoulder-Button and ButtonIcon-GCN-R.pngR-Shoulder-Button each have a single Slider Potentiometer that measures their own unique 1D Coordinates, called ButtonIcon-GCN-L-P.pngAnalog-L-Slider and ButtonIcon-GCN-R-P.pngAnalog-R-Slider, respectively.

Controller Input Polling

For information on how the Controller Polling System affects the game-play of SSBM, visit SSBM/Latency

Controller Polling refers to properties of the whole system periodically checking instances of each of the player's inputs in real time.

When SSBM NTSC 1.02 is played on a GameCube or a Wii, there a few different facets of the system that work in tandem to translate the inputs of the GameCube Controller to data that is displayed on the screen in distinct frames (Note: These systems are present no matter the non-console equipment used to play SSBM:

  • The Read Alarm is the protocol that interprets Controller Inputs and deems them suitable to display on the upcoming frame. The Read Alarm runs at 60Hz.
  • The SSBM Game Engine generates frames of data to be displayed. The SSBM Game Engine runs at 60HZ for the first 1000 frames of a match. Once the match reaches the 1001st frame, the SSBM Game Engine is slowed down to 59.94 Hz.
  • The GameCube Display Rate is the technical limitation of the speed at which the GameCube can display frames of data. The GCN Display Rate is capped at 59.94Hz.
    • The Polling Rate is the rate at which the hardware of the GameCube pulls controller inputs, at a constant Clock Speed of 119.88Hz, which is synchronized to the fixed GameCube Display Rate of 59.94Hz.

There exists a discrepancy between the Clock Speeds of each of these separate systems, which can be seen as oversights by the developers of SSBM; In a perfect world, all of these systems would match their Clock Speeds 1:1, however this is not the case in vanilla SSBM. These discrepancies cause two different sources of latency: The Visual Buffer Phenomenon, and the Polling Drift Phenomenon.

Analog Input Formulas for the GameCube Controller and SSBM

System Stick Handling

The input data that the GameCube gathers from both the ButtonIcon-GCN-Control Stick.pngLeft-Stick and ButtonIcon-GCN-C-Stick.pngC-Stick's Potentiometers is handled prior to the receipt of the inputs by SSBM's game engine. The GameCube calculates the mathematical representations of the value range, and then SSBM's engine introduces additional criteria for altering the outputs of the Analog Sticks. From this, we can label the "System ButtonIcon-GCN-Control Stick.pngLeft-Stick/ButtonIcon-GCN-C-Stick.pngC-Stick" as the inputs handled before SSBM's receipt of the inputs, and the "Engine ButtonIcon-GCN-Control Stick.pngLeft-Stick/ButtonIcon-GCN-C-Stick.pngC-Stick" for after SSBM handles the inputs.

Note: This same behavior also occurs for the ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Values, marking the need for the labels "System-ButtonIcon-GCN-L-P.pngAnalog-L-Slider/ButtonIcon-GCN-R-P.pngAnalog-R-Slider" and "Engine-ButtonIcon-GCN-L-P.pngAnalog-L-Slider/ButtonIcon-GCN-R-P.pngAnalog-R-Slider," respectively.

The ButtonIcon-GCN-Control Stick.pngLeft-Stick and the ButtonIcon-GCN-C-Stick.pngC-Stick Potentiometer signals are converted into (X, Y) Coordinates on a 2D Plane. Each of these Coordinates is assigned both an Angle Value in Degrees (°), and a Magnitude Value.

The calculation of the Magnitude of a coordinate (aka the length of a straight line between a given coordinate and (0,0)), the vector length from the Origin (0,0) and that other coordinate is measured with the following formula:

Magnitude = SquareRoot( X^2 + Y^2 )

However, in the context of the Analog Sticks, a coordinate's Magnitude is not calculated using the above formula.

An (X, Y) coordinate is valid to the Nintendo GameCube if it meets all of the following criteria:

I. 0 <= X <= (0 + 0.0125*n), where -80 <= n <= 80
II. 0 <= Y <= (0 + 0.0125*n), where -80 <= n <= 80
III. 0 <= Magnitude <= 1

If an (X, Y) coordinate is measured that is outside of the valid coordinate range, the system traces the vector back to the origin to find the closest coordinate that is valid, and rounds the invalid input to that valid output.

To calculate the Theta of a valid coordinate, the following formula is applied:

Atan2( |Y| ÷ |X| ) * ( 180 ÷ pi ), rounded to 2 Decimal Places

SSBM Game Engine Analog Signal Handling

The ButtonIcon-GCN-Control Stick.pngLeft-Stick and the ButtonIcon-GCN-C-Stick.pngC-Stick

ButtonIcon-GCN-Control Stick.pngLeft-Stick/ButtonIcon-GCN-C-Stick.pngC-Stick Dead Zones
Stick Dead Zones

After the electrical signals outputted by each of the ButtonIcon-GCN-Control Stick.pngLeft-Stick/ButtonIcon-GCN-C-Stick.pngC-Stick's Potentiometers is converted to a valid (X, Y) coordinate, the game engine of SSBM performs some further operations to aid in the balance between inconsistent human input available options in the game-play.

Referring back to StickMap Visualizer: A Website hosting Altimor's StickMap (Associated Discord, Associated GitHub), a tool to visualize the Coordinate/Angle/Magnitude Plane of SSBM's ButtonIcon-GCN-Control Stick.pngLeft-Stick and/or ButtonIcon-GCN-C-Stick.pngC-Stick.: There are marked sections of the grid that represent different types of Dead-Zones on the ButtonIcon-GCN-Control Stick.pngLeft-Stick/ButtonIcon-GCN-C-Stick.pngC-Stick:

I. If -0.2750 >= X <= 0.2750, the game engine treats this as (X = 0)
II. If -0.2750 >= Y <= 0.2750, the game engine treats this as (Y = 0)

What these rules create are the Cardinal Direction Dead Zones. The center of the Stick's Range, extending twenty-two units in all four Cardinal Directions, is the Neutral Dead Zone, where the (X,Y) values of that Analog Stick are treated as (0,0) inputs. If one of the values falls outside of their respective Dead Zone, that value is preserved while the other is treated as a 0.

Notable Stick Coordinates

(+/-0.2875) is the minimum value that activates an axis.

There are twelve coordinates that have 1.0 Magnitudes, the highest magnitude a valid coordinate can have. Due to the microscopic range of the ButtonIcon-GCN-Control Stick.pngLeft-Stick/ButtonIcon-GCN-C-Stick.pngC-Stick, 1.0 Magnitude Coordinates are notorious for being difficult to pinpoint on the GameCube Controller (See the Octagonal Gate term explained below). All twelve Coordinates with 1.0 Magnitude are all on the perimeter of the valid coordinate plane, and have the following angles:

  • 90° West and East Cardinals (+/-1.0000, 0)
  • 90° North and South Cardinals (0, +/-1.0000)
  • 36.87° Rim Coordinates (+/-0.8000, +/-0.6000)
  • 53.13° Rim Coordinates (+/-0.6000, +/-0.8000)

(+/-.9500, +/-.2875) Are the coordinates with the Shallowest Angles, equal to 16.84° (Shallow meaning they hug the X-axis).

(+/-.2875, +/-.9500) Are the coordinates with the Steepest Angles, equal to 73.16° (Steep meaning they hug the Y-axis).


ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value Dead Zones

After the electrical signals outputted by each of the ButtonIcon-GCN-L.pngL-Shoulder-Button/ButtonIcon-GCN-R.pngR-Shoulder-Button's Slider Potentiometers is converted into a valid (0-255) integer unit value, the game engine of SSBM performs some further operations to aid in the balance between inconsistent human input available options in the game-play.

Referring to the B0XX Manifesto section 5.2.4 - Lightshield, the lowest value that activates anything related to the ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value is 43, and the highest is 140. The physical construction of the ButtonIcon-GCN-L.pngL-Shoulder-Button/ButtonIcon-GCN-R.pngR-Shoulder-Button results in the possible analog values above 140 being either too deep to reach without triggering the ButtonIcon-GCN-L-C.pngDigital-L-Button/ButtonIcon-GCN-R-C.pngDigital-R-Button, or are coincidentally out-of-reach for some players with controllers containing controller-manufacturing variations.

The following criteria trigger an L-Cancel Window Input:

  • The transition between an analog value of 0-42 to an analog value of 43-140 on either of the ButtonIcon-GCN-L-P.pngAnalog-L-Slider/ButtonIcon-GCN-R-P.pngAnalog-R-Slider inputs an ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value input.
  • A ButtonIcon-GCN-Z.pngZ-Button press, which itself outputs an ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value of 49.

SSBM Trigger Value Treatment

SSBM treats the ButtonIcon-GCN-L-P.pngAnalog-L-Slider and the ButtonIcon-GCN-R-P.pngAnalog-R-Slider as separate inputs and values; However, in-game, the treatment of having both the ButtonIcon-GCN-L-P.pngAnalog-L-Slider and the ButtonIcon-GCN-R-P.pngAnalog-R-Slider contribute to the execution of the exact same game mechanics causes a variety of behaviors to be exhibited. The ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value and the ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input are determined by the following criteria:

  • If neither ButtonIcon-GCN-L-P.pngAnalog-L-Slider or the ButtonIcon-GCN-R-P.pngAnalog-R-Slider is held inside their respective Lightshield range (43-140), and neither of the ButtonIcon-GCN-L-C.pngDigital-L-Button or the ButtonIcon-GCN-R-C.pngDigital-R-Button are pressed, the game treats the ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value as 0, and the ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input as "Unpressed."
  • If one ButtonIcon-GCN-L-P.pngAnalog-L-Slider/ButtonIcon-GCN-R-P.pngAnalog-R-Slider is held in its Lightshield range and the other ButtonIcon-GCN-L-P.pngAnalog-L-Slider/ButtonIcon-GCN-R-P.pngAnalog-R-Slider is in its Trigger Dead Zone, the game will treat the ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value as equal to the value of the Lightshielding ButtonIcon-GCN-L-P.pngAnalog-L-Slider/ButtonIcon-GCN-R-P.pngAnalog-R-Slider.
  • If both the ButtonIcon-GCN-L-P.pngAnalog-L-Slider and the ButtonIcon-GCN-R-P.pngAnalog-R-Slider are held in each of their respective Lightshield ranges, the game will treat the ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value as equal to the Higher of the two values.
  • If one or both of the ButtonIcon-GCN-L-C.pngDigital-L-Button/ButtonIcon-GCN-R-C.pngDigital-R-Button are pressed, the game treats the ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input as "Pressed."
  • If one ButtonIcon-GCN-L-C.pngDigital-L-Button/ButtonIcon-GCN-R-C.pngDigital-R-Button is pressed, while the other ButtonIcon-GCN-L-P.pngAnalog-L-Slider/ButtonIcon-GCN-R-P.pngAnalog-R-Slider is held in its Lightshield range, the game treats the ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value as equal to 140, and the Digital Button Value as "Pressed." (The Lightshield will be overridden by the Hard Shield if the ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input is "Pressed.")

Dolphin Input Notation Conversion

The Nintendo GameCube/Wii Emulator Dolphin displays each of the six individual Analog values as an integer between 0 and 255.

A GameCube Controller's ButtonIcon-GCN-Control Stick.pngLeft-Stick/ButtonIcon-GCN-C-Stick.pngC-Stick Origin (0, 0) coordinate is represented with the center integers (128, 128). We can convert both ways between Magnitude-Coordinates and Dolphin Integer Values by applying the following formulas:

M = Magnitude Analog Value [-1.0000, -0.9875, ... 1.0000]
D = Dolphin Integer Analog Value [0, 1, ... 255]

Dolphin Value = (M * 80) + 128

Magnitude Value = (D - 128) / 80

Since ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Values are already referred to as integers, there is no conversion necessary.

GameCube Controller Manufacturing Differences, Calibration, and Customization for Competitive SSBM

In the competitive meta-game, there are numerous quirks of manufacturing, calibration options, and community-spawned modifications that contribute heavily to the implementation and exploitation of associated game mechanics of SSBM. This section will refer specifically to GameCube Controllers that are manufactured by Nintendo themselves.

For more information on the GameCube Controller, visit The GCC Controller Library: Contains documentation and guides for all of the different versions and revisions of the Nintendo GameCube Controller.

Terms and Definitions of Controller-Related Quirks

This is a list of terms to refer back to when discussing and exploring the various facets of using controllers of any kind to play Super Smash Bros. Melee.

Snapback refers to the spring-loaded physical action that the thumb-stick on an Analog Stick exhibits when the player releases the thumb-stick from outside of the spring's center; Since the thumb-stick is spring-loaded, the act of pressing the thumb-stick to the any one side and subsequently lifting the thumb off of the thumb-stick to let the thumb-stick spring back to the center is a rather fast action. The mass of the thumb-stick combined with the force exerted by the spring to center the thumb-stick gives the thumb-stick momentum, causing the thumb-stick to swing further than the exact center. This is generally only notable if the swing of the thumb-stick extends past the center Dead Zone, which the game could interpret as an input that the player did not intend.

The Potentiometer Oddity Degradation Effect, shortened to "PODE", is the description of the normal wear-and-tear of Potentiometers. This is much more of an Left/C-Stick issue than an Analog Trigger issue, but it does exist on both to varying degrees. The design of an Analog Stick Potentiometer as used in most video game controllers involves the physical contact of a Wiper part sliding along the inside of a housing, acting as an electronic component called a variable resistor, which translates the current voltage of the Potentiometer to a value along the respective scale; The physical action of the Potentiometers working as intended causes friction, which wears down the accuracy and reliability of the Potentiometer over time. More specific information can be found on Kadano's Guide.

Cardinal Directions refer to North, South, East, and West (or Up, Down, Right, and Left, respectively). The significance of Cardinal Directions in SSBM refers back to how SSBM converts (X and/or Y) values to 0, for each individual axis, if the concerned value is below a certain threshold of 0.2750. Ordinal Directions refer to North-East, North-West, South-East, and South-West. The Ordinal Directions are all zones that aren't located within the Cardinal Direction Dead Zones.

Stickbox-To-Shell Calibration describes the IRL-Spacial-Relationship between the Stickboxes and the Controller Shell. The Precise Analog nature of SSBM's Movement Engine draws importance to the reality that the ability to hit specific desired coordinates on either the Main or C-Sticks is dependent on the physical placement of the Stickbox in question in relation to the Controller Shell's Gate Notches. These positional transformations can be described as translational or rotational (X, Y)-planar transformations.

The GameCube Controller features an Octagonal Gate around both the Main and C-Sticks. The Octagonal Gate has eight Notches, or manufactured carvings in the Controller Shell that are specifically designed to physically guide the thumb-stick to certain coordinates/angles. The Notches are not guaranteed to be aligned with the orientation of the Stickbox it houses on any given GameCube Controller.

The Cardinal Direction Notches are intended to be aligned with (0, +/-1.0000) and (+/-1.0000, 0), respectively, and have angles of 90*n° (where n={0, 1, 2, 3}). The Ordinal Direction Notches are intended to be aligned with (+-0.7000, +/-0.7000), respectively, and have angles of 45*m° (where m={1, 3, 5, 7})

GameCube Controller Manufacturing Variations and Malfunctions

See The GCC Library - GameCube Controller Internals Guide: Guide to the internals of the Nintendo GameCube Controller.

GameCube Controller Calibration

Main- and C-Stick Calibration

As mentioned above, the Stickbox-To-Shell Calibration is important to take into account when playing SSBM. There are several movement/fighting mechanics that are Analog in nature, and therefore are dependent on individual coordinates on one of the Analog-Sticks. The Stickbox-To-Shell Calibration is different on every unmodified GameCube Controller, and this causes a "Controller Lottery" of sorts, referring to the Game of Chance that one participates in when acquiring GameCube Controllers. Some notable mechanics that are relevant to the Competitive SSBM meta-game include:

Dash/Run/Walk/Aerial-Drift Speeds

The East and West Cardinal Notches are intended to align with (+/-1.0000, 0), or 0°. Slight translational and/or rotational misalignments equates to slower movement speeds for these mechanics.


The South-East and South-West Ordinal Notches are intended to align with (+/-0.7000, 0.7000), or 45°. However, if there are translational and/or rotational misalignments present, one or both of these Ordinal Notches can be coincidentally aligned with Y-values on the Rim that make the character perform a Shield-Drop while holding up their Shield and standing on a Drop-Through-Floor (a.k.a. Platform).

A Shield-Drop-Aligned Ordinal Notch is an ordinary Ordinal Notch that happens to be aligned with Y-values (-0.6875 <= Y <= -0.6625) allows the player to perform Shield-Drops using the "Axe/Sung Method."

ADT Shield Toggle

In SSBM, holding an ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value value of 43-140 enables a Light-Shield of proportional size and strength. A ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input enables a Hard-Shield, smaller and stronger than any Light-Shield. These two types of Shields are treated as separate actions by the game. The transition from a Light-Shield to a successive Hard-Shield is called an ADT Shield, a.k.a. an "Analog-To-Digital Transition" Shield. This causes edge-cases in Shield Functionality that arise from the interactions between the two actions, which requires frame-data analysis:

For a Hard Shield/Normal Power-Shield to occur, the following inputs need to be read:

  • Frame 0: No ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input or ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value pressed.
  • Frame 1: A ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input is pressed

However, if a player is attempting to perform a Normal Power-Shield, but the Controller Polling just so happens to read the below inputs, then an ADT Shield will occur:

  • Frame 0: No ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input or ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value pressed.
  • Frame 1: An ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value value between 43-140 is pressed
  • Frame 2: A ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input is pressed - (ADT Shield is triggered)
  • Frame 3: ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input held down - (ADT Shield)

If an ADT Shield Occurs, there are interesting properties that arise; For frames 2 and 3, the Shielding Character remains completely vulnerable to Non-Projectile Attacks, because the Shield Bubble won't interact with them. However, it extends the usefulness of the Projectile Power-Shield Bubble if this ADT Shield state is used for that purpose by using the ButtonIcon-GCN-A.pngA-Button, ButtonIcon-GCN-Z.pngZ-Button, and a ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input:

  • Frame ...0: (Already Holding the ButtonIcon-GCN-A.pngA-Button)
  • Frame 1: ButtonIcon-GCN-Z.pngZ-Button is pressed
  • Frame 2: A ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input is pressed - (ADT Projectile Power-Shield is Triggered)
  • Frame 3: (ADT Projectile Power-Shield)

The desire to have controller polling never be an issue causes a competative player to Disable one or both of the ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value. However, the desire to be able to Light-Shield with full or partial Analog precision, and to Analog-L-Cancel without using the ButtonIcon-GCN-Z.pngZ-Button, requires one or both of the ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value to be functional. The redundancy of the ButtonIcon-GCN-L.pngL-Shoulder-Button and ButtonIcon-GCN-R.pngR-Shoulder-Button serving the exact same role in SSBM's control scheme present the opportunity for a player to have one Shoulder-Button have its Analog Slider intact, while the other has the Analog Slider Disabled.

There are a few ways to disable different ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value ranges:

  1. Holding down the desired Shoulder-Button to a preferred height when plugging the GameCube Controller into the controller port will set an ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value threshold where SSBM will only recognize that ButtonIcon-GCN-L-P.png/ButtonIcon-GCN-R-P.pngAnalog-L/R-Value deeper than the current depth of that particular Shoulder-Button when plugging in. If that Shoulder-Button is held all the way down, SSBM will not register any Analog values.
  2. The same effect can be achieved with Trigger Plugs, which are physical plunger extensions that shorten the distance from the top of the Shoulder-Button's height to the ButtonIcon-GCN-L-C.png/ButtonIcon-GCN-R-C.pngDigital-L/R-Input press. Full Trigger Plugs entirely bypass the Analog Values on that particular Shoulder-Button, and Partial Trigger Plugs enable only the early range of Analog Values on that particular Shoulder-Button.
  3. Opening the Controller and Disconnecting the Post that connects that Shoulder-Button's physical button to the Slider Potentiometer, or Removing the Slider Potentiometer altogether.

GameCube Controller Internal Modifications

See SSBM/GameCube Controller Modifications.

Community-Based Controller Patches

For more information on how these Patches change the nature of SSBM's Game Engine, visit SSBM/Community Patches

Universal Controller Fix (UCF)

Universal Controller Fix (a.k.a. UCF) is the name given to a suite of modifications to SSBM's Game Engine that aim to equalize the viability of GameCube Controllers when compared to each other, with the goal to greatly diminish the need to participate in the "Controller Lottery." Doing so should theoretically make it so that any reasonable-condition GameCube Controller can be used to execute the affected mechanics without the sought-after specific controller qualities needing to be present.

UCF v0.80 Patches

There have been several revisions of UCF developed and tested by a number of SSBM modders and character specialists. The individual patches that are included in UCF v0.80 (Tournament Standard Rule-set):

  • UCF - Dash-Back Patch
    • Extends the window of time for a successful Dash-Back from 1 frame to 2 frames; This bypasses the need for a rare malfunctioning Main-Analog-Stick X-Axis potentiometer.
  • UCF - Shield-Drop Patch
    • Extends the size of the region that executes a Shield-Drop when Rolling is shut off (Axe/Sung Method Shield-Drop); This bypasses the need for a Main-Analog-Stick Octagonal Gate that is coincidentally aligned with the Shield-Drop input region.
  • UCF - Wiggle-Out-of-Tumble Patch
    • Makes it easier to Wiggle-Out-of-Tumble using the same Tilt-Turn Intent mapping as the UCF Dash-Back Patch.

Melee 1.03

Melee 1.03 is a mod pack for SSBM created by Altimor and Hax$ with the purpose of being a satisfying modernization of SSBM to celebrate SSBM's 20th Anniversary. No Patches exclusively present in Melee 1.03 are part of the Tournament Standard Rule-set yet.

Melee 1.03 Patches

Melee 1.03 - Tournament Edition introduces features that are proposed for future revisions of UCF have not become Tournament Standard Features yet:

  • Melee 1.03 Controller Fix - Modified UCF Wiggle-Out-of-Tumble Patch
  • Melee 1.03 Controller Fix - Doraki-Walljump Patch
  • Melee 1.03 Controller Fix - 1.0000-Cardinals Patch
  • Melee 1.03 Controller Fix - Dash-Out-of-Crouch Patch
  • Melee 1.03 Controller Fix - Smash-DI Patch
  • Melee 1.03 Controller Fix - Vertical-Throws Patch

Melee 1.03 - Legacy Edition contains more features that do not fit in the scope of the previously-mentioned Controller Fixes, and exist more-so under the guise of providing options for players who wish to either bypass the need for expensive and rare controller modifications, and/or to alter the base control scheme of SSBM:

  • Melee 1.03 - Z-Jump
    • Allows the user to swap the functionality of the ButtonIcon-GCN-Z.pngZ-Button with either the ButtonIcon-GCN-X.pngX-Button or the ButtonIcon-GCN-Y.pngY-Button.
  • Melee 1.03 - Perfect Angles
    • Allows the user far more generous input criteria for hitting the longest WaveDash angles, and the steepest/shallowest Angled-UpB angles for applicable characters.
  • Melee 1.03 - Tap-Jump Toggle
    • Allows the user to toggle the existence of Tap-Jump, like in later Super Smash Bros. titles.
  • Melee 1.03 - Custom C-Stick
    • Allows the user to independently assign "Tilt-Stick" or "Smash-Stick" functionality to the C-Stick's ButtonIcon-GCN-C-Stick-U.pngUp Inputs, ButtonIcon-GCN-C-Stick-L.pngButtonIcon-GCN-C-Stick-R.pngSide Inputs, and/or ButtonIcon-GCN-C-Stick-D.pngDown Inputs.

Alternative Controllers and Control Schemes for SSBM

Game Navigation

Controls & Notation
Game Mechanics
Universal Strategy
Controller Meta
Archived Information
Gecko Codes
Disc Files
Dr. Mario
Donkey Kong
Captain Falcon
Ice Climbers
Young Link
Mr. Game and Watch
Non-Playable Characters
Male Wireframe
Female Wireframe
Master Hand
Crazy Hand
Giga Bowser