OpenController

OpenController

Your controller in every PC game.

Use PlayStation, Switch, 8BitDo and hundreds of other controllers in your PC games, alone or with friends.

Download for Windows on ARM

0.8.21 · installer · 5.7 MBWhat's new

Intel or AMD PC? Download for Windows

Download for Windows

0.8.21 · installer · 6.2 MBWhat's new

ARM PC? Download for Windows on ARM

Download for Linux on ARM

0.8.21 · tar.gz · 10.5 MBWhat's new

Intel or AMD computer? Download for Linux

Download for Linux

0.8.21 · tar.gz · 11.6 MBWhat's new

ARM computer? Download for Linux on ARM

Download for Mac

0.8.21 · zip · 11.0 MBWhat's new

Download for Windows, Linux or Mac

OpenController runs on a computer. Open this page there to get the right download.

Test your controller
The OpenController app with six connected controllers, each drawn in its own shape.
The app, showing every controller you connect.
Runs on
Windows, Linux and Mac
Works with
Hundreds of controllers
Costs
Nothing. Free and open source
Sends
Nothing about you

01/Test your controller

Test your controller here.

Before you download anything, see if OpenController knows your controller. Connect it and press a button. It all happens right here in your browser.

Waiting for a controller

Pressed

Buttons light up on the drawing as you press them.

Connect your controller and press any button.

By cable or Bluetooth. It shows up here with its name and what OpenController can do with it. Nothing leaves this page.

Not detected? It is usually one of these.

  • Click anywhere on this page, then press a button on the controller. Browsers only show a controller after a press, and only to the page in front.
  • Some browsers and ad blockers keep controllers from websites. Brave does. Open this page in Chrome or Edge, or turn the blocker off for this page.
  • A Bluetooth controller has to be paired with the computer first, in your system's Bluetooth settings.
  • Safari shows the controller but never says which one it is.
  • If OpenController is running with hiding on, the browser sees the Xbox controller it shows to games instead of yours. Quit it to test the controller itself.

No controller at hand? Try one:

02/What it does

Plug it in and play.

Most PC games are made for the Xbox controller. OpenController makes yours work in them too, with nothing to set up.

Works in your games

Connect your controller and open a game. Buttons, sticks, triggers and vibration work the way you expect. Xbox controllers already work in games, so it leaves those alone. If a game supports your controller as it is, you can keep it native and the game sees the real one.
  1. 1Connect your controller
  2. 2Open a game
  3. 3Play

Play with friends

Each controller is its own player. If one disconnects for a moment, it comes back as the same player. To change who is player 1, drag one onto another.

Try it: drag one onto another, or tap two.

Your way

If you want, change what any button does, the extra ones included, aim with the gyro, tuned the way you like, fix a stick that drifts or change how it responds, play on the d-pad with a stick or move a stick with the triggers, and save a setup for each game that switches on by itself when the game opens. It's all optional: your controller works without any of it.
  • Default
  • Racing gamein use
  • Shooter

Always up to date

When a new version is out, the app lets you know. On Windows, one click installs it and keeps your settings.
A new version is out.Update now

03/Performance

Almost nothing in the background.

OpenController is made of two programs. The window, where you change settings, only runs while it is open. Close it and all that stays is the part that keeps your controllers working, with up to 4 MB of RAM.

Memory in use

Up to 4 MB with the window closed, down from about 35 MB with it open.

Up to 4 MB once the window is closed.

Measured on version 0.8.0, Windows 11, as Task Manager shows it, with no controller connected. With the window open it ranged from 30 to 35 MB. On macOS the window exits when closed starting with version 0.8.2.

In your games

It runs in the background without getting in the way of your games.

Delay it adds to your controller
Usually under a millisecond
Processor, with no controller connected
0 %

04/Controllers

Find your controller.

Search for yours to see what works with it. Most controllers work even if they are not on the list. If yours gives you trouble, let us know.

Many controllers that are not on this list work too.

932 models

Missing yours? It probably works anyway.

05/Platforms

Download for Windows, Linux or Mac.

