XInput Adapter for Atari 2600 Controllers
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


XInput Adapter for Atari 2600 Controllers

This project was initially created for Starlords, a physical arcade game & cabinet developed by 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:

Default mappings:

  • 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