Most older consoles hold the controller pins high and the controller simply pulls them low when activated, the O2 is no exception. However, a genesis controller drives both high and low voltages. This is not usually a problem, but with the O2, the high level is about 1v, not the 5v the gen controller is trying to force.
I didn't want to overdrive my O2 controller ports, so came up with this circuit instead. It uses just 3 LM339 comparator ICs, two dsub9 male jacks and 1k resistors. All three parts should be available at Radio Shack.
Assemply Notes:
1. If you only want to use 2600 joysticks, you don't need all this,
just swap the connections around
2. If you want to support both genesis and 2600 sticks, all the
genesis signals below will need pullup resistors to 5v
(anything 1k to 10k should be fine)
3. Deathskull Labs Archive has pinouts for all this.
4. Mount the jacks on the side or front, if they're on the back,
you won't be able to plug in a voice adapter.
5. Also tie genesis pins 5 and 7 to 5v, 8 to ground.
6. The 2.5v is made by dividing the 5v with two equal resistors.
7. The signals are labeled with names below, not pin numbers because
it's easier to just check things with a meter as you wire it up.
(example: the wire that goes low when you push the 02 controller
north is the one you match to the wire that goes low when you
push the gen controller north)
+---+--+---+
02_east__1OUT |1 +--+ 14| 3OUT______O2_north
02_west__2OUT |2 13| 4OUT______O2_south
5v________VCC |3 12| GND_______gnd
2.5v_____-2In |4 LM339 11| +4In______g_south
g_west___+2In |5 10| -4In______2.5v
2.5v_____-1In |6 9| +3In______g_north
g_east___+1In |7 8| -3In______2.5v
+----------+
IC1
IC2 is a repeat of above for player 2 signals
+---+--+---+
1OUT |1 +--+ 14| 3OUT______O2_player1_fire
2OUT |2 13| 4OUT______O2_player2_fire
5v________VCC |3 12| GND_______gnd
-2In |4 LM339 11| +4In______g_player2_b_button
+2In |5 10| -4In______2.5v
-1In |6 9| +3In______g_player1_b_button
+1In |7 8| -3In______2.5v
+----------+
IC3