Author Topic: TUTORIAL: How to combine 2 game controllers into one.  (Read 3705 times)

0 Members and 1 Guest are viewing this topic.

TUTORIAL: How to combine 2 game controllers into one.
Quote from: Calliste
So... where to start ? First of all, hello ! You'll learn here how to "mix" several controller devices, very useful for games not allowing the use of more than one joystick/joypad... which is X3's case.

(PS : please pardon my grammar, spelling and syntax errors, not being english doesnt help ! So I did my best)

I know some of you would like to use their steering wheel's pedals with their joystick, to control the roll (or the yaw... up to you). Some others, I'm sure of it, are just as much awkward as I am and wish to use 2 joysticks at the same time.
This tutorial will explain you how to mix the pedals of a steering wheel controller with a joystick, as an example.

This is what I have :

and this is what I want :

1) necessary softwares

- PPJoy

This software is a useful tool, allowing us to create virtual controllers. That's this particular function we'll need.

- PPJoyJoy

This program is a kind of "plug-in" of PPJoy. It uses the virtual controllers created by PPJoy, assigning them signals of the other physic, real controllers.

2) first step : installing the softwares

I know, I know ! I called it "first step", but put a 2) before... quite paradoxal, but who cares ?
First, we have to install PPJoy. It can be found there :

Follow then the install instructions.

We're going now to install PPJoyJoy, which is located there :

The following link contains both programs :

3) PPJoy :

Now that both softwares are installed, let's start the serious thing !

We're going first to create a virtual Joystick. To do so, go to Window's Configuration Panel : Start Button -> Parameters -> Config Panel. (my Windows' language is french, and I'm not sure of the exact english names, sorry !).

As you can see, after the installation of PPJoy, a new icon appeared : Parallel Port Joysticks (hence the name PPJoy). Lauch it.

You see now this window :

In the options menu, check the box "Don't allocate ports assigned to joysticks". I'm not sure it concerns USB joysticks, but I'd rather prevent problems to occur than to cure them.

Now, click on the "Add" button. We'll create this way a virtual Joystick.
Select the following option in the appearing window :

and then click "Add". The computer will detect a new controller : it's the virtual joystick. If you're asked to continue the installation, accept.

We're now back to the first window :

Select the virtual joystcik on the list, and select "Mapping".
Choose this option :

and click on "next" (it's named "suivant" on my screen)
We now see this window :

Choose on this screen 4 axis, and as many buttons your controller has (or as many you want to use). As far as the hat button is concerned, I didnt find the way to have them working with PPJoy, I'm sorry about that. If someone finds how to, please let me know !

The 4 chosen axis will correspond to the wanted axis : one to control the pitch, one to control the yaw, one for the roll, and one for the engine. You could choose more, if you combination of controllers has more than 4... but what would be the point if it's for X3 ? This game doesnt handle more that 4 axis.

Names of axis are only names. I chose those according to the first pictures of this tutorial.
Click Next (suivant)

Do not change anything on any of these windows.

Click Next, then Finish (Terminer on my screenshot). When back to the first window, click Done to accept all changes and quit PPJoy.

4) PPJoyJoy

Time to lauch PPJoyJoy. The tool looks like this :

Top-right of the window, you are allowed to choose which virtual joystick created by PPJoy will be used. In our case, there is only one there, Virtual Joystick 1. "Update Interval" is the time in milliseconds between each refresh of PPJoy. It's set to 25ms by default. To choose a smaller number should make the transmitted moves of the axis smoother, I'm just not sure about it. Anyway, 25ms is already smooth enough.

At the bottom of the screen, we have the buttons' assignations. It works quite easily. Left lift let you choose a controller, and the right one let you choose a button of this controller. The combination of both will affect that particular button of this particular controller to the named button of our virtual joystick.
Axis assignations, top-left of the window, work the same.

This is what we have, when all are selected. Do note "Logitech WingMan Extreme Digital" is my Joystick, and "Logitech WingMan Formula Force" is my steering wheel. Both names are quite identical, which doesnt ease the reading, sorry :

When all axis are assigned to the virtual axis, save the config clicking on "Save .ini". This will save you the time re-doing this all again next time you reboot your computer. You'll just have to load the config file clicking on "Load .ini".

5) Calibration

We now have to calibrate our newly created joystick. To do so, we just need to go back to the Config Panel of Windows, and select the Game Controller icon (I dont know the exact english name... it's the icon looking like a joystick and a joypad). You'll see there all the game controllers available, including the virtual joystick we created. Select it, and click on "Properties". In the "Parameters" tab, select "Calibrate". Follow all instructions, then quit the Config Panel and all the other opened windows, EXCEPT PPJoyJoy. We absolutely need it to stay open, otherwise the virtual joystick won't work.

6) Test !

Time has come ! We'll finally lauch X3 and judge of the efficiency of all those operations.
On the launching menu of X3, before the real launch of the game, select "Input device". Choose the virtual joystick in this menu :

Click OK, and launch the game !
With the selections I made during this tutorial, the default control options should be the right ones. Pardon this screenshot, but my game is ALSO in french (btw... if someone knows how to turn it in english - text and voice - please tell me !)

Now, let's test... the horizontal axis of the joystick controls the yaw, the vertical one controls the pitch, the throttle controls the engine... and the pedals control the roll !
Perfect ? Not, not that much, hopelessly. Indeed, when I push the left pedal, the ship turns... right ! And vice-versa, the right pedal makes the ship turns left.

Don't frown ! This can be corrected.

7) Aiming correction

To solve the inverted axis problem, we need to return to PPJoy. Launch it again (Config Panel of Windows). Select the Virtual Joystick, and click on "Mapping". On the appearing screen, select this option :

and then click next twice, until you see this screen :

See the "Analog 2" in front of "Z Rotation". Change it to "Reversed 2". This will revert the axis on the virtual joystick.

Click next twice, then Finish. Click "Done" to quit PPJoy.
At this point, you could re-calibrate the virtual Joystick, but I dont think it's necessary.

You can now re-launch X3, and test the pedals... that work perfectly !

8 ) and they lived happily ever after...

Here it is, you're now the happy owner of a joystick equipped with a rudder control, grats !

Those two softwares, PPJoy and PPJoyJoy, allow you to do more than that, though. Even if X3 seems not to handle more than 4 axis, some other games do. You can then "build" a game controller with up to 8 axis, mixing 2 joysticks for example (which is my case).

So... here it is, I think we said it all ! I I truely hope you managed to understand me (I really have difficulties to explain, aswell as not being english doesnt ease the thing), and that this tutorial was of any use to you.


As you can see, this one is not from me. This is from the X3: Reunion forums (Wich is also a very nice space game with an extremely good community).


Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: TUTORIAL: How to combine 2 game controllers into one.
Yeah. I've posted this one a few times over on the BtRL forums. I've not tried it myself but most people who have found it very useful.
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]