Overview
TheMelee20Button mode implements the standard B0XX-style 20-button layout for Super Smash Bros. Melee. It features comprehensive modifier support for precise analog inputs, Up-B angles, shield angles, and advanced techniques like ledgedash SOCD override.
Constructor
A new mode instance ready for configuration
Configuration
SetConfig
Base configuration including SOCD pairs and button remapping
Melee-specific configuration options
MeleeOptions
TheMeleeOptions struct configures mode-specific behavior:
Enable crouch walk option select for Q3/Q4 diagonals (7000, 6875 coordinates)
Disable horizontal SOCD override for ledgedash maximum jump trajectory
Enable custom airdodge angle instead of B0XX standard (51, 30)
Custom X-axis coordinate for MX + diagonal + shield (0-100)
Custom Y-axis coordinate for MX + diagonal + shield (0-100)
Button Layout
Digital Outputs
Action Buttons
- A: RT1
- B: RF1
- X: RF2
- Y: RF6
- L: LF4 (or Nunchuk Z when connected)
- R: RF3
- Z: RF5
- Start: MB1
Directional Inputs
Movement
- Left: LF3
- Right: LF1
- Down: LF2
- Up: RF4
C-Stick
- C-Left: RT3
- C-Right: RT5
- C-Down: RT2
- C-Up: RT4
Modifiers
Modifier Buttons
- Mod X: LT1
- Mod Y: LT2
- Lightshield: RF7 (49 analog)
- Midshield: RF8 (94 analog)
D-Pad Layer
Activate by holding Mod X + Mod Y or Nunchuk C:- D-Up: RT4
- D-Down: RT2
- D-Left: RT3 (or MB3)
- D-Right: RT5 (or MB2)
When the D-Pad layer is active, C-stick inputs are disabled.
Modifier Coordinates
Mod X (LT1)
- Cardinal Directions
- Diagonal + Shield
- Up-B Angles
- Extended Up-B (+ B)
| Input | Coordinates | Game Units | Usage |
|---|---|---|---|
| MX + Left/Right | 128 ± 53 | 6625 | Horizontal tilt |
| MX + Up/Down | 128 ± 43 | 5375 | Vertical positioning |
Mod Y (LT2)
- Cardinal Directions
- Diagonal + Shield
- Up-B Angles
- Extended Up-B (+ B)
| Input | Coordinates | Game Units | Usage |
|---|---|---|---|
| MY + Left/Right | 128 ± 27 | 3375 | Slow walk |
| MY + Up/Down | 128 ± 59 | 7375 | High vertical |
Default Coordinates
No Modifiers
| Input | Coordinates | Game Units | Usage |
|---|---|---|---|
| Cardinal | 128 ± 80 | 10000 | Max tilt |
| Q1/Q2 Diagonal | (56, 56) | 7000, 7000 | Standard wavedash |
| Q3/Q4 Diagonal + Shield | (56, 55) | 7000, 6875 | Shield drop angle |
Special Features
SOCD Configuration
Ledgedash SOCD Override
When horizontal SOCD is detected (Left + Right pressed simultaneously) and no vertical direction is held:- Overrides all X-axis modifiers
- Sets X coordinate to 128 ± 80 (10000 units)
- Enables maximum jump trajectory for ledgedash
- Can be disabled via
disable_ledgedash_socd_overrideoption
Angled F-Smash
With Mod X + C-Left/Right + Up/Down:- C-stick: (68, 42) = 8500, 5250
- Left stick uses Y-axis direction
C-Stick ASDI Slideoff
With diagonal C-stick input (any combination):- Coordinates: (42, 68) = 5250, 8500
- Overrides other C-stick modifiers
- Optimal for ASDI down slideoff
Turnaround Neutral-B Nerf
With Mod Y + B + Left/Right:- Coordinates: 128 ± 80 (10000 units)
- Prevents unwanted turnarounds
Analog Triggers
Trigger Values
| Trigger | Digital Value | Analog Value |
|---|---|---|
| L Digital | 140 | 140 when pressed |
| R Digital | 140 | 140 when pressed |
| Lightshield (RF7) | - | 49 |
| Midshield (RF8) | - | 94 |
Nunchuk Support
When a Wii Nunchuk is connected:
- Z button → L trigger
- C button → D-Pad layer activation
- Analog stick → Overrides left stick completely
Example Usage
Related Modes
- Melee18Button - 18-button variant without dedicated analog triggers
- ProjectM - Project M/Project+ specific coordinates
Source Code
- Header:
include/modes/Melee20Button.hpp - Implementation:
src/modes/Melee20Button.cpp
