USB Overdrive is a macOS device driver that handles any USB or Bluetooth mouse, keyboard, trackball, joystick, gamepad or gaming device from any manufacturer and lets you configure it either globally or for specific applications.
Of the game controllers available for home computers, only a few are officially supported on the Mac, but you can often get others, like those for the PS3, Wii, or Xbox, working just fine. To use any of these controllers with your system, you will first need to connect it to your system physically, and then install a driver package to make use of the controller's inputs.
Universal Gamepad Driver For Mac
For factory-supported devices like the Logitech F310 Gamepad and the Belkin Nostromo SpeedPad, drivers are available from their manufacturers; however, for unsupported devices like Wii Remote, PS3, and Xbox controllers, you will have to use a third-party driver package.
Once the gaming controller is connected, you can use one of several software driver packages to configure its inputs. The first is Joystick Mapper, with which you should be able to configure most gaming controllers. The second is the Tattiebogle driver for Xbox controllers, which should work for both wired and wireless (using the receiver noted above) controllers.
For Wii users, the program DarwiinRemote and the Wjoy driver should allow you to crudely connect and configure the motion-sensitive Wii Remote, but if you have trouble establishing a connection using these drivers in OS X 10.8, then you can try a test build of DarwiinRemote that should work in the latest version of OS X.
A final couple of driver options for these controllers are GamePad Companion, which is available in the Apple App Store, and USB Overdrive, which has been a long-standing option for configuring USB input devices on the Mac platform. These last tools are useful especially if you have a controller that only has driver support for Windows. When connected to the Mac, the button inputs will be registered, and universal drivers like USB Overdrive should be able to recognize them and allow you to assign global or application-specific settings to them.
The previous release of the USB Overdrive works great in macOS 10.15 Catalina and still supports macOS 10.14 Mojave, macOS 10.13 High Sierra, macOS 10.12 Sierra and 10.11 El Capitan. It works with USB and Bluetooth mice, keyboards, trackballs, trackpads, joysticks, gamepads and gaming devices from almost any vendor.
A Gamepad is narrowly defined as a Device with two thumbsticks, a D-pad, and four face buttons. Additionally, gamepads usually have two shoulder and two trigger buttons. Most gamepads also have two buttons in the middle.
Gamepad support guarantees the correct location and functioning of Controls across platforms and hardware. For example, a PS4 DualShock controller layout should look identical regardless of which platform it is supported on. A gamepad's south face button should always be the lowermost face button.
NOTE: In case you want to use the gamepad for driving mouse input, there is a sample called Gamepad Mouse Cursor you can install from the package manager UI when selecting the Input System package. The sample demonstrates how to set up gamepad input to drive a virtual mouse cursor.
The Gamepad class implements the IDualMotorRumble interface that allows you to control the left and right motor speeds. In most common gamepads, the left motor emits a low-frequency rumble, and the right motor emits a high-frequency rumble.
Xbox controllers are well supported on different Devices. The Input System implements these using the XInputController class, which derives from Gamepad. On Windows and UWP, Unity uses the XInput API to connect to any type of supported XInput controller, including all Xbox One or Xbox 360-compatible controllers. These controllers are represented as an XInputController instance. You can query the XInputController.subType property to get information about the type of controller (for example, a wheel or a gamepad).
XboxOneGampadMacOSWireless: An Xbox One controller connected to a Mac via Bluetooth. Only the latest generation of Xbox One controllers supports Bluetooth. These controllers don't require any additional drivers in this scenario.
2. Install the 360Controller driver by opening the .dmg file that downloads, then follow the installation steps, which consist of clicking "Continue" and "Agree" when prompted. You'll need to restart your computer afterwards.
The Steam Controller automatically emulates an XInput gampad (XBox 360) on Windows, OSX, and Linux and is supported as an XInput gamepad. No direct support of the controller's special features is available at this time.
In addition to the devices shown in the table above, Rewired has an option to attempt to support all unknown gamepads. On the Rewired Input Manager - Settings page, enable the option "Support Unknown Gamepads." More information about how this option works and caveats can be found here.
In order to use these devices with Rewired, you must disable native input in Windows by setting the Primary Input Source to "Unity." Be aware that by disabling native input in Rewired, you lose many important features for other devices as described here. In addition, you cannot use XInput together with Unity input so you lose several important features of XInput (universal XInput device support, vibration, etc.)
The information in the following table shows which controllers have been mapped for the different browsers running on different operating systems. The operating system and browser versions shown are the versions that have been tested. For gamepads that do not use the Standard Gamepad mapping mode, because at any time the browser manufacturer may decide to create a Standard Gamepad mapping for a controller causing the mapping layout to change, extended support cannot be guaranteed for any browser versions but the ones shown.
You need to load a module for your gameport (ns558, emu10k1-gp, cs461x, etc...), a module for your joystick (analog, sidewinder, adi, etc...), and finally the kernel joystick device driver (joydev). You can load the module at boot, or simply modprobe it. The gameport module should load automatically, as this is a dependency of the other modules.
You need to get USB working, and then modprobe your gamepad driver, which is usbhid, as well as joydev. If you use a usb mouse or keyboard, usbhid will be loaded already and you just have to load the joydev module.
Go to -tester.com/. Currently, testing vibration and producing a visual of the gamepad is supported in Chromium but not Firefox. Additionally, as of version 107.0.5304.121-1, Chromium can read Joystick devices but not evdev.
this maps the EV_ABS event with id of 40 and 41 (use xboxdrv with --evdev-debug to see the events registered), which is the normally inaccessible "mouse pointer" on the throttle, to first gamepad joystick and throttles to second joystick, it also clamps the top and lower ranges as they not always register fully.
this maps the 3 joystick axes to gamepad axes and changes the calibration (min value, centre value, max value), dead zones (negative side, positive side, flag to turn smoothing) and finally change of response curve to a more flat one in the middle.
If you want to play games with your gamepad, you might want to disable its joystick control over mouse cursor. To do this, edit /etc/X11/xorg.conf.d/51-joystick.conf (create if it does not exists) so that it looks like this:
Gamepads can be remapped for SDL2 applications using the SDL_GAMECONTROLLERCONFIG environment variable. For each line, it includes the gamepad's GUID, a name, button / axis mappings and a platform. The controller's GUID can be retreived by installing sdl2-jstest-gitAUR and then running sdl2-jstest --list.
While most gamepads, especially USB based ones should just work, some may require (or give better results) if you use alternative drivers. If it does not work the first time, do not give up, and read the following sections thoroughly!
The hid-nintendo kernel HID driver was mainlined in kernel 5.16. If you are using an earlier kernel, you will need to install the DKMS module named hid-nintendo-dkmsAUR. The driver provides support for rumble, battery level, and control of the player and home LEDs. It supports the Nintendo Switch Pro Controller over both USB and Bluetooth in addition to the Joy-Cons.
The hid-nintendo kernel driver does not handle the combination of two Joy-Cons into one virtual input device. That functionality has been left up to userspace. joycond-gitAUR is a userspace daemon that combines two kernel Joy-Con evdev devices into one virtual input device using uinput. An application can use two Joy-Cons as if they are a single controller. When the daemon is active, Switch controllers will be placed in a pseudo pairing mode, and the LEDs will start flashing. Holding the triggers can be used to pair controllers and make them usable. To pair two Joy-Cons together, press one trigger on each Joy-Con.
The hid-nintendo driver currently conflicts with Steam using hidraw to implement its own Pro Controller driver. If you wish to use the Steam implementation, the hid-nintendo driver can be blacklisted. Alternatively if you want to use hid-nintendo with a Steam game directly, Steam can be started without access to hidraw using firejail:
By default, SDL2 maps buttons on Nintendo controllers according to the gamepad's label instead of the button's position. This is enabled by the SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS setting, which defaults to 1 for controllers known to use the Nintendo button layout,[2] and 0 for other controllers.[3] This behavior can be overridden for all controllers by setting the SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS environment variable. For example, if Nintendo's conception of A/B and X/Y is undesirable, set SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS=0. 2ff7e9595c
Comments