Standard versus Virtual Joystick

To better understand how vJoy devices function in Windows environment, I wish do compare a system with a Standard Joystick device to a system where a vJoy device driver is installed:


vJoy device driver is a Kernel Mode Driver Framework (KMDF) filter driver.

vJoy supports up to sixteen virtual joystick devices. Each device supports up to 128 buttons, up to 8 axes and up to 4 POV hat switches (Continuous or 5-state).

The type of each device is hid_device_system_game which represents a standard joystick device.

By default, the supplied installer installs the vJoy driver and one vJoy device (Device number 1) that is pre-configured to feature eight buttons and eight axes. Later, the number of devices, their serial number and their configuration can be changed. It is also possible to alter the installer to provide a different default set-up

What is a Feeder

While an application sees a vJoy device as just another standard joystick device, it is the role of the feeder to feed the device with meaningful data.

A common scenario is when you have a computer game that can be controlled by a single joystick device. However, you want  to control it from two physical joysticks. By writing a feeder you can accomplish this task as follows:

You write a feeder that reads information from both physical joysticks and feed the combined data to the vJoy device. The game sees only a single device, vJoy. However, this device hides behind it the two physical devices.

Other common scenarios are when a vJoy device passes position information created by devices that are not joysticks such a mouse, the keyboard or a stearing wheel. You can also write a feeder that gets its data over the internet or WiFi.

Description of supplied installer:

The installation packages currently shipped (x86/x64) are constructed of several layers: