Ryochan7 / DS4Windows

Like those other ds4tools, but sexier
https://ryochan7.github.io/ds4windows-site/
GNU General Public License v3.0
6.97k stars 808 forks source link

I did all things correct but Konami or Microsoft is/are..... [SOLVED] = I did serious mistake (I putted totally wrong anti dead-zones numbers) #2217

Closed grandphantom9 closed 3 years ago

grandphantom9 commented 3 years ago

I am using DS4 specially for eFOOTBALL 2021, and in HidHide I set hiding of my input device, then I marked "Filter out section", and did not marked second section that says "Game devices only". In application allowance section I putted two .exes (one is DS4Windows, second is HidHideclient); After that I checked "Hide DS4 Controller" and everything works fine. I also, correctly set my profile. With DS4 output. So profile is correct, output slot is PERMANENT, HIDE DS4 is on, in HidHide two apps have allowance, input device is hidden, output is correctly visible. I do not get any driver errors etc. In devices I see only one: output "wireless controller" - correctly. Also every time, when I want to play game, I check game settings and put every time again controller option for "output cont.". But still controller do not work perfectly in the game, I would say like in 80% of its "capabilities". Also I have dozens "disconnected HID-s ; that I do not open in HidHide window and that I put filtered out...

Can anyone tell what is problem? :)

P.S. OFC Steam controller support is turned off...

Ryusennin commented 3 years ago

USB or Bluetooth? Try USB first.

In HidHide, you need to hide/check your physical input device ("Sony Wireless") and unhide/uncheck your emulated output device ("Xbox 360 for Windows").

"Gaming Devices Only" also needs to be checked. Don't use the old "Hide DS4 Controller" option in DS4Windows if you're using HidHide, they're both doing the same thing and HidHide does a better job.

grandphantom9 commented 3 years ago

I use USB. Okey, my active output slot is DS4 permanent, then I hided only input device in HidHide, unchecked "Hide DS4 Controller".

We shall see what will happen in a minute...

Ryochan7 commented 3 years ago

PCGamingWiki claims there is NO DS4 support included with that game. Supposedly there is a mod to try to add DS4 support. Looks like you will likely have to emulate an Xbox 360 controller.

Available only with a mod "PS4 Controller Layout AIO".

https://www.pcgamingwiki.com/wiki/EFootball_PES_2021

Now for an aside. I kind of wish the HidHide client would either show the VID+PID combo or the device instance path in the blocked device listing. Especially when using various DS4 controllers, it becomes impossible to tell the entries apart. Anytime I want to test the DS4 in some other app, I have to end up un-checking several entries to make sure I unblocked the correct device. That issue would probably come up when using a Permanent virtual DS4 controller as well.

grandphantom9 commented 3 years ago

I will try with PS4 Controller Layout AIO, but I get, dunno, 90% of Dualshock4 capacity. @Ryochan7 ; I get trough all of "those HID devices in HidHide", then when I saw that I messed somewhere with I uninstalled Windows. Now there is only three HID devices in HidHide; Input, Output, and some unknown 3td HID :) I think that key of DS4Windows future stands in making totally new device in (Open devices and printers), and of course making "totally" invisible input device in Device manager..How to do that God Knows, but I see that you have correct program for calibration and setting up of input signal where at output you get perfect signal. But tool that will make input device excluded everywhere else except in DS4 windows would be HUGE THING; BTW : Thank you for DS4WINDOWS !

@Ryusennin You also helped very much, but still it really feels that something I must do next( I tried all combinations, even this but I see that your combination is the most functional and it is constant). Thanks mate.

grandphantom9 commented 3 years ago

And, how you mean "Emulate XBOX 360 Controller", I am asking because when I put xbox 360 controller instead of ds4 at output, it do not work well in game @Ryochan7

grandphantom9 commented 3 years ago

@Ryochan7 I have one notice, that you probably see same as me. But I wanted to say something about that. Based on eFootball 2021 experience; I think that best thing to do is making "Hide DS4 controller" works without any "conflict" with input device hidden in HidHide. Because I see that DS4Windows works best when "Hide DS4 cont." is on. It makes cleanest one output signal. But it goes in conflict in all combinations if input is hidden in HidHide. But we need HidHide to trick other programs, apps, Windows etc. So when you make almost 100% clean output signal trough DS4 Exclusive mode, you need just to figure it out how to totally hide input signal, AND WHEN (in HidHide). Is it possible to make option in DS4Windows :" Combine input signal with DS4Windows calibration etc. into just one output signal = Improved exclusive mode " then to make it works without any conflict with hidden input device in HidHide?

Ryochan7 commented 3 years ago

Not sure what you mean by clean signal exactly. Maybe you are talking about some inherent latency added due to the way the driver handles IO requests. I attempted to document that issue a little bit in another issue and I submitted code to optimize the HidHide driver. With the changes, I get native file handle performance when using HidHide because my version no longer intercepts every IO request but only the initial connection. Going to have to wait for an update for the upstream driver to get access to those changes.

