Skip to main content

Gamepad Polling Rate and Latency Testing Tool (CLI & GUI)

Project description

Gamepadla+ Icon

Gamepadla+

Gamepad Polling Rate and Latency Testing Tool (CLI & GUI)

PyPI - Version GitHub License

Gamepadla+ is a tool designed to help you measure the polling rate and synthetic latency of your gamepad. It provides accurate data on your controller’s performance, which can be valuable for gamers, developers, and anyone interested in input accuracy.

  • Supports DInput and XInput protocols
  • Available as both CLI and GUI for flexibility
  • Offers detailed metrics, including polling rate and latency values

Gamepadla+ is a simple, versatile solution for testing and understanding gamepad response times.

asciicast

Installation

uv

uv tool install gamepadla-plus

pipx

pipx install gamepadla-plus

pip

pip install gamepadla-plus

Prebuild (Windows)

An installer and a portable release for Windows can be found on the Release Page.

Usage (GUI)

  1. Execute the program gamepadla without any arguments.
  2. If you haven't connected any controller do it now and click Refresh.
  3. Click Test and rotate the stick you chose slowly at the edge.
  4. 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

  1. List all controllers connected with:
gamepadla list
# gamepadla list
Found 1 controllers
0. Xbox 360 Controller
  1. 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

Gamepadla+ or gamepadla-plus is a hard fork of Gamepadla.

The testing is based on the method of Christian P.: https://github.com/chrizonix/XInputTest.

License

Licensed under MIT.

Contributing

Please have a look at CONTRIBUTING.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gamepadla_plus-1.7.1.tar.gz (430.0 kB view details)

Uploaded Source

Built Distribution

gamepadla_plus-1.7.1-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file gamepadla_plus-1.7.1.tar.gz.

File metadata

  • Download URL: gamepadla_plus-1.7.1.tar.gz
  • Upload date:
  • Size: 430.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for gamepadla_plus-1.7.1.tar.gz
Algorithm Hash digest
SHA256 53a5b5edec06636f02b118be9fe0c1091262695f43abbf3abb67d62006a091b8
MD5 e8ffc565f2a851ba0fe1a9c3c9efb952
BLAKE2b-256 2445b4325e1b2fa21c157d4200d65bae9d395d76e544d9408cb29533e586dcd7

See more details on using hashes here.

File details

Details for the file gamepadla_plus-1.7.1-py3-none-any.whl.

File metadata

File hashes

Hashes for gamepadla_plus-1.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c55c67f8faebdda852be423ad10ccb7610f4ca7d719f768ddbc1921d6e184a0b
MD5 6487bec5526d5f2a70af706b1968833b
BLAKE2b-256 d652a83063c202ad2ae4273f92b6bef0e0f5cd42e2d90460c5c099d74309916b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page