~ :: 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...
|