Can't configure 1p with both arcade stick + gamepad

Issue #37 resolved
hexaae created an issue

Single player only. I tried to configure as joypad1 my Hori Fighting Stick Mini (XInput DPAD for directions) AND gamepad XBox One BT as alternative controls to use both whenever I want to change controller type.

The problem is that stick uses different UP/DOWN input, and when I restart Denise with either the stick or the gamepad attached it incorrectly assigns UP/DOWN to the other controller. E.g. stick is mapped as Y axis UP = UP but the gamepad uses Y axis UP = DOWN and when I restart Denise switching from stick to gamepad, it thinks is actually the other controller connected and not the stick (hence I have inverted UP/DOWN!).

Would be possible to memorize the full HW ID of the controller in the saved settings to be sure that whatever is attached (gamepad only, joystick only, both…) they are always correctly mapped?

Comments (14)

  1. PiCiJi repo owner

    Is there a problem with directInput and rawInput or just one of the two drivers?

    please have a look in c64_settings.ini for something like this: joypad#2_1:0|267219573|1|1|2

    e.g. “267219573“ identifies my controller to recognize this later. When you map both controller, I would assume you get the same value for both controllers ?

  2. hexaae reporter

    Mmh… since I switched to RawInput it seems I can’t reproduce it anymore (probably a DInput8 only issue?).

    Here is my c64_Settings.ini remap for joy1 & 2:

    joypad#1_0:0|0|0|200|0
    joypad#1_0_alt:0|539719525|1|1|2|1382034849|0|1|1
    joypad#1_1:0|0|0|208|0
    joypad#1_1_alt:0|539719525|1|1|1|1382034849|0|1|2
    joypad#1_2:0|0|0|203|0
    joypad#1_2_alt:0|539719525|1|0|1|1382034849|0|0|1
    joypad#1_3:0|0|0|205|0
    joypad#1_3_alt:0|1382034849|0|0|2|539719525|1|0|2
    joypad#1_4:0|0|0|57|0
    joypad#1_4_alt:0|1382034849|3|0|0|539719525|3|0|0
    joypad#1_5:0|0|0|56|0
    joypad#1_5_alt:0|1382034849|3|1|0|539719525|3|1|0
    joypad#1_6:
    joypad#1_6_alt:
    joypad#1_7:
    joypad#1_7_alt:
    joypad#1_8:
    joypad#1_8_alt:
    joypad#1_9:
    joypad#1_9_alt:
    joypad#1_10:
    joypad#1_10_alt:
    joypad#1_11:
    joypad#1_11_alt:
    joypad#1_12:
    joypad#1_12_alt:
    joypad#1_13:
    joypad#1_13_alt:
    joypad#1_14:
    joypad#1_14_alt:
    joypad#1_15:
    joypad#1_15_alt:
    joypad#2_0:
    joypad#2_0_alt:
    joypad#2_1:
    joypad#2_1_alt:
    joypad#2_2:
    joypad#2_2_alt:
    joypad#2_3:
    joypad#2_3_alt:
    joypad#2_4:
    joypad#2_4_alt:
    joypad#2_5:
    joypad#2_5_alt:
    joypad#2_6:
    joypad#2_6_alt:
    joypad#2_7:
    joypad#2_7_alt:
    joypad#2_8:
    joypad#2_8_alt:
    joypad#2_9:
    joypad#2_9_alt:
    joypad#2_10:
    joypad#2_10_alt:
    joypad#2_11:
    joypad#2_11_alt:
    joypad#2_12:
    joypad#2_12_alt:
    joypad#2_13:
    joypad#2_13_alt:
    joypad#2_14:
    joypad#2_14_alt:
    joypad#2_15:
    joypad#2_15_alt:
    

    Using RawInput seems ok and booting Denise with joystick OR controller as the only connected joypad#1 is ok: UP/DOWN is not inverted to each other.
    Will do more tests…

  3. PiCiJi repo owner

    probably a DInput8 only issue?

    It could also happen when switching between directInput and rawInput. Both drivers do not necessarily use the same identifiers. This problem cannot be reliably solved automatically. If the problem persists after a driver change, it should work permanently (open/close App) after a top/bottom reassignment. (until the next driver change)

    Luckily, people usually don't change drivers all the time.

  4. hexaae reporter

    I think your guess is correct: must have been mixed saved settings (controllers configured with DInput8 AND RAWInput in a different moment). Any real reason to keep also old DInput BTW?

  5. PiCiJi repo owner

    Any real reason to keep also old DInput

    It is useful for older operating systems and some older input devices may only be recognized under directInput.

  6. hexaae reporter

    I see.

    May I ask you a small usability improvement? Disable LMB click unless mouse is actually caught: can be annoying when clicking in drop-down menus (window mode) and a game accidentally starts as 2P mode (using cfg: port1=mouse 1351, port2=joy1) ;-)

  7. hexaae reporter

    Sorry, I have some problems opening new Issues: it says my account has no access to “Create issue”… ???
    Wanted to open a Sound issue…

  8. Log in to comment