After rigorous testing, I have come up with 18 unique wires, and the other 18 is shared.
So I guess I'll do 1 DB25 for each joystick/button player, which gives me (Left,Right,Up,Down, Start,Coin, GND, B1-8). 15 total.
.
I wanted to do DB9 for Optipac, (X1,X2,Y1,Y2,GND,+5,LB,RB) but I don't know if I can get each wire independent in a DB9 cable? Also I assume on the optipac it would be ok to share +5,GND, is this true?