If you look at the playlist for the GSTMIX series, you’ll notice that it mentions something
about “staying within the limitations of the hardware”.
There’s already a video on this channel talking about what this means,
but it’s now outdated since the channel has shifted its focus from Sega Genesis to SNES music.
So it’s time for a new video.
Normally, I’d dive into the inner details of sound on the SNES, but the youtube channel
Retro Game Mechanics Explained has already made an excellent video covering exactly this topic.
...is what I’d say if we lived in the future, where that video had already been released.
(or in more memetic parlance…)
Annnd this is where I'd put a
[link to Retro Game Mechanics Explained video on the SNES's Audio Processing Unit]
IF I HAD ONE
Still, I recommend checking out that channel and waiting for that video, as it’s going
to be far better than anything I have to say.
But in the meantime, I’d like to give a quick overview of the sound capabilities of the SNES,
how it affects the music you will hear,
and how it affects the videos on this channel.
All of the sound on the SNES is handled in
a nicely compartmentalized area called the APU.
For our purposes, this includes the SPC-700 and 64 kilobytes of RAM.
That second part is important:
64k is... not much for audio.
If we were dealing with CD quality audio, composers would be able to store roughly
0.35 seconds of music.
Or half that if you wanted stereo.
As a bonus, the code that tells the SPC-700 to play the audio
also has to be stored in that 64k of RAM.
Obviously, corners need to be cut.
The first corner to cut?
The samples themselves.
All audio is stored in a special format.
32 bytes of regular PCM audio is crunched down to 9 bytes of Bit Rate Reduced audio.
The missing parts are filled in with some interpolation and filters and magic.
I mean, look. It’s audio.
Our ears are not going to notice a few missing bits if the hardware smooths it out a bit.
In theory, at least.
Wow, now we can store over 1 second of slightly muffled CD quality audio!
Obviously, the samples that SNES musicians use are not going to be CD quality.
The snare from Super Mario World is about 1/4th of the sample rate of normal CD audio,
and ends up taking up a whole 3 kilobytes in its bit rate reduced format.
And that’s just one of the larger samples.
You also have to remember that besides the instruments for your song, this 64k of RAM
also needs to store the sound effects for whatever gameplay is going on.
Plus the sound driver, as mentioned earlier.
It’s pretty cramped, in all honesty.
In practice, this means composers were more likely to downgrade sample quality than leave them out.
But once you shove all of these samples in,
the SNES has a shining feature: 8 channels of audio!
But with an odd twist…
Remember Terminator 2?
Arnold unloaded a minigun into a parking lot and scanned the area: 0.0 human causalities.
Programmers may laugh at this, wondering why he’s using a floating point for something that should
obviously be an integer.
Well, the SNES did something similar.
Unlike the Genesis, which has the option of panning a channel 100% left, 100% right, or
dead center... you can adjust the volume of each channel to any value.
The value range is a signed integer.
Signed as in “includes negative values”.
In other words, you can have the sound come out upside down.
What’s the point of this?
Well as it turns out, this opens the door to a really annoying effect where the left audio
is completely inverse of the right audio, which makes the music sound like it’s literally
inside your head.
In moderation, this is ok...but good luck finding any such moderation!
If you didn’t hear anything just then, it means you’re listening to this video in
mono, where the left and right channel simply canceled out.
This is why it was important for games to have a stereo-mono option, if you were ever wondering.
Luckily it’s relatively easy to fix.
(with some x86 assembly knowledge)
But let’s move on to one of the more defining
features of the SNES: REVERB.
Except it’s not actually reverb, it’s just a fancy delay module.
Also, the delay feedback eats into that 64k of RAM that you were wrestling with earlier.
If you turn the delay up too far you’ll overwrite your samples. And/or your sound driver.
Some early ROM hacks suffered from this, since emulators were less picky about these limitations.
Also included in this delay chain was an 8-tap FIR filter.
Most documentation is not particularly helpful about what this does,
but any electronic musician should be able to identify
that it functions similar to an EQ (equalizer) that’s applied to each feedback loop of the delay.
This helps sell a sort of natural sounding reverb that loses the higher frequencies faster
than the lower ones.
Or a dubby effect if you have enough RAM to spare.
Not all of the features of the SPC-700 were documented,
even for the developers that used Nintendo’s official tools.
The most notable feature to escape this documentation was Pitch Modulation.
Luckily, several developers found this feature by just poking around with the registers on the chip.
Basically, enabling Pitch Modulation will turn 2 channels into a single 2-operator FM synth.
This is unique from most other FM synths in that both the modulator and the oscillator
can be set to any arbitrary frequency and waveform.
In practice, this results in very messy sounds very quickly, and is mostly reserved for sound effects.
Here’s an example you’ll probably recognize fairly quickly: the wind from Chrono Trigger.
This howling, almost-tonal sound is, in fact, a tone that’s modulating a rumbling sound effect.
Here’s what it would sound like with the Pitch Mod disabled.
Generally, this effect wasn’t used in music,
though there are some exceptions.
It’s not an effect you’ll see this channel strive to preserve in mixes.
Actually, there are only two things you’ll
see preserved in the GSTMIX series: the 8 channel limitation, and the use of samples
actually from the SNES.
Everything else is just fun context.
Having said all that, I’d like to encourage you to subscribe if you haven’t already,
and support this channel on Patreon if you’re feeling generous!
Also be sure to check out Retro Game Mechanics Explained for a wonderfully illustrated look
on the technical side of SNES hardware.
See you next mix!