Unscientific Experiments - HidHide https://www.youtube.com/watch?v=SsnIGdmzA0g

HidGuardian suffered similar issues but the last released version at least used optimized build settings that I submitted so that would have helped a bit. IIRC, the current HidHide driver mostly uses build settings set by the project template in Visual Studio.

Kanuan commented 3 years ago

I would say like in 80% of its "capabilities"

@grandphantom9 Also, regarding this quote on your first comment, can you elaborate what does this means? Precision? Input lag?

grandphantom9 commented 3 years ago

@Ryochan7 By cleaner signal I mean on output signal that do not have any interference with anything. Because I see while using DS4Windows during time that something definitely do interfere with it. Like sometimes I can play whole day and will have "enough correct output - and controls will work", but there is moments where I play 3 hours and suddenly whole DS4Windows output becomes broken. I must say that I use it on fully re-installed Windows 10 and that I have 2 brand new DS4 Controllers. So something really do interfere with DS4Windows during time even if are settings for DS4W - perfect. I must say that I disabled "Device drivers automatic updates" in Windows Security settings, of course after first clean driver automatic installation of input device.

@Kanuan No, not on input lag (It is always good) ; But I say that because I saw DS4 working on 100% "capabilities" on Windows it is pure fantasy, and felling is way better than playing PES21 on Playstation 4.

