User Tools

Site Tools


controls:playstation_controller

Differences

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

Link to this comparison view

Next revision
Previous revision
controls:playstation_controller [2006/01/13 04:36] – created 195.149.50.76controls:playstation_controller [2019/08/27 20:45] (current) – external edit 127.0.0.1
Line 24: Line 24:
 |9|ACK|To PSX| This signal should go low for at least one clock period after each 8 bits are sent and ATT is still held low. If the ACK signal does not go low within about 60 us the PSX will then start interogating other devices.| |9|ACK|To PSX| This signal should go low for at least one clock period after each 8 bits are sent and ATT is still held low. If the ACK signal does not go low within about 60 us the PSX will then start interogating other devices.|
  
-It should also be noted that this is a bus of sorts. This means that the wires are all tied together (except select which is seperate for each device). For the CLK, ATT, and CMD pins this does not matter as the PSX is always the originator. The DATA and ACK pins however can be driven from any one of four devices. To avoid contentions on these lines they are open collectors and can only be driven low.+It should also be noted that this is a bus of sorts. This means that the wires are all tied together except for the select lines which are unique for each of the two ports (though select lines are shared between the controller and memory card within each port). For the CLK, ATT, and CMD pins this does not matter as the PSX is always the originator. The DATA and ACK pins however can be driven from any one of four devices. To avoid contentions on these lines they are open collectors and can only be driven low.
  
 === Playstation Controller Signals === === Playstation Controller Signals ===
Line 146: Line 146:
  
 This page substantially based on Andrew J McCubbin's page which has since disappeared from the net. This page substantially based on Andrew J McCubbin's page which has since disappeared from the net.
 +
 +
 +=== Notes on Playstation Controller Commands ===
 +
 +Commands sent by the PlayStation (within the first five bytes of a packet) tell the controller how it should be configured, and what data it should respond with. Because each controller port also shares its ATT/Select line with the memory card of the same port, commands at the beginning of each packet specify which device the console is addressing. Packets beginning with 0x01 address the controllers, while packets beginning with 0x81 address memory cards. It is important that controllers not respond to or acknowledge packets which begin with 0x81, otherwise conflicts will occur with memory cards on the same port.
 +
 +|COMM Byte 1||
 +|0x01|console is addressing controller on port with ATT line driven low|
 +|0x81|console is addressing memory card on port with ATT line driven low|
 +|COMM Byte 2||
 +|0x42|main polling command, used to get button/joystick data from controller|
 +|0x43|enter/exit config mode|
 +|0x44|switch between analog/digital modes and lock/unlock controller in specified mode|
 +|0x45|command to retrieve status/ID info from controller|
 +|0x46|command to retrieve 10 bytes of ID/unknown data from controller over two packets|
 +|0x47|command to retrieve 5 bytes of ID/unknown data from controller|
 +|0x4C|command to retrieve 10 bytes of ID/unknown data from controller over two packets|
 +|0x4D|maps rumble motor commands to command bytes 3 and 4 in 0x42 polling packet|
 +|COMM Byte 3||
 +|0x00|always empty|
 +
controls/playstation_controller.txt · Last modified: 2019/08/27 20:45 by 127.0.0.1