Take the 2-minute tour ×
Arqade is a question and answer site for passionate videogamers on all platforms. It's 100% free, no registration required.

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?

share|improve this question
    
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
2  
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

2 Answers 2

up vote 15 down vote accepted

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

share|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

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.

share|improve this answer
    
Is your on-topic concern about the question or your answer? If it's the former, don't worry, it's on-topic. –  Grace Note Oct 18 '10 at 15:42
    
Yes, the question. Awesome, I wasn't 100% sure. –  lilserf Oct 18 '10 at 17:42

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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