Introduction: Modify PSX Controller for Vectrex Games Console
Brief pictorial showing how a cheap Playstation type controller might be modified to work with the GCE Vectrex console.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: The Controller...
Wanting to preserve my original, and probably quite rare Vectrex controller, I decided I needed something to replace it. Preferably a pair of controllers, so I can play the huge number of 2-player Vectrex games out there. The thought had occured to me to make a pair of copies of the original, as it's a really basic design, but I guessed there might be an easier way.
The requrements are four push-buttons and an analogue stick. I found a pair of these USB Playstation-style controllers and as they were cheap, bought them on spec.
I'm not the first to do this mod. It's convered a couple of times elsewhere on the 'net, either by buying a black box (just plug and play), or by hacking up a little analog circuit to do the job. Here, I'll do the conversion with as few extra components as possible.
Turns out, the pack I purchased contained a pair of 'real' fake PSX controllers with the cables siamesed together into a single USB adapter box, inside which turns out to be a 'glop-top', presumably an ASIC dedicated for the task.
Step 2: Buttons
First thing to address is the button order. The buttons on these controllers are numbered, just like the original Vectrex. However, the numbering is not quite right. Most Vectrex games use button 4 for the fire button (or whatever is most used), and 3, 2 and 1 become the secondary buttons (as far as I know anyway).
As you can see in the pic, buttons 2 and 3 are in the prime locations on the PSX controller. I decided to swap 2 and 4 over to make the order a bit more suited to the Vectrex. This entails opening up the controller by removing the 6 screws form the back.
Inside, there is one more screw holding down the board with the analogue sticks, and LED. Remove this and the board flips over on it's ribbon cable. The main board now just lifts out revealing the rubber contacts behind the buttons.
Each button has a different pattern of tabs at it's base. Luckily button 2 will drop straight into hole 4. However, one of the tabs must be removed from butotn 4, and one other files down to make it fit in the remaining hole. The plastic is very soft and can be easily nibbled away with a pair of wire cutters.
Step 3: Plug
The Vectrex uses a long-reach 9 way D-type socket which is moulded onto the end of the controller lead. Apparently, Sega Megadrive/Genesis extnesion cables can be made to fit the Vectrex with a bit of trimming, but as I didn't have any to hand, I bought 9-way chassis sockets instead. These are cable-mounting, not PCB types.
First, I drilled out the rivets and carefully separated the metal halves. The plastic inside is no longer held in place, so to avoid all the contacts falling out, I stuck the two parts together with some contact glue.
Next I cut the cable just before the USB adapter box and removed a couple of centimetres of outer cover, exposing the coloured wires. PSX controllers only have eight wires, whereas the Vectrex needs nine. My workaround is detailed in the next step, so for now solder one wire to each pin, except pin 8. Doesn't matter which colour goes to which pin, as the controller will be stripped down anyway. I've stuck to the resistor colour codes here. Remember to note down which colour goes to which pin for later.
The spare pin (8) can be used to make a strain relief. Solder a short piece of stout copper wire to it and twist the other end tightly around the cable outer to hold it rigidly. Put some hot-glue over the back of the pins and the strain releif to hold it all together.
Lastly, I smothered silicone sealant over the whole lot to hide the wiring. Apply the silicone a bit at a time and use a wet finger to work it into shape. Leave it overnight in a warm place to set.
Step 4: Modifying 1
Moving back to the controller, desolder all the cables and separate the PCBs. There are four - one is the main board with the joypad contacts, one for the two joysticks and two small ones for the shoulder buttons. It's probably best to avoid touching the silvered contacts and finger grease might adversely affect the buttons.
The main board has another 'glop-top' IC on it meant for interfacing all the buttons and analogue controls to a Playstation. This needs to be disabled to avoid it possibly interfering with the Vectrex.
The Vectrex supplies three voltages for powering the controller: +5V, -5V and 0V (ground). The +/-5V rails are for the analogue controls, and the ground is for the four buttons. As we only had eight wires in the PSX cable, we omitted ground, so a virtual ground has to be created at this end. This is done with an 'emitter follower' circuit.
As the Vectrex 'pulls-up' on its digital button inputs, we need a PNP transistor for this. A pair of 4K7 resistors is used to form a potential divider between the +5V and -5V rails. This feeds the base of the transistor. The collector connects directly to the -5V rail and the emitter is loaded with another resistor. You could put the LED in series with the emitter if you prefer, though the resistor will need to be reduced to get enough current flowing to light it.
The emitter now also connects to the common for the numbered buttons (the ground plane in the original curcuit), and the four button wires (pins 1 to 4 in the 9-way connector) connect directly to the respective pads.
Step 5: Modifying 2
The Vectrex has two analogue inputs representing the horizontal and vertical motion of the joystick. These expect to see between -3 and +3 volts, depending on the position of the stick. When the stick is pushed left, pin 5 reads -3V, and when pushed right, pin 5 reads +3V. Pin 6 is the vertical pot, and is negative when the sitck is down and positive when the stick is up. When the stick is released, it springs to the centre and both voltages are approximately zero.
As luck would have it, the potentiometers used in the PSX joysticks are a pretty close match for the original Vectrex ones. The resistance of the linear track is 9.4k ohms, and the wiper moves over the whole of this range as the stick is moved from one side to the other, much the same as the original.
Unfortunately, the Y-track is connected the opposite way round to what the Vectrex expects. The PCB traces need to be cut and rewired to accommodate this.
I used the left hand stick for both X and Y directions, leaving the right hand one disconnected. To get the desired voltage range of -3 to +3 volts, resistors of about 3k ohms need to be added to each of the track ends. I used surface mount resistors which I soldered directly to the PCB by using a pen-knife to scrape a bit of the green solder resist off in the area i wanted to place it. This method is quite fiddly and time-consuming, so wiring in ordinary resistors might be easier.
I also wanted to have the option of using the D-pad. To avoid having a switch, I wired it in parallel with the potentiometers and used resistors to limit the current it bleeds in. (See circuit diagram.) 4.7k ohm resistors between the D-pad contacts and the voltage rails will result in about +/-3 volts at the Vectrex input when the pad is pressed and the stick is centered. The Vectrex won't be harmed if the analogue inputs go beyond this range, so there's no need to switch out the joystick wipers.
Lastly, there is a puch switch under each joystick in the PSX. Rather than waste this, I decided to wire it in parallel with button 4 on the main board. Never found I actually used it though, so don't know if it's really worthwhile.
Step 6: Finally...
Once all eight wires have been soldered ti the respective pads and everything looks okay, use a multimeter to test all the pins for continuity. Make sure none of the rails are shorted together.
If possible connect a 10-15V supply between pins 7 and 9 (pin 9 is negative!) and check the voltages present on pins 5 and 6 as you move the joystick around or push the D-pad.
Check the voltage on each of pins 1 to 4 is around 5V above pin 9 when the respective button is pressed. (When each button is released, its pin just floats.)
When you are satisfied all is correct, plug into your Vectrex and enjoy. I found the PSX controller to be much easier and more confortable to use than the original controller, allowing far more rapid firing. I easily got to the end of MineStorm the first time I tried it out.
1 Person Made This Project!
- JamesR334 made it!