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!