Most obvious improvement was the change of form factor from the Micro SwinSID to the more familiar Nano SwinSID. Initially the Micro SwinSID was based on DIL-packaged ATmega processor making the board that housed also a full-size crystal oscillator and couple of trough-hole components almost twice as wide as the SID socket. Some time later a redesign appeared that was based on surface mount components, squeezing all the same components into a small PCB that’s no larger than a real SID chip. Or at least as long as only area is considered. Pin headers, components and jumpers make the board somewhat thicker.
During the first few years since the introduction, there was couple of official firmware updates. These firmware updates improved the sound emulation and compatibility with the behavior of a real SID chip, reducing the number of cases where Nano SwinSID would not sound or act ‘right’. Down the line there was also a feature update that made it possible to select the filter emulation between 8580 or 6581-like behavior using a jumper.
These refinements have improved Nano SwinSID, making it more feasible SID replacement with each improvement. Sadly there hasn’t been a new official, or publicly available firmware for the Nano SwinSID since 2012. As if SwinSID had reached its maximum potential with some of its flaws to remain.
This changed in 2014 when Máté ‘CodeKiller’ Sebők stepped up with a new firmware.
CodeKiller rewrote parts of the SwinSID AVR code aiming to improve SwinSID’s compatibility. And undeniably he succeeded in that. The first modified firmware was called ‘Lazy Fix’, which was “a small hack” to fix the music of Lazy Jones on SwinSID.
After that followed a ‘HC’ – High Compatibility – version which was a more comprehensive rewrite of the code. This version fixed a great number of known issues where SwinSID failed to reproduce sounds correctly.
This video demonstrates the improvements of these firmware updates:
With these improvements the SwinSID got already a lot more closer to a real SID chip. But still few things remained lacking, or completely unimplemented. Even this High Compatibility variant suffers from some audible errors in certain scenarios, music fade out is often one such example. Also some of the digi playback trickery from recent years do not work correctly, while some of the tricks are perfectly supported.
This is mainly because the SwinSID is based on an affordable AVR micro controller that has it’s limits. Running a credible SID sound emulation in real time takes up all of the available processing time – despite the fact that the AVR in SwinSID is overclocked. Simply put, on the SwinSID hardware, the focus has to be put on the most fundamental sound emulation.
Too bad the SID has some other functions too. For example the support for analog controllers is completely missing from SwinSID. Paddles, mice and the likes won’t work. The SID chip is also the random number generator in C64, and SwinSID is somehow “less random”, affecting behavior of software that needs random numbers. Finally there is also an audio input in SID chip, although its relevance in this day and age is somewhat arguable.
Achieving the remaining features of a real SID chip while still improving on sound emulation would call a more comprehensive overhaul of the SwinSID design than what can be achieved with a firmware rewrite.
And that is exactly what CodeKiller together with Hermit would go on to do.
Join me in my next post as I get my hands on with this piece of kit!