This page describes how to talk to a GIMX instance that is listening for UDP packets on a specific port.
See the "--src IP:port" argument on the Command line page to learn how to start such a GIMX instance.
Protocol starting from version 7.1
One problem with the earlier protocol was that backward compatibility was broken each time a new axis was added to the controller map.
The new protocol allows to send any number of axis values.
Get controller type
It's possible to send a packet to get the controller type from the remote GIMX.
Request
| byte |
value
|
|
|
| 0 |
0x00
|
| 1 |
0x00
|
Answer
| byte |
value
|
|
|
| 0 |
0x00
|
| 1 |
0x01
|
| 2 |
value
|
| value |
type
|
|
|
| 0x00 |
JOYSTICK
|
| 0x01 |
360 PAD
|
| 0x02 |
SIXAXIS
|
| 0x05 |
DS4
|
| 0x06 |
Xbox One PAD
|
| 0x07 |
T300RS PS4
|
| 0x08 |
G27 PS3
|
| 0x09 |
G29 PS4
|
| 0x0A |
DF PS2 (Driving Force)
|
| 0x0B |
DFP PS2 (Driving Force Pro)
|
| 0x0C |
GTF PS2 (GT Force)
|
Send report
All axes are unsigned 32-bit integers (network byte order).
The Controller Maps page describes the axes and the value ranges corresponding to each controller type.
Report
| byte |
value
|
|
|
| 0 |
0x01
|
| 1 |
number of axes to follow
|
| 2 |
| bit 7
|
bit 6
|
bit 5
|
bit 4
|
bit 3
|
bit 2
|
bit 1
|
bit 0
|
0 for rel_axis
1 for abs_axis
|
axis index e.g. 0 for abs_axis_0 or for rel_axis_0
|
|
| 3-6 |
axis value
|
| ... |
repeat 2 and 3-6 for each axis to update
|
Protocol for versions up to 6.11
Get controller type
It's possible to send a packet to get the controller type from the remote GIMX.
Request
| byte |
value
|
|
|
| 0 |
0x11
|
| 1 |
0x00
|
Answer
| byte |
value
|
|
|
| 0 |
0x11
|
| 1 |
0x01
|
| 2 |
value
|
| value |
type
|
|
|
| 0x00 |
JOYSTICK
|
| 0x01 |
360 PAD
|
| 0x02 |
SIXAXIS
|
| 0x05 |
DS4
|
| 0x07 |
T300RS PS4
|
| 0x08 |
G27 PS3
|
| 0x09 |
G29 PS4
|
Send report
All axes are signed integers.
The Controller Maps page describes the axes and the value ranges corresponding to each controller type.
Report
| byte |
value
|
|
|
| 0 |
0xff
|
| 1 |
0x9C = 156
|
| 2-5 |
axis 0
|
| 6-9 |
axis 1
|
| ... |
|
| 158-161 |
axis 39 (changed in GIMX 6.10)
|