NES All the Way Down
Emulating Audio Processing Units on Vintage Consoles
The Nintendo Entertainment System (NES) has shaped the memories of generations.
Iconic franchises such as Super Mario and The Legend of Zelda first appeared on this machine.
The console was discontinued decades ago and has been long superseded by other models. Yet homebrew hackers, game developers and researchers have reverse-engineered it to great length.
By today's technology standards, the NES is ancient. However, the tricks that hardware developers used to create the sound palette of the NES are equally creative, arcane and nifty! And we can learn and adapt their tricks when designing new instruments, effects or synths.
In this talk I will present the current state of my NES emulator, describe how I built it and present the various hardware units on the console. I will then zoom in on the Audio processing Unit and describe its registers, channels, counters and mixing system.
By the end of this talk you will walk away knowing what you need to write an emulator, how the NES produced its iconic sounds and hopefully feel excited to learn about how the early digital sounds of the late last century were created.
Daniel Strübig
Embedded Software Developer
Bang and Olufsen
Embedded Software Developer at Bang & Olufsen.
Graduate from Aalborg University Copenhagen in Sound and Music Computing.
Published libraries and talks on speech quality prediction.
Currently working with alsa, pipewire, jack and all things audio on embedded linux.