Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Android] Analog issues - Diagonal movements with a controller don't work properly
09-27-2014, 12:12 PM
Post: #1
[Android] Analog issues - Diagonal movements with a controller don't work properly
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.
Find all posts by this user
Quote this message in a reply
09-27-2014, 12:40 PM
Post: #2
RE: [Android] Analog issues - Diagonal movements with a controller don't work properly
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?
Find all posts by this user
Quote this message in a reply
09-27-2014, 01:21 PM
Post: #3
RE [Android] Analog issues - Diagonal movements with a controller don't work properly
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.


Attached File(s) Thumbnail(s)
   
Find all posts by this user
Quote this message in a reply
09-28-2014, 09:46 AM
Post: #4
RE [Android] Analog issues - Diagonal movements with a controller don't work properly
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
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump: