Controlling related issues
sonninnos opened this issue · comments
I found a few problems:
- 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 withraw
both shifts won't get recognized at all (can't even type:
withshift+.
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.
- 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
whileUp D-pad
is mapped toKeyboard 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.
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..