Steam Controller

Steam Controller

Hawthorne Oct 29, 2022 @ 5:03am
Action Layer sometimes fails to enter (hack-ishly fixed)
Hello!

I've got a bit of a head-scratcher here, and I'm hoping someone can help explain it to me, as I've tried quite a few things but I'm not sure how to fix it, or even reliably reproduce the issue.

Controller and Game (though I don't think it's relevant in this case, as I think it's something to do with the general concept of Action Layers): Dual Shock 4, Resident Evil 4

Config URL: steam://controllerconfig/254700/2881438297

Brief config explanation (I also don't actually think this is relevant, as again I think it's something to do with how Action Layers work, but more information can never hurt, right?): I use R2 to move forward, with a soft pull causing me to walk, and a full pull causing me to run. L1 (aim knife) and R1 (aim gun) both take me into the Gyro Layer; as the game does not actually support Mixed Input, everything now turns into Keyboard/Mouse inputs (this is also why I needed to create the "alternate joystick" Action Layer).

Issue explanation: sometimes L1 will not take me into the Gyro Layer as expected (and if I'm holding dpad down, my character will just talk backwards). Try as I may to replicate it, I just can't pin down exactly what pattern or situation causes this to happen, it just seems random. It's also rather confusing to me that it happens with L1 but never with R1, which led me to believe that it has something to do with the fact that I may accidentally be pressing R2 or dpad down before I press L1, neither of which I do with R1 (but again, when I do this intentionally I can't recreate the issue, and the gyro layer switching seems to work just fine). Note that my attempts to solve this are why I have so many chords with empty bindings, and indeed they did help make the issue less frequent, but it'll still happen every now and then.

Thanks in advance for any answers!
Last edited by Hawthorne; Oct 31, 2022 @ 12:11pm
< >
Showing 1-6 of 6 comments
cybin Oct 29, 2022 @ 5:31am 
I'm not sure if my advice here is going to be helpful because I can't actually see the full config linked, only the base action set. It looks like a pretty odd setup though :) Nice.

Sometimes, using action set swapping rather than a layer works better. You could set the bumpers in the main action set to a start press activator which changes over to the Gyro actionset which is all KBM.

Then, set your bumpers in the Gyro action set so that when you release press them, they will send you back to the main actionset.

Problem that (might) happen,

1) if you quick a single click of the bumper rather than holding it, perhaps the gyro action set wouldn't have time to see the release press and you'd have to click it again to return to the default.
Hawthorne Oct 29, 2022 @ 11:03am 
Originally posted by cybin:
I'm not sure if my advice here is going to be helpful because I can't actually see the full config linked, only the base action set. It looks like a pretty odd setup though :) Nice.

Oh, interesting! I've tried again, slightly changed names: steam://controllerconfig/254700/2881604711

And I'll also upload it to the RE4 Community Profiles.

Regarding the Action Set working better, thanks for the tip, I'll get to work on that :) maybe a way to prevent the "sticky set" problem would be to have a delay on the release press that brings you back to the default layer? Thanks for the response and I'll get to monkeying around!
cybin Oct 29, 2022 @ 2:43pm 
Ok yeah I see what you're trying to do. That is pretty rough, when a game won't let you use a proper mouse with analog movement.
One thing that I think happens, which might effect your configuration, is that if you hold a layer with one input like your left bumper.. If you were to use the right bumper, which also holds the same layer, well anytime you release either bumper I believe it will remove the layer, even though one bumper is still supposed to be holding it. I am pretty sure that is how it works ATM.
Also, AFAIK, layers stack on top of one another. So like, if you were holding a bumper, you'd apply that layer. Then, pressing a trigger with the bumper held would apply the trigger layer over the top of the other one. So it would inherit anything from the layer underneath it, rather than the base action set.
It gets pretty confusing, but I think that if you setup your layer to have everything you need in it, so it inherits nothing, you can avoid problems. best of luck with your config
Tyrian Mollusk Oct 30, 2022 @ 2:34am 
Originally posted by cybin:
If you were to use the right bumper, which also holds the same layer, well anytime you release either bumper I believe it will remove the layer, even though one bumper is still supposed to be holding it. I am pretty sure that is how it works ATM.
Yes, "hold layer" is a bit of a lie. It's actually just shorthand for a start press add layer plus a release press remove layer, with some extra quirks/bugs mixed in (particularly when on an interruptible regular press, which is very risky). Personally, I have given up on hold layer and just do manual add and remove layer activators myself. Clearer, more explicit, and you don't have to deal with interrupts, which sometimes just refuse to be set to off (make sure to re-check if "off" is important, because it may refuse to keep it) or do dumb things with inheritance.

