I've got an standard interface (DB-15 analog) joystick connector on my Windows XP gaming system. It works fine for DOS applications (booting into DOS directly, not using XP at all). However, nothing in XP detects it. Since DOS games can talk to it, it must be hardware compatible. Does XP need a special driver for legacy joystick support/how can I use it for my XP games?
It looks like you need to explicitly add the device - i.e., it isn't plug 'n play like USB or even like a lot of older devices (e.g., mice & keyboards on PS/2 ports).
The DA-15 Joystick port (BTW, not to be confused with the AUI ethernet connector, which is also a DA-15 with additional locking hardware!) has no standardized provision to detect what is connected to it. The standard PC implementation of such a port (basically a bunch of 555 timers that are tuned by the variable resistors in the joystick) cannot even reliably detect if anything AT ALL is connected to it, a game port with nothing connected will just present nonsensical data to software.
Hence, the OS, if it supports the game port hardware at all (Post-XP Windows by default will not work with the standard PC implementation!), needs to be manually configured for the type and number of joysticks connected.
Also, the legacy (standard) type of game port is non-autodetectable hardware in itself. Actually, there seems to be no easy way even for a configured driver to ascertain whether it is reading from an installed game port or reading garbage data off the bus in its absence. This is the likely reason modern OSes will not by default support it, since a misconfigured or autoprobing driver could potentially cause a severe hardware crash (eg if some other legacy hardware uses some of the I/O resources that a multi-port gameport card would use).
The same is basically true for your DOS games, with the differences that a) DOS simply choses not to involve itself at all with the game port, and b) the games bring their own driver that is set up with reasonable defaults, and relies on the user having installed their gameport hardware correctly.
Windows XP will not automatically detect DB-15 gameport joysticks. XP has to be told what kind of joystick to expect at the gameport using the Game Controllers item in Control Panel. Flightsticks, arcade joysticks and gamepads are treated the same.
Full instructions for installing a gameport joystick in XP:
First, make sure XP knows you have a gameport. Go to Control Panel > System > Device Manager. An item named 'Game Port' (or similar) should appear in 'Sound, video and game controllers' in the Device Manager. Windows XP would have probably detected the presence of a game port on your system during installation. If it's present, that's good. If it's not present, you may have to install the appropriate driver for your motherboard (check the CD it came with) or sound card (e.g. the Sound Blaster Live! PCI standard drivers install a Creative Game Port item).
While the PC is powered off, insert your joystick in the gameport and fasten the thumbscrews. The gameport may or may not be hotswap safe, but don't chance it.
[Optional: If your joystick is a major brand like Genius, Logitech, Microsoft or Gravis this step may help. I'd only do this if there's no generic Windows driver available that enables all the axes and extra buttons on my pad. If your pad is an unknown or generic brand, no installer is used.] Run the install program for the manufacturer's drivers if your joystick came with them. These could be on a floppy disk included with the joystick, or on the manufacturer's website. These days the VOGONS Vintage Driver Library would be the best place to find drivers, for Genius pads, etc. My Genius gamepad has a complicated taskbar program that supports configuration switching and all kinds of things. The pad works as a standard four-button joypad without the Genius drivers, and all the extra buttons work if I install the Genius drivers but close the resident program. Feel free to skip any unusual taskbar add-on programs if you like.
Go to Control Panel > Game Controllers. If your joystick is listed there, and the Status is showing OK, your controller should work in Windows games now.
If your joystick is not listed, click Add.... If you see your exact brand of joystick in the list of available drivers, select it. Otherwise, choose the generic description that most closely matches the joystick you have.
Select your joystick in the 'Installed game controllers' pane then click Properties to bring up a dialog showing the axes and button states of your joystick. Press each button in turn to make sure they're all recognised. It's unfortunately unlikely that every button on a gamepad will match up to the number printed on your pad. You'll have to configure your controls properly inside your games.
You should Calibrate all the axes to ensure the full range of motion is recognised. You should do this whether you have a flightstick with throttle, an arcade stick or a joypad. Gameport joypads are typically analogue internally (since the axes in the gameport itself are analogue) even if they appear to have a digital directional pad.
If the buttons don't respond correctly, or pressing a button causes one of the axes to swing to one of the extremes, click Remove to remove the driver and select a different one. Almost all gameport joysticks will support a 4-button 2-axis mode as a baseline, since this is the base hardware configuration of an 'IBM Game Control Adapter' DB-15 joystick. (If all four buttons of its digital buttons are assigned to one player.)
Play the demo of Handkerchief or Jazz Jackrabbit 2 to test your joystick properly. :D