Code Monkey home page Code Monkey logo

ds4windows's Introduction

DS4Windows

Like those other DS4 tools, but sexier.

DS4Windows is an extract anywhere program that allows you to get the best DualShock 4 experience on your PC. By emulating an Xbox 360 controller, many more games are accessible. Other input controllers are also supported including the DualSense, Switch Pro, and JoyCon controllers (first party hardware only).

This project is a fork of the work of Jays2Kings.

DS4Windows Preview

License

DS4Windows is licensed under the terms of the GNU General Public License version 3. You can find a copy of the terms and conditions of that license at https://www.gnu.org/licenses/gpl-3.0.txt. The license is also available in this source code from the COPYING file.

Downloads

Requirements

  • Windows 10 or newer (Thanks Microsoft)
  • Microsoft .NET 8.0 Desktop Runtime. x64 or x86
  • Visual C++ 2015-2022 Redistributable. x64 or x86
  • ViGEmBus driver (DS4Windows will install it for you)
  • Sony DualShock 4 or other supported controller
  • Connection method:
    • Micro USB cable
    • Sony Wireless Adapter
    • Bluetooth 4.0 (via an adapter like this or built in pc). Only use of Microsoft BT stack is supported. CSR BT stack is confirmed to not work with the DS4 even though some CSR adapters work fine using Microsoft BT stack. Toshiba's adapters currently do not work. Disabling 'Enable output data' in the controller profile settings might help with latency issues, but will disable lightbar and rumble support.
  • Disable PlayStation Configuration Support and Xbox Configuration Support options in Steam

ds4windows's People

Contributors

axroxx avatar carloshbcabral avatar crazyhpi avatar czukowski avatar dandelionsprout avatar dondrakon avatar dpearson2699 avatar flo082002 avatar gingeradonis avatar greysole avatar h1nnak avatar jays2kings avatar jeek-midford avatar kanuan avatar makisekurisu avatar mika-n avatar nefarius avatar reddevilus avatar rkanuan avatar rokaskil avatar ryochan7 avatar sander0542 avatar shikulja avatar siliconexarch avatar sunnyqeen avatar syaoranchang avatar v-olk avatar xadler avatar xlive avatar yohoki avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ds4windows's Issues

Some issues, Idle disconnect does not work.

Been having some issues, Idle disconnect doesn't do anything my ds4 is connected through a cable and idle disconnect is set to 5 minutes and the light just stays on never turns off, same for BT.
Another minor thing, the middle click does not also work usually it's supposed to exit the program.
am using the latest version 1.4.72 on windows 10.

Issues if more them 1 Multi-Action Button is activated in the same profile

Description

If more the 1 Multi-Action Button is selected only the first in the "Special Actions" list will work properly
Changing the order of the "Multi-Action Button" in the list will also change the results.
So the first in the list will be always be the result of TAP and HOLD in all the other Multi-Action Buttons created.
The Double-Tap function will still work regardless of the number of Multi-Action Buttons Selected.
So maybe the fix is in the Double-Tap function itself.

Expected behavior

Each Multi-Action Button should work independently and return the set macro.

Actual behavior

Only the fist Multi-Action Button in the list is working 100%

Steps to reproduce the bug

Multi-Action Button 1 - TAP "a" / Hold "b" / DoubleTAP "c"
Multi-Action Button 2 - TAP "d" / Hold "e" / DoubleTAP "f"
Multi-Action Button 3 - TAP "g" / Hold "h" / DoubleTAP "i"

Multi-Action Button 1 Returns - "a" / "b" / "c"
Multi-Action Button 2 Returns - "a" / "b" / "f"
Multi-Action Button 3 Returns - "a" / "b" / "i"

So the result shows that the only DoubleTAP is working when more them 1 Multi-Action Button is set.

Version/Commit

1.4.71

[Request] Toggle hotkeys

Hi,
first of, thanks for picking up the development!

I would like to request a feature to disable some of the hotkeys that exists by default in the software. Specifically the PS + Touchpad -> Toggle touchpad movement. I always accidentally manage to turn it off and then forgetting how to turn it back on. So an option to choose which inbuilt hotkeys to enable/disable would be great!
Thanks!

Cursor Only Working w/One Controller

Cursor only works with 1st paired controller regardless if the 2nd controller has a first controller profile and the original controller is off.

DS3 support

The original DS4Windows author didn't want to implement DS3 support because it would be too much work. Are you willing to look into this? ScpToolkit supports it just fine and DS4Windows uses the drivers from ScpToolkit. So maybe there is a possibility.

Why am I requesting this? When I have friends coming over I have to use ScpToolkit so my third controller (DS3) works as well. However, I'd rather use DS4Windows at all situations. Switching between both tools is kinda annoying as well.

[Sony Dongle] USB priority

