VOGONS


First post, by Hamby

User metadata
Rank Oldbie
Rank
Oldbie

I figured this belonged in general old hardware more than software...

Has anybody found a use for the joystick/midi port on sound cards such as the sound blaster?
I was testing a couple of old joysticks with my eSS1688 audio card (worked fine) and it occurred to me to wonder if it would be possible to hack some kind of communications adapter to it... maybe ethernet, bluetooth, wifi.

I know with some older computers, such as the C64, people have connected their PC's audio out to the cassette port of the C64 to download tape images; I wonder if something similar could be hacked from the joystick/midi port, leaving the audio output available for... audio?

Also, does anyone know if there are still any joystick/midi port to actual midi port adapters available, to connect a retro computer to a retro musical keyboard, for example? Would it be possible to hack the joystick/midi port to a USB connection? The goal being to connect to more modern musical keyboards that use usb instead of midi connectors.

I have a pair of Gravis Stinger game pads, designed to connect to 9 pin serial ports, and I've long wondered if there was some way I could hack them to work with a joystick/midi port of a sound card. There are only drivers for Windows (and I think Linux) which would limit their usefulness, but maybe the drivers could be made unnecessary if they could be adapted to connect to the joystick port.

Anyway, I guess the point of my question is: has anybody found any creative ways to hack a joystick/midi port on a soundcard?

Reply 1 of 9, by Malvineous

User metadata
Rank Oldbie
Rank
Oldbie

I don't think anyone has bothered trying, because there are much better alternatives. The normal PC joystick port is input only, so you'd only get bidirectional in/out on a sound card's MIDI/joystick port when flipped into MIDI mode. MIDI only runs at 31Kbps, whereas the PC serial port can go significantly faster. It looks like even the ports on an old XT can go up to 38Kbps without any issues. So any PC that can fit a sound card has faster communication via serial ports, and can typically have an Ethernet card fitted that can do 10Mbps.

So really, there isn't a whole lot of incentive to use the slow MIDI port for connecting other devices.

USB is a completely different protocol and runs generally too fast for a retro PC's I/O ports, so unless you plan to design your own ISA card with USB ports on it, you'd need some translator in between to speak USB in one direction and joystick/MIDI/serial/whatever in the other. Certainly doable, but you'll need to learn some basic electrical engineering first. It's actually not a bad idea for a first project, getting a microcontroller that can speak USB and translating the data to an older protocol. You'd learn heaps and get a useful device at the end of it!

Reply 2 of 9, by derSammler

User metadata
Rank l33t
Rank
l33t
Malvineous wrote:

The normal PC joystick port is input only, so you'd only get bidirectional in/out on a sound card's MIDI/joystick port when flipped into MIDI mode.

Actually, force feedback joysticks used a completely digital bidirectional protocoll on a normal game port, and I don't think they switched the port to MIDI mode in order to do that.

Reply 3 of 9, by dionb

User metadata
Rank l33t++
Rank
l33t++
Hamby wrote:

[...]

Also, does anyone know if there are still any joystick/midi port to actual midi port adapters available, to connect a retro computer to a retro musical keyboard, for example?

Certainly. Widely available on a well-known auction site at low cost. I bought one a few months back.

Would it be possible to hack the joystick/midi port to a USB connection? The goal being to connect to more modern musical keyboards that use usb instead of midi connectors.

Even new keyboards with USB generally have old-fashioned Midi ports too - the music industry is a conservative place. That said, converters are easy to find (simple google search does the trick) and inexpensive.

As for actual hacking: nope, but given the port accepts analog input there should be enough potential uses.

Reply 4 of 9, by Malvineous

User metadata
Rank Oldbie
Rank
Oldbie
derSammler wrote:

Actually, force feedback joysticks used a completely digital bidirectional protocoll on a normal game port, and I don't think they switched the port to MIDI mode in order to do that.

Any idea how? Last time I looked (many years ago) the port only had analogue and digital inputs, and power - no outputs. Even looking at the pinouts now, the only outputs are for power and they aren't software controllable on a standard port.

Reply 5 of 9, by Koltoroc

User metadata
Rank Member
Rank
Member
Malvineous wrote:
derSammler wrote:

Actually, force feedback joysticks used a completely digital bidirectional protocoll on a normal game port, and I don't think they switched the port to MIDI mode in order to do that.

Any idea how? Last time I looked (many years ago) the port only had analogue and digital inputs, and power - no outputs. Even looking at the pinouts now, the only outputs are for power and they aren't software controllable on a standard port.

I think he got that wrong. I remember pre USB Force feedback joysticks generally requiring a serial port. I don't rule out that there was a FF joystick that just used a gameport, but if so, I would assume they abused the MPU401 mode of the soundcards to do so. I have never seen one though.

Reply 6 of 9, by .legaCy

User metadata
Rank Oldbie
Rank
Oldbie

Why dont go with the same idea as the c64? Just need a software "modem" to modulate and demodulate the audio and two cables to connect one pc line in to another pc line out and vice versa.
What i had in mind was using the stereo functionality, the left channel send a clock signal and the right channel data.

Reply 7 of 9, by derSammler

User metadata
Rank l33t
Rank
l33t
Koltoroc wrote:

I think he got that wrong. I remember pre USB Force feedback joysticks generally requiring a serial port. I don't rule out that there was a FF joystick that just used a gameport, but if so, I would assume they abused the MPU401 mode of the soundcards to do so. I have never seen one though.

No, they don't require a serial port. I have all the original SideWinder force feedback joysticks from Microsoft and they connect to the game port only. Quite likely of course that they use the pins for MIDI.

Even looking at the pinouts now, the only outputs are for power and they aren't software controllable on a standard port.

Did you even read the text on that site you linked to?

How PC joystick port hardware works

The joystick port is a very simple 8 bit I/0 card which resides in ISA bus I/O address 201h. The CPU can read and write to the joystick port I/O address 201h.

Reply 8 of 9, by Jo22

User metadata
Rank l33t++
Rank
l33t++

hacking the joystick/midi port -> Using the game port as a switching output ?

😁

"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 9 of 9, by Malvineous

User metadata
Rank Oldbie
Rank
Oldbie
derSammler wrote:

Did you even read the text on that site you linked to?

How PC joystick port hardware works
The joystick port is a very simple 8 bit I/0 card which resides in ISA bus I/O address 201h. The CPU can read and write to the joystick port I/O address 201h.

Yes. Did you "even read" the sentence after what you quoted?

Writing to that address starts joystick postition measurement. [...] The data value is not stored anywhere, so it is really same what value is written to this address.

In other words, the port uses an I/O write as a trigger to start measuring the analogue input, and the byte actually written is discarded.

If you look at the pinout, there are no electrical outputs, so even if the byte written was stored somewhere, there's nowhere for it to appear electrically on the joystick port's pins.

EDIT: Found some documentation on the SideWinder force feedback protocol. It basically speaks MIDI (on channel 6 with SysEx messages to upload data), so it requires a sound card's joystick/MIDI port and the force feedback won't work on the original pre-MIDI gameport.

I also found out that MIDI support was added by putting a serial bus onto the unused pins 12 and 15, which explains how it was added in a backwards-compatible manner, something which I have always wondered about but never actually looked up until now.