Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sticks moving slow #9

Open
MartinWillem opened this issue Jan 6, 2017 · 30 comments
Open

Sticks moving slow #9

MartinWillem opened this issue Jan 6, 2017 · 30 comments

Comments

@MartinWillem
Copy link

I've succesfully installed ds4vita and all the buttons work correctly except for the sticks (mainly the left one). In games where you move your character arround with the left stick (like persona 4) the character walks very slow when you go certain directions and when you turn arround.

@parkerlreed
Copy link

parkerlreed commented Jan 7, 2017

Try this https://drive.google.com/open?id=0B2cSlWc2yl7Eend3VG56XzQxSkE

This line has been edited to replace the 32 with a 1 https://github.com/xerpi/ds4vita/blob/master/main.c#L256

As per @xerpi this should be more responsive and possibly fix the issue. (It fixes steering in NFS Most Wanted for me)

@xerpi
Copy link
Owner

xerpi commented Feb 2, 2017

Try the latest version: https://github.com/xerpi/ds4vita/releases

@zany130
Copy link

zany130 commented Feb 16, 2017

I have the same issue on the latest version

@zany130
Copy link

zany130 commented Feb 17, 2017

Sorry for the double coment. Actually for me it's just when I push the stick forward

@MartinWillem
Copy link
Author

I'm still experiencing the same issue with the newest version.
To be more specific the issues happens when I play ratchet and clank collection. When turning the de sticks in a circular way from bottom to right to top the character keeps moving to the right, the same thing happens when rotating it the other way but then the character moves the other way, i have tried editing the threshold for the x an y axis's of the ds4 controller and this improved the issue a little but not much.

@xerpi
Copy link
Owner

xerpi commented Feb 26, 2017

I'll try to fix it asap, but I'm very busy these days...

@MartinWillem
Copy link
Author

Sorry if I sounded like I was pressuring you, it's already very good how far the mod has come.
Take your time!

@xerpi
Copy link
Owner

xerpi commented Apr 2, 2017

Can you try this version? https://github.com/xerpi/ds4vita/releases/tag/1.1

@circletile
Copy link

Not sure if this is the same issue as above, but I'm seeing an issue in Trails of Cold Steel where using the left analog stick for menu or character movement produces unexpected results. Regardless of stick angle, the game acts like the tilt angle is periodically being read as zero, causing awkward slowdowns or stops of character or cursor movement. The right analog stick appears unaffected, nor am I seeing issues with other buttons.

@xerpi
Copy link
Owner

xerpi commented Apr 17, 2017

@circletile by tilt do you mean the gyroscope/accelerometer tilt?

@circletile
Copy link

Sorry for the delay. I meant to say it is the angle of the left analog stick, not gyro/accel. I still need to make sure there isn't interference from other plugins, but the only other 3rd party plugin I'm running is scorpeg/Button-Swap. I'll try a few different games as well to make sure it isn't just this title.

@circletile
Copy link

Retested without any other 3rd party plugins loaded, and with a few other games including Gravity Rush. When in menus, the cursor will stutter or reset to its default position (depends on the menu or game) and when in gameplay, character movements controlled by the left analog stick will erratically stop or slow down (ie. run to walk speed). The problem may not be exclusive to left analog stick inputs, but so far the right analog stick does not demonstrate any obvious input issues. Also, accuracy of the direction of the character/cursor when using analog sticks is not an issue. When using the vita's built-in analog sticks, character/cursor actions respond as expected, even with the DS4 controller connected via bluetooth.

To ensure I don't have a faulty controller, I connected the DS4 to my PC and used DS4Windows to check for analog stick input errors or jitter. I was unable to find problems within the test utility or on PC games. I also have not seen input problems when using the DS4 on a PSTV that does not run taihen.

@kwonyoong
Copy link

kwonyoong commented May 26, 2017

Exactly same issue as "circletile" here. (latest version)
I have two controllers (New Dualshock4). So I've tested all of them. And they have same issue.

For example when I play games using analog stick, my character moves and stops randomly and repeatedly.
I guess the value of analog stick input goes to 0 repeatedly for some reason.

This issue occurs whatever game I play.
Even when I play PC games via the Moonlight Vita, same issue occurs.
Of course when I use vita's own analog stick, no issues at all.

@kwonyoong
Copy link

kwonyoong commented May 26, 2017

Retested using older versions.
version 1.1, 1.01 have issues that I've mentioned above.
But on version 1.0 there are no issues. It works properly.

Maybe the reason is "Reduce ksceCtrlSetAnalogEmulation delay (should improve analog sensibility)"?
Since it is a new feature on 1.01 and related to analog stick.

@xerpi
Copy link
Owner

xerpi commented May 26, 2017

@kwonyoong thanks for testing. If you can compile, can you try to change the last parameter (the 1) of this function call: https://github.com/xerpi/ds4vita/blob/master/main.c#L269 to different values? On version 1.0 it was set to 32, but then changed to 1 on version 1.0. Some key values to try would be 8, 16, 32, 64, 128 and 256.

@circletile
Copy link

I can also retest, just need to set up a VitaSDK build environment.

@kwonyoong
Copy link

kwonyoong commented May 27, 2017

@xerpi
Sorry but I don't know about programming or development.
I hope someone who can compile make the value change!

By the way, thanks for this useful plugin xerpi :)

@circletile
Copy link

