XInput Adapter for Atari 2600 Controllers
This project was initially created for Starlords, a physical arcade game & cabinet developed by Tested.com and Other Ocean Interactive. This code, when paried with the PCB available on OshPark, converts signals from original Atari 2600 controllers to XInput, combining either two Joysticks or four Paddles (or any combination) into a single virtual gamepad. The XInput functionality is based on the excellent MSF_FightStick XINPUT project by Zack "Reaper" Littell.
As a bonus, it also supports the hidden Atari games in Tesla automobiles so you can play them with a real Atari joystick.
I have provided source code and pre-compiled .HEX firmware. To flash the compiled firmware on a Teensy LC, use the official Teensy Loader application.
Note: If you only want Joystick functionality (i.e. no Paddles), you don't need to include most of the components on the PCB. You'll only need the PCB, Teensy LC, D-Sub Plugs, and optionally the male & female headers. In this case, please install the "JoystickOnly" firmware.
Here is the complete components list:
- Teensy LC
- D-Sub Plugs (2)
- 1 kOhm Resistors (4)
- 0.1µF Capacitors (4)
- 1 MegaOhm Resistor Array
- LM324N OpAmp
- 14 Position Female Headers (2)
- 2 Position Male Headers (3) Optional
- P1 Joystick directions -> Dpad and Left Analog Stick.
- P1 Joystick button -> A
- P1 Joystick up -> B (Tesla Asteroids compatiblity)
- P1 Joystick down -> X (Tesla Asteroids compatibility)
- P2 Joystick -> Right Analog Stick
- P2 Joystick button -> Y
- Paddle 1 -> Left Analog X Axis
- Paddle 1 button -> LB
- Paddle 2 -> Left Analog Y Axis
- Paddle 2 button -> RB
- Paddle 3 -> Right Analog X Axis
- Paddle 3 button -> L3
- Paddle 4 -> Right Analog X Axis
- Paddle 4 button -> R3