MUSICFILE — the Maniacs of Noise driver cheat sheet

From MUSICFILE — the Maniacs of Noise driver · print · built 2026-08-31

Reference

Cheat sheet#

From the Cybernoid II source (MUSICFILE V01-07-1988), all via s-realdmx-sid-players; the names are Deenen's Dutch/English labels, the semantics read from the code where noted.

  • Tune-wide constants at the top of the file: volume = $0f, vibtotzover = $30, pulserunspeed = $63, dubvoice = $0c (double voice), noisehitone = $fa, pulsearpwait = $01, gitarwait = $0f, spacelength = $00, spacewait = $60, wavearpwait = 2.
  • Routines (the driver's feature list): Tonearpeggio · Vibrato · Tone glide · pulse handling ("pulsegedoe") · Wavearpeggio · Pulsearpeggio · Tonesweep up · filter handling ("Filterklooi") · Strangefilter · Pulserun · Double voices · Space effect · Drumroutine · noisetik.
  • Song → sequences → steps: snelheid (speed) per song; seqtabel gives three sequences per song (seq0a–c title, seq1a–c game over); a sequence is a list of step-table numbers below $40 with prefix bytes — verified in the code: $80–$fd = transpose, toneadd = byte & $1f, added to every note and glide target of the following steps, upward only (0–31 semitones; $84,$01 = +4 then step 1, $8c = +12); $40–$5f = repeat the next step & $3f more times; $60–$7f = an instrument-number offset & $0f; $fe = end; $ff = restart the sequence without resetting the transpose (source: s-realdmx-deenen-test-tunes); 33 step tables st00–st20 hold the notes (orderlist).
  • Instruments: 8-byte rows with the columns pulsehi, waveform, attdec, susrel, filcount, fx1, fx2, fx3 (instrument-tables, instrument-design):
name (Deenen's label)pulsehiwaveformattdecsusrelfilcountfx1fx2fx3
leeg (empty)$00$00$00$00$00$00$00$00
bass$05$41$08$89$00$53$64$80
bassdrm$08$11$00$a8$f0$00$00$10
snardrm$08$11$00$a9$f0$01$00$10
arp+filt$04$21$00$c8$01$00$81$85
melo-1$0c$41$00$b8$00$52$22$01
melo-2$06$41$00$e8$02$53$74$01
$17zooi$00$17$00$88$f0$00$00$80
arp-filt$04$21$00$88$00$00$81$84
$55$00$55$00$b8$00$00$00$20
bassfilt$03$41$07$69$00$00$51$80
melo-3$05$41$00$b8$03$53$83$01
tingel$01$41$00$89$f0$00$00$02
omhoogt (upwards)$06$41$00$c8$08$00$41$00
$81lang$07$81$08$fd$f0$00$00$00
solo$05$41$00$b8$03$c5$24$01
melo-1 (2nd)$0c$41$00$b8$00$c6$22$00
basso$07$41$08$89$00$00$31$00
solo2$05$41$00$a7$00$c5$22$00
  • Per-instrument start ("noisetik", fx3 bit 7): starttabel ($81,$81,$81,$81, $41,$11,$11,$81, $41,$81,$81,$81) and startlen ($02 … $05, $06) — verified in the code of Deenen's own test tune: while the note's frame counter is below startlen, the waveform written is the starttabel value; a value of $7f or more forces the frequency high byte to noisehitone = $fa and the waveform to $81. Effects skip the note's first frame, so startlen = $02 is exactly one frame of high noise on the second frame of the note, and $41/$11 with $05/$06 swap in that waveform at the note's own pitch for four or five frames; for two frames afterwards pitch and waveform are restored explicitly (source: s-realdmx-deenen-test-tunes; hard-restart, wavetable-programming). vibtabwait holds vibrato delays per instrument ($0c, $18).
  • Drums: drumtabeldwa (waveform per frame, length byte first: $0b; $81,$81,$20,$20,$10,$10,$10,$10,$10,$10,$10,$10) and dto (pitch per frame: $34,$0a,$08,$06,$04,$05,$06,$05,$04,$05,$06,$05) — two frames of noise, then sawtooth and triangle sliding down (wavetable-programming).
  • Chords: arp0–arp7 = length byte + semitone offsets: $02,$00,$03,$07 (minor), $02,$00,$04,$07 (major), $02,$00,$05,$08, $02,$00,$05,$09, $02,$00,$03,$08, $02,$00,$04,$09, $02,$00,$03,$06; arp6 = $17 + a 24-step descending run $e9 … $00; wavearp $80,$10,$80,$10 alternates noise and triangle (chord-arpeggio).
  • Filter: filterbytes → four 10-byte programs fb0–fb3, e.g. $a0,$fe,$02,$ff,$80, fp0,$02,$22,$42,$62 where fp0 = $10 + volume is the $D418 byte (mode nibble + volume); strafilter and aftrekspeed for the "strange filter" (filter-programming).
  • Pulse: pulsetabel, four 8-byte programs such as $04,$0c,$02,$30, $04,$30,$06,$30 (pulse-width-modulation).
  • The driver shadows the SID registers per voice (d400 … d403, stod404) and keeps glide, vibrato, arpeggio, pulse-run and filter counters in 3-byte tables — the state a sid-player-routine needs.