SonikTech Home
Contact Information
StandaloneNesPlayer
The Sonik Unified Nes Design for Euphonic Rhythm Experiments

Overview
TSUNDERE was basically the precursor to the Chip Maestro, but it didn't require a separate NES. For the past very long time I have been working on a little project while listening to the Scott Pilgrim: The Game soundtrack. It features amazing tracks by IMO the best chiptune-using band, Anamanaguchi. Listening to their songs kept me going on this ambitious endeavour to "use the NES CPU as a Sound Chip". Finally, after about 2 months of development, I have finished my Proof Of Concept. Presenting: The Sonik Unified NES Design for Euphonic Rhythm Experiments. It all started when I started playing Scott Pilgrim. An amazing game in its own right, the music just blew me away. I was hooked, and I wanted to know more about how the band made their distinctive chiptune sound. A lot of research led me to a site where they talked about their system in an interview, and I gathered that they used a tracker to compose their songs and then sent that data to the NES using a PowerPak for playback. This system is great for recording songs, but how do you play using this system live? You would have to use your prerecorded tracks, but no one goes to a show to hear a band play EXACTLY what they played on the album. The little nuances, the improv, the 17 minute long solos are the reasons you go see a show. Since Anamanaguchi, and many other chiptune musicians, do play live, I set out to create an 8-bit music machine hat goes beyond emulating an NES -- in that it IS an NES. First, I set off to try my hand at interfacing the 2A03 directly. Buying a lot of 5 As-Is NES units off ebay, I began my research one step at a time. None of the NES units were actually broken; they just had bad 72Pin Connectors. After refurbing all of them to working order, I took the least healthy machine and gutted the CPU and essentials (crystals, caps, resistors along the audio path). My goal was to recreate all the parts of an NES needed to produce sound using a minimum of parts. After poring over about a hundred docs and websites on programming for the NES, I stumbled across nesdev.com, where I found a good number of very helpful NES gurus. After finding a schematic by kevtris and talking with skrasms, who had tried this idea before, I breadboarded the circuit. So began my frustrating month of trial and error. Trying everything from different crystals to different support chips to different NES chips, I decided to take a step back and open another NES console. This time, instead of actually taking the parts out, I soldered machine pins into the essential areas of contact (namely the Data, Address, R/W, and reset pins. Plugging breadboard wires into those, and the other side into my Arduino Mega, I began banging the 2A03 with horribly written, poorly timed code. Noise was achieved within a few minutes, but actual notes from other channels were more challenging to produce. It was not until skrasms posted his test code that I had enough information to write the code needed, and I finally heard my first square wave. With my breadboarded project complete and working, I spent the next few days drawing a schematic and laying out a circuit board. I posted the schematic, but not the board; I am doing this because I do not have faith that my board is the best it can be. Download the schematic, and try to layout the parts to make a better board. Now my chip is happily chirping any note I send it from my Arduino Mega. From here on, the project branches out. First I will simply make an open source MidiNES with support for more than just MIDI. Building this project into a cartridge form factor and implementing MIDI is a matter of having a microcontroller translate MIDI into data and address values. Implementing further protocols (USB-based PC tracker?) can be added on with time. After I get that going, I want to flesh out the "bare bones" nature of the TSUNDERE and implant it into a medium sized electric piano. Some would cringe at the thought of gutting an NES just for the valuable chip inside (if anyone knows of a place to buy bare 2A03 chips cheap in bulk, let me know!).
Pictures
Files
Schematic: StandaloneNesPlayer.sch
PCB: StandaloneNesPlayer.brd
Code: StandaloneNesPlayer.txt

SonikTech Home
Contact Information
Welcome to my online build logs. All these projects are open-source and free to use for non-commercial purposes. Reach out to me at jarek-at-soniktech[dot]com if you have any questions!

They say great websites are built on the shoulders of giant libraries. Not here. At SonikTech we do all our coding from scratch. No hand holding. Banner font is 'Lato' from Google Fonts. Ad-free since Aught-3!