Setup Gamepad

The Parsec app enables gamepad input to be passed from client to host. If your friends or guests prefer to use a gamepad, it should work out of the box, but some additional customization may be necessary depending on the gamepad type and/or player preference. In the Windows version of the Parsec app, you can choose to have your virtual controller emulated as an Xbox controller or as a DS4 controller.

Parsec uses an open source virtual controller driver called ViGEmBus maintained by Benjamin Höglinger (nefarius). The driver and library are under an BSD 3-Clause Licence. This driver is most likely installed on your computer already as part of the Parsec application install, however it can also be manually downloaded from ViGEm's GitHub. It's required on host computers to accept input from clients.

Table of contents

Using a gamepad
Change input mapping
Adjust gamepad emulation settings on host
Rearrange controller order
DualShock 4 touchpad support
Disable controller to keyboard and mouse conversion
Emulating a controller with a keyboard
Known issues

 

Using a gamepad

Checking Parsec recognizes the gamepad

Before connecting, you can check that your controller is recognized by Parsec with these steps:

  1. Plug in or connect the gamepad on the client computer
  2. Open the Parsec settings by clicking the 'Settings' cog
  3. Click the 'Gamepad' tab
  4. Select the specific controller you want to test in the dropdown menu
  5. Press buttons on your controller and check that the 'State' section updates accordingly

If you do not see your controller in the list, see our section for "Parsec can't see the controller on the guest" on our troubleshooting page for controller issues.

viewing_gamepad_tab.png

How to use a gamepad on the host computer

  1. Plug in or connect the gamepad on the client computer
  2. Connect to a computer on Parsec, via the Computers tab or Arcade tab
  3. Press one of the face buttons on the controller(s) you want to use to add it to the host computer
  4. The host computer should play an USB plug-in sound, indicating that the controller has been added
  5. Start a game and play! (depending on the game, you may need to enable co-op or configure the game)

If your controller does not work correctly, see our troubleshooting page for controller issues.

 

Change input mapping

If your controller seems to be mapped wrong, the main thing you should do is confirm where your buttons are are mapped to, and adjust mappings if necessary. If things are mapped properly on the client, the rest is up to the game on the host. You should ensure the game on the host isn't mapped incorrectly either, in that case.

  • Open the Parsec settings by clicking the 'Settings' cog
  • Click the 'Gamepad' tab
  • Select the specific controller you want to remap in the dropdown menu
  • Click 'Map' on the button you want to remap
  • Ensure 'State' for relevant button says 'Do something...'
  • Press the button, or move the joystick, to map the physical button to the input option

remapping_button.png

 

Adjust gamepad emulation settings on host

On a Windows host computer, you can choose to have your virtual controller emulated as an Xbox controller or as a DS4 controller. To change what type of controller the Parsec app emulates on the host computer, follow the steps below:

  • Open the Parsec settings by clicking the 'Settings' cog
  • Click the 'Host' tab
  • Select the type of controller the host computer should emulate when a client is connected with a gamepad
  • Scroll to the top of the settings page and click 'Restart' to apply changes

virtual_gamepad_setting.png

 

Rearrange gamepad order

Rearranging the controller order can be useful in various scenarios, such as when your game only lets one person control at a time and you want to take turns with someone else. While Parsec itself does not have an easy feature that lets you change the controller position, you can still do it with either method below. You should do these on the computer that is hosting the game.

Method 1: Use the game or emulator settings

Most emulators have flexible enough settings that allow you to change who is in control of which slot in the emulated console. Some games may also let you do it, although that is rarer. Check your game or emulator settings.

Method 2: Disconnect and reconnect in order

You can turn off all guest and host controllers, then reconnect them in the order you want them to be in, such that the game recognizes controllers in a different order.

The host should unplug or turn off their own controller, and right-click Parsec in the taskbar and click "Reset gamepad" to disconnect the controllers of all the guests who are connected. If the game is being hosted on Arcade, the "Reset gamepad" function will be in the in-game overlay.

