furrykef wrote:
He's right, actually; the NSF spec on the wiki says, "A play routine should normally finish with an RTS instruction, but is not required to do so. A non-returning play will cause problems for NSF players that use the same CPU to control the user interface and to run the NSF, such as NSF players that run on an NES. It is strongly recommended to return every few frames if at all possible, such as when no PCM is playing. If play takes longer to finish than the specified interval, that interval may be skipped and play may not be called again until the next one."
It's probably not relevant for emulators, though.
Most NSF players are germane to a non-returning play, including the PowerPak. The TNS player might have a problem with it; I know it uses NMI to drive the PLAY routine, but I'm not sure if it prevents re-entrant NMI. It's a commonly used technique, popularly employed by SuperNSF and a few other NSF engines, so it's widely supported. Actually, I should probably add a note about this in the wiki.
At any rate, that issue is totally irrelevant to whatever sound problem Dwedit was having. NSFPlay has no problem with non-returning PLAY, and neither does any emulator in which this NSF worked.