08-01-2020, 11:39 PM
(08-25-2016, 03:35 AM)hitchhikr Wrote: The only bits of information i've seen was here: http://www.smspower.org/Development/SN76489
There's brief information about Game Gear stereo extension through a port but this probably doesn't apply to the NGP.
Ok, i understood (sorry for the trouble): you have to write on both volumes registers to center the output, i think some pre-calculated left/right volumes tables would give stereo effect.
This question doesn't appear to have been answered, and I wondered how stereo worked and did not come across any documentation for it. I am working on a sound driver and have made some discoveries, so this seems like the best place to document them.
Per the Ivan Mackintosh document, let's refer to the 2 sound registers as CH123 and CH4, but I think these are misnomers.
I believe CH123 actually has 4 tone channels (i.e. channel 4 on this register can play a tone, but not if CH4 is playing a noise). I think this is how the driver used by NeoTracker allows channel 4 to be a tone or a noise.
Any volume commands sent to CH123 register (even for channel 4) go to the left speaker.
Any volume commands sent to CH4 (even for channels 1-3) go to the right speaker.
Therefore the method for panning would be different than Game Gear. VGM data ripped from NGPC games makes use of a non-standard VGM command 0x30. Normally 0x50 is a PSG command that can be sent right a register. For NGPC, they use 0x50 commands to go to CH123 and 0x30 commands to go to CH4, so stereo panning is managed by sending the appropriate volume command for each channel to both registers.