Hello! Welcome to the fourth lesson in our course.
In our previous lessons, we thoroughly examined the Sega Genesis sound hardware. We explored the YM2612's frequency modulation synthesis, the SN76489's simple square waves, and finally, the clever use of the YM2612's sixth channel as a software-driven DAC for sample playback. We saw that the Genesis's sound is fundamentally rooted in synthesis, with sample playback being a powerful but resource-intensive addition.
Today, we shift our focus to Sega's main competitor, the Super Nintendo (SNES). We will explore an entirely different philosophy of sound design. Instead of relying primarily on synthesis, the SNES was built from the ground up around sample playback. This lesson addresses the learning outcome: Describe the architecture of the Sony SPC700/S-SMP sample-based sound system in the Super Nintendo (SNES).
Understanding this architecture is crucial for appreciating the distinct sonic palettes available to composers on each platform and sets the stage for the next lesson, where we will directly compare the two systems.
1. A Self-Contained Synthesizer
While Sega partnered with Yamaha for its FM synthesis chip, Nintendo chose to collaborate with Sony to create a sophisticated, self-contained audio subsystem. This "Audio Processing Unit" (APU) was a powerful sound module-on-a-chip that operated almost entirely independently of the main console.
To get a high-level overview of this partnership and the resulting hardware, let's start with a reading.
Super Nintendo / Famicom Architecture | A Practical Analysis
The article 'Super Nintendo / Famicom Architecture | A Practical Analysis' by Rodrigo Copetti provides a clear introduction to the SNES's audio subsystem and its core components.
Please read the 'Audio' section, starting from the introduction down to the end of the 'Architecture' subsection. Focus on identifying the three main components of the audio subsystem and their basic functions.
As the reading explains, the SNES audio subsystem is essentially a small computer dedicated to sound, consisting of three main parts:
- The S-SMP (Sound and Music Processor): An 8-bit CPU, based on a Sony SPC700 core, that acts as the "brain" of the audio unit.
- The S-DSP (Digital Signal Processor): The "muscle" that performs the actual sound generation and manipulation.
- 64 KB of PSRAM (Audio RAM): Dedicated memory for storing the sound driver program, music data, and audio samples.
This entire unit is often referred to simply as the "SPC700." Let's look at how these components are interconnected.

