hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
11.45k stars 2.19k forks source link

Ratchet & Clank: Size Matters - Movement slows to walking pace upon jumping of hitting with wrench #15491

Open LinAGKar opened 2 years ago

LinAGKar commented 2 years ago

Game or games this happens in

UCES00420 - Ratchet & Clank: Size Matters

What area of the game / PPSSPP

Just started a new game, and jumped around on the starting beach. If you run and jump or use the wrench, the movement slows down to walking pace, and then returns to running pace only once you move the analog stick. It doesn't happen every time, it seems more prone to happening when running to the right.

What should happen

Movement continues normally

Logs

No response

Platform

Linux / BSD

Mobile phone model or graphics card

Nvidia GeForce 2080 Ti

PPSSPP version affected

5d22057f80ad146267e0d6f6ea906b5c50ef568f

Last working version

No response

Graphics backend (3D API)

OpenGL / GLES

Checklist

s1eve-mcdichae1 commented 2 years ago

Can confirm this also occurs in (UCUS-98633? Ratchet & Clank - Size Matters (USA) (En,Fr,De,Es,It).iso, CRC32=c711ede4) in latest git build (28532fe) using the libretro core (-DLIBRETRO=On; RetroArch v1.10.0) as installed by RetroPie 4.8 on Raspberry Pi 4B Rev 1.2 (b03112) (ARM Linux / Debian 10 "Buster").

Frequently after performing an action (jump, swing wrench, etc.) while moving with the analog-stick, character movement will briefly slow to walking speed; movement using d-pad seems unaffected. I found this old reddit post which seems to be describing the same issue, and then I found this issue page, which seemed like the best place to report.

s1eve-mcdichae1 commented 2 years ago

Updating, I can trigger this reliably by swinging the wrench while moving diagonally (pre-post edit: you don't even need the wrench. just get him walking, not running -- push the stick only halfway -- in any direction). Once walking, in any direction, is initiated, movement with the stick will then be limited to walking speed for as long as only diagonal (or no) movement is maintained; running speed resumes only when the stick is moved to any of the four cardinal directions, or when the D-pad is used.

(Occurs in master b93be29 as well as in stable v1.12.3. Also confirmed I am using UCUS98633 according to my SAVEDATA dirs.)

unknownbrackets commented 2 years ago

In PPSSPP proper, go to Settings -> Controls -> Calibrate analog stick. Next, move around your analog stick and observe the range of motion especially in the corners. If it doesn't reach the corners, consider enabling "Circular stick input" if not already enabled.

The PSP analog nub (it didn't really have a stick) had a physical range that was circular, but it exposed its coordinates to games as a square.

Modern devices vary, with some exposing their range as a circle and others as a square.

For libretro, you're on your own. I'm not sure how it exposes analog stick values or how you can control the calibration, and since its apis were designed for weaker systems (the PSP is ~93x more powerful than a SNES, and ~10x more powerful than a PS1) it has gaps when it comes to things like this, multithreading, etc. You'll in general experience more bugs, worse performance, and other limitations on libretro.

-[Unknown]

s1eve-mcdichae1 commented 2 years ago

@unknownbrackets

In PPSSPP proper, go to Settings -> Controls -> Calibrate analog stick. Next, move around your analog stick and observe the range of motion especially in the corners. If it doesn't reach the corners, consider enabling "Circular stick input" if not already enabled.

(...)

For libretro, you're on your own.

Thanks. This does seem to fix it in stand-alone.

I'd still like to use the libretro core. From what I can tell it's not a separate project, but rather just this one, built with a particular command-line parameter. Where would be the place to request, to have this "circular stick input" added as a "core option"?

s1eve-mcdichae1 commented 2 years ago

I thought it might be simple enough to do myself, but this doesn't seem to have worked: https://github.com/s1eve-mcdichae1/ppsspp/commit/51acaad835b9da7744c1aec544c6a16fd6a87bd0

I get the option in my core menu, but it doesn't seem to do anything (after enabling it, the diagonal movement issue still persists.)