# Can input lag be modeled as a function of controller cable length for SNES?

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?

• 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. Aug 15 '16 at 11:40
• @Chenmunka Still, electrical current passes through copper at (around, for all practical purposes) the speed of light. Aug 15 '16 at 12:21
• Light speed should be something in the region of 30cm travelled per nanosecond. Oct 3 '18 at 8:15
• Grace Hopper discusses nanoseconds (Youtube) Oct 26 at 18:26

The possible signal lag introduced due to pure cable length is definitely negligible 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. Feb 8 '18 at 16:42
• From what I remember, the Super Famicom controller I bought off eBay (~3ft. cable) and the North American SNES controller I bought locally (~6ft. cable) are electrically identical, so there should be plenty of wiggle room. I don't have time to check right this minute but, from what I remember from adding some fresh graphite to the contacts on the rubber domes, the only components on the controller PCB are a connector (so the cable can be removed without desoldering) and one wide or two narrow shift registers, depending on the revision of the board. Oct 26 at 20:57
• I just opened up one of the "as is" SNES controllers I bough cheaply with the intent of fixing them (mainly chewed-on cables) and I wasn't quite right. There's one small, unmarked discrete component in addition to the shift register and the latching connector for the cable. As visible in the photo I took, it turned out to be one of the one-chip revisions. Oct 27 at 0:41
• For 'all practical purpose' the speed of electrical signals in copper is usually assumed to be 2/3 of c. Oct 28 at 10:40
• @ssokolow The unmarked discrete component is a supply voltage bypass capacitor. And while not discrete components, under the white silk screen material, between the connector and IC, there are three series resistors on the data lines made with the same resistive material as the contact pads. Oct 28 at 11:32

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? 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. 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? 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. 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? Aug 30 '16 at 4:57

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.

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? Aug 15 '16 at 14:36
• 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. Aug 15 '16 at 14:51
• @KenGober:You're right, I was oversimplifying. Aug 15 '16 at 15:02
• @ThePickleTickler: This is a good reference: amazon.co.uk/Electrical-Properties-Materials-Laszlo-Solymar/dp/… Aug 16 '16 at 12:35
• @Chenmunka thanks, that helped clear things up Aug 16 '16 at 17:51

[...] then started reading on different forums that increasing the length of your controller's cable can introduce a small amount of input lag.

While it's technically true that any added transmission distance adds lag, citing it for this case is bullshit of the know-it-all kind.

Can this lag (in milliseconds) be modeled as a function of cable length (in meters)?

Yes, except, with distances in meters the time unit will be nano seconds (ns). That's millionth of microsecond. So looking at the dimensions involved should already give a good hint how insignificant this is - at least for controllers.

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?

Signal speed is defined by the Velocity Factor of it's transport medium, a number between 0 and 1 to be multiplied with c, the speed of light.

Copper cables can provide factors between 0.5 and 0.95, although the later are exceptional odd constructions not really usable in most situations. It's all about the wire layout, material and insulation. An open air wire will rate better than a coax cable which in turn is better than a able used for controllers.

Average copper cabling used in electronics range around 0.7, so a signal in a copper cable will travel at ~70% of light speed or ~210,000 km/s.

For all 'practical purpose' using a factor of 2/3 is quite convenient considering that sped of light is 300,000 km/s. Using that and the power of the metric system gives the nice values of 20 cm/ns (*1) or 5 ns per meter.

Using this means a 2m cable, which should easy help to relax your arms will add 10 ns, ot 1/100,000 of a millisecond delay to your button press.

Bottom line: Yes, it's a delay, but absolute insignificant in relation to the several milliseconds your body already adds.

Now, being at this point of optimization, it may be way more interesting to see what influence the travel length of a button press has, or how much time it takes your skin to deform until it transfers enough pressure to make the button close a circuit ... a whole world of more or (usually) less useful optimizations opens :))

*1 - 8 inches per nano second or for the metrical challenged or 4.5 ns per tripple-foot, ofc, only when using certain shoes :)