libretro / hatari

New rebasing of Hatari based on Mercurial upstream. Tries to be a shallow fork for easy upstreaming later on.
25 stars 41 forks source link

Upstream joystick handling, fixes some broken games #68

Closed bbbradsmith closed 3 years ago

bbbradsmith commented 3 years ago

Some games were not working the with joystick. The problem seemed to be that we had used IKBD_GetJoystickData to insert our joystick data, instead of further upstream at Joy_GetStickData, which has some other ways to be called besides just in that IKBD function. Games that used an alternate method were thus failing to get joystick readings.

This should fix issue #50 and I tested it with Altered Beast, Alien Syndrome and Time Bandit, which all previously didn't work.

While doing this, I also removed the joystick button mapping to select number of joysticks, which was never implemented properly and doesn't actually map to any Hatari setting properly as far as I can tell? Instead I turned 1 or 2 joysticks into a libretro option that enables/disables the second joystick through Hatari's config. It seems to be a good default to leave it on, since it does not appear to cause conflicts with the mouse normally, but with the option it can be turned off (and with per-game override) if the need arises.

Also saw a request for a space bar to controller mapping #46 which I put on R3. (Since start was freed up, I moved the Hatari GUI there, where it might be more intuitive, and put the virtual keyboard on X where it might be easier to find. Removed redundant tilde for GUI which conflicted with a key in use.)

Added start in GUI to exit from GUI so it works both ways now. (This also allows savestate restore to leave the GUI now.)

Added options to disable mouse/keyboard input in case they conflict with hotkeys or other things and you'd like to do input only from the gamepad.

(Also includes pull #67 which is just a minor update to the internal savestate.)

bbbradsmith commented 3 years ago

I've been testing this for several weeks now, and I got some positive testing confirmation from two other users here: https://github.com/libretro/hatari/issues/50#issuecomment-719969028

inactive123 commented 3 years ago

My bad for noticing this so late. Here you go.