antimicrox icon indicating copy to clipboard operation
antimicrox copied to clipboard

Invalid number of gamepad buttons is showed

Open pktiuk opened this issue 3 years ago • 1 comments

All of the gamepads in AntiMicroX show wrong number of buttons.

This is caused by hardcoded value of button number for every device recognized as GamePad.

int GameController::getNumberRawButtons() { return SDL_CONTROLLER_BUTTON_MAX; }

Fixing attempt https://github.com/AntiMicroX/antimicrox/pull/555

int GameController::getNumberRawButtons() { return SDL_JoystickNumButtons(m_device); }

caused sudden crashes for some controllers https://github.com/AntiMicroX/antimicrox/issues/579 caused smaller than expected number of buttons (and lack of proper handling of this case)

At first glance, it seems, that SDL API SDL_JoystickNumButtons is broken, because in some cases it shows invalid number of buttons.

Button numbers for gamepad: PS5 Controller SDL_JoystickNumButtons: 13

SDL version: 2.24.0

Example log from this kind of situation:
antimicrox.log

Reported to SDL https://github.com/libsdl-org/SDL/issues/6442

pktiuk avatar Oct 25 '22 10:10 pktiuk

Relatedly, it's not possible to map the SDL paddle buttons using the mapping GUI. controllermap does it just fine, though.

imyxh avatar Sep 28 '24 19:09 imyxh