Monday, May 31, 2010

I'll get you 1771!

A full day spent figuring that chip's sound generation again. Recorded the two separate output pins in a multitude of ways, but there seems to be signal bleed whatever I try (even removing the chip and lifting one of the pins of its socket from the circuit)

This is not your typical PSG.

Friday, May 28, 2010

uPD1771C noise puzzle

LFSR feeding a delta-modulated logarithmic DAC???
Evil 80's reverse engineering protection???
Alien message?

Wednesday, May 26, 2010

.plan (audio version)

Anyone old enough to remember what a .plan file is?

I just got the idea of making a status update on what im working on, in audio form. These will not come with any explanations whatsoever. They might be current bugs, new features, tests or experiments from code im currently working on...

Here's the second one.

I'll twitter any updates to it as I go along (

Thursday, May 13, 2010

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?


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...)

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:
using a datasette:
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


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:

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...