Adapt various input devices to various output devices.
https://github.com/OpenRetroPad/OpenRetroPad
Travis Burtrum 78db2a74c7 | ||
---|---|---|
hwids | ||
images | ||
include | ||
lib | ||
src | ||
test | ||
.clang-format | ||
.gitignore | ||
CMakeLists.txt | ||
code-format.sh | ||
license.md | ||
platformio.ini | ||
readme.md | ||
sdkconfig.defaults |
readme.md
OpenRetroPad
Adapt various input devices to various output devices.
Currently supported inputs: SNES/NES, Sega Genesis/Megadrive/Atari, Playstation (and PS2) Digital and Dual shock, Nintendo 64, Nintendo Gamecube
Currently supported outputs: bluetooth-hid gamepad, usb-hid gamepad, nintendo switch usb gamepad, wireless usb-hid gamepad over radio
Build using PlatformIO using pio run
or pio run -e $board-$input-$output
for a specific target/env.
env's are laid out like $board-$input-$output
supported values:
- $board: micro, esp32
- $input: snes, genesis, psx, n64, gc, radio, debug
- $output: radio, usb, usbradio, switchusb, bt, debug
- please note not all boards are compatible with all inputs/outputs, for example esp32 can only do bt, micro can only do radio or usb
Wiring
(quick plea: if you are good at drawing diagrams, please help!)
DB-25 Pins | Arduino Pro Micro GPIO | ESP32 GPIO | Radio | SNES | PSX | N64 | Gamecube | Genesis |
---|---|---|---|---|---|---|---|---|
1 | 1 | 15 | - | - | - | - | - | P1-1 |
2 | 2 | 2 | - | LATCH | DATA | DATA1 | DATA1 | P1-3 |
3 | 3 | 4 | - | CLOCK | CMD | - | - | P1-4 |
4 | 4 | 16 | - | - | ATT | - | - | P1-6 |
5 | 5 | 17 | - | - | CLK | - | - | P1-7 |
6 | 6 | 5 | - | - | - | - | - | P1-9 |
7 | 7 | 18 | CE | - | - | - | - | P2-7* |
8 | 8 | 19 | CSN | - | - | - | - | - |
9 | 9 | 21 | - | - | - | - | - | - |
10 | 10 | 3 | - | - | - | - | - | - |
11 | 0 | 1 | - | - | - | - | - | P1-2 |
12 | - | 22 | - | - | - | - | - | - |
13 | - | 23 | - | - | - | - | - | - |
14 | 14 | 12 | MISO | - | - | - | - | P2-6* |
15 | 15 | 14 | SCLK | - | - | - | - | P2-9* |
16 | 16 | 13 | MOSI | - | - | - | - | - |
17 | - | 27 | - | - | - | - | - | - |
18 | 18 | 26 | - | DATA1 | - | - | - | P2-1 |
19 | 19 | 25 | - | DATA2 | - | - | - | P2-2 |
20 | 20 | 33 | - | DATA3 | - | - | - | P2-3 |
21 | 21 | 32 | - | DATA4 | - | - | - | P2-4 |
22 | - | 35 | - | - | - | - | - | - |
23 | - | 3.3V VCC | 3.3V VCC | - | - | 3.3V VCC | 3.3V VCC | - |
24 | 5V VCC OUT | 5V VCC | 5V VCC | 5V VCC | 5V VCC | - | 5V VCC | PX-5 5V VCC |
25 | GND | GND | GND | GND | - | GND | GND | PX-8 GND |
- 2nd player Genesis is incompatible with Radio because it uses the same pins, 1 player Genesis is compatible
Credits / Links
Code and/or inspiration was (or will be) taken from these places, in no particular order: