[Bug 22059] New: when /dev/input/event* device is accessible, wine fails to consider calibration and correction factors of the linux joydev driver
http://bugs.winehq.org/show_bug.cgi?id=22059 Summary: when /dev/input/event* device is accessible, wine fails to consider calibration and correction factors of the linux joydev driver Product: Wine Version: 1.1.40 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-dinput AssignedTo: wine-bugs(a)winehq.org ReportedBy: corvus-wine(a)cybertrench.com Created an attachment (id=26862) --> (http://bugs.winehq.org/attachment.cgi?id=26862) joydev log with event file accessible Linux provides the possibility to correct joystick raw values automatically when accessing /dev/input/js* devices, both autodetected/scaled and "hand-calibrated" with tools like "jscal" if wine uses /dev/input/js* for joystick access, it also takes the correction factors into account, so a joystick that has been calibrated under linux, will be calibrated correctly under wine. However if the /dev/input/event* file corresponding to the joystick device is accessible (at least for reading) wine seems to bypass the joydev driver and accesses the device on a lower (event) level, thus unaware of the calibration data and correction factors - whether manually set and autodetected! As a result programs run under wine that use a joystick but offer no inbuilt calibration option (which is most, since under native win32 joysticks are calibrated system wide in the input device area of the control center) will behave strangely as joysticks are potentially off-centered - mis-scaled - axis flipped - or even unable to cross the zero position at all. Depending on the actual joystick hardware and the required corrections. the attached log1.txt shows the output of a joystick using program (il2fb flightsim) started with dinput WINEDEBIUG output grep'd for "joydev" when the event device is accessible (and the joystick is unusable due to miscalibration
WINEDEBUG=+dinput wine il2fb.exe 2>&1 |grep joydev
log2.txt shows the same output with /dev/input/event5 (the joystick event device) chmodded to 000 in this case the axis and buttons are mapped completely different, but centered and scaled correctly (given that the jopystick had been calibrated under linux using jscal) for obvious reasons this bug is only visible if the axis values reported by the event device, especially min and max: ...
cur=97, min=0, max=255, fuzz=0, flat=15 ...
are not equal to the actually reachable minimum and maximum values. newer joysticks often autoscale in hard/firmware and actually reach those min/max values with little need for calibration, while some, especially older models, are in dire need of correction values since the actual range (as in this case) is more like 30 to 120 -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=22059 --- Comment #1 from Corvus Corax <corvus-wine(a)cybertrench.com> 2010-03-17 18:24:25 --- Created an attachment (id=26864) --> (http://bugs.winehq.org/attachment.cgi?id=26864) same with input/event device file inaccessible -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=22059 --- Comment #2 from Corvus Corax <corvus-wine(a)cybertrench.com> 2010-03-17 18:38:11 --- As it seems, dinput directly uses the event interface to access the joystick if available. That would mean it'd need to handle correction of raw data itself instead of the linux joydev driver. Would it be possible to ask the linux joydev driver for its correction parameters and apply them as default calibration once wine is started? Possibly stored and overridable in the registry (together with the axis mapping) -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=22059 Vitaliy Margolen <vitaliy(a)kievinfo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |WONTFIX Alias|joycal_event_issue | --- Comment #3 from Vitaliy Margolen <vitaliy(a)kievinfo.com> 2010-03-18 08:59:16 --- /dev/js* and /dev/input/event* are two totally separate interfaces (joydev and evdev). Later is not affected by any calibrations you perform on former. There is nothing can be done about it. Use calibration within windows' games. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=22059 Vitaliy Margolen <vitaliy(a)kievinfo.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #4 from Vitaliy Margolen <vitaliy(a)kievinfo.com> 2010-03-18 08:59:35 --- Closing. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=22059 deepholecaver(a)gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |deepholecaver(a)gmail.com --- Comment #5 from deepholecaver(a)gmail.com 2011-04-10 11:18:42 CDT --- Calibrate joysticks in Windows games? Seriously, what kind of a solution is that? It's not a solution, that's what. Games generally don't do calibration because in Windows, as in linux, it is the responsibility of the OS to do so. IL-2 certainly doesn't provide this functionality which is currently what has me just a little pissed off right now. evdev is a low level interface meant for use by Xorg, not a full featured joystick driver. It does not provide the normal joystick functionality expected of an OS, It just passes events! So if the wine developers insist on using evdev instead of joydev, where are users supposed to find the necessary functionality to calibrate joysticks? We have nowhere to go. It is asinine that the developers should force this loss of functionality on us when there is a perfectly good solution already implemented in joydev. If you all are so hot on migrating away from joydev, you should really consider replacing the important functionality it provides. I am seriously disappointed in the wine team's judgment on this issue. You took something that worked just fine and broke it in the name of progress. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.
participants (1)
-
wine-bugs@winehq.org