ReSID

From Wikipedia, the free encyclopedia

The correct title of this article is reSID. The initial letter is shown capitalized due to technical restrictions.

reSID is a reverse engineered software emulation of the MOS6581 SID (Sound Interface Device). This chip was used in the Commodore 64 computer. reSID is free software, published under the GNU General Public License.

reSID is a C++ library containing a complete emulation of the SID chip. This library can be linked into programs emulating the MOS6510 MPU to play music made for the Commodore 64 computer. reSID has been successfully linked into VICE (a Commodore 64 emulator), SIDPLAY (a SID tune player), and GoatTracker (a tracker).

Various SID emulators exist, however reSID should still be of great interest to Commodore 64 nostalgics. The emulator engine is cycle-based, emulating the internal operations of the SID chip. SID's audio filter is modeled as an actual two-integrator-loop biquadratic filter. The engine has been developed based on available information on SID, sampling of the OSC3 and ENV3 registers, filter theory, and meticulous testing. In short, a scientific approach has been taken to model the SID chip as accurately as possible. reSID is by far the most accurate SID emulator ever created. This comes at a price - what is considered a fairly fast CPU at the time of this writing is needed to run the emulator.

Due to the manufacturing process, and number of engineering hacks done on the 6581 family of chips, the resulting filter was significantly nonlinear. The distortion appears at first as gradual shifting of the specified center frequency upwards in spectrum -- this effect may change the center frequency upwards by one octave -- until some type of hard limit is reached at which point the output from the chip becomes nearly discontinuous. The filter was revised on several later revisions of the 6581 chip. Revision 4 is quite commonly found these days. The linear filters of reSID do not even attempt to emulate the nonlinear character of 6581 emulation, and some regrettable features such as the OptimiseLevel setting further degrades filter quality by limiting the filter upper frequency to mere 4 kHz (genuine chips can specify center frequencies up to 20 kHz). Additionally, some kind of systematic error has probably crept into reSID's measurement of the CF (Center Frequency) value, a number from 0 to 2047, and physical Hz mapping.

Some measurements of what are arguably better data points for both R1 and R4 have been made recently and are provided at this sidplay2.ini file.

The current version is 0.16, which was released 11 June 2004.

[edit] External links