Thanks for the info, that was an interesting read!
Norbert wrote:If we want to stay close to the original, the program should detect the gamepad and only use the original behavior if the hardware is an old-fashioned joystick. I still disagree with trying to get "all-directional joystick movement" to work.
Well, that is in part what I have been trying to do... You're right, it's certainly never going to work flawlessly, but, acknowledging that the controller hardware has changed, I think it was at least worth it to get the "legacy" controls working acceptably... (heh, and I would hate to throw away the progress I made
)
I'm not sure how we could go about detecting different controller varieties... I suppose the easier option is to add a setting so that people can pick their preferred style.
In this commit I added the "horizontal only" mode, as well as some more tweaks that should make the all-directional mode bearable:
https://github.com/NagyD/SDLPoP/pull/96 ... 715ae90be3
What you mentioned about unwanted movements when turning around quickly: I improved that a bit by decreasing the Y-sensitivity near the neutral position, as well as clearing the remembered input during the turn animation.
Edit:
Norbert wrote:If the joysticks only do the X-axis, up and down could still be used for something. (Just nothing diagonal.) This means up could potentially be used as a combo of both up and the last direction the prince was running in/facing. If you know what I mean. And if the prince is not running, up could just be up. Something might be possible this way.
Yeah, I suppose the diagonal input is indeed the biggest problem...
If I understand you correctly, I kind of did something like this for running jumps and crouch-hops. For running jumps, you can slide the stick upward along the edge, all the way to the top, and the original direction will then be remembered (the kid keeps on running) until the stick returns all the way back to the neutral position. For crouch-hops, it used to be that when you slide along from the downward to the sideways direction, the "down" control gets released, so the kid stands up while you just wanted to do a crouch-hop - so using the technique you mentioned in this case you one can make it work like a "diagonal" input by ignoring the release of the vertical axis until the stick actually returns to the neutral position.