# Introduction

### What is PPJoy?

PPJoy is a joystick device driver for Windows 2000 and later. There is also limited support for Windows 98 and Windows Me. PPJoy was designed for joysticks connected to the parallel port but it also supports other devices via the virtual joystick interface

Supported devices are:

- Digital joysticks for the Commodore 64, Atari, ZX Spectrum and other computers of that era.
- Playstation controllers.
- NES, SNES and Virtual Gameboy controllers
- Sega Genesis controllers
- PPM and PIC interface Radio Control transmitters
- Joystick emulation using the keyboard or mouse

Windows will treat these devices just like any other joystick and they can be used in any game or application that accepts joystick input.

### Why PPJoy?

There are lots of USB joysticks out there that are a lot less hassle to install and configure. So here is why you may want to use PPJoy:

- PPJoy is free for non-commercial use and you may already have a perfectly good controller supported by PPJoy. A small donation will however be appreciated.
- Use the original controllers along with an emulator for a more authentic experience.
- Use your all-time favourite controller with PC games.
- Use PPJoy instead of a keyboard encoder in a game cabinet.
- You want to emulate joystick input from another application.

On the other hand you still need to buy or build the proper adapter to connect your controller to your computer.

# Supported Operating Systems

PPJoy was designed for Windows 2000, Windows XP and later but will also work on Windows 98 and Me with a few restrictions. It is recommended that you install at least DirectX 9.

Windows 98 and Me restrictions:

- PPJoy cannot claim exclusive access to the parallel port and may interfere with other applications (like printing) that use the same port. The PPJoy driver needs to be disabled (In Device Manager) when you need to use a port for something else.
- The PPJoy setup cannot automatically install the required device drivers. They have to be manually installed after the setup application exits.
- PPJoy may lack some features under Windows 98/Me; or some things may not work as smoothly.
- Note: PPJoy is not as well tested as under Windows 98 or Me as under Windows 2000/XP.

There is (always) a small risk that PPJoy may crash or bluescreen your computer. Use it at your own risk.

Windows NT 4 or Windows 95 is not supported.

# What's new

Version 0.83

- PPM radio transmitters are now listed under their own device type (Radio control TX) in the Add Joysticks dialog box.

Version 0.82

- Added POV hat support to PPJoy.
- Fixed bug in PPortJoy.cpl - adding more than one PPM interfaces per port
- Fixed bug in PPortJoy.cpl - fixed "Unable to verify IRQ" error message
- PPJoyCOM now detects and displays only installed COM ports
- PPJoyCOM now supports the RC AeroChopper (by Ambrosia) controller
- MiniDrivers (PPJoyXXX) now detects and displays only configured Virtual Joysticks
- MiniDrivers (PPJoyXXX) now prompt for confirmation before exit
- Virtual joysticks are reset (centered and off buttons off) when application exits
- PPJoy option registry entries no longer cause PPJoyBus warnings in EventLog.
- PPJoyBus now writes the name of invalid registry entries to EventLog.

Version 0.80

- Added Sega Genesis interface as found in DirectPad Pro v6
- Updated Mapping and Timing wizard layouts
- Can now set PPM and Playstation debug options via PPJoy control panel
- Added minimize button to PPJoyDLL
- Ability to change the number and type of axes and buttons (DirextX 9 required)
- Added new DLL type to PPJoyDLL
- Added new 8 channel input DLLs to PPJoyDLL
- Added PPJoyMouse mini-driver to mouse-to-joystick emulation
- Fixed integer overflow bug for PPM interface that resulted in reduced range
- Internal fixes to PPJoyKey (DX initialisation)
- Fixed default extension for INI files saved by PPJoyCOM, PPJoyDLL and PPJoyKey
- Added option to stop PPJoy from allocating parallel port when in operation
- Modified PPJoyCOM to accept more generic 9600 baud PIC protocols
- Slight web page layout modifications

Version 0.78

