libretro / swanstation

GNU General Public License v3.0
96 stars 22 forks source link

Feature Request: Change analog mode button combo/toggle #4

Closed BParks21 closed 1 year ago

BParks21 commented 2 years ago

Would be nice if we could change this to something simple like start and select. The current combo is really finicky and inconsistent.

DarthMew commented 2 years ago

If I made it only be something simple like Start + Select, I'd be too easy to trigger, and the point of the toggle is that it's used in cases where the a DualShock supported game doesn't enable analog mode by itself or if it loses the analog mode due to controller switching/disconnecting (at least without the "force it on reset" option enabled).

BParks21 commented 2 years ago

Well I know beetle saturn has it set to something simple like just select. Why not just give us multiple options? A lot of games that support analog don't switch on their own. Having the "force on reset" on causes issues with quite of few games. IDK I just think there should be more combo options. It's just to finicky. You press the current combo one time and sometimes it just goes back to digital. I have to press the combo more than once quite often for it to land on analog.

DarthMew commented 2 years ago

With Beetle-Saturn it's simple because the Saturn controller, unlike the DualShock, doesn't use every available button on a Libretro Retropad.

As for multiple options, I might give it a go, but it's not high on the priority list. And even then, I'd probably just add the Beetle-PSX Start+Select+L1+L2+R1+R2 combo, because again, the point of the toggle is that it shouldn't be easy to trigger during gameplay.

BParks21 commented 2 years ago

That combo soft resets certain games though.

DarthMew commented 2 years ago

Wouldn't matter if it would be just another option for the toggle, now would it? In any case, the current combo works fine in cases where it's needed, even if it isn't the easiest thing to toggle.

BParks21 commented 2 years ago

There's something wrong with the analog, simply does not work properly. In DuckStation works fine. Looks that when you move the stick the registered digital value are the lowest possible.

I had to set analog axis scale to 1.40 to be able to run at all angles with an xbox series x controller in Parasite eve. There should be more values available for the user to set it to. In standalone Duckstation a value 1.21 is enough for the same controller. 1.40 feels off.

hacls1 commented 2 years ago

There's something wrong with the analog, simply does not work properly. In DuckStation works fine. Looks that when you move the stick the registered digital value are the lowest possible.

I had to set analog axis scale to 1.40 to be able to run at all angles with an xbox series x controller in Parasite eve. There should be more values available for the user to set it to. In standalone Duckstation a value 1.21 is enough for the same controller. 1.40 feels off.

Sorry, I remove the post to create a new topic for this issue...

I'm now using Razer Kishi on android, but with keyboard on PC or even with the default overlay gamepad from RA... All with the same problem...

I use the analog sense in 1.5 (for GameSir X2) or 1.3 when I use the PS4 controller or Razer Kishi from RetroArch Input options. I tried to change all the options from SwanStation as well including this "Analog Axis Scale" option 1.0 to 1.4... The problem continues...

DarthMew commented 2 years ago

There's something wrong with the analog, simply does not work properly. In DuckStation works fine. Looks that when you move the stick the registered digital value are the lowest possible.

I had to set analog axis scale to 1.40 to be able to run at all angles with an xbox series x controller in Parasite eve. There should be more values available for the user to set it to. In standalone Duckstation a value 1.21 is enough for the same controller. 1.40 feels off.

Went ahead and added more values with https://github.com/libretro/swanstation/commit/0932243b0e5f1a5a237b0521b30b39473b61fa31

BParks21 commented 2 years ago

There's something wrong with the analog, simply does not work properly. In DuckStation works fine. Looks that when you move the stick the registered digital value are the lowest possible.

I had to set analog axis scale to 1.40 to be able to run at all angles with an xbox series x controller in Parasite eve. There should be more values available for the user to set it to. In standalone Duckstation a value 1.21 is enough for the same controller. 1.40 feels off.

Went ahead and added more values with 0932243

Oh wow thank you so much very appreciated! 👍

DarthMew commented 2 years ago

No problem. Don't know why it only included 1.00 and 1.40 in the first place, but at least it's fixed now.

BParks21 commented 2 years ago

How long will it take to see these changes in the core through the online updater?

DarthMew commented 2 years ago

I'd think between a few hours to next day at the latest.

BParks21 commented 2 years ago

Ok thanks

metchebe commented 2 years ago

Hello, I wanted to thank DarthMew for the analog mode toggle feature, it is much appreciated.

