Gamepad-Test
Gamepad-Tasten, Sticks, Trigger, Steuerkreuz und Vibration im Browser testen
Linker Stick
Rechter Stick
Trigger
Vibrationstest
Ereignisverlauf
Was ist ein Gamepad-Test?
Ein Gamepad-Test liest die Signale, die dein Controller über die W3C Gamepad API an den Browser sendet, und zeigt sie in Echtzeit an: jeden Tastendruck, jede Analogstick-Position, jede Trigger-Tiefe, jede Steuerkreuz-Richtung und die Vibrationsmotoren. Er ist der schnellste Weg, um vor einer Partie zu prüfen, ob ein Controller funktioniert, eine klemmende Gesichtstaste zu diagnostizieren, Stick-Drift bei einem älteren Pad zu erkennen oder nachzuprüfen, ob beide Vibrationsmotoren auslösen. Die Seite hebt jeden Eingang in einem Xbox-artigen Layout hervor, zeigt die rohen Achs- und Trigger-Werte an und führt ein kurzes Ereignisprotokoll. Da die Gamepad API einen Controller erst freigibt, nachdem du eine Taste auf ihm gedrückt hast, bittet die Seite dich zuerst, eine beliebige Taste zu drücken – das ist eine Browsersicherheitsregel, kein Defekt deines Pads. Alles läuft lokal in deinem Browser; keine Eingabedaten verlassen dein Gerät.
Anleitung
Bedienung
- Gamepad per USB oder Bluetooth verbinden
- Eine beliebige Taste auf dem Gamepad drücken, um es zu aktivieren
- Beobachten, wie das Layout auf dem Bildschirm bei Tastendruck oder Stick-Bewegung aufleuchtet
- Mit den Vibrations-Tasten die Vibrationsmotoren testen
- Den Ereignisverlauf prüfen, um sicherzustellen, dass jeder Druck erkannt wurde
Tipps
- Eine grüne Hervorhebung bedeutet, dass der Eingang den Browser korrekt erreicht
- Ein Controller erscheint erst, nachdem du eine Taste auf ihm gedrückt hast – das ist eine Browsersicherheitsregel
- Vibrationsunterstützung hängt von Browser und Gamepad ab; Firefox hat die breiteste Unterstützung
- Wenn ein Stick im Ruhezustand einen Wert ungleich null anzeigt, warnt dich die Drift-Markierung vor Stick-Drift
- Bei mehreren verbundenen Gamepads kannst du über die Slot-Chips zwischen ihnen wechseln
Anwendungsfälle
Technisches Prinzip
Der Browser stellt Gamepads über die W3C Gamepad API bereit. Ein Controller wird durch ein Gamepad-Objekt repräsentiert, das von navigator.getGamepads() geliefert wird und bis zu vier Slots zurückgibt. Jedes Gamepad trägt eine id-Zeichenkette (Vendor und Product), ein mapping-Feld ('standard' für Geräte mit Xbox-Layout, sonst leer), ein buttons-Array und ein axes-Array. Unter dem Standard-Mapping hat buttons 17 Einträge: vier Gesichtstasten (A/B/X/Y), zwei Bumper (LB/RB), zwei analoge Trigger (LT/RT), Select/Start, zwei Stick-Klicks (L3/R3), vier Steuerkreuz-Richtungen und die Home/Guide-Taste. Jede Taste verfügt über .pressed (boolesch) und .value (0 bis 1 – Trigger sind analog, digitale Tasten 0 oder 1). Das axes-Array enthält vier Werte im Bereich -1 bis 1: linker Stick X/Y, dann rechter Stick X/Y. Die API ist poll-basiert, nicht ereignisbasiert, daher betreibt die Seite eine requestAnimationFrame-Schleife und liest jeden Frame einen frischen Snapshot. Um nutzlose Re-Renders im Leerlauf zu vermeiden, wird der Zustand nur aktualisiert, wenn sich gamepad.timestamp ändert – dieser Zeitstempel rückt mit jedem neuen Eingabe-Report vor. Verbinden und Trennen kommen als gamepadconnected- und gamepaddisconnected-Events am window an. Aus Sicherheitsgründen bleibt ein Gamepad-Objekt null, bis der Benutzer eine Taste darauf drückt, weshalb die Seite ein frisch eingestecktes Pad nicht lautlos auslesen kann. Vibration ist optional: Existiert gamepad.vibrationActuator, steuert ein Aufruf von playEffect('dual-rumble', { duration, weakMagnitude, strongMagnitude }) die beiden Motoren an; Safari und einige Chromium-Builds implementieren das nicht, weshalb die Seite ein Feature-Detection durchführt und die Schaltflächen andernfalls deaktiviert.
- navigator.getGamepads() liefert bis zu vier Slots; ein Pad ist erst nach einem Tastendruck auf ihm nicht null.
- Standard-Mapping: buttons[0-3] Gesichtstasten, [4-5] Bumper, [6-7] analoge Trigger, [8-9] Select/Start, [10-11] L3/R3, [12-15] Steuerkreuz, [16] Home.
- axes[0-1] ist der linke Stick (X, Y), axes[2-3] der rechte Stick, jeweils im Bereich -1 bis 1.
- Polling-Modell: Eine requestAnimationFrame-Schleife liest Snapshots; gamepad.timestamp steuert die Aktualisierung, sodass Leerlauf-Frames nichts tun.
- Vibration über gamepad.vibrationActuator.playEffect('dual-rumble', ...) – per Feature-Detection, nicht in jedem Browser unterstützt.
- gamepadconnected / gamepaddisconnected signalisieren Verbinden und Trennen; der .index des Pads identifiziert seinen Slot.
Beispiele
Gesichtstaste drücken
A drücken -> buttons[0].pressed = true, value = 1.0Linken Stick bewegen
Linken Stick nach oben-rechts schieben -> axes[0] = 0.71, axes[1] = -0.68Trigger durchziehen
RT halb durchziehen -> buttons[7].value = 0.50, pressed = false (unterhalb Schwelle)FAQ
Warum reagiert mein Gamepad nach dem Anschließen nicht?
Die Gamepad API hält einen Controller verborgen, bis du eine Taste darauf drückst, um zu verhindern, dass Seiten angeschlossene Geräte lautlos fingerprinten. Verbinde das Pad per USB oder Bluetooth, fokussiere diesen Tab und drücke dann eine beliebige Taste – das Statusfeld schaltet auf „Verbunden“. Dieser Aktivierungsschritt ist eine Browsersicherheitsregel, kein Defekt.
Welche Controller werden unterstützt?
Jeder Controller, den der Browser mit Standard-Mapping bereitstellt: Xbox One/Series-Controller, DualShock 4 und DualSense (die meisten Systeme bilden sie auf Standard ab) sowie die meisten generischen USB-Gamepads. Egal ob per Bluetooth oder USB – der Browser normalisiert sie alle auf dasselbe 17-Tasten- und 4-Achsen-Layout. Nicht-Standard-Pads funktionieren ebenfalls, aber ihre Tastenreihenfolge stimmt möglicherweise nicht mit den Bildschirm-Beschriftungen überein.
Warum funktioniert die Vibration nicht?
Die Vibrationsunterstützung variiert. Firefox bietet die breiteste Unterstützung; Chrome und Edge unterstützen sie in aktuellen Versionen; Safari implementiert sie nicht. Auch das Pad selbst muss gamepad.vibrationActuator bereitstellen. Die Seite prüft das und zeigt einen ausdrücklichen Hinweis „nicht unterstützt“ statt einfach nichts zu tun – fehlende Vibration ist also ein Browser- oder Hardware-Limit, kein Bug dieses Tools.
Mein Stick zeigt einen Wert an, ohne dass ich ihn berühre – ist er kaputt?
Ein kleiner Wert nahe 0 ist normales Dead-Zone-Rauschen. Liegt ein Stick im Ruhezustand auf einer Achse über etwa 0,12, wird die Drift-Markierung orange – das ist klassischer Stick-Drift, verursacht durch verschlissene Potentiometer-Module. Es ist ein Hardware-Problem, das mit der Zeit meist schlimmer wird; das Werkzeug erlaubt dir, es zu bestätigen, bevor du einem Spiel die Schuld gibst.
Wird etwas davon an einen Server gesendet?
Nein. Die Gamepad API wird vollständig in deinem Browser gelesen. Tastendrücke, Stick-Positionen und Vibrationsbefehle verlassen niemals dein Gerät. Nichts wird protokolliert oder übertragen.
Kann das Tool DualSense-adaptive Trigger, das Touchpad oder Gyroskop testen?
Nein. Die Standard-Gamepad API stellt nur Tasten, Achsen und einfache Vibration bereit. Die adaptiven Trigger des DualSense, das kapazitive Touchpad und die Bewegungssensoren gehören nicht zum Web-Standard (einige stecken hinter experimentellen Erweiterungen mit schlechter Browser-Unterstützung) und lassen sich daher nicht zuverlässig aus dem Browser testen.