PPJoy for using multiple joysticks
From Mechwarrior Living Legends Wiki
Currently the CryTek Engine 2 used in the MW:LL Project only capable of handling only one joystick device. In order to use multiple devices a third party driver, such as PPJoy, must be used.
What is PPJoy?
PPJoy is a joystick device driver for Windows. PPJoy was originally designed for joysticks connected to the parallel port but it also supports other devices connected via USB, MIDI or the virtual joystick interface.
Why use PPJoy?
PPJoy has many uses, but for the purposes of this article we will be discussing the virtual joystick interface.
- PPJoy is free for non-commercial use.
- Combine several physical controllers into one virtual device.
- You want to emulate joystick input from another application.
Windows will treat these devices just like any other joystick and they can be used in any game or application that accepts joystick input.
Official Website (no downloads are here): http://ppjoy.blogspot.com/
Version 0.8.4.6: http://uploaded.to/file/fzhe96kn
If you know you are going to add the PPJoy hardware ID patch you can add it before installation the first time. Extract the contents of the PPJoy installer, extract the contents of the patch over it, then install normally.
Windows 32 bit
Installation on 32 bit Windows works normally. Skip to Configuration.
Windows Vista & 7 64 bit
To install you need to turn off UAC. To do so run "msconfig" from commandline 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.
Disable Driver signing
To disable driver signing, open an elevated command prompt and run gpedit.msc. If you have a "Home" edition of Windows this will not be possible, skip this step.
Enable test mode
To enable test mode, run the PPJoy 0.8.4.6 installation and reboot. You should see a test mode and build number on the lower right hand of the desktop. If it did not work read BCDedit issues.
PPJoy 0.8.4.6 automatically enables test mode and detects if it is on. If this did not work you will have to enable test mode by hand and install using PPJoy 0.8.4.5.
The only difference between the versions is the installer, the drivers are the same.
To enable testmode open an elevated command prompt and run the command BCDEDIT -STORE C:\BOOT\BCD -SET TESTSIGNING ON
Run the installer for PPJoy. If any prompts come up asking to install unsigned drivers be sure to click to Install (there will be two).
Test sign the drivers
After installation it is important to test sign the drivers. This can be done with the dseob utility. dseob may trigger an anti virus warning, please see notes.
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). Browse for the folder you installed PPJoy into with your windows explorer and copy the full path to your clipboard (CTRL+C). Paste it (CTRL+V) in the dseob window and add the full name of the .sys file. This could look like this: "C:\Program Files (x86)\PPJoy Joystick Driver\PPJoyBus.sys" - click "OK". Repeat this for each of the 4 .sys files.
Create virtual joystick
Using the PPJoy control panel applet, add a virtual stick. In the mappings only set if you like an axis/button to analog/digital, ignore the scanning option.
Configure virtual joystick
Run PPJoyJoy.exe from the installion directory. This the main interface for configuring the PPJoy device. This window also needs to remain open for the PPJoy device to recieve updates.
You can configure each axis and button here but selecting what you would like it to be.
Be sure to save your configuration when you are done creating it. Each time you wish to use the virtual device open PPJoyJoy.exe and open the .ini file for it.
PPJoy won't install on Windows 64 bit
If BCDedit cannot find your bcdstore by default, it will not be possible to install PPJoy 0.8.4.6 because of automatic detection before it installs. In order to get around this error use PPJoy 0.8.4.5.
To determine if this is an issue, run the command bcdedit in an elevated command prompt.
PPJoy doesn't detect physical joysticks
It is possible that PPJoy does not detect physical joysticks. If this is the case it is possible to use a third party program, such as GlovePIE, to control the virtual joystick.
To do this, under PPJoyJoy.exe set every axis and button to itself and use GlovePIE to control these virtual axises/buttons.
(More to come on GlovePIE).
Joystick ID issues
In the USB Game control panel menu, setting the legacy joystick device is supposed to make it ID #1. However, this is not always the case. Windows Vista and newer sort joystick IDs automatically by hardware ID on each device connect/disconnect.
If a game does not allow for the selecting on a joystick and the legacy joystick option does not work there is a way to force PPJoy to have the lowest hardware ID. This may be required for MW:LL if actionmapper does not select the right device, and will work for any other game that does not allow for joystick selection, such as MechWarrior 3.
The patch file can be downloaded from here: http://www.mediafire.com/?1g2a71cygydq84o
The author of it is xargoon from the BF3 forums, the original topic can be found here: http://battlelog.battlefield.com/bf3/forum/threadview/2832654347734183955/
Remove virtual devices and joysticks
Before applying the patch, it is important to remove any virtual joystick mapping in the control panel applet for PPJoy.
On removal make sure both checkboxes are ticked (one for removing the mapping, the second for removing the driver).
Remove any joysticks connected to the system now as well.
To apply the patch extract the contents into the directory where PPJoy was installed (you can leave out the readme file).
For the patch to take effect a reinstall of the driver .inf is required. To do this, open up the device manager by running devmgmt.msc from a command prompt. Select actions, then Add Legacy Hardware. Use the have disk option, and select the new .inf file from the PPJoy directory. Reboot now.
In order to test if it worked, use the PPJoy control panel applet to readd a virtual device. If it is possible to set the device mappings the new driver installed properly. Connect any joysticks to the system and check to see if PPJoy had the lowest ID number. The device with the lowest ID will appear on top in the USB Game controller control panel applet.
If it did not work, uninstall PPJoy and reinstall, then apply the patch again.
In order for the PPJoy drivers to function in 64 bit Windows, test mode must be left on. Please be aware that this will leave your system more vulnerable to viruses and a good antivirus program is highly recommended.
Due to the nature of dseob anti virus programs may detect it as malware. As long as it was downloaded from the official website these warnings can be ignored.
PPJoy needs atleast one program window open to send updates to the driver. Before using PPJoy open PPJoyJoy.exe from the installation directory.
Currently versions 0.8.4.6 and 0.8.4.5 both support up to Windows 7 64 bit.
The author is no longer working on PPJoy, but has GPL'ed the code. A Git repository can be found here: https://github.com/elitak/PPJoy
NastyNine 22:30, 31 May 2012 (UTC)