I have a question, though. When I press the button combination, the analog mode setting toggles rapidly between on and off for as long as I hold it, is this normal? It makes switching the mode difficult, I have to tap for an impossibly short time or just try until it lands on the mode that I want.

I would assume that a reasonable expectation is that it toggles once when I press the button combination, and then once again when I release it and press it again.

DarthMew commented 2 years ago

It shouldn't rapid fire the input for the toggle (at least it doesn't on my end), but it does activate the toggle as soon as the combo is pressed. Might be that your controller in particular won't hold down one of the four buttons properly, which would result in it rapid firing the input. In any case, I need to look into it and see if I can block it from sending the analog toggle input until all four buttons are released, which almost certainly would address the problem.

metchebe commented 2 years ago

Hi, thanks for the quick reply!

I checked with two controllers and also a keyboard and it happens in all cases. This is in Linux by the way, in case it makes a difference. Maybe someone else can confirm, in the weird case that it only happens to me for some reason.

If a fix is possible it would be awesome, thanks!

BParks21 commented 2 years ago

It rapid fires for me too. As soon as the combo is activated it just goes on and off. It's luck when it switches to what i want. Tested 3 different controllers. 2x series x controllers and a dualsense.

DarthMew commented 2 years ago

https://github.com/libretro/swanstation/commit/d5b4dd50cdada0e03bff9f849c56b4c4d26fac39 should address it.

metchebe commented 2 years ago

Thanks!

I'll rebuild the core (hopefully today) and confirm if it works.

BParks21 commented 2 years ago

Hmm still seems finicky to me.

metchebe commented 2 years ago

Yes, I built db0915b and it still rapid-fires.

BParks21 commented 2 years ago

It's like this jittery behavior that rapidly alternates between digital and analog. It's completely luck getting it to stop on the one you want.

DarthMew commented 2 years ago

Weird. I've tried, with a Dualsense on Windows 11, with the poll rate set to late, early, and normal, and it works just fine on my end, so I'm not sure why it rapid fires on your ends.

BParks21 commented 2 years ago

🤔 My polling rate is early. @DarthMew Yeah idk man I tested my dualsense reconfigured on early, normal and late, still jittery when toggling. Tested the series x controller reconfigured as well on all three poll rates. It does seem less spastic than before the change you made but it's still like spastically going back and fourth very quickly and landing on whatever.

DarthMew commented 2 years ago

And is this on Windows? Because if so, then I really do not know what is up.

BParks21 commented 2 years ago

Yes Windows 10.

DarthMew commented 2 years ago

https://github.com/libretro/swanstation/commit/b1e3450d4b709a977243fdde3332002ef78ed09b is the only other thing I can come with to potentially solve the issue.

metchebe commented 2 years ago

Hi, I tested b1e3450 and unfortunately it does not fix the issue.

DarthMew commented 2 years ago

Guess that's that then... Can't really try anything else to fix a problem I'm not having and, from a coding perspective, doesn't make sense it happening in the first place.

If any of the people affected by it can try and create a fix for it, I'm more than willing to merge it.

BParks21 commented 2 years ago

@metchebe Same

DarthMew commented 1 year ago

https://github.com/libretro/swanstation/commit/7d8ce92847e05685cf56bad6627ea4ce37d799b1 changes the toggle to allow the user to select what toggle combo they want to use (inspired by https://github.com/libretro/beetle-psx-libretro/pull/859).

BParks21 commented 1 year ago

7d8ce92 changes the toggle to allow the user to select what toggle combo they want to use (inspired by libretro/beetle-psx-libretro#859).

Thank you! @DarthMew Ok so this technically doesn't solve the main problem. It's nice to have these toggles, however the actual transition from digital to analog and vise versa is still twitchy and inconsistent. I've tested this with a dualsense, series x, 8bitdo and switch pro controller. The behavior is weird and makes it difficult to accurately switch with any of these toggle options. It's basically luck. If you hold any of these combos for more than a second it will quickly go back and fourth between digital and analog. It should only activate when the combo is pressed. Not continue to transition back and fourth while it's being held down. It's strange and wonky.

DarthMew commented 1 year ago

It isn't on my end, and at this point I don't see any reasonable way to address something that most likely isn't related to the toggle implementation of SwanStation, so I'm going to go ahead and close this as the original feature request has been fulfilled and checks have been put in place to prevent any sort of rapid fire that could be caused by the SwanStation implementation.

Immersion95 commented 1 year ago

Found the culprit and how to reproduce it/solve it meanwhile. When you choose Analog controller for : Port 1 only -->OK Port 1 + Port 2 or 3 or whatever -->Rapid fire