To reconnect, plug or turn on the host controller, and press buttons on the guest controllers in the order you want the controllers to be in. Once done, you should have a different controller order.

Method 3: Steam Input

You can start a game inside Steam's Big Picture Mode, and use the in-game big picture overlay to change the position, or configure a button combo on your controller to do it.

steam_big_picture_icon.png

After starting a game inside Big Picture, you can use the guide button (xbox or playstation icon in your controller) to bring up the overlay, and in Controller Options > Rearrange Controller Order, you can tweak the order.

overlay_procedure.png

If you want to set a button combo in your controller to more quickly switch the position, you can make it so that pressing the guide button along with something else swaps your controller into a given position.

To configure it, get out of the game and go back to the main Big Picture menu. Click the Settings icon > Base Configurations > Steam Button Chord. Select something like button X, click the icon that has a controller and two users, and select the player that your controller will be swapped to when you press the guide button along with the button you chose. Once done, open a game inside Big Picture to use it.

You'll probably want at least two different buttons, for example, Guide button + X set to swap your controller to player 1, and Guide button + B set to swap your controller to player 2.

button_mapping.png

 

DualShock 4 touchpad support

Guests on Windows and macOS can use both the Dualshock 4 and DualSense controller's touchpad. touchpad input will be passed onto the host as a DualShock 4 controller, for games and programs that use it. To use the DualShock 4 touchpad, your host computer must have the 1.17.333 ViGEm driver, or newer. Before anything, check which version you have by following the steps below:

  • Open Device Manager
  • Expand the "System devices" section
  • Check if you see "Nefarius Virtual Gamepad Emulation Bus". If you see that specific name, you already have the newest driver and you should be able to use the touchpad

nefarius_virtual_gamepad_in_device_manager.png

 

If you don't have the newest version, either reinstall Parsec or run the latest ViGEm installer found on GitHub, then restart the computer. Keep in mind you need Windows 10 to install this driver.

To use the touchpad with the new drivers, change your host's 'Virtual Gamepad Type' to DualShock 4 following the steps outlined in 'Adjust gamepad emulation settings on host'. Don't forget to restart the Parsec application after making the change.

 

Disable controller to keyboard and mouse conversion

In Steam, there is a setting that converts controllers to a mouse/keyboard. You should disable this if you are hosting. If this Steam setting is enabled, Steam will always convert your friends controller to a mouse on the desktop and in non-Steam games.

  • Open the Big Picture Mode on Steam

steam_big_picture_icon.png

  • Click the 'Settings' cog

steam_settings_icon.png

  • Go to the 'Controller Settings'

steam_controller_settings.png

  • Disable 'Xbox Configuration Support'

steam_xbox_configuration_support.png

It's also possible to disable desktop mode on its own if you want the Xbox support. For that, instead go to Controller Settings > Base Configurations > Desktop Mode > Browse Configs > Disabled.

 

Emulating a controller with a keyboard

This is a tutorial on using UCR, which emulates an xbox controller and uses your keyboard as input. This is useful in cases where multiple people only have a keyboard to play games with, and the game does not let you use a different set of keys for each player. It can also be useful if the host can't or doesn't want to give you actual keyboard permissions. UCR can take a while to set up, so if possible, use a controller instead.

Note: There's also a built-in basic "keyboard to controller" emulation when you join games hosted via Arcade Beta, which requires no setup. It lacks button rebinding, d-pad, and the right analog stick, so you may only use it for games with simple controls, like Overcooked.

Installing UCR

You will want to setup UCR on the guest's computer, instead of the host. This will allow the host to use their mouse and keyboard as normal, while the guest uses the emulated controller.

  • Download UCR and Interception, and unzip both
  • Go to Interception's folder > command line installer
  • Hold shift and right-click install-interception.exe, then click Copy as path

interception_copy_as_path.png

  • Open command prompt as administrator

