Assuming the output library accurately emulates the output of the 9919 it is interesting to note the noise is all positive while tones are mostly positive, whereas the recorded output of most MAME games is all positive.
None of them are very accurate in my experience. I've spent a lot of time measuring the output of the actual console to improve Classic99's playback. (In the end, I left it inaccurate too, and I'll briefly cover why).
First thing is that the real output is very noisy, in three ways. First, the 99/4A just throws a crapton of noise onto the wire - up to a volt's worth in many cases!
Second, the 2dB attenuation has a 50% plus or minus error per the datasheet, so each step is anywhere from 1db to 3db attenuation.
Thirdly (and this is documented and emulated in some libraries), the chip leaks, so all the waveforms drift towards zero rather than being square.
I measured the attenuation as best as I could on my scope, and got ranges from roughly 0 to 720mV at the TI output. (Again, sound chip emulators emulate the sound chip.. I don't think /any/ attempt to include the analog circuitry between the sound chip's output pin and the output of the computer). I saw the center point near 1v, so, nothing ever went negative. Also, for attenuation, I saw the highest voltage stay constant and the lowest voltage increase (actually moving the center point).
The SMS Power documentation says that noise never goes negative, but my older measurements said that white noise does, and periodic noise doesn't. I still need to reverify that. In fact, all this still needs more testing to be certain I didn't screw something up.
In the end, all that matters is the shape and the amplitude, not the center point. Leaving the center point at 0 volts actually plays nicer with the host system, avoiding clicks on startup and the like.
Edited by Tursi, Sun Mar 22, 2015 5:22 AM.