https://www.pcgamingwiki.com/w/api.php?action=feedcontributions&user=Gildum&feedformat=atomPCGamingWiki - User contributions [en]2024-03-28T23:03:23ZUser contributionsMediaWiki 1.35.7https://www.pcgamingwiki.com/w/index.php?title=Glossary:Controller&diff=1193812Glossary:Controller2021-12-04T14:54:19Z<p>Gildum: /* JoyToKey (Windows) */</p>
<hr />
<div>{{cleanup|Correct any bad information. Keep things easy, clean and be complete when writing solutions, or I'll eat your donuts and I'll steal your cats}}<br />
{{Guide}}<br />
<br />
'''General information'''<br />
{{mm}} [[Wikipedia:DirectInput|DirectInput (and XInput) on Wikipedia]]<br />
{{mm}} [[Wikipedia:Xbox 360 controller|Xbox 360 Controller (XInput) on Wikipedia]]<br />
<br />
'''Key points'''<br />
{{ii}} '''Controllers''' are an alternative to keyboard and mouse input. Almost all recently released PC games support controllers, although many only support the newer [[#XInput|XInput]] controllers by default.<br />
<br />
==General==<br />
<!-- Yes I get it you hate this, but leave this section the way it is, if you have a program which is supported on two OSs, create a new category here, and list the OSs in the parethesis (Windows, OS X and Linux). --><br />
<!-- The General section is for software available under multiple OSs --><br />
===Controller to Keyboard Input===<br />
{{ii}} These utilities allow keyboard keys to be bound to any controller buttons for games with poor or no controller support. These keys must match with the in-game settings. <br />
<br />
====[[Store:Steam#Steam Input|Steam Input]] (Windows, macOS and Linux)====<br />
{{ii}} Works with non-Steam games if they're added and launched through Steam.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. keyboard/mouse input mapped to a controller, XInput support for DirectInput-only devices, etc).<br />
{{--}} Overrules games own possible controller specific configurations e.g. automatic button prompt change.<br />
{{--}} UI for changing bindings is very much made with controllers in mind.<br />
{{--}} Requires [[Steam]] and the Steam Overlay to function.<br />
{{ii}} When game is blocking 3rd party game overlays you can use [https://github.com/Alia5/GlosSI GlosSI].<br />
<br />
====[https://www.rewasd.com reWASD] (Windows)====<br />
{{ii}} Supported controllers: [[Controller:Xbox Elite Wireless Controller|Xbox Elite 1]]/[[Controller:Xbox Elite Wireless Controller 2|2]], [[Controller:DualSense|DualSense]], [[Controller:Xbox One Controller|Xbox One/S/X]], [[Controller:DualShock 4|DualShock 4]], [[Controller:DualShock 3|DualShock 3]], [[Controller:PlayStation Move|PS3 Navigation]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:GameCube Controller|GameCube]], [[Controller:Switch_Joy-Con|Joy-Con]], Azeron, [[Controller:Steam Controller|Steam]], [[Controller:Nvidia SHIELD Controller|Nvidia SHIELD]].<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. allows you to remap controller to keyboard & mouse, reassign with Xbox Elite paddles and turn your ordinary joystick to Turbo & Macro controller).<br />
{{++}} You can chose which driver (Virtual X360, XOne or DS4) has to be used by connected device. This allows to run PS4 Remote Play or PS Now on Xbox controllers or even on keyboard & mouse.<br />
{{++}} Allows remapping and Keyboard and Mouse keys to keyboard, mouse or controller buttons.<br />
{{++}} Allows use of [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game.<br />
{{++}} Allows use of [[Controller:Steam Controller|Steam Controller]] without Steam.<br />
{{++}} Allows [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo on PC.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Runs on Windows 10, 8.1, 8 and 7.<br />
{{--}} 14-days trial. Full license can cost up to 33 € (Application + Combo + Advanced mapping + 4 Slots + Rapid Fire).<br />
<br />
====[https://github.com/Electronicks/JoyShockMapper JoyShockMapper] (Windows)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} Converts [[Controller:DualShock 4|DualShock 4]], [[Controller:Switch_Joy-Con|JoyCon]], and [[Controller:Switch Pro Controller|Pro Controller]] input into keyboard and mouse events.<br />
{{++}} Innovative "Flick Stick" support - adjusting rotation of a stick to the same rotation in game<ref>[https://www.youtube.com/watch?v=C5L_Px3dFtE Gyro Gaming - Intro to Flick Stick]</ref>.<br />
{{++}} Allows using gyro controls. Community Configs you can find on [http://gyrowiki.jibbsmart.com/games GyroWiki].<br />
<br />
====[http://controllercompanion.com/ Controller Companion] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers. Application comes with an installer for [[Xbox 360 Controller Emulator|Xbox 360 Controller Emulator (x360ce)]] which will allow use Playstation controllers.<br />
{{++}} Using [https://steamcommunity.com/workshop/about/?appid=367670 Steam Workshop] as community configs database.<br />
{{++}} Very user friendly User Interface, bindings are easy to configure.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface.<br />
{{++}} Auto-disable whenever another program, game or Steam Big Picture is running.<br />
{{--}} Not Freeware.<br />
<br />
====[https://github.com/AntiMicro/antimicro/releases AntiMicro] (Windows and Linux)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} [https://github.com/AntiMicroX/antimicroX AntimicroX] is continuation of project for Linux. With version 3.2.0 Windows is now supported<ref>[https://github.com/AntiMicroX/antimicrox/releases/tag/3.2.0 AntiMicroX-3.2.0 - GitHub]</ref>.<br />
{{++}} Allows any mouse and keyboard input to be bound to any controller buttons across different profiles.<br />
{{--}} On Linux, it works only in Xorg environment.<br />
<br />
====[https://joyxoff.com/en/ JoyXoff] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface or Xbox One themed plain virtual keyboard.<br />
{{--}} For Playstation controllers Xbox 360 Controller Emulator (x360ce) is needed.<br />
<br />
====[https://keysticks.net/ Keysticks] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
<br />
====[https://xpadder.com/ Xpadder] (Windows)====<br />
{{ii}} Mouse and keyboard control.<br />
{{--}} Not Freeware.<br />
<br />
====[https://github.com/Snoothy/UCR/ Universal Control Remapper] (Windows)====<br />
{{ii}} Open Source.<br />
<br />
====[https://joytokey.net/en/ JoyToKey] (Windows)====<br />
{{ii}} Mouse and keyboard control.<br />
{{--}} Not Freeware.<br />
<br />
==Windows==<br />
===XInput wrappers===<br />
{{ii}} Generic game controllers are classified as [[Glossary:Controller#DirectInput|DirectInput]] by Windows, these can be used in any games with [[Glossary:Controller#XInput|XInput]] support by using a wrapper.<br />
{{ii}} See [[#Controller to Keyboard Input|Controller to Keyboard Input]] for games with no controller support.<br />
<br />
====[[Glossary:Controller#Steam Input (Windows, macOS and Linux)|Steam Input]]====<br />
{{++}} Very easy to set up if you have Steam installed.<br />
{{++}} With controllers like [[Controller:DualShock 4|DualShock 4]] and [[Controller:Switch Pro Controller|Switch Pro Controller]] allows haptic feedback passtrough as well.<br />
<br />
====[[Glossary:Controller#reWASD (Windows)|reWASD]]====<br />
{{++}} Supports all main controllers, including [[Controller:Xbox Elite Wireless Controller|Xbox Elite]], [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite 2]], [[Controller:Xbox One Controller|Xbox One]], [[Controller:DualShock 3|DualShock 3]], [[Controller:DualShock 4|DualShock 4]], [[Controller:PlayStation Move|PS Navigation]], [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:Switch_Joy-Con|Joy-Con]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Steam Controller|Steam]], [[Controller:GameCube Controller|GameCube]].<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo. Allows use [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game and lets [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Big community [https://www.rewasd.com/community config database] with online preview.<br />
<br />
====[https://github.com/KrossX/Durazno Durazno]====<br />
{{++}} Allows XInput controllers to be customized.<br />
<br />
====[https://community.pcgamingwiki.com/files/file/2034-xinputplus-ver-415/ XInput Plus]====<br />
{{ii}} The [[XBCD|Xbox Controller Driver]] and the buggy Force Feedback Driver aren't required with this program.<br />
{{++}} Features a wide array of advanced options, tweaks, features and some major fixes which other wrappers may lack.<br />
{{++}} Can translate [[Glossary:Controller#DirectInput|DirectInput]] calls into [[Glossary:Controller#XInput|XInput]] and back. It can also be used on older games using '''dinput.dll''' and '''dinput8.dll'''.<br />
<br />
====[[Xbox 360 Controller Emulator#Setting Up|Xbox 360 Controller Emulator]]====<br />
{{++}} Can be used to force DirectInput controllers to be detected as XInput ones.<br />
{{++}} Useful for games which may require multiple players. It also features a wide array of options.<br />
{{--}} Does not work with games using [[Engine:Unity|Unity]] due to implementation differences.<ref>[https://github.com/x360ce/x360ce/issues/48 Issue 48 - x360ce - Hooking does not work with Unity Engine - x360ce/x360ce - GitHub]</ref><br />
<br />
====[https://github.com/csutorasa/XOutput XOutput]====<br />
{{++}} Converts DirectInput to XInput, reads and sends data to virtual XBox 360 controller.<br />
<br />
===Primary device===<br />
{{ii}} Some games only use controller set as primary controller on Windows and ignores the rest. If incorrect or no controllers are set to primary, game doesn't work with used controller.<br />
<br />
{{Fixbox|description=Set your used controller as primary one|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Push '''Advanced'''.<br />
# From dropdown list, locate your used controller and then push '''OK'''. <br />
}}<br />
<br />
===Multiple controller order for older games===<br />
<!-- This method assumes you only have two controllers so it kinda sucks, shouldn't the Xbox 360 Controller Emulator be used instead? --><br />
<!-- Add proper HOTAS instructions, would need an actual Joystick to test this. --><br />
{{Fixbox|description=Instructions|ref=<ref>{{Refcheck|user=Blackbird|date=2016-10-06|comment=Far as I can tell this is for DInput games only.}}</ref>|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Click on the '''Advanced''' button.<br />
# Select the '''Preferred device''' from the drop down menu located on the center.<br />
}}<br />
<br />
===Issues fixed===<br />
====Slow or random movement====<br />
{{ii}} This may be caused by worn out sticks or by low in-game deadzones.<br />
<br />
{{Fixbox|description=Calibrating|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Select the desired controller and click on the '''Properties''' button.<br />
# Select the '''Settings''' tab, then push the '''Calibrate''' button and follow the on screen instructions.<br />
}}<br />
<br />
====Fast movement====<br />
{{ii}} Remove any virtual controllers and use the [[Xbox 360 Controller Emulator]] instead. If the issue persists see below.<br />
{{--}} Common issue on games running on the [[Engine:Unity|Unity]] engine due to the Unity input manager using Raw Input instead of DirectInput.<br />
<br />
{{Fixbox|description=Finding Virtual Controllers|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Locate the name of the virtual controller driver or utility and remove it.<br />
}}<br />
{{Fixbox|description=Rebind Controller Buttons|fix=<br />
{{ii}} For [[Engine:Unity|Unity]] games with no launchers hold {{key|Shift}} to access the launcher as the game starts, then select the '''Input''' tab.<br />
{{ii}} Check the wiki article for the desired game to find a different rebinding solution. Configuration files may hold such settings.<br />
}}<br />
<br />
====SDL2====<br />
{{ii}} Many games use SDL2 to handle controller input. This means as long as the controller is on the list, game should detect, use it and give proper controller placement and prompts. Controllers that aren't on the list, do nothing and has to be manually added. <br />
{{ii}} To see what games use SDL2, refer to game-specific middleware section.<br />
<br />
{{Fixbox|description=Configure controller through Steam Big Picture modes settings|ref={{cn|date=July 2016}}|fix=<br />
{{--}} This method requires Steam to be installed on a machine.<br />
}}<br />
{{Fixbox|description=Use [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool]|ref={{cn|date=July 2016}}|fix=<br />
# Download and open [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool].<br />
# Select desired controller from dropdown menu.<br />
# Select "Create a new mapping" and press buttons accordingly. <br />
#* If some button isn't present on the controller, use the "Skip" button and if some key is registered twice, use the "previous" button. <br />
# Either set the string as enviromental variable, which should make the controller work with every SDL2 game or alternatively copy the string and paste it to {{code|gamecontrollerdb.txt}} found in games install folder. <br />
}}<br />
<br />
==macOS==<br />
===[http://www.orderedbytes.com/controllermate/ ControllerMate]===<br />
{{ii}} Allows customize various devices, including the keyboard and mouse, joystick, gamepads for use with your computer.<br />
{{++}} Programming is accomplished using "building blocks".<br />
{{--}} Unfriendly User Interface.<br />
<br />
===[http://www.usboverdrive.com/ USB Overdrive]===<br />
{{ii}} Device driver that handles any USB mouse, trackball, joystick, gamepad, media keyboard and any Bluetooth mouse and lets you configure them either globally or on a per-application, per-device basis.<br />
{{++}} It supports 64-bit kernels.<br />
<br />
==Linux==<br />
{{ii}} Most distributions come with the ''xpad'' driver already. If you're experiencing problems with using controllers in your game, or want to bind your keyboard to the controller, you may want to try ''[http://xboxdrv.gitlab.io/ xboxdrv]'', or refer to the controller-specific article for more information.<br />
===[https://github.com/jgeumlek/MoltenGamepad#moltengamepad MoltenGamepad]===<br />
{{ii}} Flexible Linux input device translator, geared for gamepads.<br />
{{++}} Create virtual gamepads that almost all games can use. Virtual gamepads are persistent, which fixes the numerous games that break when controllers are disconnected.<br />
{{++}} Flexible generic device driver framework, where only a text file is needed to support input sources that don't need special features. All configuration files are designed to be human-readable and editable.<br />
{{++}} Easy loading and saving of event mappings that can be changed at run time. <br />
{{++}} Specialized userspace driver for Wii remotes that make full use of extension controller hotswapping. Supports a command FIFO or socket for controlling a running instance of MoltenGamepad via scripting. Can handle cases where one event device represents multiple logical controllers (like an arcade stick), or vice versa.<br />
{{--}} Virtual devices can process rumble events, but this is disabled by default.<br />
<br />
==List of controllers==<br />
<!-- This list is ordered by the controller release date. The Logitech and Misc sections have been left alphabetized. --><br />
===8BitDo===<br />
* [[Controller:8BitDo Lite|8BitDo Lite]]<br />
* [[Controller:8BitDo M30|8BitDo M30]]<br />
* [[Controller:8BitDo N30|8BitDo N30]]<br />
* [[Controller:8BitDo N30 NS|8BitDo N30 NS]]<br />
* [[Controller:8BitDo N30 Pro 2|8BitDo N30 Pro 2]]<br />
* [[Controller:8BitDo SN30 Pro|8BitDo SN30 Pro]]<br />
* [[Controller:8BitDo SN30 Pro+|8BitDo SN30 Pro+]]<br />
* [[Controller:8BitDo SN30 Pro G Classic|8BitDo SN30 Pro G Classic]]<br />
* [[Controller:8BitDo SN30 Pro SN|8BitDo SN30 Pro SN]]<br />
* [[Controller:8BitDo SN30 GP|8BitDo SN30 GP]]<br />
* [[Controller:8BitDo Pro 2|8BitDo Pro 2]]<br />
* [[Controller:8BitDo Zero 2|8BitDo Zero 2]]<br />
<br />
===Amazon===<br />
* [[Controller:Amazon Fire Game Controller|Amazon Fire Game Controller]]<br />
* [[Controller:Amazon Fire TV Game Controller|Amazon Fire TV Game Controller]]<br />
* [[Controller:Amazon Luna Controller|Amazon Luna Controller]]<br />
<br />
===Astro===<br />
* [[Controller:Astro C40|Astro C40]]<br />
<br />
===Atari===<br />
* [[Controller:Atari CX40 Joystick|Atari CX40 Joystick]]<br />
* [[Controller:Atari CX78 Controller|Atari CX78 Controller]]<br />
* [[Controller:Atari VCS Wireless Classic Joystick|Atari VCS Wireless Classic Joystick]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Facebook===<br />
* [[Controller:Oculus Touch|Oculus Touch]]<br />
<br />
===Flydigi===<br />
* [[Controller:Flydigi Apex 2|Flydigi Apex 2]]<br />
<br />
===Hori===<br />
* [[Controller:HORI Mini Wired Gamepad|HORI Mini Wired Gamepad]]<br />
* [[Controller:HORI Wireless Pad|HORI Wireless Pad]]<br />
* [[Controller:Pokkén Tournament Pro Pad Controller|HORI Pokemon Tekken DX Pro Pad]]<br />
* [[Controller:HORI Pad Wired Controller|HORI Pad Wired Controller]]<br />
<br />
===Hyperkin===<br />
* [[Controller:Hyperkin Duke Controller|Hyperkin Duke Controller]]<br />
* [[Controller:Hyperkin X91|Hyperkin X91]]<br />
<br />
===Logitech===<br />
* [[Controller:Logitech Dual Action|Logitech Dual Action]]<br />
* [[Controller:Logitech Rumblepad 2|Logitech Rumblepad 2]]<br />
* [[Controller:Logitech Gamepad F310|Logitech Gamepad F310]]<br />
* [[Controller:Logitech Rumble Gamepad F510|Logitech Rumble Gamepad F510]]<br />
* [[Controller:Logitech Wireless Gamepad F710|Logitech Wireless Gamepad F710]]<br />
* [[Controller:Logitech Extreme 3D Pro|Logitech Extreme 3D Pro]]<br />
<br />
===Microsoft===<br />
'''Consoles:'''<br />
* [[Controller:Xbox Controller|Xbox Controller]]<br />
* [[Controller:Xbox 360 Controller|Xbox 360 Controller]]<br />
* [[Controller:Kinect|Kinect]]<br />
* [[Controller:Xbox One Controller|Xbox Wireless Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller|Xbox Elite Wireless Controller]]<br />
* [[Controller:Xbox Adaptive Controller|Xbox Adaptive Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite Wireless Controller 2]]<br />
* [[Controller:Xbox X Controller|Xbox Series X|S Wireless Controller]]<br />
<br />
'''PC:'''<br />
* [[Controller:Microsoft SideWinder Strategic Commander|Microsoft SideWinder Strategic Commander]]<br />
<br />
===Nacon===<br />
* [[Controller:Nacon Revolution Pro Controller|Nacon Revolution Pro Controller]]<br />
* [[Controller:Nacon Revolution Pro Controller 2|Nacon Revolution Pro Controller 2]]<br />
* [[Controller:Nacon Revolution Unlimited Pro|Nacon Revolution Unlimited Pro]]<br />
* [[Controller:Nacon Revolution Pro Controller 3|Nacon Revolution Pro Controller 3]]<br />
<br />
===Nintendo===<br />
'''Consoles:'''<br />
* [[Controller:Nintendo Entertainment System Controller|NES Controller]]<br />
* [[Controller:Super Nintendo Entertainment System Controller|SNES Controller]]<br />
* [[Controller:Virtual Boy Controller|Virtual Boy Controller]]<br />
* [[Controller:Nintendo 64 Controller|Nintendo 64 Controller]]<br />
* [[Controller:GameCube Controller|GameCube Controller]]<br />
* [[Controller:Wii Remote|Wii Remote]]<br />
* [[Controller:Classic Controller|Classic Controller]]<br />
* [[Controller:Classic Controller Pro|Classic Controller Pro]]<br />
* [[Controller:Wii U GamePad|Wii U GamePad]]<br />
* [[Controller:Wii U Pro Controller|Wii U Pro Controller]]<br />
* [[Controller:Switch Joy-Con|Switch Joy-Con]]<br />
* [[Controller:Switch Pro Controller|Switch Pro Controller]]<br />
* [[Controller:NES Classic Controller|NES Classic Controller]]<br />
* [[Controller:SNES Classic Controller|SNES Classic Controller]]<br />
'''Handhelds:'''<br />
* [[Controller:Game Boy|Game Boy]]<br />
* [[Controller:Game Boy Color|Game Boy Color]]<br />
* [[Controller:Game Boy Advance|Game Boy Advance]]<br />
* [[Controller:Nintendo DS|Nintendo DS]]<br />
* [[Controller:Nintendo 3DS|Nintendo 3DS]]<br />
<br />
===Nvidia===<br />
* [[Controller:Nvidia SHIELD Controller|SHIELD Controller (2015)]]<br />
* [[Controller:Nvidia SHIELD Controller (2017)|SHIELD Controller (2017)]]<br />
<br />
===PDP===<br />
* [[Controller:PDP Wired Fight Pad Pro|PDP Wired Fight Pad Pro]]<br />
* [[Controller:PDP Faceoff Deluxe Wired Pro Controller|PDP Faceoff Deluxe Wired Pro Controller]]<br />
* [[Controller:PDP Faceoff Wired Pro Controller|PDP Faceoff Wired Pro Controller]]<br />
<br />
===PowerA===<br />
* [[Controller:PowerA Wired Controller|PowerA Wired Controller]]<br />
* [[Controller:PowerA Spectra|PowerA Spectra]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Razer===<br />
* [[Controller:OUYA|OUYA Controller]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Hydra|Razer Hydra]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Raiju|Razer Raiju]]<br />
* [[Controller:Razer Wolverine|Razer Wolverine]]<br />
* [[Controller:Razer Raiju PS4|Razer Raiju PS4]]<br />
* [[Controller:Razer Raiju Ultimate Edition|Razer Raiju Ultimate Edition]]<br />
* [[Controller:Razer Raiju Tournament Edition|Razer Raiju Tournament Edition]]<br />
* [[Controller:Razer Atrox fight stick|Razer Atrox fight stick]]<br />
<br />
===Retro Fighters===<br />
* [[Controller:Retro Fighters JAB|JAB]]<br />
* [[Controller:Retro Fighters Brawler64|Brawler64]]<br />
* [[Controller:Retro Fighters BrawlerGen|BrawlerGen]]<br />
* [[Controller:Retro Fighters StrikerDC|StrikerDC]]<br />
* [[Controller:Retro Fighters Contender|Contender]]<br />
* [[Controller:Retro Fighters BladeGC|BladeGC]]<br />
<br />
===Sega===<br />
* [[Controller:Sega Master System Controller|Master System Controller]]<br />
* [[Controller:Sega Genesis Controller|Sega Genesis Controller]]<br />
* [[Controller:Sega Saturn Controller|Sega Saturn Controller]]<br />
* [[Controller:Dreamcast Controller|Dreamcast Controller]]<br />
<br />
===Sony===<br />
'''Consoles:'''<br />
* [[Controller:PlayStation Controller|PlayStation Controller]]<br />
* [[Controller:Dual Analog Controller|Dual Analog Controller]]<br />
* [[Controller:DualShock|DualShock]]<br />
* [[Controller:DualShock 2|DualShock 2]]<br />
* [[Controller:Sixaxis|Sixaxis]]<br />
* [[Controller:DualShock 3|DualShock 3]]<br />
* [[Controller:PlayStation Move|PlayStation Move]]<br />
* [[Controller:DualShock 4|DualShock 4]]<br />
* [[Controller:PlayStation Classic Controller|PlayStation Classic Controller]]<br />
* [[Controller:DualSense|DualSense]]<br />
'''Handhelds:'''<br />
* [[Controller:PlayStation Portable|PlayStation Portable]]<br />
* [[Controller:PlayStation Vita|PlayStation Vita]]<br />
<br />
===SteelSeries===<br />
* [[Controller:SteelSeries Stratus XL|SteelSeries Stratus XL]]<br />
* [[Controller:SteelSeries Stratus Duo|SteelSeries Stratus Duo]]<br />
<br />
===Valve===<br />
* [[Controller:Steam Controller|Steam Controller]]<br />
* [[Controller:Steam Link Touch Controller|Steam Link Touch Controller]]<br />
* [[Controller:Valve Index Controller|Valve Index Controller]]<br />
<br />
===Vive===<br />
* [[Controller:Vive Controller|Vive Controller]]<br />
* [[Controller:Vive Tracker|Vive Tracker]]<br />
<br />
===Google===<br />
* [[Controller:Stadia Controller|Stadia Controller]]<br />
<br />
===Miscellaneous===<br />
* [[Controller:Tobii Eye Tracking|Tobii Eye Tracking]]<br />
* [[Controller:Leap Motion Controller|Leap Motion]]<br />
* [[Controller:TT Premium X1 RGB App|TT Premium X1 RGB App (Virtual Game Controller)]]<br />
* [[Controller:Capcom Home Arcade|Capcom Home Arcade]]<br />
* [[Panasonic Q Controller|Panasonic Q Controller]]<br />
* [[Controller:Azeron Classic|Azeron Classic]]<br />
* [[Controller:Azeron Compact|Azeron Compact]]<br />
<br />
==Other information==<br />
===Controller hotplugging===<br />
{{ii}} Controller hotplugging is the ability to switch controllers without restarting a game.<br />
<br />
===DirectInput===<br />
{{ii}} DirectInput is Microsoft's older controller API (used with nearly all games until 2006). XInput controllers operate in DirectInput mode for these games. Logitech's F310 and F710 gamepads have a physical switch which should be set to "D" for these games.<br />
<br />
===XInput===<br />
{{ii}} XInput is Microsoft's API for Xbox 360-compatible controllers such as the official Xbox 360 Controller.<br />
<br />
===Windows.Gaming.Input===<br />
{{ii}} Windows.Gaming.Input is Microsoft's API for Xbox One-compatible controllers such as the official Xbox One Controller primarily built for [[Store:Microsoft Store|Universal Windows Platform]] apps, but can on occasions be found in Win32 games as well.<br />
{{mm}} An example of a new addition only available through the Windows.Gaming.Input API is the use of [[List of games that support Xbox One impulse triggers|the impulse triggers]] of the [[Xbox One Controller]].<br />
<br />
===[[Store:Steam#Steam_Input|Steam Input]]===<br />
{{ii}} Steam Input is feature of the [[Store:Steam|Steam client]] referring to the entire collection of software, hardware, and configuration utilities that Steam uses to interface with games. It acts like a wrapper using the Steam Community Overlay to intercept and manipulate player input before passing it on along to the game.<br />
<br />
{{References}}<br />
<br />
[[Category:Controller]]</div>Gildumhttps://www.pcgamingwiki.com/w/index.php?title=Glossary:Controller&diff=1193809Glossary:Controller2021-12-04T14:53:00Z<p>Gildum: /* General */</p>
<hr />
<div>{{cleanup|Correct any bad information. Keep things easy, clean and be complete when writing solutions, or I'll eat your donuts and I'll steal your cats}}<br />
{{Guide}}<br />
<br />
'''General information'''<br />
{{mm}} [[Wikipedia:DirectInput|DirectInput (and XInput) on Wikipedia]]<br />
{{mm}} [[Wikipedia:Xbox 360 controller|Xbox 360 Controller (XInput) on Wikipedia]]<br />
<br />
'''Key points'''<br />
{{ii}} '''Controllers''' are an alternative to keyboard and mouse input. Almost all recently released PC games support controllers, although many only support the newer [[#XInput|XInput]] controllers by default.<br />
<br />
==General==<br />
<!-- Yes I get it you hate this, but leave this section the way it is, if you have a program which is supported on two OSs, create a new category here, and list the OSs in the parethesis (Windows, OS X and Linux). --><br />
<!-- The General section is for software available under multiple OSs --><br />
===Controller to Keyboard Input===<br />
{{ii}} These utilities allow keyboard keys to be bound to any controller buttons for games with poor or no controller support. These keys must match with the in-game settings. <br />
<br />
====[[Store:Steam#Steam Input|Steam Input]] (Windows, macOS and Linux)====<br />
{{ii}} Works with non-Steam games if they're added and launched through Steam.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. keyboard/mouse input mapped to a controller, XInput support for DirectInput-only devices, etc).<br />
{{--}} Overrules games own possible controller specific configurations e.g. automatic button prompt change.<br />
{{--}} UI for changing bindings is very much made with controllers in mind.<br />
{{--}} Requires [[Steam]] and the Steam Overlay to function.<br />
{{ii}} When game is blocking 3rd party game overlays you can use [https://github.com/Alia5/GlosSI GlosSI].<br />
<br />
====[https://www.rewasd.com reWASD] (Windows)====<br />
{{ii}} Supported controllers: [[Controller:Xbox Elite Wireless Controller|Xbox Elite 1]]/[[Controller:Xbox Elite Wireless Controller 2|2]], [[Controller:DualSense|DualSense]], [[Controller:Xbox One Controller|Xbox One/S/X]], [[Controller:DualShock 4|DualShock 4]], [[Controller:DualShock 3|DualShock 3]], [[Controller:PlayStation Move|PS3 Navigation]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:GameCube Controller|GameCube]], [[Controller:Switch_Joy-Con|Joy-Con]], Azeron, [[Controller:Steam Controller|Steam]], [[Controller:Nvidia SHIELD Controller|Nvidia SHIELD]].<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. allows you to remap controller to keyboard & mouse, reassign with Xbox Elite paddles and turn your ordinary joystick to Turbo & Macro controller).<br />
{{++}} You can chose which driver (Virtual X360, XOne or DS4) has to be used by connected device. This allows to run PS4 Remote Play or PS Now on Xbox controllers or even on keyboard & mouse.<br />
{{++}} Allows remapping and Keyboard and Mouse keys to keyboard, mouse or controller buttons.<br />
{{++}} Allows use of [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game.<br />
{{++}} Allows use of [[Controller:Steam Controller|Steam Controller]] without Steam.<br />
{{++}} Allows [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo on PC.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Runs on Windows 10, 8.1, 8 and 7.<br />
{{--}} 14-days trial. Full license can cost up to 33 € (Application + Combo + Advanced mapping + 4 Slots + Rapid Fire).<br />
<br />
====[https://github.com/Electronicks/JoyShockMapper JoyShockMapper] (Windows)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} Converts [[Controller:DualShock 4|DualShock 4]], [[Controller:Switch_Joy-Con|JoyCon]], and [[Controller:Switch Pro Controller|Pro Controller]] input into keyboard and mouse events.<br />
{{++}} Innovative "Flick Stick" support - adjusting rotation of a stick to the same rotation in game<ref>[https://www.youtube.com/watch?v=C5L_Px3dFtE Gyro Gaming - Intro to Flick Stick]</ref>.<br />
{{++}} Allows using gyro controls. Community Configs you can find on [http://gyrowiki.jibbsmart.com/games GyroWiki].<br />
<br />
====[http://controllercompanion.com/ Controller Companion] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers. Application comes with an installer for [[Xbox 360 Controller Emulator|Xbox 360 Controller Emulator (x360ce)]] which will allow use Playstation controllers.<br />
{{++}} Using [https://steamcommunity.com/workshop/about/?appid=367670 Steam Workshop] as community configs database.<br />
{{++}} Very user friendly User Interface, bindings are easy to configure.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface.<br />
{{++}} Auto-disable whenever another program, game or Steam Big Picture is running.<br />
{{--}} Not Freeware.<br />
<br />
====[https://github.com/AntiMicro/antimicro/releases AntiMicro] (Windows and Linux)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} [https://github.com/AntiMicroX/antimicroX AntimicroX] is continuation of project for Linux. With version 3.2.0 Windows is now supported<ref>[https://github.com/AntiMicroX/antimicrox/releases/tag/3.2.0 AntiMicroX-3.2.0 - GitHub]</ref>.<br />
{{++}} Allows any mouse and keyboard input to be bound to any controller buttons across different profiles.<br />
{{--}} On Linux, it works only in Xorg environment.<br />
<br />
====[https://joyxoff.com/en/ JoyXoff] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface or Xbox One themed plain virtual keyboard.<br />
{{--}} For Playstation controllers Xbox 360 Controller Emulator (x360ce) is needed.<br />
<br />
====[https://keysticks.net/ Keysticks] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
<br />
====[https://xpadder.com/ Xpadder] (Windows)====<br />
{{ii}} Mouse and keyboard control.<br />
{{--}} Not Freeware.<br />
<br />
====[https://github.com/Snoothy/UCR/ Universal Control Remapper] (Windows)====<br />
{{ii}} Open Source.<br />
<br />
====[https://joytokey.net/ JoyToKey] (Windows)====<br />
{{ii}} Mouse and keyboard control.<br />
{{--}} Not Freeware.<br />
<br />
==Windows==<br />
===XInput wrappers===<br />
{{ii}} Generic game controllers are classified as [[Glossary:Controller#DirectInput|DirectInput]] by Windows, these can be used in any games with [[Glossary:Controller#XInput|XInput]] support by using a wrapper.<br />
{{ii}} See [[#Controller to Keyboard Input|Controller to Keyboard Input]] for games with no controller support.<br />
<br />
====[[Glossary:Controller#Steam Input (Windows, macOS and Linux)|Steam Input]]====<br />
{{++}} Very easy to set up if you have Steam installed.<br />
{{++}} With controllers like [[Controller:DualShock 4|DualShock 4]] and [[Controller:Switch Pro Controller|Switch Pro Controller]] allows haptic feedback passtrough as well.<br />
<br />
====[[Glossary:Controller#reWASD (Windows)|reWASD]]====<br />
{{++}} Supports all main controllers, including [[Controller:Xbox Elite Wireless Controller|Xbox Elite]], [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite 2]], [[Controller:Xbox One Controller|Xbox One]], [[Controller:DualShock 3|DualShock 3]], [[Controller:DualShock 4|DualShock 4]], [[Controller:PlayStation Move|PS Navigation]], [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:Switch_Joy-Con|Joy-Con]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Steam Controller|Steam]], [[Controller:GameCube Controller|GameCube]].<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo. Allows use [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game and lets [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Big community [https://www.rewasd.com/community config database] with online preview.<br />
<br />
====[https://github.com/KrossX/Durazno Durazno]====<br />
{{++}} Allows XInput controllers to be customized.<br />
<br />
====[https://community.pcgamingwiki.com/files/file/2034-xinputplus-ver-415/ XInput Plus]====<br />
{{ii}} The [[XBCD|Xbox Controller Driver]] and the buggy Force Feedback Driver aren't required with this program.<br />
{{++}} Features a wide array of advanced options, tweaks, features and some major fixes which other wrappers may lack.<br />
{{++}} Can translate [[Glossary:Controller#DirectInput|DirectInput]] calls into [[Glossary:Controller#XInput|XInput]] and back. It can also be used on older games using '''dinput.dll''' and '''dinput8.dll'''.<br />
<br />
====[[Xbox 360 Controller Emulator#Setting Up|Xbox 360 Controller Emulator]]====<br />
{{++}} Can be used to force DirectInput controllers to be detected as XInput ones.<br />
{{++}} Useful for games which may require multiple players. It also features a wide array of options.<br />
{{--}} Does not work with games using [[Engine:Unity|Unity]] due to implementation differences.<ref>[https://github.com/x360ce/x360ce/issues/48 Issue 48 - x360ce - Hooking does not work with Unity Engine - x360ce/x360ce - GitHub]</ref><br />
<br />
====[https://github.com/csutorasa/XOutput XOutput]====<br />
{{++}} Converts DirectInput to XInput, reads and sends data to virtual XBox 360 controller.<br />
<br />
===Primary device===<br />
{{ii}} Some games only use controller set as primary controller on Windows and ignores the rest. If incorrect or no controllers are set to primary, game doesn't work with used controller.<br />
<br />
{{Fixbox|description=Set your used controller as primary one|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Push '''Advanced'''.<br />
# From dropdown list, locate your used controller and then push '''OK'''. <br />
}}<br />
<br />
===Multiple controller order for older games===<br />
<!-- This method assumes you only have two controllers so it kinda sucks, shouldn't the Xbox 360 Controller Emulator be used instead? --><br />
<!-- Add proper HOTAS instructions, would need an actual Joystick to test this. --><br />
{{Fixbox|description=Instructions|ref=<ref>{{Refcheck|user=Blackbird|date=2016-10-06|comment=Far as I can tell this is for DInput games only.}}</ref>|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Click on the '''Advanced''' button.<br />
# Select the '''Preferred device''' from the drop down menu located on the center.<br />
}}<br />
<br />
===Issues fixed===<br />
====Slow or random movement====<br />
{{ii}} This may be caused by worn out sticks or by low in-game deadzones.<br />
<br />
{{Fixbox|description=Calibrating|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Select the desired controller and click on the '''Properties''' button.<br />
# Select the '''Settings''' tab, then push the '''Calibrate''' button and follow the on screen instructions.<br />
}}<br />
<br />
====Fast movement====<br />
{{ii}} Remove any virtual controllers and use the [[Xbox 360 Controller Emulator]] instead. If the issue persists see below.<br />
{{--}} Common issue on games running on the [[Engine:Unity|Unity]] engine due to the Unity input manager using Raw Input instead of DirectInput.<br />
<br />
{{Fixbox|description=Finding Virtual Controllers|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Locate the name of the virtual controller driver or utility and remove it.<br />
}}<br />
{{Fixbox|description=Rebind Controller Buttons|fix=<br />
{{ii}} For [[Engine:Unity|Unity]] games with no launchers hold {{key|Shift}} to access the launcher as the game starts, then select the '''Input''' tab.<br />
{{ii}} Check the wiki article for the desired game to find a different rebinding solution. Configuration files may hold such settings.<br />
}}<br />
<br />
====SDL2====<br />
{{ii}} Many games use SDL2 to handle controller input. This means as long as the controller is on the list, game should detect, use it and give proper controller placement and prompts. Controllers that aren't on the list, do nothing and has to be manually added. <br />
{{ii}} To see what games use SDL2, refer to game-specific middleware section.<br />
<br />
{{Fixbox|description=Configure controller through Steam Big Picture modes settings|ref={{cn|date=July 2016}}|fix=<br />
{{--}} This method requires Steam to be installed on a machine.<br />
}}<br />
{{Fixbox|description=Use [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool]|ref={{cn|date=July 2016}}|fix=<br />
# Download and open [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool].<br />
# Select desired controller from dropdown menu.<br />
# Select "Create a new mapping" and press buttons accordingly. <br />
#* If some button isn't present on the controller, use the "Skip" button and if some key is registered twice, use the "previous" button. <br />
# Either set the string as enviromental variable, which should make the controller work with every SDL2 game or alternatively copy the string and paste it to {{code|gamecontrollerdb.txt}} found in games install folder. <br />
}}<br />
<br />
==macOS==<br />
===[http://www.orderedbytes.com/controllermate/ ControllerMate]===<br />
{{ii}} Allows customize various devices, including the keyboard and mouse, joystick, gamepads for use with your computer.<br />
{{++}} Programming is accomplished using "building blocks".<br />
{{--}} Unfriendly User Interface.<br />
<br />
===[http://www.usboverdrive.com/ USB Overdrive]===<br />
{{ii}} Device driver that handles any USB mouse, trackball, joystick, gamepad, media keyboard and any Bluetooth mouse and lets you configure them either globally or on a per-application, per-device basis.<br />
{{++}} It supports 64-bit kernels.<br />
<br />
==Linux==<br />
{{ii}} Most distributions come with the ''xpad'' driver already. If you're experiencing problems with using controllers in your game, or want to bind your keyboard to the controller, you may want to try ''[http://xboxdrv.gitlab.io/ xboxdrv]'', or refer to the controller-specific article for more information.<br />
===[https://github.com/jgeumlek/MoltenGamepad#moltengamepad MoltenGamepad]===<br />
{{ii}} Flexible Linux input device translator, geared for gamepads.<br />
{{++}} Create virtual gamepads that almost all games can use. Virtual gamepads are persistent, which fixes the numerous games that break when controllers are disconnected.<br />
{{++}} Flexible generic device driver framework, where only a text file is needed to support input sources that don't need special features. All configuration files are designed to be human-readable and editable.<br />
{{++}} Easy loading and saving of event mappings that can be changed at run time. <br />
{{++}} Specialized userspace driver for Wii remotes that make full use of extension controller hotswapping. Supports a command FIFO or socket for controlling a running instance of MoltenGamepad via scripting. Can handle cases where one event device represents multiple logical controllers (like an arcade stick), or vice versa.<br />
{{--}} Virtual devices can process rumble events, but this is disabled by default.<br />
<br />
==List of controllers==<br />
<!-- This list is ordered by the controller release date. The Logitech and Misc sections have been left alphabetized. --><br />
===8BitDo===<br />
* [[Controller:8BitDo Lite|8BitDo Lite]]<br />
* [[Controller:8BitDo M30|8BitDo M30]]<br />
* [[Controller:8BitDo N30|8BitDo N30]]<br />
* [[Controller:8BitDo N30 NS|8BitDo N30 NS]]<br />
* [[Controller:8BitDo N30 Pro 2|8BitDo N30 Pro 2]]<br />
* [[Controller:8BitDo SN30 Pro|8BitDo SN30 Pro]]<br />
* [[Controller:8BitDo SN30 Pro+|8BitDo SN30 Pro+]]<br />
* [[Controller:8BitDo SN30 Pro G Classic|8BitDo SN30 Pro G Classic]]<br />
* [[Controller:8BitDo SN30 Pro SN|8BitDo SN30 Pro SN]]<br />
* [[Controller:8BitDo SN30 GP|8BitDo SN30 GP]]<br />
* [[Controller:8BitDo Pro 2|8BitDo Pro 2]]<br />
* [[Controller:8BitDo Zero 2|8BitDo Zero 2]]<br />
<br />
===Amazon===<br />
* [[Controller:Amazon Fire Game Controller|Amazon Fire Game Controller]]<br />
* [[Controller:Amazon Fire TV Game Controller|Amazon Fire TV Game Controller]]<br />
* [[Controller:Amazon Luna Controller|Amazon Luna Controller]]<br />
<br />
===Astro===<br />
* [[Controller:Astro C40|Astro C40]]<br />
<br />
===Atari===<br />
* [[Controller:Atari CX40 Joystick|Atari CX40 Joystick]]<br />
* [[Controller:Atari CX78 Controller|Atari CX78 Controller]]<br />
* [[Controller:Atari VCS Wireless Classic Joystick|Atari VCS Wireless Classic Joystick]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Facebook===<br />
* [[Controller:Oculus Touch|Oculus Touch]]<br />
<br />
===Flydigi===<br />
* [[Controller:Flydigi Apex 2|Flydigi Apex 2]]<br />
<br />
===Hori===<br />
* [[Controller:HORI Mini Wired Gamepad|HORI Mini Wired Gamepad]]<br />
* [[Controller:HORI Wireless Pad|HORI Wireless Pad]]<br />
* [[Controller:Pokkén Tournament Pro Pad Controller|HORI Pokemon Tekken DX Pro Pad]]<br />
* [[Controller:HORI Pad Wired Controller|HORI Pad Wired Controller]]<br />
<br />
===Hyperkin===<br />
* [[Controller:Hyperkin Duke Controller|Hyperkin Duke Controller]]<br />
* [[Controller:Hyperkin X91|Hyperkin X91]]<br />
<br />
===Logitech===<br />
* [[Controller:Logitech Dual Action|Logitech Dual Action]]<br />
* [[Controller:Logitech Rumblepad 2|Logitech Rumblepad 2]]<br />
* [[Controller:Logitech Gamepad F310|Logitech Gamepad F310]]<br />
* [[Controller:Logitech Rumble Gamepad F510|Logitech Rumble Gamepad F510]]<br />
* [[Controller:Logitech Wireless Gamepad F710|Logitech Wireless Gamepad F710]]<br />
* [[Controller:Logitech Extreme 3D Pro|Logitech Extreme 3D Pro]]<br />
<br />
===Microsoft===<br />
'''Consoles:'''<br />
* [[Controller:Xbox Controller|Xbox Controller]]<br />
* [[Controller:Xbox 360 Controller|Xbox 360 Controller]]<br />
* [[Controller:Kinect|Kinect]]<br />
* [[Controller:Xbox One Controller|Xbox Wireless Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller|Xbox Elite Wireless Controller]]<br />
* [[Controller:Xbox Adaptive Controller|Xbox Adaptive Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite Wireless Controller 2]]<br />
* [[Controller:Xbox X Controller|Xbox Series X|S Wireless Controller]]<br />
<br />
'''PC:'''<br />
* [[Controller:Microsoft SideWinder Strategic Commander|Microsoft SideWinder Strategic Commander]]<br />
<br />
===Nacon===<br />
* [[Controller:Nacon Revolution Pro Controller|Nacon Revolution Pro Controller]]<br />
* [[Controller:Nacon Revolution Pro Controller 2|Nacon Revolution Pro Controller 2]]<br />
* [[Controller:Nacon Revolution Unlimited Pro|Nacon Revolution Unlimited Pro]]<br />
* [[Controller:Nacon Revolution Pro Controller 3|Nacon Revolution Pro Controller 3]]<br />
<br />
===Nintendo===<br />
'''Consoles:'''<br />
* [[Controller:Nintendo Entertainment System Controller|NES Controller]]<br />
* [[Controller:Super Nintendo Entertainment System Controller|SNES Controller]]<br />
* [[Controller:Virtual Boy Controller|Virtual Boy Controller]]<br />
* [[Controller:Nintendo 64 Controller|Nintendo 64 Controller]]<br />
* [[Controller:GameCube Controller|GameCube Controller]]<br />
* [[Controller:Wii Remote|Wii Remote]]<br />
* [[Controller:Classic Controller|Classic Controller]]<br />
* [[Controller:Classic Controller Pro|Classic Controller Pro]]<br />
* [[Controller:Wii U GamePad|Wii U GamePad]]<br />
* [[Controller:Wii U Pro Controller|Wii U Pro Controller]]<br />
* [[Controller:Switch Joy-Con|Switch Joy-Con]]<br />
* [[Controller:Switch Pro Controller|Switch Pro Controller]]<br />
* [[Controller:NES Classic Controller|NES Classic Controller]]<br />
* [[Controller:SNES Classic Controller|SNES Classic Controller]]<br />
'''Handhelds:'''<br />
* [[Controller:Game Boy|Game Boy]]<br />
* [[Controller:Game Boy Color|Game Boy Color]]<br />
* [[Controller:Game Boy Advance|Game Boy Advance]]<br />
* [[Controller:Nintendo DS|Nintendo DS]]<br />
* [[Controller:Nintendo 3DS|Nintendo 3DS]]<br />
<br />
===Nvidia===<br />
* [[Controller:Nvidia SHIELD Controller|SHIELD Controller (2015)]]<br />
* [[Controller:Nvidia SHIELD Controller (2017)|SHIELD Controller (2017)]]<br />
<br />
===PDP===<br />
* [[Controller:PDP Wired Fight Pad Pro|PDP Wired Fight Pad Pro]]<br />
* [[Controller:PDP Faceoff Deluxe Wired Pro Controller|PDP Faceoff Deluxe Wired Pro Controller]]<br />
* [[Controller:PDP Faceoff Wired Pro Controller|PDP Faceoff Wired Pro Controller]]<br />
<br />
===PowerA===<br />
* [[Controller:PowerA Wired Controller|PowerA Wired Controller]]<br />
* [[Controller:PowerA Spectra|PowerA Spectra]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Razer===<br />
* [[Controller:OUYA|OUYA Controller]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Hydra|Razer Hydra]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Raiju|Razer Raiju]]<br />
* [[Controller:Razer Wolverine|Razer Wolverine]]<br />
* [[Controller:Razer Raiju PS4|Razer Raiju PS4]]<br />
* [[Controller:Razer Raiju Ultimate Edition|Razer Raiju Ultimate Edition]]<br />
* [[Controller:Razer Raiju Tournament Edition|Razer Raiju Tournament Edition]]<br />
* [[Controller:Razer Atrox fight stick|Razer Atrox fight stick]]<br />
<br />
===Retro Fighters===<br />
* [[Controller:Retro Fighters JAB|JAB]]<br />
* [[Controller:Retro Fighters Brawler64|Brawler64]]<br />
* [[Controller:Retro Fighters BrawlerGen|BrawlerGen]]<br />
* [[Controller:Retro Fighters StrikerDC|StrikerDC]]<br />
* [[Controller:Retro Fighters Contender|Contender]]<br />
* [[Controller:Retro Fighters BladeGC|BladeGC]]<br />
<br />
===Sega===<br />
* [[Controller:Sega Master System Controller|Master System Controller]]<br />
* [[Controller:Sega Genesis Controller|Sega Genesis Controller]]<br />
* [[Controller:Sega Saturn Controller|Sega Saturn Controller]]<br />
* [[Controller:Dreamcast Controller|Dreamcast Controller]]<br />
<br />
===Sony===<br />
'''Consoles:'''<br />
* [[Controller:PlayStation Controller|PlayStation Controller]]<br />
* [[Controller:Dual Analog Controller|Dual Analog Controller]]<br />
* [[Controller:DualShock|DualShock]]<br />
* [[Controller:DualShock 2|DualShock 2]]<br />
* [[Controller:Sixaxis|Sixaxis]]<br />
* [[Controller:DualShock 3|DualShock 3]]<br />
* [[Controller:PlayStation Move|PlayStation Move]]<br />
* [[Controller:DualShock 4|DualShock 4]]<br />
* [[Controller:PlayStation Classic Controller|PlayStation Classic Controller]]<br />
* [[Controller:DualSense|DualSense]]<br />
'''Handhelds:'''<br />
* [[Controller:PlayStation Portable|PlayStation Portable]]<br />
* [[Controller:PlayStation Vita|PlayStation Vita]]<br />
<br />
===SteelSeries===<br />
* [[Controller:SteelSeries Stratus XL|SteelSeries Stratus XL]]<br />
* [[Controller:SteelSeries Stratus Duo|SteelSeries Stratus Duo]]<br />
<br />
===Valve===<br />
* [[Controller:Steam Controller|Steam Controller]]<br />
* [[Controller:Steam Link Touch Controller|Steam Link Touch Controller]]<br />
* [[Controller:Valve Index Controller|Valve Index Controller]]<br />
<br />
===Vive===<br />
* [[Controller:Vive Controller|Vive Controller]]<br />
* [[Controller:Vive Tracker|Vive Tracker]]<br />
<br />
===Google===<br />
* [[Controller:Stadia Controller|Stadia Controller]]<br />
<br />
===Miscellaneous===<br />
* [[Controller:Tobii Eye Tracking|Tobii Eye Tracking]]<br />
* [[Controller:Leap Motion Controller|Leap Motion]]<br />
* [[Controller:TT Premium X1 RGB App|TT Premium X1 RGB App (Virtual Game Controller)]]<br />
* [[Controller:Capcom Home Arcade|Capcom Home Arcade]]<br />
* [[Panasonic Q Controller|Panasonic Q Controller]]<br />
* [[Controller:Azeron Classic|Azeron Classic]]<br />
* [[Controller:Azeron Compact|Azeron Compact]]<br />
<br />
==Other information==<br />
===Controller hotplugging===<br />
{{ii}} Controller hotplugging is the ability to switch controllers without restarting a game.<br />
<br />
===DirectInput===<br />
{{ii}} DirectInput is Microsoft's older controller API (used with nearly all games until 2006). XInput controllers operate in DirectInput mode for these games. Logitech's F310 and F710 gamepads have a physical switch which should be set to "D" for these games.<br />
<br />
===XInput===<br />
{{ii}} XInput is Microsoft's API for Xbox 360-compatible controllers such as the official Xbox 360 Controller.<br />
<br />
===Windows.Gaming.Input===<br />
{{ii}} Windows.Gaming.Input is Microsoft's API for Xbox One-compatible controllers such as the official Xbox One Controller primarily built for [[Store:Microsoft Store|Universal Windows Platform]] apps, but can on occasions be found in Win32 games as well.<br />
{{mm}} An example of a new addition only available through the Windows.Gaming.Input API is the use of [[List of games that support Xbox One impulse triggers|the impulse triggers]] of the [[Xbox One Controller]].<br />
<br />
===[[Store:Steam#Steam_Input|Steam Input]]===<br />
{{ii}} Steam Input is feature of the [[Store:Steam|Steam client]] referring to the entire collection of software, hardware, and configuration utilities that Steam uses to interface with games. It acts like a wrapper using the Steam Community Overlay to intercept and manipulate player input before passing it on along to the game.<br />
<br />
{{References}}<br />
<br />
[[Category:Controller]]</div>Gildumhttps://www.pcgamingwiki.com/w/index.php?title=Glossary:Controller&diff=1193804Glossary:Controller2021-12-04T14:45:45Z<p>Gildum: /* General */</p>
<hr />
<div>{{cleanup|Correct any bad information. Keep things easy, clean and be complete when writing solutions, or I'll eat your donuts and I'll steal your cats}}<br />
{{Guide}}<br />
<br />
'''General information'''<br />
{{mm}} [[Wikipedia:DirectInput|DirectInput (and XInput) on Wikipedia]]<br />
{{mm}} [[Wikipedia:Xbox 360 controller|Xbox 360 Controller (XInput) on Wikipedia]]<br />
<br />
'''Key points'''<br />
{{ii}} '''Controllers''' are an alternative to keyboard and mouse input. Almost all recently released PC games support controllers, although many only support the newer [[#XInput|XInput]] controllers by default.<br />
<br />
==General==<br />
<!-- Yes I get it you hate this, but leave this section the way it is, if you have a program which is supported on two OSs, create a new category here, and list the OSs in the parethesis (Windows, OS X and Linux). --><br />
<!-- The General section is for software available under multiple OSs --><br />
===Controller to Keyboard Input===<br />
{{ii}} These utilities allow keyboard keys to be bound to any controller buttons for games with poor or no controller support. These keys must match with the in-game settings. <br />
<br />
====[[Store:Steam#Steam Input|Steam Input]] (Windows, macOS and Linux)====<br />
{{ii}} Works with non-Steam games if they're added and launched through Steam.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. keyboard/mouse input mapped to a controller, XInput support for DirectInput-only devices, etc).<br />
{{--}} Overrules games own possible controller specific configurations e.g. automatic button prompt change.<br />
{{--}} UI for changing bindings is very much made with controllers in mind.<br />
{{--}} Requires [[Steam]] and the Steam Overlay to function.<br />
{{ii}} When game is blocking 3rd party game overlays you can use [https://github.com/Alia5/GlosSI GlosSI].<br />
<br />
====[https://www.rewasd.com reWASD] (Windows)====<br />
{{ii}} Supported controllers: [[Controller:Xbox Elite Wireless Controller|Xbox Elite 1]]/[[Controller:Xbox Elite Wireless Controller 2|2]], [[Controller:DualSense|DualSense]], [[Controller:Xbox One Controller|Xbox One/S/X]], [[Controller:DualShock 4|DualShock 4]], [[Controller:DualShock 3|DualShock 3]], [[Controller:PlayStation Move|PS3 Navigation]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:GameCube Controller|GameCube]], [[Controller:Switch_Joy-Con|Joy-Con]], Azeron, [[Controller:Steam Controller|Steam]], [[Controller:Nvidia SHIELD Controller|Nvidia SHIELD]].<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. allows you to remap controller to keyboard & mouse, reassign with Xbox Elite paddles and turn your ordinary joystick to Turbo & Macro controller).<br />
{{++}} You can chose which driver (Virtual X360, XOne or DS4) has to be used by connected device. This allows to run PS4 Remote Play or PS Now on Xbox controllers or even on keyboard & mouse.<br />
{{++}} Allows remapping and Keyboard and Mouse keys to keyboard, mouse or controller buttons.<br />
{{++}} Allows use of [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game.<br />
{{++}} Allows use of [[Controller:Steam Controller|Steam Controller]] without Steam.<br />
{{++}} Allows [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo on PC.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Runs on Windows 10, 8.1, 8 and 7.<br />
{{--}} 14-days trial. Full license can cost up to 33 € (Application + Combo + Advanced mapping + 4 Slots + Rapid Fire).<br />
<br />
====[https://github.com/Electronicks/JoyShockMapper JoyShockMapper] (Windows)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} Converts [[Controller:DualShock 4|DualShock 4]], [[Controller:Switch_Joy-Con|JoyCon]], and [[Controller:Switch Pro Controller|Pro Controller]] input into keyboard and mouse events.<br />
{{++}} Innovative "Flick Stick" support - adjusting rotation of a stick to the same rotation in game<ref>[https://www.youtube.com/watch?v=C5L_Px3dFtE Gyro Gaming - Intro to Flick Stick]</ref>.<br />
{{++}} Allows using gyro controls. Community Configs you can find on [http://gyrowiki.jibbsmart.com/games GyroWiki].<br />
<br />
====[http://controllercompanion.com/ Controller Companion] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers. Application comes with an installer for [[Xbox 360 Controller Emulator|Xbox 360 Controller Emulator (x360ce)]] which will allow use Playstation controllers.<br />
{{++}} Using [https://steamcommunity.com/workshop/about/?appid=367670 Steam Workshop] as community configs database.<br />
{{++}} Very user friendly User Interface, bindings are easy to configure.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface.<br />
{{++}} Auto-disable whenever another program, game or Steam Big Picture is running.<br />
{{--}} Not Freeware.<br />
<br />
====[https://github.com/AntiMicro/antimicro/releases AntiMicro] (Windows and Linux)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} [https://github.com/AntiMicroX/antimicroX AntimicroX] is continuation of project for Linux. With version 3.2.0 Windows is now supported<ref>[https://github.com/AntiMicroX/antimicrox/releases/tag/3.2.0 AntiMicroX-3.2.0 - GitHub]</ref>.<br />
{{++}} Allows any mouse and keyboard input to be bound to any controller buttons across different profiles.<br />
{{--}} On Linux, it works only in Xorg environment.<br />
<br />
====[https://joyxoff.com/en/ JoyXoff] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface or Xbox One themed plain virtual keyboard.<br />
{{--}} For Playstation controllers Xbox 360 Controller Emulator (x360ce) is needed.<br />
<br />
====[https://keysticks.net/ Keysticks] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
<br />
====[https://xpadder.com/ Xpadder] (Windows)====<br />
{{ii}} Mouse and keyboard control.<br />
{{--}} Not Freeware.<br />
<br />
====[https://github.com/Snoothy/UCR/ Universal Control Remapper] (Windows)====<br />
{{ii}} Open Source.<br />
<br />
==Windows==<br />
===XInput wrappers===<br />
{{ii}} Generic game controllers are classified as [[Glossary:Controller#DirectInput|DirectInput]] by Windows, these can be used in any games with [[Glossary:Controller#XInput|XInput]] support by using a wrapper.<br />
{{ii}} See [[#Controller to Keyboard Input|Controller to Keyboard Input]] for games with no controller support.<br />
<br />
====[[Glossary:Controller#Steam Input (Windows, macOS and Linux)|Steam Input]]====<br />
{{++}} Very easy to set up if you have Steam installed.<br />
{{++}} With controllers like [[Controller:DualShock 4|DualShock 4]] and [[Controller:Switch Pro Controller|Switch Pro Controller]] allows haptic feedback passtrough as well.<br />
<br />
====[[Glossary:Controller#reWASD (Windows)|reWASD]]====<br />
{{++}} Supports all main controllers, including [[Controller:Xbox Elite Wireless Controller|Xbox Elite]], [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite 2]], [[Controller:Xbox One Controller|Xbox One]], [[Controller:DualShock 3|DualShock 3]], [[Controller:DualShock 4|DualShock 4]], [[Controller:PlayStation Move|PS Navigation]], [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:Switch_Joy-Con|Joy-Con]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Steam Controller|Steam]], [[Controller:GameCube Controller|GameCube]].<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo. Allows use [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game and lets [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Big community [https://www.rewasd.com/community config database] with online preview.<br />
<br />
====[https://github.com/KrossX/Durazno Durazno]====<br />
{{++}} Allows XInput controllers to be customized.<br />
<br />
====[https://community.pcgamingwiki.com/files/file/2034-xinputplus-ver-415/ XInput Plus]====<br />
{{ii}} The [[XBCD|Xbox Controller Driver]] and the buggy Force Feedback Driver aren't required with this program.<br />
{{++}} Features a wide array of advanced options, tweaks, features and some major fixes which other wrappers may lack.<br />
{{++}} Can translate [[Glossary:Controller#DirectInput|DirectInput]] calls into [[Glossary:Controller#XInput|XInput]] and back. It can also be used on older games using '''dinput.dll''' and '''dinput8.dll'''.<br />
<br />
====[[Xbox 360 Controller Emulator#Setting Up|Xbox 360 Controller Emulator]]====<br />
{{++}} Can be used to force DirectInput controllers to be detected as XInput ones.<br />
{{++}} Useful for games which may require multiple players. It also features a wide array of options.<br />
{{--}} Does not work with games using [[Engine:Unity|Unity]] due to implementation differences.<ref>[https://github.com/x360ce/x360ce/issues/48 Issue 48 - x360ce - Hooking does not work with Unity Engine - x360ce/x360ce - GitHub]</ref><br />
<br />
====[https://github.com/csutorasa/XOutput XOutput]====<br />
{{++}} Converts DirectInput to XInput, reads and sends data to virtual XBox 360 controller.<br />
<br />
===Primary device===<br />
{{ii}} Some games only use controller set as primary controller on Windows and ignores the rest. If incorrect or no controllers are set to primary, game doesn't work with used controller.<br />
<br />
{{Fixbox|description=Set your used controller as primary one|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Push '''Advanced'''.<br />
# From dropdown list, locate your used controller and then push '''OK'''. <br />
}}<br />
<br />
===Multiple controller order for older games===<br />
<!-- This method assumes you only have two controllers so it kinda sucks, shouldn't the Xbox 360 Controller Emulator be used instead? --><br />
<!-- Add proper HOTAS instructions, would need an actual Joystick to test this. --><br />
{{Fixbox|description=Instructions|ref=<ref>{{Refcheck|user=Blackbird|date=2016-10-06|comment=Far as I can tell this is for DInput games only.}}</ref>|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Click on the '''Advanced''' button.<br />
# Select the '''Preferred device''' from the drop down menu located on the center.<br />
}}<br />
<br />
===Issues fixed===<br />
====Slow or random movement====<br />
{{ii}} This may be caused by worn out sticks or by low in-game deadzones.<br />
<br />
{{Fixbox|description=Calibrating|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Select the desired controller and click on the '''Properties''' button.<br />
# Select the '''Settings''' tab, then push the '''Calibrate''' button and follow the on screen instructions.<br />
}}<br />
<br />
====Fast movement====<br />
{{ii}} Remove any virtual controllers and use the [[Xbox 360 Controller Emulator]] instead. If the issue persists see below.<br />
{{--}} Common issue on games running on the [[Engine:Unity|Unity]] engine due to the Unity input manager using Raw Input instead of DirectInput.<br />
<br />
{{Fixbox|description=Finding Virtual Controllers|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Locate the name of the virtual controller driver or utility and remove it.<br />
}}<br />
{{Fixbox|description=Rebind Controller Buttons|fix=<br />
{{ii}} For [[Engine:Unity|Unity]] games with no launchers hold {{key|Shift}} to access the launcher as the game starts, then select the '''Input''' tab.<br />
{{ii}} Check the wiki article for the desired game to find a different rebinding solution. Configuration files may hold such settings.<br />
}}<br />
<br />
====SDL2====<br />
{{ii}} Many games use SDL2 to handle controller input. This means as long as the controller is on the list, game should detect, use it and give proper controller placement and prompts. Controllers that aren't on the list, do nothing and has to be manually added. <br />
{{ii}} To see what games use SDL2, refer to game-specific middleware section.<br />
<br />
{{Fixbox|description=Configure controller through Steam Big Picture modes settings|ref={{cn|date=July 2016}}|fix=<br />
{{--}} This method requires Steam to be installed on a machine.<br />
}}<br />
{{Fixbox|description=Use [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool]|ref={{cn|date=July 2016}}|fix=<br />
# Download and open [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool].<br />
# Select desired controller from dropdown menu.<br />
# Select "Create a new mapping" and press buttons accordingly. <br />
#* If some button isn't present on the controller, use the "Skip" button and if some key is registered twice, use the "previous" button. <br />
# Either set the string as enviromental variable, which should make the controller work with every SDL2 game or alternatively copy the string and paste it to {{code|gamecontrollerdb.txt}} found in games install folder. <br />
}}<br />
<br />
==macOS==<br />
===[http://www.orderedbytes.com/controllermate/ ControllerMate]===<br />
{{ii}} Allows customize various devices, including the keyboard and mouse, joystick, gamepads for use with your computer.<br />
{{++}} Programming is accomplished using "building blocks".<br />
{{--}} Unfriendly User Interface.<br />
<br />
===[http://www.usboverdrive.com/ USB Overdrive]===<br />
{{ii}} Device driver that handles any USB mouse, trackball, joystick, gamepad, media keyboard and any Bluetooth mouse and lets you configure them either globally or on a per-application, per-device basis.<br />
{{++}} It supports 64-bit kernels.<br />
<br />
==Linux==<br />
{{ii}} Most distributions come with the ''xpad'' driver already. If you're experiencing problems with using controllers in your game, or want to bind your keyboard to the controller, you may want to try ''[http://xboxdrv.gitlab.io/ xboxdrv]'', or refer to the controller-specific article for more information.<br />
===[https://github.com/jgeumlek/MoltenGamepad#moltengamepad MoltenGamepad]===<br />
{{ii}} Flexible Linux input device translator, geared for gamepads.<br />
{{++}} Create virtual gamepads that almost all games can use. Virtual gamepads are persistent, which fixes the numerous games that break when controllers are disconnected.<br />
{{++}} Flexible generic device driver framework, where only a text file is needed to support input sources that don't need special features. All configuration files are designed to be human-readable and editable.<br />
{{++}} Easy loading and saving of event mappings that can be changed at run time. <br />
{{++}} Specialized userspace driver for Wii remotes that make full use of extension controller hotswapping. Supports a command FIFO or socket for controlling a running instance of MoltenGamepad via scripting. Can handle cases where one event device represents multiple logical controllers (like an arcade stick), or vice versa.<br />
{{--}} Virtual devices can process rumble events, but this is disabled by default.<br />
<br />
==List of controllers==<br />
<!-- This list is ordered by the controller release date. The Logitech and Misc sections have been left alphabetized. --><br />
===8BitDo===<br />
* [[Controller:8BitDo Lite|8BitDo Lite]]<br />
* [[Controller:8BitDo M30|8BitDo M30]]<br />
* [[Controller:8BitDo N30|8BitDo N30]]<br />
* [[Controller:8BitDo N30 NS|8BitDo N30 NS]]<br />
* [[Controller:8BitDo N30 Pro 2|8BitDo N30 Pro 2]]<br />
* [[Controller:8BitDo SN30 Pro|8BitDo SN30 Pro]]<br />
* [[Controller:8BitDo SN30 Pro+|8BitDo SN30 Pro+]]<br />
* [[Controller:8BitDo SN30 Pro G Classic|8BitDo SN30 Pro G Classic]]<br />
* [[Controller:8BitDo SN30 Pro SN|8BitDo SN30 Pro SN]]<br />
* [[Controller:8BitDo SN30 GP|8BitDo SN30 GP]]<br />
* [[Controller:8BitDo Pro 2|8BitDo Pro 2]]<br />
* [[Controller:8BitDo Zero 2|8BitDo Zero 2]]<br />
<br />
===Amazon===<br />
* [[Controller:Amazon Fire Game Controller|Amazon Fire Game Controller]]<br />
* [[Controller:Amazon Fire TV Game Controller|Amazon Fire TV Game Controller]]<br />
* [[Controller:Amazon Luna Controller|Amazon Luna Controller]]<br />
<br />
===Astro===<br />
* [[Controller:Astro C40|Astro C40]]<br />
<br />
===Atari===<br />
* [[Controller:Atari CX40 Joystick|Atari CX40 Joystick]]<br />
* [[Controller:Atari CX78 Controller|Atari CX78 Controller]]<br />
* [[Controller:Atari VCS Wireless Classic Joystick|Atari VCS Wireless Classic Joystick]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Facebook===<br />
* [[Controller:Oculus Touch|Oculus Touch]]<br />
<br />
===Flydigi===<br />
* [[Controller:Flydigi Apex 2|Flydigi Apex 2]]<br />
<br />
===Hori===<br />
* [[Controller:HORI Mini Wired Gamepad|HORI Mini Wired Gamepad]]<br />
* [[Controller:HORI Wireless Pad|HORI Wireless Pad]]<br />
* [[Controller:Pokkén Tournament Pro Pad Controller|HORI Pokemon Tekken DX Pro Pad]]<br />
* [[Controller:HORI Pad Wired Controller|HORI Pad Wired Controller]]<br />
<br />
===Hyperkin===<br />
* [[Controller:Hyperkin Duke Controller|Hyperkin Duke Controller]]<br />
* [[Controller:Hyperkin X91|Hyperkin X91]]<br />
<br />
===Logitech===<br />
* [[Controller:Logitech Dual Action|Logitech Dual Action]]<br />
* [[Controller:Logitech Rumblepad 2|Logitech Rumblepad 2]]<br />
* [[Controller:Logitech Gamepad F310|Logitech Gamepad F310]]<br />
* [[Controller:Logitech Rumble Gamepad F510|Logitech Rumble Gamepad F510]]<br />
* [[Controller:Logitech Wireless Gamepad F710|Logitech Wireless Gamepad F710]]<br />
* [[Controller:Logitech Extreme 3D Pro|Logitech Extreme 3D Pro]]<br />
<br />
===Microsoft===<br />
'''Consoles:'''<br />
* [[Controller:Xbox Controller|Xbox Controller]]<br />
* [[Controller:Xbox 360 Controller|Xbox 360 Controller]]<br />
* [[Controller:Kinect|Kinect]]<br />
* [[Controller:Xbox One Controller|Xbox Wireless Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller|Xbox Elite Wireless Controller]]<br />
* [[Controller:Xbox Adaptive Controller|Xbox Adaptive Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite Wireless Controller 2]]<br />
* [[Controller:Xbox X Controller|Xbox Series X|S Wireless Controller]]<br />
<br />
'''PC:'''<br />
* [[Controller:Microsoft SideWinder Strategic Commander|Microsoft SideWinder Strategic Commander]]<br />
<br />
===Nacon===<br />
* [[Controller:Nacon Revolution Pro Controller|Nacon Revolution Pro Controller]]<br />
* [[Controller:Nacon Revolution Pro Controller 2|Nacon Revolution Pro Controller 2]]<br />
* [[Controller:Nacon Revolution Unlimited Pro|Nacon Revolution Unlimited Pro]]<br />
* [[Controller:Nacon Revolution Pro Controller 3|Nacon Revolution Pro Controller 3]]<br />
<br />
===Nintendo===<br />
'''Consoles:'''<br />
* [[Controller:Nintendo Entertainment System Controller|NES Controller]]<br />
* [[Controller:Super Nintendo Entertainment System Controller|SNES Controller]]<br />
* [[Controller:Virtual Boy Controller|Virtual Boy Controller]]<br />
* [[Controller:Nintendo 64 Controller|Nintendo 64 Controller]]<br />
* [[Controller:GameCube Controller|GameCube Controller]]<br />
* [[Controller:Wii Remote|Wii Remote]]<br />
* [[Controller:Classic Controller|Classic Controller]]<br />
* [[Controller:Classic Controller Pro|Classic Controller Pro]]<br />
* [[Controller:Wii U GamePad|Wii U GamePad]]<br />
* [[Controller:Wii U Pro Controller|Wii U Pro Controller]]<br />
* [[Controller:Switch Joy-Con|Switch Joy-Con]]<br />
* [[Controller:Switch Pro Controller|Switch Pro Controller]]<br />
* [[Controller:NES Classic Controller|NES Classic Controller]]<br />
* [[Controller:SNES Classic Controller|SNES Classic Controller]]<br />
'''Handhelds:'''<br />
* [[Controller:Game Boy|Game Boy]]<br />
* [[Controller:Game Boy Color|Game Boy Color]]<br />
* [[Controller:Game Boy Advance|Game Boy Advance]]<br />
* [[Controller:Nintendo DS|Nintendo DS]]<br />
* [[Controller:Nintendo 3DS|Nintendo 3DS]]<br />
<br />
===Nvidia===<br />
* [[Controller:Nvidia SHIELD Controller|SHIELD Controller (2015)]]<br />
* [[Controller:Nvidia SHIELD Controller (2017)|SHIELD Controller (2017)]]<br />
<br />
===PDP===<br />
* [[Controller:PDP Wired Fight Pad Pro|PDP Wired Fight Pad Pro]]<br />
* [[Controller:PDP Faceoff Deluxe Wired Pro Controller|PDP Faceoff Deluxe Wired Pro Controller]]<br />
* [[Controller:PDP Faceoff Wired Pro Controller|PDP Faceoff Wired Pro Controller]]<br />
<br />
===PowerA===<br />
* [[Controller:PowerA Wired Controller|PowerA Wired Controller]]<br />
* [[Controller:PowerA Spectra|PowerA Spectra]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Razer===<br />
* [[Controller:OUYA|OUYA Controller]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Hydra|Razer Hydra]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Raiju|Razer Raiju]]<br />
* [[Controller:Razer Wolverine|Razer Wolverine]]<br />
* [[Controller:Razer Raiju PS4|Razer Raiju PS4]]<br />
* [[Controller:Razer Raiju Ultimate Edition|Razer Raiju Ultimate Edition]]<br />
* [[Controller:Razer Raiju Tournament Edition|Razer Raiju Tournament Edition]]<br />
* [[Controller:Razer Atrox fight stick|Razer Atrox fight stick]]<br />
<br />
===Retro Fighters===<br />
* [[Controller:Retro Fighters JAB|JAB]]<br />
* [[Controller:Retro Fighters Brawler64|Brawler64]]<br />
* [[Controller:Retro Fighters BrawlerGen|BrawlerGen]]<br />
* [[Controller:Retro Fighters StrikerDC|StrikerDC]]<br />
* [[Controller:Retro Fighters Contender|Contender]]<br />
* [[Controller:Retro Fighters BladeGC|BladeGC]]<br />
<br />
===Sega===<br />
* [[Controller:Sega Master System Controller|Master System Controller]]<br />
* [[Controller:Sega Genesis Controller|Sega Genesis Controller]]<br />
* [[Controller:Sega Saturn Controller|Sega Saturn Controller]]<br />
* [[Controller:Dreamcast Controller|Dreamcast Controller]]<br />
<br />
===Sony===<br />
'''Consoles:'''<br />
* [[Controller:PlayStation Controller|PlayStation Controller]]<br />
* [[Controller:Dual Analog Controller|Dual Analog Controller]]<br />
* [[Controller:DualShock|DualShock]]<br />
* [[Controller:DualShock 2|DualShock 2]]<br />
* [[Controller:Sixaxis|Sixaxis]]<br />
* [[Controller:DualShock 3|DualShock 3]]<br />
* [[Controller:PlayStation Move|PlayStation Move]]<br />
* [[Controller:DualShock 4|DualShock 4]]<br />
* [[Controller:PlayStation Classic Controller|PlayStation Classic Controller]]<br />
* [[Controller:DualSense|DualSense]]<br />
'''Handhelds:'''<br />
* [[Controller:PlayStation Portable|PlayStation Portable]]<br />
* [[Controller:PlayStation Vita|PlayStation Vita]]<br />
<br />
===SteelSeries===<br />
* [[Controller:SteelSeries Stratus XL|SteelSeries Stratus XL]]<br />
* [[Controller:SteelSeries Stratus Duo|SteelSeries Stratus Duo]]<br />
<br />
===Valve===<br />
* [[Controller:Steam Controller|Steam Controller]]<br />
* [[Controller:Steam Link Touch Controller|Steam Link Touch Controller]]<br />
* [[Controller:Valve Index Controller|Valve Index Controller]]<br />
<br />
===Vive===<br />
* [[Controller:Vive Controller|Vive Controller]]<br />
* [[Controller:Vive Tracker|Vive Tracker]]<br />
<br />
===Google===<br />
* [[Controller:Stadia Controller|Stadia Controller]]<br />
<br />
===Miscellaneous===<br />
* [[Controller:Tobii Eye Tracking|Tobii Eye Tracking]]<br />
* [[Controller:Leap Motion Controller|Leap Motion]]<br />
* [[Controller:TT Premium X1 RGB App|TT Premium X1 RGB App (Virtual Game Controller)]]<br />
* [[Controller:Capcom Home Arcade|Capcom Home Arcade]]<br />
* [[Panasonic Q Controller|Panasonic Q Controller]]<br />
* [[Controller:Azeron Classic|Azeron Classic]]<br />
* [[Controller:Azeron Compact|Azeron Compact]]<br />
<br />
==Other information==<br />
===Controller hotplugging===<br />
{{ii}} Controller hotplugging is the ability to switch controllers without restarting a game.<br />
<br />
===DirectInput===<br />
{{ii}} DirectInput is Microsoft's older controller API (used with nearly all games until 2006). XInput controllers operate in DirectInput mode for these games. Logitech's F310 and F710 gamepads have a physical switch which should be set to "D" for these games.<br />
<br />
===XInput===<br />
{{ii}} XInput is Microsoft's API for Xbox 360-compatible controllers such as the official Xbox 360 Controller.<br />
<br />
===Windows.Gaming.Input===<br />
{{ii}} Windows.Gaming.Input is Microsoft's API for Xbox One-compatible controllers such as the official Xbox One Controller primarily built for [[Store:Microsoft Store|Universal Windows Platform]] apps, but can on occasions be found in Win32 games as well.<br />
{{mm}} An example of a new addition only available through the Windows.Gaming.Input API is the use of [[List of games that support Xbox One impulse triggers|the impulse triggers]] of the [[Xbox One Controller]].<br />
<br />
===[[Store:Steam#Steam_Input|Steam Input]]===<br />
{{ii}} Steam Input is feature of the [[Store:Steam|Steam client]] referring to the entire collection of software, hardware, and configuration utilities that Steam uses to interface with games. It acts like a wrapper using the Steam Community Overlay to intercept and manipulate player input before passing it on along to the game.<br />
<br />
{{References}}<br />
<br />
[[Category:Controller]]</div>Gildumhttps://www.pcgamingwiki.com/w/index.php?title=Glossary:Controller&diff=1193797Glossary:Controller2021-12-04T14:37:52Z<p>Gildum: /* General */</p>
<hr />
<div>{{cleanup|Correct any bad information. Keep things easy, clean and be complete when writing solutions, or I'll eat your donuts and I'll steal your cats}}<br />
{{Guide}}<br />
<br />
'''General information'''<br />
{{mm}} [[Wikipedia:DirectInput|DirectInput (and XInput) on Wikipedia]]<br />
{{mm}} [[Wikipedia:Xbox 360 controller|Xbox 360 Controller (XInput) on Wikipedia]]<br />
<br />
'''Key points'''<br />
{{ii}} '''Controllers''' are an alternative to keyboard and mouse input. Almost all recently released PC games support controllers, although many only support the newer [[#XInput|XInput]] controllers by default.<br />
<br />
==General==<br />
<!-- Yes I get it you hate this, but leave this section the way it is, if you have a program which is supported on two OSs, create a new category here, and list the OSs in the parethesis (Windows, OS X and Linux). --><br />
<!-- The General section is for software available under multiple OSs --><br />
===Controller to Keyboard Input===<br />
{{ii}} These utilities allow keyboard keys to be bound to any controller buttons for games with poor or no controller support. These keys must match with the in-game settings. <br />
<br />
====[[Store:Steam#Steam Input|Steam Input]] (Windows, macOS and Linux)====<br />
{{ii}} Works with non-Steam games if they're added and launched through Steam.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. keyboard/mouse input mapped to a controller, XInput support for DirectInput-only devices, etc).<br />
{{--}} Overrules games own possible controller specific configurations e.g. automatic button prompt change.<br />
{{--}} UI for changing bindings is very much made with controllers in mind.<br />
{{--}} Requires [[Steam]] and the Steam Overlay to function.<br />
{{ii}} When game is blocking 3rd party game overlays you can use [https://github.com/Alia5/GlosSI GlosSI].<br />
<br />
====[https://www.rewasd.com reWASD] (Windows)====<br />
{{ii}} Supported controllers: [[Controller:Xbox Elite Wireless Controller|Xbox Elite 1]]/[[Controller:Xbox Elite Wireless Controller 2|2]], [[Controller:DualSense|DualSense]], [[Controller:Xbox One Controller|Xbox One/S/X]], [[Controller:DualShock 4|DualShock 4]], [[Controller:DualShock 3|DualShock 3]], [[Controller:PlayStation Move|PS3 Navigation]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:GameCube Controller|GameCube]], [[Controller:Switch_Joy-Con|Joy-Con]], Azeron, [[Controller:Steam Controller|Steam]], [[Controller:Nvidia SHIELD Controller|Nvidia SHIELD]].<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. allows you to remap controller to keyboard & mouse, reassign with Xbox Elite paddles and turn your ordinary joystick to Turbo & Macro controller).<br />
{{++}} You can chose which driver (Virtual X360, XOne or DS4) has to be used by connected device. This allows to run PS4 Remote Play or PS Now on Xbox controllers or even on keyboard & mouse.<br />
{{++}} Allows remapping and Keyboard and Mouse keys to keyboard, mouse or controller buttons.<br />
{{++}} Allows use of [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game.<br />
{{++}} Allows use of [[Controller:Steam Controller|Steam Controller]] without Steam.<br />
{{++}} Allows [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo on PC.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Runs on Windows 10, 8.1, 8 and 7.<br />
{{--}} 14-days trial. Full license can cost up to 33 € (Application + Combo + Advanced mapping + 4 Slots + Rapid Fire).<br />
<br />
====[https://github.com/Electronicks/JoyShockMapper JoyShockMapper] (Windows)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} Converts [[Controller:DualShock 4|DualShock 4]], [[Controller:Switch_Joy-Con|JoyCon]], and [[Controller:Switch Pro Controller|Pro Controller]] input into keyboard and mouse events.<br />
{{++}} Innovative "Flick Stick" support - adjusting rotation of a stick to the same rotation in game<ref>[https://www.youtube.com/watch?v=C5L_Px3dFtE Gyro Gaming - Intro to Flick Stick]</ref>.<br />
{{++}} Allows using gyro controls. Community Configs you can find on [http://gyrowiki.jibbsmart.com/games GyroWiki].<br />
<br />
====[http://controllercompanion.com/ Controller Companion] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers. Application comes with an installer for [[Xbox 360 Controller Emulator|Xbox 360 Controller Emulator (x360ce)]] which will allow use Playstation controllers.<br />
{{++}} Using [https://steamcommunity.com/workshop/about/?appid=367670 Steam Workshop] as community configs database.<br />
{{++}} Very user friendly User Interface, bindings are easy to configure.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface.<br />
{{++}} Auto-disable whenever another program, game or Steam Big Picture is running.<br />
{{--}} Not Freeware.<br />
<br />
====[https://github.com/AntiMicro/antimicro/releases AntiMicro] (Windows and Linux)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} [https://github.com/AntiMicroX/antimicroX AntimicroX] is continuation of project for Linux. With version 3.2.0 Windows is now supported<ref>[https://github.com/AntiMicroX/antimicrox/releases/tag/3.2.0 AntiMicroX-3.2.0 - GitHub]</ref>.<br />
{{++}} Allows any mouse and keyboard input to be bound to any controller buttons across different profiles.<br />
{{--}} On Linux, it works only in Xorg environment.<br />
<br />
====[https://joyxoff.com/en/ JoyXoff] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface or Xbox One themed plain virtual keyboard.<br />
{{--}} For Playstation controllers Xbox 360 Controller Emulator (x360ce) is needed.<br />
<br />
====[https://keysticks.net/ Keysticks] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
<br />
====[https://xpadder.com/ Xpadder] (Windows)====<br />
{{ii}} Mouse and keyboard control.<br />
{{--}} Not Freeware.<br />
<br />
==Windows==<br />
===XInput wrappers===<br />
{{ii}} Generic game controllers are classified as [[Glossary:Controller#DirectInput|DirectInput]] by Windows, these can be used in any games with [[Glossary:Controller#XInput|XInput]] support by using a wrapper.<br />
{{ii}} See [[#Controller to Keyboard Input|Controller to Keyboard Input]] for games with no controller support.<br />
<br />
====[[Glossary:Controller#Steam Input (Windows, macOS and Linux)|Steam Input]]====<br />
{{++}} Very easy to set up if you have Steam installed.<br />
{{++}} With controllers like [[Controller:DualShock 4|DualShock 4]] and [[Controller:Switch Pro Controller|Switch Pro Controller]] allows haptic feedback passtrough as well.<br />
<br />
====[[Glossary:Controller#reWASD (Windows)|reWASD]]====<br />
{{++}} Supports all main controllers, including [[Controller:Xbox Elite Wireless Controller|Xbox Elite]], [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite 2]], [[Controller:Xbox One Controller|Xbox One]], [[Controller:DualShock 3|DualShock 3]], [[Controller:DualShock 4|DualShock 4]], [[Controller:PlayStation Move|PS Navigation]], [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:Switch_Joy-Con|Joy-Con]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Steam Controller|Steam]], [[Controller:GameCube Controller|GameCube]].<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo. Allows use [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game and lets [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Big community [https://www.rewasd.com/community config database] with online preview.<br />
<br />
====[https://github.com/KrossX/Durazno Durazno]====<br />
{{++}} Allows XInput controllers to be customized.<br />
<br />
====[https://community.pcgamingwiki.com/files/file/2034-xinputplus-ver-415/ XInput Plus]====<br />
{{ii}} The [[XBCD|Xbox Controller Driver]] and the buggy Force Feedback Driver aren't required with this program.<br />
{{++}} Features a wide array of advanced options, tweaks, features and some major fixes which other wrappers may lack.<br />
{{++}} Can translate [[Glossary:Controller#DirectInput|DirectInput]] calls into [[Glossary:Controller#XInput|XInput]] and back. It can also be used on older games using '''dinput.dll''' and '''dinput8.dll'''.<br />
<br />
====[[Xbox 360 Controller Emulator#Setting Up|Xbox 360 Controller Emulator]]====<br />
{{++}} Can be used to force DirectInput controllers to be detected as XInput ones.<br />
{{++}} Useful for games which may require multiple players. It also features a wide array of options.<br />
{{--}} Does not work with games using [[Engine:Unity|Unity]] due to implementation differences.<ref>[https://github.com/x360ce/x360ce/issues/48 Issue 48 - x360ce - Hooking does not work with Unity Engine - x360ce/x360ce - GitHub]</ref><br />
<br />
====[https://github.com/csutorasa/XOutput XOutput]====<br />
{{++}} Converts DirectInput to XInput, reads and sends data to virtual XBox 360 controller.<br />
<br />
===Primary device===<br />
{{ii}} Some games only use controller set as primary controller on Windows and ignores the rest. If incorrect or no controllers are set to primary, game doesn't work with used controller.<br />
<br />
{{Fixbox|description=Set your used controller as primary one|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Push '''Advanced'''.<br />
# From dropdown list, locate your used controller and then push '''OK'''. <br />
}}<br />
<br />
===Multiple controller order for older games===<br />
<!-- This method assumes you only have two controllers so it kinda sucks, shouldn't the Xbox 360 Controller Emulator be used instead? --><br />
<!-- Add proper HOTAS instructions, would need an actual Joystick to test this. --><br />
{{Fixbox|description=Instructions|ref=<ref>{{Refcheck|user=Blackbird|date=2016-10-06|comment=Far as I can tell this is for DInput games only.}}</ref>|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Click on the '''Advanced''' button.<br />
# Select the '''Preferred device''' from the drop down menu located on the center.<br />
}}<br />
<br />
===Issues fixed===<br />
====Slow or random movement====<br />
{{ii}} This may be caused by worn out sticks or by low in-game deadzones.<br />
<br />
{{Fixbox|description=Calibrating|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Select the desired controller and click on the '''Properties''' button.<br />
# Select the '''Settings''' tab, then push the '''Calibrate''' button and follow the on screen instructions.<br />
}}<br />
<br />
====Fast movement====<br />
{{ii}} Remove any virtual controllers and use the [[Xbox 360 Controller Emulator]] instead. If the issue persists see below.<br />
{{--}} Common issue on games running on the [[Engine:Unity|Unity]] engine due to the Unity input manager using Raw Input instead of DirectInput.<br />
<br />
{{Fixbox|description=Finding Virtual Controllers|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Locate the name of the virtual controller driver or utility and remove it.<br />
}}<br />
{{Fixbox|description=Rebind Controller Buttons|fix=<br />
{{ii}} For [[Engine:Unity|Unity]] games with no launchers hold {{key|Shift}} to access the launcher as the game starts, then select the '''Input''' tab.<br />
{{ii}} Check the wiki article for the desired game to find a different rebinding solution. Configuration files may hold such settings.<br />
}}<br />
<br />
====SDL2====<br />
{{ii}} Many games use SDL2 to handle controller input. This means as long as the controller is on the list, game should detect, use it and give proper controller placement and prompts. Controllers that aren't on the list, do nothing and has to be manually added. <br />
{{ii}} To see what games use SDL2, refer to game-specific middleware section.<br />
<br />
{{Fixbox|description=Configure controller through Steam Big Picture modes settings|ref={{cn|date=July 2016}}|fix=<br />
{{--}} This method requires Steam to be installed on a machine.<br />
}}<br />
{{Fixbox|description=Use [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool]|ref={{cn|date=July 2016}}|fix=<br />
# Download and open [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool].<br />
# Select desired controller from dropdown menu.<br />
# Select "Create a new mapping" and press buttons accordingly. <br />
#* If some button isn't present on the controller, use the "Skip" button and if some key is registered twice, use the "previous" button. <br />
# Either set the string as enviromental variable, which should make the controller work with every SDL2 game or alternatively copy the string and paste it to {{code|gamecontrollerdb.txt}} found in games install folder. <br />
}}<br />
<br />
==macOS==<br />
===[http://www.orderedbytes.com/controllermate/ ControllerMate]===<br />
{{ii}} Allows customize various devices, including the keyboard and mouse, joystick, gamepads for use with your computer.<br />
{{++}} Programming is accomplished using "building blocks".<br />
{{--}} Unfriendly User Interface.<br />
<br />
===[http://www.usboverdrive.com/ USB Overdrive]===<br />
{{ii}} Device driver that handles any USB mouse, trackball, joystick, gamepad, media keyboard and any Bluetooth mouse and lets you configure them either globally or on a per-application, per-device basis.<br />
{{++}} It supports 64-bit kernels.<br />
<br />
==Linux==<br />
{{ii}} Most distributions come with the ''xpad'' driver already. If you're experiencing problems with using controllers in your game, or want to bind your keyboard to the controller, you may want to try ''[http://xboxdrv.gitlab.io/ xboxdrv]'', or refer to the controller-specific article for more information.<br />
===[https://github.com/jgeumlek/MoltenGamepad#moltengamepad MoltenGamepad]===<br />
{{ii}} Flexible Linux input device translator, geared for gamepads.<br />
{{++}} Create virtual gamepads that almost all games can use. Virtual gamepads are persistent, which fixes the numerous games that break when controllers are disconnected.<br />
{{++}} Flexible generic device driver framework, where only a text file is needed to support input sources that don't need special features. All configuration files are designed to be human-readable and editable.<br />
{{++}} Easy loading and saving of event mappings that can be changed at run time. <br />
{{++}} Specialized userspace driver for Wii remotes that make full use of extension controller hotswapping. Supports a command FIFO or socket for controlling a running instance of MoltenGamepad via scripting. Can handle cases where one event device represents multiple logical controllers (like an arcade stick), or vice versa.<br />
{{--}} Virtual devices can process rumble events, but this is disabled by default.<br />
<br />
==List of controllers==<br />
<!-- This list is ordered by the controller release date. The Logitech and Misc sections have been left alphabetized. --><br />
===8BitDo===<br />
* [[Controller:8BitDo Lite|8BitDo Lite]]<br />
* [[Controller:8BitDo M30|8BitDo M30]]<br />
* [[Controller:8BitDo N30|8BitDo N30]]<br />
* [[Controller:8BitDo N30 NS|8BitDo N30 NS]]<br />
* [[Controller:8BitDo N30 Pro 2|8BitDo N30 Pro 2]]<br />
* [[Controller:8BitDo SN30 Pro|8BitDo SN30 Pro]]<br />
* [[Controller:8BitDo SN30 Pro+|8BitDo SN30 Pro+]]<br />
* [[Controller:8BitDo SN30 Pro G Classic|8BitDo SN30 Pro G Classic]]<br />
* [[Controller:8BitDo SN30 Pro SN|8BitDo SN30 Pro SN]]<br />
* [[Controller:8BitDo SN30 GP|8BitDo SN30 GP]]<br />
* [[Controller:8BitDo Pro 2|8BitDo Pro 2]]<br />
* [[Controller:8BitDo Zero 2|8BitDo Zero 2]]<br />
<br />
===Amazon===<br />
* [[Controller:Amazon Fire Game Controller|Amazon Fire Game Controller]]<br />
* [[Controller:Amazon Fire TV Game Controller|Amazon Fire TV Game Controller]]<br />
* [[Controller:Amazon Luna Controller|Amazon Luna Controller]]<br />
<br />
===Astro===<br />
* [[Controller:Astro C40|Astro C40]]<br />
<br />
===Atari===<br />
* [[Controller:Atari CX40 Joystick|Atari CX40 Joystick]]<br />
* [[Controller:Atari CX78 Controller|Atari CX78 Controller]]<br />
* [[Controller:Atari VCS Wireless Classic Joystick|Atari VCS Wireless Classic Joystick]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Facebook===<br />
* [[Controller:Oculus Touch|Oculus Touch]]<br />
<br />
===Flydigi===<br />
* [[Controller:Flydigi Apex 2|Flydigi Apex 2]]<br />
<br />
===Hori===<br />
* [[Controller:HORI Mini Wired Gamepad|HORI Mini Wired Gamepad]]<br />
* [[Controller:HORI Wireless Pad|HORI Wireless Pad]]<br />
* [[Controller:Pokkén Tournament Pro Pad Controller|HORI Pokemon Tekken DX Pro Pad]]<br />
* [[Controller:HORI Pad Wired Controller|HORI Pad Wired Controller]]<br />
<br />
===Hyperkin===<br />
* [[Controller:Hyperkin Duke Controller|Hyperkin Duke Controller]]<br />
* [[Controller:Hyperkin X91|Hyperkin X91]]<br />
<br />
===Logitech===<br />
* [[Controller:Logitech Dual Action|Logitech Dual Action]]<br />
* [[Controller:Logitech Rumblepad 2|Logitech Rumblepad 2]]<br />
* [[Controller:Logitech Gamepad F310|Logitech Gamepad F310]]<br />
* [[Controller:Logitech Rumble Gamepad F510|Logitech Rumble Gamepad F510]]<br />
* [[Controller:Logitech Wireless Gamepad F710|Logitech Wireless Gamepad F710]]<br />
* [[Controller:Logitech Extreme 3D Pro|Logitech Extreme 3D Pro]]<br />
<br />
===Microsoft===<br />
'''Consoles:'''<br />
* [[Controller:Xbox Controller|Xbox Controller]]<br />
* [[Controller:Xbox 360 Controller|Xbox 360 Controller]]<br />
* [[Controller:Kinect|Kinect]]<br />
* [[Controller:Xbox One Controller|Xbox Wireless Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller|Xbox Elite Wireless Controller]]<br />
* [[Controller:Xbox Adaptive Controller|Xbox Adaptive Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite Wireless Controller 2]]<br />
* [[Controller:Xbox X Controller|Xbox Series X|S Wireless Controller]]<br />
<br />
'''PC:'''<br />
* [[Controller:Microsoft SideWinder Strategic Commander|Microsoft SideWinder Strategic Commander]]<br />
<br />
===Nacon===<br />
* [[Controller:Nacon Revolution Pro Controller|Nacon Revolution Pro Controller]]<br />
* [[Controller:Nacon Revolution Pro Controller 2|Nacon Revolution Pro Controller 2]]<br />
* [[Controller:Nacon Revolution Unlimited Pro|Nacon Revolution Unlimited Pro]]<br />
* [[Controller:Nacon Revolution Pro Controller 3|Nacon Revolution Pro Controller 3]]<br />
<br />
===Nintendo===<br />
'''Consoles:'''<br />
* [[Controller:Nintendo Entertainment System Controller|NES Controller]]<br />
* [[Controller:Super Nintendo Entertainment System Controller|SNES Controller]]<br />
* [[Controller:Virtual Boy Controller|Virtual Boy Controller]]<br />
* [[Controller:Nintendo 64 Controller|Nintendo 64 Controller]]<br />
* [[Controller:GameCube Controller|GameCube Controller]]<br />
* [[Controller:Wii Remote|Wii Remote]]<br />
* [[Controller:Classic Controller|Classic Controller]]<br />
* [[Controller:Classic Controller Pro|Classic Controller Pro]]<br />
* [[Controller:Wii U GamePad|Wii U GamePad]]<br />
* [[Controller:Wii U Pro Controller|Wii U Pro Controller]]<br />
* [[Controller:Switch Joy-Con|Switch Joy-Con]]<br />
* [[Controller:Switch Pro Controller|Switch Pro Controller]]<br />
* [[Controller:NES Classic Controller|NES Classic Controller]]<br />
* [[Controller:SNES Classic Controller|SNES Classic Controller]]<br />
'''Handhelds:'''<br />
* [[Controller:Game Boy|Game Boy]]<br />
* [[Controller:Game Boy Color|Game Boy Color]]<br />
* [[Controller:Game Boy Advance|Game Boy Advance]]<br />
* [[Controller:Nintendo DS|Nintendo DS]]<br />
* [[Controller:Nintendo 3DS|Nintendo 3DS]]<br />
<br />
===Nvidia===<br />
* [[Controller:Nvidia SHIELD Controller|SHIELD Controller (2015)]]<br />
* [[Controller:Nvidia SHIELD Controller (2017)|SHIELD Controller (2017)]]<br />
<br />
===PDP===<br />
* [[Controller:PDP Wired Fight Pad Pro|PDP Wired Fight Pad Pro]]<br />
* [[Controller:PDP Faceoff Deluxe Wired Pro Controller|PDP Faceoff Deluxe Wired Pro Controller]]<br />
* [[Controller:PDP Faceoff Wired Pro Controller|PDP Faceoff Wired Pro Controller]]<br />
<br />
===PowerA===<br />
* [[Controller:PowerA Wired Controller|PowerA Wired Controller]]<br />
* [[Controller:PowerA Spectra|PowerA Spectra]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Razer===<br />
* [[Controller:OUYA|OUYA Controller]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Hydra|Razer Hydra]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Raiju|Razer Raiju]]<br />
* [[Controller:Razer Wolverine|Razer Wolverine]]<br />
* [[Controller:Razer Raiju PS4|Razer Raiju PS4]]<br />
* [[Controller:Razer Raiju Ultimate Edition|Razer Raiju Ultimate Edition]]<br />
* [[Controller:Razer Raiju Tournament Edition|Razer Raiju Tournament Edition]]<br />
* [[Controller:Razer Atrox fight stick|Razer Atrox fight stick]]<br />
<br />
===Retro Fighters===<br />
* [[Controller:Retro Fighters JAB|JAB]]<br />
* [[Controller:Retro Fighters Brawler64|Brawler64]]<br />
* [[Controller:Retro Fighters BrawlerGen|BrawlerGen]]<br />
* [[Controller:Retro Fighters StrikerDC|StrikerDC]]<br />
* [[Controller:Retro Fighters Contender|Contender]]<br />
* [[Controller:Retro Fighters BladeGC|BladeGC]]<br />
<br />
===Sega===<br />
* [[Controller:Sega Master System Controller|Master System Controller]]<br />
* [[Controller:Sega Genesis Controller|Sega Genesis Controller]]<br />
* [[Controller:Sega Saturn Controller|Sega Saturn Controller]]<br />
* [[Controller:Dreamcast Controller|Dreamcast Controller]]<br />
<br />
===Sony===<br />
'''Consoles:'''<br />
* [[Controller:PlayStation Controller|PlayStation Controller]]<br />
* [[Controller:Dual Analog Controller|Dual Analog Controller]]<br />
* [[Controller:DualShock|DualShock]]<br />
* [[Controller:DualShock 2|DualShock 2]]<br />
* [[Controller:Sixaxis|Sixaxis]]<br />
* [[Controller:DualShock 3|DualShock 3]]<br />
* [[Controller:PlayStation Move|PlayStation Move]]<br />
* [[Controller:DualShock 4|DualShock 4]]<br />
* [[Controller:PlayStation Classic Controller|PlayStation Classic Controller]]<br />
* [[Controller:DualSense|DualSense]]<br />
'''Handhelds:'''<br />
* [[Controller:PlayStation Portable|PlayStation Portable]]<br />
* [[Controller:PlayStation Vita|PlayStation Vita]]<br />
<br />
===SteelSeries===<br />
* [[Controller:SteelSeries Stratus XL|SteelSeries Stratus XL]]<br />
* [[Controller:SteelSeries Stratus Duo|SteelSeries Stratus Duo]]<br />
<br />
===Valve===<br />
* [[Controller:Steam Controller|Steam Controller]]<br />
* [[Controller:Steam Link Touch Controller|Steam Link Touch Controller]]<br />
* [[Controller:Valve Index Controller|Valve Index Controller]]<br />
<br />
===Vive===<br />
* [[Controller:Vive Controller|Vive Controller]]<br />
* [[Controller:Vive Tracker|Vive Tracker]]<br />
<br />
===Google===<br />
* [[Controller:Stadia Controller|Stadia Controller]]<br />
<br />
===Miscellaneous===<br />
* [[Controller:Tobii Eye Tracking|Tobii Eye Tracking]]<br />
* [[Controller:Leap Motion Controller|Leap Motion]]<br />
* [[Controller:TT Premium X1 RGB App|TT Premium X1 RGB App (Virtual Game Controller)]]<br />
* [[Controller:Capcom Home Arcade|Capcom Home Arcade]]<br />
* [[Panasonic Q Controller|Panasonic Q Controller]]<br />
* [[Controller:Azeron Classic|Azeron Classic]]<br />
* [[Controller:Azeron Compact|Azeron Compact]]<br />
<br />
==Other information==<br />
===Controller hotplugging===<br />
{{ii}} Controller hotplugging is the ability to switch controllers without restarting a game.<br />
<br />
===DirectInput===<br />
{{ii}} DirectInput is Microsoft's older controller API (used with nearly all games until 2006). XInput controllers operate in DirectInput mode for these games. Logitech's F310 and F710 gamepads have a physical switch which should be set to "D" for these games.<br />
<br />
===XInput===<br />
{{ii}} XInput is Microsoft's API for Xbox 360-compatible controllers such as the official Xbox 360 Controller.<br />
<br />
===Windows.Gaming.Input===<br />
{{ii}} Windows.Gaming.Input is Microsoft's API for Xbox One-compatible controllers such as the official Xbox One Controller primarily built for [[Store:Microsoft Store|Universal Windows Platform]] apps, but can on occasions be found in Win32 games as well.<br />
{{mm}} An example of a new addition only available through the Windows.Gaming.Input API is the use of [[List of games that support Xbox One impulse triggers|the impulse triggers]] of the [[Xbox One Controller]].<br />
<br />
===[[Store:Steam#Steam_Input|Steam Input]]===<br />
{{ii}} Steam Input is feature of the [[Store:Steam|Steam client]] referring to the entire collection of software, hardware, and configuration utilities that Steam uses to interface with games. It acts like a wrapper using the Steam Community Overlay to intercept and manipulate player input before passing it on along to the game.<br />
<br />
{{References}}<br />
<br />
[[Category:Controller]]</div>Gildumhttps://www.pcgamingwiki.com/w/index.php?title=Glossary:Controller&diff=1193793Glossary:Controller2021-12-04T14:31:46Z<p>Gildum: /* Controller Companion (Windows) */</p>
<hr />
<div>{{cleanup|Correct any bad information. Keep things easy, clean and be complete when writing solutions, or I'll eat your donuts and I'll steal your cats}}<br />
{{Guide}}<br />
<br />
'''General information'''<br />
{{mm}} [[Wikipedia:DirectInput|DirectInput (and XInput) on Wikipedia]]<br />
{{mm}} [[Wikipedia:Xbox 360 controller|Xbox 360 Controller (XInput) on Wikipedia]]<br />
<br />
'''Key points'''<br />
{{ii}} '''Controllers''' are an alternative to keyboard and mouse input. Almost all recently released PC games support controllers, although many only support the newer [[#XInput|XInput]] controllers by default.<br />
<br />
==General==<br />
<!-- Yes I get it you hate this, but leave this section the way it is, if you have a program which is supported on two OSs, create a new category here, and list the OSs in the parethesis (Windows, OS X and Linux). --><br />
<!-- The General section is for software available under multiple OSs --><br />
===Controller to Keyboard Input===<br />
{{ii}} These utilities allow keyboard keys to be bound to any controller buttons for games with poor or no controller support. These keys must match with the in-game settings. <br />
<br />
====[[Store:Steam#Steam Input|Steam Input]] (Windows, macOS and Linux)====<br />
{{ii}} Works with non-Steam games if they're added and launched through Steam.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. keyboard/mouse input mapped to a controller, XInput support for DirectInput-only devices, etc).<br />
{{--}} Overrules games own possible controller specific configurations e.g. automatic button prompt change.<br />
{{--}} UI for changing bindings is very much made with controllers in mind.<br />
{{--}} Requires [[Steam]] and the Steam Overlay to function.<br />
{{ii}} When game is blocking 3rd party game overlays you can use [https://github.com/Alia5/GlosSI GlosSI].<br />
<br />
====[https://www.rewasd.com reWASD] (Windows)====<br />
{{ii}} Supported controllers: [[Controller:Xbox Elite Wireless Controller|Xbox Elite 1]]/[[Controller:Xbox Elite Wireless Controller 2|2]], [[Controller:DualSense|DualSense]], [[Controller:Xbox One Controller|Xbox One/S/X]], [[Controller:DualShock 4|DualShock 4]], [[Controller:DualShock 3|DualShock 3]], [[Controller:PlayStation Move|PS3 Navigation]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:GameCube Controller|GameCube]], [[Controller:Switch_Joy-Con|Joy-Con]], Azeron, [[Controller:Steam Controller|Steam]], [[Controller:Nvidia SHIELD Controller|Nvidia SHIELD]].<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. allows you to remap controller to keyboard & mouse, reassign with Xbox Elite paddles and turn your ordinary joystick to Turbo & Macro controller).<br />
{{++}} You can chose which driver (Virtual X360, XOne or DS4) has to be used by connected device. This allows to run PS4 Remote Play or PS Now on Xbox controllers or even on keyboard & mouse.<br />
{{++}} Allows remapping and Keyboard and Mouse keys to keyboard, mouse or controller buttons.<br />
{{++}} Allows use of [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game.<br />
{{++}} Allows use of [[Controller:Steam Controller|Steam Controller]] without Steam.<br />
{{++}} Allows [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo on PC.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Runs on Windows 10, 8.1, 8 and 7.<br />
{{--}} 14-days trial. Full license can cost up to 33 € (Application + Combo + Advanced mapping + 4 Slots + Rapid Fire).<br />
<br />
====[https://github.com/Electronicks/JoyShockMapper JoyShockMapper] (Windows)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} Converts [[Controller:DualShock 4|DualShock 4]], [[Controller:Switch_Joy-Con|JoyCon]], and [[Controller:Switch Pro Controller|Pro Controller]] input into keyboard and mouse events.<br />
{{++}} Innovative "Flick Stick" support - adjusting rotation of a stick to the same rotation in game<ref>[https://www.youtube.com/watch?v=C5L_Px3dFtE Gyro Gaming - Intro to Flick Stick]</ref>.<br />
{{++}} Allows using gyro controls. Community Configs you can find on [http://gyrowiki.jibbsmart.com/games GyroWiki].<br />
<br />
====[http://controllercompanion.com/ Controller Companion] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers. Application comes with an installer for [[Xbox 360 Controller Emulator|Xbox 360 Controller Emulator (x360ce)]] which will allow use Playstation controllers.<br />
{{++}} Using [https://steamcommunity.com/workshop/about/?appid=367670 Steam Workshop] as community configs database.<br />
{{++}} Very user friendly User Interface, bindings are easy to configure.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface.<br />
{{++}} Auto-disable whenever another program, game or Steam Big Picture is running.<br />
{{--}} Not Freeware.<br />
<br />
====[https://github.com/AntiMicro/antimicro/releases AntiMicro] (Windows and Linux)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} [https://github.com/AntiMicroX/antimicroX AntimicroX] is continuation of project for Linux. With version 3.2.0 Windows is now supported<ref>[https://github.com/AntiMicroX/antimicrox/releases/tag/3.2.0 AntiMicroX-3.2.0 - GitHub]</ref>.<br />
{{++}} Allows any mouse and keyboard input to be bound to any controller buttons across different profiles.<br />
{{--}} On Linux, it works only in Xorg environment.<br />
<br />
====[https://joyxoff.com/en/ JoyXoff] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface or Xbox One themed plain virtual keyboard.<br />
{{--}} For Playstation controllers Xbox 360 Controller Emulator (x360ce) is needed.<br />
<br />
==Windows==<br />
===XInput wrappers===<br />
{{ii}} Generic game controllers are classified as [[Glossary:Controller#DirectInput|DirectInput]] by Windows, these can be used in any games with [[Glossary:Controller#XInput|XInput]] support by using a wrapper.<br />
{{ii}} See [[#Controller to Keyboard Input|Controller to Keyboard Input]] for games with no controller support.<br />
<br />
====[[Glossary:Controller#Steam Input (Windows, macOS and Linux)|Steam Input]]====<br />
{{++}} Very easy to set up if you have Steam installed.<br />
{{++}} With controllers like [[Controller:DualShock 4|DualShock 4]] and [[Controller:Switch Pro Controller|Switch Pro Controller]] allows haptic feedback passtrough as well.<br />
<br />
====[[Glossary:Controller#reWASD (Windows)|reWASD]]====<br />
{{++}} Supports all main controllers, including [[Controller:Xbox Elite Wireless Controller|Xbox Elite]], [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite 2]], [[Controller:Xbox One Controller|Xbox One]], [[Controller:DualShock 3|DualShock 3]], [[Controller:DualShock 4|DualShock 4]], [[Controller:PlayStation Move|PS Navigation]], [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:Switch_Joy-Con|Joy-Con]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Steam Controller|Steam]], [[Controller:GameCube Controller|GameCube]].<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo. Allows use [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game and lets [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Big community [https://www.rewasd.com/community config database] with online preview.<br />
<br />
====[https://github.com/KrossX/Durazno Durazno]====<br />
{{++}} Allows XInput controllers to be customized.<br />
<br />
====[https://community.pcgamingwiki.com/files/file/2034-xinputplus-ver-415/ XInput Plus]====<br />
{{ii}} The [[XBCD|Xbox Controller Driver]] and the buggy Force Feedback Driver aren't required with this program.<br />
{{++}} Features a wide array of advanced options, tweaks, features and some major fixes which other wrappers may lack.<br />
{{++}} Can translate [[Glossary:Controller#DirectInput|DirectInput]] calls into [[Glossary:Controller#XInput|XInput]] and back. It can also be used on older games using '''dinput.dll''' and '''dinput8.dll'''.<br />
<br />
====[[Xbox 360 Controller Emulator#Setting Up|Xbox 360 Controller Emulator]]====<br />
{{++}} Can be used to force DirectInput controllers to be detected as XInput ones.<br />
{{++}} Useful for games which may require multiple players. It also features a wide array of options.<br />
{{--}} Does not work with games using [[Engine:Unity|Unity]] due to implementation differences.<ref>[https://github.com/x360ce/x360ce/issues/48 Issue 48 - x360ce - Hooking does not work with Unity Engine - x360ce/x360ce - GitHub]</ref><br />
<br />
====[https://github.com/csutorasa/XOutput XOutput]====<br />
{{++}} Converts DirectInput to XInput, reads and sends data to virtual XBox 360 controller.<br />
<br />
===Primary device===<br />
{{ii}} Some games only use controller set as primary controller on Windows and ignores the rest. If incorrect or no controllers are set to primary, game doesn't work with used controller.<br />
<br />
{{Fixbox|description=Set your used controller as primary one|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Push '''Advanced'''.<br />
# From dropdown list, locate your used controller and then push '''OK'''. <br />
}}<br />
<br />
===Multiple controller order for older games===<br />
<!-- This method assumes you only have two controllers so it kinda sucks, shouldn't the Xbox 360 Controller Emulator be used instead? --><br />
<!-- Add proper HOTAS instructions, would need an actual Joystick to test this. --><br />
{{Fixbox|description=Instructions|ref=<ref>{{Refcheck|user=Blackbird|date=2016-10-06|comment=Far as I can tell this is for DInput games only.}}</ref>|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Click on the '''Advanced''' button.<br />
# Select the '''Preferred device''' from the drop down menu located on the center.<br />
}}<br />
<br />
===Issues fixed===<br />
====Slow or random movement====<br />
{{ii}} This may be caused by worn out sticks or by low in-game deadzones.<br />
<br />
{{Fixbox|description=Calibrating|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Select the desired controller and click on the '''Properties''' button.<br />
# Select the '''Settings''' tab, then push the '''Calibrate''' button and follow the on screen instructions.<br />
}}<br />
<br />
====Fast movement====<br />
{{ii}} Remove any virtual controllers and use the [[Xbox 360 Controller Emulator]] instead. If the issue persists see below.<br />
{{--}} Common issue on games running on the [[Engine:Unity|Unity]] engine due to the Unity input manager using Raw Input instead of DirectInput.<br />
<br />
{{Fixbox|description=Finding Virtual Controllers|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Locate the name of the virtual controller driver or utility and remove it.<br />
}}<br />
{{Fixbox|description=Rebind Controller Buttons|fix=<br />
{{ii}} For [[Engine:Unity|Unity]] games with no launchers hold {{key|Shift}} to access the launcher as the game starts, then select the '''Input''' tab.<br />
{{ii}} Check the wiki article for the desired game to find a different rebinding solution. Configuration files may hold such settings.<br />
}}<br />
<br />
====SDL2====<br />
{{ii}} Many games use SDL2 to handle controller input. This means as long as the controller is on the list, game should detect, use it and give proper controller placement and prompts. Controllers that aren't on the list, do nothing and has to be manually added. <br />
{{ii}} To see what games use SDL2, refer to game-specific middleware section.<br />
<br />
{{Fixbox|description=Configure controller through Steam Big Picture modes settings|ref={{cn|date=July 2016}}|fix=<br />
{{--}} This method requires Steam to be installed on a machine.<br />
}}<br />
{{Fixbox|description=Use [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool]|ref={{cn|date=July 2016}}|fix=<br />
# Download and open [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool].<br />
# Select desired controller from dropdown menu.<br />
# Select "Create a new mapping" and press buttons accordingly. <br />
#* If some button isn't present on the controller, use the "Skip" button and if some key is registered twice, use the "previous" button. <br />
# Either set the string as enviromental variable, which should make the controller work with every SDL2 game or alternatively copy the string and paste it to {{code|gamecontrollerdb.txt}} found in games install folder. <br />
}}<br />
<br />
==macOS==<br />
===[http://www.orderedbytes.com/controllermate/ ControllerMate]===<br />
{{ii}} Allows customize various devices, including the keyboard and mouse, joystick, gamepads for use with your computer.<br />
{{++}} Programming is accomplished using "building blocks".<br />
{{--}} Unfriendly User Interface.<br />
<br />
===[http://www.usboverdrive.com/ USB Overdrive]===<br />
{{ii}} Device driver that handles any USB mouse, trackball, joystick, gamepad, media keyboard and any Bluetooth mouse and lets you configure them either globally or on a per-application, per-device basis.<br />
{{++}} It supports 64-bit kernels.<br />
<br />
==Linux==<br />
{{ii}} Most distributions come with the ''xpad'' driver already. If you're experiencing problems with using controllers in your game, or want to bind your keyboard to the controller, you may want to try ''[http://xboxdrv.gitlab.io/ xboxdrv]'', or refer to the controller-specific article for more information.<br />
===[https://github.com/jgeumlek/MoltenGamepad#moltengamepad MoltenGamepad]===<br />
{{ii}} Flexible Linux input device translator, geared for gamepads.<br />
{{++}} Create virtual gamepads that almost all games can use. Virtual gamepads are persistent, which fixes the numerous games that break when controllers are disconnected.<br />
{{++}} Flexible generic device driver framework, where only a text file is needed to support input sources that don't need special features. All configuration files are designed to be human-readable and editable.<br />
{{++}} Easy loading and saving of event mappings that can be changed at run time. <br />
{{++}} Specialized userspace driver for Wii remotes that make full use of extension controller hotswapping. Supports a command FIFO or socket for controlling a running instance of MoltenGamepad via scripting. Can handle cases where one event device represents multiple logical controllers (like an arcade stick), or vice versa.<br />
{{--}} Virtual devices can process rumble events, but this is disabled by default.<br />
<br />
==List of controllers==<br />
<!-- This list is ordered by the controller release date. The Logitech and Misc sections have been left alphabetized. --><br />
===8BitDo===<br />
* [[Controller:8BitDo Lite|8BitDo Lite]]<br />
* [[Controller:8BitDo M30|8BitDo M30]]<br />
* [[Controller:8BitDo N30|8BitDo N30]]<br />
* [[Controller:8BitDo N30 NS|8BitDo N30 NS]]<br />
* [[Controller:8BitDo N30 Pro 2|8BitDo N30 Pro 2]]<br />
* [[Controller:8BitDo SN30 Pro|8BitDo SN30 Pro]]<br />
* [[Controller:8BitDo SN30 Pro+|8BitDo SN30 Pro+]]<br />
* [[Controller:8BitDo SN30 Pro G Classic|8BitDo SN30 Pro G Classic]]<br />
* [[Controller:8BitDo SN30 Pro SN|8BitDo SN30 Pro SN]]<br />
* [[Controller:8BitDo SN30 GP|8BitDo SN30 GP]]<br />
* [[Controller:8BitDo Pro 2|8BitDo Pro 2]]<br />
* [[Controller:8BitDo Zero 2|8BitDo Zero 2]]<br />
<br />
===Amazon===<br />
* [[Controller:Amazon Fire Game Controller|Amazon Fire Game Controller]]<br />
* [[Controller:Amazon Fire TV Game Controller|Amazon Fire TV Game Controller]]<br />
* [[Controller:Amazon Luna Controller|Amazon Luna Controller]]<br />
<br />
===Astro===<br />
* [[Controller:Astro C40|Astro C40]]<br />
<br />
===Atari===<br />
* [[Controller:Atari CX40 Joystick|Atari CX40 Joystick]]<br />
* [[Controller:Atari CX78 Controller|Atari CX78 Controller]]<br />
* [[Controller:Atari VCS Wireless Classic Joystick|Atari VCS Wireless Classic Joystick]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Facebook===<br />
* [[Controller:Oculus Touch|Oculus Touch]]<br />
<br />
===Flydigi===<br />
* [[Controller:Flydigi Apex 2|Flydigi Apex 2]]<br />
<br />
===Hori===<br />
* [[Controller:HORI Mini Wired Gamepad|HORI Mini Wired Gamepad]]<br />
* [[Controller:HORI Wireless Pad|HORI Wireless Pad]]<br />
* [[Controller:Pokkén Tournament Pro Pad Controller|HORI Pokemon Tekken DX Pro Pad]]<br />
* [[Controller:HORI Pad Wired Controller|HORI Pad Wired Controller]]<br />
<br />
===Hyperkin===<br />
* [[Controller:Hyperkin Duke Controller|Hyperkin Duke Controller]]<br />
* [[Controller:Hyperkin X91|Hyperkin X91]]<br />
<br />
===Logitech===<br />
* [[Controller:Logitech Dual Action|Logitech Dual Action]]<br />
* [[Controller:Logitech Rumblepad 2|Logitech Rumblepad 2]]<br />
* [[Controller:Logitech Gamepad F310|Logitech Gamepad F310]]<br />
* [[Controller:Logitech Rumble Gamepad F510|Logitech Rumble Gamepad F510]]<br />
* [[Controller:Logitech Wireless Gamepad F710|Logitech Wireless Gamepad F710]]<br />
* [[Controller:Logitech Extreme 3D Pro|Logitech Extreme 3D Pro]]<br />
<br />
===Microsoft===<br />
'''Consoles:'''<br />
* [[Controller:Xbox Controller|Xbox Controller]]<br />
* [[Controller:Xbox 360 Controller|Xbox 360 Controller]]<br />
* [[Controller:Kinect|Kinect]]<br />
* [[Controller:Xbox One Controller|Xbox Wireless Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller|Xbox Elite Wireless Controller]]<br />
* [[Controller:Xbox Adaptive Controller|Xbox Adaptive Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite Wireless Controller 2]]<br />
* [[Controller:Xbox X Controller|Xbox Series X|S Wireless Controller]]<br />
<br />
'''PC:'''<br />
* [[Controller:Microsoft SideWinder Strategic Commander|Microsoft SideWinder Strategic Commander]]<br />
<br />
===Nacon===<br />
* [[Controller:Nacon Revolution Pro Controller|Nacon Revolution Pro Controller]]<br />
* [[Controller:Nacon Revolution Pro Controller 2|Nacon Revolution Pro Controller 2]]<br />
* [[Controller:Nacon Revolution Unlimited Pro|Nacon Revolution Unlimited Pro]]<br />
* [[Controller:Nacon Revolution Pro Controller 3|Nacon Revolution Pro Controller 3]]<br />
<br />
===Nintendo===<br />
'''Consoles:'''<br />
* [[Controller:Nintendo Entertainment System Controller|NES Controller]]<br />
* [[Controller:Super Nintendo Entertainment System Controller|SNES Controller]]<br />
* [[Controller:Virtual Boy Controller|Virtual Boy Controller]]<br />
* [[Controller:Nintendo 64 Controller|Nintendo 64 Controller]]<br />
* [[Controller:GameCube Controller|GameCube Controller]]<br />
* [[Controller:Wii Remote|Wii Remote]]<br />
* [[Controller:Classic Controller|Classic Controller]]<br />
* [[Controller:Classic Controller Pro|Classic Controller Pro]]<br />
* [[Controller:Wii U GamePad|Wii U GamePad]]<br />
* [[Controller:Wii U Pro Controller|Wii U Pro Controller]]<br />
* [[Controller:Switch Joy-Con|Switch Joy-Con]]<br />
* [[Controller:Switch Pro Controller|Switch Pro Controller]]<br />
* [[Controller:NES Classic Controller|NES Classic Controller]]<br />
* [[Controller:SNES Classic Controller|SNES Classic Controller]]<br />
'''Handhelds:'''<br />
* [[Controller:Game Boy|Game Boy]]<br />
* [[Controller:Game Boy Color|Game Boy Color]]<br />
* [[Controller:Game Boy Advance|Game Boy Advance]]<br />
* [[Controller:Nintendo DS|Nintendo DS]]<br />
* [[Controller:Nintendo 3DS|Nintendo 3DS]]<br />
<br />
===Nvidia===<br />
* [[Controller:Nvidia SHIELD Controller|SHIELD Controller (2015)]]<br />
* [[Controller:Nvidia SHIELD Controller (2017)|SHIELD Controller (2017)]]<br />
<br />
===PDP===<br />
* [[Controller:PDP Wired Fight Pad Pro|PDP Wired Fight Pad Pro]]<br />
* [[Controller:PDP Faceoff Deluxe Wired Pro Controller|PDP Faceoff Deluxe Wired Pro Controller]]<br />
* [[Controller:PDP Faceoff Wired Pro Controller|PDP Faceoff Wired Pro Controller]]<br />
<br />
===PowerA===<br />
* [[Controller:PowerA Wired Controller|PowerA Wired Controller]]<br />
* [[Controller:PowerA Spectra|PowerA Spectra]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Razer===<br />
* [[Controller:OUYA|OUYA Controller]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Hydra|Razer Hydra]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Raiju|Razer Raiju]]<br />
* [[Controller:Razer Wolverine|Razer Wolverine]]<br />
* [[Controller:Razer Raiju PS4|Razer Raiju PS4]]<br />
* [[Controller:Razer Raiju Ultimate Edition|Razer Raiju Ultimate Edition]]<br />
* [[Controller:Razer Raiju Tournament Edition|Razer Raiju Tournament Edition]]<br />
* [[Controller:Razer Atrox fight stick|Razer Atrox fight stick]]<br />
<br />
===Retro Fighters===<br />
* [[Controller:Retro Fighters JAB|JAB]]<br />
* [[Controller:Retro Fighters Brawler64|Brawler64]]<br />
* [[Controller:Retro Fighters BrawlerGen|BrawlerGen]]<br />
* [[Controller:Retro Fighters StrikerDC|StrikerDC]]<br />
* [[Controller:Retro Fighters Contender|Contender]]<br />
* [[Controller:Retro Fighters BladeGC|BladeGC]]<br />
<br />
===Sega===<br />
* [[Controller:Sega Master System Controller|Master System Controller]]<br />
* [[Controller:Sega Genesis Controller|Sega Genesis Controller]]<br />
* [[Controller:Sega Saturn Controller|Sega Saturn Controller]]<br />
* [[Controller:Dreamcast Controller|Dreamcast Controller]]<br />
<br />
===Sony===<br />
'''Consoles:'''<br />
* [[Controller:PlayStation Controller|PlayStation Controller]]<br />
* [[Controller:Dual Analog Controller|Dual Analog Controller]]<br />
* [[Controller:DualShock|DualShock]]<br />
* [[Controller:DualShock 2|DualShock 2]]<br />
* [[Controller:Sixaxis|Sixaxis]]<br />
* [[Controller:DualShock 3|DualShock 3]]<br />
* [[Controller:PlayStation Move|PlayStation Move]]<br />
* [[Controller:DualShock 4|DualShock 4]]<br />
* [[Controller:PlayStation Classic Controller|PlayStation Classic Controller]]<br />
* [[Controller:DualSense|DualSense]]<br />
'''Handhelds:'''<br />
* [[Controller:PlayStation Portable|PlayStation Portable]]<br />
* [[Controller:PlayStation Vita|PlayStation Vita]]<br />
<br />
===SteelSeries===<br />
* [[Controller:SteelSeries Stratus XL|SteelSeries Stratus XL]]<br />
* [[Controller:SteelSeries Stratus Duo|SteelSeries Stratus Duo]]<br />
<br />
===Valve===<br />
* [[Controller:Steam Controller|Steam Controller]]<br />
* [[Controller:Steam Link Touch Controller|Steam Link Touch Controller]]<br />
* [[Controller:Valve Index Controller|Valve Index Controller]]<br />
<br />
===Vive===<br />
* [[Controller:Vive Controller|Vive Controller]]<br />
* [[Controller:Vive Tracker|Vive Tracker]]<br />
<br />
===Google===<br />
* [[Controller:Stadia Controller|Stadia Controller]]<br />
<br />
===Miscellaneous===<br />
* [[Controller:Tobii Eye Tracking|Tobii Eye Tracking]]<br />
* [[Controller:Leap Motion Controller|Leap Motion]]<br />
* [[Controller:TT Premium X1 RGB App|TT Premium X1 RGB App (Virtual Game Controller)]]<br />
* [[Controller:Capcom Home Arcade|Capcom Home Arcade]]<br />
* [[Panasonic Q Controller|Panasonic Q Controller]]<br />
* [[Controller:Azeron Classic|Azeron Classic]]<br />
* [[Controller:Azeron Compact|Azeron Compact]]<br />
<br />
==Other information==<br />
===Controller hotplugging===<br />
{{ii}} Controller hotplugging is the ability to switch controllers without restarting a game.<br />
<br />
===DirectInput===<br />
{{ii}} DirectInput is Microsoft's older controller API (used with nearly all games until 2006). XInput controllers operate in DirectInput mode for these games. Logitech's F310 and F710 gamepads have a physical switch which should be set to "D" for these games.<br />
<br />
===XInput===<br />
{{ii}} XInput is Microsoft's API for Xbox 360-compatible controllers such as the official Xbox 360 Controller.<br />
<br />
===Windows.Gaming.Input===<br />
{{ii}} Windows.Gaming.Input is Microsoft's API for Xbox One-compatible controllers such as the official Xbox One Controller primarily built for [[Store:Microsoft Store|Universal Windows Platform]] apps, but can on occasions be found in Win32 games as well.<br />
{{mm}} An example of a new addition only available through the Windows.Gaming.Input API is the use of [[List of games that support Xbox One impulse triggers|the impulse triggers]] of the [[Xbox One Controller]].<br />
<br />
===[[Store:Steam#Steam_Input|Steam Input]]===<br />
{{ii}} Steam Input is feature of the [[Store:Steam|Steam client]] referring to the entire collection of software, hardware, and configuration utilities that Steam uses to interface with games. It acts like a wrapper using the Steam Community Overlay to intercept and manipulate player input before passing it on along to the game.<br />
<br />
{{References}}<br />
<br />
[[Category:Controller]]</div>Gildumhttps://www.pcgamingwiki.com/w/index.php?title=Glossary:Controller&diff=1193786Glossary:Controller2021-12-04T14:12:50Z<p>Gildum: /* AntiMicro (Windows and Linux) */</p>
<hr />
<div>{{cleanup|Correct any bad information. Keep things easy, clean and be complete when writing solutions, or I'll eat your donuts and I'll steal your cats}}<br />
{{Guide}}<br />
<br />
'''General information'''<br />
{{mm}} [[Wikipedia:DirectInput|DirectInput (and XInput) on Wikipedia]]<br />
{{mm}} [[Wikipedia:Xbox 360 controller|Xbox 360 Controller (XInput) on Wikipedia]]<br />
<br />
'''Key points'''<br />
{{ii}} '''Controllers''' are an alternative to keyboard and mouse input. Almost all recently released PC games support controllers, although many only support the newer [[#XInput|XInput]] controllers by default.<br />
<br />
==General==<br />
<!-- Yes I get it you hate this, but leave this section the way it is, if you have a program which is supported on two OSs, create a new category here, and list the OSs in the parethesis (Windows, OS X and Linux). --><br />
<!-- The General section is for software available under multiple OSs --><br />
===Controller to Keyboard Input===<br />
{{ii}} These utilities allow keyboard keys to be bound to any controller buttons for games with poor or no controller support. These keys must match with the in-game settings. <br />
<br />
====[[Store:Steam#Steam Input|Steam Input]] (Windows, macOS and Linux)====<br />
{{ii}} Works with non-Steam games if they're added and launched through Steam.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. keyboard/mouse input mapped to a controller, XInput support for DirectInput-only devices, etc).<br />
{{--}} Overrules games own possible controller specific configurations e.g. automatic button prompt change.<br />
{{--}} UI for changing bindings is very much made with controllers in mind.<br />
{{--}} Requires [[Steam]] and the Steam Overlay to function.<br />
{{ii}} When game is blocking 3rd party game overlays you can use [https://github.com/Alia5/GlosSI GlosSI].<br />
<br />
====[https://www.rewasd.com reWASD] (Windows)====<br />
{{ii}} Supported controllers: [[Controller:Xbox Elite Wireless Controller|Xbox Elite 1]]/[[Controller:Xbox Elite Wireless Controller 2|2]], [[Controller:DualSense|DualSense]], [[Controller:Xbox One Controller|Xbox One/S/X]], [[Controller:DualShock 4|DualShock 4]], [[Controller:DualShock 3|DualShock 3]], [[Controller:PlayStation Move|PS3 Navigation]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:GameCube Controller|GameCube]], [[Controller:Switch_Joy-Con|Joy-Con]], Azeron, [[Controller:Steam Controller|Steam]], [[Controller:Nvidia SHIELD Controller|Nvidia SHIELD]].<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. allows you to remap controller to keyboard & mouse, reassign with Xbox Elite paddles and turn your ordinary joystick to Turbo & Macro controller).<br />
{{++}} You can chose which driver (Virtual X360, XOne or DS4) has to be used by connected device. This allows to run PS4 Remote Play or PS Now on Xbox controllers or even on keyboard & mouse.<br />
{{++}} Allows remapping and Keyboard and Mouse keys to keyboard, mouse or controller buttons.<br />
{{++}} Allows use of [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game.<br />
{{++}} Allows use of [[Controller:Steam Controller|Steam Controller]] without Steam.<br />
{{++}} Allows [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo on PC.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Runs on Windows 10, 8.1, 8 and 7.<br />
{{--}} 14-days trial. Full license can cost up to 33 € (Application + Combo + Advanced mapping + 4 Slots + Rapid Fire).<br />
<br />
====[https://github.com/Electronicks/JoyShockMapper JoyShockMapper] (Windows)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} Converts [[Controller:DualShock 4|DualShock 4]], [[Controller:Switch_Joy-Con|JoyCon]], and [[Controller:Switch Pro Controller|Pro Controller]] input into keyboard and mouse events.<br />
{{++}} Innovative "Flick Stick" support - adjusting rotation of a stick to the same rotation in game<ref>[https://www.youtube.com/watch?v=C5L_Px3dFtE Gyro Gaming - Intro to Flick Stick]</ref>.<br />
{{++}} Allows using gyro controls. Community Configs you can find on [http://gyrowiki.jibbsmart.com/games GyroWiki].<br />
<br />
====[http://controllercompanion.com/ Controller Companion] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers. Application comes with an installer for [[Xbox 360 Controller Emulator|Xbox 360 Controller Emulator (x360ce)]] which will allow use Playstation controllers.<br />
{{++}} Using [https://steamcommunity.com/workshop/about/?appid=367670 Steam Workshop] as community configs database.<br />
{{++}} Very user friendly User Interface, bindings are easy to configure.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface.<br />
{{++}} Auto-disable whenever another program, game or Steam Big Picture is running.<br />
<br />
====[https://github.com/AntiMicro/antimicro/releases AntiMicro] (Windows and Linux)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} [https://github.com/AntiMicroX/antimicroX AntimicroX] is continuation of project for Linux. With version 3.2.0 Windows is now supported<ref>[https://github.com/AntiMicroX/antimicrox/releases/tag/3.2.0 AntiMicroX-3.2.0 - GitHub]</ref>.<br />
{{++}} Allows any mouse and keyboard input to be bound to any controller buttons across different profiles.<br />
{{--}} On Linux, it works only in Xorg environment.<br />
<br />
====[https://joyxoff.com/en/ JoyXoff] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface or Xbox One themed plain virtual keyboard.<br />
{{--}} For Playstation controllers Xbox 360 Controller Emulator (x360ce) is needed.<br />
<br />
==Windows==<br />
===XInput wrappers===<br />
{{ii}} Generic game controllers are classified as [[Glossary:Controller#DirectInput|DirectInput]] by Windows, these can be used in any games with [[Glossary:Controller#XInput|XInput]] support by using a wrapper.<br />
{{ii}} See [[#Controller to Keyboard Input|Controller to Keyboard Input]] for games with no controller support.<br />
<br />
====[[Glossary:Controller#Steam Input (Windows, macOS and Linux)|Steam Input]]====<br />
{{++}} Very easy to set up if you have Steam installed.<br />
{{++}} With controllers like [[Controller:DualShock 4|DualShock 4]] and [[Controller:Switch Pro Controller|Switch Pro Controller]] allows haptic feedback passtrough as well.<br />
<br />
====[[Glossary:Controller#reWASD (Windows)|reWASD]]====<br />
{{++}} Supports all main controllers, including [[Controller:Xbox Elite Wireless Controller|Xbox Elite]], [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite 2]], [[Controller:Xbox One Controller|Xbox One]], [[Controller:DualShock 3|DualShock 3]], [[Controller:DualShock 4|DualShock 4]], [[Controller:PlayStation Move|PS Navigation]], [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:Switch_Joy-Con|Joy-Con]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Steam Controller|Steam]], [[Controller:GameCube Controller|GameCube]].<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo. Allows use [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game and lets [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Big community [https://www.rewasd.com/community config database] with online preview.<br />
<br />
====[https://github.com/KrossX/Durazno Durazno]====<br />
{{++}} Allows XInput controllers to be customized.<br />
<br />
====[https://community.pcgamingwiki.com/files/file/2034-xinputplus-ver-415/ XInput Plus]====<br />
{{ii}} The [[XBCD|Xbox Controller Driver]] and the buggy Force Feedback Driver aren't required with this program.<br />
{{++}} Features a wide array of advanced options, tweaks, features and some major fixes which other wrappers may lack.<br />
{{++}} Can translate [[Glossary:Controller#DirectInput|DirectInput]] calls into [[Glossary:Controller#XInput|XInput]] and back. It can also be used on older games using '''dinput.dll''' and '''dinput8.dll'''.<br />
<br />
====[[Xbox 360 Controller Emulator#Setting Up|Xbox 360 Controller Emulator]]====<br />
{{++}} Can be used to force DirectInput controllers to be detected as XInput ones.<br />
{{++}} Useful for games which may require multiple players. It also features a wide array of options.<br />
{{--}} Does not work with games using [[Engine:Unity|Unity]] due to implementation differences.<ref>[https://github.com/x360ce/x360ce/issues/48 Issue 48 - x360ce - Hooking does not work with Unity Engine - x360ce/x360ce - GitHub]</ref><br />
<br />
====[https://github.com/csutorasa/XOutput XOutput]====<br />
{{++}} Converts DirectInput to XInput, reads and sends data to virtual XBox 360 controller.<br />
<br />
===Primary device===<br />
{{ii}} Some games only use controller set as primary controller on Windows and ignores the rest. If incorrect or no controllers are set to primary, game doesn't work with used controller.<br />
<br />
{{Fixbox|description=Set your used controller as primary one|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Push '''Advanced'''.<br />
# From dropdown list, locate your used controller and then push '''OK'''. <br />
}}<br />
<br />
===Multiple controller order for older games===<br />
<!-- This method assumes you only have two controllers so it kinda sucks, shouldn't the Xbox 360 Controller Emulator be used instead? --><br />
<!-- Add proper HOTAS instructions, would need an actual Joystick to test this. --><br />
{{Fixbox|description=Instructions|ref=<ref>{{Refcheck|user=Blackbird|date=2016-10-06|comment=Far as I can tell this is for DInput games only.}}</ref>|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Click on the '''Advanced''' button.<br />
# Select the '''Preferred device''' from the drop down menu located on the center.<br />
}}<br />
<br />
===Issues fixed===<br />
====Slow or random movement====<br />
{{ii}} This may be caused by worn out sticks or by low in-game deadzones.<br />
<br />
{{Fixbox|description=Calibrating|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Select the desired controller and click on the '''Properties''' button.<br />
# Select the '''Settings''' tab, then push the '''Calibrate''' button and follow the on screen instructions.<br />
}}<br />
<br />
====Fast movement====<br />
{{ii}} Remove any virtual controllers and use the [[Xbox 360 Controller Emulator]] instead. If the issue persists see below.<br />
{{--}} Common issue on games running on the [[Engine:Unity|Unity]] engine due to the Unity input manager using Raw Input instead of DirectInput.<br />
<br />
{{Fixbox|description=Finding Virtual Controllers|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Locate the name of the virtual controller driver or utility and remove it.<br />
}}<br />
{{Fixbox|description=Rebind Controller Buttons|fix=<br />
{{ii}} For [[Engine:Unity|Unity]] games with no launchers hold {{key|Shift}} to access the launcher as the game starts, then select the '''Input''' tab.<br />
{{ii}} Check the wiki article for the desired game to find a different rebinding solution. Configuration files may hold such settings.<br />
}}<br />
<br />
====SDL2====<br />
{{ii}} Many games use SDL2 to handle controller input. This means as long as the controller is on the list, game should detect, use it and give proper controller placement and prompts. Controllers that aren't on the list, do nothing and has to be manually added. <br />
{{ii}} To see what games use SDL2, refer to game-specific middleware section.<br />
<br />
{{Fixbox|description=Configure controller through Steam Big Picture modes settings|ref={{cn|date=July 2016}}|fix=<br />
{{--}} This method requires Steam to be installed on a machine.<br />
}}<br />
{{Fixbox|description=Use [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool]|ref={{cn|date=July 2016}}|fix=<br />
# Download and open [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool].<br />
# Select desired controller from dropdown menu.<br />
# Select "Create a new mapping" and press buttons accordingly. <br />
#* If some button isn't present on the controller, use the "Skip" button and if some key is registered twice, use the "previous" button. <br />
# Either set the string as enviromental variable, which should make the controller work with every SDL2 game or alternatively copy the string and paste it to {{code|gamecontrollerdb.txt}} found in games install folder. <br />
}}<br />
<br />
==macOS==<br />
===[http://www.orderedbytes.com/controllermate/ ControllerMate]===<br />
{{ii}} Allows customize various devices, including the keyboard and mouse, joystick, gamepads for use with your computer.<br />
{{++}} Programming is accomplished using "building blocks".<br />
{{--}} Unfriendly User Interface.<br />
<br />
===[http://www.usboverdrive.com/ USB Overdrive]===<br />
{{ii}} Device driver that handles any USB mouse, trackball, joystick, gamepad, media keyboard and any Bluetooth mouse and lets you configure them either globally or on a per-application, per-device basis.<br />
{{++}} It supports 64-bit kernels.<br />
<br />
==Linux==<br />
{{ii}} Most distributions come with the ''xpad'' driver already. If you're experiencing problems with using controllers in your game, or want to bind your keyboard to the controller, you may want to try ''[http://xboxdrv.gitlab.io/ xboxdrv]'', or refer to the controller-specific article for more information.<br />
===[https://github.com/jgeumlek/MoltenGamepad#moltengamepad MoltenGamepad]===<br />
{{ii}} Flexible Linux input device translator, geared for gamepads.<br />
{{++}} Create virtual gamepads that almost all games can use. Virtual gamepads are persistent, which fixes the numerous games that break when controllers are disconnected.<br />
{{++}} Flexible generic device driver framework, where only a text file is needed to support input sources that don't need special features. All configuration files are designed to be human-readable and editable.<br />
{{++}} Easy loading and saving of event mappings that can be changed at run time. <br />
{{++}} Specialized userspace driver for Wii remotes that make full use of extension controller hotswapping. Supports a command FIFO or socket for controlling a running instance of MoltenGamepad via scripting. Can handle cases where one event device represents multiple logical controllers (like an arcade stick), or vice versa.<br />
{{--}} Virtual devices can process rumble events, but this is disabled by default.<br />
<br />
==List of controllers==<br />
<!-- This list is ordered by the controller release date. The Logitech and Misc sections have been left alphabetized. --><br />
===8BitDo===<br />
* [[Controller:8BitDo Lite|8BitDo Lite]]<br />
* [[Controller:8BitDo M30|8BitDo M30]]<br />
* [[Controller:8BitDo N30|8BitDo N30]]<br />
* [[Controller:8BitDo N30 NS|8BitDo N30 NS]]<br />
* [[Controller:8BitDo N30 Pro 2|8BitDo N30 Pro 2]]<br />
* [[Controller:8BitDo SN30 Pro|8BitDo SN30 Pro]]<br />
* [[Controller:8BitDo SN30 Pro+|8BitDo SN30 Pro+]]<br />
* [[Controller:8BitDo SN30 Pro G Classic|8BitDo SN30 Pro G Classic]]<br />
* [[Controller:8BitDo SN30 Pro SN|8BitDo SN30 Pro SN]]<br />
* [[Controller:8BitDo SN30 GP|8BitDo SN30 GP]]<br />
* [[Controller:8BitDo Pro 2|8BitDo Pro 2]]<br />
* [[Controller:8BitDo Zero 2|8BitDo Zero 2]]<br />
<br />
===Amazon===<br />
* [[Controller:Amazon Fire Game Controller|Amazon Fire Game Controller]]<br />
* [[Controller:Amazon Fire TV Game Controller|Amazon Fire TV Game Controller]]<br />
* [[Controller:Amazon Luna Controller|Amazon Luna Controller]]<br />
<br />
===Astro===<br />
* [[Controller:Astro C40|Astro C40]]<br />
<br />
===Atari===<br />
* [[Controller:Atari CX40 Joystick|Atari CX40 Joystick]]<br />
* [[Controller:Atari CX78 Controller|Atari CX78 Controller]]<br />
* [[Controller:Atari VCS Wireless Classic Joystick|Atari VCS Wireless Classic Joystick]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Facebook===<br />
* [[Controller:Oculus Touch|Oculus Touch]]<br />
<br />
===Flydigi===<br />
* [[Controller:Flydigi Apex 2|Flydigi Apex 2]]<br />
<br />
===Hori===<br />
* [[Controller:HORI Mini Wired Gamepad|HORI Mini Wired Gamepad]]<br />
* [[Controller:HORI Wireless Pad|HORI Wireless Pad]]<br />
* [[Controller:Pokkén Tournament Pro Pad Controller|HORI Pokemon Tekken DX Pro Pad]]<br />
* [[Controller:HORI Pad Wired Controller|HORI Pad Wired Controller]]<br />
<br />
===Hyperkin===<br />
* [[Controller:Hyperkin Duke Controller|Hyperkin Duke Controller]]<br />
* [[Controller:Hyperkin X91|Hyperkin X91]]<br />
<br />
===Logitech===<br />
* [[Controller:Logitech Dual Action|Logitech Dual Action]]<br />
* [[Controller:Logitech Rumblepad 2|Logitech Rumblepad 2]]<br />
* [[Controller:Logitech Gamepad F310|Logitech Gamepad F310]]<br />
* [[Controller:Logitech Rumble Gamepad F510|Logitech Rumble Gamepad F510]]<br />
* [[Controller:Logitech Wireless Gamepad F710|Logitech Wireless Gamepad F710]]<br />
* [[Controller:Logitech Extreme 3D Pro|Logitech Extreme 3D Pro]]<br />
<br />
===Microsoft===<br />
'''Consoles:'''<br />
* [[Controller:Xbox Controller|Xbox Controller]]<br />
* [[Controller:Xbox 360 Controller|Xbox 360 Controller]]<br />
* [[Controller:Kinect|Kinect]]<br />
* [[Controller:Xbox One Controller|Xbox Wireless Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller|Xbox Elite Wireless Controller]]<br />
* [[Controller:Xbox Adaptive Controller|Xbox Adaptive Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite Wireless Controller 2]]<br />
* [[Controller:Xbox X Controller|Xbox Series X|S Wireless Controller]]<br />
<br />
'''PC:'''<br />
* [[Controller:Microsoft SideWinder Strategic Commander|Microsoft SideWinder Strategic Commander]]<br />
<br />
===Nacon===<br />
* [[Controller:Nacon Revolution Pro Controller|Nacon Revolution Pro Controller]]<br />
* [[Controller:Nacon Revolution Pro Controller 2|Nacon Revolution Pro Controller 2]]<br />
* [[Controller:Nacon Revolution Unlimited Pro|Nacon Revolution Unlimited Pro]]<br />
* [[Controller:Nacon Revolution Pro Controller 3|Nacon Revolution Pro Controller 3]]<br />
<br />
===Nintendo===<br />
'''Consoles:'''<br />
* [[Controller:Nintendo Entertainment System Controller|NES Controller]]<br />
* [[Controller:Super Nintendo Entertainment System Controller|SNES Controller]]<br />
* [[Controller:Virtual Boy Controller|Virtual Boy Controller]]<br />
* [[Controller:Nintendo 64 Controller|Nintendo 64 Controller]]<br />
* [[Controller:GameCube Controller|GameCube Controller]]<br />
* [[Controller:Wii Remote|Wii Remote]]<br />
* [[Controller:Classic Controller|Classic Controller]]<br />
* [[Controller:Classic Controller Pro|Classic Controller Pro]]<br />
* [[Controller:Wii U GamePad|Wii U GamePad]]<br />
* [[Controller:Wii U Pro Controller|Wii U Pro Controller]]<br />
* [[Controller:Switch Joy-Con|Switch Joy-Con]]<br />
* [[Controller:Switch Pro Controller|Switch Pro Controller]]<br />
* [[Controller:NES Classic Controller|NES Classic Controller]]<br />
* [[Controller:SNES Classic Controller|SNES Classic Controller]]<br />
'''Handhelds:'''<br />
* [[Controller:Game Boy|Game Boy]]<br />
* [[Controller:Game Boy Color|Game Boy Color]]<br />
* [[Controller:Game Boy Advance|Game Boy Advance]]<br />
* [[Controller:Nintendo DS|Nintendo DS]]<br />
* [[Controller:Nintendo 3DS|Nintendo 3DS]]<br />
<br />
===Nvidia===<br />
* [[Controller:Nvidia SHIELD Controller|SHIELD Controller (2015)]]<br />
* [[Controller:Nvidia SHIELD Controller (2017)|SHIELD Controller (2017)]]<br />
<br />
===PDP===<br />
* [[Controller:PDP Wired Fight Pad Pro|PDP Wired Fight Pad Pro]]<br />
* [[Controller:PDP Faceoff Deluxe Wired Pro Controller|PDP Faceoff Deluxe Wired Pro Controller]]<br />
* [[Controller:PDP Faceoff Wired Pro Controller|PDP Faceoff Wired Pro Controller]]<br />
<br />
===PowerA===<br />
* [[Controller:PowerA Wired Controller|PowerA Wired Controller]]<br />
* [[Controller:PowerA Spectra|PowerA Spectra]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Razer===<br />
* [[Controller:OUYA|OUYA Controller]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Hydra|Razer Hydra]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Raiju|Razer Raiju]]<br />
* [[Controller:Razer Wolverine|Razer Wolverine]]<br />
* [[Controller:Razer Raiju PS4|Razer Raiju PS4]]<br />
* [[Controller:Razer Raiju Ultimate Edition|Razer Raiju Ultimate Edition]]<br />
* [[Controller:Razer Raiju Tournament Edition|Razer Raiju Tournament Edition]]<br />
* [[Controller:Razer Atrox fight stick|Razer Atrox fight stick]]<br />
<br />
===Retro Fighters===<br />
* [[Controller:Retro Fighters JAB|JAB]]<br />
* [[Controller:Retro Fighters Brawler64|Brawler64]]<br />
* [[Controller:Retro Fighters BrawlerGen|BrawlerGen]]<br />
* [[Controller:Retro Fighters StrikerDC|StrikerDC]]<br />
* [[Controller:Retro Fighters Contender|Contender]]<br />
* [[Controller:Retro Fighters BladeGC|BladeGC]]<br />
<br />
===Sega===<br />
* [[Controller:Sega Master System Controller|Master System Controller]]<br />
* [[Controller:Sega Genesis Controller|Sega Genesis Controller]]<br />
* [[Controller:Sega Saturn Controller|Sega Saturn Controller]]<br />
* [[Controller:Dreamcast Controller|Dreamcast Controller]]<br />
<br />
===Sony===<br />
'''Consoles:'''<br />
* [[Controller:PlayStation Controller|PlayStation Controller]]<br />
* [[Controller:Dual Analog Controller|Dual Analog Controller]]<br />
* [[Controller:DualShock|DualShock]]<br />
* [[Controller:DualShock 2|DualShock 2]]<br />
* [[Controller:Sixaxis|Sixaxis]]<br />
* [[Controller:DualShock 3|DualShock 3]]<br />
* [[Controller:PlayStation Move|PlayStation Move]]<br />
* [[Controller:DualShock 4|DualShock 4]]<br />
* [[Controller:PlayStation Classic Controller|PlayStation Classic Controller]]<br />
* [[Controller:DualSense|DualSense]]<br />
'''Handhelds:'''<br />
* [[Controller:PlayStation Portable|PlayStation Portable]]<br />
* [[Controller:PlayStation Vita|PlayStation Vita]]<br />
<br />
===SteelSeries===<br />
* [[Controller:SteelSeries Stratus XL|SteelSeries Stratus XL]]<br />
* [[Controller:SteelSeries Stratus Duo|SteelSeries Stratus Duo]]<br />
<br />
===Valve===<br />
* [[Controller:Steam Controller|Steam Controller]]<br />
* [[Controller:Steam Link Touch Controller|Steam Link Touch Controller]]<br />
* [[Controller:Valve Index Controller|Valve Index Controller]]<br />
<br />
===Vive===<br />
* [[Controller:Vive Controller|Vive Controller]]<br />
* [[Controller:Vive Tracker|Vive Tracker]]<br />
<br />
===Google===<br />
* [[Controller:Stadia Controller|Stadia Controller]]<br />
<br />
===Miscellaneous===<br />
* [[Controller:Tobii Eye Tracking|Tobii Eye Tracking]]<br />
* [[Controller:Leap Motion Controller|Leap Motion]]<br />
* [[Controller:TT Premium X1 RGB App|TT Premium X1 RGB App (Virtual Game Controller)]]<br />
* [[Controller:Capcom Home Arcade|Capcom Home Arcade]]<br />
* [[Panasonic Q Controller|Panasonic Q Controller]]<br />
* [[Controller:Azeron Classic|Azeron Classic]]<br />
* [[Controller:Azeron Compact|Azeron Compact]]<br />
<br />
==Other information==<br />
===Controller hotplugging===<br />
{{ii}} Controller hotplugging is the ability to switch controllers without restarting a game.<br />
<br />
===DirectInput===<br />
{{ii}} DirectInput is Microsoft's older controller API (used with nearly all games until 2006). XInput controllers operate in DirectInput mode for these games. Logitech's F310 and F710 gamepads have a physical switch which should be set to "D" for these games.<br />
<br />
===XInput===<br />
{{ii}} XInput is Microsoft's API for Xbox 360-compatible controllers such as the official Xbox 360 Controller.<br />
<br />
===Windows.Gaming.Input===<br />
{{ii}} Windows.Gaming.Input is Microsoft's API for Xbox One-compatible controllers such as the official Xbox One Controller primarily built for [[Store:Microsoft Store|Universal Windows Platform]] apps, but can on occasions be found in Win32 games as well.<br />
{{mm}} An example of a new addition only available through the Windows.Gaming.Input API is the use of [[List of games that support Xbox One impulse triggers|the impulse triggers]] of the [[Xbox One Controller]].<br />
<br />
===[[Store:Steam#Steam_Input|Steam Input]]===<br />
{{ii}} Steam Input is feature of the [[Store:Steam|Steam client]] referring to the entire collection of software, hardware, and configuration utilities that Steam uses to interface with games. It acts like a wrapper using the Steam Community Overlay to intercept and manipulate player input before passing it on along to the game.<br />
<br />
{{References}}<br />
<br />
[[Category:Controller]]</div>Gildumhttps://www.pcgamingwiki.com/w/index.php?title=Glossary:Controller&diff=1193785Glossary:Controller2021-12-04T14:11:59Z<p>Gildum: /* AntiMicro (Windows and Linux) */</p>
<hr />
<div>{{cleanup|Correct any bad information. Keep things easy, clean and be complete when writing solutions, or I'll eat your donuts and I'll steal your cats}}<br />
{{Guide}}<br />
<br />
'''General information'''<br />
{{mm}} [[Wikipedia:DirectInput|DirectInput (and XInput) on Wikipedia]]<br />
{{mm}} [[Wikipedia:Xbox 360 controller|Xbox 360 Controller (XInput) on Wikipedia]]<br />
<br />
'''Key points'''<br />
{{ii}} '''Controllers''' are an alternative to keyboard and mouse input. Almost all recently released PC games support controllers, although many only support the newer [[#XInput|XInput]] controllers by default.<br />
<br />
==General==<br />
<!-- Yes I get it you hate this, but leave this section the way it is, if you have a program which is supported on two OSs, create a new category here, and list the OSs in the parethesis (Windows, OS X and Linux). --><br />
<!-- The General section is for software available under multiple OSs --><br />
===Controller to Keyboard Input===<br />
{{ii}} These utilities allow keyboard keys to be bound to any controller buttons for games with poor or no controller support. These keys must match with the in-game settings. <br />
<br />
====[[Store:Steam#Steam Input|Steam Input]] (Windows, macOS and Linux)====<br />
{{ii}} Works with non-Steam games if they're added and launched through Steam.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. keyboard/mouse input mapped to a controller, XInput support for DirectInput-only devices, etc).<br />
{{--}} Overrules games own possible controller specific configurations e.g. automatic button prompt change.<br />
{{--}} UI for changing bindings is very much made with controllers in mind.<br />
{{--}} Requires [[Steam]] and the Steam Overlay to function.<br />
{{ii}} When game is blocking 3rd party game overlays you can use [https://github.com/Alia5/GlosSI GlosSI].<br />
<br />
====[https://www.rewasd.com reWASD] (Windows)====<br />
{{ii}} Supported controllers: [[Controller:Xbox Elite Wireless Controller|Xbox Elite 1]]/[[Controller:Xbox Elite Wireless Controller 2|2]], [[Controller:DualSense|DualSense]], [[Controller:Xbox One Controller|Xbox One/S/X]], [[Controller:DualShock 4|DualShock 4]], [[Controller:DualShock 3|DualShock 3]], [[Controller:PlayStation Move|PS3 Navigation]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:GameCube Controller|GameCube]], [[Controller:Switch_Joy-Con|Joy-Con]], Azeron, [[Controller:Steam Controller|Steam]], [[Controller:Nvidia SHIELD Controller|Nvidia SHIELD]].<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. allows you to remap controller to keyboard & mouse, reassign with Xbox Elite paddles and turn your ordinary joystick to Turbo & Macro controller).<br />
{{++}} You can chose which driver (Virtual X360, XOne or DS4) has to be used by connected device. This allows to run PS4 Remote Play or PS Now on Xbox controllers or even on keyboard & mouse.<br />
{{++}} Allows remapping and Keyboard and Mouse keys to keyboard, mouse or controller buttons.<br />
{{++}} Allows use of [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game.<br />
{{++}} Allows use of [[Controller:Steam Controller|Steam Controller]] without Steam.<br />
{{++}} Allows [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo on PC.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Runs on Windows 10, 8.1, 8 and 7.<br />
{{--}} 14-days trial. Full license can cost up to 33 € (Application + Combo + Advanced mapping + 4 Slots + Rapid Fire).<br />
<br />
====[https://github.com/Electronicks/JoyShockMapper JoyShockMapper] (Windows)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} Converts [[Controller:DualShock 4|DualShock 4]], [[Controller:Switch_Joy-Con|JoyCon]], and [[Controller:Switch Pro Controller|Pro Controller]] input into keyboard and mouse events.<br />
{{++}} Innovative "Flick Stick" support - adjusting rotation of a stick to the same rotation in game<ref>[https://www.youtube.com/watch?v=C5L_Px3dFtE Gyro Gaming - Intro to Flick Stick]</ref>.<br />
{{++}} Allows using gyro controls. Community Configs you can find on [http://gyrowiki.jibbsmart.com/games GyroWiki].<br />
<br />
====[http://controllercompanion.com/ Controller Companion] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers. Application comes with an installer for [[Xbox 360 Controller Emulator|Xbox 360 Controller Emulator (x360ce)]] which will allow use Playstation controllers.<br />
{{++}} Using [https://steamcommunity.com/workshop/about/?appid=367670 Steam Workshop] as community configs database.<br />
{{++}} Very user friendly User Interface, bindings are easy to configure.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface.<br />
{{++}} Auto-disable whenever another program, game or Steam Big Picture is running.<br />
<br />
====[https://github.com/AntiMicro/antimicro/releases AntiMicro] (Windows and Linux)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} [https://github.com/AntiMicroX/antimicroX AntimicroX] is continuation of project for Linux. With version 3.2.0 Windows is now supported<ref>[https://github.com/AntiMicroX/antimicrox/releases/tag/3.2.0 AntiMicroX-3.2.0 - Github]</ref>.<br />
{{++}} Allows any mouse and keyboard input to be bound to any controller buttons across different profiles.<br />
{{--}} On Linux, it works only in Xorg environment.<br />
<br />
====[https://joyxoff.com/en/ JoyXoff] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface or Xbox One themed plain virtual keyboard.<br />
{{--}} For Playstation controllers Xbox 360 Controller Emulator (x360ce) is needed.<br />
<br />
==Windows==<br />
===XInput wrappers===<br />
{{ii}} Generic game controllers are classified as [[Glossary:Controller#DirectInput|DirectInput]] by Windows, these can be used in any games with [[Glossary:Controller#XInput|XInput]] support by using a wrapper.<br />
{{ii}} See [[#Controller to Keyboard Input|Controller to Keyboard Input]] for games with no controller support.<br />
<br />
====[[Glossary:Controller#Steam Input (Windows, macOS and Linux)|Steam Input]]====<br />
{{++}} Very easy to set up if you have Steam installed.<br />
{{++}} With controllers like [[Controller:DualShock 4|DualShock 4]] and [[Controller:Switch Pro Controller|Switch Pro Controller]] allows haptic feedback passtrough as well.<br />
<br />
====[[Glossary:Controller#reWASD (Windows)|reWASD]]====<br />
{{++}} Supports all main controllers, including [[Controller:Xbox Elite Wireless Controller|Xbox Elite]], [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite 2]], [[Controller:Xbox One Controller|Xbox One]], [[Controller:DualShock 3|DualShock 3]], [[Controller:DualShock 4|DualShock 4]], [[Controller:PlayStation Move|PS Navigation]], [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:Switch_Joy-Con|Joy-Con]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Steam Controller|Steam]], [[Controller:GameCube Controller|GameCube]].<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo. Allows use [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game and lets [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Big community [https://www.rewasd.com/community config database] with online preview.<br />
<br />
====[https://github.com/KrossX/Durazno Durazno]====<br />
{{++}} Allows XInput controllers to be customized.<br />
<br />
====[https://community.pcgamingwiki.com/files/file/2034-xinputplus-ver-415/ XInput Plus]====<br />
{{ii}} The [[XBCD|Xbox Controller Driver]] and the buggy Force Feedback Driver aren't required with this program.<br />
{{++}} Features a wide array of advanced options, tweaks, features and some major fixes which other wrappers may lack.<br />
{{++}} Can translate [[Glossary:Controller#DirectInput|DirectInput]] calls into [[Glossary:Controller#XInput|XInput]] and back. It can also be used on older games using '''dinput.dll''' and '''dinput8.dll'''.<br />
<br />
====[[Xbox 360 Controller Emulator#Setting Up|Xbox 360 Controller Emulator]]====<br />
{{++}} Can be used to force DirectInput controllers to be detected as XInput ones.<br />
{{++}} Useful for games which may require multiple players. It also features a wide array of options.<br />
{{--}} Does not work with games using [[Engine:Unity|Unity]] due to implementation differences.<ref>[https://github.com/x360ce/x360ce/issues/48 Issue 48 - x360ce - Hooking does not work with Unity Engine - x360ce/x360ce - GitHub]</ref><br />
<br />
====[https://github.com/csutorasa/XOutput XOutput]====<br />
{{++}} Converts DirectInput to XInput, reads and sends data to virtual XBox 360 controller.<br />
<br />
===Primary device===<br />
{{ii}} Some games only use controller set as primary controller on Windows and ignores the rest. If incorrect or no controllers are set to primary, game doesn't work with used controller.<br />
<br />
{{Fixbox|description=Set your used controller as primary one|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Push '''Advanced'''.<br />
# From dropdown list, locate your used controller and then push '''OK'''. <br />
}}<br />
<br />
===Multiple controller order for older games===<br />
<!-- This method assumes you only have two controllers so it kinda sucks, shouldn't the Xbox 360 Controller Emulator be used instead? --><br />
<!-- Add proper HOTAS instructions, would need an actual Joystick to test this. --><br />
{{Fixbox|description=Instructions|ref=<ref>{{Refcheck|user=Blackbird|date=2016-10-06|comment=Far as I can tell this is for DInput games only.}}</ref>|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Click on the '''Advanced''' button.<br />
# Select the '''Preferred device''' from the drop down menu located on the center.<br />
}}<br />
<br />
===Issues fixed===<br />
====Slow or random movement====<br />
{{ii}} This may be caused by worn out sticks or by low in-game deadzones.<br />
<br />
{{Fixbox|description=Calibrating|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Select the desired controller and click on the '''Properties''' button.<br />
# Select the '''Settings''' tab, then push the '''Calibrate''' button and follow the on screen instructions.<br />
}}<br />
<br />
====Fast movement====<br />
{{ii}} Remove any virtual controllers and use the [[Xbox 360 Controller Emulator]] instead. If the issue persists see below.<br />
{{--}} Common issue on games running on the [[Engine:Unity|Unity]] engine due to the Unity input manager using Raw Input instead of DirectInput.<br />
<br />
{{Fixbox|description=Finding Virtual Controllers|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Locate the name of the virtual controller driver or utility and remove it.<br />
}}<br />
{{Fixbox|description=Rebind Controller Buttons|fix=<br />
{{ii}} For [[Engine:Unity|Unity]] games with no launchers hold {{key|Shift}} to access the launcher as the game starts, then select the '''Input''' tab.<br />
{{ii}} Check the wiki article for the desired game to find a different rebinding solution. Configuration files may hold such settings.<br />
}}<br />
<br />
====SDL2====<br />
{{ii}} Many games use SDL2 to handle controller input. This means as long as the controller is on the list, game should detect, use it and give proper controller placement and prompts. Controllers that aren't on the list, do nothing and has to be manually added. <br />
{{ii}} To see what games use SDL2, refer to game-specific middleware section.<br />
<br />
{{Fixbox|description=Configure controller through Steam Big Picture modes settings|ref={{cn|date=July 2016}}|fix=<br />
{{--}} This method requires Steam to be installed on a machine.<br />
}}<br />
{{Fixbox|description=Use [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool]|ref={{cn|date=July 2016}}|fix=<br />
# Download and open [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool].<br />
# Select desired controller from dropdown menu.<br />
# Select "Create a new mapping" and press buttons accordingly. <br />
#* If some button isn't present on the controller, use the "Skip" button and if some key is registered twice, use the "previous" button. <br />
# Either set the string as enviromental variable, which should make the controller work with every SDL2 game or alternatively copy the string and paste it to {{code|gamecontrollerdb.txt}} found in games install folder. <br />
}}<br />
<br />
==macOS==<br />
===[http://www.orderedbytes.com/controllermate/ ControllerMate]===<br />
{{ii}} Allows customize various devices, including the keyboard and mouse, joystick, gamepads for use with your computer.<br />
{{++}} Programming is accomplished using "building blocks".<br />
{{--}} Unfriendly User Interface.<br />
<br />
===[http://www.usboverdrive.com/ USB Overdrive]===<br />
{{ii}} Device driver that handles any USB mouse, trackball, joystick, gamepad, media keyboard and any Bluetooth mouse and lets you configure them either globally or on a per-application, per-device basis.<br />
{{++}} It supports 64-bit kernels.<br />
<br />
==Linux==<br />
{{ii}} Most distributions come with the ''xpad'' driver already. If you're experiencing problems with using controllers in your game, or want to bind your keyboard to the controller, you may want to try ''[http://xboxdrv.gitlab.io/ xboxdrv]'', or refer to the controller-specific article for more information.<br />
===[https://github.com/jgeumlek/MoltenGamepad#moltengamepad MoltenGamepad]===<br />
{{ii}} Flexible Linux input device translator, geared for gamepads.<br />
{{++}} Create virtual gamepads that almost all games can use. Virtual gamepads are persistent, which fixes the numerous games that break when controllers are disconnected.<br />
{{++}} Flexible generic device driver framework, where only a text file is needed to support input sources that don't need special features. All configuration files are designed to be human-readable and editable.<br />
{{++}} Easy loading and saving of event mappings that can be changed at run time. <br />
{{++}} Specialized userspace driver for Wii remotes that make full use of extension controller hotswapping. Supports a command FIFO or socket for controlling a running instance of MoltenGamepad via scripting. Can handle cases where one event device represents multiple logical controllers (like an arcade stick), or vice versa.<br />
{{--}} Virtual devices can process rumble events, but this is disabled by default.<br />
<br />
==List of controllers==<br />
<!-- This list is ordered by the controller release date. The Logitech and Misc sections have been left alphabetized. --><br />
===8BitDo===<br />
* [[Controller:8BitDo Lite|8BitDo Lite]]<br />
* [[Controller:8BitDo M30|8BitDo M30]]<br />
* [[Controller:8BitDo N30|8BitDo N30]]<br />
* [[Controller:8BitDo N30 NS|8BitDo N30 NS]]<br />
* [[Controller:8BitDo N30 Pro 2|8BitDo N30 Pro 2]]<br />
* [[Controller:8BitDo SN30 Pro|8BitDo SN30 Pro]]<br />
* [[Controller:8BitDo SN30 Pro+|8BitDo SN30 Pro+]]<br />
* [[Controller:8BitDo SN30 Pro G Classic|8BitDo SN30 Pro G Classic]]<br />
* [[Controller:8BitDo SN30 Pro SN|8BitDo SN30 Pro SN]]<br />
* [[Controller:8BitDo SN30 GP|8BitDo SN30 GP]]<br />
* [[Controller:8BitDo Pro 2|8BitDo Pro 2]]<br />
* [[Controller:8BitDo Zero 2|8BitDo Zero 2]]<br />
<br />
===Amazon===<br />
* [[Controller:Amazon Fire Game Controller|Amazon Fire Game Controller]]<br />
* [[Controller:Amazon Fire TV Game Controller|Amazon Fire TV Game Controller]]<br />
* [[Controller:Amazon Luna Controller|Amazon Luna Controller]]<br />
<br />
===Astro===<br />
* [[Controller:Astro C40|Astro C40]]<br />
<br />
===Atari===<br />
* [[Controller:Atari CX40 Joystick|Atari CX40 Joystick]]<br />
* [[Controller:Atari CX78 Controller|Atari CX78 Controller]]<br />
* [[Controller:Atari VCS Wireless Classic Joystick|Atari VCS Wireless Classic Joystick]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Facebook===<br />
* [[Controller:Oculus Touch|Oculus Touch]]<br />
<br />
===Flydigi===<br />
* [[Controller:Flydigi Apex 2|Flydigi Apex 2]]<br />
<br />
===Hori===<br />
* [[Controller:HORI Mini Wired Gamepad|HORI Mini Wired Gamepad]]<br />
* [[Controller:HORI Wireless Pad|HORI Wireless Pad]]<br />
* [[Controller:Pokkén Tournament Pro Pad Controller|HORI Pokemon Tekken DX Pro Pad]]<br />
* [[Controller:HORI Pad Wired Controller|HORI Pad Wired Controller]]<br />
<br />
===Hyperkin===<br />
* [[Controller:Hyperkin Duke Controller|Hyperkin Duke Controller]]<br />
* [[Controller:Hyperkin X91|Hyperkin X91]]<br />
<br />
===Logitech===<br />
* [[Controller:Logitech Dual Action|Logitech Dual Action]]<br />
* [[Controller:Logitech Rumblepad 2|Logitech Rumblepad 2]]<br />
* [[Controller:Logitech Gamepad F310|Logitech Gamepad F310]]<br />
* [[Controller:Logitech Rumble Gamepad F510|Logitech Rumble Gamepad F510]]<br />
* [[Controller:Logitech Wireless Gamepad F710|Logitech Wireless Gamepad F710]]<br />
* [[Controller:Logitech Extreme 3D Pro|Logitech Extreme 3D Pro]]<br />
<br />
===Microsoft===<br />
'''Consoles:'''<br />
* [[Controller:Xbox Controller|Xbox Controller]]<br />
* [[Controller:Xbox 360 Controller|Xbox 360 Controller]]<br />
* [[Controller:Kinect|Kinect]]<br />
* [[Controller:Xbox One Controller|Xbox Wireless Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller|Xbox Elite Wireless Controller]]<br />
* [[Controller:Xbox Adaptive Controller|Xbox Adaptive Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite Wireless Controller 2]]<br />
* [[Controller:Xbox X Controller|Xbox Series X|S Wireless Controller]]<br />
<br />
'''PC:'''<br />
* [[Controller:Microsoft SideWinder Strategic Commander|Microsoft SideWinder Strategic Commander]]<br />
<br />
===Nacon===<br />
* [[Controller:Nacon Revolution Pro Controller|Nacon Revolution Pro Controller]]<br />
* [[Controller:Nacon Revolution Pro Controller 2|Nacon Revolution Pro Controller 2]]<br />
* [[Controller:Nacon Revolution Unlimited Pro|Nacon Revolution Unlimited Pro]]<br />
* [[Controller:Nacon Revolution Pro Controller 3|Nacon Revolution Pro Controller 3]]<br />
<br />
===Nintendo===<br />
'''Consoles:'''<br />
* [[Controller:Nintendo Entertainment System Controller|NES Controller]]<br />
* [[Controller:Super Nintendo Entertainment System Controller|SNES Controller]]<br />
* [[Controller:Virtual Boy Controller|Virtual Boy Controller]]<br />
* [[Controller:Nintendo 64 Controller|Nintendo 64 Controller]]<br />
* [[Controller:GameCube Controller|GameCube Controller]]<br />
* [[Controller:Wii Remote|Wii Remote]]<br />
* [[Controller:Classic Controller|Classic Controller]]<br />
* [[Controller:Classic Controller Pro|Classic Controller Pro]]<br />
* [[Controller:Wii U GamePad|Wii U GamePad]]<br />
* [[Controller:Wii U Pro Controller|Wii U Pro Controller]]<br />
* [[Controller:Switch Joy-Con|Switch Joy-Con]]<br />
* [[Controller:Switch Pro Controller|Switch Pro Controller]]<br />
* [[Controller:NES Classic Controller|NES Classic Controller]]<br />
* [[Controller:SNES Classic Controller|SNES Classic Controller]]<br />
'''Handhelds:'''<br />
* [[Controller:Game Boy|Game Boy]]<br />
* [[Controller:Game Boy Color|Game Boy Color]]<br />
* [[Controller:Game Boy Advance|Game Boy Advance]]<br />
* [[Controller:Nintendo DS|Nintendo DS]]<br />
* [[Controller:Nintendo 3DS|Nintendo 3DS]]<br />
<br />
===Nvidia===<br />
* [[Controller:Nvidia SHIELD Controller|SHIELD Controller (2015)]]<br />
* [[Controller:Nvidia SHIELD Controller (2017)|SHIELD Controller (2017)]]<br />
<br />
===PDP===<br />
* [[Controller:PDP Wired Fight Pad Pro|PDP Wired Fight Pad Pro]]<br />
* [[Controller:PDP Faceoff Deluxe Wired Pro Controller|PDP Faceoff Deluxe Wired Pro Controller]]<br />
* [[Controller:PDP Faceoff Wired Pro Controller|PDP Faceoff Wired Pro Controller]]<br />
<br />
===PowerA===<br />
* [[Controller:PowerA Wired Controller|PowerA Wired Controller]]<br />
* [[Controller:PowerA Spectra|PowerA Spectra]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Razer===<br />
* [[Controller:OUYA|OUYA Controller]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Hydra|Razer Hydra]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Raiju|Razer Raiju]]<br />
* [[Controller:Razer Wolverine|Razer Wolverine]]<br />
* [[Controller:Razer Raiju PS4|Razer Raiju PS4]]<br />
* [[Controller:Razer Raiju Ultimate Edition|Razer Raiju Ultimate Edition]]<br />
* [[Controller:Razer Raiju Tournament Edition|Razer Raiju Tournament Edition]]<br />
* [[Controller:Razer Atrox fight stick|Razer Atrox fight stick]]<br />
<br />
===Retro Fighters===<br />
* [[Controller:Retro Fighters JAB|JAB]]<br />
* [[Controller:Retro Fighters Brawler64|Brawler64]]<br />
* [[Controller:Retro Fighters BrawlerGen|BrawlerGen]]<br />
* [[Controller:Retro Fighters StrikerDC|StrikerDC]]<br />
* [[Controller:Retro Fighters Contender|Contender]]<br />
* [[Controller:Retro Fighters BladeGC|BladeGC]]<br />
<br />
===Sega===<br />
* [[Controller:Sega Master System Controller|Master System Controller]]<br />
* [[Controller:Sega Genesis Controller|Sega Genesis Controller]]<br />
* [[Controller:Sega Saturn Controller|Sega Saturn Controller]]<br />
* [[Controller:Dreamcast Controller|Dreamcast Controller]]<br />
<br />
===Sony===<br />
'''Consoles:'''<br />
* [[Controller:PlayStation Controller|PlayStation Controller]]<br />
* [[Controller:Dual Analog Controller|Dual Analog Controller]]<br />
* [[Controller:DualShock|DualShock]]<br />
* [[Controller:DualShock 2|DualShock 2]]<br />
* [[Controller:Sixaxis|Sixaxis]]<br />
* [[Controller:DualShock 3|DualShock 3]]<br />
* [[Controller:PlayStation Move|PlayStation Move]]<br />
* [[Controller:DualShock 4|DualShock 4]]<br />
* [[Controller:PlayStation Classic Controller|PlayStation Classic Controller]]<br />
* [[Controller:DualSense|DualSense]]<br />
'''Handhelds:'''<br />
* [[Controller:PlayStation Portable|PlayStation Portable]]<br />
* [[Controller:PlayStation Vita|PlayStation Vita]]<br />
<br />
===SteelSeries===<br />
* [[Controller:SteelSeries Stratus XL|SteelSeries Stratus XL]]<br />
* [[Controller:SteelSeries Stratus Duo|SteelSeries Stratus Duo]]<br />
<br />
===Valve===<br />
* [[Controller:Steam Controller|Steam Controller]]<br />
* [[Controller:Steam Link Touch Controller|Steam Link Touch Controller]]<br />
* [[Controller:Valve Index Controller|Valve Index Controller]]<br />
<br />
===Vive===<br />
* [[Controller:Vive Controller|Vive Controller]]<br />
* [[Controller:Vive Tracker|Vive Tracker]]<br />
<br />
===Google===<br />
* [[Controller:Stadia Controller|Stadia Controller]]<br />
<br />
===Miscellaneous===<br />
* [[Controller:Tobii Eye Tracking|Tobii Eye Tracking]]<br />
* [[Controller:Leap Motion Controller|Leap Motion]]<br />
* [[Controller:TT Premium X1 RGB App|TT Premium X1 RGB App (Virtual Game Controller)]]<br />
* [[Controller:Capcom Home Arcade|Capcom Home Arcade]]<br />
* [[Panasonic Q Controller|Panasonic Q Controller]]<br />
* [[Controller:Azeron Classic|Azeron Classic]]<br />
* [[Controller:Azeron Compact|Azeron Compact]]<br />
<br />
==Other information==<br />
===Controller hotplugging===<br />
{{ii}} Controller hotplugging is the ability to switch controllers without restarting a game.<br />
<br />
===DirectInput===<br />
{{ii}} DirectInput is Microsoft's older controller API (used with nearly all games until 2006). XInput controllers operate in DirectInput mode for these games. Logitech's F310 and F710 gamepads have a physical switch which should be set to "D" for these games.<br />
<br />
===XInput===<br />
{{ii}} XInput is Microsoft's API for Xbox 360-compatible controllers such as the official Xbox 360 Controller.<br />
<br />
===Windows.Gaming.Input===<br />
{{ii}} Windows.Gaming.Input is Microsoft's API for Xbox One-compatible controllers such as the official Xbox One Controller primarily built for [[Store:Microsoft Store|Universal Windows Platform]] apps, but can on occasions be found in Win32 games as well.<br />
{{mm}} An example of a new addition only available through the Windows.Gaming.Input API is the use of [[List of games that support Xbox One impulse triggers|the impulse triggers]] of the [[Xbox One Controller]].<br />
<br />
===[[Store:Steam#Steam_Input|Steam Input]]===<br />
{{ii}} Steam Input is feature of the [[Store:Steam|Steam client]] referring to the entire collection of software, hardware, and configuration utilities that Steam uses to interface with games. It acts like a wrapper using the Steam Community Overlay to intercept and manipulate player input before passing it on along to the game.<br />
<br />
{{References}}<br />
<br />
[[Category:Controller]]</div>Gildumhttps://www.pcgamingwiki.com/w/index.php?title=Glossary:Controller&diff=1193782Glossary:Controller2021-12-04T14:09:34Z<p>Gildum: /* AntiMicro (Windows and Linux) */</p>
<hr />
<div>{{cleanup|Correct any bad information. Keep things easy, clean and be complete when writing solutions, or I'll eat your donuts and I'll steal your cats}}<br />
{{Guide}}<br />
<br />
'''General information'''<br />
{{mm}} [[Wikipedia:DirectInput|DirectInput (and XInput) on Wikipedia]]<br />
{{mm}} [[Wikipedia:Xbox 360 controller|Xbox 360 Controller (XInput) on Wikipedia]]<br />
<br />
'''Key points'''<br />
{{ii}} '''Controllers''' are an alternative to keyboard and mouse input. Almost all recently released PC games support controllers, although many only support the newer [[#XInput|XInput]] controllers by default.<br />
<br />
==General==<br />
<!-- Yes I get it you hate this, but leave this section the way it is, if you have a program which is supported on two OSs, create a new category here, and list the OSs in the parethesis (Windows, OS X and Linux). --><br />
<!-- The General section is for software available under multiple OSs --><br />
===Controller to Keyboard Input===<br />
{{ii}} These utilities allow keyboard keys to be bound to any controller buttons for games with poor or no controller support. These keys must match with the in-game settings. <br />
<br />
====[[Store:Steam#Steam Input|Steam Input]] (Windows, macOS and Linux)====<br />
{{ii}} Works with non-Steam games if they're added and launched through Steam.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. keyboard/mouse input mapped to a controller, XInput support for DirectInput-only devices, etc).<br />
{{--}} Overrules games own possible controller specific configurations e.g. automatic button prompt change.<br />
{{--}} UI for changing bindings is very much made with controllers in mind.<br />
{{--}} Requires [[Steam]] and the Steam Overlay to function.<br />
{{ii}} When game is blocking 3rd party game overlays you can use [https://github.com/Alia5/GlosSI GlosSI].<br />
<br />
====[https://www.rewasd.com reWASD] (Windows)====<br />
{{ii}} Supported controllers: [[Controller:Xbox Elite Wireless Controller|Xbox Elite 1]]/[[Controller:Xbox Elite Wireless Controller 2|2]], [[Controller:DualSense|DualSense]], [[Controller:Xbox One Controller|Xbox One/S/X]], [[Controller:DualShock 4|DualShock 4]], [[Controller:DualShock 3|DualShock 3]], [[Controller:PlayStation Move|PS3 Navigation]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:GameCube Controller|GameCube]], [[Controller:Switch_Joy-Con|Joy-Con]], Azeron, [[Controller:Steam Controller|Steam]], [[Controller:Nvidia SHIELD Controller|Nvidia SHIELD]].<br />
{{++}} Adds or extends the functionality of input devices in various ways (e.g. allows you to remap controller to keyboard & mouse, reassign with Xbox Elite paddles and turn your ordinary joystick to Turbo & Macro controller).<br />
{{++}} You can chose which driver (Virtual X360, XOne or DS4) has to be used by connected device. This allows to run PS4 Remote Play or PS Now on Xbox controllers or even on keyboard & mouse.<br />
{{++}} Allows remapping and Keyboard and Mouse keys to keyboard, mouse or controller buttons.<br />
{{++}} Allows use of [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game.<br />
{{++}} Allows use of [[Controller:Steam Controller|Steam Controller]] without Steam.<br />
{{++}} Allows [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo on PC.<br />
{{++}} Lets users share and customize game-specific controller profiles.<br />
{{++}} Runs on Windows 10, 8.1, 8 and 7.<br />
{{--}} 14-days trial. Full license can cost up to 33 € (Application + Combo + Advanced mapping + 4 Slots + Rapid Fire).<br />
<br />
====[https://github.com/Electronicks/JoyShockMapper JoyShockMapper] (Windows)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} Converts [[Controller:DualShock 4|DualShock 4]], [[Controller:Switch_Joy-Con|JoyCon]], and [[Controller:Switch Pro Controller|Pro Controller]] input into keyboard and mouse events.<br />
{{++}} Innovative "Flick Stick" support - adjusting rotation of a stick to the same rotation in game<ref>[https://www.youtube.com/watch?v=C5L_Px3dFtE Gyro Gaming - Intro to Flick Stick]</ref>.<br />
{{++}} Allows using gyro controls. Community Configs you can find on [http://gyrowiki.jibbsmart.com/games GyroWiki].<br />
<br />
====[http://controllercompanion.com/ Controller Companion] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers. Application comes with an installer for [[Xbox 360 Controller Emulator|Xbox 360 Controller Emulator (x360ce)]] which will allow use Playstation controllers.<br />
{{++}} Using [https://steamcommunity.com/workshop/about/?appid=367670 Steam Workshop] as community configs database.<br />
{{++}} Very user friendly User Interface, bindings are easy to configure.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface.<br />
{{++}} Auto-disable whenever another program, game or Steam Big Picture is running.<br />
<br />
====[https://github.com/AntiMicro/antimicro/releases AntiMicro] (Windows and Linux)====<br />
{{ii}} Open source and easy to use application.<br />
{{ii}} [https://github.com/AntiMicroX/antimicroX AntimicroX] is continuation of project for Linux. With version 3.2.0 Windows is now supported<ref>[https://github.com/AntiMicroX/antimicrox/releases/tag/3.2.0]</ref>.<br />
{{++}} Allows any mouse and keyboard input to be bound to any controller buttons across different profiles.<br />
{{--}} On Linux, it works only in Xorg environment.<br />
<br />
====[https://joyxoff.com/en/ JoyXoff] (Windows)====<br />
{{ii}} Mouse, media and keyboard control.<br />
{{++}} Supports [[Controller:Xbox 360 Controller|Xbox 360]] and [[Controller:Xbox One Controller|Xbox One]] controllers.<br />
{{++}} Virtual Keyboard support. After pressing the left stick, pops up the arcade style virtual keyboard inspired by [[Beyond Good & Evil]] input interface or Xbox One themed plain virtual keyboard.<br />
{{--}} For Playstation controllers Xbox 360 Controller Emulator (x360ce) is needed.<br />
<br />
==Windows==<br />
===XInput wrappers===<br />
{{ii}} Generic game controllers are classified as [[Glossary:Controller#DirectInput|DirectInput]] by Windows, these can be used in any games with [[Glossary:Controller#XInput|XInput]] support by using a wrapper.<br />
{{ii}} See [[#Controller to Keyboard Input|Controller to Keyboard Input]] for games with no controller support.<br />
<br />
====[[Glossary:Controller#Steam Input (Windows, macOS and Linux)|Steam Input]]====<br />
{{++}} Very easy to set up if you have Steam installed.<br />
{{++}} With controllers like [[Controller:DualShock 4|DualShock 4]] and [[Controller:Switch Pro Controller|Switch Pro Controller]] allows haptic feedback passtrough as well.<br />
<br />
====[[Glossary:Controller#reWASD (Windows)|reWASD]]====<br />
{{++}} Supports all main controllers, including [[Controller:Xbox Elite Wireless Controller|Xbox Elite]], [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite 2]], [[Controller:Xbox One Controller|Xbox One]], [[Controller:DualShock 3|DualShock 3]], [[Controller:DualShock 4|DualShock 4]], [[Controller:PlayStation Move|PS Navigation]], [[Controller:Switch Pro Controller|Switch Pro]], [[Controller:Switch_Joy-Con|Joy-Con]], [[Controller:Xbox 360 Controller|Xbox 360]], [[Controller:Stadia Controller|Stadia]], Logitech, [[Controller:Steam Controller|Steam]], [[Controller:GameCube Controller|GameCube]].<br />
{{++}} Supports remapping hardware buttons of Xbox, DualShock and Nintendo. Allows use [[Controller:Xbox Elite Wireless Controller|Xbox Elite]] paddles in any game and lets [[Controller:Switch_Joy-Con|Nintendo Joy-Con]] to work as a pair or separately.<br />
{{++}} Big community [https://www.rewasd.com/community config database] with online preview.<br />
<br />
====[https://github.com/KrossX/Durazno Durazno]====<br />
{{++}} Allows XInput controllers to be customized.<br />
<br />
====[https://community.pcgamingwiki.com/files/file/2034-xinputplus-ver-415/ XInput Plus]====<br />
{{ii}} The [[XBCD|Xbox Controller Driver]] and the buggy Force Feedback Driver aren't required with this program.<br />
{{++}} Features a wide array of advanced options, tweaks, features and some major fixes which other wrappers may lack.<br />
{{++}} Can translate [[Glossary:Controller#DirectInput|DirectInput]] calls into [[Glossary:Controller#XInput|XInput]] and back. It can also be used on older games using '''dinput.dll''' and '''dinput8.dll'''.<br />
<br />
====[[Xbox 360 Controller Emulator#Setting Up|Xbox 360 Controller Emulator]]====<br />
{{++}} Can be used to force DirectInput controllers to be detected as XInput ones.<br />
{{++}} Useful for games which may require multiple players. It also features a wide array of options.<br />
{{--}} Does not work with games using [[Engine:Unity|Unity]] due to implementation differences.<ref>[https://github.com/x360ce/x360ce/issues/48 Issue 48 - x360ce - Hooking does not work with Unity Engine - x360ce/x360ce - GitHub]</ref><br />
<br />
====[https://github.com/csutorasa/XOutput XOutput]====<br />
{{++}} Converts DirectInput to XInput, reads and sends data to virtual XBox 360 controller.<br />
<br />
===Primary device===<br />
{{ii}} Some games only use controller set as primary controller on Windows and ignores the rest. If incorrect or no controllers are set to primary, game doesn't work with used controller.<br />
<br />
{{Fixbox|description=Set your used controller as primary one|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Push '''Advanced'''.<br />
# From dropdown list, locate your used controller and then push '''OK'''. <br />
}}<br />
<br />
===Multiple controller order for older games===<br />
<!-- This method assumes you only have two controllers so it kinda sucks, shouldn't the Xbox 360 Controller Emulator be used instead? --><br />
<!-- Add proper HOTAS instructions, would need an actual Joystick to test this. --><br />
{{Fixbox|description=Instructions|ref=<ref>{{Refcheck|user=Blackbird|date=2016-10-06|comment=Far as I can tell this is for DInput games only.}}</ref>|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Click on the '''Advanced''' button.<br />
# Select the '''Preferred device''' from the drop down menu located on the center.<br />
}}<br />
<br />
===Issues fixed===<br />
====Slow or random movement====<br />
{{ii}} This may be caused by worn out sticks or by low in-game deadzones.<br />
<br />
{{Fixbox|description=Calibrating|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Select the desired controller and click on the '''Properties''' button.<br />
# Select the '''Settings''' tab, then push the '''Calibrate''' button and follow the on screen instructions.<br />
}}<br />
<br />
====Fast movement====<br />
{{ii}} Remove any virtual controllers and use the [[Xbox 360 Controller Emulator]] instead. If the issue persists see below.<br />
{{--}} Common issue on games running on the [[Engine:Unity|Unity]] engine due to the Unity input manager using Raw Input instead of DirectInput.<br />
<br />
{{Fixbox|description=Finding Virtual Controllers|ref={{cn|date=July 2016}}|fix=<br />
# Open the Start menu, type <code>joy.cpl</code>, then press {{key|Enter}}.<br />
# Locate the name of the virtual controller driver or utility and remove it.<br />
}}<br />
{{Fixbox|description=Rebind Controller Buttons|fix=<br />
{{ii}} For [[Engine:Unity|Unity]] games with no launchers hold {{key|Shift}} to access the launcher as the game starts, then select the '''Input''' tab.<br />
{{ii}} Check the wiki article for the desired game to find a different rebinding solution. Configuration files may hold such settings.<br />
}}<br />
<br />
====SDL2====<br />
{{ii}} Many games use SDL2 to handle controller input. This means as long as the controller is on the list, game should detect, use it and give proper controller placement and prompts. Controllers that aren't on the list, do nothing and has to be manually added. <br />
{{ii}} To see what games use SDL2, refer to game-specific middleware section.<br />
<br />
{{Fixbox|description=Configure controller through Steam Big Picture modes settings|ref={{cn|date=July 2016}}|fix=<br />
{{--}} This method requires Steam to be installed on a machine.<br />
}}<br />
{{Fixbox|description=Use [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool]|ref={{cn|date=July 2016}}|fix=<br />
# Download and open [http://community.pcgamingwiki.com/files/file/734-sdl2-gamepad-tool/ SDL2 Gamepad Tool].<br />
# Select desired controller from dropdown menu.<br />
# Select "Create a new mapping" and press buttons accordingly. <br />
#* If some button isn't present on the controller, use the "Skip" button and if some key is registered twice, use the "previous" button. <br />
# Either set the string as enviromental variable, which should make the controller work with every SDL2 game or alternatively copy the string and paste it to {{code|gamecontrollerdb.txt}} found in games install folder. <br />
}}<br />
<br />
==macOS==<br />
===[http://www.orderedbytes.com/controllermate/ ControllerMate]===<br />
{{ii}} Allows customize various devices, including the keyboard and mouse, joystick, gamepads for use with your computer.<br />
{{++}} Programming is accomplished using "building blocks".<br />
{{--}} Unfriendly User Interface.<br />
<br />
===[http://www.usboverdrive.com/ USB Overdrive]===<br />
{{ii}} Device driver that handles any USB mouse, trackball, joystick, gamepad, media keyboard and any Bluetooth mouse and lets you configure them either globally or on a per-application, per-device basis.<br />
{{++}} It supports 64-bit kernels.<br />
<br />
==Linux==<br />
{{ii}} Most distributions come with the ''xpad'' driver already. If you're experiencing problems with using controllers in your game, or want to bind your keyboard to the controller, you may want to try ''[http://xboxdrv.gitlab.io/ xboxdrv]'', or refer to the controller-specific article for more information.<br />
===[https://github.com/jgeumlek/MoltenGamepad#moltengamepad MoltenGamepad]===<br />
{{ii}} Flexible Linux input device translator, geared for gamepads.<br />
{{++}} Create virtual gamepads that almost all games can use. Virtual gamepads are persistent, which fixes the numerous games that break when controllers are disconnected.<br />
{{++}} Flexible generic device driver framework, where only a text file is needed to support input sources that don't need special features. All configuration files are designed to be human-readable and editable.<br />
{{++}} Easy loading and saving of event mappings that can be changed at run time. <br />
{{++}} Specialized userspace driver for Wii remotes that make full use of extension controller hotswapping. Supports a command FIFO or socket for controlling a running instance of MoltenGamepad via scripting. Can handle cases where one event device represents multiple logical controllers (like an arcade stick), or vice versa.<br />
{{--}} Virtual devices can process rumble events, but this is disabled by default.<br />
<br />
==List of controllers==<br />
<!-- This list is ordered by the controller release date. The Logitech and Misc sections have been left alphabetized. --><br />
===8BitDo===<br />
* [[Controller:8BitDo Lite|8BitDo Lite]]<br />
* [[Controller:8BitDo M30|8BitDo M30]]<br />
* [[Controller:8BitDo N30|8BitDo N30]]<br />
* [[Controller:8BitDo N30 NS|8BitDo N30 NS]]<br />
* [[Controller:8BitDo N30 Pro 2|8BitDo N30 Pro 2]]<br />
* [[Controller:8BitDo SN30 Pro|8BitDo SN30 Pro]]<br />
* [[Controller:8BitDo SN30 Pro+|8BitDo SN30 Pro+]]<br />
* [[Controller:8BitDo SN30 Pro G Classic|8BitDo SN30 Pro G Classic]]<br />
* [[Controller:8BitDo SN30 Pro SN|8BitDo SN30 Pro SN]]<br />
* [[Controller:8BitDo SN30 GP|8BitDo SN30 GP]]<br />
* [[Controller:8BitDo Pro 2|8BitDo Pro 2]]<br />
* [[Controller:8BitDo Zero 2|8BitDo Zero 2]]<br />
<br />
===Amazon===<br />
* [[Controller:Amazon Fire Game Controller|Amazon Fire Game Controller]]<br />
* [[Controller:Amazon Fire TV Game Controller|Amazon Fire TV Game Controller]]<br />
* [[Controller:Amazon Luna Controller|Amazon Luna Controller]]<br />
<br />
===Astro===<br />
* [[Controller:Astro C40|Astro C40]]<br />
<br />
===Atari===<br />
* [[Controller:Atari CX40 Joystick|Atari CX40 Joystick]]<br />
* [[Controller:Atari CX78 Controller|Atari CX78 Controller]]<br />
* [[Controller:Atari VCS Wireless Classic Joystick|Atari VCS Wireless Classic Joystick]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Facebook===<br />
* [[Controller:Oculus Touch|Oculus Touch]]<br />
<br />
===Flydigi===<br />
* [[Controller:Flydigi Apex 2|Flydigi Apex 2]]<br />
<br />
===Hori===<br />
* [[Controller:HORI Mini Wired Gamepad|HORI Mini Wired Gamepad]]<br />
* [[Controller:HORI Wireless Pad|HORI Wireless Pad]]<br />
* [[Controller:Pokkén Tournament Pro Pad Controller|HORI Pokemon Tekken DX Pro Pad]]<br />
* [[Controller:HORI Pad Wired Controller|HORI Pad Wired Controller]]<br />
<br />
===Hyperkin===<br />
* [[Controller:Hyperkin Duke Controller|Hyperkin Duke Controller]]<br />
* [[Controller:Hyperkin X91|Hyperkin X91]]<br />
<br />
===Logitech===<br />
* [[Controller:Logitech Dual Action|Logitech Dual Action]]<br />
* [[Controller:Logitech Rumblepad 2|Logitech Rumblepad 2]]<br />
* [[Controller:Logitech Gamepad F310|Logitech Gamepad F310]]<br />
* [[Controller:Logitech Rumble Gamepad F510|Logitech Rumble Gamepad F510]]<br />
* [[Controller:Logitech Wireless Gamepad F710|Logitech Wireless Gamepad F710]]<br />
* [[Controller:Logitech Extreme 3D Pro|Logitech Extreme 3D Pro]]<br />
<br />
===Microsoft===<br />
'''Consoles:'''<br />
* [[Controller:Xbox Controller|Xbox Controller]]<br />
* [[Controller:Xbox 360 Controller|Xbox 360 Controller]]<br />
* [[Controller:Kinect|Kinect]]<br />
* [[Controller:Xbox One Controller|Xbox Wireless Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller|Xbox Elite Wireless Controller]]<br />
* [[Controller:Xbox Adaptive Controller|Xbox Adaptive Controller]]<br />
* [[Controller:Xbox Elite Wireless Controller 2|Xbox Elite Wireless Controller 2]]<br />
* [[Controller:Xbox X Controller|Xbox Series X|S Wireless Controller]]<br />
<br />
'''PC:'''<br />
* [[Controller:Microsoft SideWinder Strategic Commander|Microsoft SideWinder Strategic Commander]]<br />
<br />
===Nacon===<br />
* [[Controller:Nacon Revolution Pro Controller|Nacon Revolution Pro Controller]]<br />
* [[Controller:Nacon Revolution Pro Controller 2|Nacon Revolution Pro Controller 2]]<br />
* [[Controller:Nacon Revolution Unlimited Pro|Nacon Revolution Unlimited Pro]]<br />
* [[Controller:Nacon Revolution Pro Controller 3|Nacon Revolution Pro Controller 3]]<br />
<br />
===Nintendo===<br />
'''Consoles:'''<br />
* [[Controller:Nintendo Entertainment System Controller|NES Controller]]<br />
* [[Controller:Super Nintendo Entertainment System Controller|SNES Controller]]<br />
* [[Controller:Virtual Boy Controller|Virtual Boy Controller]]<br />
* [[Controller:Nintendo 64 Controller|Nintendo 64 Controller]]<br />
* [[Controller:GameCube Controller|GameCube Controller]]<br />
* [[Controller:Wii Remote|Wii Remote]]<br />
* [[Controller:Classic Controller|Classic Controller]]<br />
* [[Controller:Classic Controller Pro|Classic Controller Pro]]<br />
* [[Controller:Wii U GamePad|Wii U GamePad]]<br />
* [[Controller:Wii U Pro Controller|Wii U Pro Controller]]<br />
* [[Controller:Switch Joy-Con|Switch Joy-Con]]<br />
* [[Controller:Switch Pro Controller|Switch Pro Controller]]<br />
* [[Controller:NES Classic Controller|NES Classic Controller]]<br />
* [[Controller:SNES Classic Controller|SNES Classic Controller]]<br />
'''Handhelds:'''<br />
* [[Controller:Game Boy|Game Boy]]<br />
* [[Controller:Game Boy Color|Game Boy Color]]<br />
* [[Controller:Game Boy Advance|Game Boy Advance]]<br />
* [[Controller:Nintendo DS|Nintendo DS]]<br />
* [[Controller:Nintendo 3DS|Nintendo 3DS]]<br />
<br />
===Nvidia===<br />
* [[Controller:Nvidia SHIELD Controller|SHIELD Controller (2015)]]<br />
* [[Controller:Nvidia SHIELD Controller (2017)|SHIELD Controller (2017)]]<br />
<br />
===PDP===<br />
* [[Controller:PDP Wired Fight Pad Pro|PDP Wired Fight Pad Pro]]<br />
* [[Controller:PDP Faceoff Deluxe Wired Pro Controller|PDP Faceoff Deluxe Wired Pro Controller]]<br />
* [[Controller:PDP Faceoff Wired Pro Controller|PDP Faceoff Wired Pro Controller]]<br />
<br />
===PowerA===<br />
* [[Controller:PowerA Wired Controller|PowerA Wired Controller]]<br />
* [[Controller:PowerA Spectra|PowerA Spectra]]<br />
* [[Controller:Atari VCS Wireless Modern Controller|Atari VCS Wireless Modern Controller]]<br />
<br />
===Razer===<br />
* [[Controller:OUYA|OUYA Controller]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Hydra|Razer Hydra]]<br />
* [[Controller:Razer Serval|Razer Serval]]<br />
* [[Controller:Razer Raiju|Razer Raiju]]<br />
* [[Controller:Razer Wolverine|Razer Wolverine]]<br />
* [[Controller:Razer Raiju PS4|Razer Raiju PS4]]<br />
* [[Controller:Razer Raiju Ultimate Edition|Razer Raiju Ultimate Edition]]<br />
* [[Controller:Razer Raiju Tournament Edition|Razer Raiju Tournament Edition]]<br />
* [[Controller:Razer Atrox fight stick|Razer Atrox fight stick]]<br />
<br />
===Retro Fighters===<br />
* [[Controller:Retro Fighters JAB|JAB]]<br />
* [[Controller:Retro Fighters Brawler64|Brawler64]]<br />
* [[Controller:Retro Fighters BrawlerGen|BrawlerGen]]<br />
* [[Controller:Retro Fighters StrikerDC|StrikerDC]]<br />
* [[Controller:Retro Fighters Contender|Contender]]<br />
* [[Controller:Retro Fighters BladeGC|BladeGC]]<br />
<br />
===Sega===<br />
* [[Controller:Sega Master System Controller|Master System Controller]]<br />
* [[Controller:Sega Genesis Controller|Sega Genesis Controller]]<br />
* [[Controller:Sega Saturn Controller|Sega Saturn Controller]]<br />
* [[Controller:Dreamcast Controller|Dreamcast Controller]]<br />
<br />
===Sony===<br />
'''Consoles:'''<br />
* [[Controller:PlayStation Controller|PlayStation Controller]]<br />
* [[Controller:Dual Analog Controller|Dual Analog Controller]]<br />
* [[Controller:DualShock|DualShock]]<br />
* [[Controller:DualShock 2|DualShock 2]]<br />
* [[Controller:Sixaxis|Sixaxis]]<br />
* [[Controller:DualShock 3|DualShock 3]]<br />
* [[Controller:PlayStation Move|PlayStation Move]]<br />
* [[Controller:DualShock 4|DualShock 4]]<br />
* [[Controller:PlayStation Classic Controller|PlayStation Classic Controller]]<br />
* [[Controller:DualSense|DualSense]]<br />
'''Handhelds:'''<br />
* [[Controller:PlayStation Portable|PlayStation Portable]]<br />
* [[Controller:PlayStation Vita|PlayStation Vita]]<br />
<br />
===SteelSeries===<br />
* [[Controller:SteelSeries Stratus XL|SteelSeries Stratus XL]]<br />
* [[Controller:SteelSeries Stratus Duo|SteelSeries Stratus Duo]]<br />
<br />
===Valve===<br />
* [[Controller:Steam Controller|Steam Controller]]<br />
* [[Controller:Steam Link Touch Controller|Steam Link Touch Controller]]<br />
* [[Controller:Valve Index Controller|Valve Index Controller]]<br />
<br />
===Vive===<br />
* [[Controller:Vive Controller|Vive Controller]]<br />
* [[Controller:Vive Tracker|Vive Tracker]]<br />
<br />
===Google===<br />
* [[Controller:Stadia Controller|Stadia Controller]]<br />
<br />
===Miscellaneous===<br />
* [[Controller:Tobii Eye Tracking|Tobii Eye Tracking]]<br />
* [[Controller:Leap Motion Controller|Leap Motion]]<br />
* [[Controller:TT Premium X1 RGB App|TT Premium X1 RGB App (Virtual Game Controller)]]<br />
* [[Controller:Capcom Home Arcade|Capcom Home Arcade]]<br />
* [[Panasonic Q Controller|Panasonic Q Controller]]<br />
* [[Controller:Azeron Classic|Azeron Classic]]<br />
* [[Controller:Azeron Compact|Azeron Compact]]<br />
<br />
==Other information==<br />
===Controller hotplugging===<br />
{{ii}} Controller hotplugging is the ability to switch controllers without restarting a game.<br />
<br />
===DirectInput===<br />
{{ii}} DirectInput is Microsoft's older controller API (used with nearly all games until 2006). XInput controllers operate in DirectInput mode for these games. Logitech's F310 and F710 gamepads have a physical switch which should be set to "D" for these games.<br />
<br />
===XInput===<br />
{{ii}} XInput is Microsoft's API for Xbox 360-compatible controllers such as the official Xbox 360 Controller.<br />
<br />
===Windows.Gaming.Input===<br />
{{ii}} Windows.Gaming.Input is Microsoft's API for Xbox One-compatible controllers such as the official Xbox One Controller primarily built for [[Store:Microsoft Store|Universal Windows Platform]] apps, but can on occasions be found in Win32 games as well.<br />
{{mm}} An example of a new addition only available through the Windows.Gaming.Input API is the use of [[List of games that support Xbox One impulse triggers|the impulse triggers]] of the [[Xbox One Controller]].<br />
<br />
===[[Store:Steam#Steam_Input|Steam Input]]===<br />
{{ii}} Steam Input is feature of the [[Store:Steam|Steam client]] referring to the entire collection of software, hardware, and configuration utilities that Steam uses to interface with games. It acts like a wrapper using the Steam Community Overlay to intercept and manipulate player input before passing it on along to the game.<br />
<br />
{{References}}<br />
<br />
[[Category:Controller]]</div>Gildum