There are a few different ways to derive the Hz values for a controller. These methods are below, in order of increasing accuracy (and in order of decreasing accessibility).
The most primitive method we use to verify a turbo speed is counting the frames manually. This is the method that is used when verifying runs that use turbo. When approving a controller for use on the Allowed Controllers list, this method can be used, but there are faster and more accurate methods.
- Frame counting should follow the following formula (provided by magical):
number of frames counted÷video framerate(number of shots counted−1)
- The footage you are using to verify must be at least two times the fire rate you are counting, due to the Nyquist limit. Since the leaderboard cap is 13Hz, all runs should be verifiable with a 30fps sample.
Video framerate |
Nyquist limit |
30fps |
Up to 15Hz |
60fps |
Up to 30Hz |
- The longer the footage counted, the less the margin of error. Counting at least two seconds of continuous fire without gaps is recommended for deriving a reasonably accurate autofire rate.
- 3a. Since turbo missile weaving has been banned, turbo runs should not have any weaving fire.
- 3b. Make sure that the sample you're taking is actually of turbo fire instead of mashing fire. Though it may seem counterintuitive, turbo runners can also have the ability and incentive to mash for various reasons. Look for a near-perfect, even, steady stream of fire that isn't broken when the runner moves or aims.
Below is a list of places in runs where continuous non-weaving fire is incentivized:
- Shooting Corpius's stinger
- The door right before Cataris heat run
- The wall magnet dynamo room above the first Cataris charge beam button (runners typically rapid fire to clear out enemies here)
- The Chozo Robo fights in Burenia and Ferenia, if the runner chooses not to use Storm Missiles
- The Chozo Warrior fights in Elun, Ghavoran, Artaria, and Hanubia
- Beam fire during Raven Beak phase 2 if the runner has run out of missiles
- Raven Beak X in any category that skips Raven Beak
- Sustained beam fire used to determine when to wall clip in Any% Unrestricted
- Anywhere else you happen to spot continuous beam fire that looks "too consistent" to be mashing
Though Gold Skip incentivizes continuous non-weaving fire, it is awkward to take a sample here because of constantly changing camera angles.
You can connect your controller to a PC, bind the controller button you want to test to a key or mouse button and use a keypress / click tester to find out the Hz of a controller. This is more accurate than manually counting frames, but less accurate than automatically counting button presses on Switch hardware.
Console testing is the most accurate method. If you have a hacked Switch, you can use this Hz counter app provided by Arcanox to find out the Hz of a controller on an actual console.
[The program] takes the internal clock and measures the amount of time (in milliseconds) between button presses, with the "instantaneous" calculation simply being Hz = 1000 / dt
and the averages being Hz = (press_count / [average_window_seconds / 1000])
. - Arcanox