Hello everyone!
Currently, I'm working on a way to control an Super Nintendo Audio Processing Unit via a Teensy 4.1 in a portable form factor.
If you aren't aware, early models of the Super Nintendo have it's music and sound effect hardware on a modular daughterboard separate from the mainboard, commonly referred to as the APU. It contains an SPC700 audio processor, the Digital Sound Processor (DSP), which processes the output generated by the SPC700 and dumps out a digital stereo signal, and a DAC, which takes the output from the DSP and spits out line level audio, you know, things that DACs do.
The SNES would communicate over a parallel 8-bit bus, with a 4 bit addressing bus, and push one byte to the SPC at a time. The SPC700 and the SNES CPU has 4 dedicated registers dedicated to communication between the two, and each register has a 2 byte buffer, one for incoming data, one for outgoing. This allows for each register to be written to and read from at the same time, with only a possibility of corruption when one side reads at the same time the other side writes.
Essentially what I'm trying to do here is swap the SNES portion of this system w/ a Teensy, which would allow me to upload SPC processor state files (*.SPC) and play them off real hardware, w/o emulation. In layman's terms, SNES music w/o the SNES!
Currently, I'm not sure how I would be able to operate a parallel bus w/ a Teensy 4.1. I've seen w/ the Atmel Teensy's and other AVR chips that you can take advantage of port registers and map pins to each bit of a port register, and read/write to that. I've done some digging around and I can't seem to find any real way to do what I'm trying to do here, but maybe you all have a solution?
If you would like to see current source code, design documentation, further communication documentation between the SPC and the SNES, and other stuff, I have a Github repo that I've been keeping everything. You can find that here.
Any suggestions are much appreciated. Also, this is my first post here. Glad to be here! Teensy seems like such a great platform and I've had tons of fun developing on it.
Currently, I'm working on a way to control an Super Nintendo Audio Processing Unit via a Teensy 4.1 in a portable form factor.
If you aren't aware, early models of the Super Nintendo have it's music and sound effect hardware on a modular daughterboard separate from the mainboard, commonly referred to as the APU. It contains an SPC700 audio processor, the Digital Sound Processor (DSP), which processes the output generated by the SPC700 and dumps out a digital stereo signal, and a DAC, which takes the output from the DSP and spits out line level audio, you know, things that DACs do.
The SNES would communicate over a parallel 8-bit bus, with a 4 bit addressing bus, and push one byte to the SPC at a time. The SPC700 and the SNES CPU has 4 dedicated registers dedicated to communication between the two, and each register has a 2 byte buffer, one for incoming data, one for outgoing. This allows for each register to be written to and read from at the same time, with only a possibility of corruption when one side reads at the same time the other side writes.
Essentially what I'm trying to do here is swap the SNES portion of this system w/ a Teensy, which would allow me to upload SPC processor state files (*.SPC) and play them off real hardware, w/o emulation. In layman's terms, SNES music w/o the SNES!
Currently, I'm not sure how I would be able to operate a parallel bus w/ a Teensy 4.1. I've seen w/ the Atmel Teensy's and other AVR chips that you can take advantage of port registers and map pins to each bit of a port register, and read/write to that. I've done some digging around and I can't seem to find any real way to do what I'm trying to do here, but maybe you all have a solution?
If you would like to see current source code, design documentation, further communication documentation between the SPC and the SNES, and other stuff, I have a Github repo that I've been keeping everything. You can find that here.
Any suggestions are much appreciated. Also, this is my first post here. Glad to be here! Teensy seems like such a great platform and I've had tons of fun developing on it.