schellingb / dosbox-pure

DOSBox Pure is a new fork of DOSBox built for RetroArch/Libretro aiming for simplicity and ease of use.
GNU General Public License v2.0
764 stars 63 forks source link

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

Open Banjo-Oz opened 2 months ago

Banjo-Oz commented 2 months ago

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 commented 2 months ago

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 commented 2 months ago

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 commented 2 months ago

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?