Issues with keyrah and two joysticks with multiple directions simultaneously

Caution: Non registered users only see threads and messages in the currently selected language, which is determined by their browser Please create an account and log in to see all content by default. This is a limitation of the forum software.
Don't Panic. Please wash hands.
  • Myself and other users have noticed that when we are using the Keyrah, there are certain joystick combinations that will not work when two players are using joysticks simultaneously. We're wondering if this is a limitation of the way USB keys work or if there is something that can be done to fix it.


    In emu mode (switch down), if you hold DOWN + LEFT on JS2 (JS2 DOWN=Keypad 2, then JS2 LEFT=Keypad 4) then try to push JS1 RIGHT=Keypad 1 on the other joystick, it will not register. There are other combinations as well that prevent FIRE on one joystick while holding DOWN+RIGHT or UP+RIGHT on the other. The issue has been reproduced on Linux, Windows, Raspbian and BMC64. Same type of issue will happen with 'normal' mode (switch up) just different combinations. Is this generally a limitation of using usb key events for joysticks? Thanks.


    You can follow the discussion starting here: https://www.lemon64.com/forum/…ic.php?t=70498&start=1113

  • Keyrah does not use the exact same layout that the standard AU9410 uses; we did re-map the joystick lines so both joysticks use separate row signals, but they share column signals. However, since there are no diodes in the joy sticks, one joy stick may short colums by going into a diagonal position, which will also affect the other joy stick.


    I'd have to investigate if the controller chip supports n-key rollover if additional diodes are installed.

  • I double-checked the data sheet and application notes of the chip, but could not find any mention of diodes and/or n-key rollover. I am pretty sure that the "double diagonal" problem can be solved with diodes, but the MCU code also needs to implement minimal support for n-key rollover. I have opened a support case with the chip manufacturer and will get back to you once I have an answer.


    If you feel like trying something, you could make an adapter that goes between the joystick connector and the joysticks, which adds a total of five diodes for the joystick. Two of these adapters would have to be used for testing if the issue goes away completely, or if this adds new undesired effects.

  • something like this:


    Code
    1. 8 -----|<------ 8
    2. 1 ----->|------ 1
    3. 2 ----->|------ 2
    4. 3 ----->|------ 3
    5. 4 ----->|------ 4
    6. 6 ----->|------ 6


    (you dont really need the one at GND/8)

  • You might want to remove the diode on pin#8, as that's really only adding voltage drop. Other than that, I wouldn't have any idea why one diagonal setting should influence the other, as the diodes speak a clear language - if you really have cross-port issues, please look for a short over the diodes.