Author Topic: using multiple joysticks with PPJoy (aka Setting up Logitech G940 HOTAS)  (Read 6692 times)

0 Members and 1 Guest are viewing this topic.

Offline 7.[WD]Poldi

  • Lance Sergeant
  • **
  • Posts: 411
  • Karma: 27
  • Col. 7th Reg. Wolfs Dragoons
    • 7th Wolf Dragoons HQ
This thread got lost in the forum rollback, so here it is again...

This guide is for anyone who is crazy enough to buy a Logitech G940 Flight System or wants to use any other HOTAS system (=more than 1 any other joystick device) in MW:LL. But to make you guys jealous of my G940, here's a pic:


The problem in this case is that the CryTek engine used here only supports 1 joystick (their new CryEngine 3 can handle multiple joysticks now) and the G940 registers to windows as 3 seperate devices. It doesn't have to be devices by the same manufacturer, so feel free to combine any joysticks, pedals or throttle controls you already have.

To get this to work you need the freeware tool PPJoy - it creates a virtual joystick to which you can map axis'  and buttons from any other device. PLEASE NOTE that one of the PPJoy tool windows has to be running at the time you want to use the virtual joystick - it won't run in background.
Users of a 64Bit operating system also need to turn off driver signature enforcement to install PPJoy. Please read the next post for instructions!

PLEASE NOTE that PPJoy is a 3rd party tool and neither me nor the maker of PPJoy are responsible for any damage to your software or hardware that might occur. Not that I could think of any reason this could happen, but fiddling around with Windows' system settings can lead to problems when done wrong.

-Installing PPJoy-
First we start off by downloading and installing PPJoy.
This should work flawless on a 32Bit environment, 64Bit users read the next post.

Now go into your systems settings - you will find a new entry called "Parallel Port Joysticks (32bit). Hit it and in the opened window create a new virtual joystick by clicking the "Add" button. That's it, you got a new joystick (although you can't touch it ;))
Now go to your PPJoy install folder and look for PPJoyJoy.exe, or the PPJoy start menu folder for the "Joystick remixer" - open it and you will see this window (all the lines will be empty at first, in the picture there are already my mappings for MW:LL):


This is pretty self-explaining I believe. For each axis/button of the virtual stick you can select a real device conncected to your computer from the 1st dropdown menu, the 2nd dropdown menu lets you select the axis/button from the physical device. So go ahead and build the joystick you love - virtually ;) Don't forget to save your work by pressing the "Save .ini" button.
PLEASE NOTE you need to load the .ini each time you restart PPJoyJoy!
To check if your virtual joystick is working you can use the Joystick.exe from the MWLL folder, but this only scans for 1 active joystick. So open up your gamecontroller settings from systems menu and select the virtual joystick as standard by pressing the "enhanced" button and select it from the list.

Now start the Joystick.exe and move the assigned axis' from your mapped joysticks - if nothing happens, you did something wrong  ;D

Now you only have to decide what buttons and axis' to use for what functions of the game. Best is to write your desired order down  once, so you see if something is missing and have a good overview if this setup will work for you.
PLEASE NOTE that the buttons numbers shown by the joystick.exe are not the same to enter in the actionmaps.xml: Always make it +1 and kill the 0 (so Button 00 from the joystick.exe will be "joybut_1" in actionmaps.xml, 01 is joybut_2, 02 is joybut_3 and so on...)


-Editing actionmaps.xml-
Now that we've got a working virtual joystick we need to tell MW:LL where and how to use it. This is done in the file "actionmaps.xml", located in your "User/My Documents/My Games/Crysis/Profiles/ProfileName/" folder. Open it with any editor, but preferrably something better than notepad.
You will see something like this
Code: [Select]
<ActionMaps>
 <actionmap name="debug" version="19">
  <action name="flymode" onPress="1" noModifiers="1">
   <key name="f3"/>
  </action>
  <action name="godmode" onPress="1" noModifiers="1">
   <key name="f4"/>
