Exploring C64 SID Schematics
The Commodore 64 SID chip is something it should already be done perfectly. There are schematics for the two SID chips. What else would you need?
Well, after looking at the schematics I can see some reasons why people hear differences between SID implementations, real chips and even between individual chips. Let me explain.
There is a large digital section. This one can be replicated to 100% accuracy. I am assuming everyone got that right. The problem is the analog section which is comprised of resistors, capacitors and amplifiers.
1. Resistors will vary from wafer to wafer typically by ±20% Inside the same chip, one resistor will be different from any other one, with a variation typically within ±5%
2. Capacitors have variations similar to those of resistors
3. Amplifiers in SID appear in a a couple of forms. Each one will have different non linear effects and again, there will not be two equal amplifiers once you hit the non linear regions
We can overcome items 1 and 2 by adding some tuning capability to the SID code. If done in a smart way, it wouldn't need too many parameters to let the user get the feel of the SID he likes.
As for the amplifiers, I am going to look into ways of characterizing them. Once that is done, I can built in the transfer function so we emulate that response with a digital amplifier. This is what is regularly done with valve guitar amplifiers in modern electronics.
I don't know if a parameter-base solution with lots of OSD options will make people happy. But I don't see much else to do. There are just not two equal SID chips out there.
Comments (11)
Will this implementation just be the SID which then can be implemented in the C64 core etc? I would love to see a standalone SID / Mod Player so the Mist / Mister can be used as a jukebox.
My idea was to just make the sound chip as I made with the NeoGeo or Megadrive. Other people can use it then freely.
Very well explained, indeed. Many thanks for that look-behind-the-curtain. > I don't know if a parameter-base solution with lots of OSD options will > make people happy. But I don't see much else to do. I for myself can live with that. In fact I think I'll never have a need to fiddle around with SID paramer optimizing :) So why not implement one option for hardcore SID users and one for the fire-and-forget default SID option?
No need for a fire-and-forget. It's called default settings.
This interests me too !
I would suggest that it should be possible to decide between the two chip types 6581/8580 and different profiles like other New SID implementation like FPGAsid, ARMsid and SwinSid Ultimate. It would be nice if you could play sid files using Sidplayer and play with different settings while the sound is playing. The implementation should support 2Sid, 3sid and 4sid sid files. It would be nice if the implementation also supported PRG files. It would be a nice feature, if you could query the SID from the C64 assembly like the other New Sid implementations.
I've seen analog chips with what seems to be resistance probing zones in corners and sometimes even right in the middle of the circuitry. Was this used to select "good" dies ? Or maybe to match similar ones from multiple wafers ?
Large devices around the pads are normally ESD protections. Some of them use resistors, others are just off-connected MOS devices. There are resistance probing locations on wafers to identify bad batches but they are cut off and you wouldn't seem those on the actual die. Large resistors in the middle of the chip will most likely be just that, large resistors, with an electrical function. In high performance analog chips, resistors and capacitors can be trimmed. Sometimes the trimming is digital by switching in and out devices in order to match a value. Sometimes the trimming is physical and the resistors are literally trimmed by a laser beam to match the desired value. Even in modern technologies R/C variation is very large, although on-chip matching has improved a lot.
Really interesting and explains a lot. I may got shot down for saying this but it does beg the question is it worth the effort?
I don't know. Maybe people will enjoy tweaking the parameters to find the best sound to them or for a given demo.
This is REALLY exciting!
