libretro / dosbox-svn

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Controlling related issues

sonninnos opened this issue · comments

I found a few problems:

  1. Shifts get stuck if left+right are pressed together. The first one released will stay pressed until pressed again.
  • Happens only on actual keyboard, with all device types in the control menu. With or without all the input_player1_*-mappings nulled.
  • Tested with dinput input driver, and with raw both shifts won't get recognized at all (can't even type : with shift+. to change drives).
  • Confirm with the attached test program or any pinball game.
  • Does not happen with the PUAE core, but then again it does not use RETRO_ENVIRONMENT_SET_KEYBOARD_CALLBACK.

KEYCHECK.zip

  1. With mapping duplicate keys with Keyboard + Mouse device type only the last one in the list works properly.
  • So for instance if RetroPad B is mapped to Keyboard Up while Up D-pad is mapped to Keyboard Up, only the D-pad stays pressed properly, and the B mapping only goes through for a tiny blip randomly.
  • But if the same Keyboard Up is mapped to RetroPad X, then that only works properly, and all before that (even the D-pad) do the same random tiny blip press.
  • Confirm with Prehistorik 2, since it uses keyboard up as jump, and the press duration determines the height of the jump.
  • Same does not happen with the PUAE core with the keyboard device type.

Of course it is another issue entirely that the underlying keyboard presses still go through when keyboard is used as a RetroPad. As in if the mapping for Up is something else than up, and RetroPad Up is keyboard Up, keyboard Up will be pressed with the mapped key.

Perhaps a same kind of keyboard pass-through core option could be made like we did in the PUAE and VICE cores. It skips cursor keyboard presses when RETRO_DEVICE_ID_JOYPAD_directions are pressed, and all keys with RETRO_DEVICE_ID_JOYPAD_buttons.

If you do "passthrough" you lose remapping.
I can use shift just fine in windows and linux

imagen

All the other issues are limitations of the RetroArch input mapper.

Here shifts only work with dinput. You don't get them stuck by pressing them together?

Yes I can get them stuck. But regarding them not working at all in other drivers, that's a RA issue altogether.

Sure, I was just demonstrating/testing that that wasn't the reason for the stickyness. Raw is seriously broken anyway with Windows at least. Like numpad numbers keys are not differentiated from normal numbers, and regular enter presses numpad enter..