Do you notice how some lines are indented? They are forming "chapters" like this. There are chapters for different kinds of movement (in a mech, aero, VTOL, by foot) and in each of these chapters are smaller chapters describing game functions (like moving, shooting...) and inside these the keys to activate them are listed.
Feel free to change the keyboard keys as you want, but before going crazy on the keys check if your joystick has buttons that can only be mapped to keyboard keys (like the buttons on the G940 throttle control). So leave those alone and for the joystick setup concentrate on "<key name="joybut_<number>"/>", "<key name="joyaxis_<x/y/z>"/>" and "<key name="joyrot_<x/y/z>"/>". If you want to invert a an axis/rotation just add "inv" to the command ("<key name="invjoyaxis_<x/y/z>"/>" and "<key name="invjoyrot_<x/y/z>"/>")

The first chapter (<actionmap name="debug" version="19">) is from Crysis originally and not of any interest to us.

In the second chapter (<actionmap name="default" version="19">) you could change keys for cycling through as spectator, open chat and scoreboard and such general functions that are kept throughout in any vehicle. Interesting parts here are
Code: [Select]
...
  <action name="hud_show_pda_map" onPress="1">
   <key name="m"/>
  </action>
...
  <action name="hud_night_vision" onPress="1">
   <key name="i"/>
  </action>
...
  <action name="zoom" onPress="1" onRelease="1">
   <key name="z"/>
  </action>
  <action name="firemode" onPress="1">
   <key name="backslash"/>
   </action>
  <action name="objectives" onPress="1" onRelease="1">
   <key name="o"/>
  </action>
  <action name="use" onPress="1" onRelease="1">
   <key name="f"/>
  </action>
...
  <action name="hud_buy_weapons" onPress="1">
   <key name="comma"/>
   <key name="xi_dpad_right"/>
  </action>
...
  <action name="buyammo" onPress="1" consoleCmd="1">
   <key name="period"/>
  </action>


In the next one (<actionmap name="helicopter" version="19">) the VTOLs in MW:LL are set.
Code: [Select]
<actionmap name="helicopter" version="19">
  <action name="v_rotateyaw">
   <key name="joyaxis_x"/>
  </action>
  <action name="v_rotatepitch">
   <key name="maxis_y"/>
   <key name="joyaxis_y"/>
  </action>
  <action name="v_moveup" onPress="1" onRelease="1" retriggerable="1">
   <key name="w"/>
  </action>
  <action name="v_movedown" onPress="1" onRelease="1" retriggerable="1">
   <key name="s"/>
  </action>
  <action name="v_rotatedir">
   <key name="maxis_x"/>
  </action>
  <action name="v_rollleft" onPress="1" onRelease="1" onHold="1">
   <key name="a"/>
   <key name="joyrot_z"/>
  </action>
  <action name="v_rollright" onPress="1" onRelease="1" onHold="1">
   <key name="d"/>
  </action>
  <action name="v_pitchup" onPress="1" onRelease="1">
   <key name="r"/>
  </action>
  <action name="v_pitchdown" onPress="1" onRelease="1">
   <key name="c"/>
  </action>
  <action name="v_brake" onPress="1" onRelease="1">
   <key name="x"/>
  </action>
  <action name="v_boost" onPress="1" onRelease="1" retriggerable="1">
   <key name="lshift"/>
   <key name="xi_shoulderl"/>
  </action>
  <action name="SetThrottle0" onPress="1">
   <key name="np_0"/>
  </action>
 </actionmap>

Chapter four (<actionmap name="landvehicle" version="19">)

Chapter five (<actionmap name="multiplayer" version="19">) only holds the keys for team commands in mp games, not really needed...

Chapter six (<actionmap name="player" version="19">)

Number seven (<actionmap name="seavehicle" version="19">) sea vehicles in MW:LL? No! So leave this part alone :)

Chapter eight (<actionmap name="vehicle" version="19">)

Last chapter (<actionmap name="vtol" version="19">) isn't used by MW:LL, VTOLs are covered in the helicopter section already.


--COMPLETING SOON--

If you are wondering what all the entries with "xi_" in front are about - they're for gamepad-funtions, since Crysis natively supports gamepads (like my XBOX360 pad)


-------------------------------------------------------------------------------------------------------------------------
If you're too lazy to do the work yourself or just like my config already, feel free to download it:
MWLL config files
PPJoy config files
« Last Edit: February 26, 2010, 09:50:38 AM by Poldi »



