After much work and struggling with all things USB, I've reached my first milestone on my Teensy Arcade board project. I figured now is a good time to share with the group!
This project creates a new Teensy 2.0 "board" within the IDE called "Keyboard + Joysticks (Arcade)" which gives you the following:
I've been working on this to allow me to use my SNES gamepads on the computer as either a set of gamepads, or as a keyboard. Certain emulators impose input lag when using DirectInput devices; so that is where the keyboard comes in. I successfully played several SNES games through Snes9x and it worked flawlessly.
The library can be found on my github profile.
Note:
Finally, within my repo exists 2 example programs. One shows how to read the SNES gamepad protocol and translate button presses into keyboard presses. The other translates gamepads to HID gamepad devices. They also have pretty good de-bouncing capabilities.
Feed back is always welcome, and I'll update this post with some pics.
This project creates a new Teensy 2.0 "board" within the IDE called "Keyboard + Joysticks (Arcade)" which gives you the following:
- 1 NKRO-capable keyboard device (up to 104 keypresses + modifiers)
- 2 8-button gamepad devices with 4-way digital directional pads
I've been working on this to allow me to use my SNES gamepads on the computer as either a set of gamepads, or as a keyboard. Certain emulators impose input lag when using DirectInput devices; so that is where the keyboard comes in. I successfully played several SNES games through Snes9x and it worked flawlessly.
The library can be found on my github profile.
Note:
- Serial debugging has been removed. So don't expect the serial monitor to work.
- The keyboard API is different than other board profiles because of the NKRO capabilities. See keycode.h for keyboard keys.
- The joystick API has been removed. The gamepad API can be accessed through the Gamepad1 and Gamepad2 objects. See gamepad.h for button presses.
Finally, within my repo exists 2 example programs. One shows how to read the SNES gamepad protocol and translate button presses into keyboard presses. The other translates gamepads to HID gamepad devices. They also have pretty good de-bouncing capabilities.
Feed back is always welcome, and I'll update this post with some pics.