PCSX2 / pcsx2

PCSX2 - The Playstation 2 Emulator
https://pcsx2.net
GNU General Public License v3.0
11.62k stars 1.6k forks source link

[Feature Request] [Regression]: Missing individual button sensitivity with removal of plugins #6629

Closed ElderCub closed 1 year ago

ElderCub commented 2 years ago

Description

In the past using the Lilypad plugin allowed you to set the pressure sensitivity of each button allowing you to overcome limitations of emulated controllers compared to their modern counterparts.

Allow the user to wheel click on a bound button to open a modal or window with button specific options such as sensitivity.

image

Reason

With the new pluginless version of pcsx2 this can only be rescaled for the whole controller so to correct throttle inputs also upsets the steering sensitivity.

For now I'll be rolling back to an older version of the emulator as this impacts my enjoyment of the games that are affected by it.

Examples

Gran Turismo 3 (GT4, Tourist Trophy, likely more) have analog button support. Placing the accelerator on R2 on real hardware allows around 20% of the button's throw to act as the throttle range with the latter 80% being 100% pressure, this is very sensitive with a modern analog trigger.

Blackbird88 commented 2 years ago

Gran Turismo 3 (GT4, Tourist Trophy, likely more) have analog button support. Placing the accelerator on R2 on real hardware allows around 20% of the button's throw to act as the throttle range with the latter 80% being 100% pressure, this is very sensitive with a modern analog trigger.

While not a solution to your feature request, these games in particular can be improved with the Adjusted triggers sensitivity cheats made by @CookiePLMonster https://cookieplmonster.github.io/mods/gran-turismo-3/ https://cookieplmonster.github.io/mods/gran-turismo-concept/ https://cookieplmonster.github.io/mods/gran-turismo-4-prologue/ https://cookieplmonster.github.io/mods/gran-turismo-4/ https://cookieplmonster.github.io/mods/tourist-trophy/

Aphegis commented 1 year ago

There is also the need of fixing the "analog deadzone" parameter, it's noticeable how in games like Gran Turismo 4, even with the analog deadzone set at "0", there is still a substantial zone that is not detected by the gamepad.

GT 4 1 Image 1: No input at all.

GT 4 2 Image 2: I'm moving my Dualshock 4 left analogic to the right but the game still doesn't registers it (analog deadzone at 0)(notice how the windows tool already registers a substantial amount of movement).

GT 4 3 Image 3: Finally the game starts registering the smallest turn possible, after i move my left analogic a tiny bit to the right again.

Mrlinkwii commented 1 year ago

in terms of pressure sensitivity QT has a pressure modifier settings you can try image

stenzek commented 1 year ago

There is also the need of fixing the "analog deadzone" parameter, it's noticeable how in games like Gran Turismo 4, even with the analog deadzone set at "0", there is still a substantial zone that is not detected by the gamepad.

Then you probably need to adjust the sensitivity. You can use padtest to find the values the emulated pad is reporting to the game: https://cdn.discordapp.com/attachments/309643527816609793/960157429146976296/padtest_ps2.elf

Aphegis commented 1 year ago

Thanks for possible solutions but i wasn't able to fix it.

in terms of pressure sensitivity QT has a pressure modifier settings you can try image

I tried this but it only changes the sensitivity, it doesn't change the deadzone at all, am i missing some option that i need to activate so it affects the deadzone, or something like this?

Then you probably need to adjust the sensitivity. You can use padtest to find the values the emulated pad is reporting to the game: https://cdn.discordapp.com/attachments/309643527816609793/960157429146976296/padtest_ps2.elf

You're talking about the "Analog sensitivity" parameter? I tried it from 0.2 to 2 and unfortunately it doesn't change the deadzone behavior at all, only the sensitivity of the analogic (so it still requires the same amount of movement before the emulator starts registering any steering like i explained in my previous post).

At this point i would like to know if the problem is just in my system and if you guys on yours are capable of steering cars in GT 4 (or other games) using the QT version in the same way that games like Formula 1 22, Forza 7, etc adjusting only the sensitivity? I mean like with no deadzone at all, moving the left analogic just a tiny little bit and already being able to feel steering? Anyone with GT 4 can please try to quickly replicate the steering behavior? I'm really curious and i spent hours and hours trying to fix this with no success. Thank you.

Quick edit with some relevant information: i posted about this because i was able for a few days to play GT 4 on the 1.6.0 version (before i encountered common gamepad bugs) exactly like F1 22, or Forza 7 just adjusting the deadzone/sensitivity, it's like the deadzone on the 1.6.0 version being at 0 truly means 0, while the QT at 0 still carries some deadzone.

Formedras commented 1 year ago

@Aphegis You didn't really specify if the deadzone was actually because of the emulator or because of the game. Try the PadTest homebrew and see if THAT also has a deadzone. If yes, then it's the emulator; either there is a deadzone in effect or what we need is an anti-deadzone (like seen in Steam Input's settings). If not, then it's part of the game and you need additional patch codes to remove it.

EDIT: Testing for myself, I'm seeing both "yes" and "no" for PadTest having a deadzone. There are two sets of variables given for the stick position. One is unsigned 8-bit integers, the other is signed floats. The integer set has no deadzone and will report changes even when barely moving the stick around in the center, not getting past the spring resistance. The float set DOES have a deadzone and it looks to be around 27% as a circle. (If you leave the deadzone in one axis, the deadzone ceases to exist in the other.) So maybe try holding Left Stick Up while moving the stick left/right in Gran Turismo 4 and see what happens.