11 August 2013, 18:31 | #1 |
Posts: n/a
|
Joystick incompatibility since WinUAE V2.4.0 - needs a fix
Hello Toni !
Here is my report for some special kind of incompatibility in WinUAE-versions V2.4.0 and newer: First I have to say, that I use WinUAE (and other type of emulators) since many, many years and during the years, I set it up sucessful on several machines. But now have I to post a problem here, for you hopefully to fix: When setting up the actual 2.6.1 of WinUAE on my new laptop (Lenovo B590, Windows 7 x64, 2x USB 3.0, 1x USB 2.0), I realized, that my joystick won't work. Of course it is calibrated in windows and works very fine with any other emulator I use. I tried to REMAP my joystick within WinUAE, but I found, that movement of two axis simply weren't recognized - no chance. Same situation on the USB 3.0 and USB 2.0 ports. I use a LogiLink analogue-joystick USB-Adaptor, connected to a mini-competition-pro with integrated D/A. That combination was working perfectly during the years very fine and also working very fine with several other type of emulators. Then, investigating my problem on the internet, I realized, that from WinUAE version 2.4.0 on, some WinUAE internal joystick-routines had changed and that is exactly what I found here: For testing, I installed an older WinUAE V2.3.3 and also V2.4.0 and tried them both. Result: In V2.3.3 my joystick works very fine, in V2.4.0 it doesn't ! Therefore it is necessary to do some correction in joystick-routines in actual WinUAE-versions, to remain same good compatibility as older versions. But there is one strange point to add: On my main PC (Windows 7 x64), WinUAE 2.6.1. is running WELL with the exact same type of USB-adaptor and joystick ! Therefore it is obviously to see, the incompatibility doesn't raise on all kind of computers/USB-Ports, witch surely makes it harder to find out the bug for Toni. Any help and comments, especially from Toni is welcome. Have a nice day ! Mike |
11 August 2013, 19:08 | #2 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
|
Attach your winuaebootlog.txt log. Unfortunately most analog joystick USB adapters are incompatible with rawinput and they can't be autodetected.
Rawinput can't work correctly if joystick needs calibration. |
12 August 2013, 00:58 | #3 |
Posts: n/a
|
Hello Toni,
thanks for your answer. I attached my actual winuaebootlog.txt what was made after a fresh install of V2.6.1. and some basic settings including setting the gameport to the windows-calibrated "USB Adapator". And what does that mean, what you also wrote in your message ? I feel, that you meant, that it is the "fault" of the USB Adaptor, when it is incompatible with WinUAE. If you think like this, I have a different opinion, because all other emulators work very good with that adapter and also WinUAE does up to V2.4.0. Therefore I see the problem on the side of the emulator ... but maybe I understood your intention wrong ... Hope the attached file helps you ... Mike |
12 August 2013, 17:07 | #4 |
Posts: n/a
|
... but it seems very strange to me, that the same joystick with the same adaptor with WinUAE >= 2.4.0 is working fine with my desktop-PC. Only on the laptop exists the problem beginning with 2.40 (but any other emulator do work there fine). I don't understand why ... do not have any idea ...
I hope, I won't need to stay with 2.3.3 on my laptop ... |
12 August 2013, 17:39 | #5 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
|
Try -norawhid command line parameter as a workaround.
Only WinUAE is affected because it uses rawinput (lowest level input API available in Windows) for joysticks for smallest possible input latency. Most other programs use DirectInput or XInput. Rawinput + joysticks is quite complex to handle compared to "normal" input APIs. Problem is technically caused by the USB adapter, it reports axis range from Y to X (0 to 255 says your log) but actual range depends on connected joystick (USB devices tell what they do, number of buttons, how many axis and their range etc..). It is not right for USB device to require calibration. I'll add your USB adapter vendor/product ID combination to rawinput blacklist in next version. |
12 August 2013, 18:55 | #6 |
Posts: n/a
|
Thank you for help and the explanations, Toni.
If I understood you correct, the USB-ports on my laptop works different than my USB-ports at my desktop-PC ?! Is that true ?! And it is a good idea, to set my USB-adaptor to the blacklist, even it does work on some USB-ports ?! Btw.: Your workaround helps ! Thank you very much and keep on the GREAT, GREAT work with WinUAE ! |
12 August 2013, 19:23 | #7 |
Missile Command Champion
Join Date: Aug 2005
Location: Germany
Age: 52
Posts: 12,435
|
I assume the problem is not the USB port but the USB adapter firmware, which doesn't work properly with Raw Input. By blacklisting your adapter ID WinUAE should "fall back" to the old direct input, which is obviously compatible.
Last edited by Retro-Nerd; 12 August 2013 at 19:33. |
13 August 2013, 08:09 | #8 |
WinUAE developer
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,502
|
Rawinput mode has extra tests, for example it falls back to directinput if rawinput device enumeration does not return at least 1 keyboard and mouse. Laptop keyboard or touchpad may be internally PS/2 and they are not always rawinput compatible.
Yes, problem is the joystick adapter itself, it can never be fully USB HID compatible because it needs calibration. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
WinUAE 3dVISION incompatibility? | CFou! | support.WinUAE | 4 | 07 December 2012 14:12 |
possible x-copy incompatibility | trackah123 | support.WinUAE | 2 | 26 October 2008 13:29 |
Joystick with WinUAE | Emulationnoob | support.WinUAE | 2 | 26 August 2007 04:27 |
Thrustmaster Incompatibility | moffball71 | support.WinUAE | 0 | 15 June 2003 15:25 |
Joystick on WinUAE | Fred the Fop | support.WinUAE | 2 | 16 June 2001 21:07 |
|
|