As the topic says!
Question on this.
How does the PS tell what it's got connected to it?
Does each device i.e. arcade stick, mouse, Dual Shock, digital controller, have its own ident programmed on its chip so that it idents itself to the machine, or does it work by something else like voltage sent governed by the wiring inside the controller?
Example: If I had a broken PS arcade stick and took the chip out of a normal dual shock controller and replaced the dead one in the stick, would the PS think I just have a dual shock connected, or do physical electronics inside the stick govern what the PS 'knows'?
Does it have to do with pin 8, which isn't connected in a normal hand-held controller?
The playstation has a complicated discussion with the controller when it's initialized, including the number of buttons, the number of motors/vibrators (it can support up to 100!) and the max number of motors that can run at the same time.
I don't think these communications are mandatory, since cheap 3rd-party knockoff controllers work and I've seen rudimentary code on home-made pads work as well.
Right, so it's to do with what's programmed on the chip as opposed to something like sending a specific voltage on a certain pin or having wires hooked up internally to the controller's chip?
Any idea what pin 8 is for when it is used then?
Will the system get upset if it doesn't find what it expects, i.e. if the chip tells the PlayStation it's expecting a dual shock but the chip doesn't receive a voltage from pin 3 of the PS end will it carry on regardless? It's unlikely, as you say the conversation's not mandatory, but Sony's products are shit so I wouldn't put it past them.
Does the PS only initialise a controller upon insertion and hence detection, or does it poll the controller every cycle for that information? Because it's obviously possible to swap controllers mid-play. Does the PS take into account the missing controller then re-intialise (to reset analogues etc) and at the same time ask it what it is all over again?
I'm expecting "yes, no, no, yes" in that order.
From memory, the PS/PS2 expects the controller to return an identifier code whilst it sends a command. That makes this code mandatory.
QuoteWhen the PSX wants to read information from a controller it pulls that devices ATT line low and issues a start command (0�01). The Controller will then reply with its ID (0�41=Digital, 0�23=NegCon, 0�73=Analogue Red LED, 0�53=Analogue Green LED, 0x12=Mouse).
The ID provides information on how the PS/PS2 is to handle the information returned by the controller. Different ID controllers return different information in different places.
In terms of "Sony's products are shit", I'd disagree in this circumstance. The serial bus used by the PS/PS2 is well thought out.
Pin 8 is not used for controllers.
Pin 3 is simply a supply voltage line that's used to drive the motors in a dual shock controller. Leaving pin 3 of the PS/PS2 connector off means there's no power for motor functions. If you connect a dual shock controller with pin 3 missing, it will work, but when the controller attempts to activate the motors, it won't be able to.
The PS/PS2 polls the controllers at regular intervals. Failure of a bus handshake is used to indicate the controller has been removed, so the PS/PS2 knows to start from scratch next time a controller is present.