I have this old game, Jane's WWII Fighters. My research shows up that the game cannot use USB joysticks, which I can believe because the joystick we used back forever ago had a game pad connector (or whatever it's called).

So basically I need either:1. The game to be able to recognize a USB joystick, or2. A compatible joystick and an expansion card to be able to use said joystick.

my sister wrote:[the sun] can go to Hell and brighten that place up a while.

From memory, what we used to use was something I often called COM2 (looked like it!), but actually wasn't. A 15(?)-pin dual-row DSub that took either digital (platformer-level control) or analogue (flight yoke; better, if not entirely necessary, for flying) joystick input through, if necessary, an A/D-converter usually linked to the sound card (perhaps to do double-duty as a MIDI input, but as I never used MIDI that way I don't think I tested that part, ever).

My suggestion is to look for a USB driver/extender that in software, takes the USB data and reoresents it as the perhaps archaic internal port info of your game, as a virtual device thus compatible with your game. The trouble being to find that from amongst the various bits and pieces advertised that would take your non-USB joystick and connect if to a USB port, from the same era when modern machines (USBed-up motherboards and perhaps ActiveX drivers at the OS level) were no longer always interfacing with the notgso-modern old input hardware.

Or I might be off-piste, but this brings very back memories. It's been a long time since my hayday in flight-sims. (I see XPlane is at version 11 now... My boxed copy, much enjoyed but long since put to one side whilst other things intervened, must have been v1 or 2, I'm guessing.) Been through a number of machines, but I'll poke around to see what I had to do with my flight-yoke.

Soupspoon wrote:From memory, what we used to use was something I often called COM2 (looked like it!), but actually wasn't. A 15(?)-pin dual-row DSub that took either digital (platformer-level control) or analogue (flight yoke; better, if not entirely necessary, for flying) joystick input through, if necessary, an A/D-converter usually linked to the sound card (perhaps to do double-duty as a MIDI input, but as I never used MIDI that way I don't think I tested that part, ever).

You are 100% right.

The proper name of the port is called "Gameport". A quick search of "Gameport to USB" reveals a number of implementations.

I dunno if its legitimate, but its worth a shot. Tell me if it works out The Sidewinder was one of Microsoft's most famous joysticks, so I'd bet that most gamepads of that era are compatible with Sidewinder gameports.

free-bee wrote:I have this old game, Jane's WWII Fighters. My research shows up that the game cannot use USB joysticks, which I can believe because the joystick we used back forever ago had a game pad connector (or whatever it's called).

So basically I need either:1. The game to be able to recognize a USB joystick, or2. A compatible joystick and an expansion card to be able to use said joystick.

Hmm, that seems like a difficult problem indeed. Maybe there is a Joy2Key-like program out there to convert a USB joystick into an old Gameport one? Like a device driver translation layer?

I've personally played these old DOS-era games successfully with a USB-gamepad on Windows8+. However, the issue with "Jane's WWII Fighters" is that its a Win95 / Win98 game. So we need something more advanced than DosBox but with the same features.

Maybe if you installed Win98 or Win95 on Dos-box and then emulated a USB-gamepad through it? Or something convoluted like that... lol. I got nothing...

Soupspoon wrote:From memory, what we used to use was something I often called COM2 (looked like it!), but actually wasn't. A 15(?)-pin dual-row DSub that took either digital (platformer-level control) or analogue (flight yoke; better, if not entirely necessary, for flying) joystick input through, if necessary, an A/D-converter usually linked to the sound card (perhaps to do double-duty as a MIDI input, but as I never used MIDI that way I don't think I tested that part, ever).

Just to be clear, the gameport (a mixed-signal parallel I/O port) is not the same thing as the COM ports (which are RS-232 serial.) You wouldn't be able to mix them up anyway as they're not physically compatible (the COM ports are either 9-pin or 25-pin, while the gameport, as you say, is 15-pin,) though.

However, I'm not sure why the game in question wouldn't support USB joysticks, as it's a Windows game, and Windows has transparently presented joysticks/gamepads through the same unified API (no matter how they're connected) since Windows 3.0. Have you verified that a USB joystick won't work?

"'Legacy code' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrupwww.commodorejohn.com - in case you were wondering, which you probably weren't.

commodorejohn wrote:However, I'm not sure why the game in question wouldn't support USB joysticks, as it's a Windows game, and Windows has transparently presented joysticks/gamepads through the same unified API (no matter how they're connected) since Windows 3.0. Have you verified that a USB joystick won't work?

Consider yourself to be a 1990s era programmer.

Do you support every gamepad that has existed since the 1980s? Or do you write your code to support the hot-new shit (called USB 1.0 that has come over from Mac-world)?

Nah man, you write assembly language routines to do IO on port 80 for that shit!

The assembly-language routines have worked for like 20 years, and all game port manufacturers are using it. Why switch to this new fancy USB port thingy?

----------

Direct assembly-language level calls to hardware was discontinued in Windows Vista btw. So the methodology of working with direct-gameport functions lasted from the original IBM-PC all the way through the end of WinXP. It was a very good run. I bet you that the majority of games at that time are using Game Port functions... at the assembly level even directly accessing those I/O ports. It was really simple to do and all the game-programming books of that era taught the practice.

Yeah, it was certainly an option. But I'd be surprised if they actually did that here - if they were (as the system requirements state) requiring DirectX 5, why would they not just use the facilities that DX already had in place?

"'Legacy code' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrupwww.commodorejohn.com - in case you were wondering, which you probably weren't.

commodorejohn wrote:Yeah, it was certainly an option. But I'd be surprised if they actually did that here - if they were (as the system requirements state) requiring DirectX 5, why would they not just use the facilities that DX already had in place?

