Convert Figma logo to code with AI

nefarius logoScpToolkit

Windows Driver and XInput Wrapper for Sony DualShock 3/4 Controllers

3,090
539
3,090
0

Top Related Projects

Windows kernel-mode driver emulating well-known USB game controllers.

TattieBogle Xbox 360 Driver (with improvements)

Like those other ds4tools, but sexier

Quick Overview

ScpToolkit is an open-source Windows driver and XInput wrapper for Sony DualShock 3/4 controllers. It allows users to use PlayStation controllers on Windows systems as if they were native Xbox controllers, providing seamless compatibility with games and applications that support XInput.

Pros

  • Enables use of PlayStation controllers on Windows without additional hardware
  • Supports both wired and wireless (Bluetooth) connections
  • Provides customizable button mapping and controller profiles
  • Offers additional features like battery monitoring and LED control

Cons

  • No longer actively maintained (last update in 2017)
  • May have compatibility issues with newer Windows versions
  • Installation process can be complex for some users
  • Potential conflicts with other controller drivers or software

Getting Started

  1. Download the latest release from the GitHub repository.
  2. Uninstall any existing PlayStation controller drivers.
  3. Run the ScpToolkit installer as administrator.
  4. Follow the on-screen instructions to install the necessary drivers.
  5. Connect your DualShock controller via USB or Bluetooth.
  6. Launch the ScpToolkit Monitor to configure and manage your controllers.

Note: As this project is no longer maintained, users should be cautious when installing it on modern systems and consider alternative solutions if available.

Competitor Comparisons

Windows kernel-mode driver emulating well-known USB game controllers.

Pros of ViGEmBus

  • More modern and actively maintained
  • Supports a wider range of virtual devices (Xbox 360, Xbox One, DualShock 4)
  • Better performance and stability

Cons of ViGEmBus

  • Requires more setup and configuration
  • Less user-friendly for beginners
  • May not support older games as well as ScpToolkit

Code Comparison

ScpToolkit:

public static Ds3Button[] Buttons =
{
    new Ds3Button(Ds3Button.None),
    new Ds3Button(Ds3Button.Select),
    new Ds3Button(Ds3Button.L3),
    // ...
};

ViGEmBus:

VIGEM_ERROR vigem_target_x360_update(
    PVIGEM_CLIENT vigem,
    PVIGEM_TARGET target,
    XUSB_REPORT report
)
{
    // Implementation
}

The code snippets show different approaches:

  • ScpToolkit uses C# and focuses on button mapping
  • ViGEmBus uses C++ and provides a lower-level API for device emulation

ViGEmBus offers more flexibility and control over virtual devices, while ScpToolkit provides a simpler, more straightforward approach for specific use cases.

TattieBogle Xbox 360 Driver (with improvements)

Pros of 360Controller

  • macOS-specific, providing native support for Xbox controllers on Apple systems
  • Actively maintained with regular updates and bug fixes
  • Includes a preference pane for easy configuration

Cons of 360Controller

  • Limited to macOS, not cross-platform like ScpToolkit
  • Fewer controller options supported compared to ScpToolkit
  • May require additional setup for some games or applications

Code Comparison

ScpToolkit (C#):

public static Ds3Device NewDs3Device(ScpDevice.Notifier notifier)
{
    return new Ds3Device(notifier);
}

360Controller (Objective-C):

- (void)handleReport:(void*)report withLength:(int)length
{
    [self parseReport:report withLength:length];
}

Both projects aim to provide controller support, but their implementations differ due to target platforms and programming languages. ScpToolkit focuses on Windows support using C#, while 360Controller is tailored for macOS using Objective-C. The code snippets demonstrate these differences in language and structure.

ScpToolkit offers broader controller support and cross-platform compatibility, making it more versatile for Windows users. 360Controller, on the other hand, provides a more integrated experience for macOS users with its native implementation and preference pane for easy configuration.

Like those other ds4tools, but sexier

Pros of DS4Windows

  • More actively maintained and updated
  • Supports a wider range of controllers, including DualSense (PS5)
  • Offers more customization options and profile management

Cons of DS4Windows

  • Requires additional setup for exclusive mode
  • May have compatibility issues with some games
  • Slightly more complex user interface

Code Comparison

DS4Windows (C#):

public static void LoadActions()
{
    actions.Clear();
    foreach (string actionName in Enum.GetNames(typeof(DS4Controls)))
    {
        DS4ControlItem item = new DS4ControlItem(actionName);
        actions.Add(item);
    }
}

ScpToolkit (C#):

public static void LoadMappings()
{
    mappings.Clear();
    foreach (string buttonName in Enum.GetNames(typeof(X360Button)))
    {
        X360ControlItem item = new X360ControlItem(buttonName);
        mappings.Add(item);
    }
}

Both projects use similar approaches for loading control mappings, but DS4Windows focuses on DS4 controls while ScpToolkit targets Xbox 360 controller emulation. DS4Windows generally offers more flexibility and features, while ScpToolkit provides a simpler solution for Xbox 360 controller emulation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

ScpToolkit

Windows Driver and XInput Wrapper for Sony DualShock 3/4 Controllers


🧟 DEAD SINCE 2016 🧟

This project is unmaintained since 2016, let it rest!

For Windows 10 (or greater), consider using DsHidMini instead ❤️


🔥 OBSOLESCENCE NOTICE 🔥

Dear community, it has been an amazing ride but the time has come to let go. The ScpToolkit has outgrown itself and won't be continued any longer. You're still welcome to continue using it if it fits your needs, just don't expect any support, fixes or new features from the original developers.

📘 FURTHER INFORMATION 📘

👉 Archival statement

👉 Removal guide

⚠️ SHADY CLONES ⚠️

With rising popularity of this project came the leeches 😉 The only official authentic download location is (and always was) here on GitHub: https://github.com/nefarius/ScpToolkit/releases

Any other site claiming to host, support, extend or continue ScpToolkit is unofficial and is not endorsed by the original developers. Some example search results:

copycats not found

You have been warned 🙃


Credits

Community

Sponsors

  • ScpToolkit´s Setup is created with Advanced Installer, a feature-rich and yet easy to learn installation package creation framework for the Windows platform.
  • Development is assisted by JetBrains ReSharper Ultimate tool collection, a must-have for every serious .NET developer.

Used libraries and other 3rd party code

Installation requirements

Optional

  • A supported Bluetooth 2.0 (or higher) compatible USB dongle with EDR (Enhanced Data Rate)
  • For DS4s to be useable the minimal supported Bluetooth version is 2.1!