NOISE CHANNEL "DRUM" USAGE IN MM2

As you may be aware, the NES noise channel is fairly limited and mostly serves as a means to fill the space percussion fills in most music. However, figuring out exactly how Mega Man 2 handles percussion compared to emulators and trackers can be rather tricky. It is my hope that using this page will make it easier for me, and anyone else who is interested, to discover practical means for hacking Mega Man 2's music. This is meant to contain example collections of Noise channel settings that are utilized in existing songs, so the sound of them is self evident simply by pulling up an nsf of the game.

Before I start, it's necessary to note some of the main operation codes utilized to define Noise channel notation.

00 XX - Tempo setter, applied on all tracks in Mega Man 2 rather than applied to whole song like in 3-6. This is mostly ignorable, just set it at the beginning to be the same as everything around it.

01 XX - Pitch envelope, changes XX per frame. In other words, Portamento. 00 doesn't change at all, 01-7F change DOWN that much per frame, 80-FF change UP that much per frame, with 7F and 80 being the ridiculous over the top extremes.

03 XX - Max volume. 31-3F, NES volume is only 4 bits so this is the whole range. Note 31 is NOT silent.

04 NN XX XX - Loop command. Loop NN times to the address XX XX. In the rom, you produce XX the way you do all jumps. In NSF, the subtraction number is 7F80 to get the actual address, in game, I think it's 8010. Hex, of course.

07 XX Y0 - Volume envelope. This one is a big aspect of percussion. XX's bit 7 is whether it goes up from 0 or goes down from max, 8 is max->0, 0 is 0->max. The rest of the bits are change frame count, how many frames does it wait before changing to the next volume step? Finally, Y is the size of the volume step - 1 is a change of 1 volume level, 2 is 2, 4 is 4, etc.

Now for the actual example instruments:

07 84 A0 03 3F 01 05 66 - Loud first percussion beat of Flash Man. Decays quickly. Experimentation seems to indicate X5 sounds good in Noise, and is identical both ways..

01 00 07 82 60 03 36 64 64 64 - The remaining percussions of the first measure of Flash Man. Note that these don't have the portamento effect, obviously, it is quieter, and notably the volume envelope seems slower to complete.

07 81 10 03 39 01 12 66 66 60 66 60 66 60 66 63 63 64 64 65 65 66 66 - This is the tom breakdown. Notice 07 81 10 is the simplest normal "pyramid" volume decay. The actual "toms" are accompanied by triangle toms doing down. Notice that this percussion actually starts low and goes UP.

03 3E 01 10 07 82 A0 A4 - ticks during the second portion of the song, along with a rest. notice that these are simiilar to the second beats in speed, but the first beats in decay rate.

07 84 60 06 8D - The longer conclusion snare. First beat instrument but louder/weaker decay. 06 is dotted note, btw.

Interesting note. You can define Volume envelopes in the Modulation Definition table at the end of each song, which seem to have identical definition to 07. Perhaps this is a reasonable way to save space in long songs with percussion changes?