It's not necessarily any cheaper/easier to make a saw than a triangle the way they did it. The triangle wave generator is not a CPU running a program; it is a collection of logic that outputs to a DAC, so there is no "processing" or "computation" time in that sense. Oscillators on the 2A03 are not sharing a common processor resource (i.e. time); each one runs in parallel.
I'm not sure whether a saw wave generator would have taken less logic parts, but my intuition is that the difference in this case would have been negligible. I'm certain the VRC6 saw wave has a lot more logic components than the 2A03 triangle.
9H0ST I think has the best explanation. A saw has very strong harmonics which make it harder to blend with other sounds. The triangle is preferred for bassline for the same reason that a bass guitar is usually preferred to a baritone saxophone for this purpose. Similarly, consider a saw wave with no volume control like the triangle. This would probably be about the same level of complexity to implement, but imagine how hard it would be to balance with the other channels. Triangle is pretty hard to balance already, but at least because its audible bandwidth is mostly underneath/separate from the pulse channels it's manageable.
The triangle has no volume control, because it's built very similarly to the pulse channels. Each of these has a 4-bit output; in the case of pulses the DAC is either the square's volume setting or 0. In the case of the triangle, the shape of the triangle has 16 steps, already using its 4-bits of output. It'd be a lot of extra parts to be able to control its volume (you'd need an 8-bit output, and some logic to control the amplitude).
fluidvolt: They actually made a few bad design decisions on the 2A03. The DPCM frequency table is particularly poorly chosen, in my opinion. The length counter table is somewhat useless, as well. The DPCM also conflicts with the data bus used by controllers, so games that use DPCM have to read the controller state 3 times every frame to prevent bad button-press data. (Interesting thread at NESDev about DPCM frequencies here.)
Last edited by rainwarrior (Jul 5, 2012 7:29 am)