The same app on all three. A Mac already handles controllers on its own, so there it does a little less.
What works on each system
FeatureWindowsLinuxmacOS
Works in your gamesYesYesBuilt into macOS
Each friend stays the same playerYesYesNo
Remapped buttons and a setup per gameYesYesExtra buttons as keys
Controller light and batteryYesYesYes

Windows 10, 11

For x64 and ARM PCs. It installs without administrator rights and updates without reinstalling. It needs two free drivers and installs them for you with one click.

HidHide, the driver that hides the original controller, has no ARM version yet. So on an ARM PC, a game that also reads the original may see it twice.

The installer is not signed yet, so the first time Windows may show a blue “Windows protected your PC” warning. Click More info, then Run anyway.

Linux

For x64 and ARM computers with Ubuntu 22.04, Debian 12, Fedora 36 or newer, or another distribution with glibc 2.35 or later. The same app as on Windows. It works with native games and with games running through Proton or Wine.

The installer asks for your password once, to let the app use your controllers. On a Steam Deck, set a password first by running passwd in Konsole.

Linux x6411.6 MB · SHA-256
Linux ARM10.5 MB · SHA-256

macOS 13+

One app for Macs with an Apple or Intel chip. On a Mac, games already work with PlayStation, Xbox and Switch Pro controllers, and the system doesn't let apps add controllers of their own.

So on a Mac it adds what is missing: extra buttons as keys, the controller light, the battery and a setup for each game. For keys it needs the Accessibility permission, which the window asks for. From 0.8.9 on, it stays after updates.

macOS blocks it the first time. Open it once, then go to System Settings, Privacy & Security, and click Open Anyway.

macOS11.0 MB · SHA-256

06/Questions

Common questions.

Another question, or a controller that isn’t working right? Get in touch.

20 questions

