10. Controller Configuration - Moehammered/switch-remote-play GitHub Wiki

Controller Configuration

This page will help explain some of the configuration options available for the controller menu. Most of them are self explanatory. JoyCon controllers are supported when they are separated and paired individually. To see an explanation on how JoyCon controllers are mapped when they are paired to the Switch as individual controllers, see below.

Table of Contents

controller menu options

Controller Mode

This changes what type of controller device is emulated on the PC. This can be either a PS4(DualShock 4) controller or an Xbox 360(Xinput) controller. The behaviour of the 'home/guide' button will reflect the emulated controller's behaviour in Windows.

Controller Mapping

This changes the face button mappings, allowing you to swap A with B for example. This helps when playing PC games that expect the buttom face button to act as 'A' or the accept button. The available options are:

  • None
    • No face button remapping is applied
  • Invert AB
    • Swap A and B around
  • Invert XY
    • Swap X and Y around
  • Invert XYAB
    • Swap X and Y around, and swap A and B around

Left and Right Analog Mapping

This changes the axis mapping, allowing you to invert the direction of the analog stick. The available options are:

  • None
    • No axis inversion is performed on the X or Y axis
  • Invert X axis
    • Inverts the X axis to make it so when the Switch analog stick is moved left or right, the PC sees the analog stick move in the opposite direction
  • Invert Y axis
    • Inverts the Y axis to make it so when the Switch analog stick is moved up or down, the PC sees the analog stick move in the opposite direction
  • Invert X and Y axis
    • Inverts the X and Y axis to make it so the PC sees the analog stick move in the opposite direction of the Switch's analog sticks for all axis

Home Button Key

This allows for setting a button binding to trigger the 'home' or 'guide' button on the PC. The home button will trigger after holding down the button combo for more than the time specified in the Home Button Trigger Time setting. The button binding can be configured and will bring up a screen explaining how to set a button binding.

  • Pressing 'A' will start the binding screen
    • Button combos are supported
    • You cannot cancel the binding screen
  • To reset the combo to the program default, press the 'B' button

So if you bind it to L+A then to trigger the PS4's 'Home' button on the PC, you'd need to hold L+A down. After you've held it down for more than the time specified in Home Button Trigger Time, the program will treat L+A as the 'home' button being held down until you release the buttons.

Please note, some combos will cause weird behaviour because of pre-existing key bindings overlapping in Windows, Steam, and other programs. See the issue where I documented the behaviour.

Home Button Trigger Time

This allows for setting the time required to hold the Home Button Key to trigger a 'home' button press on the PC. The displayed value is in seconds.

  • Pressing 'A' will bring up the Switch's software keyboard
    • If the value is incorrect, the keyboard prompt will request a value again
  • To reset the time to the program default, press the 'B' button

Controller Count

This allows for setting how many emulated gamepads are created for the stream on the PC. The behaviour differs slightly when emulating DualShock 4 and Xbox 360 controllers.

  • DualShock 4 Behaviour
    • The order of the Switch controllers is not guaranteed to match the order of the gamepads on the PC.
      • Meaning JoyCon 1 is not guaranteed to be DualShock Controller 1 on the PC.
      • I cannot control this behaviour. The driver is responsible for assigning a device 'player' index.
      • No workaround is planned
  • Xbox 360 Behaviour
    • The order of the Switch controllers matches the order of the gamepads on the PC.
      • Meaning JoyCon 1 is Xbox 360 Controller 1 on the PC.
      • This is not guaranteed. However, in my testing, I haven't seen it misbehave.

If you need the controller numbers to match on the Switch and PC, it is recommended to use the Xbox 360 Controller mode. Otherwise, just confirm the player numbers in game and exchange controllers with your mates, or reconfigure them in programs where applicable (like retroarch for example).

JoyCon Mapping Behaviour

Support for JoyCon controllers in separation have been introduced in the 'Multi-controller Support' update. To my surprise, the OS does not automatically handle JoyCon button mapping when the JoyCon is paired. This is done in software. The OS handles the reported orientation of the controller. Switch Remote Play works as follows with JoyCon controllers paired individually:

  • Horizontal orientation is always assumed (vertical or 'upright' orientation is ignored)
  • Face Buttons are mapped to ABXY
    • Right button = A
    • Top button = X
  • Analog stick always maps to the Left Analog Stick
    • Analog button click also maps to Left Analog Button Click
  • SL/SR are mapped to L/R
  • Plus/Minus buttons always map to the Plus button

NOTE: When using JoyCon controllers, any button bindings and configuration settings expecting a full controller's available buttons, might not work.

  • So if you bind 'middle mouse button' to 'Right Analog Click' then you will be unable to perform this action using a JoyCon because all JoyCon analog inputs are treated as 'left analog' inputs.

At this point in time, the behaviour and mapping of JoyCon controllers is not configurable. I have developed the behaviour so it is configurable but this is low priority at the moment. This is because the UI required to allow configuring it will be complicated and a lot of extra work. There is potential for introducing a configuration screen for this, but other features and issues take precedence at this point in time.