Offline 7.[WD]Poldi

  • Lance Sergeant
  • **
  • Posts: 411
  • Karma: 27
  • Col. 7th Reg. Wolfs Dragoons
    • 7th Wolf Dragoons HQ
Re: Setting up Logitech G940 (aka using multiple joysticks)
« Reply #1 on: February 09, 2010, 12:33:08 PM »
-64 Bit OS extras-
Setting up PPJoy on a 64Bit operating system (Win Vista / 7) is a pain in the butt, but you only have to do that once 8) Sadly this will not work with the Home version of Vista/Win 7.
First of all you need to turn off UAC and allow the installation of unsigned drivers. To do so run "msconfig" or look for "System Configuration" in control panel. There go to "Tools" tab, select the UAC Settings and click "Start".


In the next window set the slider to the bottom and click "OK".


Then run "GPEdit.msc", there go to "User Configuration -> Administrative Templates -> System -> Driver Installation -> Code signing for drivers" and disable it. PLEASE NOTE that this feature is not available in Windows 7/Vista Home Edition, and therefore PPJoy can't be used.


Now run "cmd" as administrator (CTRL+SHIFT+ENTER) and enter BCDEDIT -SET TESTSIGNING ON

Now you can install PPJoy! When done don't forget to turn UAC back on and reset testsigning mode by entering BCDEDIT -SET TESTSIGNING OFF. A nice little restart couldn't hurt here :)

Now before running PPJoy you need to fake-sign the .sys files of PPJoy. For that you need dseob - download and run it, select "Sign a System File" and click "Next". In the window that opens you need to enter the full path for each .sys file of PPJoy (only 1 each time), so browse for the folder you installed PPJoy into with your windows explorer and copy the path, paste it in the dseob window and add the full name of the .sys file (could look like this: "C:\Program Files (x86)\PPJoy Joystick Driver\PPJoyBus.sys") - click "OK". Repeat this for each of the 4 .sys files, PPJoy is read to run almost (Vista64 users should be done here I believe - don't use Vista myself. Win 7 users read on!)
Now you have test-signed drivers, and those will only run on a Windows in test-mode. To activate test-mode select "Enable Test Mode" (surprise ;)) and reboot. After reboot you will notice some lines in the lower right corner of your screen saying something about test mode: You're good to go, run PPJoyJoy.exe (or "Joystick Remixer" from start menu) and follow the rest of the guide.

PLEASE NOTE that you need to run your 64Bit Windows in test mode at the time you want to use the virtual joystick, which might cause security risks.
« Last Edit: February 26, 2010, 11:24:15 AM by Poldi »



Offline 7.[WD]Poldi

  • Lance Sergeant
  • **
  • Posts: 411
  • Karma: 27
  • Col. 7th Reg. Wolfs Dragoons
    • 7th Wolf Dragoons HQ
Re: Setting up Logitech G940 (aka using multiple joysticks)
« Reply #2 on: February 09, 2010, 12:36:04 PM »
-Setting up HOTAS (Logitech G940)-
Please always make sure you use the newest version of the Logitech profiler software from their website!
It's a great software so far, but it still lacks some functions (like pretending to be just 1 device for MWLL). Knowing Logitech for some time now I'm sure they will update this soon.
IMPORTANT: (in the current version of) the profiler will make device actually shown in the profiler window joystick #1 in windows, so if playing without PPJoy you need to have the joystick shown, because it's the main device and passes through the data of the throttle and pedals.
Also when using Win7 and the SHIFT function of the G940: don't set any shifted functions anywhere on the throttle - it will give you BSODs everytime you hit the shift button on your stick.


PLEASE NOTE that I can only supply screenshots of german Windows and Profiler screenshots. Send me english ones and I'll gladly replace them. Also I gave my best to translate menu entries - if some are wrong, feel free to correct me.

