Page 1 of 1

pulse sweep unit behavior when unused?

Posted: Sat Jan 27, 2018 10:52 am
by GradualGames
I found some old code in ggsound that apparently does nothing to the sweep unit but set the negate flag. Removing all the code which references and uploads this register results in unchanged behavior. I can't remember why I have it in the codebase, except that it must have been something from MetalSlime's original audio tutorial from which I originally learned.

What is the behavior of the sweep unit if you do absolutely nothing to it from startup, or is it advised to at least set it to some nominal value?

Re: pulse sweep unit behavior when unused?

Posted: Sat Jan 27, 2018 11:31 am
by dougeff
You need to set the N flag of the sweep register in order for the lowest notes to play (even without a sweep)

Ive noticed that games set the sweep register to $7f, when sweeps are off.

Re: pulse sweep unit behavior when unused?

Posted: Sat Jan 27, 2018 11:43 am
by rainwarrior
It's initialized at power on, BUT using a game genie will mess that up. Some of the Mega Man games never touch the sweep registers and have messed up music if you play with a Game Genie.

Re: pulse sweep unit behavior when unused?

Posted: Sun Jan 28, 2018 9:48 am
by tepples
You can't play notes in the pulse channels' lowest octave (what FamiTracker calls A-0 through G#1) if the sweep is at the default ($00). From APU Sweep on NESdev Wiki:
If at any time the target period is greater than $7FF, the channel is muted. In particular, if the negate flag is false, the shift count is zero, and the current period is at least $400, the target period will be large enough to mute the channel. (This is why several publishers' NES games never seem to use the bottom octave of the pulse waves.)
Further reading: Google Search: lowest octave site:nesdev.com

Re: pulse sweep unit behavior when unused?

Posted: Mon Jan 29, 2018 12:32 am
by Bregalad
rainwarrior wrote:It's initialized at power on, BUT using a game genie will mess that up. Some of the Mega Man games never touch the sweep registers and have messed up music if you play with a Game Genie.
So this means Mega Man games using the old Capcom sound driver (Mega Man and Mega Man 2) cannot use the lowest octave with pulse waves?