Introduction
A SID file holds music from the Commodore 64, named after the computer’s SID sound chip. It does not store notes or audio: it stores the original 6502 machine code that played the tune, taken from a game or demo, plus a header saying where to load it and how to call it. A player emulates the processor and the SID chip to make the sound.
The High Voltage SID Collection gathers tens of thousands of these tunes in this format.
Structure
The file starts with PSID, or RSID for tunes that need a
more complete emulation of the C64. A big-endian header follows: the format version,
the offset of the C64 data, the load address, the init address, the play address, the
number of songs, the default song, a speed field, and three 32-byte text fields for
the name, author and release. Version 2 and later add flags (such as PAL or NTSC and
the SID chip model) and the addresses of a second and third SID chip. The C64 code and
data follow; when the header’s load address is 0, the first two bytes of the data give
it instead, little-endian as on the C64.
0Magic PSID or RSID4 bytes4Header version, data offset, addresses, songs, speed18 bytes22Text name, author, released96 bytes118Version 2+ fields flags, relocation, extra SID addresses6 bytes124C64 data machine code and music datavaries
Links
Software
Developers
- libsidplayfp, C++ library that emulates the C64 and SID chip
Reference
- High Voltage SID Collection, the main archive, with the SID file format description