|
|
|
|
reSID was written by Dag Lem.
|
|
|
|
|
|
|
|
|
|
The project was started after reading an interview with Bob Yannes, the
|
|
|
|
|
head engineer of the SID chip. This interview was made by Andreas Varga,
|
|
|
|
|
with additional questions from Linus Walleij. The interview can be found on
|
|
|
|
|
the SID Homepage:
|
|
|
|
|
http://stud1.tuwien.ac.at/~e9426444/sidpage.html
|
|
|
|
|
The reverse engineering of the SID chip would not have been possible without
|
|
|
|
|
this interview.
|
|
|
|
|
|
|
|
|
|
Also found on the SID Homepage is an examination of the SID noise waveform
|
|
|
|
|
written by Asger Alstrup. This article was of great help in reverse
|
|
|
|
|
engineering the complete algorithm for the noise waveform.
|
|
|
|
|
|
|
|
|
|
Lars Haugseth has been invaluable in the testing of reSID.
|
|
|
|
|
In a matter of hours after hearing about my project, he had completed a 6510
|
|
|
|
|
disassembler in Perl. The importance of this was not evident to me until the
|
|
|
|
|
next day when he had disassembled the music routine for "Outrun Remix" by
|
|
|
|
|
Geir Tjelta, made some changes to it, reassembled, and produced a file
|
|
|
|
|
containing 48K of SID register values.
|
|
|
|
|
The first tests of reSID were run on this file.
|
|
|
|
|
With an exceptional memory of Commodore 64 tunes Lars Haugseth has pointed
|
|
|
|
|
out several errors in reSID that are now corrected.
|
|
|
|
|
|
|
|
|
|
Morten Rollan and K<EFBFBD>re Gunnar Nesheim have provided interesting and insightful
|
|
|
|
|
information regarding digital filters. K<EFBFBD>re Gunnar Nesheim has also kindly
|
|
|
|
|
provided a 1901 monitor and a C64C from his private computer museum. His C64C
|
|
|
|
|
was used to measure the MOS8580 filter cutoff characteristics.
|
|
|
|
|
|
|
|
|
|
VICE has been an inspiration for this project, and testing of reSID has
|
|
|
|
|
been greatly simplified by VICEs -sounddev dump option. Teemu Rantanen
|
|
|
|
|
has written support for reSID in VICE, making it possible to choose at runtime
|
|
|
|
|
between his excellent SID emulation and, given enough CPU power, the reSID
|
|
|
|
|
emulator engine. Tibor Biczo, Andreas Boose, and Andr<EFBFBD> Fachat have provided
|
|
|
|
|
combined waveform samples for 6581 R1, R3, R4, and 8580 R5 SID chips.
|
|
|
|
|
The VICE home page is found at:
|
|
|
|
|
http://www.viceteam.org/
|
|
|
|
|
|
|
|
|
|
The author of SIDPLAY, Michael Schwendt, has implemented a patch to link
|
|
|
|
|
libsidplay with reSID. Using his excellent tune player he has pointed out
|
|
|
|
|
several bugs in reSID. He has also provided invaluable information related to
|
|
|
|
|
the bugs as basis for further investigation. Most notably, the infamous ADSR
|
|
|
|
|
delay bug, of which I was previously unaware, has finally been understood and
|
|
|
|
|
is now correctly implemented in reSID. The SIDPLAY home page is found at:
|
|
|
|
|
http://www.geocities.com/SiliconValley/Lakes/5147/
|
|
|
|
|
|
|
|
|
|
A bug report from Daniel Lacasse led to the discovery of a previously unknown
|
|
|
|
|
SID bug, the ADSR boundary bug.
|
|
|
|
|
|
|
|
|
|
Anders <EFBFBD>deg<EFBFBD>rd has explained aspects of analog electronics and audio
|
|
|
|
|
equipment.
|
|
|
|
|
|
|
|
|
|
Bob Yannes has patiently answered questions and has provided lots of
|
|
|
|
|
technical information on the SID filter. Thank you Bob!
|
|
|
|
|
|
|
|
|
|
Julius O. Smith III has provided much of the theoretical basis for the
|
|
|
|
|
audio resampling with his "Digital Audio Resampling Home Page":
|
|
|
|
|
http://www-ccrma.stanford.edu/~jos/resample/
|
|
|
|
|
|
|
|
|
|
H<EFBFBD>rsfalvi, Levente has made a thorough investigation of the DC levels
|
|
|
|
|
in the MOS6581 chip. His results are available in C= Hacking Issue #20,
|
|
|
|
|
and form the basis of DC corrections in reSID. Levente found that each
|
|
|
|
|
voice independently contributes to the DC level in the mixer. Note
|
|
|
|
|
that some of the conclusions in the article are incorrect, as the
|
|
|
|
|
maximum and minimum voice output levels are interchanged.
|
|
|
|
|
|
|
|
|
|
The author of SIDPLAY2, Simon White, has given a lot of feedback on
|
|
|
|
|
reSID. Most importantly he found and fixed a bug in the fast clock
|
|
|
|
|
version of the ADSR emulation.
|
|
|
|
|
|
|
|
|
|
Laurent Ovaert found and fixed a bug in the fast version of the noise
|
|
|
|
|
register shift routine.
|
|
|
|
|
|
|
|
|
|
Andreas Dehmel has reported all sorts of initialization and overflow
|
|
|
|
|
errors.
|
|
|
|
|
|
|
|
|
|
Laurent Ganier demonstrated two crucial techniques for vectorizable
|
|
|
|
|
filter convolution in a patch. Firstly, he made the filter elements
|
|
|
|
|
correspond to the sampling frequency, allowing the linear
|
|
|
|
|
interpolation to be factorized out from the convolution. Secondly, he
|
|
|
|
|
duplicated elements in the sample ring buffer, achieving contiguous
|
|
|
|
|
storage of the samples. The current resampling implementation builds
|
|
|
|
|
on these ideas, improving on them by using shifted filter tables for
|
|
|
|
|
generalization and accuracy.
|
|
|
|
|
|
|
|
|
|
Finally I would like to thank my business partner Stian W. Arnesen for
|
|
|
|
|
putting up with all this nonsense.
|