- Saved searches
- Use saved searches to filter your results more quickly
- License
- ViGEm/BthPS3
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- SCPToolkit
- Use your DualShock 3 and DualShock 4 controllers on PC
- Apps recommended for you
- More information
- Similar to SCPToolkit
- Discover System apps
- How to Connect a PS3 Controller to a PC
- How to Connect a PS3 Controller to a PC
- How to Use Your PS3 Controller With Your Computer
- How to Use a Wireless PS3 Controller With a PC via Bluetooth
- How to Connect a PS3 Controller to a Mac
- Saved searches
- Use saved searches to filter your results more quickly
- Releases: nefarius/ScpToolkit
- ScpToolkit v1.7.277.16103-BETA
- ScpToolkit v1.7.276.16101-BETA
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Windows kernel-mode Bluetooth Profile & Filter Drivers for PS3 peripherals
License
ViGEm/BthPS3
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Windows kernel-mode Bluetooth Profile & Filter Drivers for PS3 peripherals.
TL;DR: these drivers allow popular PlayStation(R) 3 gaming peripherals (SIXAXIS/DualShock 3, PS Move Navigation & Motion Controllers) to connect to Windows via Bluetooth without losing any standard functionality. 😊
This set of Windows kernel-mode drivers enhances the standard (a.k.a. vanilla) Bluetooth stack (Microsoft/Broadcom/Toshiba/Intel/. ) with an additional L2CAP server service (profile driver) and a USB lower filter driver gracefully working around the reserved PSMs issue causing the PS3 peripherals connections to get denied on the default Windows stack. The profile driver attempts to distinguish the incoming device types based on their reported remote names and exposes their HID Control and HID Interrupt channels via simple bus child devices (a.k.a PDOs). The profile/bus driver supports both «regular» operation modes (requiring a proper function driver like a HID-minidriver) and «raw» mode (powering the PDO up without a function driver and exposing it to user-land) for maximum flexibility and future-proofing. The PSM filter only attaches to Bluetooth class devices and unloads itself if the underlying enumerator isn’t USB.
The solution consists of the following individual projects:
- BthPS3 — Multi-purpose kernel-mode driver. Function driver for service PDO exposed by BTHENUM (Microsoft), Bluetooth profile (L2CAP server service) and bus driver for PS3 wireless peripherals.
- BthPS3PSM — Lower filter driver for BTHUSB , patching L2CAP packets. Required for profile driver to receive L2CAP traffic.
- BthPS3Util — User-land command-line utility for managing driver installation tasks and configuration changes.
- BthPS3CfgUI — User-land GUI utility to safely edit driver settings.
- BthPS3SetupHelper — Library hosting utility functions for driver management.
- BthPS3CA — Custom Actions for WiX-based setup.
- BthPS3Setup — WiX-based setup for driver installation and removal.
This solution contains BSD-3-Clause and MIT licensed components:
- Drivers (BthPS3.sys, BthPS3PSM.sys) — BSD-3-Clause
- Setup (WiX project and assets) — BSD-3-Clause
- User-land utilities (BthPS3Util.exe, BthPS3CfgUI.exe) — MIT
For details, please consult the individual LICENSE files.
This is a community project and not affiliated with Sony Interactive Entertainment Inc. in any way. «PlayStation», «PSP», «PS2», «PS one», «DUALSHOCK» and «SIXAXIS» are registered trademarks of Sony Interactive Entertainment Inc.
BthPS3 components can run on Windows 10 version 1507 or newer (x64, ARM64).
Supported Bluetooth host devices
Supported Bluetooth host devices
The BthPS3 profile driver and supported devices have been tested successfully with host devices following Link Manager Protocol (LMP) core specification version 3 (which equals Bluetooth 2.0 + EDR) and higher. Anything lower than that is not advised and not supported. Check your particular chip firmware version in Device Manager prior to installing the drivers:
When loaded onto an unsupported host radio, device boot will fail with STATUS_DEVICE_POWER_FAILURE :
LMP | Bluetooth Version |
---|---|
0 | Bluetooth 1.0b |
1 | Bluetooth 1.1 |
2 | Bluetooth 1.2 |
3 | Bluetooth 2.0 + EDR |
4 | Bluetooth 2.1 + EDR |
5 | Bluetooth 3.0 + HS |
6 | Bluetooth 4.0 |
7 | Bluetooth 4.1 |
8 | Bluetooth 4.2 |
9 | Bluetooth 5 |
10 | Bluetooth 5.1 |
11 | Bluetooth 5.2 |
Pre-built binaries and instructions are provided by Nefarius Software Solutions e.U. and available via setup. Official support covers Windows 10/11 x64/ARM64 only, filing issues about any other version or architecture will be discarded.
Check out the companion solution DsHidMini for using the controller in games!
Knowledge on how to build and (test-)sign Windows drivers is required for creating usable builds. This is outside of the scope of the project documentation.
Build instructions and details
- Step 1: Install Visual Studio 2022
- On the Workloads tab under Desktop & Mobile select at least .NET desktop development and Desktop development with C++ .
- On the Individual components tab search for and select the Spectre-mitigate libs (Latest) for all architectures you wish to build for.
- On the Workloads tab under Desktop & Mobile select at least .NET desktop development and Desktop development with C++ .
- Step 2: Install Windows 11, version 22H2 SDK
- Step 3: Install Windows 11, version 22H2 WDK
- Step 4: Install the WiX Toolset v3.14.0.6526 (or newer)
- Step 5: Setup and build Microsoft DMF
- Step 6: Setup and build Domito
You can build individual projects of the solution within Visual Studio.
The project uses the following branch strategies:
- master — stable code base, in sync with tagged public releases
- devel — work-in-progress changes, mostly bigger changes spanning a couple PRs
Tagged CI builds get mirrored to the buildbot web server, use at your own risk, no support provided whatsoever!
Everything you need to know is documented on the project page, read carefully before considering filing an issue.
Below representation attempts to visualize the relationships between the drivers and devices involved (near host hardware on the bottom, towards exposed child devices on top):
+----------------------+ +----------------------+ | Navigation PDO ++ Motion PDO | +----------------------+ | | +----------------------+ | | | | | | | | | | +----------------------+ +-----+---------+------+ +----------------------+ | SIXAXIS PDO ++ Wireless PDO | +----------------------+ | (BthPS3.sys) | +----------------------+ +----------+-----------+ ^ | v +----------+-----------+ | Bluetooth Enumerator | | (bthenum.sys) | +----------+-----------+ ^ | v +----------+-----------+ | bthport.sys | +----------+-----------+ ^ | v +----------+-----------+ | bthusb.sys | +----------+-----------+ ^ | v +----------+-----------+ | BthPS3PSM.sys filter | +----------+-----------+ ^ | v +----------+-----------+ | USB Stack | +----------+-----------+ ^ | v +----------+-----------+ | USB Bluetooth dongle | +----------------------+
Sources & 3rd party credits
This application benefits from these awesome projects ❤ (appearance in no special order):
About
Windows kernel-mode Bluetooth Profile & Filter Drivers for PS3 peripherals
SCPToolkit
Use your DualShock 3 and DualShock 4 controllers on PC
Apps recommended for you
More information
Similar to SCPToolkit
Discover System apps
How to Connect a PS3 Controller to a PC
This article explains how to connect and use a PS3’s DualShock 3 controller with a PC, with or without a Bluetooth dongle, so you can play games on Steam without a mouse and keyboard. We cover computers with Windows 10, Windows 8, Windows 7, or macOS.
How to Connect a PS3 Controller to a PC
In addition to your DualShock 3 controller and PC, you’ll need a mini-USB cable and the following files:
- ScpToolkit
- Microsoft .NET Framework 4.5
- Microsoft Visual C++ 2010 Redistributable Package
- Microsoft Visual C++ 2013 Redistributable Package
- Microsoft DirectX End-User Runtime Web Installer
- Xbox 360 controller driver (only needed for Windows 7)
When you’ve assembled everything you need, here’s what to do:
- If your DualShock 3 controller is paired with a PS3, first unplug the PS3 from its power source, or else it can cause syncing conflicts.
Download and run ScpToolkit Setup.exe. It should automatically download all of the other files it needs, so just follow all the prompts.
If you’re on Windows 7, download and install the Xbox 360 controller drivers.
After the ScpToolkit finishes setting up, select the big green button above Run Driver Installer on the window that pops up.
On the next screen, make sure the boxes next to Install DualShock 3 driver and Install Bluetooth driver are checked (if you have a Bluetooth dongle plugged in).
Select the arrow beside Choose DualShock 3 controllers to install and choose your PlayStation 3 controller from the drop-down menu.
How to Use Your PS3 Controller With Your Computer
Once installed properly, the DualShock 3 should automatically work with the Steam client and any PC game that supports gamepads. You may be able to adjust the control settings for individual games, but your computer will recognize the PS3 controller as an Xbox controller, so keep that in mind when adjusting the button mapping. When you’re done playing, turn off the DualShock by holding down the PS button on the center of the controller.
ScpToolkit must be running for the DualShock 3 controller to work on your PC.
How to Use a Wireless PS3 Controller With a PC via Bluetooth
To use your PS3 controller wirelessly, you’ll either need a PC with built-in Bluetooth compatibility or a Bluetooth dongle plugged in. You must plug in the controller before you can play wirelessly. After unplugging the controller, it should automatically sync with your PC via Bluetooth if the proper drivers are installed.
How to Connect a PS3 Controller to a Mac
Using a DualShock 3 controller with a Mac is much simpler than connecting it to a PC because the necessary drivers are already present in OS X Snow Leopard and later. But setting up wireless connectivity requires some extra steps.
If you have the latest version of macOS, you can skip steps 7-10 below, as the process has become more streamlined.
- If your DualShock 3 controller is paired with a PS3, first unplug the PS3 from its power source, or else it can cause syncing conflicts.
Reset your PS3 controller by inserting a paperclip into the tiny hole under the L2button on the back of the DualShock 3.
From the Apple menu on your Mac, select System Preferences >Bluetooth and turn Bluetooth on.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
nefarius / ScpToolkit Public archive
Releases: nefarius/ScpToolkit
ScpToolkit v1.7.277.16103-BETA
ScpToolkit v1.7.276.16101-BETA
Back-to-the-roots-Edition
First things first; this release breaks compatibility with older ones, please follow these instructions of you upgrade:
- Make sure the ScpToolkit Clean Wipe Utility is selected in the setup:
- Don’t run the Driver Installer at the end of the setup, finish instead:
- Launch the ScpToolkit Clean Wipe Utility and hit the button:
- Fire up the ScpToolkit Driver Installer afterwards and follow its instructions.
- Every issue linked in this milestone
- Switched back from libusbK to WinUSB driver
- Added customized and signed WinUSB driver
- Updated ScpVBus.sys driver
- Signed everything
- Can’t remember
- Disabled update notification if no new version was found