- Configurable timing parameters for selected joystick interfaces
- Add 19200 baud FMS PIC protocol to PPJoyCOM
- Optional beep on IRQ for FMS PPM interface
- New PPJoyDLL mini-driver to read PCM R/C transmitters using SmartPropo DLLs
- Added extra support for buttons to PPJoyKey
- New-look documentation
- Additional error checking and messages during setup
- Corrected incorrect ACK timing bug with PSX interfaces
- Changed the default axis types for PPM R/C and Virtual (IOCTL) Joysticks

Version 0.77

- Eventlog entries for Windows 2000/XP
- NES PowerPad controller support
- Beta FMS PPM R/C support
- Keyboard to joystick mini-driver
- FMS Serial interface (FMSLead) mini-driver

Version 0.75

- Playstation controller support
- SNES/NES controller support
- Sega Genesis support
- Linux gamecon.c joystick interface
- User-mode joystick mini-drivers (IOCTL).
- Remapping of buttons and axes.

# Upgrading from an older version

In general you can install a new version of PPJoy over an older version without uninstalling it first. Windows 98/Me users will need to reboot after the installation to activate the new version of the drivers.

PPJoy v0.81 changes the default mapping of playstation controllers. The [],/\,O and X buttons are now mapped to the POV hat by default rather than to fire buttons.

PPJoy v0.78 changes the definition (and order) of axes for the PPM R/C and virtual joystick (IOCTL) devices to better accommodate Windows 98/Me and non-DirectX joystick applications. You must delete device or interface mappings you created in previous versions of PPJoy to take advantage of this change.

PPJoy v0.75 has undergone major internal changes. If you are upgrading from an earlier version your old joystick definitions will be deleted as part of the installation process. You will need to add the joysticks again after the install is finished. Also, for Windows 98/Me you need to add the Joystick Bus again (see Additional installation steps for Windows 98 and Me).

# Planned features

The following are a list of thing that I hope to get around to (if and when time permits):

- Optimised scan routines that scan many joysticks in parallel.
- Force feedback for playstation controllers.
- DualShock2 analog buttons support.
- Better documentation / tutorials.
- Integration into the "Game Controllers" Control Panel applet.
- Visual Basic 6 and Delphi sample code for IOCTL (virtual joystick) interface.
- Dead-zone and sensitivity configuration.

It is unlikely however that any of these features will be implemented as I have decided to suspend PPJoy development. See A personal note.

# Licensing

### Personal use

PPJoy is free for personal non-profit use but a donation is requested towards further development of PPJoy.

### Commercial licensing

If you derive an income from PPJoy, either directly or indirectly, you are required to pay a license fee for PPJoy. PPJoy may not be bundled with any item you sell.

Including a copy of PPJoy with an adapters you sell, or a direct download from the website where you sell the adapters are examples of using PPJoy to indirectly generating income.

Please contact me for terms.

### Virtual joystick functions

All applications using the PPJoy Virtual Joystick functions are required to display the following notice along with your copyright: "This application makes us of the PPJoy virtual joystick functions. PPJoy is copyrighted by Deon van der Westhuysen"

If you charge money for your application, or use the application in conjunction with a product you sell, you require a commercial license.

### Linking to PPJoy

Direct linking to (or mirroring) the PPJoy setup package from other websites are expressly prohibited. Links from non-commercial sites to the PPJoy homepage are very welcome.

# A personal note

I have decided to stop PPJoy development.

Why? Firstly I can no longer afford to spend the many hours and days it takes to develop PPJoy and maintain the documentation.

Secondly, people on the Internet today seem to be an ungrateful bunch. I have received about 5 postcards and 4 donations. And thank-you emails have been few and far between... Hardly worth the effort I put into PPJoy! Instead I get emails mindlessly asking questions already answered in the manual.

Will there be a next version of PPJoy? I don't know. Probably not any time soon. And if there is a new version is will no longer be free. So Long, and Thanks for All the Fish.