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

Feature Request: "Shift" key option Gamepad Mapper #521

Open
Banjo-Oz opened this issue Jul 27, 2024 · 4 comments
Open

Feature Request: "Shift" key option Gamepad Mapper #521

Banjo-Oz opened this issue Jul 27, 2024 · 4 comments

Comments

@Banjo-Oz
Copy link

One of the biggest issues for playing DOS games without a keyboard is that many have just too many vital keys tomap them all to a gamepad! I'm thinking specifically of simulation games, like TIE Fighter or Wing Commander III.

The "easiest" solution (to think of, perhaps not to implement, admittedly) is add a "shift" key to gamepad mapping. This "shift" would add a secondary "shift mode" function to every mappable button on a gamepad (except for the one mapped to activate this "shift").

Basically, you'd hold down the button mapped to "shift" (for example, "L2"), then press another button for the alternate function.

For example, you could map "A" to "primary fire" and "Shift+A" (or using the example above, "L2+A") to "secondary fire". Or "D-Pad Left" to "turn left" and "Shift+D-Pad Left" to "roll left". etc.

Does that make sense?

This is in fact how some console ports of PC games have solved the issue in the past (see "Wing Commander" on SNES and "Wing Commander III on PS1).

It's a feature I think would really make a lot more DOS games fully playable with a gamepad... IMO, almost all of them that don't require full keyboard typing (Space Quest, Hitchhiker's Guide, etc.).

@schellingb
Copy link
Owner

Not exactly what you're requesting, but I recently added a "Action Wheel" feature which you can see a preview screenshot in #477

Maybe we can find a way to have shortcuts for the action wheel? Where you could have A,B,X,Y be shortcuts for the 1st, 2nd, 3rd and 4th wheel options. Then it would be basically what you're asking.

@PoloniumRain
Copy link
Contributor

Yeah as @schellingb mentioned i brought up this idea up in #477 lol.

And having tried the Action Wheel i think it definitely works better for most games than holding down a button to enable secondary inputs. It's an excellent feature and should work pretty well with TIE Fighter and Wing Commander.

The only potential problems i can see:

  1. With some games that have LOADS of shortcut keys, one wheel might not be enough, in the sense that the wheel will become visually very cluttered. But if there were 2 Action Wheels then you could have them mapped to L1 and R1 for example, and then one wheel could be for something like weapons, and the other wheel could be for items or whatever else.

  2. The Action Wheel wont be ideal for things like movement, where you absolutely need an instant response. So in your example where you'd want to hold down L2 and press left on the D-pad to roll left, then in this case it would be slightly quicker to hold down L2 and press D-pad left.

@Banjo-Oz
Copy link
Author

Banjo-Oz commented Jul 28, 2024

Not exactly what you're requesting, but I recently added a "Action Wheel" feature which you can see a preview screenshot in #477

Maybe we can find a way to have shortcuts for the action wheel? Where you could have A,B,X,Y be shortcuts for the 1st, 2nd, 3rd and 4th wheel options. Then it would be basically what you're asking.

That wheel mechanic is super cool and would indeed be useful for first person shooters like Wolfenstein 3D. I can also see it being of some use in other games (say, a wheel to select speed in a flight sim i.e. full/three quarters/half/quarter/stop or department menus in something like PSI-5 Trading Company). Would there be more than one wheel, though (you'd need several for flight sim style games that have power management, throttles, comm menus, etc.)? Presumably you'd be able to customize the "labels" on it too?

As neat as the idea is - and it is neat! - I still think a standard "shift" key would be more generally useful, and also a bit more instinctual to use.

Not to mention, it is much faster to press L2+B than it is to hold L2 then move an analog stick up to a "wheel" option and confirm it, IMO. In fact, this is an issue I have with playing shooters on consoles that use "weapon wheels"; I miss being able to just hit number keys to switch weapons instantly. Instead, I have to stop moving, open the wheel, think about where the option I need is, activate it, then close the wheel... and likely get shot while doing so!

I am also thinking about situations where the gamepad being used has only a few buttons (like a NES controller) and/or no analog sticks or triggers. With a "shift" key, even a NES controller could work as a SNES one (configure Select+B to be X, etc).

Finally, the wheel introduces a UI element and control style not authentic to the original game's intent, which as someone who likes to keep things as authentic as possible, I find a bit jarring to imagine. In the case of Doom, for example, changing the UI makes me think "then why not use prBoom instead of DOSBox-Pure"? Does that make sense?

@schellingb
Copy link
Owner

image
So this is the plan now. A button can be mapped to "Port # while holding", then while holding that button, all other buttons will execute the actions mapped to that controller port. This should be flexible enough, allowing even multiple shift keys. Though this port shifting and the actions wheels can't be used simultaneously, hopefully that's not an issue.

schellingb added a commit that referenced this issue Oct 24, 2024
schellingb added a commit that referenced this issue Oct 24, 2024
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

3 participants