Ryochan7 / DS4Windows

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

Adjust sensitivity of joystick-gyro only? #1450

Closed teeedubb closed 4 years ago

teeedubb commented 4 years ago

Hi,

First off, thanks very much for the continued work that is put into this program - it really makes the DS4 shine across a range of games and emulators.

This isnt a bug , but I dont know where else to ask questions. I have played a few games recently where mouse-gyro doesnt work, or work well, and have been using joystick-gyro which works really well in these situations. The major pitfall of this has been the lack of sensitivity, or increased movement distance that is required compared to mouse-gyro. I have tried altering a few settings in the gyro settings, but they dont seem to make a difference. I still use the joystick and am happy with the sensitivity of the joystick itself, so I'd rather not to change the actual joystick sensitivity in either DS4windows or the game, so I am curious - is there anyway to change the sensitivity of joystick-gyro without changing the sensitivity of the actual joystick?

Thanks for reading!

usergithub64 commented 4 years ago

Can you explain how to tune the gyroscope in racing? For example in: GTA4, GTA5, FlatOut, Wreckfest, Forza Horizon 3, Forza Horizon 4, Colin McRae Dirt, Race Driver Grid, F1 2016. In DS4WINDOWS settings, I assigned the left / right tilt of the gamepad to the left / right tilt of the left stick. What should be done next? In races, the tilt of the gamepad still does not work (does not turn the steering wheel of the car left to right).

mika-n commented 4 years ago

@maximus105 There are two alternative ways to use gyro as a "steering wheel". See the following page: https://github.com/Ryochan7/DS4Windows/wiki/Settings#steering-wheel

The option1 described in the doc is probably what you are now trying to use. It maps gyro tilt left/tilt right separately to X- and X+ axis. However, this option has couple flaws. For example, gyro "wraps around" when DS4 is tilted "over the edge" on the left or right side. Option1 would wrap the X axis value also instead of "locking the steering wheel" to certain max angle. Also, you may have to unmap the original X axis mapping or set big enough deadzone there because if you have both the original X axis mapping and gyro driving the same LS/RS X axis then those may cause conflicting values (or those override each other).

The option2 solves this and many other issues. However, option2 is meant to be used while the DS4 gamepad is attached to a do-it-yourself rig to make the steering wheel immersion more authentic and to make sure DS4 gyro sensors send predictable and more accurate movents which in mapped as X-axis movement. If you use the option2 (=360 steering wheel emulation mode) then this does not require you to unmap the original LS/RS x axis mapping. https://github.com/Ryochan7/DS4Windows/pull/491#issuecomment-439821245

teeedubb commented 4 years ago

So I read up on steering wheel controls and tried playing around with the six axis sensitivity and it has no effect on joystick gyro. I think because sixaxis is tied to the accelerometer?

Also, when mucking around with the controller profiles, with a working autoprofile, is it enough to alt tab from the game to DS4windows, edit a profile, apply it, then return to the game?

mika-n commented 4 years ago

When an active profile is modified and saved then those changes will be automagically and immediately effective (except "Enable Output data to DS4" option change takes effect at the gamepad connection time). In fact, most option changes will be effective right away already before saving the profile (fex linearity/curve/deadzone/antideadzone etc settings as you can see from ControllersReading tab page while editing a profile. However, if you don't save changes then all changes are reverted back to previous values in "Cancel" button click).

usergithub64 commented 4 years ago

I did everything according to the instructions, but the rotation of the gamepad in races using the gyroscope still does not work for me.

mika-n commented 4 years ago

@maximus105 Maybe you should zip the profile file and attach it here (drag-n-drop the ZIP file to a comment field) for a closer inspection. Maybe you have some conflicting setup in the profile file? Attach the latest logfile also. https://github.com/Ryochan7/DS4Windows/issues/1196

usergithub64 commented 4 years ago

Profiles.zip Attached my profiles. And in the games themselves, in the settings, do you need to configure something else? If anything, can you attach your properly configured profile to control the gyroscope in racing?

mika-n commented 4 years ago

@maximus105 You have somehow messed up the Gyro1 profile. Couple issues

DS4Win_SixAxisDeadZoneWrong

When you have mapped gyro to feed LS X axis then you don't have to do anything special in a game if the game uses LS X axis as an input. The game doesn't know if the LS X axis values are coming from the real LS stick or from gyro (feeded by DS4Windows app).

Gyro1 profile used the "straight forward" gyro to LS X mapping. It works (when you fix the sixaxis deadzone value and unbind normal LS X axis or set LS X deadzone big enough) but has those flaws I described above and in the linked doc page about steering wheel option1 and option2 techniques in DS4Windows.

Gyro2 profile uses the "steering wheel emulation" option to map gyro as LS X axis. It works much better as steering wheel (especially if you use it with a do-it-yourself steering wheel rig as shown in pictures linked in earlier posts). But it does require you to do "one time" calibration process. Anyway, you have to fix the gyro sixaxis X and Z deadzone 25.00 value problem.

Don't know how you have managed to set 25.00 as a gyro deadzone value because the app gui doesn't let you to enter nothing but 0.00 - 1.00 values (0.00 = no deadzone 0%, 1.00 = all the way 100% deadzone).

usergithub64 commented 4 years ago

@mika-n Thanks for the help. Now the gyroscope in racing works for me.

usergithub64 commented 4 years ago

I figured out how the number 25 came about. I think this is a DS4WINDOWS bug. If you create a new profile, and then assign certain keystrokes to buttons, triggers or sticks, then after saving and activating this profile, all values with decimal fractions will change to whole values. For example 0.25 will change to 25.00. Therefore, the number 25.00 is obtained.

mika-n commented 4 years ago

@maximus105 Good catch. Could be because there was a similar bug in custom output curve (bezierCurve) where certain localization confused the float->string->float conversion logic (ie. comma vs period as decimal point depending on the country region of WinOS). What is your region in WinOS and how it uses decimal point and thousand group separator? Comma, period, space char or something else there?

usergithub64 commented 4 years ago

@mika-n I have a region: Russia 2020-08-20_204222

teeedubb commented 4 years ago

Ive tried a few of the settings relating to gyro steering, both here and in the wiki, but none seem to make a difference to the sensitivity of joystick gyro. Just wondering if it is possible to increase the sensitivity of joystick-gyro to make it feel more like mouse-gyro while leaving the joystick sensitivity as it is?

Ryochan7 commented 4 years ago

Gyro Mouse Joystick is fundamentally limited by the way a game interprets an analog stick. There is only so much that can be done in a mapper to work around that. There is no disclaimer in DS4Windows anywhere but one major thing that you have to change is that you need to bump up the RS sensitivity in the game itself; Steam puts up a disclaimer stating that the in-game sensitivity of RS has to be changed to properly function. Even then, it is not possible to get exactly the same feel using Gyro Mouse Joystick compared to Gyro Mouse.

teeedubb commented 4 years ago

Thanks for the info Travis. While joy gyro has its flaws it is still better than no gyro.

By the way, how's your hand coming along?

usergithub64 commented 4 years ago

I don't know if this is a bug or not. But I was unable to automatically upgrade from 2.1.9 to 2.1.10. No updates were found. I only managed to manually download DS4WINDOWS x64 v2.1.10 and install everything manually. Last time, upgrading from 2.1.8 to 2.1.9 worked fine.

mika-n commented 4 years ago

@maximus105 Do you still get the same update issue? The latest version is V2.1.12, but is your current version (2.1.10?) telling you that there are no updates available?

usergithub64 commented 4 years ago

Upgrading from 2.1.10 to 2.1.12 was successful.