[SEEKING] Intended Gamepad (Joystick) Controls

I have always played Doom using the keyboard, as I think it is offering a greater challenge this way. However, I am now configuring a gamepad in order to play it that way. Weapon cycling is made through the shoulder buttons. For the rest (fire, use, strafe, and run), just for fun I have been seeking default controls, so as to be playing the way developers intended it in the manual.

key mappings from the manual: i.imgur.com/xaVBScg.png;
"If you are using a joystick, use button 1 to shoot and button 2 to open doors and activate switches. Gravis PC Gamepads have a third and fourth button. These can be used as a Strafe and a Run button, respectively." (1 to fire; 2 to use; 3 to strafe; and 4 to run.)

However, it has revealed itself kind of hard to know which is button 1, button 2, and so on. I cannot just assume button 1 for Doom developers to be button 1 for Logitech developers (my gamepad being http://www.amazon.com/Logitech-963335-0403-Precision-Gamepad/dp/B00030AX3Q/). Indeed, there seems to be no industry standard in the definition of internal button orders.

I have stumbled upon different links, driving hypotheses in the regard of determining intended mappings:

1) http://www.epanorama.net/documents/joystick/pc_special.html#gravispad -- 1 for left; 2 for up; 3 for down; and 4 for right; which was the popular PC gamepad back in the days of Doom development; however, I am not sure of the posted internal button order; it would have to be tested by someone who has access to that device;

2) http://pineight.com/mw/index.php?title=USB_game_controller#Gravis_GamePad_Pro_USB -- if Gravis has kept the same button order for the USB version of this gamepad which was made like five years later (which I reasonably doubt), then the original Gravis-gamepad button order would be 1 for left; 2 for down; 3 for right; and 4 for up;

3) if the manual took in mind the button order of the snes, which was in vogue back then, then the a, b, x, and y buttons would translate to 1 for right; 2 for down; 3 for up; and 4 for left;

-- resulting control schemes would be:

gravis: left to fire; up to use; down to strafe; and right to run;
usb-gravis: left to fire; down to use; right to strafe; and up to run;
nintendo-snes: right to fire; down to use; up to strafe; and left to run;

In summary, additional info and research would be needed to determine the very mapping the original manual referred to.

EDIT: I have performed some more research on this matter. I have stumbled on a list of games which came out with support for the Gravis gamepad (http://www.mobygames.com/attribute/sheet/attributeId,26/offset,200/p,2/so,1d/). I have then tried to download the manuals for those games.

Only one result came out as pertinent: http://www.abandonia.com/files/extras/24746_game_extra_1.pdf (Mortal Kombat User Guide) -- which mapped button A to red, B to blue, C to yellow, and D to green.

Add this to both of those links:
http://en.wikipedia.org/wiki/File:Gravis_pc_gamepad.jpg
http://www.emulation64.com/guides/7/3/

Button 1 - Lynx Button B (Gravis Gamepad - Red Button)
Button 2 - Lynx Button A (Gravis Gamepad - Blue Button)
Button 3 - Lynx Option 1 (Gravis Gamepad - Yellow Button)
Button 4 - Lynx Option 2 (Gravis Gamepad - Green Button)

and "perhaps" then, judging from the small evidence weight, the intended control scheme is "left to fire; up to use; down to strafe; and right to run."

EDIT2: It would still be relevant to receive confirmation, either from someone who could test this original gamepad at home, or who has access to its manual and could scan the relevant part for us to archive.

EDIT3: from the Gravis PC Gamepad SDK:

   _____     ||             ----------------------------------------------
  |     \____||________     X-Axis     Joystick A, X-Axis
  |  __    GRAVIS      \    Y-Axis     Joystick A, Y-Axis
  | /  \  GamePad   B  |    Button A   Joystick A, Button #1A
  | \__/          A   C|    Button B   Joystick A, Button #2A
  |______________   D  |    Button D   Joystick B, Button #1B
                 \_____|    Button C   Joystick B, Button #2B
which means:
   _____     ||             ----------------------------------------------
  |     \____||________     X-Axis     Joystick A, X-Axis
  |  __    GRAVIS      \    Y-Axis     Joystick A, Y-Axis
  | /  \  GamePad   2  |    Button 1   Joystick A, Button #1A
  | \__/          1   4|    Button 2   Joystick A, Button #2A
  |______________   3  |    Button 3   Joystick B, Button #1B
                 \_____|    Button 4   Joystick B, Button #2B
so, the second set of buttons in the doom manual would have been referring to the "joystick b" pair of buttons;

tl;dr: the intended control scheme might be "left to fire; up to use; down to strafe; and right to run."

Share this post


Link to post
twipley said:

1) http://www.epanorama.net/documents/joystick/pc_special.html#gravispad -- 1 for left; 2 for up; 3 for down; and 4 for right; which was the popular PC gamepad back in the days of Doom development; however, I am not sure of the posted internal button order; it would have to be tested by someone who has access to that device;

I'm committing a minor faux-pas by bumping an old thread, but I just bought a Gravis Gamepad on eBay and this appears to be the correct ordering. Tested using one of the "Super Joy Box 7" devices listed on this page.

With the default Doom joystick button bindings, this gives:

                    Strafe

              Fire          Use

                    Speed
Which makes for a pretty nice layout (you want to be able to run around a lot but also want your finger on the trigger). I think Doom's defaults have been chosen with the Gravis Gamepad in mind.

