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åre Gunnar Nesheim have provided interesting and insightful
information regarding digital filters. Kå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é 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 Ødegå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á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.
