Joystick issues on latest version

Lisko
Posts: 88
Joined: Sun May 24, 2020 10:45 pm
Has thanked: 17 times
Been thanked: 3 times

Joystick issues on latest version

Unread post by Lisko »

Hi, after updating ao486 yesterday, the joystick started act strangely in doom. I use a retro-bit saturn 2.4G controller connected via USB and osd set in 4 buttons joystick mode. The problem is that even when not pushing any button the skull cursor goes up or the player moves forward. With the previous version there weren't problems. Tried restarting doom many times for calibration but without success. Could someone try it and report?
User avatar
Chris23235
Top Contributor
Posts: 862
Joined: Sun May 24, 2020 8:45 pm
Has thanked: 114 times
Been thanked: 177 times

Re: Joystick issues on latest version

Unread post by Chris23235 »

Try of 2 button joystick works, as far as I remember 4 button Joystick acts strange, when the game expects a 2 button Joystick.
Schyz
Posts: 63
Joined: Sun Jul 12, 2020 4:53 pm
Has thanked: 18 times
Been thanked: 13 times

Re: Joystick issues on latest version

Unread post by Schyz »

Joysticks in DOS behaved in quite a curious way, the gameport was intended for 2 joysticks with 2 axis and 2 buttons each, you won't get anything else in DOS with a gameport. The Gravis Gamepad (SNES style) with 4 buttons, was actually using the 2 buttons from the second player.

CH Products not only took the buttons, but also the other two axis (axises? axes?) for the rudder and throttle. You might be wondering how it maps the POV hat, the trick is that it didn't support simultaneous buttons, if you press 2 buttons it sends nothing to the computer, because the POV was actually sending combinations of two buttons, that's how the game knows if you are pressing one of the 8 directions in the POV hat.

The Thrustmaster FCS allowed simultaneous button presses by mapping the POV hat to one of the axis (axises? axes?) on the second player. In order to avoid issues with a noisy analog signal it only supported 4 POV directions. This means it had no throttle mapped to an axis, only the rudder, the throttle was actually sending keypresses. I quote from the manual:
A forward movement of the throttle should generate series of small letter i's, one capital E and five capital I's. Pulling back on the throttle should generate capital D's, one capital L and a string of small d's.
The 10-button Gravis Gamepad Pro (that looks like a PS1 gamepad) requires a driver or specific support for communication, that's why in DOS it feels like it's sending inputs like crazy. For DOS compatibility you could activate a switch that downgraded it to only 4-button support, like the non-Pro version. Additionally it supported the GrIP protocol that allowed for multiple gamepads on the same port, daisy-chaining them, this was supported also by some DOS games. I don't know if there is any DOS game that supported the 10 buttons mode.

If somebody wants more info about vintage joysticks: http://nerdlypleasures.blogspot.com/201 ... ticks.html
rhester72
Top Contributor
Posts: 1118
Joined: Thu Jun 11, 2020 2:31 am
Has thanked: 13 times
Been thanked: 171 times

Re: Joystick issues on latest version

Unread post by rhester72 »

This was a VERY Informative read and a piece of PC history I'd forgotten! Thank you!
Lisko
Posts: 88
Joined: Sun May 24, 2020 10:45 pm
Has thanked: 17 times
Been thanked: 3 times

Re: Joystick issues on latest version

Unread post by Lisko »

Thank you all, I'll try using gravis mode with a driver as a workaround.
Chris23235 wrote: Tue Aug 18, 2020 1:20 pm Try of 2 button joystick works, as far as I remember 4 button Joystick acts strange, when the game expects a 2 button Joystick.
The problem is that before the last release it was working very well.
bry111
Posts: 26
Joined: Tue Jul 21, 2020 12:31 am
Has thanked: 1 time
Been thanked: 2 times

Re: Joystick issues on latest version

Unread post by bry111 »

There are also (at least) a couple different ways to read the gameport. Software can use BIOS calls (interrupt 15h, AH=84h), or poll I/O address 201h directly. I'm guessing most games didn't use the BIOS calls because they're slower?

I haven't had any luck getting gameport BIOS calls to work with MiSTer (at least in ao486_20201106.rbf and a few other recent versions), they seem to always return the same values. All buttons are constantly pressed and joystick axes are stuck in a weird position, in both 2 and 4 button modes.

How well 201h works seems to depend on the joystick and on MiSTer CPU speed settings (clock speed, L1/L2 cache). In a test program I wasn't able to register diagonals with a DaemonBite Arcade Encoder or wired PS3 analogue stick, but the PS3 d-pad could register diagonals fine. Slowing down to 15MHz with no caches resulted in stuck axis positions. 15MHz with one cache (either L1 or L2) resulted in down and/or right not registering. Again, in both 2 and 4 button modes.
Post Reply