VOGONS


Reply 20 of 34, by aha2940

User metadata
Rank Member
Rank
Member
dr_st wrote on 2021-08-21, 08:19:
aha2940 wrote on 2021-08-20, 15:50:
dr_st wrote on 2021-08-20, 06:10:

So how exactly do this "proportional" D-pad and "proportional" flippers on the Xterminator work? They do not send a proper analog signal, I guess, otherwise they would just call them "analog". Do they have a few fixed levels? How does the Windows Game Controllers applet (joy.cpl) see them?

They are analog. When used on linux, their values change from -32768 to 32767 depending on how much you press them. Same for the X and Y axis of the analog joystick. On windows they work the same.

So I assume the issue in this thread is not converting digital to analog, but merely converting USB to Gameport?

More like converting a digital USB gamepad into analog gameport gamepad.

Benedikt wrote on 2021-08-21, 11:49:
And in that case, you basically have two options: […]
Show full quote

And in that case, you basically have two options:

  1. Add hardware, i.e. use an active USB-to-Gameport adapter
  2. Remove hardware, i.e. disconnect everything USB-related and connect a Gameport cable directly to the potentiometers and switches

Option 1 would be preferred, since destroying this gamepad just to use it with DOS would be pointless IMO. There's also option 3: create software to do the conversion inside the PC itself, however that does not seem to be easy to do.

Reply 22 of 34, by Joakim

User metadata
Rank Oldbie
Rank
Oldbie

That is probably something that is close to my level of expertise and yeah I agree about over engineering. But as long as it is responsive and not a bulky implementation with regard to wiring I'm ok with that..

I built a gamepad once using premade parts and python libraries and it was very easy. But listening to digital speech of a gameport I don't know much about.. Talking analog to the gameport should be easy.

Reply 23 of 34, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie

Luckily, you can apparently buy breakout boards with digital potentiometer ICs and a few such ICs come in DIP packages, as well.
However, unless you already have the Raspberry Pi, this kind of adapter solution can easily get more expensive than a used Gameport gamepad.

Reply 24 of 34, by Shreddoc

User metadata
Rank Oldbie
Rank
Oldbie

