Friday, January 13, 2023

SIDEMU - Part 1. SID8580 emulation test

update: a webpage for SIDEMU with additional information about the project is live now: http://sidemu.scienceontheweb.net/


Happy New Year.

It's been some time since I posted. Lately I wasn't much interested in fixing retro hardware or comparing SID replacements, etc. I don't even follow this segment of retro hobby and hobbyists and I wouldn't know there's a new SID replacement if Lorant M. (aka. DaemonPig) never contacted me. But he did, and after a nice chat he sent me his prototype SIDEMU for a test.

It's been in development for some time and he especially focused on the sound of 6581 SID's emulation - with a side effect there's no special effort on the 8580's side. His words, not mine. More on this later.

As my time is limited and honestly, making a comprehensive audio test requires a lot of recording time, this took more time than him or me expected. Nevertheless, first part of the comparison is here, putting the 8580 emulation under stress-test.


What is SIDEMU?

It's a similar solution to ArmSID and SwinSID (FPGASID is different, it's based on FPGA) with a custom emulation code. It fits the slot of the SID chip on any C64 motherboard revision, just remove the original SID and put this one in. There's a config file (native C64 prg) which, upon load you can select SID model and setup various bits of the emulation eg. filter strength/frequency, ADSR boost and more. There's 3 save slots for custom settings too.

It's a single SID emulation and I have no information if dualSID emulation is planned in the future.


Okay, so without further yada-yada, let's continue with audio examples and waveforms.

The following audio tracks are a variety of SID music - parts only, edited and chopped but NOT processed at all, they come without volume normalisation too.

Purpose is to show the true audio output of a SID8580 and SIDEMU in 8580 emulation mode, unaltered, no make up, nothing.

First, we're going to test SIDEMU with pure SID sounds. Tricky players, 1x and multispeed tracks and with some proper SID wizardry too.

Order of audio segments: one *beep* SID8580, two *beeps* SIDEMU, one *beep* SID8580, two *beeps* SIDEMU


01. Fred Gray - Legend of Kage

Classic SID tune, a classic emulation-breaker player routine.


02. David Whittaker - Lazy Jones (subtune 1)

Similar to the previous track, a classic SID tune, a classic emulation-breaker player routine.



03. Jammer - Latest Revision

I don't think it's possible to squeeze more waveform and filter change into a single-speed track than this. Jammer is truly a master of sound design and SID-torture.



04. Warp8 - Androgit

3 channels of SID music, 3 different (multi)speed of playback.



05. Shogoon - Anoushka

It's a sitar. It's a damned sitar on a SID and of course it's not sampled.



06. Manganoid - Cowboyessness

Impressive blues harmonica sound, and as the previous track, this is pure SID sound, no sampling.



07. Frostbyte - Gubber Eye Joe

A double-speed gabber track with and impressive Juno Hoover sound.



Next up is sample playback. The following tracks are either fully sampled or combining samples and SID sound together.

Order of audio segments: one *beep* SID8580, two *beeps* SIDEMU, one *beep* SID8580, two *beeps* SIDEMU


01. Mahoney - Kapla Caves

Pure samples.



02. Swallow - Wonderland X Part1

Mixture of samples and SID sounds.



03. Swallow - Fantasmolytic Tune 2

Mixture of samples and SID sounds.



04. LMan - My Life

THCM player, mixture of samples and SID sounds.



05. Vincenzo - Liquid Venus

Samples only, playing back a 4 channel .MOD on the C64.



So, first impression is that SIDEMU's output is a tad quieter. According to Lorant it's intentional, reason is to avoid the 6581 filter resonance and distortion's increased output level to be too hot for an amplifier.

Makes sense, it's a digital circuit.

Second impression is... what the hell, this emulation is great! It's barely, and I mean BARELY different to the original SID8580's sound.

SIDEMU wins and plays back -seemingly without any effort- all of the tricky SIDs, Lazy Jones, Legend of Cage, single and multispeed trickery and various types of sample playback too.

I'm impressed.

Looking at the waveforms, the SIDEMU's output signal might be a bit compressed, or it's just the filter that smoothens the spikes out. Speaking of filter, it sounds just a tiny bit darker and more resonant than on the original 8580. I wouldn't notice it by just listening to them on a blind A-B test and couldn't tell which is emulation and which is original audio.

Another noticeable difference on the waveforms is DC offset. It's visible but inaudible.

And to just find another thing to complain about: in some tracks the Release of the ADSR curves, especially at long Release values, SIDEMU seems different. It's a tough challenge to get it right due to the SID's inaccurate ADSR timing tho.

Oh, and of course, timing. Timing of oscillators aka. starting a note seems completely the same on SIDEMU and SID8580, so timing is spot on accurate.


I'm surprised and happy that out of nowhere there's a SID replacement that does it all. I don't know how much effort and time went into its development, I can imagine it's A LOT. Considering it's another one-man show, it's impressive and very well done. As mentioned before, I had no chance to check out new ArmSID and FPGASID firmware's - probably it's time to do it. I got really curious what they can offer in terms of accuracy after a few years of development.

I'm also looking for SIDEMU's 6581 emulation too. Until then, here are the test tracks in full length and in stereo. Left channel is SID8580, right channel is SIDEMU's 8580 mode, normalized loudness levels, no further processing.

Thank you for your attention, see you next time.

*Disclaimer: surely, there might be SIDs out there that doesn't sound good on SIDEMU because amongst 50.000 SID music there could be a very specific player and code that just breaks the emulation. In case SIDEMU will be released to the public and you find any broken SID, please report it to Lorant or me. Thank you.