Another issue with the Sony dongle.
Even after disconnecting the controller with the dongle and them connecting with the USB cable causes the controller to become the second controller.

Like the dongle is a controller by itself.
But the "dongle" controller does not work or respond.

Any chance the USB could take priority?

Task Manager Auto Start Refeature

I would like to ask for the check box for the autostart option to create a task manager entry and after the exe is started again (or, the shortcut exe set in windows auto start folder that calls to the task manager option set by the program), it will call for the task manager option so that it will always start in admin mode. This would be helpful for MMOs that require admin access for the controllers to work. If unchecked, it would delete said task manager option and windows folder autostart shortcut.

Stick dead zones not interpreted correctly

There is no interpolation happening with the stick dead zones. Once the stick moves past the assigned dead zone, the output coordinates jump immediately to the input coordinates as opposed to interpreting the distance between the dead zone and the maximum axis value.

[Crash] Special Actions options trows unhandled exception - Fixed

Just found out about this fork of DS4W!
Thanks for all the work!!

But trying to access the Special Actions tab crashes the app with a unhandled exception error!
Both on old and new profiles.

I notice I can only access the tab just after creating a new profile.
Closing the app and loading the same profile Special Actions or any other profile will crash.

Work-around before accessing special actions tab just create a new profile

Bug when controller is disconnected

When I turn off the controller by holding down the home button, it still remains registered as connected and afterwards it won't connect unless restarting DS4 (it's still connecting to the bluetooth host since the light bar turns white). Also hitting stop while it's still registered as connected causes the app to freeze (it seems to get stuck in a loop?).
P.S. This doesn't happen when the controller disconnects from weak signal.

simultaneous controller initiation problem

Xinput allocation problem is back. Two controllers turned on, only one microsoft xbox gamepad is shown in joy.cpl. Unable to turn off 2nd controller's lights. 2nd player unable to play.

Change Light not working anymore since 1.4.62

So the option to change light in the select an action for [...] menu is no longer working since 1.4.62.
This option is maily used to change the lightbar color when pressing a button or macro.

When going back to 1.4.61 it works fine ;)

Launch Program With Profile Not Working

Just tried to make Bigbox launch with turning the controller on with said feature and it's not working. Also, if you fix it, make sure it doesn't launch the same program again if the process is still in the process list when the controller is initiated again. Thanks in advance.

Silently Uninstall 360 Accessories Guide Button Popup

Can you code into ds4windows to silently uninstall the xbox 360 accessories addon that automatically installs with the xinput drivers? The popup that comes up is annoying everytime you press the guide button. Make a check on startup to see if it resides in its location, and if it does, silently uninstall it. Would prevent this annoyance whenever we would need to reinstall the xinput drivers just in case something goes wrong with the program.

Assingn gamepad buttons to the touchpad not working anymore since 1.4.62

In the "select an action for [...]" assigning gamepad buttons to the touchpad is no longer working since 1.4.62.
The touchpad responds fine to keyboard or mouse commands but it does not respond to gamepad buttons.

Like making the left touch the start or the back buttons.
When going back to 1.4.61 it works fine ;)

Loss of control - analog sticks

Hi, thank you for continuing on the project.

I discovered your updates, and thought I'd give it a try. Unfortunately my analog sticks aren't working anymore with your updates.

The original DS4Windows I was using has no issues, and reverting to the original version corrects the behavior.

I notice that when I go in to DS4Windows (your latest version) and have it show me the controller's outputs, both analog sticks appear to be working correctly - the movements are detected. I double-checked my mapping (should be default), and they seem fine.

Buttons seem to work - I can lob arrows into my enemies no prob, as long as they are directly in-front of me, and they're willing to seek me out :)

Color Pulse Algorithm Modify

I would like to ask that the algorithm for the lightbar color pulsing to be modified to coincide with the speed of the original lightbar pulse speed (orange charging light when ds4 is plugged without ds4windows). As it stands now, the pulse speed is too fast and the off light has lesser time than the on light. Each should be equal time. Not that big of a deal but I'm a perfectionist : P

This is for the [Pulse At] option.

Launch Program with Profile Still Not Working

This Feature still not working. When ds4windows displays a controller in its list of controllers, and said controller has this checked in it's profile, then the program is supposed to launch.

EDIT: However, it does work if you switch the controller profile manually and then switch back to the profile that has the option checked.

Conflict with wireless Internet???

In the latest version, when I have the controller activated through bluetooth and start surfing the net at the same time, internet seems to slow to a crawl. But resumes as soon as I turn the controller off.

After recording a macro some functions stop working

So this is a old bug but right now is really easy to reproduce.

Action 1 - Set a light-bar color to any button in the "Select an action" menu
Action 2 - Record a macro for any button in the "Select an action" menu or special actions.

