PPJoyDLL virtual joystick
PPJoyDLL is a container application to load other DLLs that provide joystick data. This data is then fed
to Windows as joystick input via the PPJoy Virtual Joystick interface. Below is a screenshot of PPJoyDLL:
Selecting a Virtual Joystick
The drop-down list next to Joystick device selects the virtual joystick to use. The list
contains all possible virtual joystick names; it does not detect which virtual joysticks are
actually configured in PPJoy. You need to configure at least one virtual joystick in PPJoy.
(See Adding a new joystick or gamepad.)
The text to the right of the drop-down list displays the status of the selected virtual joystick.
DLL name
The name of the loaded DLL is shown greyed-out; the status of the DLL is shown to the right of
the DLL name. When you select a new DLL type the existing DLL (if any) is unloaded and the DLL
name will be blank.
Click on Load .DLL to load a new .DLL file.
Selecting a DLL type
The second drop-down list, DLL type determines which functions in the loaded DLL file
to call to obtain joystick data. Currently the following DLL types are supported:
- SmartPropo winmm.dll for .DLL for SmartPropo input DLLs written for FMS by
Tsutomu SEKI. You can find these DLLs on his download page at
http://www.sekiriki.jp/smartpropo/downloads.html.
These DLLs export the same basic joystick functions as winmm.dll shipped with Windows. You
can use any DLL in their place that exports the functions called joyGetPosEx() and
joyGetDevCapsA() and behaves like the corresponding Windows API functions.
- Callback DLL interface is a new interface that indicates to PPJoyDLL when there is new
joystick data. It also supports more axes and buttons (up to 8 axes and 16 buttons) than the
SmartPropo winmm.dll interface.
The following .DLLs can be found in the PPJoy installation directory (Normally C:\Program Files\Parallel Port Joystick):
- Futaba_PCM.dll: For Futaba radios using PCM encoding.
- Futaba_PPM.dll: For Futaba radios using PPM encoding.
- JR_PCM.dll: For Jr radios using PCM encoding.
- JR_PPM.dll: For Jr radios using PPM encoding.
These .DLLs are based on the SmartPropo source by Tsutomu SEKI and works in the same way as
the original SmartPropo DLLs. You can get the modified source here .
Update frequency
The Update interval value determines how many microseconds (1/1000000s) PPJoyDLL will wait
between joystick updates. This field is enabled for .DLL that has no way to indicate new data to
PPJoyDLL. In these cases PPJoyDLL must poll the .DLL for new data. Setting this value too low will
cause performance issues. Setting it too high my cause sluggish joystick movements. The default
value of 25ms should be fine...
Click on Set to active any changes you make to the update interval. The application will
automatically change values less than 5ms back to 5ms.
If this field is disabled it means the currently selected .DLL type indicates to PPJoy when there
is new data. Polling is not needed in this case.
Loading and saving the configuration
PPJoyDLL 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 PPJoyDLL. For example
PPJoyDLL.exe C:\Config\PPJoyDLL.ini will automatically attempt to load C:\Config\PPJoyDLL.ini
on startup. If the config file is in the current directory you need to add ".\" in front of it. For
example PPJoyDLL.ini becomes .\PPJoyDLL.ini.
Additional notes
- Each instance of PPJoyDLL feeds data for a single virtual joystick. You can run
multiple copies of PPJoyDLL if you need to use more than joystick device.
- The PPJoyDLL application must be running while you use the virtual (DLL-based) joystick.
You can however minimise it to the taskbar.