Gamepad & Joystick Drift Tester Reference

Every technical term covered by the Gamepad & Joystick Drift Tester, collected on one page. Pick a term from the list to see what it means and how it affects your controller readings.

ZERO UPLOAD · ALL LOCAL

What Is XInput?

When you connect an Xbox-compatible controller, XInput is the input protocol that defines how it communicates with Windows and modern applications.1 It is what makes the browser's Standard Gamepad mapping look like an Xbox controller.2 For browser testing, that matters because the tester's labels, button grid, and trigger axes assume the common Xbox layout rather than a legacy joystick map.

What is XInput?

XInput is a Microsoft API for Xbox-compatible controllers that standardizes how gamepad hardware communicates its button, axis, and trigger state to software on Windows. It defines a fixed controller model with two analog sticks, two analog triggers, and eight digital buttons. The browser Web Gamepad API's standard mapping exposes a 17-button Xbox-style layout, which is why XInput-compatible controllers line up with the tester's grid.

XInput vs DirectInput

DirectInput was Microsoft's older and more flexible DirectX joystick and game-controller API family that supported a wide variety of legacy input devices with customizable axis and button mappings, while XInput was introduced later as a simpler fixed-layout model specifically designed for Xbox-style controllers on Windows.1 The two APIs coexisted for years as developers chose between flexibility and simplicity when building game input support into their applications.

Why the browser shows an Xbox layout for XInput controllers

DirectInput could expose legacy joystick and game-controller devices with arbitrary axis counts, customizable button arrangements, and vendor-specific feature sets, but Microsoft notes that using XUSB controllers through DirectInput loses separate left and right trigger handling as well as force feedback vibration support. XInput avoids that ambiguity entirely by defining one consistent physical layout that every compatible controller must follow: two analog sticks, two analog triggers, a four-direction D-pad, and eight digital buttons that always appear at the same indices regardless of which manufacturer built the hardware.3 In the browser Standard Gamepad mapping, buttons 0 through 16 are assigned to these exact same fixed physical control positions, so any third-party or first-party controller that identifies itself as XInput-compatible produces predictable and consistent button indices regardless of brand or price point.

After the controller registers in the tester, press each face button in turn and confirm the button grid lights up at the expected index before you run any game. A control that lights up in the wrong slot usually means the controller is in DirectInput mode rather than XInput, so switch the mode first, because the standard mapping only produces correct indices for XInput-compatible devices.

How browsers use XInput

The Web Gamepad API uses what it calls the Standard Gamepad Mapping, which corresponds to the common Xbox-style layout.2 When you connect an Xbox controller or any controller that identifies itself as XInput-compatible, the browser maps its buttons and axes to the standard gamepad indices automatically. MDN describes the Gamepad API as using a mapping property set to standard when controls are remapped to the known layout, with buttons and axes arrays exposing the current controller state.4

Standard Gamepad mapping in the browser

This is why the button grid in this tester works correctly with Xbox controllers without any configuration: the browser knows which physical button corresponds to which array index because the standard mapping defines it. Controllers that present as DirectInput devices may not receive this automatic mapping and can show unexpected button assignments, with indices that do not correspond to the physical controls labeled on the device.

Switching to XInput mode on third-party controllers

Many third-party controllers support both XInput and DirectInput modes through a physical switch or a startup button combination. The Logitech F310 has a D/X switch on the back: D is DirectInput and X is XInput, and Logitech recommends XInput for modern Windows games whenever possible.5 The 8BitDo Pro 2 enters XInput mode by turning the mode switch to X and pressing Start to power on the controller.6 Official Xbox wired controllers are designed for Xbox systems and Windows compatibility, so they usually arrive ready to use as Xbox-compatible controllers without a separate mode switch.7

When the mode switch changes the browser view

If a controller is detected by the OS but shows an unusual button layout in the browser or in games, checking whether it is in XInput mode is the first troubleshooting step. In XInput mode the standard button indices will match the controller labels and game prompts will show the correct button icons. Switching from DirectInput to XInput often resolves mismatched button assignments immediately, because the standard mapping defines a fixed index for every face button, trigger, and shoulder input that games and browsers both recognize.

XInput on macOS and Linux