Also, AFAIK, layers stack on top of one another. So like, if you were holding a bumper, you'd apply that layer. Then, pressing a trigger with the bumper held would apply the trigger layer over the top of the other one. So it would inherit anything from the layer underneath it, rather than the base action set.
This is also correct... except when it isn't. Analog sticks for example will (at least on 360 controllers where I work) ignore the layer stack and intended behavior and only use the top layer and the base action set if they need inheritance. I don't know if the gyro has similar problems, but if it did, it could lead to confusing behavior that doesn't appear to match what you've pressed, because Gyro Layer would only affect the gyro when on top of the stack.

There's also a trigger bug where release press layer change activators (I think you may need another button held, too, during the release) will send completely incorrect events, which often ends up sending press activators for the same trigger being released and leaving you with a layer added that doesn't correspond to your held buttons at all. I really really wish Valve cared about Steam Input because this bug is incredibly annoying when it comes up, and it's surely something simple to fix.

Another quirk that may be relevant is that Valve broke how adding layers interacts with the stack. If you add a layer that's already on the stack, it does not change the stack. So, if you add layer 1, then add layer 2, then add layer 1 again, you will still have layer 2 on top of layer 1. To work around that, you have to diligently remove any layer you want to be able to add on top of the stack.

Watch out for the ill-conceived behavior where activators on already held buttons trigger as new button presses on layer change. That can also throw unexpected kinks into things.

One thing I do when I have inexplicable behavior, is to make a copy of the problematic interaction on a desktop config and have it press keys on various start/release presses. That both helps see what Steam Input is doing from an editor window, makes it easier for others to try/alter the config themselves, and gives you a better bug report if what you end up with doesn't make sense. Not that Valve gives a crap about our Steam Input bug reports, but a solid test case bug report at least could help other users trying to figure something similar out.
Last edited by Tyrian Mollusk; Oct 30, 2022 @ 2:32pm
shadowboy813 Oct 30, 2022 @ 2:07pm 
Is there any reason why you have to use mouse for gyro input? You can set gyro to analog joystick output, too. (I couldn't see the full config)
Hawthorne Oct 31, 2022 @ 12:09pm 
Thanks for all the info, guys. I've taken a bit to respond because I wanted to do proper testing (several times I would go "a-ha! this will work, L1 will be super consistent!" and then after testing for half an hour it would happen again :P), but in the end, I think I've finally licked it, even if the final config is a bit hacky (meaning I still don't exactly understand what caused the issue, but hey, a fix is a fix).

It's almost poetic because it was a combination of the advice: I'm using an Action Set instead of an Action Layer (Cybin), I'm using Enter Set commands instead of Hold Set comands (Tyrian), and I tried to avoid using overlapping layers as much as possible (Ugafan via DM). Though after doing this it still happened, the final piece of the puzzle was the fact that I avoided using a Hold command meant that I could actually turbofire the enter action set command! Not something I would originally have thought to have done, especially since I intuitively wanted to use start press to enter the action set, but that doens't have turbofire, so I had to switch to regular press (exiting is still done via press release). Ever since turbofire the issue hasn't come up.

Weird that everyone seems to be having trouble seeing the config, but I'll try one last time: steam://controllerconfig/254700/2882661720 In any case, thanks again guys!

Oh, and

Originally posted by shadowboy813:
Is there any reason why you have to use mouse for gyro input? You can set gyro to analog joystick output, too. (I couldn't see the full config)

Just to answer this really quickly: for me at least, the entire benefit of using gyro is that it gets to mimic the positional input of a raw input mouse, providing functionally superior control over a joystick (and the joystick is particularly awful in RE4). Sidenote, RE4 "out of the box" doesn't actually have Raw Input mouse and has weird acceleration issues, but the mod that comes with the amazing RE4HD Project fixes this.
< >
Showing 1-6 of 6 comments
Per page: 1530 50

Date Posted: Oct 29, 2022 @ 5:03am
Posts: 6