Rémi Bernon (@rbernon) commented about dlls/winebus.sys/bus_sdl.c:
USAGE_AND_PAGE physical_usage; axis_count = pSDL_JoystickNumAxes(impl->sdl_joystick);
- if (options.split_controllers && axis_count > 6)
- {
if (impl->axis_offset == axis_count / 6)
{
axis_count = axis_count % 6;
}
else
{
axis_count = 6;
}
- }
Overall I'd say that the `axis_offset` field is a bit misleading, as it's not an offset but an index of 6-axis groups. I think it'd be better to have it truly an offset, so that devices may be split differently than in groups of 6 axes in the future without requiring too many changes.
For now it's okay to keep a hardcoded 6 axes limit here and in the device creation loop below.