(Pre-RetroArch 1.7.2) X-Arcade Tankstick & Dual Joystick Config

Input Configuration Guide for the X-Arcade Tankstick and Dual Joystick

About this guide

There are many examples in the forums of folks who struggle with configuring X-Arcade control panels to work seamlessly with RetroArch. For my part I was able to successfully bind a Tankstick in the RA 1.3.x era. This guide is written based on my configurations for that system which I have manually adjusted for RA 1.7.x but please be aware that this guide is based on older versions of the software.

If you try this approach and have feedback, please let me know so I can improve it.

Note 1: That these keybinds are intended for use with the X-Arcade unit set to Mode 0. You may find it useful to consult this diagram of the way that Mode 0 maps to a standard keyboard: https://web.archive.org/web/20170610064858/http://www.xgameroom.com//service/images/Layouts/PC-MAC.htm

Note 2: Using these settings verbatim will disable hotkeys for Rewind, Slow motion, and Fullscreen toggle. If you wish to use those hotkeys, you should bind one of your control panel’s buttons to trigger the hotkey.

Configuring keybinds via the RetroArch GUI with a standard keyboard

With the X-Arcade Tankstick or Dual Joystick unplugged, attach a standard USB keyboard to your system.

Unbind conflicting RetroArch hotkeys:

  1. Enter the Settings menu, then select Input. Enter the Input Hotkey Binds menu.
  2. Unbind R from Rewind
  3. Unbind E from Slow motion
  4. Unbind F from Fullscreen toggle
  5. Return to the Input menu.

Within the Input User 1 Binds menu:

  1. Bind User 1 Up D-Pad to Up
  2. Bind User 1 Down D-Pad to Down
  3. Bind User 1 Left D-Pad to Left
  4. Bind User 1 Right D-Pad to Right
  5. Bind User 1 Y to Left Ctrl
  6. Bind User 1 B to Left Shift
  7. Bind User 1 X to Left Alt
  8. Bind User 1 A to Z
  9. Bind User 1 L to Space
  10. Bind User 1 R to X
  11. Bind User 1 L2 to C
  12. Bind User 1 Select to 5
  13. Bind User 1 Start to 1

Note: Early X-Arcade models used the number pad for directions, rather than the directional keys. If you have such a model, you should use the corresponding number pad keys when configuring the User 1 D-Pad bindings.

Within the Input User 2 Binds menu:

  1. Bind User 2 Up D-Pad to R
  2. Bind User 2 Down D-Pad to F
  3. Bind User 2 Left D-Pad to D
  4. Bind User 2 Right D-Pad to G
  5. Bind User 2 Y to A
  6. Bind User 2 B to W
  7. Bind User 2 X to S
  8. Bind User 2 A to E
  9. Bind User 2 L to Q
  10. Bind User 2 R to leftbracket
  11. Bind User 2 L2 to rightbracket
  12. Bind User 2 Select to 6
  13. Bind User 2 Start to 2

IMPORTANT: Once you have changed these key bindings, manually save your RetroArch settings or the keybinds could be lost.

Configuring retroarch.cfg directly

Open retroarch.cfg in the text editor of your choice. Then find each of the lines below and edit their values to match this guide.

RetroArch hotkeys

input_rewind = "nul"
input_slowmotion = "nul"
input_toggle_fullscreen = "nul"
input_toggle_fast_forward = "nul"

User 1

input_player1_b = "lshift"
input_player1_y = "ctrl"
input_player1_select = "5"
input_player1_start = "1"
input_player1_up = "up"
input_player1_down = "down"
input_player1_left = "left"
input_player1_right = "right"
input_player1_a = "z"
input_player1_x = "alt"
input_player1_l = "space"
input_player1_r = "x"
input_player1_l2 = "c"

Note: Early X-Arcade models used the number pad for directions, rather than the directional keys. If you have such a model, you should use these bindings for the D-Pad instead:

input_player1_up = "keypad8"
input_player1_down = "keypad2"
input_player1_left = "keypad4"
input_player1_right = "keypad6"

User 2

input_player2_b = "w"
input_player2_y = "a"
input_player2_select = "6"
input_player2_start = "2"
input_player2_up = "r"
input_player2_down = "f"
input_player2_left = "d"
input_player2_right = "g"
input_player2_a = "e"
input_player2_x = "s"
input_player2_l = "q"
input_player2_r = "leftbracket"
input_player2_l2 = "rightbracket"
4 Likes

Nice this stick is on my candidate list for my desk setup later this year.

How would you rate it as a purchase?

I have had a good experience with the Tankstick. It’s sturdy and seems to behave itself.

These days the Tankstick is integrated into a Lakka-powered arcade cabinet system at my brother’s place a few hours drive from here. It’s perfect for the purpose.

I was motivated by two things to write this guide:

  • I’m preparing to upgrade that system to Lakka 2.2 once it is released and I want to get my notes from the build organized and updated.
  • As part of my prep process for that effort I have come across several threads from RA versions more recent than our cabinet where people are not getting Tanksticks to work. I don’t think anything has changed in RetroArch that would prevent this mapping from working, at least I hope not!

There are three layers of input that have to be mapped correctly with no conflicts – four layers if you are dealing with Arcade cores that can read the keyboard directly. I have to believe that complexity is what’s been the barrier.

3 Likes

I have had my Tankstick for 10 years still works perfect.

I have been starting to wonder if there will be a Lakka 2.2 since there has been no update since 11-26-17 I really hope so Lakka is great!

Work is going on a daily basis for the next Lakka release. It’ll happen.

Ok thank you for the reply. :sunglasses:

Looking at setting up my TankStick with Lakka now. Seems like the retroarch.cfg is a good approach, given that you can go back and edit if you’ve made a mistake or want to change something. Let’s see how this goes :slight_smile:

Regarding your comment about different “layers”, can you explain that a little more? Once this setup is done, do you mean this setup has to be repeated for different emulators? Out of the gate, I’m most interested to use the TankStick for Mame (2003) of course.

Also, have you had luck getting the trackball working?