Polycade's Approach To Modern Joystick Controls

The center of any arcade machine are the joysticks & buttons. If these don't meet your needs, the arcade machine is essentially useless. While the choice of buttons and joysticks is important, so is the button pattern. Most important of all though, are the controller boards that those joysticks and buttons are connected to, as these will decide what games you can play, due to hardware and software compatibilities that vary across games.

So, whether you're building an arcade machine or shopping for one, you'll want to consider the controls as the most important choice. For us, the best approach enables us to access the broadest range of games while avoiding the "franken-panel" - the arcade machine that has every arcade control on one giant control panel 🤢

The controller boards

Before we get started with descriptions and opinions, let's review the options for controller boards:

  • Keyboard controller
  • D-Input controller
  • X-Input controller

Most arcade machines use a keyboard controller to run the joysticks and buttons. This works for retro gaming, since emulators are highly mappable. Unfortunately, if you try and play modern games with a keyboard controller, things break down. BUT WAIT - before you say "I'm only interested in retro games", keep in mind...that's what we thought too when we first made an arcade machine. Then we discovered the myriad of amazing modern titles that are made in the vein of classic arcade games: easy to learn, difficult to master. Games like (but not at all limited to):

  • Tricky Towers
  • Broforce
  • Downwell
  • Lethal League
  • Speedrunners
  • And so many more!

Because modern games have no standard for keyboard controls, controls will vary from game to game. Some will use the arrow keys for movement, some will use WASD. The “action” button will be space bar in some games and CTRL in others, etc. You might get around these issues by remapping the in-game controls, allowing you to play on your keyboard-powered arcade controls, but you’ll need to do this remapping exercise on most games. Sadly, not all games will let you remap controls, so you’ll either have to get a third party button mapper and do your mapping in there (which can have adverse effects), or you just won’t be able to play that game on your arcade machine.

When it comes to D-Input, the issues are similar. D-Input is the "old" protocol that controllers used to interact with computers. D-Input is also unstandardized, so games that support it often choose different inputs for different functions in the game. Worse yet, D-Input is difficult for game programmers to implement, so many just don't support it. 

Are we having fun yet?

Compare all of that to using X-Input controller boards on your arcade machine. Most modern games [that you’d want to play with a controller] work with X-Input controls by default, no mapping required — including games that don’t allow mapping. X-Input is standardized, so games all agree that "A", the green one, is the main button, "B", the red one, is the back button, etc. This even extends into the game interface, where the game says "press A [green]".

What was a remapping nightmare is no reduced to zero effort: most games just work - even the in-game instructions are relevant.

Plus, since emulators are highly mappable, there’s no issues configuring your retro games to work with X-input controls (and if you’re using Polycade AGS, then the emulators are already mapped for you).

Ok, so we know we want X-input boards in our arcade machine, but what about the “gotchas” that X-input boards have when used in an arcade machine:

  1. They are built to change modes. Since these boards are typically designed for “fightsticks”, they are made to change modes (xbox, ps, android, etc) by pressing key combinations. Since arcade machines are usually mapped to one protocol, changing modes effectively breaks the machine.
  2. The player order is unpredictable. Sometimes Player 1 might be on the right side, sometimes they’re on the left. It can vary from restart to restart.

Luckily, we’ve solved this issue. Our recent collaboration with Brook produced what we feel are the perfect controller boards for arcade machines: an X-input board that can set player order on the hardware level, no mode switching. Check it out here: Neo-Arcade Controller Board.

 

The button pattern


When it comes to choosing a button pattern for retro games the classic 6 button “street fighter” style arcade layout and 2 “function” buttons will get you everything you need to run basically any classic arcade game that uses a joystick and buttons.

When we started tinkering around playing modern games on arcade machines, we soon discovered that the closer we could get to replicating the usage of a modern controller, the more games we could play. For example, because the “trigger” buttons on a modern controller can be held down with your index finger, while allowing you to access the rest of the buttons with your thumb, games often expect you to hold down the trigger buttons while pressing other buttons. Rocket League and racing games typically employ this control scheme — your acceleration is the trigger, “A” is jump, etc. Other games often use the triggers as a “shift” button to enable access to more functions (Secrets of Grindea and Akane are examples of this).

How do we translate these play styles to arcade controls?

Traditional 8-button arcade and fightstick layouts place the 7th and 8th buttons (trigger buttons) to the right of your classic “Street Fighter” button pattern. We found this to be inconvenient, as these buttons were a bit too far out of the way, and it’s awkward using your pinky to hold them down while you press other buttons. Moving the trigger buttons under our primary button set gave us easy access to operate these buttons with our thumb, which feels natural and enables you to easily perform button combos.