SwinSID analog controller hack

SwinSID paddle hack

I’ve covered SwinSID micro and nano few times before. It’s a great idea – a micro controller based SID chip replacement, working as a spare part  for a C64 or C128, or as a substitute to some other application like a DIY-synth. For Commodores, it’s especially suited for a gaming machine, as only very few games feature such tricks that would not sound about right on the SwinSID.

However, there’s this downside with the SwinSID that it does not support analog controllers. This is because it’s the SID chip that handles the reading of analog controllers in the C64, and the A/D converters are not implemented in the SwinSID. The number of games supporting paddles, mice or analog joysticks is not that big, but still it’s a shame that they won’t work with SwinSID. Also the few games that support second joystick button are affected. They behave as if the second button would be triggered constantly.

So there is a lack of fully featured replacement for a SID chip. This is a shame as SID chips are sought after, and supply for good and working chips is getting more and more scarce. The demand of SID chips have been recognized, as it’s not that difficult to find a supply of SID chips from Asia. It’s just that many have found out that these chips are often dead, faulty or downright fakes, and often rebadged.

Knowing that there are a lot of these faulty SID chips with bad filters or missing sound channels, it had occurred to me that maybe these could be combined together with SwinSID to make at least a fully featured replacement for the SID chip. Sound from the SwinSID, and A/D converters from an otherwise faulty SID.

Recently I ordered some spare parts from Mutant Caterpillar Games, who have a selection of chips for 8-bit computers in stock, including SID chips. As we were talking together with Ian Gledhill about SID sourcing challenges among other things I mentioned this idea of mine. He kindly sent me few faulty rebadged SID chips to test it out.

So, off I am to build an adapter that allows me to install SwinSID and a ‘badSID’ to the C64.

Completed proto adapter

Completed proto adapter

The adapter pretty much connects both ‘chips’ parallel, except that some unnecessary lines are not routed to SwinSID, and the audio out is only connected from the SwinSID. The setup works as hoped – SwinSID generates the sound, and paddles and mouse work! Success!

I built my adapter using two-sided stripboard to avoid from using much jump wires. The adapter is very simple and does not require any electric components, it’s only routing lines between the two sockets and the pin headers. It looks like a dual or stereo SID board, but that’s not what it does. There is no need for address selecting options, as both the SwinSID and badSID need to have the same address for the adapter to work.

I did add extra pins for badSID audio out for testing (right of the right-hand-side socket, in the shadow), and a jumper to cut off the secondary voltage  (+9/+12 V DC depending on chip model) supplied for the SID chip. Unfortunately the A/D converters did not work if the secondary SID voltage was not present. I was hoping that the A/D converter wouldn’t need the secondary voltage to work – then such an adapter would be independent in regards to SID chip and motherboard model used together with it.

However, as the chips I got were faulty to begin with, I could cross-test them with different board versions. The badSIDs I got are 6581 chips – designed to have 12 V as the secondary voltage. On the cost-reduced short board C64 the SID is supplied with only 9 V. Despite running under lower voltage, it did not seem to affect to how the paddles, or A/D converters work. Please do note that I do not recommend installing a SID chip to the wrong type of motherboard for normal use! I only noticed that if a bad SID chip is used for only paddle support, it seems to work fine under lower voltage.

As long as SwinSID does not have paddle support this is one way to overcome that flaw – and also a way to make use of faulty SID chips. My hand build adapter is big and clumsy, but it works as a proof of concept. To be really practical the adapter should be made as a pcb. Then it could be about as small as two sockets side by side.


8 Responses to SwinSID analog controller hack

  1. NR says:

    Great work!
    I had thought about this possibility too, but in the end it all comes down to how much would such an adapter cost.
    If it’s a reasonable price then I think this will be interesting for quite a few people, me included.

  2. Sendring says:

    It’s really nice to see what all those hardware people are tinkering. I wish I would be more skilled and could create hardware for old computers, too.

  3. KrK says:

    Nice! This is one of those things, where you suddenly have an idea, and lo and behold, you make it happens…. and it WORKS. :)

    Good job.

  4. Fabi says:

    Do you have any schematics to upload? I’m trying to build an adapter on my own but it seems that all the pins must be connected to the bad sid sockets in order to have the pots… thanks for your help! :)

    • ilesj says:

      Uh, haven’t done any schematics, but I’ll try to find my drawings of it and post them here!

    • ilesj says:

      Actually, the ‘bad SID’ socket can be wired directly to the pins going to the motherboard – except for the audio out pin. Audio out should be routed from the SwinSID socket of course.

      The SwinSID socket needs all pins except filter capacitor pins (1-4), Pot X,Y (23-24), audio in (26) and Vdd (28).

  5. MiaM says:

    What happens when the CPU reads the registers that are readable and afaik are present both in the real SID and in the replacement? IIRC there is one register to read the momentary ADSR value and one to read the waveform from one of the channels. Seems like there might be a bus clash when reading those registers.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: