Hi Arek,
Series looks good, then I think it could be stripped of a few tests that feel a bit redundant, aren't ultimately useful, and still takes a bit of time to test. If we need to better match more device types we better keep the list reasonably short.
The tests are actually indeed useful to decide and show the minimal set of usages required for the actual device types to be reported, but now that we've seen it I think a v2 could only include one device test for each type / subtype combination, and discard those which return DI8DEVTYPE_SUPPLEMENTAL. It just seems to be the default device type when it fails to match anything.
So just one test for DI8DEVTYPEDRIVING_LIMITED, one for DI8DEVTYPEDRIVING_DUALPEDALS, and one for DI8DEVTYPEDRIVING_THREEPEDALS sounds sufficient.
Also it's generally usual to put the tests first (unless the todo_wine are really complicated to add, which may be simplified here with a few device_type_todos arrays of BOOL matching the device desc array for each dinput versions). I don't mind too much though so feel free to ignore.
The commit title also should start dinput/tests for the test commits.
Cheers,