BlitterStudio / amiberry

Optimized Amiga emulator for Linux/macOS
https://amiberry.com
GNU General Public License v3.0
664 stars 90 forks source link

[Amiberry 5.5.1] Unable to use MS SideWinder Plug & Play Game Pad #1045

Closed corasaniti closed 1 year ago

corasaniti commented 1 year ago

Describe the bug After upgrading from Amiberry 5.4 to 5.5.1 I am no longer able to use the MS SideWinder Plug & Play Game Pad game controller. Amiberry 5.4 detects Ms SideWinder Plug and Play (without Game Pad)

Screenshots 5 5 1 4d3c2b56-0227-4cee-8b88-4b46a7d3fd16 5 4j

midwan commented 1 year ago

@corasaniti How do you mean, unable to use? Is it not detected anymore? Or does something else not work?

corasaniti commented 1 year ago

@midwan In the description of the detected device, the writing "Game Pad" is missing. The fire button works but not the arrow keys... Thank you

corasaniti commented 1 year ago

Exactly it is detected Microsoft SideWinder Plug & Play but it is NOT detected Microsoft SideWinder Plug & Play Game Pad

The result is that the arrow keys don't work and only fire works... Thanks

corasaniti commented 1 year ago

@midwan Unfortunately with 5.5.1 version of Amiberry I can not use my Microsoft SideWinder Plug & Play Game Pad while I succeeded very well with the 5.4. I was forced to downgrade :-( Please fix, thanks

midwan commented 1 year ago

@corasaniti The name shouldn't matter, that's just what is reported from SDL2 for the given controller/joystick. But of course the D-Pad should work!

Can you please enable logging from the Paths panel, then Quit Amiberry and start it up again, and start emulation? That way, it will capture everything from the beginning, including the joystick recognition part, and hopefully we'll see what went wrong. If possible, please do the same from the previous Amiberry version as well, and attach both log files here.

corasaniti commented 1 year ago

Can you please enable logging from the Paths panel, then Quit Amiberry and start it up again, and start emulation? That way, it will capture everything from the beginning, including the joystick recognition part, and hopefully we'll see what went wrong. If possible, please do the same from the previous Amiberry version as well, and attach both log files here.

@midwan Sure, tonight I'll do this test and post the logs with Amiberry 5.4which works but I'm not able to post the Amiberry 5.5.1 logs as I've downgraded. Of course it's not just the name of the detected device the problem is that it doesn't work. Thanks

corasaniti commented 1 year ago

@midwan

Here are the logs

Amiberry5.4 which works for my Microsoft SideWinder Plug & Play Game Pad https://www.logpasta.com/paste/23023b23-e4b8-4ea8-887c-56e302ff2f83

Amiberry5.5.1 NOT working with my Microsoft SideWinder Plug & Play Game Pad https://www.logpasta.com/paste/5761d889-0ec8-4b4b-aff9-0009269c8f14

Amiberry 5.5.1 seems to detect a combo device "COMBO 'Microsoft SideWinder Plug and Play' + 'JOY0'" which doesn't work for me.

Thanks in advance

corasaniti commented 1 year ago

@midwan They still seem to be detected as 2 different devices

Amiberry 5.4 (works) Microsoft SideWinder Plug & Play Game Pad detected

Amiberry 5.5.1 (NOT-works) Microsoft SideWinder Plug and Play detected

solskogen commented 1 year ago

This might be a SDL thing, not a Amiberry thing. Can you try the latest version using Raspberry Pi OS instead of dietpi?

corasaniti commented 1 year ago

@solskogen No, unfortunately I can't perform this test. I continue to use Diet-pi. If anyone who has RaspianOs is able to do this test, I'll be very grateful Thanks

solskogen commented 1 year ago

You don't have a spare SD card to try it with?

corasaniti commented 1 year ago

@solskogen

You don't have a spare SD card to try it with?

I don't have much time right now. I'm very busy with my job... :-(

midwan commented 1 year ago

I'm not sure it's an SDL issue, if the same SDL2 version is used and only the Amiberry binary changes. @corasaniti I'll check the logs and get back to you. BTW, do you know you can attach files directly here as well?

midwan commented 1 year ago

@corasaniti It looks like the log from 5.5.1 is missing several rows. Did you edit it? Otherwise it seems like you enabled logging but didn't start the emulator up again, as the lines I wanted to check about the joystick initialization and enumeration only happen on startup (before the GUI even opens), but they are missing from that log.

corasaniti commented 1 year ago

@midwan No I didn't change it, and I reset the emulator...

midwan commented 1 year ago

@corasaniti A reset is not enough, as I mentioned above you should Quit and start the emulator again, after enabling the logging function. There are things that happen only when it starts up, like initializing the controllers found, which we are missing from the 5.5.1 logfile :)

corasaniti commented 1 year ago

@midwan Today I try and replace the 5.5.1 log thank you

corasaniti commented 1 year ago

@midwan Here is the complete Amiberry 5.5.1 log. I enabled the log and reboot Dietpi https://www.logpasta.com/paste/2245d413-733b-4a9a-94ac-864e1c9cc1cc

midwan commented 1 year ago

@corasaniti Thanks, that helps. I can see some interesting details/differences in the logfiles:

Considering the above, I'm left wondering where the mapping and GUID reported came from. Did you do your own mapping for your controller perhaps? This can be done either manually, by editing the controllers/gamecontrollerdb_user.txt file, or by going to the Remap function from the GUI (which will prompt you to press each button in a sequence, and finally save the mapping to that same file again).

If you had saved your own mapping, perhaps that explains the difference. And it might also provide the solution for you, as you could add your own mapping to that file, and it should override anything the default one comes with. Essentially, you'd need to add one line (if it doesn't exist already) in the controllers/gamecontrollerdb_user.txt file, mentioning something like the below:

