PS/PS2

In wanting to stay as current as possible, we originally wanted to use PS2 Dual Shock controllers; however, we found that the PS2 Dual Shock is not hackable when interfacing with a P360. It took some time to figure this out, and we ended up using PS1 Dual Shock controllers instead. For your information, we will still detail the work we did with PS2 controller. You can jump directly to the information on the PS1 Dual Shock by clicking here.

According to our standard design, we had the same approach for the Playstation to transplant the PCB from the controller and into a project box. The PCB is then interfaced to a DB25, sealed in the box, and then some artwork is applied to finish the look.

PS2 Dual Shock

We purchased one of the newer PS2 Dual Shock pads (a emerald one) to work with as a prototype. As we discovered in opening some other controllers, Sony has changed the PCB of the PS2 Dual Shock quite a bit. The newest revisions looked easiest to solder, so we went with that. Here's a first revision PS2 Dual Shock PCB.

Here's a picture of the most recent revision PCB from the emerald controller. Notice the area where the buttons, d-pad, and common lines come through versus the previous picture. These straight-through pins are much easier to solder to than the surface mount connector used in previous iterations. Click below for a larger view.

The first action we took after opening the casing was to find power and ground for the P360 and to trace the 18 pins that lead to the controls through the ribbon connector. Note that the controller only gets 3.3v from the system. The P360 is rated for 5v. This is fine though as the stick will operate properly off 3.3v. Here's the pin out for the ribbon connector.

Pin Number

Connection

 

Pin Number

Connection

1

L2

 

10

Common across Start, Select, Analog

2

L1

 

11

Common to other buttons

3

Up

 

12

Black bar opposite side of 11

4

Left

 

13

Square

5

Down

 

14

X

6

Right

 

15

Circle

7

Select

 

16

Triangle

8

Analog

 

17

R1

9

Start

 

18

R2

Note that Start, Select, and Analog have a different common line than all the other buttons. The PS2 Dual Shock is entirely analog, except for these three buttons. They are digital in operation. We neglected to concern ourselves with this detail though and initially wired the controller to the arcade box with all buttons sharing the pin 11 common line.

After getting everything wired, we connected this prototype to the arcade box and then to our PS2. Upon starting up, everything looked fine. We started the PS2 without a game to test navigating the system menus. We tried the buttons first and everything was working like a champ. Triangle, Circle, Square, and X all did what we expected. When we hit Start, Select, or moved the P360 though, all kinds of actions took place sporadically.

We put in Guilty Gear X2 and started a versus match. Same craziness. It appeared that whenever we would hit Start, Select, or move the P360, the system responded like every button on the controller was pushed simultaneously. We looked everything over. Our solder points were perfect. The wiring was correct. Then we thought about that 2nd common line.

We rewired the connections so that Start and Select were on the correct common line that is independent from the rest of the buttons. We started up the PS2 again, and Start and Select now worked properly. The digital buttons had to be isolated from the analog to work. They have a different voltage operation. The P360 though was still having problems. Some time spent with a multimeter and testing proved why.

Just about every other controller used for hacking is digital. All buttons share the same common line which is 0v (ground). The data side carries 3v - 5v, and when a button is pushed, the line is driven to 0v. This is how the P360 operates as well. It takes the voltage supply and applies it normally to each direction. When you move the stick, it sends the line for that direction to 0v.

Now, the PS2 buttons and d-pad carry 2v normally. The common line that they share carries ~3v normally. Via testing, we found that when pushing and holding a button, for example Circle, the individual line for that button stays at 2v, but the individual lines for every other button drop by 0.14v. If we push and hold a second button in addition to Circle, the other lines drop by another 0.14v or 0.28v total. This happens again and again as you push and hold more buttons. The controller chip has to be constantly running analog-to-digital conversions on these lines to determine which buttons are pushed and to what degree.

When the P360 is moved, it doesn't hold the voltage for the chosen direction and drop the other lines, it drops the line of the direction(s) you push and entirely to 0v. Since the differential voltage is as large as possible, the controller chip gets totally confused and ends up responding like every button on the controller is pressed at the same time. In Guilty Gear X2, there is a special attack mode your fighter can enter by pressing Circle, Square, Triangle, and X together. This is the result that we received most often when moving the P360. It suggests that the controller chip is reading multiple buttons as being pressed. If we held or rolled the P360 across directions, the actions of the character would change suggesting that there is likely a race condition across the buttons at the controller chip for which it reads as pressed at any given sampling.

The result is that it is not possible to use a P360 with a PS2 Dual Shock controller. If you want to use a PS2 Dual Shock, you must use a standard microswitch joystick (like an Ultimate or a Competition) for everything to work together properly. With a microswitch joystick, the common line from the buttons will be shared properly to the joystick, and the voltage levels will drop incrementally and properly when a direction is pushed.

PS1 Dual Shock

After failing with using the PS2 controller, we changed to using a PS1 Dual Shock. Initially, we purchased a red colored controller. Upon opening it, we found the same controller design as the PS2 Dual Shock with the use of the plastic filament and general board layout. This controller though had the connector to the plastic of the surface mount variety found in the original PS2 controller pictured first. The traces on this connector are too small and difficult to solder. Taking a chance, we went back shopping and bought a standard, white PS1 Dual Shock.

Upon opening this controller, we found the type of design that made for easy hacking.

To prepare this board for soldering, we removed the shock motors first. We also cut off the two side boards used for the shoulder buttons. We didn't need them as we can solder to the points on the corners of the main board. As the button contacts are covered with a non-conductive black material, we can't solder directly without modification. Using an Xacto knife, we just scraped away the black coating. Under this is a silver coating that is conductive, but the solder flux still won't stick to it. Scraping a little harder reveals the copper contact underneath to which we can connect.

The next step had us soldering wires to the DB25 connector and then to the controller PCB. There are 14 wires for the d-pad, shoulder buttons, face buttons, Start, and Select. We needed one additional wire (pink) on the smaller PCB to provide the 3.3v to the Perfect 360 joystick. We also have two common lines. One for the buttons in our arcade stick and one for the P360. These are taken from the common contacts on the left and right d-pad directions (the orange and brown wires below).

Lastly, we applied some artwork to each box. You can refer to the Artwork section to see our process for doing this. We chose characters from Battle Arena Toshinden and Guilty Gear X2.

Playstation and Playstation 2 interfacing is complete. Now we can go play...
 

 


Created by Jaremy & Deanna. Please do not reuse or reproduce content located here without consent.