2. The Components of the APU
To understand how this system works, we'll examine each component's role. The following video provides an excellent and detailed walkthrough of the entire architecture. We will go through it section by section.
SNES Audio System Overview - SPC700 Series pt. 1
The video 'SNES Audio System Overview' from Retro Game Mechanics Explained is a comprehensive introduction to the hardware. We'll use it to explore each part of the APU in detail.
We will break this video down. For now, just be aware that it covers all the main components we are about to discuss.
The S-SMP: The Conductor
The S-SMP is the CPU that orchestrates the entire audio process. It runs a special program called a "sound driver," which is loaded into the Audio RAM (ARAM) by the SNES's main CPU. This driver interprets music data (also in ARAM) and sends commands to the DSP to play, stop, and modify sounds.
This is a fundamental difference from the Genesis, where the secondary Z80 CPU had to split its time between running the sound driver and manually feeding sample data to the YM2612's DAC. The S-SMP is fully dedicated to audio tasks.
SNES Audio System Overview - SPC700 Series pt. 1
Let's begin the video by looking at the S-SMP CPU, its registers, and its internal timers.
Watch from the beginning to 07:04. This covers the S-SMP's relationship to the SPC700 instruction set, its internal registers, I/O ports for communicating with the main CPU and DSP, and the crucial role of the timers for maintaining a steady rhythm independent of the main system.
As the video explains, the S-SMP has its own set of registers (A, X, Y, etc.), a dedicated memory map, and timers that provide a stable clock for musical timing. It communicates with the main SNES CPU via four I/O ports, and it controls the powerful S-DSP through a pair of address/data registers ($00F2 and $00F3).
The S-DSP: The Orchestra
The S-DSP is where the magic happens. It's a specialized processor that takes high-level commands from the S-SMP and generates 8 channels of digital audio.
SNES Audio System Overview - SPC700 Series pt. 1
Now, let's get an overview of the S-DSP's capabilities.
Watch from 07:04 to 08:47. This section introduces the DSP's main features: 8 independent voices, BRR sample playback, ADSR envelopes, echo with an FIR filter, and pitch modulation.
The key features of the S-DSP are:
- 8 Independent Voices: Each voice can play a single audio sample at a specified pitch and volume.
- Sample-Based Synthesis: All sound originates from pre-recorded samples stored in ARAM. These samples use a compressed format called Bit Rate Reduction (BRR) to save space.
- Complex Envelopes: Each voice has a full ADSR (Attack, Decay, Sustain, Release) envelope generator, allowing for dynamic control over a sound's volume over time.
- Built-in Effects: The DSP has hardware support for a sophisticated echo/delay effect, a noise generator, and pitch modulation (a simple form of FM).
Audio RAM and the DAC
The final pieces of the puzzle are the memory that holds all the data and the converter that turns the digital signal into sound you can hear.
SNES Audio System Overview - SPC700 Series pt. 1
Let's conclude our overview by looking at the role of the Audio RAM and the final Digital-to-Analog conversion stage.
Watch from 08:47 to the end (11:57). This covers the final DAC stage and, more importantly, details how the 64KB of Audio RAM is organized to store the sound driver, music data, sample directory, BRR samples, and the echo buffer.
The 64 KB ARAM is a critical, and often limiting, resource. Composers had to carefully manage this space to fit the sound driver, all the instrument samples for a piece of music, and the music data itself. If a game's assets for a single level exceeded this, the main CPU would have to pause the action and stream new data into ARAM.
3. A Deep Dive into the DSP Pipeline
The S-DSP's process for generating sound is a multi-stage pipeline. Given your background in physics and numerical methods, the signal processing concepts here might feel familiar.
The following video provides an excellent, step-by-step explanation of this entire pipeline, from fetching a sample to the final output.
The SPC700 DSP Pipeline Explained - SPC700 Series pt. 4
The video 'The SPC700 DSP Pipeline Explained' by Retro Game Mechanics Explained offers a fantastic deep dive into the DSP's signal flow. We will use it to trace the path of a sound from start to finish.
Watch the entire video (00:00 - 15:49). As you watch, try to follow the signal flow for a single voice and then see how the voices are mixed and processed together. Pay attention to concepts like BRR decoding, Gaussian interpolation, ADSR envelopes, and the FIR filter in the echo path.
Let's summarize the key stages of that pipeline:
-
Sample Source Selection: For each of the 8 voices, the pipeline begins. The DSP first determines the source of the sound.
- BRR Sample: The S-SMP tells the DSP which sample to play (
VxSRCNregister) and where the sample directory is (DIRregister). The DSP fetches the compressed 9-byte BRR blocks from ARAM and decodes them into 15-bit PCM samples. - Noise: Alternatively, the voice can be switched to a pseudo-random noise generator, useful for percussion and effects.
- BRR Sample: The S-SMP tells the DSP which sample to play (
-
Pitch and Interpolation:
- The raw sample is played back at a rate determined by the pitch registers (
VxPITCHL/H). - To avoid aliasing and produce smooth pitch shifts, the DSP uses a 4-point Gaussian interpolation. This is a resampling technique that calculates new sample points by taking a weighted average of the four nearest known sample points, using a Gaussian function as the weighting kernel. This was a remarkably advanced feature for consumer hardware of the era.
- The raw sample is played back at a rate determined by the pitch registers (
-
Envelope Generation: The resampled audio signal is then multiplied by the current value of the voice's volume envelope. This is controlled by the ADSR/Gain settings, which shape the amplitude of the sound over time.
-
Voice Volume and Panning: The signal, now with its envelope applied, is split for the left and right stereo channels. The volume for each channel is set by the
VxVOLLandVxVOLRregisters, allowing for stereo panning. A negative volume value inverts the signal's phase, a trick used to create pseudo-surround effects. -
Pitch Modulation (Optional): The output of one voice can be used to modulate the pitch of the next voice in the chain (e.g., voice 2 modulates voice 3). This allows for simple FM-like effects.
-
Mixing and Echo Path:
- The left and right signals from all 8 voices are mixed together.
- Each voice can be optionally routed to the echo unit. The signals for echo are mixed separately.
- The "dry" (main) signal is multiplied by the main volume (
MVOL). - The "wet" (echo) signal is sent to the echo buffer in ARAM. The size of this buffer, and thus the delay time, is set by the
EDLregister. - A delayed signal is read back from the buffer and passed through an 8-tap Finite Impulse Response (FIR) filter. This is a standard digital filter that can shape the frequency content of the echoed sound (e.g., making echoes sound darker). The 8 coefficients of the filter are programmable.
- The filtered echo can be fed back into the echo buffer (
EFBregister), creating repeating delays or reverb. - Finally, the processed echo signal is multiplied by the echo volume (
EVOL) and added to the main signal.
-
Final Output: The combined main and echo signals are sent to the Digital-to-Analog Converter (DAC) to be turned into the final analog audio signal.
4. The Ground Truth: Technical Specifications
For those who want to see the raw details, the most definitive public resource on the SNES hardware is the "Fullsnes" document by Martin Korth (nocash). It's a dense, technical document used by emulator developers. You are not expected to read it in full, but it's an excellent reference that aligns with your preference for original sources.
The 'Fullsnes' specification is the ultimate reference for the SNES hardware. We'll use it to see the raw register maps and technical data that underpins everything we've learned.
You don't need to memorize this, but take 5-10 minutes to browse these sections to get a feel for the level of detail: 'SNES APU Memory and I/O Map': Look at the SPC700 memory map and the comprehensive list of DSP registers. This shows every single parameter a composer's sound driver could control. 'SNES APU Block Diagram': This section contains the ASCII art block diagrams that visually represent the DSP voice and mixer pipelines. 'SNES APU DSP BRR Samples': Skim this to see the technical definition of the 9-byte BRR block format, including the header bits for shift amount, filter, and looping.
This document provides the "ground truth" for the hardware's behavior, detailing every register, flag, and quirk of the system that composers and their tool programmers had to master.
Conclusion
The SNES audio architecture was a powerful and complex system that gave composers a palette built on high-quality sample playback and sophisticated digital effects.
Key Takeaways:
- Self-Contained System: The SNES APU is an independent subsystem with its own CPU (S-SMP), DSP, and dedicated 64KB of RAM.
- Sample-Based Core: All sound originates from compressed BRR samples, played back through 8 independent voices. This contrasts sharply with the Genesis's synthesis-based approach.
- Powerful DSP: The S-DSP provides advanced features per-voice, including pitch control with Gaussian interpolation and full ADSR envelopes.
- Hardware Effects: The DSP has built-in hardware for a flexible echo/delay effect with an 8-tap FIR filter, a noise generator, and pitch modulation.
- Software Control: The S-SMP CPU runs a sound driver program that gives composers high-level control over the DSP, managing all 8 voices and effects in real-time.
Now that we have a detailed picture of the SNES's audio capabilities, we are perfectly positioned for our next lesson. We will perform a direct comparison, analyzing the primary technical and philosophical differences between the Genesis's FM synthesis-based sound system and the SNES's sample-based system.
Can't find a good explanation? Sign up and we'll make it for you
Sign up