Skip to content

About

DS4Windowsbut

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

ย 
ย 

Latest commit

ย 

History

4,640 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

DS4Windows

.NET Release

A powerful controller mapping tool that transforms your DualShock 4, DualSense, Switch Pro, and JoyCon controllers into Xbox 360 controllers for maximum game compatibility on Windows.

โœจ Features

  • Universal Controller Support: DualShock 4, DualSense, Switch Pro, and JoyCon controllers (first party hardware only)
  • Xbox 360 Emulation: Broad game compatibility through Xbox 360 controller emulation
  • Advanced Input Processing: Switch debouncing, stick drift compensation, and motion controls
  • Customizable Profiles: Per-game settings with automatic profile switching
  • Lightbar & Haptics: Full support for controller lighting and rumble effects
  • Low Latency: Optimized for competitive gaming with minimal input delay

๐Ÿ”ง What's New in This Fork

This fork addresses several issues and adds enhancements over the original DS4Windows:

Key Improvements

  • Button Debouncing: Fixes controller button bounce issues that cause unwanted double inputs
  • Stick Drift Compensation: Advanced filtering to reduce the impact of analog stick drift
  • DS3 Motion Support: Pitch and roll simulation based on accelerometer data
  • Updated Version Detection: Uses this repository for version checks (no more outdated version popups)
  • Enhanced Stability: Various bug fixes and performance improvements

Technical Enhancements

  • Modern .NET 8.0 WPF framework
  • Improved memory management
  • Better error handling and logging
  • Streamlined build process

๐Ÿ“ฆ Installation

For Users

Option 1: Direct Download

  1. Download the latest release from Releases
  2. Extract to your preferred location
  3. Run DS4Windows.exe

Option 2: Scoop Package Manager

scoop install ds4windows

Option 3: Quick Install Script

# Download and run the install script
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/madziaar/DS4WindowsBUT/master/ds4w.bat" -OutFile "ds4w.bat"
.\ds4w.bat

For Developers

Prerequisites

  • Windows 10 or newer
  • Visual Studio 2022 or later (with .NET desktop development workload)
  • .NET 8.0 SDK
  • Git

Building from Source

  1. Clone the repository

    git clone https://github.com/madziaar/DS4WindowsBUT.git
    cd DS4WindowsBUT
  2. Restore dependencies

    dotnet restore
  3. Build the solution

    # Debug build
    dotnet build --configuration Debug
    
    # Release build
    dotnet build --configuration Release
  4. Build for specific platform

    # x64 build
    dotnet build --configuration Release --arch x64
    
    # x86 build  
    dotnet build --configuration Release --arch x86
  5. Run tests

    dotnet test
  6. Create distribution package

    # x64 package
    dotnet publish .\DS4Windows\DS4WinWPF.csproj -c Release -r win-x64 --self-contained false
    
    # x86 package
    dotnet publish .\DS4Windows\DS4WinWPF.csproj -c Release -r win-x86 --self-contained false

Development Setup

The project includes development automation scripts:

  • .mentat/setup.sh: Installs dependencies and prepares the development environment
  • .mentat/format.sh: Formats code using .NET standard formatters

๐Ÿ“‹ System Requirements

Runtime Requirements

Supported Controllers

  • Sony DualShock 4 (all revisions)
  • Sony DualSense (PS5 controller)
  • Nintendo Switch Pro Controller
  • Nintendo Joy-Con (L/R pair)

Connection Methods

  • USB: Direct connection via USB cable
  • Bluetooth 4.0+: Built-in or USB adapter (Microsoft BT stack only)
  • Sony Wireless Adapter: Official DualShock 4 USB adapter

โš ๏ธ Important:

  • CSR Bluetooth stack is not supported
  • Toshiba Bluetooth adapters may not work reliably
  • Disable Steam's controller configuration support for best compatibility

๐ŸŽฎ Quick Start

  1. Install DS4Windows using one of the methods above
  2. Connect your controller via USB or Bluetooth
  3. Launch DS4Windows - it will auto-detect and configure your controller
  4. Install ViGEmBus when prompted (required for Xbox 360 emulation)
  5. Configure profiles for your games using the built-in editor

Steam Users

Disable these Steam settings for optimal compatibility:

  • Steam โ†’ Settings โ†’ Controller โ†’ PlayStation Configuration Support: OFF
  • Steam โ†’ Settings โ†’ Controller โ†’ Xbox Configuration Support: OFF

๐Ÿ› ๏ธ Advanced Configuration

Profile Management

  • Create custom profiles for different games
  • Set up automatic profile switching
  • Configure per-game input mappings and sensitivity

Input Customization

  • Remap any button or stick
  • Create macros and special actions
  • Adjust dead zones and response curves
  • Enable motion controls and gyro input

Troubleshooting

  • Enable diagnostic logging for debugging
  • Use the built-in controller test interface
  • Check Windows Device Manager for driver issues
  • Restart DS4Windows service if controllers stop responding

๐Ÿค Contributing

We welcome contributions! Here's how you can help:

Bug Reports

  • Use the issue tracker
  • Include system info, DS4Windows version, and steps to reproduce
  • Attach logs from the application when possible

Feature Requests

  • Check existing issues first to avoid duplicates
  • Describe the use case and expected behavior
  • Consider implementation complexity and user impact

Code Contributions

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes with proper testing
  4. Follow the existing code style (use the provided format scripts)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to your branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Development Guidelines

  • Test changes thoroughly before submitting
  • Maintain backward compatibility when possible
  • Document any new features or API changes
  • Follow .NET coding conventions and best practices

๐Ÿ“„ License

DS4Windows is licensed under the GNU General Public License v3.0.

Copyright ยฉ Scarlet.Crush Productions 2012-2013
Copyright ยฉ InhexSTER, HecticSeptic, electrobrains 2013-2014  
Copyright ยฉ Jays2Kings 2013-2016
Copyright ยฉ Ryochan7 2017-2023
Copyright ยฉ schmaldeo 2024
Copyright ยฉ madziaar 2024

๐Ÿ”— Links

๐Ÿ™ Acknowledgments

  • Jays2Kings & Ryochan7 - Original DS4Windows developers
  • schmaldeo - Continued development and maintenance
  • sunnyqeen - DS3 accelerometer implementation
  • ViGEm Project - Virtual gamepad framework
  • All contributors who have helped improve DS4Windows over the years

Note: This project is not affiliated with Sony Interactive Entertainment or Nintendo. DualShock, DualSense, and PlayStation are trademarks of Sony Interactive Entertainment. Nintendo Switch and Joy-Con are trademarks of Nintendo.

About

DS4Windowsbut

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages