_TL DR: This patch moves from incorrect reset emulation on your device to incorrect reset emulation on my device. I would prefer something that would be correct reset emulation on both our devices._
My understanding is that the sidewinder itself does the autocentering on reset and power on by putting a spring effect into the first slot and playing it. I expect they made it this way as this makes it useful as a regular joystick (without any effects playing it is entirely limp and pretty useless) when there isn't force feedback driver/application support.
According to my [commit message](https://gitlab.winehq.org/wine/wine/-/commit/9dc1ddf801d9db287eb6e7dc13036ef...), snooping the USB bus under Windows showed me that, for the sidewinder,
* if you set autocentering it just does a reset on acquire, and * if you set no autocentering it does a reset followed by a stop all effects on acquire.
My understanding of the problem on linux is the [force feedback input subsystem](https://www.kernel.org/doc/html/latest/input/ff.html) doesn't give you access to these operations, so there is no way to directly do what Window's does. Rather wine has to emulate things using the operations it has. For reset this currently means
* manually stopping all the effects it has started * enabling autocenter
and for stop all effects this means
* manually stopping all the effects it has started * disabling autocenter
The sticky issue is then enabling of autocenter on reset. This is what the sidewinder does, but it isn't what other (non-joysticks or all?) devices do.
This merge request changes from explicitly enabling autocenter on the emulated reset to explicitly disabling autocenter on the emulated reset. My issue with that is it just moves from the emulated behaviour being wrong from your device to it being wrong for my device. I would much prefer to moving to something that could be correct for both our devices. To this end, I suggest either
* if this is a sidewinder vs everything else issue (instead of a joystick vs wheel issue), then specifically handle the the sidewinder in the linux reset emulation code so it sets autocentering on for the sidewinder and off for everything else, or * if instead there are other devices that also autocenter on reset, then make it configurable so the user can choose the correct emulation behaviour for their device.