Pinball FX3 on Legends Ultimate Arcade


This post details the wiring mods and software configuration you will need to play Pinball FX3 with the buttons on the side of the ALU 1.1.  The side buttons control flippers and nudge.  The right stick launches the ball.  The trackball and "A" buttons give in-game mouse control.


I tried the free pinball games on ArcadeNet and frankly, they don't hold a candle to Zen Studio's Pinball FX3.   On the Legends Ultimate, the pinball games are limited to 720p/30fps and IMO, that is a non-starter.  There isn't enough resolution to see and enjoy the tables at 720p with sidebars.

In my limited experience with virtual pinball, it seems that there are two kinds of tables.  The first are virtual recreations, which are best played on high resolution portrait displays.  The second are "fantasy" tables which are designed to run on typical 1080p landscape gaming monitors.  

Pinball FX3 largely falls in the latter category, although they also have many "digitally enhanced" recreations of real tables.

That said, Zen Studio's Pinball FX3 is probably a better match for the Legends Ultimate's 1080p display than the 720p portrait mode tables on ArcadeNet.

Setting up OTG Mode

OK, so we are going to install and play Pinball FX3!  There are two ways to accomplish this on the ALU: local streaming, and OTG mode.

I have tried both methods.  Local streaming works well enough, but even under ideal circumstances there is some latency which lags the sound and video slightly, and makes the game feel less immediate.  Furthermore, local streaming has several technical hurdles and hiccups that make it finicky to work with.

Luckily, there is OTG mode.  In my testing, there isn't any perceptible lag playing in OTG mode.  And OTG is reliable and works every time.

Make (or buy) a USB-A to USB-A Cable

To set up OTG you will need a USB-A to USB-A cable.  You can buy these online, but its also easy to make them if you can solder.  Take two phone charging cables and cut off the mini connector from each.  Inside, there are four conductors and a shield.  Solder the like-colored conductors together.  Done.




When you are ready to play, connect the USB cable between the ALU's left usb port and your PC.  Connect the HDMI cable from your PC into the HDMI slot on your ALU.  From the settings menu, navigate to OTG option and start OTG.


ALU 1.1 Wiring Mods

When you connect from your ALU to a PC using OTG, it is recognized as a "DirectInput" control.  This is a generic controller type that is not directly supported by Pinball FX3 in Steam.

Unfortunately, the ALU 1.1 does not pass through the side-mounted pinball buttons to the PC over DirectInput.  In my testing, all of the other controls are recognized on the PC and can be assigned to various settings in Steam games.  Since we have those nice side-mounted buttons, we want to use them so we can get the best pinball experience! 

This will require jumping the pinball buttons onto buttons on the control surface so that they can be used as DirectInput triggers.

Simply put, you want to solder a connection from each of the four side buttons to four different buttons on the control surface.  For my ALU, I chose to piggyback the pinball buttons onto the "X" and "Y" buttons of each side.

On the ALU 1.1 this is easy.  On the inside of the controller, there are small PCBs on each side (left and right) with three contacts.  K1, K2, and a shared ground.  Each button has two contacts.  You connect the K1 and ground to the + / - of a control surface button.  Likewise, you connect the K2 and ground to the + / - of another button.  Repeat on the other side.





The control surface buttons are attached to the wiring harness with spade connectors.  Slide back the clear plastic sheath and solder your wire to the back of the spade connector. (Make sure the piggyback wire is routed through the clear plastic sheath.)

All told, this will require four separate, two-conductor wires about 12" long.  I used 20/2 AWG doorbell wire.

When the soldering is complete, hold the new wires in place using the screw-in anchors that are already holding the other wires.

With this wiring mod, the side mounted pinball buttons will now trigger the "X" and "Y" buttons on each side of the controller.  These will be used for L/R flippers and L/R nudge in Pinball FX3.

Go into the system health menu and verify that when you push the pinball buttons that they are also triggering the X and Y buttons.


PC Setup

Pinball FX3 is a Steam game that comes with some great free tables (Sorcerer's Lair is a favorite of mine.)  First install the free version of Pinball FX3 on your PC.  

Pinball FX3 has modest graphics requirements.  It's running at the highest settings on my ten year old Phenom II computer with an HD7850 graphics card.  (This PC has been relegated to be my "retro" gaming PC for running emulators and Steam games with OTG.)

Ideally, we want to control the PC exclusively using the Legends Ultimate cabinet.  In a perfect world, we won't need a keyboard or a mouse.

Fortunately, when the ALU 1.1 is connected to the PC over OTG, the track ball automatically maps to the mouse.  You can control the mouse pointer using the trackball without any configuration.  However, we need a way to trigger the mouse buttons, and the control surface buttons will need to be mapped to controls in Pinball FX3.

JoyToKey

Download and install JoyToKey.

This clever program allows mapping of a DirectInput controller to keyboard and mouse controls.  Since almost all Steam games support keyboard/mouse inputs, this is our bridge to using the ALU with Steam games.

First and foremost, two of the buttons will need to be mapped to the left and right mouse buttons so the ALU 1.1 can be used as a mouse controller. (At this point, you want to put the ALU 1.1 in OTG mode.)

When setting up JoyToKey the first time, use a real mouse to hover over the JoyToKey program interface.  When you press buttons or move a joystick on the ALU, the corresponding input(s) will be highlighted in yellow or green.  This makes it easy to see what input is being received from the ALU.

To assign a control, double click the highlighted line in JoyToKey.  A dialog will appear that allows you to set the mouse or keyboard command you want associated with that input.

For the left and right mouse buttons, I used the ALU's A buttons.  Player1 A is left mouse click, Player2 A is right click.

Pinball FX3 has a simple control set.  The flipper buttons (left and right) are already mapped to <shift> in game.  Likewise, the nudge buttons (left and right) are mapped to <ctrl>.  The plunger is mapped to <enter>.

This screenshot shows how I have the ALU buttons mapped to keyboard and mouse controls.  I have it set up so that the right joystick down is mapped to the plunger.  To launch a ball, you pull back on the joystick and let go when you want to launch.  This gives it a real pinball feel.  Neat!




You don't need to change anything in the Pinball FX3 options.



In-Game Control

When playing Pinball FX3, the trackball and "X" buttons still work as the mouse. (The game thinks you are playing with a keyboard and mouse.)  When you move the trackball, two buttons appear on the upper right of the screen (view and pause).  If you pause the game, it will take you into the options menu, allow you to change game settings, quit, etc.  Control of the game is very natural and works as if you were playing from a keyboard and mouse.

Finishing Touches

I keep my retro gaming PC turned on all the time.  It goes to sleep after an hour of not being used.  When an OTG connection is started from the ALU and the trackball is moved, this wakes up the PC.  In this way, I can keep the PC turned on all the time.  If I want to play Pinball FX3 (or any other game or program), I start OTG mode, push the HDMI button, move the trackball to wake up the PC, and everything is ready to go!  I can launch Steam or Pinball FX3 directly from the desktop. (Alternatively, if you don't want to see the desktop you can run Steam in "Big Picture Mode".)

I wanted the computer to be ready after a power cycle without requiring the keyboard or mouse.  To accomplish this, I set up JoyToKey to start automatically after reboot.  Instructions for this can be found at:  Add an app to run automatically at startup in Windows 10

Also, because I didn't want to have to login (requires a keyboard), I set up the computer to bypass login.  Directions can be found at: How to make Windows 10 start without a login?

Enjoy!

Comments

  1. Hi, do you have a picture of the solder points on the pinball buttons, i would like to do this to mine!

    ReplyDelete

Post a Comment