Super Nintendo SPDIF, DACs, and You
Oct 29, 2014 at 7:19 PM Thread Starter Post #1 of 32

CkRtech

New Head-Fier
Joined
Oct 29, 2014
Posts
5
Likes
10
Hey all - First post.
 
I have joined this forum in the pursuit of knowledge - transitioning from the video game mod community to one of sound due to my current curiosity.
 
10+ years ago, the Internet became aware of how it was possible to add SPDIF output to a Super Nintendo. I have performed this mod using a Cirrus Logic CS8406 using the information found here: http://gamesx.com/wiki/doku.php?id=av:snes_sp_dif
CS8406 Datasheet: http://www.cirrus.com/en/pubs/proDatasheet/CS8406_F6.pdf
 
One thing from the how-to document that is interesting to note is that the sample rate shown on the oscilloscope is 32,040 Hz rather than a standard 32,000 Hz.
 
When testing the output (to a Marantz SR8002), the receiver was more than happy to playback the signal. It was also considerably louder than the native analog output when leaving the receiver volume at the same level and jumping back and forth between the analog output and the new spdif output. The sound had much better range (subwoofer kicked off a bit more), and the noise caused by the analog video signal bleeding into the native analog audio output was gone.
 
It was better. ...kinda.
 
I noticed that some sounds seemed edgy when they started playing - Almost like there was a bit of static at the start of certain sound fx. I do not believe that this is as designed - meaning that the flaw comes from the sound processor itself, however I also found that the same static seems to happen with the analog output of the SNES - although it is easier on the ears because the SNES analog output seems a bit muffled.
 
We're talking early 90s technology, and 32Hz - Not exactly audiophile-grade, but could it be made better somehow? I don't really know what to do with digital aside from clean the power or run the CS8406 to a different DAC than the one in my receiver.
 
The SNES's internal DAC is an NEC UPD6379.
 
Here are my questions:
 
