JazzerThighs (talk | contribs) mNo edit summary |
JazzerThighs (talk | contribs) No edit summary |
||
Line 223: | Line 223: | ||
'''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. | '''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 | '''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 ''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''. | ||
Line 244: | Line 244: | ||
<div class="mw-collapsible mw-collapsed" data-expandtext="Click to expand" data-collapsetext="Click to collapse"> | <div class="mw-collapsible mw-collapsed" data-expandtext="Click to expand" data-collapsetext="Click to collapse"> | ||
==== '''Main-''' and '''C-Stick''' Calibration ==== | |||
<div class="mw-collapsible mw-collapsed" data-expandtext="Click to expand" data-collapsetext="Click to collapse"> | |||
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. | |||
===== Shield-Drop ===== | |||
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:" | |||
# Disable Roll by moving the '''Main-Analog-Stick''' outside of the X-Axis-Cardinal Dead-Zone for 4 Frames without entering the Roll Range (X >= 0.6000) or (X <= -0.6000). | |||
# Tilt the '''Main-Analog-Stick''' to the desired East or West Cardinal Notch. | |||
# Quickly Tilt the '''Main-Analog-Stick''' to the desired South-East or South-West Ordinal Notch to perform a Shield-Drop if the character is holding Shield at this point. | |||
</div> | |||
Line 251: | Line 273: | ||
In ''SSBM'', holding an '''Analog L/R Shoulder Button''' value of 43-140 enables a | In ''SSBM'', holding an '''Analog-L-/R-Shoulder-Button''' value of 43-140 enables a Light-Shield of proportional size and strength. A '''Digital-L-/R-Shoulder-Button''' enables a Hard-Shield, smaller and stronger than any Light-Shield. These two types of Shields are treated as separate actions by the game. This causes edge-cases that arise from the interactions between the two actions, which requires frame-data analysis: | ||
</div> | </div> |
Revision as of 15:23, 16 August 2022
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 related to the visualization of Controller Inputs, visit these pages:
- Altimor's StickMap and the Associated Discord.
- SmashScope.
- M'Overlay.
- UnclePunch's Training Mode.
- 20XX Hack Pack
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 on either side of the controller; The methodology gave an excuse to replace the C-Buttons on the N64 Controller with a C-Stick, a Fully-Analog companion to the Main-Analog-Stick. Both of these Sticks are virtually identical, with the one exception for their uniquely shaped thumb-sticks (the part of the Sticks that touch the player's thumbs). The N64 Controller's L- and R-Shoulder-Buttons have been upgraded to include single-axis Analog Sliders as well, while still maintaining Digital-L-Button and Digital-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 Main-Analog-Stick (a.k.a. Left-Stick or Grey-Stick) moves the player around. Main-Stick-Up makes the character Jump, and Main-Stick-Down makes the character Crouch.
- Furthermore, how fast the Left-Stick is moved changes character's action. Slowly "Tilt" left to Walk, Quickly "Tap" left to Dash (i.e. Tilting Up does nothing, Tapping Up makes the character Jump (Hence: "Tap-Jump").
- The X-Button and Y-Button each act as dedicated Jump buttons.
- The A-Button performs Attacks.
- The B-Button performs Special Moves.
- By using the Left-Stick in tandem with the A-Button or the B-Button, different attacks and special moves can be performed, respectively.
- "Tilting" and "Tapping" the Main-Analog-Stick in tandem with the A-Button or the B-Button produces different affects; "Tilt" Attacks & "Smash" Attacks for the A-Button, and similar-but-situational occurrences of Special Move variations for the B-Button.
- The C-Stick (a.k.a. Right-Stick or Yellow-Stick) acts like a macro of Tapping the Left-Analog-Stick and the A-Button.
- The L- and R-Shoulder-Buttons makes the character hold up their Shield.
- Pressing the A-Button while holding up their Shield makes the character perform a Grab.
- Tilting the Main-Analog-Stick while holding up their Shield makes the character Tilt their Shield.
- Tapping the Main-Stick-Left/Right while holding up their Shield makes the character perform a Roll.
- Tapping the Main-Stick-Down while holding up their Shield makes the character perform a Spotdodge.
- The Z-Button acts like a macro of holding down one L- or R-Shoulder-Button a little bit while also pressing the A-Button, so a Grab is performed, followed by a larger-but-more-fragile Lighthield if the Z Button is held.
- The D-Pad generally does nothing except Taunt.
- While in the Air, all of the controls trigger Counterpart Actions to their Grounded Actions.
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 Analog Sticks in a certain way is necessary to performing certain actions in a consistent manner (i.e. ensuring that the Left Stick is "Tapped" quickly enough to the left or right 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
Controller Input Polling
Digital Inputs
Each individual button on the controller controls one digital output; A-Button, B-Button, X-Button, Y-Button, Z-Button, Digital-R-Button, Digital-L-Button, D-Pad-Up, D-Pad-Down, D-Pad-Left, D-Pad-Right, and the START-Button, for a total of twelve digital inputs.
We'll ignore the D-Pad and the START-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.
Altimor's StickMap is a program used to visualize the (X, Y) Grid of Coordinates that each Analog-Stick is able to measure.
Analog Input Formulas for the GameCube Controller and SSBM
System Stick Handling
The input data that the GameCube gathers from both the Main and C-Stick 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 Main/C-Stick" as the inputs handled before SSBM's receipt of the inputs, and the "Engine Main/C-Stick" for after SSBM handles the inputs.
Note: This same behavior also occurs for the L- and R-Shoulder-Button's Slider Potentiometer values, marking the need for the labels "System-Trigger" and "Engine-Trigger," respectively.
The Main-Stick and the C-Stick 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 )
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:
Atan( |Y| ÷ |X| ) * ( 180 ÷ pi ), rounded to 2 Decimal Places Note: for X = 0, the Angle assigned is 90°; (0, 0) is assigned 0°.
SSBM Game Engine Analog Signal Handling
Analog and C-Sticks
Stick Dead Zones
After the electrical signals outputted by each of the Analog Sticks' 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 the StickMap, there are marked sections of the grid that represent different types of Dead-Zones on the Analog Sticks:
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 Analog Sticks, 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).
L and R Analog Triggers
Trigger Dead Zones
After the electrical signals outputted by each of the L and R 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 triggers anything related to the Analog L/R triggers is 43, and the highest is 140. The physical construction of the L and R Shoulder Buttons results in the possible analog values above 140 being either too deep to reach without triggering the Digital L Button/Digital 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 L or R Shoulder Buttons inputs an "Analog Trigger Input."
- A Z Button press, which itself outputs an analog L/R value of 49.
SSBM Trigger Value Treatment
SSBM treats the Analog L Shoulder Button and the Analog R Shoulder Button as separate inputs and values; However, in-game, the treatment of having both analog triggers contribute to the execution of the exact same game mechanics causes a variety of behaviors to be exhibited. The Analog Trigger Value and the Digital Trigger Value are determined by the following criteria:
- If neither trigger is held inside their respective Lightshield range (43-140), and neither of the Digital L or R Buttons are pressed, the game treats the Analog Trigger Value as 0, and the Digital Button Value as "Unpressed."
- If one trigger is held in its Lightshield range and the other trigger is in its Trigger Dead Zone, the game will treat the Analog Trigger Value as equal to the value of the Lightshielding trigger.
- If both triggers are held in each of their respective Lightshield ranges, the game will treat the Analog Trigger Value as equal to the Higher of the two trigger values.
- If one or both of the L/R Shoulder Buttons' Digital Buttons are pressed, the game treats the Digital Button Value as "Pressed."
- If one Shoulder Button's Digital Button is pressed, while the other Shoulder Button is held in its Lightshield range, the game treats the Analog Trigger Value as equal to the Lightshielding trigger, and the Digital Button Value as "Pressed."
The Lightshield will be overridden by the Hard Shield if the Digital Button Value is "Pressed."
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, bearing one of three decals on the face of the controller:
- NINTENDO GAMECUBE
- The Super Smash Bros. for WiiU/3DS Smash Ball Logo
- The Super Smash Bros. Ultimate Smash Ball Logo
For documentation on the various models of the Nintendo GameCube Controller, visit The GCC Controller Library.
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
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.
Shield-Drop
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:"
- Disable Roll by moving the Main-Analog-Stick outside of the X-Axis-Cardinal Dead-Zone for 4 Frames without entering the Roll Range (X >= 0.6000) or (X <= -0.6000).
- Tilt the Main-Analog-Stick to the desired East or West Cardinal Notch.
- Quickly Tilt the Main-Analog-Stick to the desired South-East or South-West Ordinal Notch to perform a Shield-Drop if the character is holding Shield at this point.
ADT Shield Disabling
In SSBM, holding an Analog-L-/R-Shoulder-Button value of 43-140 enables a Light-Shield of proportional size and strength. A Digital-L-/R-Shoulder-Button enables a Hard-Shield, smaller and stronger than any Light-Shield. These two types of Shields are treated as separate actions by the game. This causes edge-cases that arise from the interactions between the two actions, which requires frame-data analysis:
GameCube Controller Internal Modifications