run_as_administrator_cmd.png

  • Paste the path, type " /install" (with the space), and press enter
  • You should see a success message. If you don't, you might have done something wrong. You can get a general idea of how a correctly entered command looks like below, although the path you copied may look different

command_prompt_example.png

  • Restart your computer

Creating a profile

  • Open UCR from its folder
  • Click the plus icon next to Profiles
  • On Input Devices, select a keyboard (starting with K:) from Core_Interception. If you see multiple keyboards, you can choose one and if things don't work later on, re-create a profile with another keyboard selected
  • On Output Devices, select ViGEm Xbox 360 Controller 1. If you don't see ViGEm, reinstall Parsec then restart your PC
  • Name the profile anything you want and hit Create

create_profile.png

Configuring the profile

Once you create the profile, double-click it in the list to start configuring which keys on the keyboard will trigger a button on the controller. The following is what you do for each button:

  • Choose a plugin on the left (each plugin is explained further below this article)
  • Name your plugin anything you want and hit Accept
  • On the right side, click the blue buttons to choose your key and controller button
  • Repeat for every button in the controller

remapping_process.png

In the example above, I set my keyboard key "L" to trigger the face button "A" in the controller. There are three plugins you can choose, and each of them are for a specific set of buttons on the controller. Click a section below to learn more about each.

Button to Button - Normal buttons

Use it for normal buttons (A, B, Start, Dpad, etc.). There's nothing special to this, just click the blue buttons to select what key on your keyboard and button on the controller it is.

Button to Axis - Left and right triggers

Use for the left trigger (LT) and right trigger (RT). Map as normal, but set Axis on Release to -100. If you forget to set this to -100, you may find your triggers are permanently activated when in-game.

example_lt.png

Buttons to Axis - Analog sticks

Use for the left stick (LX, LY) and right stick (RX, RY). You'll be mapping two keys at once for each axis, such as W and S for up and down.

demonstration_sticks.png

To make sure the directions aren't inverted, you need to map in this specific order:

  • LX (left stick, horizontal): map the right key first, then left
  • LY (left stick, vertical): up then down
  • RX (right stick, horizontal): right then left
  • RY (right stick, vertical): up then down

The example below maps the left stick to WASD.

example_sticks.png

 

Activating and troubleshooting

To activate the mapping, select the profile and hit the play button to activate. You can then test if the controller works as expected with gamepad-tester.com.

test.png

Other considerations

 

Known issues

Controller has some stuck inputs while playing

Xbox One S bluetooth controllers are known to get triggers and other buttons stuck sometimes, specifically when they vibrate. To fix this, update the controller's firmware to something above version 4 using the Xbox Accessories app.

General tips for Windows users

Most popular controllers work just fine, such as genuine Dualshock 4, Dualsense, Switch Pro, Joycon, and Xbox controllers. Gamecube controllers will work with a Mayflash adapter set to PC mode.

If the controller is showing but can't be remapped properly, or it is generally behaving weirdly, consider searching for a program to convert it to Xinput, the xbox controller API.

macOS support

If you're using an xbox controller with the 360Controller driver (for macOS Catalina or older), go to its preferences in System Preferences and turn on "Pretend to be an Xbox 360 Controller" in the advanced tab.

macOS by default supports official Bluetooth Xbox One, PS4, Xbox One Series S/X, PS5 and Made For Apple controllers only. If you've tried your Bluetooth controller and it doesn't work with macOS, but it is an official first party controller as mentioned above, Apple recommends upgrading to the latest version of macOS.

Issues with Dualshock 3 on Linux and Dualsense on Android

We're currently aware of an issue with the d-pad on Dualshock 3 controllers on Linux, and general broken mapping with Dualsense controllers on Android. There's no workaround for those issues at this time.

Triggers on Android

Some controllers may require additional remapping in the Parsec settings for the triggers to work. If your triggers don't work, please use the steps further above in this page to map your triggers. In addition, some controllers will only work with digital triggers (on/off) instead of analog (0-255). There's no workaround for the analog issue at this time.