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 downloaded here:

This software is required to accept input from a controller on the connecting computer. It is also required to allow DS4 touchpad support.

Using a gamepad

  1. On the client computer, plug in or connect the gamepad.
  2. Press and hold one of the right thumb, or equivalent, buttons for a moment.
    • Do this same step after connecting to the host computer so the host computer discovers the gamepad.
  3. Click the 'Settings' cog.
  4. Click the 'Gamepad' tab.
  5. Ensure your controller is present in the 'Gamepad Mapping' list.
    mceclip0.png
    • If there are multiple gamepads connected, ensure the desired gamepad is present in the list.
    • To confirm that gamepad data is being captured, select 'Show Raw Data' and start pressing buttons and moving joysticks. You should see the 'State' values change for each input option. Please note the Parsec App must be in focus during this test. 

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.

  1. Click the 'Settings' cog.
  2. Click the 'Gamepad' tab.
  3. Ensure the correct gamepad is selected for remapping.
  4. For relevant input options, click 'Map'
  5. Ensure 'State' for relevant button says 'Do something...'
  6. Press the button, or move joystick, to map the physical button to the input option.
    mceclip1.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:

  1. Click the 'Settings' cog.
  2. Click the 'Host' tab.
  3. Select the type of controller the host computer should emulate when a client is connected with a gamepad
    mceclip2.png
    • After doing this, you'll need to restart Parsec for the change to take effect. The next time a guest plugs in a controller on the client, the device will register on the host computer as whatever type of controller you decided on.

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:

  1. Open Device Manager
  2. Expand the "System devices" section
  3. 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
    mceclip0.png

 

If you don't have the newest version, download and run this ViGEm 1.17 updater (32-bit version), 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.

  1. Go to your 'Settings' on Steam.
    go_to_settings.png
  2. Go to the 'Controller Settings'
    1.png
  3. Disable 'Xbox Configuration Support'
    uncheck.png
    • In Parsec all remote controllers are registered as Xbox controllers, even if they're not one.

It's also possible to disable desktop mode on its own if you want the Xbox support for some reason (controller settings > base configurations > desktop mode > browse configs > disabled).

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.

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.

zklodf.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.

gk8hiw.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.

csyvh0.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.

n72edy.png

Other considerations

  • The mapped keys won't prevent your keyboard from typing as normal, unless you follow this tutorial to enable blocking
  • If you notice extra key presses being added or the mouse being triggered, it's likely because of Steam
  • If the UCR controller isn't detected by the host, the host should look into this.
  • If people are still controlling the same player in the game, check this article on issues with controlling the same player. If at least one person (such as the host) is still using the real mouse and keyboard instead of UCR, you may need that person to also use UCR to avoid this, depending on how the game was programmed.