SID 6581 Register Map — Quick Reference
SID base address: $D400 (54272)
All registers write-only except $D419–$D41C.
Voice Registers
| Offset |
Addr |
Dec |
Voice |
Name |
Description |
| +0 |
$D400 |
54272 |
1 |
FRELO1 |
Freq low |
| +1 |
$D401 |
54273 |
1 |
FREHI1 |
Freq high |
| +2 |
$D402 |
54274 |
1 |
PWLO1 |
Pulse width low |
| +3 |
$D403 |
54275 |
1 |
PWHI1 |
Pulse width high (bits 3-0) |
| +4 |
$D404 |
54276 |
1 |
VCREG1 |
Control register |
| +5 |
$D405 |
54277 |
1 |
ATDCY1 |
Attack/Decay |
| +6 |
$D406 |
54278 |
1 |
SUREL1 |
Sustain/Release |
| +7 |
$D407 |
54279 |
2 |
FRELO2 |
Freq low |
| +8 |
$D408 |
54280 |
2 |
FREHI2 |
Freq high |
| +9 |
$D409 |
54281 |
2 |
PWLO2 |
Pulse width low |
| +A |
$D40A |
54282 |
2 |
PWHI2 |
Pulse width high |
| +B |
$D40B |
54283 |
2 |
VCREG2 |
Control register |
| +C |
$D40C |
54284 |
2 |
ATDCY2 |
Attack/Decay |
| +D |
$D40D |
54285 |
2 |
SUREL2 |
Sustain/Release |
| +E |
$D40E |
54286 |
3 |
FRELO3 |
Freq low |
| +F |
$D40F |
54287 |
3 |
FREHI3 |
Freq high |
| +10 |
$D410 |
54288 |
3 |
PWLO3 |
Pulse width low |
| +11 |
$D411 |
54289 |
3 |
PWHI3 |
Pulse width high |
| +12 |
$D412 |
54290 |
3 |
VCREG3 |
Control register |
| +13 |
$D413 |
54291 |
3 |
ATDCY3 |
Attack/Decay |
| +14 |
$D414 |
54292 |
3 |
SUREL3 |
Sustain/Release |
Filter and Global Registers
| Offset |
Addr |
Dec |
Name |
Description |
| +15 |
$D415 |
54293 |
SIGVOL |
Filter cutoff freq low (bits 2-0) |
| +16 |
$D416 |
54294 |
FRESHI |
Filter cutoff freq high byte |
| +17 |
$D417 |
54295 |
RESON |
Resonance (7-4) / filter routing (2-0) |
| +18 |
$D418 |
54296 |
SIGVOL |
Filter mode (7-4) / volume (3-0) |
| +19 |
$D419 |
54297 |
POTX |
Paddle X (READ-ONLY) |
| +1A |
$D41A |
54298 |
POTY |
Paddle Y (READ-ONLY) |
| +1B |
$D41B |
54299 |
RANDOM |
Voice 3 oscillator (READ-ONLY, random) |
| +1C |
$D41C |
54300 |
ENV3 |
Voice 3 envelope (READ-ONLY) |
Control Register Bits (VCREG)
| Bit |
Name |
Description |
| 7 |
NOISE |
Noise waveform |
| 6 |
PULSE |
Pulse waveform |
| 5 |
SAW |
Sawtooth waveform |
| 4 |
TRI |
Triangle waveform |
| 3 |
TEST |
Test bit (disables osc) |
| 2 |
RING |
Ring modulation |
| 1 |
SYNC |
Sync to previous voice |
| 0 |
GATE |
1=start AD, 0=start Release |
ATDCY (Attack/Decay)
| Bits |
Range |
Description |
| 7-4 |
0-15 |
Attack rate |
| 3-0 |
0-15 |
Decay rate |
SUREL (Sustain/Release)
| Bits |
Range |
Description |
| 7-4 |
0-15 |
Sustain level (15=max) |
| 3-0 |
0-15 |
Release rate |
Filter Mode Register ($D418) Bits
| Bit |
Name |
Description |
| 7 |
3OFF |
Disconnect voice 3 from output |
| 6 |
HP |
High-pass filter |
| 5 |
BP |
Band-pass filter |
| 4 |
LP |
Low-pass filter |
| 3-0 |
VOL |
Master volume (0-15) |
Frequency Formula
Register = (Hz × 16777216) / ClockHz
NTSC: ClockHz = 1,022,730 Register = Hz / 0.0609594
PAL: ClockHz = 985,248 Register = Hz / 0.0587721
Note Frequencies (NTSC hex register values)
| Note |
Freq |
Hex |
|
Note |
Freq |
Hex |
| C3 |
130.8 |
$086C |
|
C4 |
261.6 |
$10D9 |
| D3 |
146.8 |
$0975 |
|
D4 |
293.7 |
$12EA |
| E3 |
164.8 |
$0A9B |
|
E4 |
329.6 |
$1537 |
| F3 |
174.6 |
$0B40 |
|
F4 |
349.2 |
$1680 |
| G3 |
196.0 |
$0C91 |
|
G4 |
392.0 |
$1921 |
| A3 |
220.0 |
$0E16 |
|
A4 |
440.0 |
$1CCC |
| B3 |
246.9 |
$0F9C |
|
B4 |
493.9 |
$1F38 |
| C5 |
523.3 |
$21B3 |
|
C6 |
1046.5 |
$4366 |