Your good old digital joysticks can be used with standard PC gameport. You need a bit more than pieces of wire but not much.
PC reads analog joystic by measuring the current trough the variable resistor. Resistance is typically between 0 and 100Kohm. Middle point is 50Kohm and ends are 0 and 100Kohms.
One end of resistor is connected to +5V and other end connects to one
of the analog inputs of gameport. Typical gameport contains four anaog
and four digital
inputs. So you could connect two two-button joystics.
Old (Atari style?) digital joystics has one switch for each main direction
(up,down,left,right). Each switch connects one pin in gameport to ground
(GND). Without rewiring whole joystick you need something between your
joystic and PC. Here the following circuit comes to help us.
When digital joystick are in middle position J1-3 and J1-4 are floating. Current flows to J3-3 trough R1 and R2. So PC 'sees' about 50Kohm resistance. If joystick are turned to left J1-3 are shorted to ground. Q4 becomes active and PC founds about 100ohm resistance between +5V and J3-3. When turned to right current trough R3 flows to ground - not to PC. So gameport gets only the current from 100kohm resistor.
Similar circuit for up-down dircetion and buttons can be connected directly.
Jx-y markings in the picture (and text) means connector x and pin y. So J1/J2 is 9-pin D-connector and J3 is 15pin D-connector to PC gameport. All connectors are male. Above picture is part of circuit which can be found in PS format from here.
It might be good idea add a suitable cord between board an 15pin connector.
Here comes thumbnailed pictures of board and component assembly. I (still)
don't have a picture from my own construction but only I can say that it
works just fine!
R17 is only to protect against short circuit between +5V and GND in 9pin connectors. If your joystics don't need a +5V you could leave R17 out.
Any feedback, comments, questions are welcomed.