Yes, the stereo mod changes things since you decide how much they are mixed and at what levels.
A logged NES format would be nice for some uses. I'd like th eventually make a logged format suitable for any system, that my sound library could output to for things like this. No reason to have different formats for each system, since logged data is much more similar than ROM-like formats.
kyuusaku, I found my original notes about how the DACs likely work. It's the model I based the formulas on:
DACs appear to be implemented with resistors added together. Approximate resistances generated by each DAC, in ohms, where dac is the value to the dac:
Code:
rdac = runit / dac
Each DAC has its own runit:
Code:
square runit = 8128 ohms
triangle runit = 8227 ohms
noise runit = 12241 ohms
DMC runit = 22638 ohms
Thus, the DMC's DAC at 127 (maximum) acts like a resistor of approximately 178 ohms (22638 ohms / 127).
The DMC, triangle, and noise DACs are connected in parallel to form group 1. The two square DACs are connected in parallel to form group 2. The resistance of a each group can be calculated as follows:
Code:
1
rgroup1 = -------------------------------------
1 / rdmc + 1 / rtriangle + 1 / rnoise
1
rgroup2 = ---------------------------
1 / rsquare1 + 1 / rsquare2
A voltage output for each group is generated by forming a voltage divider with a 100 ohm resistor tied to ground (this is external to the chip), using a 1.17 V input voltage (internal to the chip). The output voltage can be calculated as follows:
Code:
1.17 * 100
vout = ------------
rgroup + 100
The two groups are mixed via 12K and 20K resistors (external to the chip), forming another voltage divider. This can be approximated by simple scaling factors:
Code:
vout = 0.625 * vgroup1 + 0.375 * vgroup2