I compiled and tested builds using values of 8, 16, 32, 64, 128, and 256. The two tests I performed were holding the left analog stick in fixed directions for 30 seconds each, and rotating the left analog stick in slow circles for the same duration. As before, and for all these tests, the right analog stick was/is unaffected.

What I found is that a value of 8 improved movement stalling in single-direction tests somewhat, and a value of 16 in single-direction tests corrects the issue completely. For stick rotation tests however, improvements were noticed up to values of 16, but did not further improve for values 32 through 256.

I did however notice a pattern emerge during rotation tests. For values of 16 through 256, character movement in rotation tests would not go "full stop" as the original issue appeared in the single-direction 1 and 8 value tests. Instead, character movement would appear to "reduce speed" at certain points during stick rotation. I eventually found that when the analog stick is moved to a NW/SW/SE/NE direction, no matter what position the stick was in previously, the game character's movement speed would reduce to "walk" speed instead of the expected "run" speed, as if the stick was not being held at full tilt.

My guess here is that the original issue was resolved with a value of 16, but I have now found a different issue where the left analog stick tilt value might be getting calculated incorrectly when its direction is near multiples of 45 degrees. Not sure how this could be though since it looks like both analog stick inputs are being processed in a similar manner.

@kwonyoong
Copy link

kwonyoong commented May 27, 2017

https://www.youtube.com/watch?v=V1LumKuy1-o

I don't know how to compile but I want to help you to solve this issue.
So I recorded a clip to show you what happens on version 1.1 and 1.0

On version 1.1 (Parameter : 1), you can see the value of analog stick input goes to 0 repeatedly and randomly.
But on version 1.0 (Parameter : 32), I don't see any issue.

@circletile performed slow rotation test so I performed too.

To record this clip I used Moonlight-vita and Dolphin Emulator's controller setup page.

@silentjoe
Copy link

silentjoe commented Oct 25, 2017

I also get this same behavior as kwonyoong and circletile. The problem manifests itself for me in fighting games. Specifically left analog stick with quarter circle forward has poor input (left down, left down forward, left forward). However the opposite (right down, right down forward, right forward) is completely okay. Please help. Thanks.

@xerpi
Copy link
Owner

xerpi commented Oct 25, 2017

I'll try to work on that soon.

@xerpi
Copy link
Owner

xerpi commented Mar 12, 2018

Can you try this version? https://transfer.sh/a7HcG/ds4vita.skprx

@circletile
Copy link

Stutter issue is gone, but the diagonal movement issue still persists. Might be more appropriate to describe the slow/walk issue as if there were a 4-way rhombus joystick restrictor plate in use on the left stick, where the magnitude is limited in non-cardinal stick directions. Right stick is still unaffected (full range of motion) however.

@xerpi
Copy link
Owner

xerpi commented Mar 13, 2018

Thanks for the detailed explanation! I think the diagonal problem happens because I check X and Y coordinates separately for a threshold when I should use the hypotenuse of them (√(x²+y²)) instead. I'll post an update when I get back home.

@xerpi
Copy link
Owner

xerpi commented Mar 13, 2018

Managed to have some time to try the hypotenuse thing: https://transfer.sh/fwny7/ds4vita.skprx
Hope this fixes it!

@circletile
Copy link

circletile commented Mar 15, 2018

Tried out the new build; its really close to full function now. the only points where the game reads the stick as not at full-tilt is in 45/135/225/315 degree positions with about +/- 5 degree tolerance. Wish I had a raw value readout to see what direction & magnitude the game is actually being handed.

Does the Vita read analog sticks as true circles (polar coordinates) or as squares (X/Y coordinates)? In the case of X/Y, maybe that the hypotenuse interpolation is falling a bit short of the field boundary corners and needs an extra "push" to be read as full tilt when near 45/135/225/315 degree positions. Maybe there's a dead zone value its expecting to be added to each of X and Y, causing the position read to fall short of what games would consider full tilt in these positions?

@xerpi
Copy link
Owner

xerpi commented Mar 15, 2018

You can check the joystick values with https://github.com/SMOKE5/VitaTester/releases

The joystick values are reported as cartesian X and Y coordinates (and not angle+magnitude polar coordinates). The values range [0, 255] and the part inside the circle but outside of the square of the following picture is reported as 0 or 255, being (128, 128) the center.
25qw2s3
That's the default joystick mode, games can change into a circle-inside-square mode instead of square-inside-circle.

@psxdsx
Copy link

psxdsx commented Jul 6, 2018

I am noticing my character in Persona 4 walking when pulling the left analog stick directly down. It is a narrow range maybe like 15 degrees. But I am running 3.65 enso, not sure if that will make a difference.

@XDNZ
Copy link

XDNZ commented Jul 14, 2018

Not sure if this is the same issue, but I was playing Resistance Burning Skies and using the right analog stick on the DS4 for aiming, aiming to the left would be fine but aiming to the right would be slower than aiming to the left. I tried restarting the controller/console but it would stay the same or just swap the direction that the aiming is slow in. This problem doesn't happen when using the analog sticks on the vita, both directions move the same amount when aiming. Unfortunately don't have any other games to test with. Running 3.68 on a Vita 2000 if that matters.

@realNZZN
Copy link

This is still an issue, happens 100% of the time when the stick is pointing down but sometimes affects the entire bottom half of the stick's movement which can be temporarily fixed by spinning the stick on the vita

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants