VOGONS


First post, by popcalent

User metadata
Rank Newbie
Rank
Newbie

I have the classical Gravis pad [1] that has four buttons in MSDOS 6.22 on a 386DX. I tried the JOYCHECK.EXE program that I downloaded from Vogons [2] and only two buttons are responding (even after selecting "one joystick - 4 buttons"). Anyway, if I turn on the turbo fire feature, then two buttons are still used as normal, and the other two are turbo fire (but they have the same function, there are still two buttons from the computer's point of view), which makes me think that, in reality, this gamepad has only two buttons. So I used some switches to create four buttons that directly interface the gameport, as seen in the picture (that circuit times four, one for each button) and, again, the first two buttons work, but button 3 and 4 are unresponsive. Again, I'm selecting "one joystick - 4 buttons" (though I believe it should be the same as "two joysticks - two buttons" since button 1 of joystick 2 is wired to button 3 of joystick 1, and button 2 of joystick 2 is wired to button 4 of joystick 1). So, does the MSDOS joystick have only two buttons or is there a trick to get the other two buttons to work??

gameport.png

[1] https://upload.wikimedia.org/wikipedia/common … 8cropped%29.jpg
[2] Re: Good DOS joystick test program?

Reply 1 of 16, by SScorpio

User metadata
Rank Oldbie
Rank
Oldbie

What device are you using for the gameport? By default you should have a total of four axis and and four buttons.

It was less common, but it was possible for some gameport cards to only support a single joystick so 2 axis and 2 buttons. This allowed two interfaces for two different joysticks, otherwise you'd need a splitter cable as most joysticks were just wired to appear as the first joystick to the PC.

Reply 2 of 16, by popcalent

User metadata
Rank Newbie
Rank
Newbie
SScorpio wrote on Yesterday, 01:21:

What device are you using for the gameport? By default you should have a total of four axis and and four buttons.

I'm using an Ambition Tech AB-757 GV2. By the way, I also interfaced the x and y-axis and it works just fine. I used a different circuit because it's analog, but I didn't mention it because I'm just concerned about buttons 3 and 4 not working.

It was less common, but it was possible for some gameport cards to only support a single joystick so 2 axis and 2 buttons. This allowed two interfaces for two different joysticks, otherwise you'd need a splitter cable as most joysticks were just wired to appear as the first joystick to the PC.

The way I understand it, all gameports support one 4-button joystick or two 2-button joysticks. As I said, button 1 of joystick 2 is wired to button 3 of joystick 1, and button 2 of joystick 2 is wired to button 4 of joystick 1. As far as I know, there is no way for the gameport to tell if there is one or two joysticks connected, so in theory, you could connect two four-button joysticks and both joysticks would be able to control the same four buttons (the two assigned to one joystick and the two assigned to the other joystick).

[1] https://theretroweb.com/expansioncards/s/ambi … ab-757-gv2#docs

Reply 3 of 16, by SScorpio

User metadata
Rank Oldbie
Rank
Oldbie
popcalent wrote on Yesterday, 01:42:

I'm using an Ambition Tech AB-757 GV2. By the way, I also interfaced the x and y-axis and it works just fine. I used a different circuit because it's analog, but I didn't mention it because I'm just concerned about buttons 3 and 4 not working.

The way I understand it, all gameports support one 4-button joystick or two 2-button joysticks. As I said, button 1 of joystick 2 is wired to button 3 of joystick 1, and button 2 of joystick 2 is wired to button 4 of joystick 1. As far as I know, there is no way for the gameport to tell if there is one or two joysticks connected, so in theory, you could connect two four-button joysticks and both joysticks would be able to control the same four buttons (the two assigned to one joystick and the two assigned to the other joystick).

[1] https://theretroweb.com/expansioncards/s/ambi … ab-757-gv2#docs

In general that's true, but there are cards like a dual gameport thrustmaster that allow two joysticks to be connected. Another with alternative configurations where you can have two separate cards and have one joystick get joy1 and the other on a different card be joy2.

Since the joy2 axis are working, but the buttons aren't. Do you have a different card you can test with?

I don't see any jumpers for the gameport on that super io card from the retroweb documentation. But the circuit is simply connect pin 10 or 13 to 4. If that's not being registered something may be damaged on your card.

Reply 4 of 16, by BaronSFel001

User metadata
Rank Member
Rank
Member

I concur with Scorpio's initial assessment: your card is a multi-I/O and those were notorious for their gameports not having full 4-axis 4-button support.

System 20: PIII 600, LAPC-I, GUS PnP, S220, Voodoo3, SQ2500, R200, 3.0-Me
System 21: G2030 3.0, X-fi Fatal1ty, GTX 560, XP-Vista
Retro gaming (among other subjects): https://baronsfel001.wixsite.com/my-site

Reply 5 of 16, by AncapDude

User metadata
Rank Newbie
Rank
Newbie

It can also be a BIOS issue since Gameport is most likely not used natively in DOS apps but by BIOS Routines. That changed in Win95 afterwards so if you have a bootable Win9x you can test the Ports there without using BIOS Routines if that changes anything. Dont know which way JOYCHECK.EXE goes.

Last edited by AncapDude on 2025-10-16, 19:05. Edited 1 time in total.

Reply 6 of 16, by Jo22

User metadata
Rank l33t++
Rank
l33t++
BaronSFel001 wrote on Yesterday, 16:11:

I concur with Scorpio's initial assessment: your card is a multi-I/O and those were notorious for their gameports not having full 4-axis 4-button support.

I think same. They probably pre-date the sound card model of having everything on a single DE-15 connector.

And since they merely have one DE-15 connector and not two like dedicated gameport cards of their time (one for each player),
the gameport on these multi-i/o cards probably is meant as a "single player" gameport.

Traditional game controller cards with two ports were made by "Lindy" and other manufacturers ..

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 7 of 16, by popcalent

User metadata
Rank Newbie
Rank
Newbie
SScorpio wrote on Yesterday, 13:47:

Since the joy2 axis are working, but the buttons aren't. Do you have a different card you can test with?

Oh, I just checked, and no, the joy2 axis is not working either. So, as others are suggesting, it might be that my card only supports one joystick. Which is a shame.

But the circuit is simply connect pin 10 or 13 to 4. If that's not being registered something may be damaged on your card.

What do you mean? 10 is button 3 (button 1 of joy2), and 13 is y-axis of joy2, button 4 is ground.

Reply 8 of 16, by popcalent

User metadata
Rank Newbie
Rank
Newbie
BaronSFel001 wrote on Yesterday, 16:11:

I concur with Scorpio's initial assessment: your card is a multi-I/O and those were notorious for their gameports not having full 4-axis 4-button support.

Well, that sucks. Full support doesn't require any extra circuitry since they use an octal buffer (for 4-axis and 4-buttons) and a 558 timer for the 4-axis anyway. It's not that they are saving on circuitry...

Reply 9 of 16, by popcalent

User metadata
Rank Newbie
Rank
Newbie
Jo22 wrote on Yesterday, 19:05:

And since they merely have one DE-15 connector and not two like dedicated gameport cards of their time (one for each player),
the gameport on these multi-i/o cards probably is meant as a "single player" gameport.

I thought that all gameports were wired for two joysticks anyway, and if you had a multiport card or a gameport on a sound card (as opposed to a gamecard with two connectors), you could just buy a splitter (a Y-shaped cable)...

Reply 10 of 16, by SScorpio

User metadata
Rank Oldbie
Rank
Oldbie
popcalent wrote on Today, 00:52:

But the circuit is simply connect pin 10 or 13 to 4. If that's not being registered something may be damaged on your card.

What do you mean? 10 is button 3 (button 1 of joy2), and 13 is y-axis of joy2, button 4 is ground.

Sorry meant 10 and 14 to pin 4. That's what a four button joystick circuit should be doing. But it sounds like your Super IO doesn't support it.

Reply 11 of 16, by popcalent

User metadata
Rank Newbie
Rank
Newbie
SScorpio wrote on Today, 00:56:

Sorry meant 10 and 14 to pin 4. That's what a four button joystick circuit should be doing. But it sounds like your Super IO doesn't support it.

So wire button 3 and button 4 to ground? I'm not following... Don't you mean wiring x-axis and y-axis of joy2 to ground (pins 11 and 13) so the gameport (or the software rather) knows there is no second joystick connected?

Reply 12 of 16, by Ozzuneoj

User metadata
Rank l33t
Rank
l33t

I'm not that great with circuits, but maybe the difference is that the card has an NE556 rather than the NE558 that ran a lot of gameports back in the day? I have no idea if there's any functional difference between them for this task, but one is referred to as a dual-biopolar timer and the other is a quad timer. 🤷

Now for some blitting from the back buffer.

Reply 13 of 16, by popcalent

User metadata
Rank Newbie
Rank
Newbie
Ozzuneoj wrote on Today, 01:06:

I'm not that great with circuits, but maybe the difference is that the card has an NE556 rather than the NE558 that ran a lot of gameports back in the day? I have no idea if there's any functional difference between them for this task, but one is referred to as a dual-biopolar timer and the other is a quad timer. 🤷

Oh! No!

I just checked and yes, it has a 556!

So, the 558 has four timers that are used to register X1, Y1, X2, and Y2. The 556 has only two timers, so it can only register X1 and Y1. However, the output of the timers and the pins of the digital buttons go to a 74244 octal buffer that has one buffer per button (4 digital and 4 analog). I see that my card still has a 74244 octal buffer, so, while it can't register X2 and Y2, it should be capable of registering the four digital buttons... The circuitry is there anyway.

Reply 14 of 16, by Ozzuneoj

User metadata
Rank l33t
Rank
l33t
popcalent wrote on Today, 01:19:
Oh! No! […]
Show full quote
Ozzuneoj wrote on Today, 01:06:

I'm not that great with circuits, but maybe the difference is that the card has an NE556 rather than the NE558 that ran a lot of gameports back in the day? I have no idea if there's any functional difference between them for this task, but one is referred to as a dual-biopolar timer and the other is a quad timer. 🤷

Oh! No!

I just checked and yes, it has a 556!

So, the 558 has four timers that are used to register X1, Y1, X2, and Y2. The 556 has only two timers, so it can only register X1 and Y1. However, the output of the timers and the pins of the digital buttons go to a 74244 octal buffer that has one buffer per button (4 digital and 4 analog). I see that my card still has a 74244 octal buffer, so, while it can't register X2 and Y2, it should be capable of registering the four digital buttons... The circuitry is there anyway.

I just realized the the 556 is 14pin, and the 558 is 16 pin. Seems like such a peculiar limitation for a multi IO card from the 90s. The AST SixPakPlus from the mid 80s that I put into my IBM 5150 took a 558 to enable joystick functionality.

Now for some blitting from the back buffer.

Reply 15 of 16, by Jo22

User metadata
Rank l33t++
Rank
l33t++
popcalent wrote on Today, 00:56:
Jo22 wrote on Yesterday, 19:05:

And since they merely have one DE-15 connector and not two like dedicated gameport cards of their time (one for each player),
the gameport on these multi-i/o cards probably is meant as a "single player" gameport.

I thought that all gameports were wired for two joysticks anyway, and if you had a multiport card or a gameport on a sound card (as opposed to a gamecard with two connectors), you could just buy a splitter (a Y-shaped cable)...

That Y-cable got popular with the "Killer card" (Sound Blaster). It introduced MIDI serial port on unused DE-15 pins, too.
Since then, most sound cards were wired the same.

Before that, dedicated game controller cards had two joystick ports for two joysticks.
An multi-i/o card thus merely had one, in some cases. Because it made sense to manufacturers.
At the time, ordinary joysticks had two buttons and two axes.

For example, the Kraft joysticks or the CH Mach series.
Both adopted the traditional Apple 2 joystick design, I think.

DOS Days has some information about that:
https://dosdays.co.uk/topics/joysticks.php
https://dosdays.co.uk/topics/Manufacturers/chproducts.php

That museum features a Kraft Joystick.:
https://americanhistory.si.edu/collections/ob … ect/nmah_553251
Here are some more models.

In the 90s, the Gravis game pad got more popular and the first games supporting 4 buttons became common.
I remember how I was surprised in the mid-90s that the Gravis pad could do that. That felt so SNES-like!
I already had a PAS16 sound card with a speed-compensating game port (I think) at the time.

However, my main controller was a CH Mach 2 from the 80s that I've used for flight sims (2 button, x/y).
In principle it also was useful as a mouse replacement, but I already had a mouse.

Edit: Here's the original "IBM Game Control Adapter".
And indeed, it merely has one DE-15 connector for two joysticks.
It also has an experimental area, hinting that this was intended as a generic A/D converter board.
Unfortunately, no other game cards did have that spare area.

https://minuszerodegrees.net/5150_5160/cards/ … tm#game_adapter

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 16 of 16, by SScorpio

User metadata
Rank Oldbie
Rank
Oldbie
popcalent wrote on Today, 01:03:

So wire button 3 and button 4 to ground? I'm not following... Don't you mean wiring x-axis and y-axis of joy2 to ground (pins 11 and 13) so the gameport (or the software rather) knows there is no second joystick connected?

All I'm saying is that grounding either pin 10 or 14 triggers the button press. You can very easily attempt this with a wire and it doesn't require a specific value with a resister or anything. This would easily let you know if the gameport supported the second joystick or not and completely rules out anything to do with your Gravis pad.