libretro/virtualjaguar-libretro

Numpad are incorrectly mapped in some games.

Closed this issue · 6 comments

Hey!

I noticed that, depending on the game, numpad are incorrectly mapped to controller, it should be:

  • RetroPad X = Numpad 0
  • L1 = 1
  • R1 = 2
  • L2 = 3
  • R2 = 4
  • L3 = 5
  • R3 = 6

(7-9, * and # not available on controller, see #39)

But, if you try with Doom for example, there's a useful cheat to test numpad, while ingame hold numpad 1-6 and press Pause (RetroPad Select) and it should warp you to that level number, and you get this:

  • L1 + Select = warps to level 1, correct.
  • R1 = level 2, correct.
  • L2 = level 5, wrong.
  • R2 = level 6, wrong.
  • L3 and R3 don't do anything, should be level 5 and 6, so wrong.
  • X doesn't do anything as well but "Numpad 0" isn't used in Doom, so correct I guess.

In Wolfenstein 3D L1, R1 and L2 should be save 1, save 2 and save 3. L1 and R1 work fine, L2 toggle the map however, which should be numpad 5. In Rayman the 50 lives code (5, 1, 5, 2, 5, 3 during the intro) doesn't work at all on controller so numpad 2, 3 and/or 5 are incorrectly mapped.

But in some other games it seems properly mapped, in Syndicate and Air Cars for example it looks correct from what I was able to test.

edit: forget to mention, tested on PC, on both Windows and a Linux VM.

I changed the button mapping, and inadvertently made L2 activate both 3 and 5, and R2 activate both 4 and 6.

Ah, that explains the behavior being different between games I guess :D Thanks for the fix, just tried your PR on Doom and Rayman, it works properly now! 👍

Can you reopen this?

Sure, anything wrong?

The pull request that is suppose to fix this issue has not been merged.

Oh whoops, I usually wait for the merge to close issues... my bad! A bit surprised it wasn't merged yet tho 🤔