Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /storage/content/49/145849/famitracker.com/public_html/forum/classes/dbHandler.php on line 29
Am I right to say that as long as you keep the tempo setting at 150, and change the speed with sequences of F01-F14 commands, frames won't be skipped? Are there any other tempo settings besides 150 that are 'safe'?
Several years on the 2a03.org forums (which are down now), there was a discussion about tempo. I seem to remember people saying that in MCK, tempos like 90, 120, 150, and 180 were safe to use without skippage.
Hmm... This sounds like a good time for speed experiments in FamiTracker. I'm very sure that there will be other speeds that are safe (& judging by the looks of that pattern with MCK, they're all probably multiples of 30).
But I'll need to experiment for myself.
_______________________
Technology: the one thing that's hated & cursed at by all engineers, technologists, scientists & technicians!
A rational tempo does NOT mean that there are no frame skips. Rational tempi are designed such that the same set of Fxx settings repeats in all bars. That way frame skips occur at controllable rows instead of happening randomly. Rational tempi are used in many games, including Mega Man 3-6 and later titles.
Rational tempo should not be confused with pulsating tempo a.k.a. swing.
Speaking of 'safe' tempi, multiples of 30 are not the 'safest' ones. This is the correct formula of getting 'safe' tempi:
T = 15E(2^y) ÷ x
Where E is engine speed. x can be any positive integer and y can be any non-negative integer, as long as:
1) x and 2^y are coprime (their H.C.F. is 1);
2) [no. of rows per bar] is a multiple of 2^y; and
3) [no. of rows per bar] > 2^y < x.
As y goes higher, the tempo becomes more 'unsafe' and the pattern of Fxx setings will become more random.
A few exampes of safe tempi (from the 'safest' to the 'unsafest'):
900 ÷ 6 = 150
1800 ÷ 11 = 163.636363...
3600 ÷ 11 = 327.272727... (doubling)
7200 ÷ 27 = 266.666666...
Some exceptions: (I might explain them later)
135 (use in 3/4 time)
125 (use in 5/4 time)
Another way to see if frames will be skipped is to use this formula (for NTSC):
(150 * speed) / tempo,
if the result is an integer then all rows will have equal time period. Set tempo = 150 and the result for all speed numbers will be integers (naturally), and this is the reason no frames are skipped for any speed with that tempo. Other tempos can be used if the ratio is preserved, but the result will still be the same. (For example: multiply speed & tempo by 2/3: tempo = 100 & speed = 4 is fine but the result is the same as 150/6)
Assuming the PAL song does not use a custom engine speed, try this:
F03
---
F04
F03
---
F04
This gives you a tempo of 15 × 50 ÷ [(3 + 3 + 4) ÷ 3] = 225, that is, approximately 113 × 2.