XInput originated as Microsoft's Xbox and Windows controller API, but its button layout has become the de facto standard for platform implementations of the Web Gamepad API.3 On macOS and Linux, browser mappings are applied after the OS exposes controller data through platform drivers rather than through the Windows XInput API.8 The Linux kernel xpad driver exposes Xbox-compatible controllers and notes that Windows' XInput library made PC games focus on Xbox controller compatibility.8 Chromium also maintains platform-specific standard mapping tables: the macOS source maps Xbox 360, Xbox One S, Xbox Bluetooth, and Xbox Series X Bluetooth controllers,9 while the Linux source includes MapperXboxOneS and MapperXInputStyleGamepad. That browser-layer mapping is why Xbox-style controllers can receive consistent standard button indices in Chromium-based browsers without an extra configuration step.10

Try in the tool

What to look for

  • 17 button indices

Open the Gamepad & Joystick Drift Tester tool to try this yourself.

Open the tool →
Sources
  1. 1.

    Microsoft Learn, "Comparison of XInput and DirectInput features," learn.microsoft.com, accessed June 2026. https://learn.microsoft.com/en-us/windows/win32/xinput/xinput-and-directinput

  2. 2.

    World Wide Web Consortium, "Gamepad," w3.org, July 2025. https://www.w3.org/TR/gamepad/

  3. 3.

    Microsoft Learn, "Getting Started With XInput in Windows applications," learn.microsoft.com, accessed June 2026. https://learn.microsoft.com/en-us/windows/win32/xinput/getting-started-with-xinput

  4. 4.

    Mozilla Developer Network, "Using the Gamepad API," developer.mozilla.org, April 2026. https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API

  5. 5.

    Logitech Support, "Using the input mode switch on the Gamepad F310 to select DirectInput or XInput," support.logi.com, accessed June 2026. https://support.logi.com/hc/en-us/articles/360023398693-Using-the-input-mode-switch-on-the-Gamepad-F310-to-select-DirectInput-or-XInput

  6. 6.

    8BitDo, "Pro 2 Bluetooth Windows Manual," manual.8bitdo.com, accessed June 2026. https://manual.8bitdo.com/pro2/pro2_bluetooth_windows.html

  7. 7.

    PowerA, "Enhanced Wired Controller for XBOX Series X|S," powera.com, accessed June 2026. https://www.powera.com/p/xbox/xbox-series-xs/controllers/wired/enhanced-wired-controller-for-xbox/

  8. 8.

    The Linux Kernel Documentation, "xpad - Linux USB driver for Xbox compatible controllers," docs.kernel.org, accessed June 2026. https://docs.kernel.org/input/devices/xpad.html

  9. 9.

    Chromium, "gamepad_standard_mappings_mac.mm," chromium.googlesource.com, accessed June 2026. https://chromium.googlesource.com/chromium/src/+/refs/tags/132.0.6782.0/device/gamepad/gamepad_standard_mappings_mac.mm

  10. 10.

    Chromium, "gamepad_standard_mappings_linux.cc," chromium.googlesource.com, accessed June 2026. https://chromium.googlesource.com/chromium/src/+/HEAD/device/gamepad/gamepad_standard_mappings_linux.cc

FAQ

What Is Stick Drift?

A drifting thumbstick sends a non-zero position signal to a device without being touched, causing unintended movement in games and applications.

What is Stick drift?

Stick drift is the condition in which an analog thumbstick on a gamepad or joystick reports a non-zero axis value while the user is not moving it. The Gamepad API expresses stick position as a normalized floating-point number from -1.0 to +1.0, with 0.0 representing center.1 Drift is any persistent non-zero reading at rest. In practical terms, the stick is telling software that it has moved even though your hand is away from it. That false signal may be small enough for a game deadzone to hide at first, but it is still the hardware reporting an off-center resting position. Measuring the raw value gives you a baseline before you change game settings, replace the stick module, or decide whether the controller is still under warranty.

How potentiometers cause drift

Most thumbsticks in modern game controllers use two small rotary potentiometers mounted at right angles to each other: one measures the left-right position along the X-axis while the other independently measures the up-down position along the Y-axis.2 Each potentiometer operates independently so that the controller can track two-dimensional stick movement as a pair of separate analog signals.

From mechanical wear to an off-center reading

A potentiometer is a variable resistor where a small metal wiper arm travels across a resistive carbon contact track as the stick moves. The controller built-in analog-to-digital converter reads the resulting resistance value and translates it into a normalized position value between -1.0 and 1.0. Over thousands of repeated stick movements, the carbon contact track gradually wears down unevenly as the wiper repeatedly passes over the exact same physical path millions of times. As the track surface degrades from this friction, the electrical resistance at the center resting position no longer corresponds to the same value it produced when the controller was brand new. The controller interprets this shifted resistance as an off-center stick position, which produces a persistent non-zero axis reading even when the stick is completely untouched. This wear process is irreversible for a given potentiometer because the damaged carbon track material cannot self-repair or regenerate.

