~ :: bugs! :: ~

The NES's hardware has a bug, or a design feature, or whatever you would call it, involving writing the high-byte of the frequency. What happens, is that if a vibrato or a portamento affects the highest 3 bits of the frequency, the channel's phase counter will reset itself, therefore the sound will snap, crackle, and pop. So basically what you do to work around this is not use vibratos on some notes, and remember that it will kinda pop if you do portamentos on some notes. One game where this is noticeable is Crash 'n the Boys by Technos. If you have the cartridge, listen to the .NSF first, then play the game on NES and hear the difference. Also, the title screen music of Demon Sword uses this feature to a rather nice effect!

Damian Yerrick looked into the matter, and sent me (Memblers) this:

A-3 A-2 A-1 F-1 D-1 B-0 -- Those are approximately the notes where the NES switches the high byte.

Changing the duty cycle of instrument $0E will cause a crash when you play the song. Leave it at $00, or save your song often.

Setting the xx value of "Set speed" command (Fxx) to $00 will put the NT2 playback in a permanent lock. It's a legitimate value for the NT2 replay code, indeed (as its main use is to set the frame countdown to infinity -- in other words, halting further playback), and is often used to end a song without looping. But unfortunately in the program, there's no way to set playback to a normal speed again after it's set to $00.

If you accidentally set off command F00 & halt playback (especially prone to this mistake if you're trying to input speed-swings while composing your track), the best bet is to just correct/omit the command, save your work, quit & restart NT2 (to reset the speed tick counter back to default $06), load up the track again, and resume work as usual.

For command Dxx (Pattern Break), please avoid using any value other than $00. Otherwise, the current replay code will exhibit abnormal playback once it hits the command.

When you track your music, make sure to always input a note / note-off command on the beginning of each pattern for the 1st squarewave. If not, a compiled NSF will exhibit undesireable audio output once a suspect pattern is played.

Inputting ANY command in the DPCM track will do nothing, in both the tracker & the replay code. Sorry, even global variable commands such as commands Dxx or Fxx in the DPCM track will be ignored, too. (Note: An exception is the note-off command. It works in the replay code but not in the tracker.)

Return to tips menu...