Actually, gentlemen, I could do with some input.
While on the subject of speed tables, I have a quandary. As far as I know there are only two methods of doing "tempo" on a fixed refresh rate system (i.e. NTSC being 60fps, constantly).
Method one is using a frame counter. So your "tempo" is the number of frames in between each tick.
Method two utilises arithmetic overflow. You keep adding the "tempo" setting to an internal counter. When the resulting number exceeds 256 (8 bits), the carry flag is set. This is when you do your next tick.
Method one offers the most stable timing as it's always based on a factor of 60fps e.g. a "tempo" of 3 would have a delay of 180 frames between each tick. However, this means that you have little in the way of tempo resolution as the smallest difference between one tempo and the next is 60 frames.
Method two offers you more resolution (I won't get into why) but is less stable because, depending on the speed, every X ticks, it will miss an update. This shows up as tiny fluctuations in your song tempo.
So the question is, which one to use for NTRQ? You've all probably more experience of trackers than me so I'd value any input.
Dare I say I've thought of a way of maybe having both. Maybe... but forget I said that for the time being
(Oh, alternatively, if any of you are programming-minded, is there a better way of doing method 2? I've heard some people doing the same thing but with a 16-bit counter instead but I can't see how this would improve the stability?)