SID-Ulator Sound Module


  • Emulated MOS8580 or MOS6581 SID
  • Default and Alternative Port Address
  • Simple Jumper Setting
  • 3.5mm Audio Output
  • Footprint for “Dummy” DIP28 Chip
  • Easily programmable, even from BASIC


The SID-Ulator Sound Module emulates the MOS6581 or MOS8580 Sound Interface Device, or SID.


The SID was originally fitted to the Commodore 64, and later to the CBM-II, Commodore 128 and MAX.  It allowed for some of the best game soundtracks of its time.  It also gave a lot of musicians and future musicians an digital music.  With its legendary status, the SID has crossed over from home computers to the world of music.  With production ceasing decades ago, original working SID chips fetch an eye watering price these days. This has lead to several emulated variants, one of which is the Nano SwinSID b.

Nano SwinSID b

The original SwinSID, designed by Swinkles in 2005 had a few limitations, but was later improved upon and reduced in size. This became known as the Micro SwinSID.  Later this was improved again and reduced to the footprint of the original SID chip.  This is the Nano SwinSID b that the SID-Ulator Sound Module is largely based on.

At its heart is an ATMega 88 micro controller.  This runs firmware that emulates most of the features of the SID chip.  Because the 6581 and 8580 SID chips had slightly different sounds, two wavetables are programmed in to it.  A solderable bridge can select which sound to reproduce.

Some of the requirements of the original SID, such as requiring a 12v supply or particular filters no longer apply.  A couple of features have also been dropped.  Whilst the SID had analog input to support two paddles, the SwinSID doesn’t.  The read only voice 3 registers for oscillator and envelope are not available either.  The lack of these is unlikely to have much of a negative impact.

Surface Mount Parts

All of the surface mount parts on the SID-Ulator Sound Module are supplied pre-assembled, programmed and tested. These, along with the TC2030 programming header sit within a DIP28 footprint. You can use this to mount any DIP28 chip (not supplied) to cover up the modern parts. Note that none of the pads are connected to anything, so you can use any chip. This is a good use for a non-functional SID. Or why not use a AY-3-8912 and prank your friends!

The 8580/6581 jumper is open by default, which means it will emulate an 8580.  Soldering a blob over this will change it to a 6581.  Note that soldering this blob is easier before fitting the dummy DIP28 socket, but not impossible.

Addressing and programming

By default this module uses 0xD4 for register selection and 0xD5 for data, which is designed to fit in with the Why Em-Ulator addressing scheme, as well as being a hat tip to Commodores 0xD400 memory range for the SID.  Whilst the Commodore machines use memory mapped I/O, the Z80 uses ports.  So instead of POKEing an address with a value, an OUT to set the register followed by an OUT to set the data is used.  This makes it easy to program in BASIC or assembly code.  The original Commodore C64 manual can even be used with a simple Search & Replace! See GitHub examples.

File comparison showing example code from C64 programming manual compared to RC2014 equivalent


SID File Compatibility

One of the things that the SID is famous for is SID Files.  Whilst this module is capable of making the same sounds as a C64 playing a SID tune, an RC2014 will not play those.  A SID file is simply 6502 code with a predefined header.  The code itself can vary hugely in complexity between composers, as well as where it resides in memory.  Whilst some of the more simple SID files can be converted over, don’t expect this module to give you access to play the huge catalog of SID files. 



Drivin’ was written for the SID-Ulator by Shiela Dixon and used with permission.


Bill of materials

You may also like…