Ich versuche momentan meinen Gamecube-Controller mit dem PC zu verbinden. Das ganze funktioniert auch recht gut; jedoch bereitet mir der Rumbleeffekt noch sorgen. Ich kann im HID-Report einen Output einstellen und diesen Report auch manuell per Tools wie HID-Test senden und es funktioniert alles; jedoch kann ich dem Output sozusagen irgendwie keinen "Namen" geben. Egal welche Usage-Pages und Usages ich verwende - die Outputs werden nirgendswo im Windows-Joystick Dialog angezeigt (ok, verständlich); aber auch nicht von dem Dolphin-Emulator erkannt. Nach welchem Schema werden diese Outputs entsprechend von der Software erkannt? Was genau muss sie ausmachen? Ausschnitt für den Output @ HID Report:
1 | 0xa1, 0x00, // COLLECTION (Physical) |
2 | 0x05, 0x09, // USAGE_PAGE (LEDs) |
3 | 0x09, 0x0F, // USAGE (Generic Indicator) |
4 | 0x75, 0x08, // REPORT_SIZE (8) |
5 | 0x95, 0x01, // REPORT_COUNT (1) |
6 | 0x15, 0x00, // LOGICAL_MINIMUM (0) |
7 | 0x25, 0x01, // LOGICAL_MAXIMUM (1) |
8 | 0x92, 0x02, 0x01, // OUTPUT (Data,Var,Abs,Buf) |
9 | 0xc0, // END_COLLECTION |
Alternativ würde sich auch eine Implementierung via Forcefeedback anbieten - doch ist der Report dazu sehr unübersichtlich. Welche der 200 verschiedenen Collections braucht man minimal für einen einfachen bool'schen Steurungswert @ Vibrationen? Kann doch nicht sein, dass man dafür einen 1200-Byte-Descriptor braucht? Generell also die Frage: Wie bring ich Windows, Dolphin, o. Ä. dazu einen Output-Report entsprechend der Usages zu erkennen? Bin hier echt am verzweifeln bei den ganzen Dokumentationen.. - Jede Hilfe wäre nett :)