This update was not planned, but, still, it happened - and makes the demo even better. In short: it improves the music, it improves the audio-to-video sychronization, it adds a few more palette effects and brings other little improvements (for the details, check out the changelog below). Enjoy!
* Improved music: improved S/N ratio by eliminating a peak (caused by the "str" of "street" in the spoken part) and re-normalizing the waveform; amplified initial part a little bit; reduced greatly the noise that affected the coda (due to the 8-bit quantization) by amplifying that part of the waveform to the maximum and balancing that with a real-time volume change; increased sampling frequency to 29073 Hz (side effects: channels 2 and 3 can no longer be used, so the output volume is lower; music decoding takes a little longer as there is more data to decode each frame; the CHIP bus time taken by audio DMA is almost halved, which makes the demo less demanding).
* Added switch-off of filter to ensure music sounds as it is supposed to.
* Fixed audio-to-video synchronization: fixed drifting caused by the difference between the actual and theoretical rates (~49.92 VS 50 Hz) of the video refresh (that, by the end of the demo, caused an asynchronism of ~0.5 s);; fixed 60 ms asynchronism caused by the fact that the first three frames required for music setup/buffering were ignored; fixed a few timing marks in the script (an off-by-one mark which caused a peak of operations in the specified frame; a mark that caused the following effect to execute 4 frames too late; a few marks that were off by a frame).
* Fixed a bad routine pointer (caused by a wrong letter in a label in the source code; it is quite incredible that this did not produce disastrous results).
* Added some palette effects.
* Optimized music decoding by unpacking and undeltaing data at the same time (why it was not like this right from the beginning is a mistery).
* Made some other small optimizations.
* Made startup and cleanup code more robust by shielding some critical operations from NMIs and by dealing with audio playback performed with direct hardware access by other programs concurrently.
* Added version string.
* Improved/extended README.