Как это работает
Показывает в реальном времени всё, что геймпад сообщает браузеру: каждую кнопку с её аналоговым значением и счётчиком нажатий, триггеры в виде заполняющихся полос, оба стика с точным положением и след их перемещения. Подходит для геймпадов Xbox, PlayStation и Nintendo, а также для любого геймпада, руля или джойстика с подключением по USB или Bluetooth, который распознаёт система.
Две самые частые неисправности б/у геймпада — дрифт (отпущенный стик не возвращается в центр) и кнопки, которые перестают срабатывать или дребезжат. У неподвижного стика расстояние до центра должно быть близко к нулю; тест круговости, который выполняется вращением стика по краю, дополнительно показывает, равномерно ли стик достигает края во всех направлениях.
Примеры
axes[0] = 0.0784 · axes[1] = -0.1137r = 0.138Стик, который без прикосновения остаётся на таком расстоянии от центра, имеет дрифт: в игре с маленькой мёртвой зоной камера или персонаж двигаются сами.XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE = 78497849 / 32767 ≈ 0.24Это мёртвая зона, которую Microsoft рекомендует для левого стика в XInput. Дрифт меньше этого значения незаметен в играх, которые её используют, но заметен в тех, где её уменьшают ради точности.buttons[7].value = 0.42RT · R2 · ZR → 42 %Триггеры Xbox и PlayStation аналоговые и сообщают, насколько сильно они нажаты. ZL и ZR на Pro Controller от Nintendo цифровые: они переключаются только между 0 и 1.Сценарии использования
- Проверить, есть ли у стика дрифт, прежде чем требовать гарантийный ремонт, менять модуль или покупать б/у геймпад.
- Поочерёдно проверить кнопки отремонтированного или только что почищенного геймпада; счётчик поможет выявить двойные срабатывания.
- Убедиться, что Bluetooth-геймпад правильно сопряжён и распознаётся системой, прежде чем запускать игру.
- Узнать номера кнопок и осей, которые сообщает руль, аркадный стик или джойстик, чтобы настроить их в эмуляторе.
- Проверить, что моторы вибрации работают.
Часто задаваемые вопросы
Почему мой геймпад не отображается?
Из соображений конфиденциальности браузер не показывает ни один геймпад, пока вы не нажмёте кнопку на открытой странице, находящейся на переднем плане. Если геймпад всё равно не появился, проверьте, видит ли его система: в Windows запустите joy.cpl, чтобы открыть игровые устройства. Такие программы, как Steam, DS4Windows или reWASD, могут скрывать исходный геймпад и вместо него предоставлять виртуальный.
Как понять, что у стика дрифт?
Отпустите стик и посмотрите на значение r — расстояние до центра. У исправного стика оно составляет несколько сотых; если оно превышает 0,1 без прикосновения или точка сама смещается, значит, есть дрифт. Несколько раз отведите стик к краю и отпустите: если он возвращается в разные положения, пружина или потенциометр изношены.
Что измеряет ошибка круговости?
При вращении стика по краю инструмент запоминает самую дальнюю точку, достигнутую в каждом из 36 направлений, и вычисляет, насколько в среднем она отклоняется от идеального круга. Высокое значение означает, что в некоторых направлениях стик не доходит до максимума или превышает его. Некоторые геймпады намеренно расширяют диагонали, поэтому перед выводами лучше сравнить два геймпада одной модели.
Что значит нестандартная раскладка?
Браузер знает расположение элементов самых распространённых геймпадов и показывает их с одинаковым порядком кнопок, благодаря чему их можно нарисовать. Если модель не распознана, кнопки и оси выдаются в том порядке, в котором их сообщает устройство; они продолжают работать, но без названий. В другом браузере или при другом подключении (USB вместо Bluetooth) тот же геймпад иногда распознаётся.
Почему не отображаются кнопки вибрации?
Они показываются только тогда, когда браузер предоставляет вибрацию для этого геймпада. Chrome и Edge поддерживают её для большинства геймпадов Xbox и PlayStation; другие браузеры, некоторые Bluetooth-подключения и многие универсальные геймпады не предоставляют её, даже если в них есть моторы.
Можно ли измерить задержку или частоту опроса геймпада?
Точно — нет. Браузер не уведомляет о каждом изменении состояния геймпада: страница опрашивает его один раз за кадр экрана, поэтому никогда не видит больше изменений в секунду, чем частота обновления монитора. Для измерения реальной частоты опроса нужны инструменты, считывающие устройство напрямую.