The one page BASIC SID Benchmark.

How do you make sure the SIDs you bought from Ebay are fully working before giving feedback?

Or, you are the seller and you want to claim "100% fully working SID all voices. All Filters guaranteed!" and double check your stuff before you send the chips?

How do you make sure the SIDs that are in the old C64 in your dad's basement works before attempting a MIDIBox SID, sammichSID or other similar project? (Or midway through the project your dodgy soldering skills makes you wonder if you just blew out your 50$ SID?)

You find certain .sid files sound ODD on your setup and you want to be sure all waveforms of all channels sound good across the entire frequency range?

You want to make sure the filters are behaving within tolerance, or you want to quickly compare its frequency response with a third party?

or...

You are a nerd that does SID research, collect SIDs like Pokemons and compare each of them with scopes and frequency analyzers?


A: Sure I'm interested, but I don't have any fancy cart, X1541 transfer hardware. I only a bare C64 and a TV!

Then welcome to the world of BASIC program retyping!


This plays a sweep of every waveform on every channel like this:
___T (voice1, voice2, voice3)
__S_ (voice1, voice2, voice3)
__ST (etc...)
_P__
_P_T
_PS_
_PST
N___

Note: (T=Triangle, S=Saw, P=Pulse, N=Noise)

Next it does a filter sweep(resonance off) from all three channels with Noise
Low Pass (voice1, voice2, voice3)
Band Pass (etc)
High Pass

To my knowledge there is no other SID benchmark that is both relatively thorough and fast to type. This however does not test Pulse Width Modulation sweeps, ring mod or hard sync, and these could be part of a more in depth Benchmark, which I could code in assembler directly, and if there is enough demand, even make a 8KB ROM image in order to quickly use it with the various EPROM carts on sale on Ebay.

Closest thing I found is referenced from here. But it doesn't test sweeps nor all waveforms.

Also Mssiah users have access to a built in "Audio Test" which tries all voices and filter modes. But again, no help to you if you dont have that cartridge.

Proper steps for non C64-literate people:

Make sure nothing previously ran on your C64, or hit run/stop restore to make sure and type the following in:
120 v(0)=54272:v(1)=54279:v(2)=54286
130 poke54296,15:fori=0to2
140 pokev(i)+3,8:pokev(i)+1,0
150 pokev(i)+5,8:pokev(i)+6,198:next
160 fora=16to128step16:fori=0to2
170 if a>64 then pokev(i)+3,0
180 pokev(i)+4,a+1
190 forf=0to254step2:pokev(i)+1,f:nextf
200 pokev(i)+4,a:forw=0to200:nextw
210 pokev(i)+4,8:pokev(i)+1,0
220 nexti,a:a=1
230 fori=0to2:pokev(i)+1,255
240 poke54296,(a*16)+15:poke54295,2^i
250 pokev(i)+4,129
260 forf=0to255:poke54294,f:nextf
270 pokev(i)+4,136:nexti
280 a=a*2:if a<8 then goto 230
310 poke54295,0
(note at the end of line 240, the "^" character is a arrow pointing up on a C64, check listing picture)

type 'run'

If the test goes through without errors, it means you've probably typed it properly. Maybe its time to SAVE it! (You don't want to type this for all your SIDs right?)

using a 1541:
save"sidbench1",8,1
using a datasette:
save"sidbench"
and follow the instructions.

