To be honest, I've never even thought about this.It's a cool idea, though. And a great exercise for a weekend project.

It should be possible to use something like an Arduino Leonardo for that purpose.If I'm not mistaken, that model has a true USB controller to emulate HID devices.

Maybe it could be reprogrammed to operate in reverse, converting a HID device, like an USB joystickto an anlogue game pad.

It would essentially provide signals for the digital buttons and two analogue axis unsing the PWM/analogue pins.This would also require a bit of external electronic on a shield, like some relays/optoinsulators for emulating thedigital gameport buttons and some resistors for the axis.

If only a simple gamepad is to be emulated, a simple d-pad (four directions) could be simulated byusing some simple resistors with fixed values. These would have to be "turned on" by using transistors/a shift register.

A more elegant idea would be to use some special hi-fi ICs for volume control, but I don't know much about them.Anyway, that's just an idea.

Converting USB to Gameport shouldn't be hard with todays microcontrollers,you'll only need the "know-how" to do it.

"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

Xnyle wrote:Serioulsy, nobody else want's to use modern Joysticks/Gamepads on old computers?

Just did the same search and I’m really surprised that no one has anything for this. I’d love to use modern gamepads like an Xbox One controller with my old PCs.

Most ideally a converter for this would also have a pass through AT & PS/2 keyboard plug and make the buttons on the joystick programmable as keyboard keys (programming could perhaps happen with a modern PC).

Xnyle wrote:Serioulsy, nobody else want's to use modern Joysticks/Gamepads on old computers?

Just did the same search and I’m really surprised that no one has anything for this. I’d love to use modern gamepads like an Xbox One controller with my old PCs.

Most ideally a converter for this would also have a pass through AT & PS/2 keyboard plug and make the buttons on the joystick programmable as keyboard keys (programming could perhaps happen with a modern PC).

Even better if there also was a converter to other old 9 pin joystick porta. E.g. I want a new gamepad for my Genesis...

root42 wrote:Even better if there also was a converter to other old 9 pin joystick porta. E.g. I want a new gamepad for my Genesis...

The Genesis had good pads available for it. The good ones are among the best d-pad controller ever made.

Emulating a d-pad with a modern analog controller can only be terrible, and modern d-pads are no upgrade from original hardware. The biggest potential here is probably in emulating an analog joystick for racing games and such, all kinds of stuff had joystick support.

root42 wrote:Even better if there also was a converter to other old 9 pin joystick porta. E.g. I want a new gamepad for my Genesis...

The Genesis had good pads available for it. The good ones are among the best d-pad controller ever made.

Emulating a d-pad with a modern analog controller can only be terrible, and modern d-pads are no upgrade from original hardware. The biggest potential here is probably in emulating an analog joystick for racing games and such, all kinds of stuff had joystick support.

Yes, but what if the original pads are worn out or broken? What would you recommend as a replacement?

I really like Jo22's idea. I don't have a little SBC to mess with but I don't see why this couldn't be done. I wouldn't mind using an xbox controller to play some DOOM . I've been considering buying a raspberry pi just because why not anyway. I'm not aware of how I would interface with the HID controller (read joy position or button state) at the moment, furthest I've gone in recent years has been using SDL to poll the controller.

I could fathom exactly how I would write the driver for it on the DOS, I would want to design it so any basic scratch Joy/2 button gamepad driver works, I've written my own joy drivers many a time.

As far as joysticks though I haven't been studying these things for years, old analog joysticks have a potentiometer + capacitor and you simply time how long it takes to get a voltage out to your pin to calculate the position of the given axis (extremely CPU dependent because of the polling speed, hence the need for calibration). I think this could possibly be done in software on the SBC using delays, but would introduce a little input lag, hopefully not a noticeable amount.