Play SNES SPC audio files from your browser using original hardware and Arduino
Arduino Team — August 9th, 2021
Listening to those classic 16-bit sounds from the ’90s video game era brings back a wave of nostalgia for those who grew up with a console. On the Super Nintendo Entertainment System, outputting sound was accomplished by an integrated circuit called the SNES Audio Processing Unit (APU for short), which was responsible for taking SNES SPC files and transforming them into waveforms. Mauri Mustonen — who goes by Kazooie on YouTube — wanted to isolate this chip to play authentic music from his favorite tracks on his browser without needing to boot up the entire SNES console.
The system he came up with has an Arduino Micro at its heart that is connected to the SNES APU via a series of wires. Some of these links are for putting the APU into read or write mode, while others set the desired port and address for where the song data should be written. Data is sent or received over a set of eight parallel data lines.
There is a web-based frontend written in Python that allows a user to select their songs of choice, which are transferred to the Arduino over USB and then sent to the APU via its parallel lines. From there, the IC runs a bootloader that begins playing the audio files.
You can read more about how this system works and check out the code here on GitHub, or you can see Mustonen’s demo video below.
We care about the privacy and personal data of our users.
To continue, please give us your consent:
Please confirm that you have read the privacy policy
Thank you for subscribing!
Curious to learn more?
Are you also a teacher, student, or professional that loves using Arduino in your day-to-day activities?
Then keep up-to-date with either our STEM or Professional monthly newsletters.
Arduino weekly newsletter (already subscribed)
Educators can benefit from the ever growing tech that shapes our environment through fun cool projects.
Why not awe your boss with highly innovative ways to help keep your enterprise connected at no extra cost?
Arduino Survey
We'd like to get to know you little better.
Please help us improve by answering this super short optional survey.