Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Driver untuk XUSB di Windows mengimplementasikan antarmuka mode kernel untuk DLL XINPUT. Untuk memberikan pengalaman yang baik untuk judul warisan yang menggunakan DirectInput API dengan perangkat pengontrol umum, driver juga mengekspor antarmuka kelas Human Interface Device (HID), yang diambil oleh DirectInput. Kami memilih pemetaan XUSB ke HID berdasarkan perilaku umum dalam serangkaian aplikasi game untuk versi XINPUT asli, dan kami memperbarui pemetaan untuk subjenis yang lebih baru. Topik ini menjelaskan pemetaan.
Perangkat Antarmuka Manusia (HID)
Standar HID adalah standar dari komite Universal Serial Bus (USB) yang awalnya diusulkan oleh Microsoft untuk menggeneralisasi protokol untuk perangkat input. Ini terdiri dari bahasa deskripsi byte-code dan dapat mengekspresikan gamepad, tikus, joystick, kontrol pembatasan dan kemudi, dan pengontrol multi-sumbu. Karena standar ini sangat umum, Anda mungkin mengalami kesulitan menulis perangkat lunak yang mengonsumsi input dari perangkat sewenang-wenang. Oleh karena itu, untuk API DirectInput yang berpusat pada game, kami mengembangkan sub-pemetaan jenis tertentu untuk mendorong manufaktur perangkat keras untuk mendukung melalui driver mereka.
Penting
Anda juga dapat mengakses perangkat input HID melalui API RawInput dan memproses laporan input melalui HID API tingkat rendah tetapi umpan balik getaran tidak akan berfungsi seperti DirectInput.
Pemetaan
Driver XUSB mengimplementasikan antarmuka kelas XUSB dan antarmuka kelas HID untuk perangkat untuk mendukung penggunaan XINPUT dan DirectInput. Pemetaan ini didasarkan pada informasi subjenis XUSB. Driver mengimplementasikan empat grup pemetaan yang berbeda.
Subjenis XUSB | Pemetaan |
---|---|
XINPUT_DEVSUBTYPE_GAMEPAD (Subjenis 1) | Gamepad |
XINPUT_DEVSUBTYPE_WHEEL (Subjenis 2) | Roda |
XINPUT_DEVSUBTYPE_ARCADE_STICK (Subjenis 3) | Arcade Stick/Arcade Pad |
XINPUT_DEVSUBTYPE_FLIGHT_STICK (Subjenis 4) | Tongkat Penerbangan |
XINPUT_DEVSUBTYPE_DANCE_PAD (Subjenis 5) | Default untuk subjenis baru |
XINPUT_DEVSUBTYPE_GUITAR (Subjenis 6) | Gitar |
XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE (Subjenis 7) | |
XINPUT_DEVSUBTYPE_DRUM_KIT (Subjenis 8) | |
XINPUT_DEVSUBTYPE_GUITAR_BASS (Subjenis 11) | |
XINPUT_DEVSUBTYPE_ARCADE_PAD (Subjenis 19) |
Nota
Pemetaan HID berikut bersifat statis. Ini berarti bahwa bahkan jika laporan kemampuan perangkat menunjukkan bahwa tombol atau sumbu tertentu tidak didukung, pemetaan akan tetap menyertakannya tetapi akan selalu melaporkan nilai status atau pusat.
Gamepad
Ini adalah pemetaan default dan dirancang di sekitar gamepad standar, dan diekspos sebagai Gamepad jenis penggunaan HID.
Menguasai | Nama Penggunaan HID | Halaman Penggunaan | ID Penggunaan |
---|---|---|---|
Tongkat Kiri | X, Y | 0x01 | 0x30, 0x31 |
Tongkat Kanan | Rx, Ry | 0x01 | 0x33, 0x34 |
Pemicu Kiri + Pemicu Kanan | Z* | 0x01 | 0x32 |
D-Pad Atas, Bawah, Kiri, Kanan | Sakelar Topi | 0x01 | 0x39 |
Sebuah | Tombol 1 | 0x09 | 0x01 |
B | Tombol 2 | 0x09 | 0x02 |
X | Tombol 3 | 0x09 | 0x03 |
Y | Tombol 4 | 0x09 | 0x04 |
LB (bumper kiri) | Tombol 5 | 0x09 | 0x05 |
RB (bumper kanan) | Tombol 6 | 0x09 | 0x06 |
BELAKANG | Tombol 7 | 0x09 | 0x07 |
MULAI | Tombol 8 | 0x09 | 0x08 |
LSB (tombol tongkat kiri) | Tombol 9 | 0x09 | 0x09 |
RSB (tombol tongkat kanan) | Tombol 10 | 0x09 | 0x0A |
Nota
(*): Ini digabungkan sehingga Z menunjukkan perilaku pusat yang diharapkan oleh sebagian besar judul untuk rotasi; ini berarti tidak mungkin untuk melihat semua kemungkinan nilai kombinasi pemicu melalui DirectInput dan HID.
Arcade Stick/Arcade Pad
Ini adalah pemetaan yang dirancang di sekitar pengontrol Arcade Stick, dan diekspos sebagai Gamepad jenis penggunaan HID. Arcade Pad sangat mirip Arcade Stick, tetapi dalam bentuk yang lebih kecil. Desain ini menggantikan Pemicu Kiri analog dan Pemicu Kanan dengan tombol digital yang melaporkan nilai sumbu minimum dan maksimum.
Menguasai | Nama Penggunaan HID | Halaman Penggunaan | ID Penggunaan |
---|---|---|---|
D-Pad Atas, Bawah, Kiri, Kanan | Sakelar Topi | 0x01 | 0x39 |
Sebuah | Tombol 1 | 0x09 | 0x01 |
B | Tombol 2 | 0x09 | 0x02 |
X | Tombol 3 | 0x09 | 0x03 |
Y | Tombol 4 | 0x09 | 0x04 |
LB (bumper kiri) | Tombol 5 | 0x09 | 0x05 |
RB (bumper kanan) | Tombol 6 | 0x09 | 0x06 |
BELAKANG | Tombol 7 | 0x09 | 0x07 |
MULAI | Tombol 8 | 0x09 | 0x08 |
Pemicu Kiri | Tombol 9 | 0x09 | 0x09 |
Pemicu Kanan | Tombol 10 | 0x09 | 0x0A |
Perangkat ini mungkin atau mungkin tidak mendukung kontrol tambahan, tetapi ini tidak diekspos oleh pemetaan HID: Tongkat Kiri, Tongkat Kanan, LSB (tombol tongkat kiri), dan RSB (tombol tongkat kanan).
Roda
Pemetaan ini dirancang di sekitar roda balap, dan diekspos sebagai Gamepad jenis penggunaan HID.
Menguasai | Nama Penggunaan HID | Halaman Penggunaan | ID Penggunaan |
---|---|---|---|
Roda (Tongkat Kiri X) | X | 0x01 | 0x30 |
Pedal Akselerator (Pemicu Kanan) + Pedal Rem (Pemicu Kiri) | Z* | 0x01 | 0x32 |
D-Pad Atas, Bawah, Kiri, Kanan | Sakelar Topi | 0x01 | 0x39 |
Sebuah | Tombol 1 | 0x09 | 0x01 |
B | Tombol 2 | 0x09 | 0x02 |
X | Tombol 3 | 0x09 | 0x03 |
Y | Tombol 4 | 0x09 | 0x04 |
LB (bumper kiri) | Tombol 5 | 0x09 | 0x05 |
RB (bumper kanan) | Tombol 6 | 0x09 | 0x06 |
LSB (tombol tongkat kiri) | Tombol 7 | 0x09 | 0x07 |
RSB (tombol tongkat kanan) | Tombol 8 | 0x09 | 0x08 |
BELAKANG | Tombol 9 | 0x09 | 0x09 |
MULAI | Tombol 10 | 0x09 | 0x0A |
Nota
(*): Ini digabungkan sehingga Z menunjukkan perilaku pusat yang diharapkan oleh sebagian besar judul untuk kontrol rem dan akselerator; ini berarti tidak mungkin untuk melihat semua kemungkinan nilai kombinasi pedal melalui DirectInput.
Tongkat Penerbangan
Pemetaan ini dirancang di sekitar tongkat penerbangan, dan diekspos sebagai Joystick jenis penggunaan HID.
Menguasai | Nama Penggunaan | Halaman Penggunaan | ID Penggunaan |
---|---|---|---|
Tongkat Penerbangan (Tongkat Kiri) | X, Y | 0x01 | 0x30, 0x31 |
Topi POV (Tongkat Kanan) | Rx, Ry | 0x01 | 0x33, 0x34 |
Pembatasan (Pemicu Kanan) | Z | 0x01 | 0x32 |
Kemudi (Pemicu Kiri) | Rz | 0x01 | 0x35 |
D-Pad Atas, Bawah, Kiri, Kanan | Sakelar Topi | 0x01 | 0x39 |
Senjata Utama (A) | Tombol 1 | 0x09 | 0x01 |
Senjata Sekunder (B) | Tombol 2 | 0x09 | 0x02 |
X | Tombol 3 | 0x09 | 0x03 |
Y | Tombol 4 | 0x09 | 0x04 |
LB (bumper kiri) | Tombol 5 | 0x09 | 0x05 |
RB (bumper kanan) | Tombol 6 | 0x09 | 0x06 |
BELAKANG | Tombol 7 | 0x09 | 0x07 |
MULAI | Tombol 8 | 0x09 | 0x08 |
LSB (tombol tongkat kiri) | Tombol 9 | 0x09 | 0x09 |
RSB (tombol tongkat kanan) | Tombol 10 | 0x09 | 0x0A |
Nota
Ini didasarkan pada desain Flight Stick akhir. Karena ini berbeda dari definisi Flight Stick awal, banyak perangkat memiliki sakelar mode yang mendukung model lama versus baru. Pemetaan ini mengasumsikan model baru.