User Tools

Site Tools


controls:playstation2_controller

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

controls:playstation2_controller [2006/03/15 22:38] – created 62.254.0.57controls:playstation2_controller [2019/08/27 20:45] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +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).