Enough with the warnings, let's go on and configure the stick. When you open the profiler you will notice it scans for installed games, so there should be a Crysis Profile now. Activate it from the menu "Profile->Choose profile->Crysis".
If you want the profiler to automatically detect MWLL running on 64Bits you need to go the menu again and select "Edit->Properties". There enter the correct path to your 64Bit Crysis.exe in the Bin64 folder of Crysis (not Crysis64.exe). To start MWLL from the profiler software just add "-mod mwll" to .exe's path there.
PLEASE NOTE that for some reason I haven't discovered yet the auto-recognition of MW:LL doesn't work, so you need to set the profiler to always use that profile (Menu "Options->Use Profile in game").

All Buttons should be set to standard on the stick in this profile, and I found it's better to alter the actionmaps.xml than map the buttons with MWLL standard keys.

So let's start out with the stick






If you're too lazy to do the work yourself or just like my config already, feel free to download it:
G940 profiler file

Now that you have your joystick set up, you need to determine which device number it's got from Windows to tell that to MW:LL. Since I don't fully understand the system Windows sorts the sticks this comes to trial and error. Open the joystick.cfg in "Crysis/Mods/mwll/Game/config/". The first line should read "joystick = 1" telling MW:LL to use Joystick #1 from list (pretty obvious, I know ;)). Change it to "joystick = 2", save the file and start MW:LL, create your own game, get into a vehicle and try all your sticks/devices (PPJoyJoy has to be running!). Probably only 1 device will produce a reaction, so you know it's not the virtual joystick - close down MW:LL. Repeat this procedure while increasing the joystick number each time until MW:LL reacts to ALL your devices at the same time - you've found your virtual joystick!

Now you're all set up. Maybe you want to fine-tune the sensitivity to your needs, but you should be good to go now.
« Last Edit: February 12, 2010, 06:50:59 AM by Poldi »



Offline -<A.I.|Quecksilber>-

  • Recruit
  • *
  • Posts: 81
  • Karma: 1
    • Assets Incorporated - Multigaming since 2001
Re: Setting up Logitech G940 (aka using multiple joysticks)
« Reply #3 on: February 09, 2010, 05:04:33 PM »
Wow Poldi, great work, i am proud that you are one of our team now! hehe
"We are Jade Falcon, great among the Clans. We are Warriors who fight with the strength of the falcon's claws,
and ascend to the heavens on the wings of the same. We remember with the clarity of falcon sight the Words of Kerensky.
Through the smoke of time he speaks to us, his chosen, and urges us onward with the promise of Eden.
We will retake what is ours by right, that shining jewel Terra.
Not the vastness of space, nor the Wolf's obstinate howl will stay us from our righteous goal.
We are Crusaders,and will trample all who stand in our way."

 - The Remembrance

Offline QiLin

  • Bondsman
  • *
  • Posts: 21
  • Karma: 2
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #4 on: February 22, 2010, 09:16:08 PM »
Hi Poldi

I am one of the crazy guys owning a G940 myself. Alright I am a combat flight sim veteran and used a HOTAS before I could type on a keyboard... :)

Now is there no other way to get the G940 running under Win7 64 bit other than running in 'test mode'. I am very hesitant about that at the moment. Don't get me wrong - I think you are a genious figuring out how the get a HOTAS running in the first place but there must be more comfortable way around.

Coming from the Cougar HOTAS I am used to programming my setup. But sadly the Logitech is very rudimentary in that way. With the Foxy software (the one for the Cougar) it would have been a breeze to just map every key-command to button and axis. ATM I cannot figure out a way how to use the Throttle ingame without going through your mentioned procedure...

Any advice?


QiLin out

Offline QiLin

  • Bondsman
  • *
  • Posts: 21
  • Karma: 2
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #5 on: February 22, 2010, 09:27:40 PM »
Alright - I am an impatient guy and I simply LOVE Battletech/Mechwarrior - so I am willing to try out your method. But Rapidshare is a PAIN. I was able to find another host for the PPJoy driver but I am also interested in your profiles. Do you care to host em somwhere else or mail em to me? I am willing to put them up in my google documents (if possible)...

Thx!

QiLin out

Offline QiLin

  • Bondsman
  • *
  • Posts: 21
  • Karma: 2
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #6 on: February 22, 2010, 09:53:25 PM »
Alright - I can't even get passed the install PPJoy step.

