Most controller issues can be resolved by checking power requirements, adapter compatibility, and polling rate settings.
Common Issues
Controller not working with console or GameCube adapter
Controller not working with console or GameCube adapter
This is one of the most common issues and usually relates to polling rate optimization or adapter compatibility.
Arduino-based controllers with official adapters
If you are using an official adapter with an Arduino-based controller, you will likely need to disable the polling latency optimization:- Hold A on plugin - This disables the polling latency optimization by passing in a polling rate of 0 to the GamecubeBackend constructor
Power requirements
Different microcontrollers have different power requirements:Arduino-based controllers (without boost circuit):- Require 5V power
- For Mayflash adapter: both USB cables must be plugged in
- For console: the rumble line needs to be intact
- Work natively with 3.3V power
- No special power requirements
Arduino-based controller not responding
Arduino-based controller not responding
Arduino-based controllers (like B0XX R1-3, LBX) have specific power requirements that differ from Pico-based controllers.
Check power supply
Arduino controllers without a boost circuit require 5V power:- On Mayflash adapter: Ensure both USB cables are plugged in
- On console: Verify the rumble line in your GameCube cable is intact
- On official adapter: Hold A on plugin to disable polling optimization
Polling rate issues
If the controller works but feels laggy or inconsistent:- Hold RT1 (A) on plugin to enable GameCube backend with polling rate fix disabled
- This is specifically designed for use with GCC adapters
Pico/RP2040 controller issues
Pico/RP2040 controller issues
While Pico-based controllers generally have better compatibility, there are still some things to check.
Power advantages
Pico controllers work natively with 3.3V power, making them more compatible:- No boost circuit required
- More flexible power options
- Better adapter compatibility
Entering bootsel mode
To flash new firmware or troubleshoot:- Hold RT2 (C-Down) on plugin to enter bootsel mode
- The Pico will appear as a USB drive (RPI-RP2)
- Drag and drop
.uf2firmware files
Polling rate
Unlike Arduino, Pico doesn’t require polling rate configuration:- Pico has enough processing power to read inputs after receiving the console poll
- No need to predict poll timing
- Automatic optimization for both console and PC use
Mayflash adapter setup
Mayflash adapter setup
The Mayflash GameCube adapter requires specific setup depending on your controller type.
Arduino-based controllers
- Plug in both USB cables - Arduino controllers need 5V power
- The first cable (data + power) connects to your PC
- The second cable (power only) provides additional power
Pico-based controllers
- Only one USB cable needed
- Native 3.3V operation
- Plug and play compatibility
Official adapter compatibility
Official adapter compatibility
The official Nintendo GameCube adapter has specific compatibility requirements with HayBox.
Arduino controllers
Required action: Hold A on pluginThis disables the polling latency optimization that is incompatible with official adapters. Specifically:- Passes a polling rate of 0 to the GamecubeBackend constructor
- Disables predictive polling timing
- Ensures compatibility with official adapter firmware
Why this is necessary
By default, HayBox optimizes polling for reduced latency by predicting when the next poll will arrive. The official adapter’s timing doesn’t work well with this optimization, requiring it to be disabled.Alternative button holds
- RT1 (A) on plugin - GameCube backend with polling rate fix disabled (for GCC adapters)
- RT3 (C-Left) on plugin - Nintendo 64 backend (60Hz polling rate)
Boost circuit requirements
Boost circuit requirements
Some Arduino-based controllers require a boost circuit to function properly without external power.
What is a boost circuit?
A boost circuit steps up voltage from 3.3V to 5V, allowing Arduino controllers to:- Operate with single USB cable on adapters
- Work without rumble line on console
- Function independently of external 5V power
Controllers without boost circuits
If your Arduino controller lacks a boost circuit:On Mayflash adapter:- Requires both USB cables plugged in
- Cannot operate on single cable power
- Requires intact rumble line for power
- May not work with damaged GameCube cables
Pico alternative
Pico/RP2040 controllers don’t need boost circuits because:- Native 3.3V operation
- Lower power requirements
- Better power efficiency
If you’re building a new controller, consider using a Pico/RP2040 to avoid boost circuit requirements entirely.
Console detection issues
Console detection issues
HayBox automatically detects whether you’re plugged into a console or USB, but sometimes this needs manual override.
Pico/RP2040 auto-detection
Automatically detects:- USB vs GameCube vs Nintendo 64
- Default is XInput for USB (PC gaming)
- RF2 (X) - Nintendo Switch USB mode (also sets Ultimate mode)
- RF3 (Z) - DInput mode (for games without XInput support)
Arduino/AVR detection
- USB detected → DInput backend
- No USB → GameCube backend by default
- RT1 (A) - GameCube backend with polling rate fix disabled (for GCC adapters)
- RT3 (C-Left) - Nintendo 64 backend (60Hz polling rate)
Dolphin/Slippi not detecting inputs
Dolphin/Slippi not detecting inputs
If your controller is recognized but inputs aren’t working in Dolphin or Slippi, you likely need the correct controller profile.
Profile files
HayBox uses different mappings than official B0XX firmware. Profiles are located in thedolphin folder:Windows:HayBox_XInput.ini- For Pico/RP2040 (e.g., B0XX R4)HayBox_DInput.ini- For Arduino/AVR (e.g., B0XX R1-3, LBX)
HayBox_XInput_Linux.ini- For Pico/RP2040HayBox_DInput_Linux.ini- For Arduino/AVR
HayBox_DInput_macOS.ini- DInput only (limited support)
Installation locations
Slippi Launcher:- Windows:
%appdata%\Slippi Launcher\netplay\User\Config\Profiles\GCPad\ - Linux:
~/.config/SlippiOnline/Config/Profiles/GCPad/ - macOS:
/Users/<USER>/Library/Application Support/Slippi Launcher/netplay/Slippi Dolphin.app/Contents/Resources/Sys/Config/Profiles/GCPad
- Windows:
%userprofile%\Documents\Dolphin Emulator\Config\Profiles\GCPad\ - Linux:
~/.config/dolphin-emu/Profiles/GCPad/
Setup steps
- Copy the appropriate
.inifile to the correct folder - In Dolphin, configure a “Standard Controller”
- Click Refresh next to the Device dropdown
- Select the HayBox profile and click Load (not Save)
- Ensure correct device is selected in dropdown
Mode switching not working
Mode switching not working
HayBox allows mode switching on-the-fly, but requires specific button combinations.
Default controller modes
Hold Start + Mod X + one of:- L - Melee mode (default)
- Left - Project M/Project+ mode
- Down - Ultimate mode
- B - Rivals of Aether mode
- R - Rivals of Aether 2 mode
- Right - FGC mode (Hitbox style)
Default keyboard modes
Only available with DInput backend (not XInput):- Start + Mod Y + L - Default keyboard mode
Troubleshooting
If mode switching isn’t working:- Ensure you’re pressing the correct combination
- Verify all buttons in the combination are functioning
- Check that you’re not in a mode that remaps these buttons
- For keyboard modes, confirm you’re using DInput backend
Building/flashing issues
Building/flashing issues
If you’re having trouble compiling or flashing HayBox firmware.
First time Pico build
If you see “Rebuilding IntelliSense Index” or “Loading Project Tasks”:- Wait for it to complete - This can take a while
- First build downloads 2-3GB of dependencies
- Subsequent builds will be much faster
Windows long path issues
On Windows, first time building HayBox:- Open any terminal (VS Code terminal, cmd, or PowerShell)
- Run:
git config --global core.longpaths true - Restart VS Code if necessary
Flashing failures
Pico/RP2040:- Hold bootsel button while plugging in (or RT2/C-Down if HayBox already installed)
- Wait for RPI-RP2 drive to appear
- Drag and drop
.uf2file onto the drive
- Use QMK Toolbox or similar tool to flash
.hexfiles - Ensure correct COM port is selected
- Try resetting the board if flashing fails
Getting Help
If your issue isn’t covered here:- Check the GitHub Issues for similar problems
- Review the README for detailed configuration info
- Join the community Discord for real-time support
- Create a new GitHub issue with detailed information about your setup
