Controller sticks get stuck sometimes
Tested on duke nukem (video below) + blood.
Basically in-game on MacOS, both joystick get stuck randomly for no reason sometimes.
Here's a video demonstration
In the video there are also the keybindings used.
Can you try setting core option Input -> "Advanced > Joystick Analog Deadzone" to the maximum 40% and see if that makes the problem go away?
Can you try setting core option Input -> "Advanced > Joystick Analog Deadzone" to the maximum 40% and see if that makes the problem go away?
Tried but it's worse because of the deadzone + this issue.
And weirdly enough is the fact that with real mouse and keyboard it doesn't have any issues, blood seems to be less problematic but still sometimes it does (or maybe because i changed it to mouse left and right)
Can you load this program in DOSBox Pure DOS_JOYCHECK_EXE.zip and reproduce the issue? Then can you share DOS_JOYCHECK_EXE.pure.zip from your RetroArch Saves directory which will have your controller mapping. If you can't reproduce it with JOYCHECK.EXE, can you share you Duke Nukem 3D save file (should be called "Duke Nukem 3D - Atomic Edition (USA).pure.zip" and contain a file called "PADMAP.DBP"). Also do you have any means of testing and reproducing this on another platform that isn't MacOS?
On Android it's flawless, the test program didn't produce any zip save file but I can screenshot the keybindings. It's using the generic keyboard preset, here's the ~~duke Nukem file (removed link)~~
(Sorry if I had to use Google Drive but I can't seem to be able to upload any file directly with GitHub)
I still cannot reproduce this here, so can you do some more testing please.
So as far as I understand, you have analog sticks on a physical gamepad mapped to DOS keyboard keys which then after a while has the mapped keyboard key being stuck pressed down without you doing any analog stick input. Is that correct?
In the JOYCHECK.EXE test program, can you press F4 (to go to "Select joystick type"), then press 6 (for "Joystick with US-keyboard") and then get it to have keys stuck?
Next, once you have confirmed that, can you open the Gamepad Mapper and configure it like this:
With that, again get the key stuck and take a screenshot so we can see both the analog joysticks input and the stuck key.
The keys get stuck not only for the analog inputs but also for like L2 for running in Duke Nukem, sorry I forgot to tell about it and rn I can't test since it's late where I live so tomorrow.
If it's my fault again, I'm sorry In advance.
It seems like they get stuck only if the stick is pulled all the way to the edge but not for all.
Here's a video, at minute 1:20 it shows it more clearly
Even at the very start of your video, I see something that seems weird.
- The right stick vertical axis starts at the default 690
- You then slowly push the right stick upwards, and after it goes below 570 or so it causes the "Page Down" (PgD) key to get pressed
- But then somehow when the vertical axis gets close to the very top, below a value of 90 or so, the PgD key suddenly stops getting pressed
This alone seems weird, but less than getting stuck, it's like not pressing keys when it should. Can you confirm that behavior? When I try the same setup, this never happens to me, while a stick is tilted horizontally or vertically, once a key becomes pressed down it stays down no matter how much further I tilt the stick. I'm not sure what could cause this...
Here's something you can try.
- Download this video and input test core for RetroArch: vidtest_macos_edfd327.zip
- Place the file "vidtest_libretro.dylib" from inside that ZIP into your "cores" folder of RetroArch (it should already contain "dosbox_pure_libretro.dylib").
- Restart RetroArch
- Select "Load Core"
- Select "VidTest"
- Press "Start Core"
- With the mouse, close the sections "Input", "Video" and "Timing"
- Open the section "Full Input State"
With that, move your analog sticks to the most outer edges and write down the highest and lowest numbers shown for "Port 0 Analog Left X", "Port 0 Analog Left Y", "Port 0 Analog Right X" and "Port 0 Analog Right Y", or maybe record a video.
Normally the numbers should start out somewhere near 0 while the sticks aren't getting touched. And near a horizontal or vertical edge the number should reach either 32767 or -32767.
Yes, when going up with the stick it gets interrupted when at the very edge and the core you gave me can't be loaded for some reasons