NOTES ·
The reverb inside a 90s games console
How a 32-bit console’s sound chip made its reverb, why it sounds the way it does, and what SPU-94 keeps, fixes and adds.
Sometime in the 90s, game music got rooms. A 32-bit console shipped with a reverb built into its sound chip, and composers put it on everything: sprawling RPG scores, tense stealth soundtracks, anti-gravity racers with club-grade techno. If you grew up with those games, that reverb is part of how you remember them.
SPU-94 is that reverb, running live in your DAW. This is how the original worked, and what I kept, fixed and added.
It was never a recording of a room
The chip didn't play back a captured space. Each of its reverb presets was a fixed network, set up by a table of register values, with its own baked pre-delay and its own tail. Change the table and you change the room. You picked a preset; you didn't build a room.
The console shipped ten of those tables. SPU-94 loads six of them as they are: ROOM, SMALL STUDIO, MEDIUM STUDIO, LARGE STUDIO, HALL and SPACEEKKO. The other four (Off, Half Echo, Chaos Echo and Delay) are sparse echo taps rather than reverbs, so I left them out.
Because the modes run live rather than as recordings, every control responds while they play. An impulse response captured from the console can't do that. It's one length, one tone, frozen.
Why it sounds the way it does
The chip ran its reverb at 22.05 kHz. That puts a ceiling of about 11 kHz on the tail and gives it 16-bit grit inside the tank. It's the dull, slightly rough top end people recognise, and it's why SPU-94 isn't the reverb for you if you need air above that. SPU-94 runs its reverb at the same 22.05 kHz internally, at any session rate from 8 to 768 kHz, so the ceiling is the original's. You can watch it on the plugin's waterfall display: nothing ever appears above it.
A few more of the chip's habits are kept on purpose:
- Switching modes clears the reverb's memory, the way the console did. SPU-94 fades through zero over 12 ms so it never clicks.
- Every TAIL and REFLECTIONS control has a home position, and at home its code path is skipped. Leave them there and you're hearing the console's own tables, untouched.
And one I changed. The console put its reverb out polarity-inverted. Blended against your dry signal, an inverted reverb thins the low end, so SPU-94 flips it back.
How I know it's the real one
The SPU-94 codebase contains a bit-exact integer version of the console's reverb. It never ships. It's a referee: on every build, the plugin's own engine is checked against it, preset by preset, across all ten. The gate is 8 steps of 16-bit resolution, and the worst difference measured is 4.33. The test also carries a control that proves the gate can fail.
So "authentic" has a narrow meaning here: with a control at home, it's the console's formula, within that gate. The manual marks every place SPU-94 goes beyond it.
What the hardware never had
Two controls go past the original.
MOTION lets the four early taps drift slowly, between 0.113 and 0.419 Hz, by up to about 2.7 ms, so a still tail starts to swirl. The hardware never moved. The drift is read through the chip's own interpolation table, the slightly broken one it used to pitch voices, so even the new feature sounds like the chip. Try it on HALL: MOTION from 0 to 100.
ER TIME pulls the early taps in together. In the big modes those taps sit far enough apart to flam on a snare: HALL's four fall between 45 and 185 ms. ER TIME scales them as a ratio rather than shifting them, because an offset would only move the flam, not remove it. At 20% they land between 9 and 37 ms and the flam is gone. It stops at 20% so the taps never collapse onto each other.
Try it
Pick a mode, leave everything at home, and that's the console. SPU-94 reports zero latency, so it can sit on a live input. It comes as AU, VST3 and AAX on macOS and VST3 and AAX on Windows, and the download is the full plugin with no time limit. Until you buy, it goes quiet for 10 seconds every minute.
— Ryan Wardell, founder