Jane's was a high-quality long-running series of games. They started in the DOS-era and improved every year or so.

DirectX graphics was a big deal. Microsoft solved a major problem with regards to incompatible graphics cards. Before DirectX, you had to write graphics specifically for the graphics cards that you'd want to support. (Usually Voodoo Graphics).

So DirectX5 (IIRC, it was DX4 that really wow'd the game programming community at the time. EDIT: Nope, it was DX3 for the first major release) was the obvious way forward for programming video games. But USB-joysticks still weren't a standardized option for years to come. The entire joystick community worked with Game Ports. The problem was solved by the standardization... and then the Gameport -> USB layer was even standardized at a later time.

It seems like this specific game was written when DX5 was obviously the best way to write games, but before USB became popular (again: the culture back then was that USB was this hip new thing that Apple was pushing on their Macs. USB wasn't really a PC technology for some time). Indeed, Windows 95 would support DirectX but didn't support USB until Service Pack 3.

"It was very worth it to switch from proprietry video routines to DirectX for the advantages it gave to the game's output, but it wasn't considered worthwhile or a priority to junk the still perfectly servicable old-style analog-input code." Right?

Soupspoon wrote:"It was very worth it to switch from proprietry video routines to DirectX for the advantages it gave to the game's output, but it wasn't considered worthwhile or a priority to junk the still perfectly servicable old-style analog-input code." Right?

The assembly-language routines have worked for like 20 years, and all game port manufacturers are using it. Why switch to this new fancy USB port thingy?

Exactly.

Why spend the time and money to support something that barely anyone is using? Game development generally involves trying to squeeze as much performance and content as you can from as little resources as possible. Forward compatibility really isn't a high on their list of priorities.

This topic is a mess, but here's a minor update:My dad did his own research and doesn't want to do the USB to gamepad option so I did some searching for a gamepad expansion card. I didn't find anything at all. Also, the game disk is MIA so I can't launch the game to see what joysticks are listed (ours was a Wingman).

my sister wrote:[the sun] can go to Hell and brighten that place up a while.

free-bee wrote:This topic is a mess, but here's a minor update:My dad did his own research and doesn't want to do the USB to gamepad option so I did some searching for a gamepad expansion card. I didn't find anything at all. Also, the game disk is MIA so I can't launch the game to see what joysticks are listed (ours was a Wingman).

Hold up for a second: modern Windows blocks access to physical ports at the assembly level. Unless you get Windows XP or earlier, I guarantee you it will not work. Gamepad ports require assembly routines to access the gamepad's hardware directly. That's just how the software of the 90s were written.

I'm not kidding when I say that the best option forward is to reinstall Windows 95 or Windows 98 on DosBox. Dosbox has a USB -> Gamepad emulator and will emulate those assembly language routines to some degree.

But if you want to go with the physical hardware option, then here's my suggestion:

1. Install Windows XP. That's the last version of Windows that had access to low-level assembly language routines that interacted directly with hardware.2. Look up SOUND Cards. Sound-cards were where game ports were located on back in the day. There was never a dedicated "game port card", it was always on a sound card for some fucking weird reason.

3. This will require an older computer with a PCI bus, not a modern PCIe bus.

4. The gameport itself was a standard. Chances are... if you have a joystick that plugs into that gameport, the game will run that joystick just fine. I know some obscure joysticks didn't play nice with the standard... but the big-name joysticks (Thrustmaster, Sidewinder, Wingman...) they all followed the standard very well.

commodorejohn wrote:Also, I haven't messed around with this as I don't run post-XP Windows at home, but does the "compatibility mode" option affect whether applications can perform direct port access?

From my understanding: no.

I admit that I've never tested it for gameports. But a similar assembly-language accessed port (the serial port) has a similar issue in Vista and later. Fortunately, most serial-port programs were written in a way to be forward-compatible, but a large number of them from 20+ years ago relied upon assembly language direct-hardware access and fail to work.

commodorejohn wrote:Also, I haven't messed around with this as I don't run post-XP Windows at home

Also, there's a reason why direct-access to the hardware is now forbidden. Its really, really bad for security. If a virus infects your computer, it will have direct-hardware access to virtually everything.

The additional layers of security made it necessary for Windows Vista+ to close the "direct-hardware access loophole" so to speak.

Yeah, I figured, but since the compatibility mode was there I thought it might provide at least a trapped, OS-intermediated form of access to certain ports. But if it blocks direct access to the UART I doubt it'd allow direct access to the gameport.

"'Legacy code' often differs from its suggested alternative by actually working and scaling." - Bjarne Stroustrupwww.commodorejohn.com - in case you were wondering, which you probably weren't.

Based on more research my dad did, the game itself is programmed to recognise only two or three (I'm thinking two) joysticks period. Can DosBox emulate specific joy sticks?

*edit*We found the game disk and I was off on the number. It was nine. I tried all of them with a usb joystick and none worked (that was a while back). I'll try it again later as it is not currently in the house.

my sister wrote:[the sun] can go to Hell and brighten that place up a while.

I solved the problem by doing one of the first things I should've done when I installed the game but didn't, and that is I had to set the game to run as administrator.I went looking for some files that should have existed and found that they didn't. It was the settings file that the game generates the first time it runs and I had run the game before (obviously). So I ran the game again (we found the disks) and the files (there were two) were still nonexistent. That's when it occured to me to set the game to run as administrator. I did that and it solved all our problems.

My dad still ordered a joystick (with the usb to gameport adapter) because it has more buttons

my sister wrote:[the sun] can go to Hell and brighten that place up a while.