109 lines
5.3 KiB
Text
109 lines
5.3 KiB
Text
|
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<64> Fachat have provided
|
|||
|
combined waveform samples for 6581 R1, R3, R4, and 8580 R5 SID chips.
|
|||
|
The VICE home page is found at:
|
|||
|
http://vice-emu.sourceforge.net/
|
|||
|
|
|||
|
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 <20>deg<65>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.
|
|||
|
|
|||
|
Otto Jarvinen has made great contributions to SID emulation by
|
|||
|
thoroughly investigating and documenting the effects of the test bit
|
|||
|
on the noise waveform shift register, and the behavior of waveform 0.
|
|||
|
He has demonstrated how the test bit can be used to generate entirely
|
|||
|
new waveforms, and how waveform 0 can be used to generate 8-bit
|
|||
|
samples.
|
|||
|
|
|||
|
Michael Huth has made high quality SID die photographs available, and
|
|||
|
Tommi Lempinen has done impressive work revectorizing and annotating
|
|||
|
these die photographs. The current level of accuracy in the emulation
|
|||
|
of the SID filter would not have been possible without the work of
|
|||
|
Michael and Tommi.
|
|||
|
|
|||
|
Antti Lankila has worked tirelessly on improving SID emulation in his
|
|||
|
fork of reSID, resid-fp. He has, among other things, measured and
|
|||
|
described the main non-monotonous behavior of the SID 6581 D/A
|
|||
|
converters, measured and analyzed small-signal filter cutoff curves
|
|||
|
for several SID 6581 chips, and is always willing to help with
|
|||
|
analysis in the quest for ever improved SID emulation. He has also
|
|||
|
found and corrected a bug in the reSID resampling code.
|
|||
|
|
|||
|
Finally I would like to thank my business partner Stian W. Arnesen for
|
|||
|
putting up with all this nonsense.
|