kozec / sc-controller

User-mode driver and GTK3 based GUI for Steam Controller
GNU General Public License v2.0
1.54k stars 129 forks source link

Feature request: separate bindings for each controller type in one profile #371

Open gwemmie opened 6 years ago

gwemmie commented 6 years ago

As opposed to having a profile for Steam controllers and a profile for the same game for DualShock 4.

kozec commented 6 years ago

That's quite big problem, especially when you consider how many different controllers can be thrown at it. In theory, profile for Steam controller should work with DS4 automatically, with stuff like touchpad to mouse being translated on the fly. Is that not a case for some combination?

gwemmie commented 6 years ago

It's not that the translation doesn't work--it's that the nature of each controller makes that translation not always desirable. For example, for me personally, there are pretty much zero games in which I'd want the right pad on a Steam controller and the right stick on a DualShock to do the same thing.

Anyway, having a separate profile for each controller is a valid workaround, so considering how much work this would be it's probably fair to make it very low priority.

kozec commented 6 years ago

Well, I can try to add something for custom action entry, probably something like modeshift but with controller type instead of pressed button. Main problem would be designing GUI around it, right now, I can't even imagine how would it look.

gwemmie commented 6 years ago

I pictured the GUI for it to just be what's proposed in #372, but there are probably holes in my theory.

kozec commented 6 years ago

Well, yeah. Changing image and buttons is OK, but changing how bindings are saved and used should be more explicit, so user knows what is being done.

Right now, I'm thinking about adding it as "kind of button" in modeshift editor...

modeshift

... but that would have downside of blocking all other modeshift options.

gwemmie commented 6 years ago

Yeah, it would. I dunno, I think just changing the image and buttons, without getting into modeshift, would be explicit enough for the user to understand. They could certainly make a wrong assumption around what would happen if they switched to a different controller for the first time on that profile, but to do that, they'd have to be assuming very different behavior from Steam's own BPM menus. Since most sc-controller users probably come from having used Steam to configure their controller, that should be rare.

To be safe, there could be some way to make it really clear that each pair of gamepad types will have a "default" set of mappings, until the user changes them on that other type manually. I think Steam doesn't even bother making that clear, but it wouldn't hurt. I think that's a better choice than locking per-gamepad settings behind the modeshift menu, which would be very cumbersome to anyone who sets it often.

kozec commented 6 years ago

Since most sc-controller users probably come from having used Steam to configure their controller, that should be rare.

I wouldn't know, last time I've used Steam BPM, it has no support for non-steam controllers :D

If I understand correctly, what you are proposing would mean that user has to remember whether image displays DS4 from beginning or because he specifically switched it. And he'd have to know why that matters. Am I mistaken?

Anyway, if that's the case, maybe some indication of what's happening in main window will suffice.

gwemmie commented 6 years ago

Yes and yes. I think that would be clear enough on its own just because it's what anyone who's used BPM (since they added other controller support) is used to, but I also agree that there might as well be extra clarification in the main window to make sure. This program keeps being better than BPM anyway, so why not also in that way.