Complete Guide: using wired DualShock 3 controller with PCSX2



  • Target audience

    You're running Windows ≥ 8.1 and want to use your wired DualShock 3 (not 4!) controllers with games you emulate in PCSX2. If you happen to have read about "ScpToolkit": that is a discontinued project. Use this one.

    Note: You will not get full pressure sensitivity support from following this guide. At time of writing (2019-12-26), there is no ready-made solution for that -- from the ViGEm community at least. However, most games are still fun to play without that support!

    Prerequisites

    Software:

    Hardware:

    • a DualShock 3 (not 4!) controller
    • a USB cable connecting that controller to your PC

    The Big Picture

    Among other tools, the Virtual Gampad Emulation Framework (ViGEm) provides the following relevant tools for our task:

    • FireShock: a USB driver for DualShock 3 and 4 controllers
    • ViGemBus: some kind of software bus; in simple language: a place where FireShock "puts" the controllers it recognizes
    • Shibari: inspects the controllers put on the ViGEmBus and exposes them to PCSX2 — or rather Lilypad, the default controller plugin for PCSX2.

    Installation

    Install the necessary ViGEm framework tools:

    1. Install FireShock by downloading and running the latest FireShock release, beware of 32 vs 64 bit editions! By downloading you get a ZIP file. Extract that to some arbitrary location and then run the exe file.
    2. Install ViGEmBus by downloading and running the setup of the latest ViGEmBus release.
    3. Install Shibari by following the Shibari installation guide.

    Now test your set-up :

    1. Start Shibari if you just downloaded and extracted Shibari above, then run the extracted file Shibari.Dom.Server.exe. If you even configured it as a Windows service as the Shibari installation guide describes, then you don't have to do anything.

    2. Connect your DualShock controller via USB to your PC

      If you ran Shibari.Dom.Server.exe in the step before, you should now see [17:27:17 INF] Device is DualShock3 with address ... currently paired to ... in the console window. If you configured it as a service, just carry on.

    3. Start PCSX24. Go to Config -> Controllers (PAD) -> Plugin Settings:

      c54032bc-fbe5-467f-92ac-64399a3a7d61-image.png

      You should get the following "LilyPad Settings" dialog:

      e6507092-252c-4600-979b-905185eea038-image.png

      You can use your controller either with the DirectInput or XInput API. Both of them are listed under Game Device APIs.

      1. Choose one of those APIs, preferably DirectInput, and make sure it's activated in the Game Device APIs section.
      2. Now right-click in the device list under Device Diagnostics on your device. For XInput it's called XInput Pad 0, for Direct Input it's called DX Controller (XBOX 360 For Windows).
      3. Choose Test Device as shown in the screenshot.

      You will be presented a dialog with numeric values. If you randomly press buttons or move analog sticks on the controller, you are supposed to see some changes there.

    • ℹ️ You don't see the controller listed in the device list?
      💡 Try restarting your PC after having installed the software and drivers above.

    Finally, configure the bindings for the controller:

    1. Open the LilyPad Settings dialog from before.

    2. Click on the Pad 1 tab.

    3. Remove all pre-configured and superfluous bindings:

      1. Select Allow All Devices in the select box near the bottom. See the image below.
      2. Right-click on the list on the left and choose "Clear All"

      I found this necessary because the pre-configured bindings were misconfigured, I believe. At least in one game R1 didn't work as expected. Also, I don't know what happens if you have XInput and DirectInput bindings configured for the same key. Better to avoid inconsistencies alltogether.

    4. Now change the select box near the bottom to either XInput Pad 0 or DX Controller (XBOX 360 For Windows), depending on which API you chose when testing your set-up before.

      This prevents accidentally configuring random mouse input as the binding just because you moved your mouse while configuring the individual buttons.

    5. Now for every button you see in the right half, e.g. L1, R1, ...

      1. click on that button,
      2. and then click the respective button on your controller

      You should see that button getting registered in the list on the left. On the screenshot below, you already see all buttons configured.

      a683be1d-d37b-41ad-98c5-1a6a8cca8dea-image.png

    You're done!

    Test your set-up with your favorite game!

    • 💡 Remember to always start Shibari before playing if you haven't installed it as a service.
    • ℹ️ Does some button not work or do you experience random button presses even though you didn't press anything?
      💡 Go to the LilyPad Settings dialog again, clear all bindings and resetup all of them again.

Log in to reply