VOGONS


First post, by Ltsyrek

User metadata
Rank Newbie
Rank
Newbie

Is it possible to enable more gameports in 486 for connecting more pads/joysticks?
Currently I am using gamepad connected to SB32' s gameport. I also noticed that there is gameport header on my PTI-255W IDE+multi I/0 card and I just thought "Why not connect the second joystick?"
Does anyone have any experience with using more than one gameport at once? (Through multiple sound cards or I/O cards) Will it cause any conflicts?

Reply 2 of 15, by the Goat

User metadata
Rank Member
Rank
Member

A single game port supports two joystick ports. You will probably need a splitter to expose the second joystick port. Each joystick port supports two analog axis and two digital buttons.

Reply 3 of 15, by Errius

User metadata
Rank l33t
Rank
l33t

OTish: Do you need to load the sound card drivers to use the game port? How did non-DOS PC booter games read the joystick port on a sound card?

“I like to dissect PCs. Don't you know I'm utterly insane?"

Reply 4 of 15, by Ltsyrek

User metadata
Rank Newbie
Rank
Newbie

Thank you all for your help.
It looks like setting different I/O ports is impossible: I see no jumpers made for this purpose on I/O card and there is no port option (beside enabing/disabling) in Creative PnP utility. Same with Yamaha sound card.
This splitter is probably a way to go. Do you have any schematics how to build such thing?

Errius wrote:

OTish: Do you need to load the sound card drivers to use the game port? How did DOS booter games read the joystick port on a sound card?

The gameport should be avaiable without drivers if the sound card is not PnP. Also, I guess that when booter games were popular, sound cards with gameports were not produced yet. However, there were gameports on I/O cards.

Reply 5 of 15, by Scali

User metadata
Rank l33t
Rank
l33t

The joystick port on Sound Blasters and most clones supports 2 joysticks, you just need a Y-cable to split them (if you also use a MIDI kit, then first connect the MIDI kit to the card, and put the Y-cable on the MIDI kit joystick port. That's what I used on my SB Pro 2).
The original joystick card from IBM has two ports on the back, there are also various clones like that.

I don't think there is any standard for using more than one joystick interface. All cards I've ever seen, only support port 201h. So you can't use more than one of them at the same time.
So I would say that 2 is the maximum amount of joysticks supported.

Last edited by Scali on 2018-03-13, 21:21. Edited 2 times in total.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 7 of 15, by Scali

User metadata
Rank l33t
Rank
l33t
derSammler wrote:

First gameport is always at 201h, so any booter game would look there.

As is the second gameport. They share a single input register... Both have 4 bits:
Button 1
Button 2
X-axis
Y-axis

So two joysticks can fit in 1 byte. Which is at 201h.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 8 of 15, by derSammler

User metadata
Rank l33t
Rank
l33t

You can still have a second gameport card supporting two more joysticks at a different address. I have a couple of dedicated Lindy and QuickShot-branded gameport cards supporting that.

Reply 10 of 15, by Scali

User metadata
Rank l33t
Rank
l33t
derSammler wrote:

You can still have a second gameport card supporting two more joysticks at a different address. I have a couple of dedicated Lindy and QuickShot-branded gameport cards supporting that.

Sure, you can have many gameport cards... but is there any software that supports it?
Most games will use just one or two joysticks, and are hardcoded to have them both at port 201h.
So if you want to use one or two joysticks, that's how you do it. Adding a second joystick adapter at a different address is not likely to work as first or second joystick in most games.
So the solution is the Y-cable.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 12 of 15, by Scali

User metadata
Rank l33t
Rank
l33t
sirlemonhead wrote:

If a single gameport supports two joysticks, why do those old addon ISA cards have two gameports on them? to avoid needing to use a splitter?

A single gameport doesn't always support two joysticks.
The original IBM joystick adapter had splitter support: http://minuszerodegrees.net/oa/OA%20-%20IBM%2 … l%20Adapter.pdf
Cost saving perhaps?
But many clones do not.
I had one of these in my Commodore PC10-III:
mix_quickshot_qs120_01.jpg
I had no Y-cable, the two ports were joysticks 1 and 2. I don't think it supported Y-cables to add joysticks 3 and 4.

This is what it looks like on the inside:
product-79624.jpg

And this is the real IBM card:
5150_5160_game_adapter.jpg

Judging from the used components, the QuickShot is a pretty direct clone, so I don't expect it to support more than 2 joysticks.

The splitter was made popular by sound cards. The reason for that (like the integration of the MIDI ports in the joystick port) is because they only had room for one 15-pin port next to the audio jacks and the volume control on the backplane.
So they introduced the Y-splitter to support 2 joysticks (most games only used one joystick anyway, so most people probably never even bought the Y-cable).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 13 of 15, by oerk

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:
As is the second gameport. They share a single input register... Both have 4 bits: Button 1 Button 2 X-axis Y-axis […]
Show full quote

As is the second gameport. They share a single input register... Both have 4 bits:
Button 1
Button 2
X-axis
Y-axis

So two joysticks can fit in 1 byte. Which is at 201h.

Huh. X and Y axis are analog, how do they fit in a single bit each?

sirlemonhead wrote:

If a single gameport supports two joysticks, why do those old addon ISA cards have two gameports on them? to avoid needing to use a splitter?

Yes.

Reply 14 of 15, by Scali

User metadata
Rank l33t
Rank
l33t
oerk wrote:

Huh. X and Y axis are analog, how do they fit in a single bit each?

That has to do with how things are implemented. The joystick has potentiometers for the X and Y axis.
These are coupled to a simple circuit with a capacitor.
The resistance in the potentiometer determines how quickly the capacitor discharges.
The joystick card can be seen as a very simple AD-converter: just 1-bit... It basically tells you whether the capacitor is above or below the discharge threshold.
To determine the position of an axis, the capacitor is first charged, so the bit is 1. Then you poll the bit until it goes 0. The time it takes to discharge is your position (which is why joysticks on PC are quite nasty: they have quite a bit of CPU overhead... and of course there are the calibration issues because of differences in resistor values, capacitor values, bus speed and all that).

Last edited by Scali on 2018-03-14, 13:33. Edited 1 time in total.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 15 of 15, by Azarien

User metadata
Rank Oldbie
Rank
Oldbie
sirlemonhead wrote:

If a single gameport supports two joysticks, why do those old addon ISA cards have two gameports on them? to avoid needing to use a splitter?

One port can support four buttons and four axes, which can mean one 4D joystick with 4 buttons or two 2D joysticks with 2 buttons each.
Theoretically, having two separate ports would give you two 4D joysticks with 4 buttons each (or four 2D two-button joysticks).
I do not know if any game supports two-gameport configuration.