Unless you are using very old joystick that uses Gameport or a proprietary USB protocol, you will need just the generic USB Human Interface Device (HID) modules.įor an extensive overview of all joystick related modules in Linux, you will need access to the Linux kernel sources - specifically the Documentation section. SDL2 supports only the new evdev interface. While SDL1 defaults to evdev interface you can force it to use the old Joystick API by setting the environment variable SDL_JOYSTICK_DEVICE=/dev/input/js0. Most new games will default to the evdev interface as it gives more detailed information about the buttons and axes available and also adds support for force feedback. Symbolic links to those devices are also available in /dev/input/by-id/ and /dev/input/by-path/ where the legacy Joystick API has names ending with -joystick while the evdev have names ending with -event-joystick. dev/input/jsX maps to the Joystick API interface and /dev/input/event* maps to the evdev ones (this also includes other input devices such as mice and keyboards). Linux has two different input systems for gamepads – the original Joystick interface and the newer evdev-based interface. (Discuss in Talk:Gamepad#Joystick API vibration support)
Reason: Need info about differences between API, how to switch between them.