Each 4 bytes correspond to an input, in display-order for a specific game.
The file ends with 8 bytes of 00 or 01 flags.
These signify whether an analog input in display-order is enabled.
For keyboard keys, the first byte corresponds to a DirectInput scan code, and bytes 2-4 are 0.
For any joypad input, the 2nd nybble of the 2nd byte is the joypad number, starting from 1.
For joypad hats:
- The first byte is the hat and direction
00for hat 1 left01for hat 1 right02for hat 1 up03for hat 1 down04for hat 2 left05for hat 2 right06for hat 2 up07for hat 2 down- (and so forth for additional hats)
- Bytes 3-4 are zero
For joypad buttons:
- The first nybble is the button number (
1-F, apparently limited to 16 buttons) - The second nybble is
0 - Bytes 3-4 are zero
For joypad analog inputs:
- The first byte is the axis
00for X01for Y02for RZ03for Z04for RX05for RY06for S1 (untested)07for S2 (untested)
- The first nybble of the 2nd byte is a
0or1inversion flag - Bytes 3-4 are
00 FF
4-byte inputs:
02 00 00 00is keyboad110 01 00 00is joy 1 button 110 02 00 00is joy 2 button 101 01 00 00is joy 1 hat 1 right05 01 00 00is joy 1 hat 2 right01 01 00 FFis joy 1 Y-axis01 11 00 FFis joy 1 Y-axis inverted
8-byte file endings:
01 00 01 00 00 00 00 00specifies that the first and third inputs with checkboxes have analog enabled