Skip to content
Benjamin Schulte edited this page Sep 12, 2020 · 10 revisions

Feature overview

This table gives you a quick overview which features the different platform implementations provide and which are supported by this library's implementations.

Android

  • A game controller is a special type of input device
  • Game controller buttons and axis are mapped on the mappings returned by getMapping(), if possible. Some controller buttons may return key codes from normal input devices. You can adjust this with AndroidControllers.ignoreNoGamepadButtons field.
  • Vibration is not supported by operating system
  • Player index is not supported by operating system
  • getAxisCount() returns the real available axis count
  • getButtonMin/Max() return constants 0 to 300 for the platform, because theoretically all key codes are available (see above)

Desktop

  • Game controllers have always the same input mapping based on a mapping file. If a game controller can't get mapped, it won't show up. This works on Mac, Windows and Linux. Raspi not tested.
  • Vibration is supported, if connected game controller supports it
  • Player index is supported, but only emulated and won't affect hardware indicators
  • getAxisCount() and getButtonMin/Max() return constants for the platform, not dependant of the connected controller

HTML

  • Game controllers have often the same input mapping returned by getMapping(), if possible. This works best on Chrome. You can try on html5gamepad, it will show "standard" mapping for mapped controllers.
  • Vibration is supported on Chrome
  • Player index is not supported
  • getAxisCount() and getButtonMin/Max() return real controller values.

iOS

  • Game controllers are guaranteed to have the input mapping returned by getMapping(). Only a few controllers are supported: MFi controllers, PS4 and Xbox One (since iOS 13) as well as iCade-compatible controllers. iCade controller pretend to be a keyboard and send special keycodes for d-pad and buttons to overcome restrictions of older iOS versions.
  • Vibration is not supported yet, will com on iOS 14
  • Player index is supported, if the controller supports it
  • getAxisCount() and getButtonMin/Max() return real controller values (except for iCade controllers)
Clone this wiki locally