Note If you want better audio quality you can add these lines which will turn off the VIC chip (thanks to Lord Nightmare's SID Filter measurement code for the tip)
100 poke53280,0: poke53281,0
110 poke53265,11
290 poke53265,27
300 poke53280,254:poke53281,246

Alternatively:

If you have a X1541 transfer cable, get the D64 image

If you own a Commodore datasette, you can record this WAV file onto a cassette deck and play it on your c64. (note might have to invert phase in your favorite sound editor depending on your setup).

IMHO it surely beats randomly playing a few SIDs and affirming your chip is right.

Bonus points: you can test it in your favorite emulator to see how much aliasing it adds to the normal SID waveform generation's natural aliasing. Compare the audio results of the various SID settings in your emulator, etc.

So this post would not be complete without a few reference runs from some of my own chips.

Correct chips (NOTE these are NTSC recordings, PAL will have slightly different pitch):

6581R4AR (6581R4 AR 3086 S PHILIPPINES - see picture) Notes: (Brown C64) My 6581 reference for heavy filters.

6581CBM (6581CBM AR 2485 KOREA AH224867) Notes: (Brown 250407 C64) weird amplitude modulation in _PS_ wavform (seen this a few times on R2 and R3s)

8580R5 (8580R5 4887 25 HONG KONG HH465216 HC-30 - not pictured)
) Notes: (9V C64C) typical 8580, combined waveform are all audible, smooth filter.

Faulty chips:

