💎 Final Fantasy 1 Beginner Club - Home Thread

While we’re talking about old-school tech, and as an appetizer before we start the club at the end of next month, I’d like to talk about the way the music of the original Final Fantasy was made.

The composer is Nobuo Uematsu who made all the music for every Final Fantasy up to IX (and worked other Square games from the golden age like Chrono Trigger, SaGa, Front Mission and more). An absolutely incredible output that’s going to accompany us throughout this club.

So where am I going with that? Well I want to talk about my favorite track in the Final Fantasy 1 OST: the Chaos Shrine theme. Here’s the GBA version:

Most of you are probably going to play with the rearranged score: by default in the Pixel Remaster uses a modernized orchestral version (different from the GBA version posted above), although you can toggle the original music back if you want. But the version of this track that I really enjoy is the original Famicom/NES version. But before I post it here, I want to give proper context so that Uematsu’s work can be appreciated with the right context:

Modern background music in games

Since the time of the PlayStation 2/GameCube, game music is generally
handled basically by playing a music file (like an MP3, OGG, WAV…) in the
background. It’s very straightforward and extremely flexible: you can play
absolutely any kind of music from a very simple tune to a complex 5.1 surround
orchestral score, it’s just a music file.

Some modern games get fancier than that with dynamic scores that react to the
action which are usually handled with layered tracks that can be shifted in real
time, but the vast majority of modern games just play music file the way you
would in Spotify:

Sample-based BGM

This wasn’t really possible on older consoles however. Consider that the FFXVI music above takes over 3MB for a few minutes of music. Consider also
that a console like the PlayStation 1 had a grand total of 0.5MB of sound
memory. And that’s for all the sounds in the game, not just the music.

So consoles like the PlayStation or the Super Nintendo/Super Famicom do
something a bit trickier but more efficient: instead of just playing back a
recording of the entire music track, they instead had short samples for every
instrument/sound effect they wanted to use to recreate the music (and all other
SFX). So for instance you would have one very short audio file containing one
piano note, another for one drum kick, yet another for a guitar riff, one for a gunshot, etc.

Then, in order to play the music, the game just follows a partition and plays
every note for every instrument in the right order by firing hardware “voices”
that just playback one of the small samples. These voices can also change the
playback frequency (therefore allowing the same sound file to play multiple
notes by shifting the pitch up and down) and potentially loop the samples to sustain a note for instance. This is sometimes (somewhat abusively) called MIDI music.

So it basically works like a simple synthesizer where every key is bound to a
small audio sample and with the game code pressing the keys with the right
timing in order to play the music.

Here’s an illustration of it in action: I modified the emulator to display the
state of the 24 PlayStation voices in real time as I play through the intro of
Final Fantasy VII, notice how voices keep firing to play the notes of the
soundtrack, as well as every time a sound effect needs to trigger (cursor noise,
attacks, spells etc…):

This system is not as flexible as simply playing audio files because you’re
limited by the quality of the samples (remember, only 0.5MB total, so you have
to compress a lot!) and how many samples you can play at once. It still lets you
do a lot though, and as a result the soundtrack of games of that era are still
pretty complex and sound rather decent.

Waveform-based BGM

But we have to go further back. Final Fantasy 1 was released on the NES/Famicom,
and that’s significantly more primitive. For one thing, instead of the 24 voices
of the PlayStation or even the eight voices of the Super Nintendo, the NES only had
four. But actually it’s a lot worse than it sounds because the NES also couldn’t
store samples[1]. RAM was too expensive back then, the
entire system had about 5kilobytes of RAM, you’re not going to add hundreds of
kilobytes just to store audio samples.

So how is it done? By generating the sounds on the fly using simple hardware. A
very simple way to do this is simply to have a hardware counter on the CPU
clock. Then every time the counter reaches 0 to drive a “high” level on the
speakers and you reset the counter to the initial value. Then when it returns to
0 you drive a “low” level on the speakers and repeat. This generates a square
wave on the speakers whose frequency depends on the value of the counter at
initialization:

(Don’t listen to this at high volume, especially with headphones, unless you
really enjoy tinnitus)

So here we go, with a simple hardware counter we can generate arbitrary
frequencies. It sounds terrible, but if you can play arbitrary frequencies, then
you can make music. Also the NES has a few more tricks like envelopes and swipes that let you fade the voices in and out or distort the frequencies.

I said that the NES/Famicom has 4 voices: 2 of them are square waves as
described above, the third one is a triangle wave (a little better than square
waves but also more expensive in hardware) and the 4th one is a Linear Feedback
Shift Register
which is basically just a way to generate white noise (think
sound effects like explosions, wind, etc.).

The LFSR channel can’t easily be used for music since it’s just noise. Sometimes it’s used for percussion sounds but that’s about it. That leaves you with 3 voices to make all of your game music: 2 square waves and 1 triangular wave. Good luck.

So the reason I wanted to make this lengthy intro is because it’s absolutely
amazing to me that Nobuo Uematsu was able to compose such compelling music given
the atrocious technical limitations of the hardware. And the theme of the Chaos
Shrine is one of my favourite bits of 8bit music ever composed, which I think you can know appreciate fully:

I think it’s amazing how moody this sounds given how simplistic the audio hardware was. Uematsu must have felt like a weight was lifted from his shoulders when he was finally allowed to compose music for more advanced hardware.

If you’re curious, I’ve extracted the individual 3 channels in this video to demonstrate how the track is composed:


  1. ok that’s not entirely true because there’s a fifth “DMC” voice
    that could play samples from the cartridge, but it was tricky to use and
    therefore irrelevant to my point here ↩︎

22 Likes