## PPJoyJoy virtual joystick mixer

PPJoyJoy is a joystick mixer application. It takes the input of a multiple joysticks and combines it into a single PPJoy Virtual Joystick. The input joysticks can be any joystick recognised by DirectX. Below is a screenshot of PPJoyJoy:

### Selecting a Virtual Joystick

The drop-down list next to Joystick device selects the virtual joystick to use. The list will show all the virtual joystick defined in the PPJoy Control Panel applet. You need to configure at least one virtual joystick in PPJoy before this application will run. (See Adding a new joystick or gamepad.)

The text below the drop-down list displays the status of the selected virtual joystick.

### Specifying the control sources

There a two drop-down lists associated with each control (axis or button) of the Virtual Joystick. The first drop-down list selects the joystick from which input will be sourced; the second list selects which control on that joystick will supply input to the destination control. As soon as you select a new value from a drop-down list it will take effect.

To disable a control simply leave the source joystick drop-down list blank; or select clear if there was a previous selection.

The list of source controls are static and does not take into account the controls actually available on the source joystick. Selecting an unused control will simply be ignored. The same source control can be assigned to multiple destination controls.

### Adding an removing joysticks

After you added (or plugged-in) a new joystick you need to click on the Rescan joysticks button before the new joystick will appear in the PPJoyJoy drop-down lists. PPJoyJoy does not automatically detect new joysticks.

If you remove/unplug a joystick PPJoyJoy will detect that and remove it from the list of available joysticks. If the joystick was selected as an input source, the source joystick for affect controls will be cleared but the other controls will still read their input as normal.

### Setting the update interval

PPJoyJoy needs to continually scan the source joysticks for movement. The shorter this scan interval the more responsive will the virtual joystick be; at the cost of a higher CPU load. The frequnecy with which PPJoyJoy scans for joystick input can be changed by entering a new value (in Milliseconds) in the Update interval edit box and clicking on Set.

### Loading and saving the configuration

PPJoyJoy allows you to load and save the configuration to .INI files. You can also load an .ini file on startup by specifying it on the command-line when starting PPJoyJoy. For example `PPJoyJoy.exe C:\Config\PPJoyJoy.ini` will automatically attempt to load C:\Config\PPJoyJoy.ini on startup. If the config file is in the current directory you need to add ".\" in front of it. For example `PPJoyJoy.ini` becomes `.\PPJoyJoy.ini`.

### Additional notes

- Each instance of PPJoyJoy feeds data for a single virtual joystick. You can run multiple copies of PPJoyJoy if you have complicated mixing requirements.
- The PPJoyJoy application must be running while you use the virtual (mixer) joystick. You can however minimise it to the taskbar.