Is it free?
Yes. It is open source, and the drivers it uses on Windows are free too.
How does it work?
Most PC games are made for the Xbox controller. While OpenController is running, each of your controllers shows up in games as an Xbox 360 controller with its own player number, and the original is hidden so the game doesn't see the same controller twice. On Windows this uses two free drivers, ViGEmBus and HidHide. On Linux it uses a feature built into the system. Nothing changes on the controller itself.
Does it send any of my data?
Nothing about you: no account, no tracking. When you open its window, it checks GitHub for a new version. You can turn that off in Settings, under Check for updates. On Windows it also downloads the updates and drivers you choose to install, and checks each file before running it. If you report a problem with a controller, it sends that controller's technical details, which you can read before pressing Send, and nothing else.
Is the app in Portuguese?
Yes. It opens in English, and you can switch to Portuguese or Simplified Chinese in Settings, under Language. Your choice stays across updates.
How do I update?
The app lets you know when a new version is out. On Windows, click Update now and it installs it for you, keeping your settings. On Linux and Mac, it opens the download page.
Does it work with Steam?
Yes. Turn off Steam Input for PlayStation and Switch controllers in Steam's settings, or Steam reads them too and the game may see the same button twice.
Will games show PlayStation button icons?
Not by default. Games show Xbox button icons, since that is the controller they see, and special features like the DualSense's adaptive triggers don't reach them. If a game supports your controller, open it in the app and turn on Keep native. The game then sees the real controller, with its own icons, adaptive triggers and, over the cable, haptic feedback. This also lets the app work alongside a DS5Dongle. While a controller is native, its profiles, gyro aiming and remapped buttons are off. Close the game before switching.
Can I remap buttons for each game without Steam?
Yes, on Windows and Linux. Open your controller and, under Buttons, open All buttons. Any button can become another one or several at once, a key, or a macro of keys and controller buttons, and the game no longer sees it as itself. Save it in a profile and add the game to that profile: it switches on by itself while the game is in front, whether the game came from Steam or not. Restore defaults puts everything back.
A and B are swapped on my Switch controller.
Games see buttons by where they are, as on an Xbox controller, so the B at the bottom of a Switch controller is A in games. To follow the letters instead, open the controller, go to Buttons, open All buttons and turn on Use the controller's letters.
My stick drifts, or no longer reaches its edge.
On Windows and Linux, open your controller and go to Sticks, then press Measure. It finds where the stick rests and how far it reaches, and sets its centre, deadzone and full tilt from that, so a stick that always leans the same way only needs a small deadzone. You can also set the deadzone, full tilt and response curve yourself, from the values offered or any value you type, for both sticks or for each one. The page shows live what games get.
Can each Joy-Con be a controller of its own?
Yes, on Windows and Linux. A left and a right Joy-Con are joined into one controller at first. Open the pair and press Split Joy-Cons: each becomes a controller of its own, held sideways, so two friends can play with one pair. SL and SR are then the bumpers, and the shoulder button and trigger on the end can be given anything. Join Joy-Cons puts them back together. It is experimental.
Can games use my controller's gyro?
An Xbox controller has no gyro, so games don't see it. OpenController can aim with it instead, by adding it to the right stick, under Motion. On Windows you can also show the controller to games as a DualShock 4, under Information. Games and Steam Input that read motion then get its gyro and accelerometer, but games that only know Xbox controllers don't see it, so it is off by default. It is experimental.
Does it work with flight sticks and wheels?
Yes, and it leaves them as they are, since flight and racing games read them directly, with their twist, throttle and force feedback. To play a gamepad game with a Logitech Extreme 3D Pro, or a Logitech G29 on Linux or a Mac, open it in the app and turn off Keep native. It then becomes an Xbox controller. For other flight sticks and wheels, send their details from the app so they can get the same.
Can more than four people play?
Most PC games accept up to four controllers. Some newer games accept more, and the app lets you know when that happens. On Linux, players past the fourth get their own number too.
A game doesn't see my controller, or my PC gets blue screens.
On Windows, you can try VIIPER. In Settings, under Advanced, the virtual controllers can be made with VIIPER instead of ViGEmBus. It is experimental and off by default, and ViGEmBus is still the recommended choice, but switching can help. Close your games first. Requirements then installs what VIIPER needs when you click, which can ask for administrator rights and a restart. If VIIPER doesn't start, the app goes back to ViGEmBus and tells you.
A button I set to a key does nothing in my game.
Some games ignore keys pressed by other programs, especially games with anti-cheat. Windows also blocks them in games opened as administrator. Some games also forbid macros in their rules, so check before using them; what happens to your account is up to the game.
A HidHide window opens by itself.
That is HidHide's own setup or updater, not OpenController. When HidHide is updated, its installer asks to restart Windows and opens again afterwards to finish. Since version 1.5, HidHide also installs an updater that starts with Windows and lets you know when a new HidHide is out. You can turn it off in Task Manager, under Startup apps, and OpenController keeps working the same.
The app shows my controller with another one's name.
Some controllers copy another one's USB id, like the Onikuma C1, which says it is a Switch Pro Controller. The app can't tell them apart, so open your controller, go to Information and pick yours under Model. It then shows with its own name and drawing.
My controller is not on the list, or misbehaves.
Most controllers work even off the list. Many are built on the same chip as an Xbox, PlayStation or Switch controller and say they are one, so OpenController knows them as that controller. One whose buttons it cannot read shows Map the buttons on its page: press each part when it is asked for, and it works as an Xbox controller. To get yours added or fixed for everyone, open it in OpenController's window, go to Information and press Report a problem. It sends the controller's ids and how the system sees it, which is what it takes to support it without having it in hand. You can add the model and what goes wrong.
Is it finished?
Not yet, it is in beta. With so many controllers out there, some may not work as they should yet and some features are still missing. If something goes wrong, let us know.

07/Contact

Something not working? Tell us.

OpenController is in beta, and every report helps fix it for everyone. Use the form or open an issue on GitHub, whichever is easier for you.

Report a problem

The form asks for what helps find a problem fast:

  • Your system and its version, like Windows 11 or Ubuntu 24.04
  • The exact controller model, and if it is on a cable, Bluetooth or its receiver
  • The OpenController version, shown at the top of its window
  • What you did and what happened, with a screenshot if you can
Open an issue

Suggestions and questions

An idea for a feature, a controller you would like supported, or any question: send it through the same form.

Official site

opencontroller.com.br is the only official OpenController website. Download it only from here or from its GitHub page; any other site offering it is not ours.