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


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
<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
...
<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.
<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 filesPPJoy config files