4

I am curious as to how only 2 wires (perhaps 3 or 4) inside a N64 or Wii gamepad are able to send the many signals of the different inputs at once.

It used to be that for just one ON/OFF input, we needed two wires. So why does it not take dozens of wires for the many inputs on a modern gamepad?

  • How many can or how many are? These are very different questions. – tzenes Oct 18 '10 at 15:33
  • @tzenes The title is "How the many [...]", implying this is less about quantity and more about how it is able to do it all with only two wires. – Grace Note Oct 18 '10 at 15:38
  • @Grace it is awkward phrasing so I wanted clarification. – tzenes Oct 18 '10 at 15:41
  • 3
    My digital TV arrives as a coaxial cable that has two wires, that carries a massive amount more info than a joystick's ever going to send! – GAThrawn Oct 18 '10 at 15:58
  • Though @tzenes' answer about what encodings the N64 uses for its buttons is interesting, it does not really answer the question, which seems to be How does multiplexing work?. This question is outside the scope of this site, and should probably be closed. – BlueRaja - Danny Pflughoeft Oct 18 '10 at 18:34
16

So the Wii Joystick uses a Blue Tooth interface which is a little different than the N64 controller. As a result this answer deals more with the latter than the former.


The N64 controller uses a single transmission wire on which it encodes bits to send signals back to the N64 console. To accomplish this bits are encoded on that wire as follows:

alt text

This encoding can then be used to multiplex the connection and allow 32 bit communication. In the case of the N64 controller these bits are encoded thus:

0   A
1   B
2   Z
3   Start
4   Directional Up
5   Directional Down
6   Directional Left
7   Directional Right
8   unknown (always 0)
9   unknown (always 0)
10  L
11  R
12  C Up
13  C Down
14  C Left
15  C Right

With the remaining 16 bits being used for the Analog Joystick (providing 8 degrees of control).

More over, certain codes are transmitted for specialized function:

To Init: send 03 80 01 followed by 34 80's
To Start Rumble: 03 c0 1b followed by 32 01's
To Stop Rumble: 03 c0 1b followed by 32 00's

You can find more information in this vein here

| improve this answer | |
  • TL;DR version: serial communication – alexanderpas Dec 2 '10 at 5:57
  • the wii is not very different, it still uses packages of data. – alexanderpas Dec 2 '10 at 5:59
  • @alexanderpas - One could even argue that the Wii Classic Controller connects to the Wii Mote using a Serial type connector which communicates over a serial communication standard then transmited over Blue Tooth – Ramhound Sep 21 '12 at 15:21
  • oh if it uses bits... then 8 bits will allow 256 different signals... 16 bits will allow 65536... I just didn't think that the controller is able to communicate using digital signal – nonopolarity Feb 17 at 7:20
2

I'm not sure if this is on-topic or not, but digital devices like joysticks send a digital signal by constantly changing the voltage in the wire from ON (usually 5V) to OFF and back at a certain time interval.

A sequence of on/off values like this is interpreted as a bunch of bytes which have some kind of meaning to the device. For instance (totally invented example), pressing A might send "off off off off on on on on", which is the number 15 in binary. The console would know that "15" is a code meaning "A button was pressed".

This all happens so fast that it seems instantaneous.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.