Author Topic: Sega VirtuaStick Pro Joystick Renewal  (Read 6354 times)

Offline NFG

  • Runs the place
  • Administrator
  • ThrobbingMember
  • *****
  • Posts: 3385
    • NFGgames
Sega VirtuaStick Pro Joystick Renewal
« on: November 05, 2006, 01:36:33 PM »
As some of you may have read recently I've had a devil of a time making my JAMMA setup work after several years of neglect.  Turns out there were a few flaws with it, and some work needed to be done.  

One of the big issues was the controllers I'd use to play with.  It turned out, after some initial trials, that the painstakingly modified Saturn dual-joystick monster was not, in fact, MY modification.  it was modified by a Japanese dude who, I think, suffered from massive head trauma.

Rather than re-use a couple of NeoGeo joystick/pad cables, he took the PCBs from the original controllers and put them inside the Sega stick.  The Neo doesn't use any encoders, there's absolutely no reason to bring the original PCBs over, unless you're retarded.  They weren't even mounted properly, they just kinda rattled around inside.

Have a look at the original job:

Obviously this wouldn't do, so I removed the whole panel from the base, and chucked it away.  Next I dragged my modified panel out of storage.  It has the button PCBs (seen above) removed, and the buttons all replaced.  I wanted microswitch buttons, I like the feel of them more than the sloppy normal Japanese button style.  Unfortunately I could only get six, so there's a bit of a mix in there.  P1 buttons 4 and 8, and all of P2's buttons are normal, but the StreetFighter arrangement for P1 is all microswitches.

The first thing I did was wire up a ground loop, connecting all the grounds to each other:

There's no reason to be fancy with the wiring as I was here, it's just fun.

Both P1 and P2 ground wires were connected to the START button PCB in the middle of the stick, for wiring convenience.  I joined the two ground wires together in the middle, though in hindsight this might prevent the stick from being used on two consoles at once (Like that'd ever happen), so maybe it was better to leave them separate?

And here's the final wiring for P1.  Despite how messy the picture makes it look, the wiring's very clean.  Each wire runs up the centre and branches off to its respective destination.  There's enough slack in there that I can change the layout later if I need to.

A few notes:

I soldered the wires directly to the buttons rather than use connectors, for several reasons.  I don't expect to ever want to re-wire the stick, I've already made an external re-wiring box for use in projects demanding a different pinout, so rapid re-wiring wasn't an issue.  Using the 15-pin extension cables makes the job really easy, but the wires are very thin.  Soldering or crimping them to spade connectors, which can be moved around from button to button, doesn't work well,  the first time you try and pull one off the wires just tear right out or break off.  Screw it, this is permanent and reliable and takes only seconds to re-wire with a soldering iron if I really need to do it.

For a button layout I went with the ol' standby.  Honestly I dunno WTF I was thinking when I wrote and abandoned that page, it's pointless.  but if you examine the table at the tob, you'll see the pinout I used.  mostly.  Instead I went with this:


This preserves the NeoGeo layout (ABCD across the top) and the six-button Saturn layout (ABC/XYZ).  The Saturn doesn't use SELECT or D but it DOES use Left and Right.  When this stick is plugged into a JAMMA setup it uses the above, but when plugged into a Saturn adaptor, it uses:


The pinouts on the Neo connector are:

1 - common/ground
2 - X
3 - Select
4 - D
5 - B
6 - Right
7 - Down
8 - Not connected
9 - Y
10 - Z
11 - Start
12 - C
13 - A
14 - Left
15 - Up

Note how cleverly I avoided pin 8, which is +5V on the Neo.  If I had used this pin and pressed the button connected to it while plugged into a Neo I'd have blown its fuse or ruined the system.

But I'd never fry anything...
« Last Edit: November 05, 2006, 01:55:19 PM by Lawrence »