I already had the UAC turned off for other reasons but double checked. I allowed 'testsigning' through the bcdedit command and Windows shows me "Testmodus Windows 7 Build 7600" in the lower right corner. But still I cannot install PPJoy. Always gives me the error that the system won't let me install unsigned drivers and that I should change that in the system properties - AARRRGGGHHH

Any advice?


Kirin out

Offline bokan

  • Bondsman
  • *
  • Posts: 14
  • Karma: 0
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #7 on: February 22, 2010, 11:10:48 PM »
I have the same issue as you (no solution found), thread here http://www.mechlivinglegends.net/forum/index.php/topic,7833.0.html

Offline 7.[WD]Poldi

  • Lance Sergeant
  • **
  • Posts: 411
  • Karma: 27
  • Col. 7th Reg. Wolfs Dragoons
    • 7th Wolf Dragoons HQ
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #8 on: February 23, 2010, 07:25:35 AM »
have you run the BCDEDIT command?

I found a better alternative to running in test-mode: It's a signed driver by the australian company Linchpin Labs that loads other (unsigned) drivers.
Microsoft forbid this little tool after some time and let Antivir companys put it on their blacklist, but it is still everywhere on the internet and is safer to use than running in test-mode all the time.
Just google for "atsiv.exe" and give it a try. I will check on it within the next days
« Last Edit: February 23, 2010, 07:45:54 AM by Poldi »



Offline bokan

  • Bondsman
  • *
  • Posts: 14
  • Karma: 0
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #9 on: February 23, 2010, 08:12:42 AM »
I tried BCDedit.  I looked into that atsiv thing, and it seems like Microsoft took away its certificate, so it seems unlikely that it will work :(

Offline 7.[WD]Poldi

  • Lance Sergeant
  • **
  • Posts: 411
  • Karma: 27
  • Col. 7th Reg. Wolfs Dragoons
    • 7th Wolf Dragoons HQ
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #10 on: February 23, 2010, 01:56:05 PM »
yes M$ took away the certificate for future purposes, but they didn't put it on the signing revocation list, so it will keep working.



Offline QiLin

  • Bondsman
  • *
  • Posts: 21
  • Karma: 2
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #11 on: February 23, 2010, 08:42:53 PM »
have you run the BCDEDIT command?

I found a better alternative to running in test-mode: It's a signed driver by the australian company Linchpin Labs that loads other (unsigned) drivers.
Microsoft forbid this little tool after some time and let Antivir companys put it on their blacklist, but it is still everywhere on the internet and is safer to use than running in test-mode all the time.
Just google for "atsiv.exe" and give it a try. I will check on it within the next days

Yup, I ran the BCDEDIT cmd but no avail. I might check out atsiv...  wish either the MWLL devs or Logitech come up with a more usable solution like multi-joystick support or a profiler that shows the G940 as 1 device... grrrrmmmblll

So, I might have to stay with my prop planes for a while.

Offline bokan

  • Bondsman
  • *
  • Posts: 14
  • Karma: 0
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #12 on: February 23, 2010, 11:29:26 PM »
Actually, the ppjoy installer itself won't even work because of the signing issue; I have no way of getting to the sys files anyway :(
« Last Edit: February 24, 2010, 03:39:33 AM by bokan »

Offline 7.[WD]Poldi

  • Lance Sergeant
  • **
  • Posts: 411
  • Karma: 27
  • Col. 7th Reg. Wolfs Dragoons
    • 7th Wolf Dragoons HQ
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #13 on: February 24, 2010, 11:43:16 AM »
pls msg me on icq or msn and i will guide u



Offline 7.[WD]Poldi

  • Lance Sergeant
  • **
  • Posts: 411
  • Karma: 27
  • Col. 7th Reg. Wolfs Dragoons
    • 7th Wolf Dragoons HQ
Re: Setting up Logitech G940 HOTAS (aka using multiple joysticks)
« Reply #14 on: February 24, 2010, 05:27:35 PM »
I am sorry to say but atvis didn't work with ppjoy system files (for me at least)

I will guide QiLin to the whole process and there I will hopefully see what I was missing. (didn't write that guide while I was actually doing that install stuff)