Gamepad polling rate and synthetic latency tester.
Project description
Gamepadla+ is an easy way to check the polling rate of your gamepad. This tool will help you get accurate data about your controller's performance, which can be useful for gamers, game developers, and enthusiasts.
Gamepadl+ works with most popular gamepads and supports DInput and XInput protocols, making it a versatile solution for testing different types of controllers.
Gamepadla+ or gamepadla-plus is a hard fork of Gamepadla.
Installation
uv
uv tool install gamepadla-plus
pipx
pipx install gamepadla-plus
pip
pip install gamepadla-plus
Usage (GUI)
- Execute the program
gamepadla
without any arguments. - If you haven't connected any controller do it now and click
Refresh
. - Click
Test
and rotate the stick you chose slowly at the edge. - Optionally save the result to a JSON file or upload the result to <gamepadla.com>.
Usage (CLI)
# gamepadla.exe --help
Usage: gamepadla [OPTIONS] COMMAND [ARGS]...
Gamepad latency and polling rate tester.
╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy it or customize the installation. │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ list List controller id's. │
│ test Test controller with id. │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Getting Started
- List all controllers connected with:
gamepadla list
# gamepadla list
Found 1 controllers
0. Xbox 360 Controller
- Test the controller with the id from step one (
test
defaults to id 0):
gamepadla test 0
equals here
gamepadla test
# gamepadla test
100%|████████████████████████████████████████████████████████████ | 01.00 ms
Parameter Value
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Gamepad mode Xbox 360 Controller
Operating System Windows
Polling Rate Max. 1000 Hz
Polling Rate Avg. 964.36 Hz
Stability 96.44%
Minimal latency 0.51 ms
Average latency 1.04 ms
Maximum latency 2.0 ms
Jitter 0.16 ms
Options
Test Right Stick
gamepadla test --stick right
Write Result to JSON File
gamepadla test --out data.json
Upload Result to <gamepadla.com>
gamepadla test --upload
Disclaimer
Gamepadla measures the delay between successive changes in the position of the analog stick on the gamepad, rather than the traditional input latency, which measures the time between pressing a button on the gamepad and a response in a program or game.
This method of measurement can be affected by various factors, including the quality of the gamepad, the speed of the computer's processor, the speed of event processing in the Pygame library, and so on.
Therefore, although Gamepadla can give a general idea of the "response" of a gamepad, it cannot accurately measure input latency in the traditional sense. The results obtained from Gamepadla should be used as a guide, not as an exact measurement of input latency.
Contributors
Notable Mentions
Based on the method of Christian P.: https://github.com/chrizonix/XInputTest.
License
Licensed under MIT.
Contributing
Please have a look at CONTRIBUTING.md
.
Why this is a Hard Fork
cakama3a/Polling
(formerly known asGamepadla
) has 200MB git history. Sadly many build artifacts and release binaries are in said git history. Cloning that repo is not fun. And removing those directories from my history essentialy made my repo a hard fork.cakama3a
(aka John Punch) is very unresponsive regarding the addition of pip support for the software. A simplepyproject.toml
was sitting ducks in the PR while he still happily adds more release artifacts to the git history.- I made major additions like the GUI and the CLI to my fork.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gamepadla_plus-1.6.0.tar.gz
.
File metadata
- Download URL: gamepadla_plus-1.6.0.tar.gz
- Upload date:
- Size: 370.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0c60725631b9a0db0a75d5d382d78125290d524fc4b7f92c0a7beb51c829fde |
|
MD5 | cf608b12323450927f213dd090ee86ff |
|
BLAKE2b-256 | 13f647a887d272716db3c54f5e193e7f207938355f774a1fb1f655a0fea5fc8d |
File details
Details for the file gamepadla_plus-1.6.0-py3-none-any.whl
.
File metadata
- Download URL: gamepadla_plus-1.6.0-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9512a91650a91333b0defdd9c0cbda6afca646b7ded151b2430dd838649bfd25 |
|
MD5 | a019be3fbf0a11b73265b040e8b0b1c1 |
|
BLAKE2b-256 | f3068ac16e0fd97f570c54b41acf725cecf4071bad208c0079234bc57e20c053 |