1: Is this just "how it is" (rendering my other questions moot). Basically - is it just going to sound a bit harsh and have certain sounds contain a hint of static?
2: Can the difference in sample rate from the expected standard 32,000 possibly cause audible artifacts in the sound regardless of the DAC used (in my case, the internal UPD6379 vs the Marantz SR8002's DAC)?
4: There is a possibility that the +5V power of the SNES needs a bit of filtering. What sort of issues might I hear in the output of the internal DAC UPD6379 and/or my CS8406 should the Vcc have a bit of noise?
5: What would you do...if anything at all?
 
Thanks for reading.
 
Oct 29, 2014 at 10:54 PM Post #2 of 32
I honestly don't know much about this. I'm new to head-fi however thats strange with the extra 40hz reading on the oscilloscope. It could very well be the problem. Cause SPDIF is supposed to be used with specific sample rates I think. So running it with a different DAC probably would clean up the sound but that static you hear before sound effects has to have something to do with either the game cartridge or the sound processor in the system.
 
Oct 29, 2014 at 11:21 PM Post #3 of 32
  Hey all - First post.
 
I have joined this forum in the pursuit of knowledge - transitioning from the video game mod community to one of sound due to my current curiosity.
 
10+ years ago, the Internet became aware of how it was possible to add SPDIF output to a Super Nintendo. I have performed this mod using a Cirrus Logic CS8406 using the information found here: http://gamesx.com/wiki/doku.php?id=av:snes_sp_dif
CS8406 Datasheet: http://www.cirrus.com/en/pubs/proDatasheet/CS8406_F6.pdf
 
One thing from the how-to document that is interesting to note is that the sample rate shown on the oscilloscope is 32,040 Hz rather than a standard 32,000 Hz.
 
When testing the output (to a Marantz SR8002), the receiver was more than happy to playback the signal. It was also considerably louder than the native analog output when leaving the receiver volume at the same level and jumping back and forth between the analog output and the new spdif output. The sound had much better range (subwoofer kicked off a bit more), and the noise caused by the analog video signal bleeding into the native analog audio output was gone.
 
It was better. ...kinda.
 
I noticed that some sounds seemed edgy when they started playing - Almost like there was a bit of static at the start of certain sound fx. I do not believe that this is as designed - meaning that the flaw comes from the sound processor itself, however I also found that the same static seems to happen with the analog output of the SNES - although it is easier on the ears because the SNES analog output seems a bit muffled.
 
We're talking early 90s technology, and 32Hz - Not exactly audiophile-grade, but could it be made better somehow? I don't really know what to do with digital aside from clean the power or run the CS8406 to a different DAC than the one in my receiver.
 
The SNES's internal DAC is an NEC UPD6379.
 
Here are my questions:
 
1: Is this just "how it is" (rendering my other questions moot). Basically - is it just going to sound a bit harsh and have certain sounds contain a hint of static?
2: Can the difference in sample rate from the expected standard 32,000 possibly cause audible artifacts in the sound regardless of the DAC used (in my case, the internal UPD6379 vs the Marantz SR8002's DAC)?
4: There is a possibility that the +5V power of the SNES needs a bit of filtering. What sort of issues might I hear in the output of the internal DAC UPD6379 and/or my CS8406 should the Vcc have a bit of noise?
5: What would you do...if anything at all?
 
Thanks for reading.

Subbed this is pretty darn interesting! 
 
I really like SNES sound tracks... 
 
Oct 30, 2014 at 12:16 AM Post #4 of 32
Because the sample rate is 32kHz the nyquist frequency will be 16kHz, so there will be a lot of 'trash' in the audible range from 16k - 20kHz. This should be getting filtered out with a low pass filter, but perhaps your receiver doesn't do a good job of this for 32kHz sample rate.
 
Also it could be a ground-loop or similar in the digital circuit that's affecting the analog stage, so you could try transformer coupling the spdif output if you aren't already doing so. If you're using optical this certainly won't be the issue.
 
Oct 30, 2014 at 1:08 AM Post #5 of 32
  Also it could be a ground-loop or similar in the digital circuit that's affecting the analog stage, so you could try transformer coupling the spdif output if you aren't already doing so. If you're using optical this certainly won't be the issue.

 
Ahh. I am pretty much using the guide's components only at the moment and elected to use the coax output. I also must admit that I grabbed some high quality stereo RCA cables from my stash of cables and used them for testing. I am not sure if they are 75 ohm or not...that is one other thing to change.
 
Dec 7, 2014 at 9:54 PM Post #6 of 32
I agree with the suggestions so far.  One thing I've done to solve the issue of the slightly-high 32.040 kHz sample rate is add a sample rate converter before the SPDIF transmitter and resample to 96 kHz.  This improves compatibility with more modern DACs/receivers/etc., reduces any jitter, and with a good DAC eliminates any audible "trash" between 16-48 kHz (which is well outside the limits of our hearing).  Here's a look at a SNES SPDIF board I designed this past summer with pretty much all of the suggestions in this thread (added linear voltage regulator and filtering, sample rate converter, and digital pulse transformer):
 

 
It works exceedingly well with no issues (no dropouts or delay/lag) after hours of gaming, and it sounds great to boot!
 
Dec 8, 2014 at 6:55 PM Post #7 of 32
  I agree with the suggestions so far.  One thing I've done to solve the issue of the slightly-high 32.040 kHz sample rate is add a sample rate converter before the SPDIF transmitter and resample to 96 kHz.  This improves compatibility with more modern DACs/receivers/etc., reduces any jitter, and with a good DAC eliminates any audible "trash" between 16-48 kHz (which is well outside the limits of our hearing).  Here's a look at a SNES SPDIF board I designed this past summer with pretty much all of the suggestions in this thread (added linear voltage regulator and filtering, sample rate converter, and digital pulse transformer):
 
It works exceedingly well with no issues (no dropouts or delay/lag) after hours of gaming, and it sounds great to boot!

 
Holy cow, L-Train. Thanks for sharing!
 
Do you think it is worth having the extra components that are in that circuit? Do you have any HQ recordings of the simpler circuit vs this one that you made?
 
Did you only make one PCB for prototyping the circuit, or have you also mass produced a batch of them?
 
Dec 8, 2014 at 10:03 PM Post #8 of 32
   
Holy cow, L-Train. Thanks for sharing!
 
Do you think it is worth having the extra components that are in that circuit? Do you have any HQ recordings of the simpler circuit vs this one that you made?
 
Did you only make one PCB for prototyping the circuit, or have you also mass produced a batch of them?


I think it's worth having all of that extra stuff in the circuit to make it robust.  My main goal was to get a sample rate converter in there so I chose the Texas Instruments SRC4192 because it has a hardware mode, no microcontroller is needed.  Unfortunately, that IC only supports 3.3V so I had to add 1) a 3.3V regulator and 2) a level shifter for the clocks/data coming from the SNES since (I assume, I don't have access to a scope) it's 5V level and the SRC4192 isn't 5V tolerant on its inputs.
 
Regulating down to 3.3V also gives a good bit of headroom for voltage drops and noise that can be caused by mid-scanline DRAM refreshes (see http://forums.nesdev.com/viewtopic.php?f=12&t=9890) and whatever else, so that's a plus.  Essentially I based the whole power supply section on the supply section in AMB's γ2 DAC (thanks AMB!) and used a TI TPS79333 and ferrite beads for filtering.
 
The level shifter is a TI SN74LVC125A buffer which has 5V tolerant inputs (it's the IC on the left that's closest to the wires coming from the SNES).  I'm not sure if the lines from the SNES are all that dirty, but hey, at least this could clean it up some.
 
The oscillator is in the middle (a CTS Corp. CB3LV-3C-24M5760) between and above the SRC4192 and Cirrus Logic CS8406 digital audio transmitter.  And to the right is a Pulse Electronics PE-65812FNL transformer to eliminate any ground loops.
 
I can make some bit-perfect recordings of the 96 kHz audio when I get some time in the next few days, but unfortunately I've never made up the simpler circuit so I can't record that.
 
I had 3 boards made by OSH Park for prototyping, but my extras have been reserved by a few friends.  Sorry!  If you're interested in one I can let you know if I have some more made.
 
Dec 9, 2014 at 3:05 AM Post #9 of 32
 
I think it's worth having all of that extra stuff in the circuit to make it robust.  My main goal was to get a sample rate converter in there so I chose the Texas Instruments SRC4192 because it has a hardware mode, no microcontroller is needed.  Unfortunately, that IC only supports 3.3V so I had to add 1) a 3.3V regulator and 2) a level shifter for the clocks/data coming from the SNES since (I assume, I don't have access to a scope) it's 5V level and the SRC4192 isn't 5V tolerant on its inputs.
 
Regulating down to 3.3V also gives a good bit of headroom for voltage drops and noise that can be caused by mid-scanline DRAM refreshes (see http://forums.nesdev.com/viewtopic.php?f=12&t=9890) and whatever else, so that's a plus.  Essentially I based the whole power supply section on the supply section in AMB's γ2 DAC (thanks AMB!) and used a TI TPS79333 and ferrite beads for filtering.
 
The level shifter is a TI SN74LVC125A buffer which has 5V tolerant inputs (it's the IC on the left that's closest to the wires coming from the SNES).  I'm not sure if the lines from the SNES are all that dirty, but hey, at least this could clean it up some.
 
The oscillator is in the middle (a CTS Corp. CB3LV-3C-24M5760) between and above the SRC4192 and Cirrus Logic CS8406 digital audio transmitter.  And to the right is a Pulse Electronics PE-65812FNL transformer to eliminate any ground loops.
 
I can make some bit-perfect recordings of the 96 kHz audio when I get some time in the next few days, but unfortunately I've never made up the simpler circuit so I can't record that.
 
I had 3 boards made by OSH Park for prototyping, but my extras have been reserved by a few friends.  Sorry!  If you're interested in one I can let you know if I have some more made.

 
Wow. Very impressive.
 
Interesting that you mention the DRAM refresh issue. I have a set of caps here that I plan on putting in my SNES for the purpose of filtering the power and hopefully reducing the presence of the vertical bar before finally closing up the system.
 
I have a scope in the event that you would like me to check any signal levels for you. Granted, it sounds like you have multiple advantages with your 3.3V setup.
 
Definitely let me know if you have some more boards made. Do you know a ballpark cost?
 
Also - were you already familiar with building a sound circuit like this one? That is quite a comprehensive build you have going. You are covering a lot of bases.
 
Dec 9, 2014 at 9:52 PM Post #10 of 32
   
Wow. Very impressive.
 
Interesting that you mention the DRAM refresh issue. I have a set of caps here that I plan on putting in my SNES for the purpose of filtering the power and hopefully reducing the presence of the vertical bar before finally closing up the system.
 
I have a scope in the event that you would like me to check any signal levels for you. Granted, it sounds like you have multiple advantages with your 3.3V setup.
 
Definitely let me know if you have some more boards made. Do you know a ballpark cost?
 
Also - were you already familiar with building a sound circuit like this one? That is quite a comprehensive build you have going. You are covering a lot of bases.


The cost was ~$11 for 3 boards and $35 for the parts for 1 board, so around $50 for a single completed board with tax and shipping.  I've made a few other analog PCBs before (phono amp, etc.) but this is my first time designing a digital circuit & board.  I'm super glad it worked on the first try
biggrin.gif

 
Here's a sample of the Donkey Kong Country intro and stage select in 96 kHz/24 bit FLAC:
 
https://www.sendspace.com/file/vg7dpi
 
It was recorded using the S/PDIF input on my E-MU 1616M with ASIO so it's a bit-perfect recording of what's coming out of the modded SNES.
 
Jan 15, 2015 at 8:55 PM Post #11 of 32
Hi everyone,
 
I just got some more interest in my SNES S/PDIF board so I decided to put it up on OSH Park's Shared Projects for everyone to order!
 
https://oshpark.com/shared_projects/Qdy2pZzr
 
It's pretty cheap at ~$10 USD for 3 boards (including free shipping!).  Since I can't attach a BOM I've just pasted it here:
 
PartDigi-KeyManufacturer Part #PackageValueNoteQty
FB1, FB2, FB3, FB4240-2412-1-NDHI1206T500R-10R1206  4
C1, C2587-2783-1-NDLMK325B7476MM-TRC121047uX7R2
C3, C6, C8399-1158-1-NDC0805C103K5RACTUC08050.01uX7R3
C4, C5, C7399-1171-1-NDC0805C104J5RACTUC08050.1uX7R3
C9399-1113-1-NDC0805C220J5GACTUC080522pC0G/NP01
R1, R2, R3, R4, R5, R6RR12Q68DCT-NDRR1220Q-680-DR080568 6
R7RR12P249DCT-NDRR1220P-2490-D-MR0805249 1
R8RR12P110DCT-NDRR1220P-111-DR0805110 1
U1296-8453-1-NDSN74LVC125ADRSO14  1
U2296-15234-5-NDSRC4192IDBSSOP28  1
U3598-1121-5-NDCS8406-CZZTSSOP28  1
U4296-12961-1-NDTPS79333DBVRSOT23-5  1
X1CTX1269CT-NDCB3LV-3C-24M57605x7mm  1
T1553-2250-NDPE-65812FNLPE-65812FNL  1
 
Of course, I make no guarantees that it'll work or that it won't blow up your system etc., but if you're having any issues I'll try to help when I can.
 
Feb 19, 2015 at 1:20 PM Post #15 of 32
  Excellent stuff!  Hopefully the build goes smoothly and let us know how it goes!


Well I ordered a set of pcbs and 3 sets of components, hooked one all up and I got nothing...
I'm a disappointed with documentation here as well.
For instance i'm not sure how exactly d+ and d- are supposed to be used.
I'm going to coax if that helps.
Also very disappointed with the pcb design itself, zero thermal relief! Why? Maybe the cad software you're using doesn't do it automatically?
It was also crammed tight which I normally like, but if you put certain component on before others you're screwed!
The Pulse transformer is so huge! Though not really a stuffing problem as it doesn't hide much.
The 47uF ceramics are placed so that if you don't stuff the 3.3v chip first they'll have to come back off etc.
Complaints aside I really want this to happen as i've already tried the easy mod and the audio wants to fade in and out on my old ****ty klh r7000 receiver.
I don't have another receiver with coax capabilities yet, but plan to borrow one soon.
So where do I begin to trouble shoot this kit?
 

Users who are viewing this thread

Back
Top