Эта информация хранится в реестре, в таком разделе:
В этом разделе есть несколько параметров.
Параметр OEMCallout (строка) задаёт имя драйвера джойстика (по умолчанию msanalog.vxd).
Параметр OEMName (строка) – это не что иное, как имя джойстика.
В параметре OEMData (двоичный, 8 байт) хранится информация о джойстике. Байты с 4 по 7 – это просто количество кнопок. В байтах с 0 по 4 хранится такая информация:
| Байт 0 | |
| Бит 0 | Есть ось R (по умолчанию r) 1 |
| Бит 1 | Есть «хатка» (hat) |
| Бит 2 2 | Хатка основана на кнопках |
| Бит 3 2 | Хатка основана на оси (по умолчаниюю r) |
| Бит 4 3 | Авиационный штурвал |
| Бит 5 3 | Игровой пульт (наподобие Dendy) |
| Бит 6 3 | Автомобильный руль |
| Бит 7 | Переназначение X <- y |
| Байт 1 | |
| Бит 8 | Переназначение X <- z |
| Бит 9 | Переназначение X <- r |
| Бит 10 | Переназначение Y <- x |
| Бит 11 | Переназначение Y <- z |
| Бит 12 | Переназначение Y <- r |
| Бит 13 | Переназначение R <- y |
| Бит 14 | Переназначение R <- x |
| Бит 15 | Переназначение R <- z |
| Байт 2 | |
| Бит 16 4 | Переназначение хатка <- y |
| Бит 17 4 | Переназначение хатка <- x |
| Бит 18 4 | Переназначение хатка <- z |
| Бит 19 | Есть ось Z (по умолчанию z) |
| Бит 20 | Переназначение Z <- y |
| Бит 21 | Переназначение Z <- x |
| Бит 22 | Переназначение Z <- r |
| Бит 23 5 | Есть 5-я ось |
| Байт 3 | |
| Бит 24 5 | Есть 6-я ось |
| Биты 25–31 | ? |
1 В дальнейшем оси Windows называем большими буквами X, Y, Z, U=RX, V=RY, R=RZ; оси
геймпорта – маленькими x, y, z, r. Оси X и Y должны быть всегда.
2 В геймпортовом джойстике с хаткой должен быть установлен хотя бы один из этих битов.
В джойстиках, подключающихся к COM и USB, не используется.
3 Когда эти три бита сняты, это обычный джойстик.
4 Работает, когда есть осевая хатка (биты 1 и 3 стоят).
5 В геймпортовых джойстиках не используется.
Помимо этого, есть ещё несколько строковых параметров.
| OEMTestWinCap | Заголовок диалогового окна проверки джойстика |
| OEMXYLabel | Подпись под осями X и Y |
| OEM#Label #=Z,R,U,V | Подпись под соответствующей осью |
| OEMPOVLabel | Подпись над хаткой |
| OEMTestButtonDesc | Подпись над кнопками |
| OEMTestMoveDesc | Сообщение «Проверьте игровое устройство...» |
| OEMCalWinCap | Заголовок диалогового окна калибровки джойстика |
| OEMCal# #=1,2,3... | Сообщение, появляющееся на #-м шаге калибровки |
Она хранится в таком разделе.
В подразделе CurrentJoystickSettings хранится информация об установленных в данный момент джойстиках. Их может быть до 16. Строковый параметр Joystick#OEMName задаёт идентификатор джойстика с номером #. # может быть от 1 до 16.
Двоичный параметр Joystick#Configuration содержит такую информацию.
| Байты | Тип | Смысл |
| 00-07 | 2*dword | Та же самая OEMData, с парой дополнительных флажков. |
| 08-0B | dword | Количество осей. Для геймпортового джойстика всегда 6. |
| 0C-23 | 6*dword | Калибровка: крайние левые значения осей X, Y, Z, R, U, V. |
| 24-3B | 6*dword | Калибровка: крайние правые значения осей X, Y, Z, R, U, V. |
| 3C-53 | 6*dword | Калибровка: центральные значения осей X, Y, Z, R, U, V. |
| 54-? | ? |