IF the gameport-to-USB adapter included with [let's call it Xterminator rev.B] also works with the (adapter-not-included, and different logo) Xterminator rev.A*, then your by-far-simplest hardware solution would be to just make your own passive adapter to USB, and leverage the already-existing USB DOS drivers as demonstrated. Provided your retro machine's USB is OHCI based/compatible with Johnson's software!

The wiring would be simple for us to map out, from our existing units. And the result would be: complete and total control, to configure or (batch file) automate every function of the pad exactly how you want it in DOS.

It all depends upon whether-or-not there were protocol changes between the two revisions of the pad.

*Perhaps that's something you could test if you were willing, @aha2940, since you have both revisions. At your own risk, of course! But the connection risk does seem minimal, given that the voltage lines of the gameport interface are standardised as certain pins, which must be respected by both revisions as they both include gameport. Specifically, I am asking you to connect rev.B's gameport-to-USB adapter to the rev.A Xterminator, and see if it functions in Windows...

Reply 25 of 34, by aha2940

User metadata
Rank Member
Rank
Member
Shreddoc wrote on 2021-08-21, 21:32:
IF the gameport-to-USB adapter included with [let's call it Xterminator rev.B] also works with the (adapter-not-included, and di […]
Show full quote

IF the gameport-to-USB adapter included with [let's call it Xterminator rev.B] also works with the (adapter-not-included, and different logo) Xterminator rev.A*, then your by-far-simplest hardware solution would be to just make your own passive adapter to USB, and leverage the already-existing USB DOS drivers as demonstrated. Provided your retro machine's USB is OHCI based/compatible with Johnson's software!

The wiring would be simple for us to map out, from our existing units. And the result would be: complete and total control, to configure or (batch file) automate every function of the pad exactly how you want it in DOS.

It all depends upon whether-or-not there were protocol changes between the two revisions of the pad.

*Perhaps that's something you could test if you were willing, @aha2940, since you have both revisions. At your own risk, of course! But the connection risk does seem minimal, given that the voltage lines of the gameport interface are standardised as certain pins, which must be respected by both revisions as they both include gameport. Specifically, I am asking you to connect rev.B's gameport-to-USB adapter to the rev.A Xterminator, and see if it functions in Windows...

Hi, I have tested and the adapter included with "revision B" does not work at all with the "revision A" of the gamepad. Tried with Windows 98, XP and Linux, none of them even detect a USB device connected. I think it happens something similar to the USB mice that also support PS/2 connections: when connected through USB, the "revision B" gamepad senses that and switches protocol internally, so it is detected as USB device, but "revision A" cannot switch, so it's not detected. Strange thing is that the DB-15 connectors on both gamepads look identical. After the test I tried again both gamepads, connecting them to their respective ports and both still work fine, so no harm done with the test 😀

Reply 26 of 34, by Shreddoc

User metadata
Rank Oldbie
Rank
Oldbie
aha2940 wrote on 2021-08-22, 04:10:
Shreddoc wrote on 2021-08-21, 21:32:
IF the gameport-to-USB adapter included with [let's call it Xterminator rev.B] also works with the (adapter-not-included, and di […]
Show full quote

IF the gameport-to-USB adapter included with [let's call it Xterminator rev.B] also works with the (adapter-not-included, and different logo) Xterminator rev.A*, then your by-far-simplest hardware solution would be to just make your own passive adapter to USB, and leverage the already-existing USB DOS drivers as demonstrated. Provided your retro machine's USB is OHCI based/compatible with Johnson's software!

The wiring would be simple for us to map out, from our existing units. And the result would be: complete and total control, to configure or (batch file) automate every function of the pad exactly how you want it in DOS.

It all depends upon whether-or-not there were protocol changes between the two revisions of the pad.

*Perhaps that's something you could test if you were willing, @aha2940, since you have both revisions. At your own risk, of course! But the connection risk does seem minimal, given that the voltage lines of the gameport interface are standardised as certain pins, which must be respected by both revisions as they both include gameport. Specifically, I am asking you to connect rev.B's gameport-to-USB adapter to the rev.A Xterminator, and see if it functions in Windows...

Hi, I have tested and the adapter included with "revision B" does not work at all with the "revision A" of the gamepad. Tried with Windows 98, XP and Linux, none of them even detect a USB device connected. I think it happens something similar to the USB mice that also support PS/2 connections: when connected through USB, the "revision B" gamepad senses that and switches protocol internally, so it is detected as USB device, but "revision A" cannot switch, so it's not detected. Strange thing is that the DB-15 connectors on both gamepads look identical. After the test I tried again both gamepads, connecting them to their respective ports and both still work fine, so no harm done with the test 😀

Oh well, back to the drawing board! thanks for doing the test. It seems then, that we cannot shortcut the prospect of a fully bespoke solution. Thus goes the wild-west of late-90's digital gameport products! 😀

Last investigatory hope might be: to hunt down technical documents regarding the aforementioned Gravis Grip protocol, and see if the physical protocol can be defined. But... one might just as well spend the time manually measuring every output using meters, and 'simply' build upon that. For those so inclined...

(personally, I'd just be getting another device!)

Reply 27 of 34, by Joakim

User metadata
Rank Oldbie
Rank
Oldbie

Actually to make things a little bit more confusing the core of my gamepad has a sticker attached saying rev 2 or rev B, can't remember. So there are probably at least 3 different versions of this controller. As a guess that the one that said digital is an later revision.

At least I will probably attempt to listen to the signals. Should be quite easy with my Arduino.

Reply 28 of 34, by Benedikt

User metadata
Rank Oldbie
Rank
Oldbie
Joakim wrote on 2021-08-22, 07:29:

At least I will probably attempt to listen to the signals. Should be quite easy with my Arduino.

Apropos Arduino: There is also the Arduino USB host shield. Protocol support could be an issue, though.

Reply 29 of 34, by aha2940

User metadata
Rank Member
Rank
Member
Shreddoc wrote on 2021-08-22, 05:25:
Oh well, back to the drawing board! thanks for doing the test. It seems then, that we cannot shortcut the prospect of a fully be […]
Show full quote
aha2940 wrote on 2021-08-22, 04:10:
Shreddoc wrote on 2021-08-21, 21:32:
IF the gameport-to-USB adapter included with [let's call it Xterminator rev.B] also works with the (adapter-not-included, and di […]
Show full quote

IF the gameport-to-USB adapter included with [let's call it Xterminator rev.B] also works with the (adapter-not-included, and different logo) Xterminator rev.A*, then your by-far-simplest hardware solution would be to just make your own passive adapter to USB, and leverage the already-existing USB DOS drivers as demonstrated. Provided your retro machine's USB is OHCI based/compatible with Johnson's software!

The wiring would be simple for us to map out, from our existing units. And the result would be: complete and total control, to configure or (batch file) automate every function of the pad exactly how you want it in DOS.

It all depends upon whether-or-not there were protocol changes between the two revisions of the pad.

*Perhaps that's something you could test if you were willing, @aha2940, since you have both revisions. At your own risk, of course! But the connection risk does seem minimal, given that the voltage lines of the gameport interface are standardised as certain pins, which must be respected by both revisions as they both include gameport. Specifically, I am asking you to connect rev.B's gameport-to-USB adapter to the rev.A Xterminator, and see if it functions in Windows...

Hi, I have tested and the adapter included with "revision B" does not work at all with the "revision A" of the gamepad. Tried with Windows 98, XP and Linux, none of them even detect a USB device connected. I think it happens something similar to the USB mice that also support PS/2 connections: when connected through USB, the "revision B" gamepad senses that and switches protocol internally, so it is detected as USB device, but "revision A" cannot switch, so it's not detected. Strange thing is that the DB-15 connectors on both gamepads look identical. After the test I tried again both gamepads, connecting them to their respective ports and both still work fine, so no harm done with the test 😀

Oh well, back to the drawing board! thanks for doing the test. It seems then, that we cannot shortcut the prospect of a fully bespoke solution. Thus goes the wild-west of late-90's digital gameport products! 😀

Last investigatory hope might be: to hunt down technical documents regarding the aforementioned Gravis Grip protocol, and see if the physical protocol can be defined. But... one might just as well spend the time manually measuring every output using meters, and 'simply' build upon that. For those so inclined...

(personally, I'd just be getting another device!)

Here's the C code of the linux driver for the GrIP protocol. It includes how to handle the Xterminator input, maybe this can be used as a starting point? In the same tree code there's also code to manage other popular gamepads (USB xbox 360, Playstation).

https://github.com/torvalds/linux/blob/master … joystick/grip.c

Reply 30 of 34, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++
Benedikt wrote on 2021-08-22, 10:05:
Joakim wrote on 2021-08-22, 07:29:

At least I will probably attempt to listen to the signals. Should be quite easy with my Arduino.

Apropos Arduino: There is also the Arduino USB host shield. Protocol support could be an issue, though.

Which end? The USB end there are already HID libraries I think.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 31 of 34, by weedeewee

User metadata
Rank l33t
Rank
l33t

Odd that noone has suggested @Scorp 's project yet...

https://youtu.be/tSJLgCD8jeM
https://github.com/necroware/gameport-adapter

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 33 of 34, by weedeewee

User metadata
Rank l33t
Rank
l33t
Benedikt wrote on 2021-08-22, 18:31:

Not odd at all. We need it the other way around. Still a lovely project, though.

If you're talking about converting a USB joystick to a DB15 interface, then yes, though, that would not be the OP's dilemma and would probably need a separate thread.
Though the title of this thread is a bit ambiguous.
and for OP, Scorp 's project would be usable to attach his gravis xterminator , or any other joystick without usb support, to USB and then use the software that was mentioned earlier.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port