Following steps will help you fix this:
- If you have not done so you MUST set your control mappings in Settings/Controls
- (since 2.4.1) if the previous won't help go to Settings/Controls and set "Controller buttons only" to "YES" and bind your controls again
- Wait for new updates - I'm working on this!
ExplanationWhen your dance mat is connected via USB OTG port and recognized by android it is recognized as a standard HID device (basically a game pad).
Game pad can send 3 specific kinds of commands:
- DPAD action - Standard for menu
- Axis - Analog controls
- Buttons (A,B,X,Y, L1, R1, Start, Select/Menu are standardized, everything else is up to the hardware manufacturer (sometimes they wont even stick to the standard buttons)
- Button 189 down
- DPAD - Left
- Axis 1 - value "-1"
Why binding the controls fixes the issue?At the time the DPAD standard was developed they defined it not as separate button press but as a direction (e.g. possible are LEFT, LEFT/UP, UP, UP/RIGHT, RIGHT, RIGHT/DOWN, DOWN, DOWN/LEFT, CENTER and nothing else).
This is clear from the construction of the JOYSTICK - there just is no such thing as UP & DOWN or LEFT & RIGHT and the interface does not allow for such values.
Because by default BeatX has no chance to know which buttons your dance mat uses - it is configured to use DPAD commands so you can navigate the menues and bind your controls.
Therefore if you use the default bindings - DPAD actions will be used and you won't be able to do LEFT/RIGHT, UP/DOWN jumps
Why the "Controller buttons only" setting fixes the issueWhile binding of controls the game takes the first command your dancemat/gamepad/keyboard sends and assigns it to the specific action. This includes Axis, DPAD and Button controls
This works great if your dance mat sends Button action as the first command. But if your dance mat sends the AXIS command as first, it will bind the axis and the button action will be ignored.
Axis actions are value of the axis in the range of -1 to +1 e.g. LEFT is Axis(0) = -1, CENTER is Axis(0) = 0 and RIGHT is Axis(0) = +1
This leads to a similar situation as with the DPAD where there is no such possibility as Axis(0) equal to both -1 and +1 at the same time.
The "Controller buttons only: YES" ignores all actions except Buttons - which helps you to bind the proper binding (button assignment for given action ignoring the previously send AXIS actions) and therefore will allow you to do JUMPS because Buttons are send as separate commands.