TIMING COMES FROM THE MUSIC
Parts do not wait for a number of frames. They ask the music where it is, through a resident interrupt server on int 0FCh:
dis_sync() which section of the song we have reached dis_musrow() the row playing in the current pattern dis_musplus() signed distance to the nearest sync marker dis_getmframe() a counter fed by the same interrupt chain
The +++ entries in the order list are ordinary Scream Tracker “skip this order” markers (order byte 254) that Future Crew repurposed as beacons. dis_musplus() returns a signed distance to one, so a part can say “wait until fifteen rows before the next marker” and land on a musical moment exactly.
The port models each of these against the real S3M, so a gate fires at the same musical position it did in 1993 — and where a live position is available from the audio engine, it uses that in preference to any simulation.
One caveat worth stating: dis_getmframe() is fed by an interrupt, and under heavy per-pixel load the handler misses ticks, so it runs slower than the vertical refresh. Parts that gate on it are calibrated to its real rate rather than to a nominal 70 Hz.