Recently, I attended the 2021 Retro World Expo in Hartford, Connecticut; I had a great time overall. One panel I enjoyed was hosted by the XVGM podcast about the Famicom Disk System, and how sound was recomposed going from the FDS to the western NES, which didn’t have the same sound capability. It was a really interesting panel focusing on the composition side, which made me want to dig into the technical side a bit more. Let’s do that now.
Please set disk card
The Family Computer Disk System was an add-on released by Nintendo in Japan in 1986, and never anywhere else. It added 32kiB of program RAM, 8kiB of video RAM, an 8kiB BIOS ROM, and most importantly, the ability to use 128kiB dual-sided floppy disks. Note that the 32kiB of program RAM is to store the program. Just like CDs, code can’t run directly from a floppy disk, it needs to be copied into RAM first.
The Famicom Disk System has a special place in my heart; learning about it fascinated me as a child, and probably led to my later interest in video games and retro technology. The Sharp Twin Famicom that still sits in my living room was the first import console I ever bought. It might surprise you that it doesn’t show up on this blog very often, then.
So today let’s fix that by talking about one special trick the Famicom Disk System had up its sleeve: its audio channel.
That audio channel comes from the Ricoh 2C33, the large dense IC in the upper right. (This is the RAM adapter, the part of the Famicom Disk System that plugs directly into the cartridge slot) This doesn’t just handle audio output; it’s basically a large all-purpose IC with a great many functions. You can check out the pinout on NESdev if you’re interested. But even though we know where the sound comes from, the more important question is: what does it sound like?
Irule, Yourule, we all rule for Hyrule
Let’s listen to a particularly famous track, from the obscure Disk System game THE HYRULE FANTASY: Legend of Zeruda. (Did I transcribe that right?) Pay particularly close attention to the sound of the gongs, and try to ignore the ground loop hum.
There’s an even better way to tell this. See, that above capture was not from the Famicom I pictured above; it was from my Sharp Twin Famicom. (So the ground loop is probably somewhere in the living room maze of wires, great) Why didn’t I use the Famicom above?
It has a “stereo mod”; this takes the two audio outputs from the 2A03 and bypasses the internal mixer, sending them to different sides. I’ve used this before when talking about Super Pitfall’s music, for example. Unfortunately, the designers of this mod presumably designed it for an NES, so it doesn’t take expansion audio from the cartridge slot. That, however, makes it perfect for a comparison. We can hear the sound using only the 2A03.
So you might have noticed two things:
- The music without the extra sound channel is not the same as the later US release. But that’s what the XVGM podcast panel was about, so we won’t go into that here.
- The instruments missing in the song are the most complex. What we have are simple waves; square, triangle, noise. But things like the gong and the lead are all the FDS channel.
How do chiptune
When we talk about sound generated by computers, the most primitive sound is probably the square wave; a simple wave that spends some time at the highest point, then the same amount of time at the lowest point. If you can adjust how much time it spends, changing the width, it’s often called a pulse wave. This is all pretty simplified.
The Famicom or NES can do two pulse wave channels.
A lot of the uniqueness of the Famicom’s sound comes from it having a triangle wave. This is an actual recording of a triangle wave from a Famicom (from Super Pitfall, actually), and you can see that it’s a bit jagged, but it’s close enough to still be a triangle. The last channel on the Famicom is noise, which is, noise. Pretty useful for percussion. (There’s also PCM samples, but that’s a can of worms that we don’t need to get into and was rarely used on the Disk System due to space concerns)
By comparison to some other systems: the SN76489 we talked about in the Master System and the Sega System 1 can only do pulse waves. Same for the AY-3-8910 in the Mockingboard. The Commodore 64’s SID, notorious for punching above its weight, can do pulse, triangle, and sawtooth waves, along with sophisticated filters. These all share the same basic concept, though: constructing more complex sounds out of simple base waves.
The Famicom Disk System offers something totally different: wavetable synthesis.
The Gameboy sound chip features four audio channels. Like the NES, it has two pulse wave channels and a noise channel. Instead of the triangle wave, though, it features a single channel of wavetable synthesis. Let’s take a look.
This is Tapenade, the song played in the trailer video I made. It uses only one wave, shown above; it’s sort-of a rounded pulse wave, somewhere between a pulse and a sine. This gives the backing notes what I thought of as a softer, more mysterious tone. In the game, this plays during a final boss fight that never happens.
But this is, in a sense, all a wavetable synthesis is. It’s very similar to a sample, but your sample length is highly limited. A Gameboy wave is limited to 32 steps. Plus, each of those steps are limited to a 4-bit resolution. If you want to hear more about some of the fun limitations of trying to use the Gameboy’s wave channel to play back samples, I recommend this blog post by Eevee.
Let’s take a look at some video game consoles using wavetable synthesis:
|Console||Release year||Number of wavetable channels||Wavetable length||Resolution|
|NEC PC Engine||1987||6||32||5-bit|
|Nintendo Famicom Disk System||1986||1||64||6-bit|
The Famicom Disk System might lack the sheer number of channels of the PC Engine, but a 64-length wavetable with 6-bit sample resolution is pretty impressive, especially as the earliest system of the bunch.
Frequency modulation synthesis, or FM, has shown up a few times on this blog, and is mostly seen as pretty terrifying due to the complexities of modulation. Technically, the Famicom Disk System can also do it, but it’s a lot more limited. Let’s do a quick exploration. For this, I’ll be using FamiTracker, but as it’s just a single triangle wave, anything will do.
We’ll start by playing a simple note. It’s a triangle wave, playing a G-4.
Modulation, in the case of the Famicom Disk System, is just one option. We generate a sine wave, and then we can use that sine wave to “modulate” the frequency. The frequency played at is determined by the note, so with a low frequency, we can hear the wave drift in and out.
But if we increase the frequency, it can give different sounds. Technically, the same thing as the above is happening, just faster. To my ear, it gives the triangle wave a grittier sound.
It’s worth noting that this can be done with any sample on the Famicom Disk System to add extra complexity to the sound. I just used a triangle wave because the effect is most obvious that way. The PC Engine can also do FM modulation on some (but not all) of its audio channels; the Gameboy can’t do it at all.
By the standards of Yamaha synthesizers, you might call this a “two-operator” FM synth. However, because it allows you to modulate a sample, rather than another sine wave, the sounds can’t really be directly compared to the two-operator FM synthesizers of the time.
Thanks to Twitter user @nyanpasu who corrected some errors in my post.
Ooh pretty sounds
The Famicom Disk System wasn’t a flop, it wasn’t an unbridled success, as in Japan games did go back to using cartridges and it never made it out of the country. But it definitely sold a healthy number of units, and we can’t really call the console that gave us Kid Icarus, Metroid, and The Legend of Zelda a failure.
The audio channel, though, didn’t seem to be taken advantage of that often. The in-game music in The Legend of Zelda doesn’t use it; in fact, many Nintendo games mostly just use it for title screens. (And many non-Nintendo games don’t use it at all) I’m not sure why this is; I had some speculation here but it didn’t check out, so let’s just leave it at that.