Windows HID-konformes Gamepad-Durcheinander

3

Ich habe ein Problem damit, dass ein Gamepad richtig funktioniert. Das Windows-Eingabegerätsystem hat mich immer verwirrt, aber nach einigen Recherchen habe ich Folgendes zusammengetragen:

  • XInput ist die neueste / am häufigsten verwendete API in DirectX für Gamepad-Eingaben
  • DirectInput ist eine ältere API, die nicht so beliebt / verwendet wird (da XInput einfacher und schneller einzurichten ist).
  • XInput unterstützt NUR die Xbox-Controller (Xbox 360 und wahrscheinlich auch Xbox One)
  • DirectInput unterstützt alle Arten von Eingabegeräten, einschließlich allgemeiner HID-kompatibler Gamepads und Xbox-Controller (allerdings mit weniger Funktionen als über XInput, wie z. B. Headset-Unterstützung).

Mein Problem besteht darin, ein Bluetooth-Gamepad ( Amazon Fire TV Game Controller ) für Spiele unter Windows zu installieren. Da es sich nicht um einen Xbox 360-Controller handelt, ist ein Workaround erforderlich, damit er in einem Spiel funktioniert, das nur für XInput gedacht ist. Dieses Projekt scheint den Trick fast perfekt zu machen, da es allen Eingabegeräten ermöglicht, die Xbox360-Eingabe zu emulieren und sie daher mit XInput kompatibel zu machen.

Ich bin jedoch auf ein paar Haken gestoßen und kann nicht wirklich sagen, wessen Fehler sie sind oder wie man sie behebt. Ein Problem ist, dass die L / R-Trigger überhaupt nicht erkannt werden. Wenn ich in das Menü "Geräte und Drucker" gehe und auf "Gamecontroller-Einstellungen" für meinen Controller klicke, kann ich die Eingaben über diesen vertrauten Bildschirm testen:

Bildbeschreibung hier eingeben

Durch Drücken der Auslöser wird überhaupt nichts ausgeführt. Außerdem gibt es 15 Eingabetasten. Dies ist richtig, da der zu testende Controller 15 Tasten hat. 4 dieser Tasten sind jedoch Medientasten, die das Betriebssystem selbst steuern. Wenn Sie zum Beispiel die Home-Taste auf dem Controller drücken, wird mein Internetbrowser geöffnet und ich werde zu meiner Homepage weitergeleitet. Das Drücken der anderen Medientasten bewirkt scheinbar nichts.

Meine Fragen sind:

  1. Wie bringe ich die Trigger zum Laufen? Ist das ein Treiberproblem? Ich dachte, HID-kompatible Geräte sollten einfach funktionieren. Wenn Windows alle 15 Tasten, zwei Analogsticks und ein D-Pad erkannt hat, warum konnte es dann die beiden Auslöser nicht erkennen? Unterstützen HID-kompatible Gamepads keine analogen Trigger oder liegt dies entweder am Controller selbst oder am Gamepad-Treiber von Windows?

  2. Wie kann ich die 4 Medientasten am Gerät steuern? Eine Taste auf einem Gamepad zu haben, die mich zu meinem Internetbrowser bringt, ist ziemlich nutzlos und nervig.

  3. Wäre es möglich, einen benutzerdefinierten Treiber zu schreiben, der keine Verbindung zum Hersteller hat oder ihm hilft, wenn dies unbedingt erforderlich ist?

Vielen Dank!

AlexRamallo
quelle

Antworten:

2

Sie haben Recht, was DirectInput und Xinput betrifft. Man könnte jedoch argumentieren, dass die DirectInput-API vielfältigere Steuerelemente zulässt. Wenn Sie einen Controller haben, der sich als DirectInput-Gerät registriert, und Sie ein Spiel haben, das nur Xinput akzeptiert, empfehle ich x360ce (@ http://www.x360ce.com/ ). Dadurch wird directInput für das Spiel in Xinput konvertiert, während die tatsächlichen Eingaben des Controllers maskiert werden. Führen Sie einfach x360ce.exe im Spieleverzeichnis aus und folgen Sie den Anweisungen der x360ce-Website. Leider ist es nicht mit allen Spielen kompatibel und möglicherweise auch nicht mit Ihrem Controller. Es ist jedoch einen Versuch wert, hinterlassen Sie den Entwicklern von x360ce unbedingt ein Feedback. Ich hoffe das hilft!

Manwithgun
quelle