I mean on rest of 20% that SIXAXIS, Gyro, and little bit LS-RS are not working fully correct, they are precise "enough for playing", but they do not give full potential of controller - and in same time you can not use full "control features" like extraordinary passes, shots, and dribble (I am have expert rating in PES, but still I can play knowing that I must use sticks on other way.

@Ryochan7 Also I noticed after I updated to new version trough DS4Win Updater, that DS4 in "old 3.0.8. version folder which become 3.0.9. do not work". So I simple deleted DS4Win folder and Downloaded brand new 3.0.9. version

grandphantom9 commented 3 years ago

I have new solution that seems to be most logical : "Hide DS4 Controller is on" ; In HidHide only input device is hidden, "Filter out" is checked on, "Gaming devices only" is also checked on and of course "Enable hiding" is checked on. But I think key is to put in apps that can look trough both: HidHide client (.exe) and DS4WIN ( .exe ) ; We shall see what results I will get.

Nothing works anymore...

grandphantom9 commented 3 years ago

@Ryochan7 I think that good thing would be to have some software to Hide or to delete few devices and drivers, I think that all bad interferences starts because I can not disable and uninstall 3 other devices inside DS4 ; Headphones, Microphone, and Wireless controller (GENERIC AUDIO USB), I tried few tricks but they do not work..

grandphantom9 commented 3 years ago

@Ryochan7 Just one question, how to know what numbers to put in profile? Deadzone, anti deadzone etc. ? Is there any "software to calculate me best numbers" ?

mika-n commented 3 years ago

@grandphantom9 There is no scientifically "one truth / one size fits all" value for deadzone/anti-deadzone/outputCurve whatever options. It comes down to a hardware (different gamepads may have different drift or off-center in LS/RS sticks), game (racing games ported from console tend to have bigger built-in deadzone than "real" racing simulator games or certain games have adjustable deadzone and others don't let you adjust it in-game) and personal preferences.

But, to have "the best range of LS/RS movement" then zero deadzone and zero anti-deadzone is the best way to go, but it depends on the game and gamepad hardware if you see unwanted drift or LS/RS movement.

After you have set the deadzone and tested the game and you think the LS/RS behaves a bit odd and it is difficult to do small movements then do the same with anti-deadzone setting (start from 0.1 and work your way up and test the new value in game).

grandphantom9 commented 3 years ago

I have been trying but simple I do not know how to set it up...I tried your way to firstly set up LS/RS deadzones then to set up anti-deadzones...but I do not have succes?

Is there any possibility to someone do that for me? I would send all my controller readings and tests... For enhanced precision I need... @mika-n

grandphantom9 commented 3 years ago

I got to some solution that can help to do metrics. I disabled in-game LS controls for playing. Then I putted both LS and RS in DS4Win on linear controls, now I will firstly fix RS deadzone, anti-deadzone, after that for LS. I think that problem is even in that linear-enhanced mode. At least I have wonderful methode for fixing deadzones.

grandphantom9 commented 3 years ago

I do not know how to make profile...always wrong...

grandphantom9 commented 3 years ago

@Ryochan7 @Ryusennin @Kanuan @mika-n Is anyone alive on this planet who can make DS4Windows to do automatic AxisConfig ? Software that will read hardware and then make fully correct and automatic all things that will be putted in every AxisConfig chart...

Kanuan commented 3 years ago

It's basically impossible to offer a solution that covers every single case

You want maximum precision? Leave both deadzone and anti-deadzone at zero, then the virtual controller stick will output EXACTLY what the real controller sticks sends. See example 1 below. The black dot represents the real left stick position my controller is sending. The gray dot represents the virtual Stick from DS4Windows (which is what the game reads). In this case it does not appear because it will be exactly the same as the real one.

The problem with disabling dead zone/anti-dead zone is that, if your stick is not PERFECTLY centered when idle, then the game may think you are actually moving it when you are not even touching it. My controller Left Stick X-axis is not perfectly centered, as you can see on Example 1. It rests a little to the right instead of perfectly at the center. If I use my controller like this, my character in some games will move on its own to the right, a issue known as joystick drift.

The dead zone function exists to counter this. It creates an area/zone where the virtual controller Stick will still be perfectly centered as long as your real stick is inside of it. See on Example 2, top picture. Even though my real L-stick (black dot) is not centered, the virtual L-Stick position from DS4Windows (gray dot) is at the center. The moment my real L-Stick (black dot) moves outside of the dead zone area (Example 2 bottom picture) is the moment that the Virtual L-Stick (gray dot) will start moving.

The anti-dead zone is harder to explain. So it's easier for you to just test it. Try the following settings and check the controller readings. AND REMEMBER: Black Dot = real Stick info, Gray Dot = Virtual Stick Info

(Always save the profile before checking the controller readings when making changes)

image

Try each of those settings and see how the readings respond when moving the sticks and try to understand what they try to do. THESE ARE NOT RECOMMENDED SETTINGS FOR YOU TO USE, IT'S JUST TO TRY HELPING YOU UNDERSTAND WHAT THE SETTINGS DO.

Summary

Conclusion

You are not experiencing a issue. All the info you need is more or less here, on DS4Windows' wiki or it's just a matter of trying different settings and trying to understand how they work on the readings tab. Probably no one will offer you more help because, as I said, this is not a help desk and this is not a issue with DS4Windows.

All things considered, it'd be best if you mark this issue as Closed.

mika-n commented 3 years ago

@Ryochan7 @Ryusennin @Kanuan @mika-n Is anyone alive on this planet who can make DS4Windows to do automatic AxisConfig ? Software that will read hardware and then make fully correct and automatic all things that will be putted in every AxisConfig chart...

Like it was already said it is impossible to do such thing because of hardware differences and personal preferences and no two games are alike.

And I still don't quite understand what is the real problem you are seeing in a game. LS/RS sticks don't work or sensitivity is wrong or what? If you set LS/RS with zero deadzone/zero anti-deadzone/linear output curve then the LS/RS stick is 1:1 mapping as the original hardware sends those LS/RS readings.

grandphantom9 commented 3 years ago

@mika-n Main problem was in my non-seeing circular test screen at Gamepad Tester; So I modified profiles in all ways by my eye, felling of game and gamepad screening at DS4Windows. When I "discovered" that little option at online Gamepad Tester I had success. From apx 10% average error, I got to 3.1 % for LS and 3.9 % for RS. Now I need to configure SixAxis. I think that I will be "very" happy if I get to 2% average error for both...

mika-n commented 3 years ago

Many of the cheap copycat DS4 gamepads have square LS/RS stick movement instead of circular movement like the genuine DS4 gamepad. It is a hardware issue in those copycats.

grandphantom9 commented 3 years ago

Untitled

This is maximum that I got, but it is still not enough to play freakin soccer normally... @mika-n Do you know for any good tool that will recognize my hardware and that will help me to know what numbers to correct in DS4Wind profile? 🗡️

grandphantom9 commented 3 years ago

@mika-n I used reWASD also, and got to 0.0 % error for LS and RS by one config, and got to 0.5% error by another one config, but it worked for little bit, and trough the football match somewhere around 30. minutes it get broken. So I think that KONAMI have so pretty good blocker for software like is reWASD, DS4 etc. Dunno how to trick Konami? :/

Ryochan7 commented 3 years ago

That probably does not matter as much as you think. Testing with my aging Xbox 360 controller shows that analog sticks are not going to output perfectly circular coordinates all the time even when it should be confined to a circle. From what I remember, reWASD intentionally limits the output coordinates of the virtual controller to a perfect circle; still does not help it being slow as molasses and unusable IMO.

DS4Windows does not confine the output coordinates that way by default. The Max Output option is mostly the equivalent option although it will only be active when the value is less than 1.0 (100%). The option was more meant as a negative dead-zone rather than something to bind the output coordinate to a perfect circle.

To end this post, here are some quick Test Circular results with a real DS4 and a real Xbox 360 controller

Real DS4 v.2:

LS: 10.5%
RS: 9.7%

Real Xbox 360

LS: 11.9%
RS: 9.1%
grandphantom9 commented 3 years ago

@Ryochan7 I am currently calibrating trough Steam configuration settings...I need time to learn what settings to put. I am doing it at second Steam settings menu where is a lot of options, anti-dead zone, anti-dead zone buffer etc. I need to learn :)