Hi all!
I just released a super alpha (and buggy) version of a tool which can be used to calibrate the sticks of WIi classic controllers (including the Pro models) and store the calibration data into the controller's EEPROM. Sounds good? Well, unfortunately it's not as useful as it sounds, because according to my tests the calibration is only used by homebrew programs.
As far as I can tell (but I tested only two games, PES2013 and Super Smash Bros Brawl), original Wii software completely ignores the calibration data, and only infers the stick rest position at the moment that the controller is first connected; the range of the stick is not calibrated in any way. Of course, it may be that some games do use the calibration data, but I have no idea how to figure out which do. That's also why I'm a bit demotivated and I'm releasing the program here, as an unpolished version. If you find some use for it let me know, I'll try to dedicate some more time to it if needed.
You can get it from here: https://github.com/mardy/wiicalib/releases/tag/0.1
Usage:
- Connect a Classic Controller to the wiimote
- Start the application
- Press 1 + 2 on the wiimote
- Once the wiimote connects, you can press A to see the existing 16 bytes of the calibration area (on Pro controllers this is usually all zeroes)
- Press B to initiate the calibration and disconnect/reconnect the controller from the wiimote
- Move the sticks around in circles a few times, you'll see the numbers on the screen showing the maximum and minimum extents registered
- Press X to store the calibration data into the controller
- Since the previous step can randomly fail, press A after it claims to be completed to see the 16 bytes: if the last two bytes are "0x00 0x00", it means the writing failed, so redo the write (press X again, then A) untill you see that at least one of the two bytes is not zero.
- Disconnect and reconnect the controller to the wiimote, and test the sticks: ideally now their extreme positions will be 0 and 255 (or rather close to these). Done!
All I can say is that the calibration has a noticeable effect on homebrew: I started up WiiFlow and connected two controllers, one calibrated, the other not calibrated, and the cursor of calibrated one moves much faster.
I just released a super alpha (and buggy) version of a tool which can be used to calibrate the sticks of WIi classic controllers (including the Pro models) and store the calibration data into the controller's EEPROM. Sounds good? Well, unfortunately it's not as useful as it sounds, because according to my tests the calibration is only used by homebrew programs.
As far as I can tell (but I tested only two games, PES2013 and Super Smash Bros Brawl), original Wii software completely ignores the calibration data, and only infers the stick rest position at the moment that the controller is first connected; the range of the stick is not calibrated in any way. Of course, it may be that some games do use the calibration data, but I have no idea how to figure out which do. That's also why I'm a bit demotivated and I'm releasing the program here, as an unpolished version. If you find some use for it let me know, I'll try to dedicate some more time to it if needed.
You can get it from here: https://github.com/mardy/wiicalib/releases/tag/0.1
Usage:
- Connect a Classic Controller to the wiimote
- Start the application
- Press 1 + 2 on the wiimote
- Once the wiimote connects, you can press A to see the existing 16 bytes of the calibration area (on Pro controllers this is usually all zeroes)
- Press B to initiate the calibration and disconnect/reconnect the controller from the wiimote
- Move the sticks around in circles a few times, you'll see the numbers on the screen showing the maximum and minimum extents registered
- Press X to store the calibration data into the controller
- Since the previous step can randomly fail, press A after it claims to be completed to see the 16 bytes: if the last two bytes are "0x00 0x00", it means the writing failed, so redo the write (press X again, then A) untill you see that at least one of the two bytes is not zero.
- Disconnect and reconnect the controller to the wiimote, and test the sticks: ideally now their extreme positions will be 0 and 255 (or rather close to these). Done!
All I can say is that the calibration has a noticeable effect on homebrew: I started up WiiFlow and connected two controllers, one calibrated, the other not calibrated, and the cursor of calibrated one moves much faster.








