Overview
TheMelee18Button mode implements an 18-button layout for Super Smash Bros. Melee without dedicated analog trigger buttons. Instead, it uses L/R button combinations with modifiers for lightshield and midshield, providing full shield control without additional buttons.
Constructor
Configuration options for the mode. Defaults to all options disabled.
A new mode instance ready for use
Configuration
Melee18ButtonOptions
The options struct configures mode-specific behavior:Enable crouch walk option select for Q3/Q4 diagonals. When enabled, down-back and down-forward diagonals use coordinates (56, 55) instead of (56, 56) by default, matching shield drop angle (7000, 6875).
Button Layout
Digital Outputs
Action Buttons
- A: RT1
- B: RF1
- X: RF2
- Y: RF6
- L: LF4 (or Nunchuk Z when connected)
- R: RF5
- Z: RF3
- 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
D-Pad Layer
Activate by holding Mod X + Mod Y:- 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.
Shield System
The 18-button layout uses a sophisticated shield system without dedicated analog trigger buttons:Basic Shield
L Button (LF4)
- Digital L trigger with automatic analog value 140
- Overrides modifiers for wavedash consistency
- Special shield tilt coordinates when combined with directions
Shield Modulation
- Midshield (L + Mod X)
- Lightshield (L + Mod Y)
- Trigger: RF8 analog = 94 (digital off)
- Diagonal: (51, 30) = 6375, 3750 (airdodge angle)
- Provides medium shield coverage
L Button Coordinates
L + Directional Inputs
| Input | Coordinates | Game Units | Usage |
|---|---|---|---|
| L + Left/Right | 128 ± 80 | 10000 | Wavedash angle |
| L + Up/Down | 128 ± 80 | 10000 | Full shield tilt |
| L + Up + Left/Right | (43, 43) | 5375, 5375 | Angled shield |
| L + Down + Left/Right | (57, 55) | 7125, 6875 | Shield drop angle |
R Button Shield System
R Button (RF5)
The R button provides alternative shield angles:
| Input | Coordinates | Game Units | Usage |
|---|---|---|---|
| R + Left/Right | 128 ± 51 | 6375 | Shield tilt |
| R + Up/Down | 128 ± 43 | 5375 | Vertical shield |
| R + Diagonal | (43, Y) | 5375, Y | Base diagonal |
| R + MX + Diagonal | (51, 30) | 6375, 3750 | Airdodge |
| R + MY + Diagonal | (40, 68) | 5000, 8500 | High angle |
Modifier Coordinates
Mod X (LT1)
- Cardinal Directions
- Up-B Angles
- Extended Up-B (+ B)
- Angled F-Smash
| 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
- Up-B Angles
- Extended Up-B (+ B)
- Turnaround 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 with crouch_walk_os | (56, 55) | 7000, 6875 | Shield drop default |
Special Features
SOCD Configuration
Ledgedash SOCD Override
When horizontal SOCD is detected (Left + Right pressed) and:- No vertical direction is held
- R button is NOT pressed
The ledgedash SOCD override is always enabled in Melee18Button mode and cannot be disabled.
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
Nunchuk Support
When a Wii Nunchuk is connected:
- Z button → L trigger (digital)
- C button → Lightshield (analog 49)
- Analog stick → Overrides left stick completely
Comparison with Melee20Button
- Advantages
- Differences
- Fewer buttons required (18 vs 20)
- Manual shield modulation via L+MX/MY combinations
- No extra trigger buttons needed
- More flexible shield control without dedicated hardware
Example Usage
Related Modes
- Melee20Button - 20-button variant with dedicated analog triggers
- ProjectM - Project M/Project+ specific coordinates
Source Code
- Header:
include/modes/Melee18Button.hpp - Implementation:
src/modes/Melee18Button.cpp