Because each analog stick has entirely separate X-axis and Y-axis potentiometers inside the module, one direction can develop significant drift while the other axis remains perfectly stable and centered. That is why the tester displays both axis values independently instead of reducing the result to a single pass or fail verdict.

What axis values indicate drift

The Gamepad API reports axis values with floating-point precision. The W3C Gamepad specification defines axes as analog values in the range -1 to 1, with paired X and Y axes for each stick.1 That means drift is not a special status flag in the browser; it is a persistent axis offset that remains after you let go. A reading that stays away from 0.0 at rest is what the tester is trying to surface.

Comparing drift against game deadzones

The exact number matters less than the pattern. A tiny one-frame spike can come from touching the controller, but a stable offset that repeats after the stick has rested is the value you should document. Compare the raw axis value against the deadzone setting in the game where you notice movement, because a reading of 0.04 may be invisible in a game with a 0.10 deadzone but will cause visible creep in a game with a 0.03 deadzone.

Deadzone masking vs hardware drift

A game configurable deadzone setting defines a circular region around the stick center position where all small input values are ignored and treated as zero by the game engine.3 Any stick movement that falls inside that radius is discarded before it reaches the game logic, which is why a small amount of hardware drift can go unnoticed during normal play.

Why masking drift is not the same as repairing it

A larger deadzone setting effectively masks low-level hardware drift by expanding the ignored region, but this comes at the direct cost of reduced stick responsiveness because the physical stick must move noticeably further from center before any intentional movement registers in the game. Increasing the deadzone can hide drift symptoms temporarily while the underlying hardware continues to degrade, and the drift magnitude will eventually grow large enough to exceed even a generous deadzone setting. Testing raw axis values in the browser Gamepad API reveals the actual hardware reading before any game-level deadzone is applied, which is the only reliable way to measure how much true drift is physically present in the potentiometer.

This raw baseline measurement also helps you objectively compare stick behavior before and after cleaning, recalibration, or full stick module replacement. If the same axis still reads significantly away from 0.0 after you change the in-game deadzone setting, the issue is definitively in the hardware rather than in any software configuration.

Hall effect sticks and drift resistance

Hall effect thumbsticks replace the potentiometer with a magnetic sensor.3 A magnet mounted on the stick shaft passes through a sensor array as the stick moves, and the sensor reads the magnetic field direction and strength as a position value. Because there is no physical contact between a wiper and a carbon track, iFixit describes Hall effect replacements as frictionless and longer-lasting than stock sticks. 8BitDo also markets Hall Effect joysticks on higher-end controllers such as the Ultimate Wired Controller for Xbox as robust, long-lasting, and more precise than conventional sticks.4 A hall effect stick tested on this page should show more stable 0.0 readings at rest than a worn carbon-contact module, especially after extended heavy use.

Try in the tool

What to look for

  • -1.0 to +1.0, with 0.0 as centered
  • any persistent non-zero reading at rest
  • a 0.04 reading is invisible under a 0.10 deadzone, but visible under a 0.03 deadzone

Hall effect sticks use a contactless magnetic sensor instead of a worn potentiometer track, so they should read closer to 0.0 at rest even after heavy use.

Open the Gamepad & Joystick Drift Tester tool to try this yourself.

Open the tool →
Sources
  1. 1.

    World Wide Web Consortium, "Gamepad," w3.org, July 2025. https://www.w3.org/TR/gamepad/

  2. 2.

    iFixit, "Here’s Why PS5 Joysticks Drift (and Why They’ll Only Get Worse)," ifixit.com, accessed June 2026. https://www.ifixit.com/News/48944/heres-why-ps5-joysticks-drift-and-why-theyll-only-get-worse

  3. 3.

    iFixit Troubleshooting, "DualSense Controller Stick Drift," ifixit.com, accessed June 2026. https://www.ifixit.com/Troubleshooting/DualSense/Controller+Stick+Drift/538813

  4. 4.

    8BitDo, "Ultimate Wired Controller for Xbox," 8bitdo.com, accessed June 2026. https://www.8bitdo.com/ultimate-wired-controller-for-xbox/

FAQ