Skip to content

Wii U Triggers and Wii Controller Support - #236

Open
MegaCadeDev wants to merge 95 commits into
wiredopposite:masterfrom
MegaCadeDev:master
Open

MegaCadeDev wants to merge 95 commits into
wiredopposite:masterfrom
MegaCadeDev:master

Conversation

@MegaCadeDev

Copy link
Copy Markdown

Bluepad32.cpp has been updated to correct the Wii U controllers not registering their triggers correctly. I have also changed the pairing filter so that Wii controllers can also sync with the device. Confirming that also the extended gamepads of Wii Remotes also work as well.

MegaCadeDev and others added 7 commits July 30, 2025 14:55
Added IDs for Wii U Pro Controller, 8BitDo Ultimate Bluetooth Controller, Switch 1 Joy cons (Left and Right) and Ouya Gen 1 Controller.
Fixed Wii and Wii U controller support, RB LB and RT LT work now for both controllers
Updated README to reflect the fork status and added new features for Wii U Pro and Wii Remotes. Changed purchase link to the original creator's store.
Clarified the installation instructions for ESP-IDF and BTStack.
@MegaCadeDev

Copy link
Copy Markdown
Author

Also there is a button combo added for Start+Select to disconnect the controllers and put the OGX back into pairing mode. This combo for the Ouya controller is mapped to R3+L3.

MegaCadeDev and others added 16 commits February 8, 2026 04:34
Updated repository URL in the cloning instructions.
Updated supported platforms and added new features for Wii U and Switch.
Updated project name and year in README.
…ways-send; remove scripts from repo

- docs/README.md: project overview, output modes, XInput/360, latency, building
- docs/IMPROVEMENTS.md: XInput/360 section, latency default 0, always-send in XInput
- MAIN_LOOP_DELAY_US default 0 (Config.h, CMakeLists.txt)
- XInput process(): always send latest state when USB ready
- .gitignore: add Firmware/RP2040/scripts; scripts removed from tracking (not shipped with build)

Made-with: Cursor
Updated README to include new features and changes for version 1.0.0.4a and 1.0.0.3a patched.
@MegaCadeDev

Copy link
Copy Markdown
Author

Wanted to add to this pull I added:

  • Xbox 360 support to natively do the controller authentication handshake.
  • Removed latency from PS3 and 360 input on XBO and PS5 controllers.
  • Corrected vibration not working with Pico 2 W on PS3 and 360
  • Added a Wii U mode that emulates the GameCube controller adapter on Wii U and Switch consoles
  • Corrected the Wii U and Switch Pro triggers not registering correctly.
  • Added support for Wii Remotes with Classic Controller/ GameCube Controller/ Nunchuck mappings.

@Invictaz

Copy link
Copy Markdown

Wanted to add to this pull I added:

* Xbox 360 support to natively do the controller authentication handshake.

* Removed latency from PS3 and 360 input on XBO and PS5 controllers.

* Corrected vibration not working with Pico 2 W on PS3 and 360

* Added a Wii U mode that emulates the GameCube controller adapter on Wii U and Switch consoles

* Corrected the Wii U and Switch Pro triggers not registering correctly.

* Added support for Wii Remotes with Classic Controller/ GameCube Controller/ Nunchuck mappings.

I think you mean ps3 and 360 output instead of input?

@MegaCadeDev

Copy link
Copy Markdown
Author

Wanted to add to this pull I added:

* Xbox 360 support to natively do the controller authentication handshake.

* Removed latency from PS3 and 360 input on XBO and PS5 controllers.

* Corrected vibration not working with Pico 2 W on PS3 and 360

* Added a Wii U mode that emulates the GameCube controller adapter on Wii U and Switch consoles

* Corrected the Wii U and Switch Pro triggers not registering correctly.

* Added support for Wii Remotes with Classic Controller/ GameCube Controller/ Nunchuck mappings.

I think you mean ps3 and 360 output instead of input?

I was referring to the input from those specific controllers outputting in those formats

MegaCadeDev and others added 30 commits September 10, 2026 09:26
Save Victrix Gambit wired GIP support and Cyclone wireless/docs progress.
Dedicated USB and Classic BT drivers for 3537:1022, defer BT quiet until the run loop is ready so a plugged pad no longer assert-reboots, and document pressing Home after USB connect.

Co-authored-by: Cursor <cursoragent@cursor.com>
Note Bluetooth and NS/Switch mode as unsupported so users stick to wired or 2.4 GHz.

Co-authored-by: Cursor <cursoragent@cursor.com>
Fix Xbox BLE HIDS initialization on Pico W boards
   * Auto-Reset Logic: Implemented the specific DTR/RTS signal mapping required for direct (transistor-less) Pico-to-ESP32 connections.
   * Protection Window: Added a 5-second ignore window for DTR/RTS signals upon entering UART mode. This prevents the OS from accidentally knocking the ESP32 out of its manual bootloader state when the COM port
     is first opened.
   * High-Speed Stability: Moved UART handling to a high-priority polling loop on Core 1 and added volatile memory protection to prevent data loss at high baud rates.
   * Auto-Exit: Restored the logic to detect the PROGRAMMING_COMPLETE flag so the Pico reboots back to controller mode automatically.
Updated declarations to expose the new bridge control and callback functions.
Implementation: Overrode the new CDC callbacks to pass signal data directly into the core bridge logic.
Implementation: Overrode the new CDC callbacks to pass signal data directly into the core bridge logic.
Improved Timing: Refined the enter_programming_mode() sequence to hold the Boot pin (GPIO0) LOW for a full 500ms after reset, ensuring the ESP32 reliably catches the bootloader state.
Performance: Increased CDC TX/RX buffer sizes from 256 to 1024 bytes. This is required to prevent "Sync" errors when flashing at high speeds (e.g., 921600 baud).
Infrastructure: Linked the global TinyUSB CDC events (Line State/Coding) to the internal driver system so the UART bridge can actually "hear" the DTR/RTS signals from the PC.
Architecture: Added virtual methods for CDC callbacks to the base driver class, allowing the UART bridge to implement them without breaking other drivers.
Bluepad32 now resolves the pinned HOGP Report Map commit from MegaCadeDev/btstack instead of upstream BlueKitchen.
Ensure the Control Point write-without-response patch actually lands (content check, not false “already applied”), defer Xbox BLE keepalive until first input, list OGX Live as maintainer-supported, and clarify PS4 mode is for auth-dongle motion only.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add per-device Xbox 360 USB/XSM3 identity for multiple adapters
Fix Bluetooth controller input after reconnect
ESP32 UART Bridge Fix (Flash ESP32 via Pico)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants