From Famitracker Wiki
Fxx - speed/tempo. Sets the speed when xx is between 00 - 14, and tempo when xx is between 15 - FF.
FamiTracker and tempo
FamiTracker calculates actual tempo using the following formula: (150 * speed) / 6. One BPM represents 4 rows.
The NES runs at a clock speed of 60Hz (NTSC) or 50Hz (PAL). This affects the video refresh rate, but more importantly in our case, it determines how fast the audio engine runs. Changes can only be made to the audio engine every 60th (or 50th) of a second.
- Note: The calculations which follow assume the default NTSC clock speed (60Hz) is used.
When the tempo is set 150 bpm, the "speed" values basically indicates how many "frames" (or updates to the audio engine) happen during one row. The "default" tempo is 150 bpm, because 60hz framerate = 3600 frames per minute, and (3600 f/min) / (6 f/row * 4 row/beat) = 150 beat/min.
Other tempo values mean different frame/row values.
Problems may begin to appear when using tempo values that correspond to a number of frames per row in between two whole numbers of frames per row (e.g. 6 and 7, as is the case when using a tempo between 128 bpm and 150 bpm), in which case you get alternating rows of 6 and 7 frames (and it's difficult to predict which is going to be on any given row). The effect of this is that you hear slight unevenness in the tempo. This is especially noticeable when using single-row echo or fast arpeggios (using either instrument-defined arps or the 0xx effect).
Using tempo values outside the "integral" values
Ideally, the "tempo" value should always be 150, and tempo should be set using "speed" or the Fxx effect. However, this does results in a narrow selection of tempi. One way around this is to alternate between two adjacent values of Fxx every row, every 2 rows or even putting 2 spaces in between first and second occurence of Fxx, then immediately going back to the first one. This way you can achieve a wider ranges of tempi while preserving evenness in the tempo.
Another option is, of course, to use a user-defined clock speed, but then you have to modify the calculations above to determine which tempi are acceptable under which clock speeds. One drawback of this method, though, is that few NSF players support custom clock speeds, so NSF export is compromised.