6581_remarked2 (see remarked sid #2 in image) Notes: (Brown 250407 C64) quiet Low Pass filter, Near pass-through BP/HP

6581_remarked3 (see remarked sid #3 in image) Notes: (Brown 250407 C64) quiet LP/HP. Near pass-through HP.

EDIT January 2013: More Tests:
http://www.lemon64.com/forum/viewtopic.php?t=45909

Sad thing those remarked SIDs, I guess a whole subject in itself. People: there are no NOS SID chips anywhere now get it? Anything you buy as such should be taken with extreme caution. Please use this benchmark as a guide.

I agree with Wilba here, if the SIDs are FULLY tested, then I don't care if they are remarked or not "new old stock" as long as they are sold as such. SIDs are getting rare, this might be the only chance for some people to get their hands on SIDs...

Well not counting cannibalizing one of the 30 million C64's sold that is...

Comments

  1. I have a couple of hundred remarked sids that need testing (same date codes as the ones you linked to above). I don't need any SID chips now though, what do you think I should do with them?

    ReplyDelete
  2. Well I would be quite curious on the results of that test on them. 200 seems like a lot of cold-reboots for a poor C64, maybe

    1)Add a 24pin ZIF socket to your C64 and ease the testing? http://rocky.digikey.com/weblib/Aries/Web%20Photos/24-6554-10.jpg

    2)Send a random bunch over here (say 10) and I'll test them for ya. All in the name of science

    ReplyDelete
  3. Great stuff! I really enjoy reading your updates. Thanks for posting such detailed and interesting findings on how to pick a good SID.

    ReplyDelete
  4. Erm make that 28 pin ZIF and not 24, of course.
    I didnt hear from you btw.

    ReplyDelete
  5. Thanks for your code! I've finally managed to test the 8580 from the Commodore 64C I've two months ago from eBay!

    Now, I would have to build that damn sd2iec. Why Commodore didn't make their computers with an internal datasette controller like Spectrum and Amstrad so I could simply hook up an audio input from my PC? D:

    ReplyDelete
  6. Thanks Marcos! Very happy for the first feedback of someone actually trying it! :)

    ReplyDelete
  7. Hello, many thanks for the program! After connecting some cables with the power ON I had no sound in my 64. So, I typed this program just to check, and still no sound :-( Does that mean my SID-chips is gone or can it be something else?

    ReplyDelete
  8. Could be plenty of things. First:

    1)How is the audio coming out of the c64? (rf, RCA, etc)
    2)which model is it C64(brown), C64C(white)?

    ReplyDelete
  9. Gotta mention this: saved examples of "good chips" are corresponding to NTSC machines I guess? The frequency my PAL machine reaches on the higher end is lower than that shown here. Would be good to have it clarified so people don't think their chips have a sub-normal frequency response.

    ReplyDelete
  10. Is there any way to get .sid with this test? A don't have C64, only assembled midibox 1- and 8-chips versions and want to test them in sidplayer mode.

    ReplyDelete
  11. I seem to recall an app that does semi automatic conversions from a basic program to a .sid file. would need lots of googling.

    ReplyDelete
  12. Hi, thank you so much for this neat program. I have tested my 3 c64c's and they seem great. I just recently bought a brand new never used in the box C128 and I ran this program in c64 mode. It mostly worked but one of the tests seemed to break up a bit but the rest sounded fine. Not sure which one it was testing. Should this work the same on a c128 in c64 mode? I know some software running in c64 mode doesn't always work right, but not sure about this one.

    ReplyDelete
  13. The test are really "basic", and should work the same on a 128 in 64 mode. I suspect the SID is faulty (a bit), if you could make a recording I would tell you for sure.

    ReplyDelete

  14. 赤帯 Takashi Kawano made me aware of a cool site which has lots of SIDBench recordings of various chips.

    http://www.mutant-caterpillar.co.uk/ian_stuff/sid_chips.htm

    ReplyDelete
  15. Thanks for this piece of software. First I thought one of the channels were gone, but with SIDBench it was the filter that seems fubar (6581R4AR 1988). Today I picked up a breadbin. Filters work but in the sweeps the filter opens too quickly.. "You are a nerd that does SID research, collect SIDs like Pokemons and compare each of them with scopes and frequency analyzers?" haha. I did sample the sids with a good soundcard and in audacity there is Spectogram. here is a picture of this comparing my computer with top: a reference (from here i think), middle: the breadbin collected today, and bottom: my C64 http://www.casimages.de/i/150514033210851682.jpg.html .. I wonder if this problem this breadbin has can be fixed by replacing sid-filter caps...

    ReplyDelete
  16. Forgot to tell you about the video I made last night while trying to diagnose the sid chip https://www.youtube.com/watch?v=Glj5IJ4KIi4

    ReplyDelete
  17. More tests! (Just saw this)
    http://www.6581-8580.com/post.php?id=000001092015181007

    ReplyDelete
  18. Add this to disable the filter if you're running this after something else (if you need to do that, for whatever reason.)

    125 poke54295,0

    ReplyDelete
  19. If you need to run this after running something else, or you're running it multiple times for some reason, add this to reset the filter:

    125 poke54295,0

    ReplyDelete
  20. Hi David, thank you for this useful BASIC tool good to test our SID chips! I tested my 6581R3 and, like your good 6581 chips, some combined waveforms are nearly inaudible. It seems strange to me that this is a correct result... why? Can you explain this?

    ReplyDelete
    Replies
    1. The combined waveforms were really badly implemented on silicon and can't really work the way they were layered out (that part is analog). I think the simplest way to think about it is a bunch of bits fighting in a tug of war contest, and very often the zero side wins, but the actual results are non deterministic more than the 6bit out of 12 (ish rough ballpark)

      Delete
  21. The _PS_ test seems to trip up the most chips by far - I've heard loads of crackling from a couple of mine (R3 and R4AR) and a couple have this odd digital 'ping' noise at the end exactly as in your R3 example. Should this be considered a fault? I've got two R3s here which both do it, one on voice 3, the other on voices 1 & 3. I have several R4ARs and an R2 that don't do it at all.

    ReplyDelete
    Replies
    1. Not a fault, it varies across the board. combined waveform are really just a miracle to begin with. More tech details later when I release an update test (yes its been worked on)

      Delete
  22. Thank's Plogue! I used your SID test last night to diagnose a faulty SID in a C64 that has video, swapping out with a dead video C64's SID and voila!

    https://www.youtube.com/watch?v=ygQnze0JfBY

    ReplyDelete
    Replies
    1. Awesome! Saw you added some print statements nice. A much better SID test is in the pipes. can't say more.

      Delete
  23. Warning when the program is running, do not break the program otherwise it will crash the system whilst it's running the first set of pitches otherwise it will crash the system and it will reboot, found that out the hard way. (PAL C64 with a '84 mobo)

    ReplyDelete
    Replies
    1. Crash the system? Its just a basic program, of course a voice that is playing will not stop if you hit run-stop. It will iirc if you run-stop restore however.

      Delete
  24. Hmm... This locked up my newly acquired C=64, and I checked my entry. I did get some sounds from another program, but it wasn't enough to validate that the SID is fully operational.

    ReplyDelete

Post a Comment