Result - The light bar will stop responding when pressing button from Action 1.
"Shift Modifiers" will also stop working.

Quick Charge Bluetooth to Usb Issue

This has been a problem ever single Jay2Kings added the quick charge feature at my request, where if you are on bluetooth mode and then you plug in the controller with a usb cord, the light is supposed to stay on or switch to whatever the usb cord color is supposed to be. Instead, when plugged at said time, the light turns off and the controller becomes unresponsive and doesn't charge.

So basically, when on bluetooth mode, and the controller is plugged in, it's supposed to switch to cord mode and still work with the quick charge option on. And this probably concludes the list of problems I had with the program over the years.

Unable to use it with two controllers

As soon as I connect the second controller, the program starts to disconnect controllers one after another (fake timeout error). The problem happens with the latest version (1.4.70) but it works if I go back to the 1.4.52 (latest by J2K). The program start an infinite loop when I launch it with 2 controllers. The only thing I can do is click on "stop" button, but the software freeze at the same time. If I open the log tab before clicking on stop, I can take a screenshot of latest log entries (in attachment).

Don't hesitate to tell me if you need some extra information to identify the cause.

Last but not least, thank you very much for the work you are still doing on DS4Windows ๐Ÿ‘

(PS: sorry for my bad english, it's not my native language...)

[UPDATE 1]: No problem with version 1.4.66
[UPDATE 2]: No problem with version 1.4.69. The problem seems to comes with the version 1.4.70.

Log v1.4.70:
Log v1.4.70

Share and Options buttons can't be remapped to Touchpad

One great feature of DS4Windows is the possibility of directly assigning the Touchpad buttons (Left, Right, Upper) to any other button/trigger of the controller, without configuring tedious macros.

In the last 1.4.68 build however, it works for all buttons except Share and Options. Those two buttons can be remapped to the Touchpad in the Profile tab, but they don't have any effect ingame, not even in the Windows Control Panel.

For example I can assign Triangle to Right Touch and it will work as intended in the Control Panel. All other buttons/triggers/sticks will work too, except Share and Options.

Lightbar coming on

I think this is a bug, or maybe it some setting i'm missing

I keep my lightbar turned off to save battery (i also don't want a flashing light at night in my room), but when the controller is turned off and then plugged into usb for charging the lightbar turns orange and continues to flash until i unplug it.

it doesn't seem to happen when i plug the controller in while it's on.

DS3 Support

Do you think you can you add in DS3 support, at least only USB support

[Request] Multi-Action Button - Scan Code option

So I requested this back when J2K was still around.
He did planned to add this in a future release but the development stoped before he release it.
So just a request for consideration.

Also would be great of stead of just macros "Multi-Action Button" would also show the full "select a action screen" with the keyboard/mouse/gamepad and the macros options.

Thanks for all the updates!
Cheers!

Mapping Square and Triangle through Button Press Bug

If you open a profile and press the square or triangle controller button to map them, they will share which ever key you choose instead of having separate keys. Works fine if you use the mouse to select the buttons instead.

Relatively high CPU usage

On my i5-4430 (Win10 x64) uses between 2-6% CPU usage when a controller is connected over Bluetooth. This might be correct, but I expected it to run at about the same CPU usage compared to having a controller connected over cable (~ 1% CPU usage).

Tested on commit: a2fb603

Exclusive mode win 10.

Hi, not really an issue, more of a request that may help a few people.

Is it possible to have DS4Windows automatically disable the controllers in device manager on Windows shutdown and then enable them after windows has loaded?

I've found that disabling the controllers in device manager before I shut down, and then manually enabling them after windows has loaded gets over the exclusive mode issue.

If I try disabling and re-enabling them without the shut down in between, exclusive mode can't be achieved.

Many thanks for your work.
Puckle.

Game Profile Mode Launches Program Multiple times

If you have a program in the launch program with profile section and you are using game profile mode (when process on top is read and if it is the process on top matches, the controller config is used), it keeps launching the program.

For example, if I have the controller to launch bigbox and bigbox comes up, then I load citra because I have a citra controller profile, ds4windows will launch bigbox again making it appear on top of the game.

Will probably need the same check to not launch a program twice for game profile mode as well.

Rocket League works without using DS4Windows but doesn't work when using it

I'm having a strange issue where using your version of DS4Windows makes Rocket League not recognize the controller. When I stop DS4Windows the DS4 immediately starts working in RL but when I turn it on it stops. The controller is obviously working because using the touchpad as a mouse works fine, it's just the input from the controller that RL somehow doesn't get.

Incorrect battery state and touch assigment with Sony DS4 adapter

Hi, I'm new here (I'm registered on gihub for write here), before yesterday I've used my ds4 on windows without problem but with the sony wirless adapter i noticed this problem:

  1. when the DS4 controller (not the wirless adapter) are disconnected at reconnection DS4Windows set the battery state to 100% only close completely and restart DS4Windows solve the issue

  2. when the DS4 controller (not the wirless adapter) are disconnected at reconnection the controller button binded with the touchpad don't work only close completely and restart DS4Windows solve the issue

Isn't a big problem but if the user don't care of the state of connection before the start of the game can become frustrating to see not executed the given input or not receiving the right state of battery (just for fun yesterday I'm crashed my car into a wall because controller battery reached 0% but DS4Windows tell me 100% and not started to pulse the lightbar at 10%)

Assign Gryo functions.

Hi,
I wonder if it could be possible to re-assign the gryo functions?
If I select the 'use as mouse' option under the Gryro menu, tilting the controller left and right only works if I hold it with the light bar facing straight up towards the ceiling.
Would it be possible to have the tilt left and right function work if I'm holding the controller with the light bar facing straight ahead, towards the monitor?

Thanks again.

[Sony dongle] Unable to play using cable

Well this might be a unsolvable issue.
But since the Sony dongle is detected as "controller 1"
There is no way to play games when the controller is charging by cable since it will be detected as "controller 2"

The only work around is to remove the Sony dongle while the controller is charging.
Maybe if there was a way to set what device is controller 1 and 2.
Or a way to hide the dongle temporary?

Dongle unplugging results in hangs/crashes

When unplugging my dongle while DS4Windows is running results in several different problems when performing in-app actions afterwards (hangs, high CPU usage and app crashes). For example: Disconnect dongle and press 'Stop' in DS4Windows > hang.

Preferably it should be possible to unplug and plug a Bt dongle in while keeping DS4Windows open.

Tested on commit: a2fb603

Possibly change synthetic key press routine to output both virtual key and scan code

Right now, outputting synthetic keyboard key events uses either a defined virtual key or a converted scan code. Based on my previous work, the expected behavior for a key press event using the SendInput API is to actually use both for a synthetic key event. I will have to check whether this assumption is valid before any change is made.

Feature Request: Hold down PS button for short time to disconnect/turn off

The PS4 controller turns on when you hold down the PS button for a few seconds. I'd like the program to be able to turn off/disconnect the controller when holding down the PS button for a short time, as opposed to the 15 second time that the joystick itself has.

One possible way to do this would be to enhance the Special Actions to let you add timed holds there.

Edit: Just realized that after choosing an option, a Hold time setting appears. Didn't realize this already existed.

Mute microphone

I use the Sony dongle and a cellphone headset plugged in the DS4 audio jack. When I open the DS4Windows.exe, the microphone gets muted. I can only use it again when I reboot my PC.
The output audio remains working fine.

Dead zones when using synthetic key and mouse events

It seems that DS4Windows has built in dead zone settings for LS and RS when using synthetic key and mouse events; the profile specified dead zone settings are not used. This kills the usability of the controller when attempting to use emulated KB+M controls.

analog sticks problem

hello, its my first time to use DS4 tool i got new ps4 controller to use it with it
all buttons works fine excepts left and right analog both pressing buttons by them self or sometimes works in windows without auto pressing but my problem that all buttons works in game excepts analogs
plz help me what i have done wrong
sys windows 10
thank you in advance.

AUTO Xinput Port Setting

On my machine (have no idea why) one day, a set of clear xinput ports may be 1-4. The next day, working xinput ports may be 4-7, etc. I would have to constantly keep changing to the ports that work correctly every week or so. I would like to request an Auto setting so that it will find the best xinput ports by itself without user interaction.

Official Sony USB wireless dongle does not work

As noted in other issues, the official Sony USB wireless dongle does not work with DS4Windows. I would think that the dongle would expose the DS4 to Windows as if it were connected via USB but apparently not. At some point, the dongle will have to be bought in order to try to add compatibility. It can supposedly be bought on sale for under $20. The Sony dongle is a bit of a gimped device since a dongle can only be used to connect one DS4 controller instead of supporting at least 4.

[Feature Request] Macro Enhancements

I think 2 features that would be really helpful are:

  1. Key combination trigger repeating macros.
  2. Toggle macros.

Right now you can only assign "repeat while held" macros to one button instead of a key combination.
Just a few things to consider

Check if use controller x for mapping setting is necessary

The "use controller [] for mapping" setting only has an impact in the Options form. Even then, it only attempts to read events from a different DS4 controller for button press detection and the Controller Readings tab. I don't really see the need for the setting as it is currently being used.

Mapping window does not retain scan code setting

If a synthetic key event is bound to a button with the scan code option enabled, the mapping window will disregard the setting if you open the window to change the key binding. Once the window is closed, the scan code setting is removed from the binding. The mapping window should not discard the scan code setting for a bound key.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.