forums.PPSSPP.org
[Android] Analog issues - Diagonal movements with a controller don't work properly - Printable Version

+- forums.PPSSPP.org (https://forums.ppsspp.org)
+-- Forum: PPSSPP - Playstation Portable Simulator Suitable for Playing Portably (/forumdisplay.php?fid=1)
+--- Forum: General Discussion and Announcements (/forumdisplay.php?fid=2)
+--- Thread: [Android] Analog issues - Diagonal movements with a controller don't work properly (/showthread.php?tid=13300)



[Android] Analog issues - Diagonal movements with a controller don't work properly - greencowpat - 09-27-2014 12:12 PM

So, I'm using a ps4 controller on my android tablet with PPSSPP version v0.9.9.1.
What I believe the issue boils down to is: "PSP analog range is a square; controller range is a circle"

Diagonal movements can't fully register because of the psp's square analog movement radius.
This means that you can only do 3/4 of the max diagonal input with a controller, which causes gamplay issues (moves don't work, characters keep walking)

The issue has been brought up before in the forums:
/showthread.php?tid=12601
/showthread.php?tid=12915

There were also some tickets on github about it:
/hrydgard/ppsspp/issues/1360
/hrydgard/ppsspp/pull/1320

Has anyone else had this issue and know of a fix? Hopefully we can get some dev input.


RE: [Android] Analog issues - Diagonal movements with a controller don't work properly - Bigpet - 09-27-2014 12:40 PM

can you maybe show a video (or a screenshot if video is impossible) of you pulling the on screen analog stick fully diagonally and (with the on-screen controls still enabled) you pulling the PS4 analog stick fully diagonally?


RE [Android] Analog issues - Diagonal movements with a controller don't work properly - greencowpat - 09-27-2014 01:21 PM

I'm on my tablet at the moment so forgive the crappy picture/editing. I held both in the top right corner all the way. You can see that the controller doesn't reach as far as the touch input which causes the character to walk.


RE [Android] Analog issues - Diagonal movements with a controller don't work properly - greencowpat - 09-28-2014 09:46 AM

So I found a ps1 emulator which has managed to fix a similar issue. They have an 'Analog Range' setting and 'Square' or 'Circle' as the options.
This is a quote from their forum before they addressed the issue:

Quote:Physically, the stick rotates in a circle. Driver wise, the stick can move in a circle, or in a square. API wise, it does whatever the driver tells it. Application wise, it does whatever the api tells it(unless otherwise scaled differently in the applications code)

Programmatically on the actual hardware game console (and the emulator), it expects that pushing the stick diagonally will be able to hit the max postive or negative value for the combined axes which are -127 - 128 between X and Y.

Currently, the released version of espxe takes the range as provided directly from the driver with no scaling up of the value, so when you push the stick in the diagonal's the most you can get is a combination of -93 - 93.


So basically, when the console expects to see X-127 and Y-127 (Down-Right) it only sees X-93 and Y-93 instead and the game either ignores this input depending on its deadzone, or simply walks instead of runs.

Hopefully this can shed some more light on it