I’ve written about the need and importance of having a proper replacement for the SID sound chip few times before. So I won’t repeat myself on that, as this is going to be a lengthy article anyway.
Because what we have here is big news on this front.
A duo from Hungary, Máté “CodeKiller” Sebők and Mihály “Hermit” Horváth have been working on improving SwinSID, originally developed by Swinkels.
What they have come up with is a highly modified and expanded version of the Nano SwinSID, now called SwinSID Ultimate. The enhanced hardware is mostly developed by CodeKiller, and Hermit has rewritten a new sound engine almost from scratch. The aim has been to make a more compatible, more capable SID replacement than what the Nano SwinSID already was.
At least the list of improvements is impressive:
It has full feature compatibility with the original SID (over the old SwinSID):
– paddle/mouse support
– readable registers (OSC3/ENV3)
– external audio in
– proper ADSR-bug support
– fast ADSR attack rate (thanks to the self-correcting rate-counter)
– ‘Lazy Jones’ and ‘180’ -like gate and test-bit workaround (no missing note)
– proper 23bit noise-waveform calculation –> better “random” numbers
– full 3V p-p output range w/o 1KOhm load (same as 8580)
– improved filter quality (16bit) and resonance-table for both SID model
– improved waveform calculation (full 16 bit)
– high resolution combined waveform-tables
It has enhancements over the original SID:
– clean anti-aliased bandlimited sound at high pitches
– undistorted mixed digi tunes and eliminated volume-change click thanks to AC/DC separation of master volume register
– Softconfig — software configurable options for a number of aspects of the operation
– LEDs which intensity represents the active channels volume
– LED displaying the active (classic) digi playback
– or in case of the new Mahoney-digi, the entire array acts like a VU-meter
Actually I’ve shortened this list here a bit, the full feature list and documentation you can find in this SwinSID Ultimate User Manual.
Now I’ve got my hands on one of these, so let’s review what we have here!
The new hardware
First, let’s take a closer look on this thing! My first reaction was that it looked almost scary – it’s quite a hack in the most positive sense. =)
In the middle we find the familiar ATmega88PA 8-bit micro controller that runs the show. That is, it generates the sound. Above it we’ll find the 32 MHz crystal oscillator, this time in a plastic SOJ package. Next to the crystal we find two tiny LEDs, and two more glued and wired on top of the crystal. Interesting!
It gets even more interesting below the AVR. There’s a pile of serial to parallel registers with wires running from them, protected and secured with a blob of hot glue! These, I’m told, are the readable registers found in the SID chip. Thanks to these, analog controllers like paddles and mice now work! Also the third SID voice parameters are readable from these registers.
Having a better implementation for the readable SID voice registers is even more important than the paddles in my opinion, as there’s only a given number of games and applications that make use of the analog controllers. The behavior of the third voice registers, in turn, affects a lot of music with their influence to modulation tricks and that sort of musical finesse. And all kinds of timing related matters in software is affected, too. Also random numbers are retrieved by reading values from the noise waveform on the third SID voice.
So actually a lot of the increased functional compatibility is achieved with this pile of chip!
But wait, there’s more!
Flipping the board over, we’ll find even more added chips. There’s another Atmel AVR microcontroller, this time a smaller ATtiny, and a Xilinx CPLD. These chips have been added to offload duties from the ATmega chip that is busy with the sound generation. For example the ATtiny handles the reading of the POT lines. CPLD in turn is there to handle all kinds of supportive tasks.
If you are wondering about those four missing pins, they are the ones that would normally connect to the external SID filter capacitors, which of course have no purpose for the SwinSID. Instead these pins are used as jumpers for configuration, and that’s why the pins have been omitted altogether.
How much it’s improved over previous SwinSIDs?
So the modifications over the original Nano SwinSID hardware are substantial. How does it compare to previous SwinSIDs then, including the modified SwinSID HC that CodeKiller created in 2014?
One thing are the added features that were missing from earlier SwinSID designs. Now all of those are here, as I understand. That’s pretty important, as it makes this SwinSID Ultimate a fully featured replacement.
Equally interesting is how it compares sound-wise.
The improvements CodeKiller did with modified SwinSID firmware already improved sound quality and compatibility with a real SID chip. I can tell that especially the SwinSID HC performs very well in most cases. Still there were some occasional clicks and pops to be noticed here and there that gave away that it’s not the real thing.
Now in this SwinSID Ultimate, the sound engine is rewritten almost from scratch by Hermit, and is said to be based on reSID-fp.
And no doubt, the improvements over SwinSID HC in sound quality are undeniable. The sound of SwinSID Ultimate is crispier, and appears more balanced, more SID-like. The most striking difference is, however, the complete lack of the aforementioned clicks and pops! And in cases where even the SwinSID HC fails to produce the correct sounds, SwinSID Ultimate does not.
Listened as such, without direct comparison to a real SID, SwinSID Ultimate sounds very real.
How does it compare to a real SID chip then?
So now the big question – how does the SwinSID Ultimate compare to the real SID chip?
First, since there is so much variance between 6581 SID chips, comparing SwinSID Ultimate to 8580 SID is the sensible thing to do. That’s also what SwinSID is aiming at – to sound like 8580.
As said already, it really sounds very much like the real thing.
So, I devised a test that would highlight the differences between (my randomly picked) 8580 SID chip and SwinSID Ultimate. I installed the 8580 and SwinSID Ultimate into DualSID board, and configured it so that both chips have the same address. I.e. no stereo or six channel music, but both chips would play the exact same music.
The sound from each chip would then be routed to earphones as left and right channel. Listened this way, human hearing can pick up any kind of variations very easily. Any difference in timing, or missing or extra sounds are easy to notice. If there is a difference in volume level with some frequency or waveform combination, it is perceived as channel separation; some sounds drift from the ‘center’.
So with this set-up, and an evaluative attitude, I went on to see just how good this new SwinSID really is.
I can only say that I’m amazed. It is a really close match! Impressive!
They are not a 1:1 match of course, but it’s not a 100% perfect match even with two 8580s, either. The differences between SwinSID Ultimate and 8580 with any music I’ve listened so far are just slight ones. So slight, that some sounds appear to be coming just slightly away from the center, some to the right, some to the left. Having SwinSID Ultimate and real SID chip side by side does not sound unnatural at all, but like having a bit of a stereo and reverb in there.
I’m going to go ahead and say that it would be very difficult to tell SwinSID Ultimate from a real 8580 in a blind test.
Update: Well, not entirely. There is a difference in how “sharp” the sound is. Thanks to Vincenzo, you can compare the chips with your own ears! He has made recordings of some tunes with both 8580 and SwinSID Ultimate. Go on to his blog and judge for yourself!
Digi sound playback is a whole another area in SID emulation so it gets a chapter of its own.
CodeKiller had already worked a lot to improve SwinSID’s performance with digi playback with his modified firmwares for the original Nano SwinSID. The classic digi playback method (that works well with a 6581 but not so well with an 8580) worked very well already with Swinkels’ Nano SwinSID, and SounDemoN’s digi playback method (perhaps best know from Fanta in Space) was implemented in the official Nano SwinSID firmware too. CodeKiller’s “Lazy fix” firmware, and the SwinSID HC added support – or compatibility – to several more recent digi playback methods.
Still some digi-trickery remained out of SwinSID’s scope. But again, SwinSID Ultimate manages to improve digi playback compatibility even further. Most of the digi-tricks that didn’t work flawlessly before now do. Also a thing to note is that SwinSID Ultimate has less noise in sample playback compared to previous incarnations.
To sum it up, almost everything digi playback related work flawlessly with SwinSID Ultimate. For example, music made with Polly Tracker now works ok. The few exceptions I crossed by are such that there is some extra noise or crackling sounds while they still work.
These few digi-playback exceptions remain the only thing where this SwinSID Ultimate doesn’t match closely the behavior of a real SID chip.
Not to forget that SwinSID Ultimate also has improvements over real SID, especially 8580 considered. SwinSID Ultimate sounds like 8580, but unlike real 8580, classic digi playback plays loud and clear. The feature list also says undistorted mixed digi tunes. Haven’t compared SwinSID Ultimate with 6581 directly, but at least tunes like Turbo Out Run title music and All You Know (Is Wrong) sound great!
The rest of the features
The already mentioned paddle controller support is there and seems to work as expected. Also the mouse-enabled software I tried using Micromys V3 worked.
The four LEDs included on the board are a fun addition. Each LED represents a SID voice, and the fourth one is reserved for the classic “digi channel”. The LEDs light up when a channel is playing a sound, and the LED brightness follows the volume of the sound.
The LEDs are more than just a nice colorful light show, as it’s actually quite interesting to see how the SID voices are being used. It brings a fun insight to how the artists have been using the channels.
With certain digi playback methods, the array of LEDs act as a VU-meter.
Audio input has also been implemented, although the manual says it is disabled by default to reduce noise. It can be enabled by configuring the unit via software. SwinSID Utimate makes it possible to even sample the external audio – I just don’t see what could be a meaningful use for that. Surely there are more convenient ways to record or sample audio.
Talking about software configuration, the manual lists the following config options:
– change between 8580/6581 behaviour (filter, ADSR, combined waveforms)
– change between PAL/NTSC pitch
– enable/disable external audio input (less external noise)
– if enabled, then CAN be enabled to sample trough OSC3 register
– enable/disable startup “ding”(beep)
– upload 3 banks of 256 bytes custom waveforms
– “transparent” mute for channels — does not affect the sync, OSC3/ENV3,..
Although the manual explains how to communicate with the unit using software commands, sadly there’s no softconfig tool for programming-challenged people like me. Perhaps later on a tool appears?
One point of interest is the possibility to upload custom waveforms to the unit. That could be used to bring a world of new kind of sounds into SID music. So far there’s not even a demo of this feature. Whether any musician would pick up on this and create something different remains to be seen. The downside is of course that this kind of piece would require SwinSID Ultimate instead of a real SID.
Surely, the SwinSID Ultimate delivers what it promises, and is a huge step forwards in SID emulation for real hardware.
In many aspects , SwinSID Ultimate is a big improvement over previous incarnations of SwinSID. So much so, that now we are truly talking about a replacement, or spare part for the SID chip that doesn’t have to compromise in any area.
The sound emulation is greatly improved – so much that in vast majority of cases it’s close to impossible to tell it apart from a real 8580 SID. The other functions of SID chip are now implemented. And there’s even few extras included.
I think the bottom line is that a Commodore 64 that has this chip installed isn’t technically lacking anything. And that’s a big thing. Well done!
Hi, as always great and in deep article of something really interesting, probably the thing we have all been waiting for, great work from this great duo from Hungary, that seems to be a country where the love for SID in huge, let’s just think to Sandor and Farkas and their Hardsid projects. Anyway is there a way to already order this new chips, or are they still in development?
Thanks for the feedback! Not sure about the availability at the moment. I’m sure this Facebook page is the place to keep an eye on: https://www.facebook.com/swinsidultimate/
Now we just need a stereo swinsid ultimate. :-D
Seriously impressive! A great write-up. I really look forward to your blog posts. Thanks for bringing this to my attention.
I thought you might find a SID vs SwinSID comparison interesting:
Ilesj wrote about the details, I did a music comparison with a lot of examples
Marco: all of those guys are from Hungary
Joe: I suggest to check this project for stereo SID option: http://sidfx.kick-ass.dk/
Unbelievable! Just today I found your blog and read your shootouts with a great interest. And I posted a comment with a wish for making comparison recordings with SwinSID Ultimate just couple of minutes ago! :D
Ilesj, yeah, I was surprised, just fired the blog entry then left a comment here and your message popped up on the old post :D
Since those older comparisons I got my hands on some more 6581’s and found out it doesn’t matter what is written on them, the R3 marked SIDs are all different and the oldest SID I have (4982) sounds like the R3 in the Aussie 64. And there’s a small, barely audible difference between two 1485 even! Same factory, same week… weird :)
The analog part of the SID… :) They seem to have worked on the SID chip so that newer revisions got closer to the intended spec, also achieving less variation between individual chips. 8580s sound about the same, and I guess R4s and R4ARs are better in that regard than chips before them.
I updated the article with a link to your blog post!
Thank you for linking to my blog entry.
Actually, it’s fun to hear the recorded audio on different speakers. The difference is much more audible on my laptop’s speakers than on my main monitors (Adam’s) and headphones (Beyer DT). This suggest a difference in the higher frequency range between the chips, and also would explain the “interpolation-look-a-like” waveform differences on the screenshots. Laptop speakers are great for testing voiceover and mid-high range audio :)
I know in the previous iterations of SwinSID, there was no ringmod feature and no multi-state filter.
Has this been implemented in the Ultimate design?
I’m not entirely sure, but I would be very surprised if not. This Ultimate version is made aiming for fully featured compatibily after all. The project’s fb page is a good place to ask about technical details https://www.facebook.com/swinsidultimate/
[…] You can read more about the project on Facebook here, and read a review here. […]
i have no Facebook, how to get one without sign to zuckerbergs nightmare ?
Hey Máté “CodeKiller” and Mihály “Hermit” Horváth, could you please sell them on ebay? I don’t have a facebook account and I never will.
Same opinion here : i’m dying to order 2 SwinSID ultimate but what about the Facebook things ????!
Facebook is not serious for selling, communicate… or anything :(
If only i had just a personnal email address, i could buy 2 pieces ?
Thanks a lot for the amazing works for the commodore 64 :)
Not sure to whom this comment is addressed. Since this comment is here on my blog, I want to clarify that I’m not affiliated with the SwinSID Ultimate project. I’ve followed the project with great interest, and written these few articles and reviews.
The way how CodeKiller wants to handle the sales and communication is completely up to him.
I have to ask.. why do all these SwinSids use an all-digital microcontroller for audio generation? I thought with the SwinSID Ultimate, the ATMega was just used for data I/O, leaving the FPGA and a DAC (which I assumed was the 8-pin chip) to do the final output. I’d think that is going through a long, long effort to make crap output and cut out use of a DAC… but if you’re going all the way, why still use a digital MCU (with only analog-input capabilities) instead of a DAC?
[…] ilesj’s blog:- SwinSID Ultimate […]
Is there DIY info available? The Facebook page is still up but the creator seems to have dropped off the face of the Earth. Hope he’s OK. :(
No DIY I’m afraid. Latest update on (slow) progress with a new batch of boards wasn’t that long ago. I trust all paid orders are delivered eventually, although it may take some time.
Proving to be unobtanium. Still not taking preorders and says that 10 have shipped since preorders stopped over a year ago.
To my understanding paid orders are delivered. Contact the seller directly via facebook. I’ve got three pieces of these, and my experience is that the seller is trustworthy. It’s the buying procedure that’s confusing and not so straight-forward.