SIDemu board is an ARM MCU based
SID chip replacement hardware for the C64/C128.


SIDemuBoard V1.1

SIDemuBoard V2.1
SIDemuBoard is a 6581/8580 SID replacement
based on ARM MCU(s) with the following features:



SIDemuBoard V1.1
  • 1 Cortex-M3 MCU (overclocked)
  • Single SID emulation with accurate PHI2 synchronization
  • 16bit (2*8bit dual PWM ~400KHz) audio output @ 44.1KHz mixing frequency
  • Pseudo multi-sampling of waveform generators for seamless sound even at high frequencies
  • Combined waveforms are tabularized but also pseudo multi-sampled
  • Sub-sample generation before every register write
  • Read-only registers (OSC3/ENV3/POTX/POTY) and last bus state on reading from write-only addresses implemented
  • OSC3 and ENV3 not updated on every single clock so measurement test programs may fail but no audible differences in practice
  • POTX/POTY not tested with mouse yet (I don't have any) but may work in theory
  • Hard-sync and ring-modulation implemented
  • 5x oversampled state variable filter with an approximated distortion model in 6581 mode
  • The filter uses fixed-point arihtmetic
  • 5 predefined (R2/R3/R4/R4AR/R5) and 3 optional fully configurable SID model
  • SID models can be selected on-the-fly seamlessly with external buttons connected to the panel's pin header (buttons not included)
  • 4 LEDs to show actual state of the 3 envelope generators and the filter cutoff frequency
  • VDD and CAPs not connected so can be used in every motherboard revisions
  • EXTIN not implemented


SIDemuBoard V2.1
  • 2 Cortex-M4 MCUs (without overclocking) for cycle exact readback of OSC3 and ENV3 registers
  • Single SID emulation with accurate PHI2 synchronization
  • 16bit (2*8bit dual DAC) audio output @ 44.1KHz mixing frequency
  • Pseudo multi-sampling of waveform generators for seamless sound even at high frequencies
  • Combined waveforms are tabularized and brute force multi-sampled
  • Sub-sample generation before every register write
  • Read-only registers (OSC3/ENV3/POTX/POTY) and last bus state on reading from write-only addresses implemented
  • OSC3 and ENV3 updated on every single clock so measurement test programs works just fine in most cases
  • POTX/POTY not tested with mouse yet (I don't have any) but may work in theory
  • Hard-sync and ring-modulation implemented
  • 4x oversampled state variable filter with an approximated distortion model in 6581 mode
  • The filter uses floating-point arihtmetic
  • 5 predefined (R2/R3/R4/R4AR/R5) and 3 optional fully configurable SID model
  • SID models can be selected on-the-fly seamlessly with external buttons connected to the panel's pin header (buttons not included)
  • Voice feedback on changing SID models by external button
  • 4 LEDs to show actual state of the 3 envelope generators and the filter cutoff frequency
  • VDD and CAPs not connected so can be used in every motherboard revisions
  • EXTIN not implemented yet but planned
This demo compilation recorded from a C64G's audio output
with a SIDemuBoard V1.1 inside the machine.

This is an up to date demo. Recordings uploaded to my SoundCloud channel earlier may be depricated and sounds different.

Start timeTitle and Composer(s)SIDemu Board mode
00:00Ace II by Rob HubbardR4
00:30Alien by Paul ClanceyR4
01:00Back to the Future III by Charles DeenenR4AR
01:30The Chambers of Shaolin by Holger Knipping / M. HendriksR4AR
02:00Draconus by Adam GilmoreR4AR
02:30Eliminator by Jeroen TelR4
03:00Golden Axe by Jeroen TelR4AR
03:30Grand Prix Circuit by Kris HatlelidR4AR
04:00Hawkeye by Jeroen TelR4
04:30Katakis by Chris HülsbeckR4
05:00Kinetix by Jeroen TelR4
05:30Last Ninja 3 by Reyn OuwehandR4
06:00Outrun Europa by Jeroen TelR4AR
06:30Robocop 3 by Jeroen TelR5
07:00Savage by Jeroen TelR4
07:30Shadow of the Beast by Fredrik SegerfalkR4
08:00Skate or Die (intro) by Rob HubbardR4AR
08:30Terra Cresta by Martin GalwayR4
09:00The Untouchables by Matthew Cannon / Jonathan DunnR4AR
09:30Turrican 2 - The Final Fight by Markus Siebold / Stefan HartwigR2/R3/R4/R4AR/R5
Available soon...

2023-01-18 - SIDemuBoard V1.1:

The funcionality that I can manage to recreate with this MCU are more or less complete so the board will be available for purchase before long with affordable pricing.
Discontinued before its release because of the hardware has not proved to be sufficient.


2024-03-21 - SIDemuBoard V2.1:

It's still in development stage, but there's a good chance that this panel will actually become a product.

Please, come back later for new information.
SIDemu is my SID emulator project started in 1997.

The very first version written in Turbo Pascal 7 with inline assembly 6510 emulation and plays PSID V1 files only with the PC speaker's beep sound and everyting is done in just a single day.
Later in 2001 it played SID music with a primitive filter algo on Sound Blaster sound cards.

After that I started to write a complete C64 emulator in full x86 assembly then after several years pause I just started to rewrite it from scratch in Visual C++ with openGL.

In 2021 when I playing with an STM32F103C8T6 based proto board (the so called Blue Pill) I just had an idea:
Why not try to copy-paste the SID emulation part of the emulator into a CubeIDE project just for fun?

After some optimizing, ARM assembly learning, optimizing, optimizing and optimizing, proto board designing and more optimizing later SIDemu Board was born.

This is the story of SIDemu in a nutshell.

~ Lóránt ~

Review by StrayBoom:
https://kompjut0r.blogspot.com/2023/01/sidemu-part-1-sid8580-emulation-test.html
Last updated: 2024-03-25 21:04 (GMT+1)