Как пользоваться
- Подключите геймпад по проводу или спарьте по Bluetooth, затем нажмите любую кнопку — браузеры показывают геймпад только после первого нажатия, до этого ничего не появится.
- Нажмите каждую кнопку и выжмите оба триггера. Каждый элемент загорается и показывает значение (триггеры отдают от 0 до 1, полунажатие — около 0,5).
- Уберите руки со стиков и посмотрите Дрифт стика (в покое) — наибольшее отклонение от центра без касания. Затем прокрутите каждый стик полными кругами, чтобы проверить диапазон и углы.
- Нажмите Проверить вибрацию, чтобы запустить моторы; блок Вибрация скажет, смог ли браузер их включить.
- Проверьте Hz (как часто обновляется геймпад) и Задержку ввода. Если цифры странные, попробуйте другой кабель, порт или переспарьте.
Что проверяет тест и как
Страница использует Gamepad API браузера. По спецификации W3C, значения стиков и триггеров нормализованы в диапазон от −1 до 1 (от 0 до 1 для триггеров), а «стандартная» раскладка контроллера закрепляет 17 кнопок и 4 оси за фиксированными индексами: оси 0–1 — левый стик, 2–3 — правый, кнопка 0 — нижняя лицевая (A на Xbox, «крест» на PlayStation), кнопки 6–7 — триггеры и так далее. Метка рядом с именем контроллера показывает, распознал ли браузер его как стандартный; если нет, кнопки всё равно работают, но нумерация может отличаться.
Состояние опрашивается каждый кадр анимации с метками performance.now(), откуда берутся три производные цифры. Дрифт стика (в покое) — наибольшее отклонение от центра по любой оси стика, пока значение достаточно мало, чтобы считаться «не тронутым», — та цифра, которая говорит, дрифтит ли контроллер. Hz — как часто меняются значения, оценка частоты отчётов геймпада. Задержка ввода — время между сменой состояния кнопки и моментом, когда страница это увидела, насколько браузер вообще способен это измерить; ожидайте, что интервал кадра самой страницы входит в эту цифру.
Дрифт стиков: что означает цифра
Внутри большинства стиков — два потенциометра, переменные резисторы, которые изнашиваются и собирают пыль. По мере износа положение покоя перестаёт читаться как ровный ноль, и игра видит крошечный постоянный наклон: камера ползёт, персонаж идёт сам. Это и есть дрифт стика — самая частая поломка контроллеров, что Xbox, что DualSense, что Joy-Con.
| Показание в покое | Вердикт | В играх |
|---|---|---|
| 0,00–0,05 | Норма | Незаметно; мёртвая зона любой игры это съедает |
| 0,05–0,10 | На грани | Прячется за мёртвыми зонами по умолчанию (обычно 0,1–0,2); проявится, если снизить зону ради точности |
| 0,10–0,20 | Дрифт | Камера ползёт в играх с малой мёртвой зоной; временно поднимите зону в игре |
| > 0,20 | Сильный дрифт | Заметно везде; чистить или менять модуль стика |
Эти полосы — наши рабочие пороги для нетронутого стика, а не стандарт производителя: опубликованного стандарта нет. Новый контроллер обычно показывает 0,00–0,03. Дрифт, который появляется только после прогрева или только в одну сторону, — всё равно дрифт; запомните значение и ось.
Мёртвые зоны, вибрация и особенности контроллеров
Мёртвая зона — радиус вокруг центра, который игра игнорирует. Большая зона прячет дрифт, но делает точное прицеливание вязким; соревновательные игроки её уменьшают — и именно тогда малый дрифт становится видимым. Многие игры (Fortnite, Apex, Call of Duty) дают эту настройку; Steam Input может добавить её любому контроллеру.
Вибрация использует vibrationActuator из API с эффектом «dual-rumble» — сильный и слабый моторы — и, на поддерживающих контроллерах, «trigger-rumble». Сработает ли кнопка, зависит от браузера и подключения: Chromium поддерживает вибрацию для большинства контроллеров по USB и многих по Bluetooth; в Firefox и Safari поддержка частичная, поэтому молчащий здесь контроллер не обязательно сломан. Проверьте в игре, прежде чем считать поломкой.
Заметки по контроллерам: геймпады Xbox почти везде отдают стандартную раскладку. DualSense и DualShock 4 работают по USB и Bluetooth; нажатие тачпада — кнопка, адаптивные триггеры читаются как обычные. Switch Pro по Bluetooth может требовать нажатия для пробуждения и в некоторых браузерах отдаёт нестандартную раскладку. Сторонние геймпады, эмулирующие Xbox (XInput), выглядят для страницы как контроллер Xbox.
Как лечить дрифт и другие поломки
- Сначала калибровка. Приложение Xbox Accessories (Windows) или настройки контроллера на консоли; у DualSense пользовательской калибровки нет, но настройки контроллера в Steam могут заново отцентровать.
- Чистка. Выключить, покрутить стик кругами, продувая основание сжатым воздухом; капля очистителя электрических контактов на потенциометры во многих случаях помогает.
- Поднять мёртвую зону в игре или Steam Input как временную меру.
- Заменить модуль. Модули стиков — дешёвые стандартные детали; на эффекте Холла (магнитные) не изнашиваются так же. Для большинства контроллеров нужна пайка.
- Кнопки, которые не загораются, — обычно грязная мембрана; специальные кнопки (Share, Xbox/PS home) иногда резервирует система, и браузер их не видит — это не поломка.
Чем наш тест геймпада лучше
- Дрифт в покое как число, а не просто дрожащий прицел, с понятными порогами.
- Оценки частоты и задержки через
performance.now()— помогают поймать плохую Bluetooth-связь или USB-порт с энергосбережением. - Проверка вибрации для dual-rumble и trigger-rumble там, где браузер поддерживает.
- Без рекламы на поле, без загрузок и драйверов; работает с Xbox, PlayStation, Switch Pro и большинством USB/Bluetooth-контроллеров.
- Всё в браузере.
Конфиденциальность: показания контроллера обрабатываются на этой странице и больше нигде. Имя контроллера приходит из API и не передаётся; ничего не хранится дольше текущей вкладки.
Вопросы и ответы
Страница пишет, что контроллер не подключён, хотя он воткнут.
Нажмите любую кнопку. По спецификации Gamepad, браузер возвращает пустой список, пока не увидит «жест пользователя на геймпаде» — нажатие кнопки или движение стика, — чтобы ограничить фингерпринтинг. Если всё равно не появился, попробуйте другой USB-порт или переспарьте по Bluetooth.
Какой дрифт стика считается нормой?
Нетронутый стик исправного контроллера показывает здесь 0,00–0,03; до 0,05 — нормально, мёртвая зона любой игры это съест. Выше 0,10 — дрифт, который заметен в играх с малыми мёртвыми зонами. Это наши пороги, а не цифра производителя.
Вибрация в тесте не работает. Контроллер сломан?
Не обязательно. Поддержка вибрации в браузерах частичная: Chromium поддерживает большинство контроллеров по USB, по Bluetooth и в других браузерах — хуже. Проверьте в игре, прежде чем считать моторы мёртвыми.
Работает ли с PS5 DualSense или Switch Pro?
Да, по USB и Bluetooth. DualSense в большинстве браузеров отдаёт стандартную раскладку; Switch Pro может показывать нестандартную и требует нажатия для пробуждения.
Почему номера кнопок не совпадают с подписями на контроллере?
API нумерует кнопки по положению в стандартной раскладке: 0 — нижняя лицевая (A/крест), 1 — правая (B/круг), 2 — левая (X/квадрат), 3 — верхняя (Y/треугольник). Контроллеры, которые браузер не распознал как стандартные, могут использовать свой порядок.
Может ли тест исправить дрифт?
Нет — он его измеряет. Откалибруйте, почистите основание стика, поднимите мёртвую зону в игре или замените модуль стика (модули на эффекте Холла не изнашиваются, как потенциометры).