Help:Controller Configuration: Difference between revisions

Help page
No edit summary
(Updated format of comparison)
(21 intermediate revisions by 4 users not shown)
Line 1: Line 1:
==Using DualShock 3 controller==
==Using DualShock 3 controller==
===On Windows===
===On Windows===
''<u>Important</u>: The DualShock 3 (DS3) controller cannot be used on Windows over Bluetooth. Users must connect the controller via USB cable.''
Currently there are 2 methods of setting up your DualShock 3 (and SIXAXIS) to RPCS3:
* Using RPCS3's dedicated DualShock 3 pad handler by installing the official DualShock 3 driver from Sony (through PlayStation Now). '''(recommended)'''
* Using RPCS3's XInput pad handler together with the third-party tool ScpToolkit.  


Currently there are 2 methods of setting up your DualShock 3 (and SIXAXIS) to RPCS3.
Both approaches have advantages and disadvantages so here's a quick comparison between them:
* The first is to use third-party tools such as [https://github.com/nefarius/ScpToolkit/releases ScpToolkit] and selecting the XInput pad handler in RPCS3. While this option allows users to connect the controller over USB or Bluetooth, features unique to the DualShock 3 such as pressure-sensitive buttons or motion controls will no longer function. However, these tools have the advantage of being able to work with virtually any PC game.
{| class="wikitable"
* The second '''and recommended method''' is to use RPCS3's dedicated DualShock 3 pad handler. This is done by installing your controller as a generic USB device and then allowing RPCS3 to handle the controller. While this option lets users take advantage of features such as pressure-sensitive buttons and motion controls, bluetooth functionality will be unavailable. To use RPCS3's dedicated DualShock 3 pad handler:
! style="width: 450px;" | Using dedicated DualShock 3 pad handler !! style="width: 450px;" | Using XInput pad handler
*# Disable all third-party tools accessing the DualShock 3 (such as ScpToolkit)
|-
*# Install generic USB drivers. Use [https://zadig.akeo.ie/ Zadig] and install '''WinUSB''' for your DualShock 3.
| style="background-color: #a0e6a0;" | Non-intrusive and simple installation || style="background-color: #dc8787;" | Slightly complex installation instructions
*# Press the '''PS button''' (in the middle of the pad) to allow the DualShock 3 to start sending reports to RPCS3.
|-
*# Select RPCS3's dedicated '''DualShock 3 pad handler''' in the ''Gamepad Settings'' menu.
| style="background-color: #a0e6a0;" | Supports motion controls || style="background-color: #dc8787;" | No support for motion controls
|-
| style="background-color: #dc8787;" | No Bluetooth connectivity || style="background-color: #a0e6a0;" | Bluetooth connectivity present
|-
| style="background-color: #a0e6a0;" | Can be used in combination with other XInput devices in RPCS3 || style="background-color: #dc8787;" | Currently cannot be used in combination with other XInput devices in RPCS3
|-
| rowspan="2" | Need to uninstall third-party tools that access the DualShock 3 such as ScpToolkit || style="background-color: #dc8787;" | Does not work with Nefarious's version of ScpToolkit, need to use the original version linked below
|-
| style="background-color: #a0e6a0;" | Preferable for users who already have original ScpToolkit v1.2.2.175 installed
|}
 
====Using dedicated DualShock 3 pad handler====
The '''recommended method''' is to use RPCS3's dedicated DualShock 3 pad handler. This is done by installing the official DualShock 3 driver from Sony and then allowing RPCS3 to handle the controller. While this option lets users take advantage of features such as ''pressure-sensitive buttons'' and ''motion controls'', '''bluetooth functionality will be unavailable'''. To use RPCS3's dedicated DualShock 3 pad handler:
# Disable all third-party tools accessing the DualShock 3 (such as ScpToolkit).
# Download the [https://mega.nz/#!dSYlTapS!NQqQAEVvvgkcKMCsUhCaoLYk8xVPT8womz62tabgm6o Dualshock 3 drivers v3.0.0.0] for Windows and install it. [[https://darkcloud.forumcommunity.net/?t=56241030 Source]]
# After completion of the installation, restart your PC.
# Connect the controller using a USB cable and press the '''PS button''' (in the middle of the pad) to allow the DualShock 3 to start sending reports to RPCS3.
# Select RPCS3's dedicated '''DualShock 3 pad handler''' in the ''Gamepad Settings'' menu.
 
====Using XInput pad handler with ScpToolkit====
The alternative method is to use the XInput pad handler along with [https://forums.pcsx2.net/Thread-XInput-Wrapper-for-DS3-and-Play-com-USB-Dual-DS2-Controller ScpToolkit]. This option carries various benefits and drawbacks as mentioned in the table above. To use the XInput pad handler for the DualShock 3:
# Download [http://forums.pcsx2.net/attachment.php?aid=49455 ScpToolkit v1.2.0.160] along with [http://forums.pcsx2.net/attachment.php?aid=49784 Update v1.2.2.175].
# Extract ''ScpToolkit v1.2.0.160'' and place the '''ScpServer''' folder in the location of your choice.
# Extract ''Update v1.2.2.175'' over ScpServer folder and overwrite all files when prompted.
# Connect your controller to your PC using a USB cable or Bluetooth and let Windows automatically install the generic driver.
# Launch the '''ScpDriver.exe''' found in <code>ScpServer/bin/</code> and click '''Install'''.
# Navigate to <code>ScpServer/bin/Win64/</code> and launch '''SCPUser.exe'''. Test whether the input from your controller is correctly recognised. If the input is not recognised, restart your PC and try again.
# Once the input is correctly working, copy the '''XInput1_3.dll''' from the same location to your RPCS3 folder and place it next to the ''rpcs3.exe''.
# Select RPCS3's '''XInput pad handler''' in the ''Gamepad Settings'' menu.
 
''<u>Note</u>'': As stated in the comparison above, this method prevents RPCS3 from recognising other XInput controllers. However, if users move ''XInput1_3.dll'' out of the RPCS3 folder, RPCS3 will be able to recognise both XInput and DualShock 3 controllers at the same time. However, doing so will cause the DualShock 3 controller to lose ''pressure-sensitive buttons'' and behave as a regular XInput device. 


===On Linux===
===On Linux===
Line 15: Line 47:


<pre>
<pre>
# DS3 USB
# DualShock 3 over USB
KERNEL=="hidraw", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", MODE="0666"
KERNEL=="hidraw", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", MODE="0666"


# DS3 Bluetooth
# DualShock 3 over Bluetooth
KERNEL=="hidraw*", KERNELS=="*054C:0268*", MODE="0666"
KERNEL=="hidraw*", KERNELS=="*054C:0268*", MODE="0666"
</pre>
</pre>
Line 28: Line 60:
This will allow RPCS3 to communicate with the DualShock 3. Users can then select RPCS3's dedicated DualShock 3 pad handler in the ''Gamepad Settings'' menu.
This will allow RPCS3 to communicate with the DualShock 3. Users can then select RPCS3's dedicated DualShock 3 pad handler in the ''Gamepad Settings'' menu.


 
==Using DualShock 4 controller==
==Using DualShock 3 controller==
===On Windows===
===On Windows===
The DualShock 4 on Windows works with HIDAPI, allowing for the controller to work through USB as well as Bluetooth. There aren't any additional steps required and the controller should ''just work'' with RPCS3's dedicated DualShock 4 pad handler. However, please note that third-party tools like ScpToolkit or DS4Windows may interfere with RPCS3 and it is recommended to disable all such tools.
The DualShock 4 on Windows works with HIDAPI, allowing for the controller to work through USB as well as Bluetooth. There aren't any additional steps required and the controller should ''just work'' with RPCS3's dedicated DualShock 4 pad handler. However, please note that third-party tools like ScpToolkit or DS4Windows may interfere with RPCS3 and it is recommended to disable all such tools.
Line 37: Line 68:


<pre>
<pre>
# DualShock 4 over USB hidraw
# DualShock 4 over USB
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666"
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666"


# DualShock 4 wireless adapter over USB hidraw
# DualShock 4 Wireless Adapter over USB
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666"
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666"


# DualShock 4 Slim over USB hidraw
# DualShock 4 Slim over USB
# KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666"
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666"


# DualShock 4 over bluetooth hidraw
# DualShock 4 over Bluetooth
# KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666"
KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666"


# DualShock 4 Slim over bluetooth hidraw
# DualShock 4 Slim over Bluetooth
# KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666"
KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666"
</pre>
</pre>


Line 58: Line 89:


This will allow RPCS3 to communicate with the DualShock 4. Users can then select RPCS3's dedicated DualShock 4 pad handler in the ''Gamepad Settings'' menu.
This will allow RPCS3 to communicate with the DualShock 4. Users can then select RPCS3's dedicated DualShock 4 pad handler in the ''Gamepad Settings'' menu.
==Analog sticks not centered with evdev pad handler==
When using the evdev pad handler on Linux, some users may encounter cases where the analog sticks of the controller are not centered but stuck in the corner of the movement zone. This issue occurs when incorrect drivers are used for the controller.
Usually, analog sticks have a range from <code>-x</code> to <code>+x</code> while triggers use only a positive range from <code>0</code> to <code>+x</code>. However, some controllers use positive ranges for analog sticks as well which does not directly work with RPCS3's implementation. Hence, the following workaround is required:
# Navigate to <code>~/.config/rpcs3/</code> and open <code>evdev_positive_axis.yml</code>. If this file does not exist in the directory, create it.
# Change the following lines from '''false''' to '''true''':
:: {|
! Before !! After
|-
| <pre>ABS_X:  false
ABS_Y:  false
ABS_RX: false
ABS_RY: false</pre> || <pre>ABS_X:  true
ABS_Y:  true
ABS_RX: true
ABS_RY: true</pre>
|}
This is not an exhaustive list of options available. Users are requested to toggle other options as required by their specific controller or driver.

Revision as of 19:06, 21 December 2019

Using DualShock 3 controller

On Windows

Currently there are 2 methods of setting up your DualShock 3 (and SIXAXIS) to RPCS3:

  • Using RPCS3's dedicated DualShock 3 pad handler by installing the official DualShock 3 driver from Sony (through PlayStation Now). (recommended)
  • Using RPCS3's XInput pad handler together with the third-party tool ScpToolkit.

Both approaches have advantages and disadvantages so here's a quick comparison between them:

Using dedicated DualShock 3 pad handler Using XInput pad handler
Non-intrusive and simple installation Slightly complex installation instructions
Supports motion controls No support for motion controls
No Bluetooth connectivity Bluetooth connectivity present
Can be used in combination with other XInput devices in RPCS3 Currently cannot be used in combination with other XInput devices in RPCS3
Need to uninstall third-party tools that access the DualShock 3 such as ScpToolkit Does not work with Nefarious's version of ScpToolkit, need to use the original version linked below
Preferable for users who already have original ScpToolkit v1.2.2.175 installed

Using dedicated DualShock 3 pad handler

The recommended method is to use RPCS3's dedicated DualShock 3 pad handler. This is done by installing the official DualShock 3 driver from Sony and then allowing RPCS3 to handle the controller. While this option lets users take advantage of features such as pressure-sensitive buttons and motion controls, bluetooth functionality will be unavailable. To use RPCS3's dedicated DualShock 3 pad handler:

  1. Disable all third-party tools accessing the DualShock 3 (such as ScpToolkit).
  2. Download the Dualshock 3 drivers v3.0.0.0 for Windows and install it. [Source]
  3. After completion of the installation, restart your PC.
  4. Connect the controller using a USB cable and press the PS button (in the middle of the pad) to allow the DualShock 3 to start sending reports to RPCS3.
  5. Select RPCS3's dedicated DualShock 3 pad handler in the Gamepad Settings menu.

Using XInput pad handler with ScpToolkit

The alternative method is to use the XInput pad handler along with ScpToolkit. This option carries various benefits and drawbacks as mentioned in the table above. To use the XInput pad handler for the DualShock 3:

  1. Download ScpToolkit v1.2.0.160 along with Update v1.2.2.175.
  2. Extract ScpToolkit v1.2.0.160 and place the ScpServer folder in the location of your choice.
  3. Extract Update v1.2.2.175 over ScpServer folder and overwrite all files when prompted.
  4. Connect your controller to your PC using a USB cable or Bluetooth and let Windows automatically install the generic driver.
  5. Launch the ScpDriver.exe found in ScpServer/bin/ and click Install.
  6. Navigate to ScpServer/bin/Win64/ and launch SCPUser.exe. Test whether the input from your controller is correctly recognised. If the input is not recognised, restart your PC and try again.
  7. Once the input is correctly working, copy the XInput1_3.dll from the same location to your RPCS3 folder and place it next to the rpcs3.exe.
  8. Select RPCS3's XInput pad handler in the Gamepad Settings menu.

Note: As stated in the comparison above, this method prevents RPCS3 from recognising other XInput controllers. However, if users move XInput1_3.dll out of the RPCS3 folder, RPCS3 will be able to recognise both XInput and DualShock 3 controllers at the same time. However, doing so will cause the DualShock 3 controller to lose pressure-sensitive buttons and behave as a regular XInput device.

On Linux

The DualShock 3 on Linux works with HIDAPI, allowing for the controller to work through USB as well as Bluetooth. To use the DualShock 3 Backend, users need to create a file called /etc/udev/rules.d/99-ds3-controllers.rules (you will need root permissions to create this file), and fill it with the following:

# DualShock 3 over USB
KERNEL=="hidraw", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", MODE="0666"

# DualShock 3 over Bluetooth
KERNEL=="hidraw*", KERNELS=="*054C:0268*", MODE="0666"

After this you must either

  1. restart your computer for these settings to apply or
  2. run sudo udevadm control --reload-rules and replug in your controller

This will allow RPCS3 to communicate with the DualShock 3. Users can then select RPCS3's dedicated DualShock 3 pad handler in the Gamepad Settings menu.

Using DualShock 4 controller

On Windows

The DualShock 4 on Windows works with HIDAPI, allowing for the controller to work through USB as well as Bluetooth. There aren't any additional steps required and the controller should just work with RPCS3's dedicated DualShock 4 pad handler. However, please note that third-party tools like ScpToolkit or DS4Windows may interfere with RPCS3 and it is recommended to disable all such tools.

On Linux

The DualShock 4 on Linux works with HIDAPI, allowing for the controller to work through USB as well as Bluetooth. To use the DualShock 4 Backend, users need to create a file called /etc/udev/rules.d/99-ds4-controllers.rules (you will need root permissions to create this file), and fill it with the following:

# DualShock 4 over USB
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666"

# DualShock 4 Wireless Adapter over USB
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666"

# DualShock 4 Slim over USB
KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666"

# DualShock 4 over Bluetooth
KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666"

# DualShock 4 Slim over Bluetooth
KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666"

After this you must either

  1. restart your computer for these settings to apply or
  2. run sudo udevadm control --reload-rules and replug in your controller

This will allow RPCS3 to communicate with the DualShock 4. Users can then select RPCS3's dedicated DualShock 4 pad handler in the Gamepad Settings menu.

Analog sticks not centered with evdev pad handler

When using the evdev pad handler on Linux, some users may encounter cases where the analog sticks of the controller are not centered but stuck in the corner of the movement zone. This issue occurs when incorrect drivers are used for the controller.

Usually, analog sticks have a range from -x to +x while triggers use only a positive range from 0 to +x. However, some controllers use positive ranges for analog sticks as well which does not directly work with RPCS3's implementation. Hence, the following workaround is required:

  1. Navigate to ~/.config/rpcs3/ and open evdev_positive_axis.yml. If this file does not exist in the directory, create it.
  2. Change the following lines from false to true:
Before After
ABS_X:  false
ABS_Y:  false
ABS_RX: false
ABS_RY: false
ABS_X:  true
ABS_Y:  true
ABS_RX: true
ABS_RY: true

This is not an exhaustive list of options available. Users are requested to toggle other options as required by their specific controller or driver.