User Tools

Site Tools


Analogue Dual Shock 2 Controller in Red LED analogue mode (attached to a PS2)

Bytes 1 to 9 (except ID byte 2 (0X79)) are the same as on a PS1 analogue controller.

Byte Command Data (HEX)Bit 0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7
1 0x01 0xFF 1 1 1 1 1 1 1 1
2 0x42 0x79 1 0 0 1 1 1 1 0
3 0x00 0x5A 0 1 0 1 1 0 1 0
4 RH motor Select R3 L3 Start
5 LH motor L2 R2 L1 R1 O X
6 0x00 Right Joystick 0x00=Left 0x80=Centre 0xFF=Right
7 0x00 Right Joystick 0x00=Up 0x80=Centre 0xFF=Down
8 0x00 Left Joystick 0x00=Left 0x80=Centre 0xFF=Right
9 0x00 Left Joystick 0x00=Up 0x80=Centre 0xFF=Down
10 0x00 → 0x00=Off 0xFF=On
11 0x00 ← 0x00=Off 0xFF=On
12 0x00 ↑ 0x00=Off 0xFF=On
13 0x00 ↓ 0x00=Off 0xFF=On
14 0x00 ∆ 0x00=Off 0xFF=On
15 0x00 O 0x00=Off 0xFF=On
16 0x00 X 0x00=Off 0xFF=On
17 0x00  0x00=Off 0xFF=On
18 0x00 L1 0x00=Off 0xFF=On
19 0x00 R1 0x00=Off 0xFF=On
20 0x00 L2 0x00=Off 0xFF=On
21 0x00 R2 0x00=Off 0xFF=On

When pressing the analogue buttons (bytes ten to twenty one), the readout appears in two places in the signal, once in byte four or five with a digital output, and once in its respective byte with an eight bit analogue output. As the button is pressed slowly, the digital bit changes from 1 to 0 first, then the analogue starts to change from 0x00 to 0xFF. There is a point when the digital outputs reads 0 (on), and the analogue outputs read 0x00 (off). For menus and set up screens the digital signal is read by the PlayStation, and for control during game play the analogue signal is used. As the digital comes on first, if it were not overridden during game play it would mean as soon as you press the button a bit it would be fully on and mess up the analogue signal making it useless.

Analogue controller (Duel Shock 2) The Duel Shock 2 controller is the standard controller for the PlayStation 2. It at first appears to be the same as the previous analogue controller, but in fact all the function buttons except the start, select and R3 and L3 buttons have analogue capability. This system means the more you press them, the faster you go, or the more you turn in the game. They work by having a strip of resistive material on the base, for the keypad shown here in red. There is then a rounded pad on the rubber part of the pad that presses on this resistive strip. This low resistance pad contacts a portion of the resistive strip creating a second parallel resistance lowering the strips overall resistance. The harder you press the button the more the rounded conductive pad deforms and so a greater area becomes in contact lowering the overall resistance further. The variable resistance changes a voltage supplied to the encoder chip, which turns the analogue signal into an eight-bit (256 step) binary code.

This system of full analogue control gives extra functionality and better game play, but could lead to extra stress being put on the controller. As there are performance benefits for pressing harder, people will do so. This may lead to premature aging of the buttons and housings and maybe even eventually failure.

The sort of precision offered seems total overkill for a push button with such small displacement. A four-bit (sixteen step) analogue to digital (A to D) conversion would be quite sufficient and take up half the serial transmission space. One of the other strange things about the analogue system used is that the left and right direction buttons have twice the precision of the joystick controls in which left and right share one eight bit number between them (127 decimal or 80 in hex being the centre position), and the direction buttons each have a value of between 0 (off) and 255(on).

controls/playstation2_controller.txt · Last modified: 2019/08/27 20:45 (external edit)