030000005e0400002700000000010000,Microsoft SideWinder Plug & Play Game Pad,a:b0,b:b1,x:b3,y:b4,leftx:a0,lefty:a1,platform:Linux

The GUID I pasted above is the one detected in v5.4, but you might need to use the one that 5.5.1 detected instead (0300a2c15e0400002700000000010000), if that doesn't work.

corasaniti commented 1 year ago

@midwan Thank you very much for your help but unfortunately your advice didn't work for me. I tried with both following lines in gamecontrollerdb_user.txt file but it didn't work.

#With ID Device Amiberry 5.4 030000005e0400002700000000010000,Microsoft SideWinder Plug & Play Game Pad,a:b0,b:b1,x:b3,y:b4,leftx:a0,lefty:a1,platform:Linux

#With ID Device Amiberry 5.5.1 0300a2c15e0400002700000000010000,Microsoft SideWinder Plug & Play Game Pad,a:b0,b:b1,x:b3,y:b4,leftx:a0,lefty:a1,platform:Linux

I'm forced to go back to Amiberry5.4 or buy a Joystick Competition Pro. I haven't changed any mapping, just by updating to version 5.5.1 my controller doesn't work anymore.

Thanks

midwan commented 1 year ago

Can you check the log again, after adding you mapping? Does it mention your mapping or still the one we saw previously, being picked up?

If it's still the previous one, you could also try to delete that line from the conf/game controller db.txt file, to ensure that only one line with your controller GUID is found.

corasaniti commented 1 year ago

@midwan Ok solved thanks to your help. My "Microsoft SideWinder Plug & Play Game Pad" device ID is as follows 030000005e0400002700000000010000

This device was correctly detected by Amiberry 5.4 but in the gamecontrollerdb.txt file of version Amiberry 5.5.1 there was the following entry with the same ID that broke my Game Controller.

030000005e0400002700000000010000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Linux,

It was enough to comment out the above line in the gamecontrollerdb.txt file and add the following in the gamecontrollerdb_user.txt file

030000005e0400002700000000010000,Microsoft SideWinder Plug & Play Game Pad,a:b0,b:b1,x:b3,y:b4,leftx:a0,lefty:a1,platform:Linux

and now my Microsoft SideWinder Plug & Play Game Pad controller is working fine again with Amiberry version 5.5.1 Thank you so much, you have been very patient in providing your suggestions

midwan commented 1 year ago

@corasaniti Great to see that it helped! And thanks for posting the solution, it might help others in the future as well.