Skip to Content
This documentation is provided with the HEAT environment and describes this HEAT instance.
AdministratorsHEAT CaptureCapture modulesGame controller input moduleTroubleshooting the game controller input module

Troubleshooting the game controller input module

An Xbox-class pad polls without error but never reports a real value

Cause. DirectInput only delivers changing data for an XInput-class pad while the acquiring process owns the Windows foreground window. A background capture host like HEAT Capture never does. Measured directly against this module: an Xbox One pad polled at 4ms over 5-second phases returned 322 samples with exactly 1 distinct value while hidden or unfocused, and 322 samples with 322 distinct values only while its window was foreground. Ordinary HID controllers (tested with a T.Flight Hotas X) are not gated this way and report normally in the background throughout.

After 500 samples with a single unchanging value, this module logs the diagnosis itself:

DirectInput has returned {N} samples with a single unchanging value for {Device}. XInput-class pads only deliver DirectInput data to the foreground application, which a background capture host never is. Select the XInput entry for this device instead.

Fix. Select the XInput entry for that controller in DeviceId (or leave UseXInput enabled and DeviceId empty to capture every device). This does not affect genuine joysticks, wheels or flight sticks, which work correctly over DirectInput in the background.

No controllers are found at all

Cause. Either nothing was connected before the capture session started, or DeviceTypes does not include the category the connected controller enumerates as (a wheel enumerating as Driving when only Gamepad is selected, for example).

Fix. Confirm the controller is connected and Windows recognises it before starting the session; broaden DeviceTypes if unsure which category it falls under.

The wrong entry was picked from the device dropdown

Cause. A controller that is both a DirectInput device and an XInput slot appears twice in the DeviceId dropdown. Picking the DirectInput entry for an Xbox-class pad reproduces the foreground-only symptom above; there is no automatic fallback between the two.

Fix. Pick the XInput entry for any Xbox-class controller. Reserve the DirectInput entry for controllers that are not also XInput devices.

A quick button tap never shows up

Cause. Button edges are only computed when this module’s own capture call runs, at the Interval setting’s cadence - not at the faster PollIntervalMs the background thread samples at. A press and release that both complete inside one Interval window leaves no trace: the state read at the next call is already back to released, identical to a button that was never touched.

Fix. Lower Interval closer to PollIntervalMs if catching brief taps matters - see Configure.

Opens your browser's print dialog. Choose "Save as PDF" as the destination.