Well, I’ve been hard at work tweaking my SID implementation. So far, I have moved all control functions over to a second 6502, added a bunch of hardware (bankswitching, display control, etc) and finally loaded some REAL SID tunes into it. I quickly ran into a ton of bugs with the envelope unit, which have been fixed now. I also worked on the combined waveform thinger too, and figured out pretty much how that works. There’s still a few issues left that I have to solve, like some aliasing between the SID output and the sample rate of my DAC. This is no surprise, however, since the NES has a similar problem with the periodic noise. I already have a 256th order FIR filter for the NES stuff, so I may just drop that in. On these following two demos you will probably hear the aliasing issues if you know what to listen for.
Also note that I know the pitch is slightly off on my demos- I am using 1.02MHz (NTSC rate) while most of these tunes are designed for PAL rate (0.98MHz). you can slow them down 4% or so if you wish to hear them at the correct pitch, tho it will be 4% slower. I was thinking of speeding the timer up and then slowing it down to compensate but I’m kinda lazy.
I’ve run 20 SID tunes through it so far and found a few minor bugs but I think they are supposed to be there. I’ve been listening to a real SID to determine which is the case. The jury’s still out- if nothing else, it’s just more noticable here for some reason and I will have to fix that.
Soo, give it a listen: