Skip to main content

Overview

The RivalsOfAether mode is designed for the original Rivals of Aether with coordinates optimized for the game’s movement and recovery system. It features 48 DI angles, 24 Up-B angles, and 16 airdodge angles for maximum precision.

Constructor

RivalsOfAether()
Creates a new RivalsOfAether mode instance with default settings.
return
RivalsOfAether
A new mode instance ready for use

Button Layout

Digital Outputs

Action Buttons

  • A: RT1 (Strong/Special)
  • B: RF1 (Attack)
  • X: RF2 (Jump)
  • Y: RF6 (Jump)
  • R (Parry): RF3
  • L (Shield): LF4 (or Nunchuk Z when connected)
  • ZR: RF5
  • Start (+): MB1
  • Select (-): MB3
  • Home: MB2
  • LS Click: RF7
  • RS Click: RF8

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
  • D-Right: RT5
When the D-Pad layer is active, C-stick inputs are disabled.

Analog Stick Range

Extended Range

RivalsOfAether uses wide analog ranges:
  • Minimum: 28
  • Neutral: 128
  • Maximum: 228
This provides 100 units of travel in each direction for maximum precision.

Modifier Coordinates

Mod X (LT1)

InputCoordinatesOffsetUsage
MX + Left/Right128 ± 6666Horizontal
MX + Left/Right + A128 ± 4444Horizontal tilts
MX + Up/Down128 ± 4444Vertical
MX + Up/Down + A128 ± 6767Vertical tilts
Mod X provides precise shallow angles ideal for horizontal recovery and DI.

Mod Y (LT2)

InputCoordinatesOffsetUsage
MY + Left/Right128 ± 4444Horizontal
MY + Up/Down128 ± 6767Vertical
Mod Y provides steep angles ideal for vertical recovery and high DI angles.

Default Coordinates

No Modifiers

InputCoordinatesOffsetUsage
Cardinal128 ± 100100Full range
Diagonal(100, 100)100All quadrants

Angle Coverage

48 DI Angles, 24 Up-B Angles, 16 Airdodge Angles

RivalsOfAether mode provides extensive angle coverage:
  • DI Angles: 48 total angles for optimal directional influence
  • Up-B Angles: 24 recovery angles for precise movement
  • Airdodge Angles: 16 angles for directional airdodges
This is achieved through combinations of:
  • No modifier (8 directions)
  • Mod X + directions (multiple angles)
  • Mod Y + directions (multiple angles)
  • C-stick modifiers (5 additional angles per modifier)

SOCD Configuration

RivalsOfAether requires 2IP No Reactivation for all directional pairs:
  • Left/Right (LF3/LF1) - SOCD_2IP_NO_REAC
  • Down/Up (LF2/RF4) - SOCD_2IP_NO_REAC
  • C-Left/C-Right (RT3/RT5) - SOCD_2IP_NO_REAC
  • C-Down/C-Up (RT2/RT4) - SOCD_2IP_NO_REAC

Special Features

Tilt Attack Support

When holding A (RT1) with modifiers:

Tilt Inputs

ModifierDirectionResult
MXLeft/RightHorizontal tilt (44 offset)
MXUp/DownVertical tilt (67 offset)
MYNo tilt-specific behavior

Nunchuk Support

When a Wii Nunchuk is connected:
  • Z button → L trigger (shield)
  • C button → Lightshield (analog 49)
  • Analog stick → Overrides left stick completely

C-Stick Disabled in D-Pad Layer

When both Mod X + Mod Y are held:
  • C-stick is centered (128, 128)
  • D-Pad inputs are active
  • Prevents accidental C-stick inputs during menu navigation

Example Usage

#include "modes/RivalsOfAether.hpp"

// Create Rivals mode instance
RivalsOfAether rivals_mode;

// Configure with SOCD 2IP No Reactivation
GameModeConfig config = {
    .mode_id = MODE_RIVALS_OF_AETHER,
    .socd_pairs_count = 4,
    .socd_pairs = {
        SocdPair { .button_dir1 = BTN_LF3, .button_dir2 = BTN_LF1, .socd_type = SOCD_2IP_NO_REAC },
        SocdPair { .button_dir1 = BTN_LF2, .button_dir2 = BTN_RF4, .socd_type = SOCD_2IP_NO_REAC },
        SocdPair { .button_dir1 = BTN_RT3, .button_dir2 = BTN_RT5, .socd_type = SOCD_2IP_NO_REAC },
        SocdPair { .button_dir1 = BTN_RT2, .button_dir2 = BTN_RT4, .socd_type = SOCD_2IP_NO_REAC },
    },
};

rivals_mode.SetConfig(config);

Angle Reference Tables

Mod X Angles

Mod X Angle Breakdown

C-StickX OffsetY OffsetAngle Type
None5923Base
C-Down4924DI & Up-B
C-Left5231DI
C-Up4935DI
C-Right5143DI

Mod Y Angles

Mod Y Angle Breakdown

C-StickX OffsetY OffsetAngle Type
None44113Base
C-Down4490DI & Up-B
C-Left4474DI
C-Up4563DI
C-Right4757DI

Comparison with Other Modes

Mode Comparison

FeatureRivalsOfAetherUltimate
SOCD type2IP No Reactivation2IP
Analog range28-228 (±100)28-228 (±100)
DI angles48~32
Up-B angles24~16
Shield systemL/ZRZL/ZR
Parry buttonRF3 (R)No dedicated
  • Ultimate - Similar platform fighter with different angles
  • Melee20Button - Traditional Smash coordinates

Source Code

  • Header: include/modes/RivalsOfAether.hpp
  • Implementation: src/modes/RivalsOfAether.cpp

Build docs developers (and LLMs) love