Corruption of joy.cpl File Leading to Problems With Registration and Calibration in Windows 10

Every flight simulator uses input devices, and these devices must be initially registered and calibrated in the Windows Operating System, prior to advanced calibration in ProSim737 or FSUIPC.

Occasionally, the User Interface used to register and calibrate the devices fails or crashes.  One potential reason for the interface becoming unresponsive, can be caused by Windows 10 updates, that are automatically downloaded and installed to your computer.

While most updates are benign, some will tamper with settings that otherwise were thought to be ‘set in stone’.

In this article, I’ll discuss how the corruption of the joy.cpl file can lead to problems when attempting to register and calibrate joystick controllers.

Note that I use the word input device, game controller, joystick controller, and hardware device interchangeably.  Also be aware that the joy.cpl file is used in all late Windows operating systems (XP onwards).

Background

Flight simulator uses several hardware devices.  A basic list of the most commonly used is listed below:

  • Flight controls (aileron, elevators, steering tiller, rudder).

  • Yokes (buttons and elevator trim).

  • Throttle Quadrant (buttons, flaps lever, speedbrake lever, thrust levers, cut-off levers, parking brake).

Often, but not always, the items mentioned above are connected to the computer by a Leo Bodnar Joystick Controller or Button Box card (BU0836A and BBI-64 or similar).  These cards must be registered, and the connected potentiometers calibrated in Windows, prior to more advanced calibration in ProSim737 or FSUPIC.

Registration and calibration occurs in the Windows Joystick Calibration User Interface (Game Controller Interface).

It's often easier to think of calibrating controls as a two-stage process - Primary Registration and Calibration (in Windows) and Secondary Calibration (in Prosim737, flight simulator, or FSUPIC).

Joystick Calibration User Interface displaying opening menu and calibration menu

Registration and Calibration (Primary Calibration)

By way of an example, let’s assume a yoke is being connected to the computer via a Leo Bodnar BU0836A 12-Bit Joystick Controller card.   The movement of the ailerons and elevator (potentiometers) will need to be initially registered and calibrated in Windows.

To begin the registration process, open the Joystick Calibration User Interface and follow the prompts.  During the registration and calibration process, each of the end points for the movement of the potentiometer will be recorded, and an axis assigned to the aileron and elevator.  Initial calibration of each axis then occurs.  This information is saved into a file called joy.cpl.  

Important Point:

Calibration of any axis must involve moving the hardware device as far as possible (left, right, forward or backward).  This ensures that the full range of movement from the potentiometer is recorded during the registration process. 

A .cpl file is a .DLL file that stores information for other programs to access.  It’s part of the game controller applet and creates an entry in the Windows registry.  I don’t want to dwell any longer than necessary on the Windows infrastructure, as this information is readily available from the Internet.

Handy Shortcut:

  • There are several ways that the User Interface can be accessed: press 'WIN key and R' and then type either ‘joy’ or 'joy.cpl' into the search bar.   Another way is to type ‘joy’ or 'joy.cpl' directly into the Cortana search bar (Windows 10).

Corruption of joy.cpl File.

Initially you may not realise there’s a problem, until you discover it’s not possible to calibrate a device accurately in ProSim737 or in FSUPIC.  Or, if registering a new hardware device, the registration and calibration fails.  Corruption of the joy.cpl file will usually cause the Game Controller Interface to crash.

How the joy.cpl file becomes corrupted is unknown (by me).  I’ve read that Windows updates to sound drivers can sometimes cause an issue.  However, when I recently experienced a problem when attempting to register a new joystick controller card, removing and replacing the sound drivers didn’t rectify the problem.  

The Solution

Thankfully, the solution to this problem is relatively straightforward.  The joy.cpl must be deleted and replaced with a fresh copy.  

Important Points:

  • The corruption of the joy.cpl file is one of the most common reasons for registration and calibration problems, however, it may not be the only reason.

  • While Windows 10 updates can cause corruption of the joy.cpl file, there are other reasons that may cause this file to be corrupted.

Screen grab of the Sytem32 folder showing joy.cpl file

How to Repair the joy.cpl File

Rectifying the problem is a two-part process involving deleting the  joy.cpl file and replacing it with a fresh copy (non-corrupted) copy.

The joy.cpl is located in the Windows System32 folder (C:\Windows\System32).

Each computer system is slightly different, and depending on the file’s protection status, deleting the file may be difficult.  When attempting to delete this file, always log in as Administrator.  

If the file still can’t be deleted, a standalone unlocking program will be required.  As the name suggests, this program ‘unlocks’ the file (or any other file selected) so that it can be deleted.  There are several free unlocking programs available from the Internet.  I used a program called UnLocker.

Install UnLocker to the computer and follow the prompts after which the joy.cpl file should be able to be deleted.

Next, open the SysWOW64 folder (C:\Windows\SysWOW64).  Scroll downwards and find the  file joy.cpl file.  This is a copy of the file keep by Windows.  COPY this file and paste it into the System32 file.

After this has been done, registration and calibration of any hardware device should be possible.

Important Points:

  • It’s standard practice to always make a copy of any file prior to deletion (so you can rollback if necessary).

  • Always COPY the file from the SysWOW64 folder.  NEVER cut and paste.

  • When you replace the joy.cpl file, any settings previously held in registration may no longer exist.  If this occurs, registration and calibration will need to be done again for ALL hardware devices.

Backup Configuration Settings

The file that contains the configuration settings is the joy.cpl.

This file contains the information Windows needs to be able to load the settings obtained during Primary Calibration.  This file should be backed up.

Important Point:

  • If a problem develops at some point, it's an easy matter to replace the joy.cpl file with the backed up copy.  if the problem persists, then replacement of the file (from the SysWOW64 folder may be necessary).

Although Secondary Calibration has not been addressed in this article, it's recommended to backup these settings (included for completeness).  Recommended files to backup.

  • C:\Users\Your_Name\AppData\Roaming\Lockheed Martin\Prepar3D v4\Controls\Standard.xml, controls.xml and/or joysticks.xml

  • P3Dv4\modules\FSUIPC.ini

  • Prosim737\config.xml (located in ProSim737 main system folder)

  • C:\Windows\System32\joy.cpl.

Final Call

Not being able to register a hardware device in Windows can be frustrating and time consuming.  The registration and calibration information of any hardware device is recorded in the joy.cpl file.   If this file is corrupted, initial registration and calibration of hardware devices won’t be possible.  Prior to troubleshooting elsewhere, the first point of call should be to delete the corrupted file and replace it with another copy.