-- SID Extreme 16581 device -- $D400 64K SID Extreme 16581 device $D400 256 SID Extreme sound registers $D400 32 **** VSID1 6581/8580 register map emulation (default left channel) $D400 7 Voice 1 (center) (ring/modulate with voice 3) $D407 7 Voice 2 (center) (ring/modulate with voice 1) $D40E 7 Voice 3 (center) (ring/modulate with voice 2) $D415 1 Filter cutoff frequency low byte $D416 1 7: 0:6581 filtering 1: 8580 filtering 6-4: Digi volume boost (0-7) 3-0: Filter cutoff frequency high nybble $D417 1 Filter resonance and routing 7-4: Resonance 3: External input 2: Voice 3 1: Voice 2 0: Voice 1 $D418 1 Filter mode and volume 7: Mute voice 3 6: High pass 5: Band pass 4: Low pass 3-0: Volume control (high nybble) $D419 1 Voice 1 oscillator $D41A 1 Voice 1 envelope $D41B 1 Voice 3 oscillator $D41C 1 Voice 3 envelope $D41D 1 Voice 2 oscillator $D41E 1 Voice 2 envelope $D41F 1 7-4: Voice pan (0: left channel, 8: center, 15: full pan to ) 3-0: Volume control (low nybble) $D420 32 **** VSID2 6581/8580 register map emulation (default right channel [AS ABOVE except +$20]) $D420 7 Voice 4 (left) (ring/modulate with voice 6) $D427 7 Voice 5 (left) (ring/modulate with voice 4) $D42E 7 Voice 6 (left) (ring/modulate with voice 5) $D435 1 Filter cutoff frequency low byte $D436 1 7: 0:6581 filtering 1: 8580 filtering 6-4: Digi volume boost (0-7) 3-0: Filter cutoff frequency high nybble $D437 1 Filter resonance and routing 7-4: Resonance 3: External input 2: Voice 6 1: Voice 5 0: Voice 4 $D438 1 Filter mode and volume 7: Mute voice 6 6: High pass 5: Band pass 4: Low pass 3-0: Legacy volume control (New volume high nybble mirror) $D439 1 Voice 4 oscillator $D43A 1 Voice 4 envelope $D43B 1 Voice 6 oscillator $D43C 1 Voice 6 envelope $D43D 1 Voice 5 oscillator $D43E 1 Voice 5 envelope $D43F 1 7-4: Voice pan (0: no pan, 8: center, 15: full pan) 3-0: Volume control (low nybble) $D440 32 **** VSID3 6581/8580 register map emulation (default backleft channel [AS ABOVE except +$40]) $D440 7 Voice 7 (left) (ring/modulate with voice 9) $D447 7 Voice 8 (left) (ring/modulate with voice 7) $D44E 7 Voice 9 (left) (ring/modulate with voice 8) $D455 1 Filter cutoff frequency low byte $D456 1 7: 0:6581 filtering 1: 8580 filtering 6-4: Digi volume boost (0-7) 3-0: Filter cutoff frequency high nybble $D457 1 Filter resonance and routing 7-4: Resonance 3: External input 2: Voice 9 1: Voice 8 0: Voice 7 $D458 1 Filter mode and volume 7: Mute voice 9 6: High pass 5: Band pass 4: Low pass 3-0: Legacy volume control (New volume high nybble mirror) $D459 1 Voice 7 oscillator $D45A 1 Voice 7 envelope $D45B 1 Voice 9 oscillator $D45C 1 Voice 9 envelope $D45D 1 Voice 8 oscillator $D45E 1 Voice 8 envelope $D45F 1 New 8 bit volume control (high nybble mirrored in $D458) $D460 32 **** VSID4 6581/8580 register map emulation (default right channel [AS ABOVE except +$40]) $D460 7 Voice 10 (left) (ring/modulate with voice 12) $D467 7 Voice 11 (left) (ring/modulate with voice 10) $D46E 7 Voice 12 (left) (ring/modulate with voice 11) $D475 1 Filter cutoff frequency low byte $D476 1 7: 0:6581 filtering 1: 8580 filtering 6-4: Digi volume boost (0-7) 3-0: Filter cutoff frequency high nybble $D477 1 Filter resonance and routing 7-4: Resonance 3: External input 2: Voice 12 1: Voice 11 0: Voice 10 $D478 1 Filter mode and volume 7: Mute voice 12 6: High pass 5: Band pass 4: Low pass 3-0: Legacy volume control (New volume high nybble mirror) $D479 1 Voice 10 oscillator $D47A 1 Voice 10 envelope $D47B 1 Voice 12 oscillator $D47C 1 Voice 12 envelope $D47D 1 Voice 11 oscillator $D47E 1 Voice 11 envelope $D47F 1 New 8 bit volume control (high nybble mirrored in $D458) $D480 16 SID Extreme Voice 13 (default left channel) VSID1 $D490 16 SID Extreme Voice 14 (default left channel) VSID1 $D4A0 16 SID Extreme Voice 15 (default right channel) VSID2 $D4B0 16 SID Extreme Voice 16 (default right channel) VSID2 $D4C0 16 SID Extreme Voice 17 (default back-left channel) VSID3 $D4D0 16 SID Extreme Voice 18 (default back-left channel) VSID3 $D4E0 16 SID Extreme Voice 19 (default back-right channel) VSID4 $D4F0 16 SID Extreme Voice 20 (default back-right channel) VSID4 > Voice registers + $00 2 Voice frequency (for RAW samples should be set equal to 02 UNLESS intentionally pitch skewing) + $02 2 Voice pulse wave duty cycle (pulse waveform) OR + $02 2 Voice RAW base frequency (Frequency that wave sample was encoded at) + $04 1 Voice control register 7: Noise 6: Pulse 5: Sawtooth 4: Triangle 3: RAW 2: Modulate 1: Synchronize 0: Gate + $05 1 7-4: Attack 3-0: Decay + $06 1 7-4: Sustain 3-0: Release > Voice extended registers (present at voice registers above $D480, not in 6581 space $D400-$D43F) + $07 1 Voice extended control register 7: 0: RAW one shot (Play sample once then stop) 1: RAW continuous (Repeat sample) 6: 0: 6581 filtering 1: 8580 filtering 3: Voice bitness (0:8 bit, 1:16 bit) 1: Continuation register: 0: Changes to $08-0C take place immediately. 1: Changes to $08-0C take place when current sample finishes (use to play more than 64kb samples) 0: 0: Immediately terminate playback of sample 1: Start playback of sample from beginning + $08 3 Location in Chip RAM of RAW sample (Could be in SID dedicated RAM) + $0B 2 Length of sample (up to 64kb) + $0D 1 Volume adjustment of left channel (00=mute, FF=full) + $0E 1 Volume adjustment of right channel (00=mute, FF=full) + $0F 1 Voice extended control register 2 7: Mute, terminate, and reset channel to defaults 6: 1: Retrieve sample information before playback: Bytes 00-01 to register 02 (Sample frequency) Bytes 02-03 to register 0B (Sample length) Byte 04 bit 0 to register 07 bit 3 (Sample bitness) If Byte 04 bit 7 set: (For more information) Byte 04 bit 1 to byte 07 bit 7 (Set whether one shot or continuous) Byte 05 to register 0D (Set left default volume) Byte 06 to register 0E (Set right default volume) If Byte 04 bit 6 set: Byte 07-08 to reg 00-01 (Sets target frequency) Else: Reg 02-03 cloned to 00-01 (sets base and target frequency the same [no pitch change]) If Byte 04 bit 0 set: Playback started at byte 0A (byte 09 reserved and ignored) Else: Playback will start at byte 0A when triggered ($07 bit 0) 0: Do not retrieve sample information, assumed manually set, playback will begin at byte 00 3-0: Voice that Modulate/Synchronize operates with