PPJoy for using multiple joysticks

From Mechwarrior Living Legends Wiki

Jump to: navigation, search

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.

Contents

Introduction

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.

Installation

Download

Official Website (no downloads are here): http://ppjoy.blogspot.com/

Version 0.8.4.6: http://uploaded.to/file/fzhe96kn

Version 0.8.4.5: http://rapidshare.com/files/303690305/PPJoySetup-0.8.4.5-early-release.exe

Github: https://github.com/elitak/PPJoy

dseob: http://www.ngohq.com/home.php?page=dseo

Note

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

Disable UAC

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".

Win7UACsysde.png

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

Win7UACwinde.png

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.

Win7gpde.jpg

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.

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

Install

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.

Configuration

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.

PPJoyJoy.jpg

Issues

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.

Download

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.

Patch

To apply the patch extract the contents into the directory where PPJoy was installed (you can leave out the readme file).

Driver reinstall

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.

Test

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.

Notes

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.

Development

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)

Personal tools