Chocolate Doom now supports auto-configuration for a selection of known gamepads, and for "authenticity", I've used a similar layout as the default when auto-configuring a detected device.

Share this post


Link to post

I do not remember if Doom supported any advanced joysticks back in the day -beyond the Gravis Gamepad. There was no USB back then, and the PC's gameport had a hard limit of 4 buttons, and those joysticks that allowed for more (mostly Microsoft Sidewinder and specialist joysticks for flight sims and the such) used either the RS-232, Parallel port or the gameport with a special driver and signal encoding.

Oh and ofc, no mixed digital/analog controls back then ;-)

Share this post


Link to post
Maes said:

[...] joysticks that allowed for more (mostly Microsoft Sidewinder and specialist joysticks for flight sims and the such) used either the RS-232, Parallel port or the gameport with a special driver and signal encoding.

I must have had one of those, I remember clearly being a really young kid and my dad bringing home a flight joystick and us using it to play Doom, probably on Windows 3.1 or maybe Win95. Good memories!

Despite the SNES version of Doom being pretty unplayable, the control scheme it uses is excellent considering the amount of buttons availible. It looks like the Gravis pad didn't have shoulder buttons, which is a shame.

Share this post


Link to post

It may or may not be the same button layout as the original Gravis Gamepad, but I remember the USB Gravis Gamepad Pro started with 1 as the leftmost button, and incremented counter-clockwise where the top button was 4.

Share this post


Link to post
Doomkid said:

Despite the SNES version of Doom being pretty unplayable, the control scheme it uses is excellent considering the amount of buttons availible. It looks like the Gravis pad didn't have shoulder buttons, which is a shame.

Nope, just the four buttons. It was pretty limited by the PC gameport standard which was designed for two two-button joysticks, though a lot of controllers used both in tandem so that you could get four buttons. As Wikipedia says, the later Gravis Gamepad Pro did have shoulder buttons, though that was only through making use of some kind of clever signalling techniques that didn't work on every machine, and I doubt many games supported it.

Share this post


Link to post

I didn't know about the 4-button limitation. I had a Gravis Gamepad and tried playing Doom with it, but the lack of buttons for weapon switching was horrible and made it nearly unusable. Using a CH Flightstick was honestly better, since with two buttons you had to keep another hand on the keyboard anyway.

Share this post


Link to post

Yeah, something like the configuration on the SNES gamepad is the minimum set of buttons needed to play Doom, I think. You need at least one button to switch weapons, and a pair of shoulder buttons to strafe with (having a "strafe button" sucks).

That said, after trying the Gravis Gamepad for the first time, I do find it pretty nice. I like the overall design - reversible for left-handed people, optional screw-in joystick and rapid-fire switch that lets you make use of the extra buttons in games that only support two buttons. Ultimately it's limited by the gameport interface, but they were pretty creative within those limitations.

Share this post


Link to post
fraggle said:

I'm committing a minor faux-pas by bumping an old thread

no it's okay, since without it i never would have seen this. i am very happy to see this, since when i contacted you earlier about the default-layout idea, you had replied that it was not canonical enough to fit in the project's scope. i always felt somewhat different about this, and i am glad that you have reconsidered your position.

i also agree that the 'original' layout is nice and was well-thought.

"I think Doom's defaults have been chosen with the Gravis Gamepad in mind." -- at least, that's what perspires from the manual, which can be considered a canonical bible since it was released back in 1993.

EDIT: how come both your layouts feature 'down to run'? mine suggested 'right to run', instead.

quote:
tl;dr: the intended control scheme might be "left to fire; up to use; down to strafe; and right to run.

here is, straight from the manual:

where do our logics diverge? they should have met and converged.

Share this post


Link to post

These are the vanilla defaults. joyb_speed=2 which maps to button 3 (indexes start from 0). So down is speed.

This mapping makes sense from a practical point of view: if your thumb rests on the fire button (left) then you can also use it to push or hold down the speed button too.

Share this post


Link to post
fraggle said:

This mapping makes sense from a practical point of view: if your thumb rests on the fire button (left) then you can also use it to push or hold down the speed button too.

If shoulder buttons are added in, these might, as you say, well make sense from a practical point of view.

I guess I had gone full canonical and went without the shoulder buttons. From that perspective, the "tl;dr (most-canonical) layout" makes sense from a practical point of view, since -- at least it seems to me -- strafe is more important and thus should be more accessible, in battle scenarios.

The equation changes depending on whether shoulder buttons are there (or made use of) or not, so the results.

There is nothing wrong with me in doing it the way you are doing it. The modernization of game controllers might well call for the modernization of input layouts.

Share this post


Link to post
twipley said:

There is nothing wrong with me in doing it the way you are doing it. The modernization of game controllers might well call for the modernization of input layouts.

Right. I'd much rather people have the opportunity to quickly set some sensible defaults than slavishly adhere to a layout that is very much a product of technical limitations of the era. Shoulder buttons for strafe are clearly superior in every way compared to a the "strafe on" approach.

Note that the setup tool recognizes a couple of common adapters for PC gameports, so if you're trying to play with an original Gravis Gamepad then you will get the original default layout.

Share this post


Link to post

Fine.

I also assume that it would be easy to override (or just disable altogether) the autoconfiguration feature so that any layout can be used with any gamepad?

Share this post


Link to post

They're just defaults. It's easy to rebind it however you want in the setup tool.

The defaults are table-driven in the code so it's easy to change them in forks etc.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now