While playing on my SNES, I almost yanked my controller out of my console due to the cable being so short. I went on Amazon to buy a cable extender, and then started reading on different forums that increasing the length of your controller's cable can introduce a small amount of input lag.

Can this lag (in milliseconds) be modeled as a function of cable length (in meters)? If I have a cable that is x meters long, can I predict with reasonable suspicion that the input lag will be y milliseconds? If so, what is this equation/relationship?

  • 3
    Unless there's something I'm missing, the signal rate of the SNES controller is so low that latency is determined by the speed of light in copper, in which case you're looking at about 0.000001 milliseconds of latency per meter of cable. – Mark Aug 15 '16 at 9:06
  • Copper isn't transparent. Light doesn't pass through it. – Chenmunka Aug 15 '16 at 11:40
  • 2
    @Chenmunka Still, electrical current passes through copper at (around, for all practical purposes) the speed of light. – tofro Aug 15 '16 at 12:21
  • 1
    Light speed should be something in the region of 30cm travelled per nanosecond. – PaulHK Oct 3 '18 at 8:15

The possible signal lag introduced due to pure cable length is definitely neglectible due to the signals travelling at (close to, for any practical purposes) the speed of light through the cable.

What can possibly happen though, and is a much more important practical problem on digital signal lines are problems due to

  • Changed input impedance of the line leading to improper termination
  • Signal reflection at the line ends leading to a partial cancellation of the signals with the reflected signal
  • And the same (partial reflection / cancellation of the signals) can happen at the connection between the actual line and the cable extension.

Digital signal lines are normally (don't know if it's the case in the SNES controllers) terminated with a resistor that aligns with the cable impedance (which is mainly determined by the length of wire) to cancel out signal reflection. Playing around with the values of the line termination resistors or a slight change of the cable length can help a lot, should you experience problems.

  • I don't have a schematic to hand but I very much doubt the signal lines in the NES controller cable are terminated in any way. – Peter Green Feb 8 '18 at 16:42

The way the NES and SNES controllers work is that the console sends a signal instructing the controller to remember the current state of the buttons. Then it reads the button values out.

So increasing the delay in the cable would actually reduce the average input lag (up to the point where things break) by reading the buttons slightly later (and then processing the results at the same time).

The difference will be negligable though. Things are likely to stop working completely before you see any perceptable difference in input lag.


An electrical signal travels through a wire at about 95% of the speed of light, and for most purposes you can approximate it as one nanosecond per foot. So, a 10-foot extension will add 10 nanoseconds of delay (0.00000001 milliseconds).

I wouldn't worry about it.

  • Does the reduced signal quality of the longer cable cause anything that resembles a delay in registering button presses? – snips-n-snails Aug 15 '16 at 15:54
  • @traal no. If it works at all, it will work at the same "speed". Either the bits get shifted in or they don't. – hobbs Aug 29 '16 at 19:20
  • @hobbs So it's not like if you hold the button down long enough on a marginal cable it will eventually get registered? It either registers right away or not at all? – snips-n-snails Aug 29 '16 at 21:50
  • @traal if a cable was really just on the edge, buttons would likely randomly register or not on each frame. It's not like there are press/release "events" getting sent down the cable; the current state (one bit per button, eight bits for the entire pad) is transmitted each time the game reads the controller, usually once per frame. – hobbs Aug 29 '16 at 21:59
  • @hobbs You said the current state of the buttons is transmitted once per frame, and you also said whether they register or not on a marginal cable is random. This means that if you hold down a button, you must wait a random number of frames until it's acknowledged. What am I missing? – snips-n-snails Aug 30 '16 at 4:57

There are too many variables to give an accurate model in a domestic setting.

The time taken for a signal to pass through a copper wire is dependent upon the rate of propagation of electrons through the conduction band of the copper crystal structure.

This rate is affected by various factors including temperature and grain boundaries. This actually changes (a very small amount) through dislocation generation caused by twisting and untwisting the cable (Copper has a Face-Centred Cubic structure).

Yes there will be a delay introduced by lengthening the cable, there are many real-world uses where cable lengths are deliberately adjusted to synchronize pulses. e.g. Athletic event starting blocks and demolition explosive detonation. However, the delay will be miniscule, probably undetectable in play and impossible to model.

  • Do you think you could find a source so I could continue reading about this? – wcarhart Aug 15 '16 at 14:36
  • 2
    the rate at which a signal moves through a wire is not the same as the rate at which electrons move through a wire. signal propagation depends more on how fast electric fields travel through wires, rather than how fast individual electrons move. – Ken Gober Aug 15 '16 at 14:51
  • @KenGober:You're right, I was oversimplifying. – Chenmunka Aug 15 '16 at 15:02
  • 1
    @ThePickleTickler: This is a good reference: amazon.co.uk/Electrical-Properties-Materials-Laszlo-Solymar/dp/… – Chenmunka Aug 16 '16 at 12:35
  • @Chenmunka thanks, that helped clear things up – wcarhart Aug 16 '16 at 17:51

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.