# Changing the joystick interface timing parameters

Certain joystick interfaces require relatively long delays, which uses a lot of CPU cycles, to read the joystick. PPJoy allows you to customise the timing values used in order to minimize the CPU usage.

Below is a list of the joystick and gamepad interfaces that have configurable timing parameters.

- Genesis gamepads
- NES/SNES gamepads
- Playstation controllers
- LPT-switch controller
- FMS PPM R/C transmitter

The following topics will explain changing timing parameters in more detail:

- Important concepts
- Changing the joystick timing parameters
- Deleting timing parameters

### Important concepts

There are three levels of timing parameters in PPJoy:

- The Default timing is used when there are no more specific (interface or individual) timing parameters for a particular joystick. They are probably not optimal for your controller but should be adequate in most cases.
- The Interface timing applies to all joysticks, without individual timings, that connect to this interface type.
- Individual timing applies to a single joystick.

If individual timing parameters are defined for a joystick they will always be used. If a joystick has no individual timing parameters the interface timing will be used instead. If there is no individual or interface timing for a joystick the built-in default timing parameters will be used.

Different interfaces, even for the same controller type, have separate interface timing settings. For example, the DirectPad Pro and Linux interfaces for Playstation controllers will each have their own interface timing parameters.

### Changing the joystick timing parameters

Start by selecting the joystick to change and click on the Timing... button. A new dialog box, similar to the one below, should appear.

Broadly there are two groups of options: the interface (top three) and individual (bottom three) options. If no timing parameters exist for a given category (interface or individual) you are offered the chance to create new timing parameters; else you have to option to modify or delete them. See the section Deleting timing parameters for more information on how to delete the timing parameters.

The interface timing parameters will affect all controllers using that interface type unless the controller has its own individual parameters. Individual timing parameters will always take precedence over interface parameters.

If you choose a Set (Create) or Modify option and click on Next you will see a screen like the one below. The exact screen will depend on the joystick type for which you want to modify the timing parameters.

The top part of the screen will list the timing parameters available for the selected controller or interface and allow you to change them. Click on Apply to activate the new parameters while keeping the wizard open. Clicking on Finish will apply the new timing values and close the wizard.

The best strategy to configure timing parameters is probably to gradually lower, and apply, one parameter until the controller's operation becomes unstable. Repeat this process for the other parameters.

Clicking on Reset defaults will change the timing parameters back to the values they were when the wizard was started and apply them.

Click on Finish after modifying the timing parameters.

### Deleting timing parameters

Start by selecting a joystick and clicking on the Timing... button.

Select whether you want to delete the individual timing parameters for a joystick or the interface timing parameters. Then click on Next. If timing parameters do not exist the option to delete it will be greyed out.

This is the confirmation screen before the delete. You have to select Yes before the Finish button will be activated. After you selected Yes, click on Finish.