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

How do I set analog sensitivity (and deadzone) per-controller (and per-axis or per-stick) #912

Open
geekley opened this issue Jun 10, 2023 · 2 comments

Comments

@geekley
Copy link

geekley commented Jun 10, 2023

I'd like to properly contribute a controller configuration for a generic made-in-china GameCube adapter I bought.
It's brand-less and has no site info in the manual/package, it only has a model number. But anyways.

The GameCube input for the analog sticks is in octagon-shape (not square) and it doesn't go all the way from 0.0 to 1.0.
It's more like 0 ~ 0.75 for left stick and 0 ~ 0.7 for C-stick. Or, according to Dolphin, the exact/default values for a GameCube controller seem to be 79.37% for main stick and 72.21% for C-stick (I assume they must have done some research to come up with such precise values).
The analog L and R are even weirder, going, in my tests, from about -0.75 ~ 0.85 at the button press (then it keeps going to about 0.9 if you press harder.

So I have to set RetroArch analog sensitivity to about 1.4 to get an acceptable result. But this setting is global.

  1. How do I set analog sensitivity in the controller configuration file?
    Even better if it can be set per-axis or per 2D vector.
  2. Same question for deadzone.

I didn't find anything in docs regarding these. Is it not implemented? It makes no sense that analog sensitivity and deadzone settings would be global; that's a controller (or rather, axis) property.

  1. Is there a way to make analog L and R account for negative values (and should I)? Dolphin makes a distinction between "axis" and "full axis"; I don't know how that works in RetroPad config, I just see that there's + and - for each axis. Values like input_l2_plus_axis and input_l2_minus_axis don't seem to work, only input_l2_axis, which I'm setting to the + of the axis. I'm not sure how I can confirm whether it's getting the full input or just the positive part.
@offalynne
Copy link
Contributor

How do I set analog sensitivity in the controller configuration file?

You can not

0 ~ 0.75

This is "normal" for GC in many contexts. No fix for now except the emulator setting as you mentioned. If you want per-device axis settings or a field for axis range in the autoconfig format, you'll have to take the issue upstream to the RA frontend project.

@geekley
Copy link
Author

geekley commented Dec 11, 2023

Ah, it seems there is already an issue: libretro/RetroArch#14400
I'll update it with info from here.

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

2 participants