2024-02-20 12:28:46 -07:00
# OGX-Mini

2024-03-09 23:03:25 -07:00
Firmware for the RP2040, setup for the [Adafruit Feather USB Host board ](https://www.adafruit.com/product/5723 ) (can be used with the Pi Pico as well), capable of emulating gamepads for
2024-02-20 12:28:46 -07:00
- Original Xbox
2024-03-05 19:04:38 -07:00
- Playstation 3
2024-03-10 10:15:33 -06:00
- Nintendo Switch (docked)
- XInput (not Xbox 360)
- Playstation Classic
2024-02-20 12:28:46 -07:00
2024-03-09 23:03:25 -07:00
## Supported devices
### Wired controllers
2024-03-04 16:27:53 -07:00
- Original Xbox Duke and S
- Xbox 360, One, Series, and Elite
2024-03-05 19:04:38 -07:00
- Dualshock 4 (PS4)
- Dualsense (PS5, Dualsense Edge should work but it's untested)
2024-03-04 16:27:53 -07:00
- Nintendo Switch Pro
2024-03-09 23:03:25 -07:00
- Nintendo Switch wired (tested with PowerA brand)
2024-03-04 16:27:53 -07:00
- Nintendo 64 USB (experimental, tested with RetroLink brand)
- Playstation Classic
2024-03-01 16:53:07 -07:00
2024-03-09 23:03:25 -07:00
### Wireless adapters
2024-03-01 16:53:07 -07:00
- Xbox 360 PC adapter (Microsoft or clones, syncs 1 controller)
2024-02-20 12:28:46 -07:00
- 8Bitdo v1 and v2 Bluetooth adapters
2024-03-09 23:03:25 -07:00
- Most wireless adapters that present themselves as Switch/XInput/PlayStation controllers should work
2024-03-01 16:53:07 -07:00
2024-03-09 23:03:25 -07:00
Note: There are some third party controllers that can change their VID/PID, these might not work correctly.
2024-02-20 12:28:46 -07:00
2024-03-10 09:40:02 -06:00
## Changing input mode
By default the input mode is set to OG Xbox, you must hold a button combo for 3 seconds to change which platform you want to play on. Your chosen input mode will persist after powering off the device.
2024-03-09 23:03:25 -07:00
2024-03-10 09:40:02 -06:00
Start = Plus (Switch) = Options (Dualsense/DS4)
2024-03-09 23:03:25 -07:00
### XInput
Start + Dpad Up
### Original Xbox
Start + Dpad Right
### Switch
Start + Dpad Down
### PlayStation 3
Start + Dpad Left
### PlayStation Classic
2024-03-10 09:40:02 -06:00
Start + A (Cross for PlayStation and B for Switch gamepads)
2024-03-09 23:03:25 -07:00
After a new mode is stored, the RP2040 will reset itself so you don't need to unplug it.
## Adding supported controllers
2024-03-01 16:53:07 -07:00
If your third party controller isn't working, but the original version is listed above, send me the device's VID and PID and I'll add it so it's recognized properly.
2024-02-20 12:28:46 -07:00
2024-03-09 23:03:25 -07:00
## Compiling
2024-02-20 12:28:46 -07:00
You can compile this for the Pi Pico by commenting out this line in CMakeLists.txt
`add_compile_definitions(FEATHER_RP2040)`
2024-03-10 09:40:02 -06:00
That will set the D+ and D- host pins to GPIO 0 and 1.
2024-03-01 16:53:07 -07:00
Here's a diagram of how you'd use the Pico:

2024-02-20 12:28:46 -07:00
2024-03-09 23:03:25 -07:00
## Special thanks
2024-03-01 16:53:07 -07:00
Thank you to Ryzee119 and the OpenStickCommunity, without their work this project would not exist.