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 Mode
- Controller Mapping
- Left and Right Analog Mapping
- Home Button Key
- Home Button Trigger Time
- Controller Count
- JoyCon Mapping Behaviour
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
- The order of the Switch controllers is not guaranteed to match the order of the gamepads on the PC.
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.
- The order of the Switch controllers matches the order of the gamepads on the PC.
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
- Right button =
- Analog stick always maps to the
Left Analog Stick
- Analog button click also maps to Left Analog Button Click
SL/SR
are mapped toL/R
Plus/Minus
buttons always map to thePlus
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.