Sunday, March 7, 2021

Connect Dualshock 3 via Bluetooth on WIndows 10 without SCP toolkit and Motionjoy.

Dualshock 3 connects to Linux like butter both wired and wireless but windows requires lots of work to do. I tried motionjoy but it was like a malware so surrendered it immediately. Then i tried SCP toolkit but it barely worked after restart. Below were problems faced with scptoolkit -

- It installs drivers (filter drivers) which disables bluetooth to be used by other devices. Some users may use a dedicated dongle for it.

- After restart almost every time DS3 was not working until drivers are reinstalled.

- SCP toolkit is no longer maintained.

 

Now coming to the solution that worked very well and is also more compatible and doesn't cause unwanted trouble of disabling bluetooth etc. In parallel do take a look at https://vigem.org/projects/BthPS3/Installation-Guide-Shibari-Edition/


Limitations:

- Works on Windows 10 only.

- Pressure sensitivity and sensors not supported.


Download and install the latest versions of software from below links:

- Install BthPS3 from https://github.com/ViGEm/BthPS3/releases/latest. Install this first and restart PC. BthPS3 is the bluetooth driver.

- FireShock from https://downloads.vigem.org/projects/FireShock/stable/. This is the USB driver which detects connected DS3 and sets current PC's bluetooth as its master. More info below.

- ViGEmBus https://github.com/ViGEm/ViGEmBus/releases/latest

- Shibari.zip from https://buildbot.vigem.org/builds/Shibari/master/


How it all works?

Dualshock 3 doesn't work with standard bluetooth protocol because it uses its own custom bluetooth protocol. This protocol must be installed in some form to the OS which connects to DS3. We install BthPS3 for this task.

 

DS3 always saves a master bluetooth MAC address in its memory. This MAC address is set using USB connection therefore DS3 are connected with console via USB cable and then it starts working. When PS button is pressed DS3 sends a pairing request to this master bluetooth device. We install FireShock for this purpose. I don't know what else fireshock does but in theory if using other apps to set DS3's master BT device then we may not need this step. However It must be installed for possible unwanted or unpredictable issues.


When DS3 gets connected we want it to behave as XBOX 360 controller. We install ViGEmBus for this purpose.


Now we have to run Shibari.Dom.Server.exe. As the official page says it acts as a bridge among the bundle of software we installed. Kindly refer to the official page for more details to run this program as a service and auto start after boot.


Troubleshoot:

- Ensure DS3 is not damaged. You may reset the controller by pressing a tiny button at backside. There is a tiny hole at rightside of top-middle bolt. Press it with thin object. This resets the gamepad.

 - Ensure programs are installed as mentioned in official page because the details i have mentioned is for versions released on March 2021. Apps must be run as administrator rights.

- Current version of above software works on Windows 10 only.


Below is example log from shibari:


[06:16:42 INF] Launching Shibari, version: 1.6.186.0
Configuration Result:
[Success] Name Shibari.Dom.Server
[Success] DisplayName Shibari Dom Server
[Success] Description Manages AirBender, FireShock & BthPS3 Devices.
[Success] ServiceName Shibari.Dom.Server
Topshelf v4.2.1.215, .NET Framework v4.0.30319.42000
[06:16:43 INF] Loaded sink plugin ViGEm Xbox 360 Sink
[06:16:43 INF] Loaded bus emulator BthPS3 Bus Emulator
[06:16:43 INF] Starting bus emulator BthPS3 Bus Emulator
[06:16:43 INF] BthPS3 Bus Emulator started
[06:16:43 INF] Bus emulator BthPS3 Bus Emulator started successfully
[06:16:43 INF] Loaded bus emulator FireShock Bus Emulator
[06:16:43 INF] Starting bus emulator FireShock Bus Emulator
[06:16:43 INF] FireShock Bus Emulator started
[06:16:43 INF] Bus emulator FireShock Bus Emulator started successfully
The Shibari.Dom.Server service is now running, press Control+C to exit.
[06:17:43 INF] Found SIXAXIS device \\?\BTHPS3BUS#{53F88889-1AAF-4353-A047-556B69EC6DA6}#A&1E23908E&0&0007040BAF51#{7B0EAE3D-4414-4024-BCBD-1C21523768CE} (BTHPS3BUS\{53F88889-1AAF-4353-A047-556B69EC6DA6}\A&1E23908E&0&0007040BAF51)
[06:17:43 INF] Device DualShock3 (00:07:04:0B:AF:51) got attached via Bluetooth
[06:17:43 WRN] Auto-pairing not supported as BthPS3 and/or Bluetooth Host Radio not found
[06:17:43 INF] Connecting ViGEm target Nefarius.ViGEm.Client.Targets.Xbox360Controller
[06:17:43 INF] ViGEm target Nefarius.ViGEm.Client.Targets.Xbox360Controller connected successfully
Controller 1: [■■■ ]
(its green colored bar)

 


For using other drivers or testing of ds3 using rpcs3 emulator

https://wiki.rpcs3.net/index.php?title=Help:Controller_Configuration