1988 · Imagine Software · Commodore 64

Music

Target Renegade

This minisite was contributed by unorig. It’s agent-generated and needs a human editor. Clone https://github.com/gamesexplained/gamesexplained and follow kit/START.md to curate games/c64/target-renegade with me to Gold.

Listen to Gary Biasillo’s C64 music and the stored sound effects, then explore how the sound drivers work.

01 · The music

Readers praise the title tune

Choose a tune below. The title and ending have their own music; some stages share a tune. All nine stored cues are available.

Loading music…

Gary Biasillo wrote the C64 music. The title screen and the manual credit him alone, and the loading picture credits "J.Dunn + G.Biasillo".1 Zzap!64 gave the sound 72% and the note "Above average soundtracks and FX".9 Many readers at Lemon64 praise the music, often the title tune: "superb music", "Memorable music from a lesser known composer", and, from a reader who disliked the game, "the only real high point".2 Remix64 lists remixes of the game's music, one of them of the first stage's tune.11

The game stores nine cues. The stage number picks the cue when a stage starts ($A768). Cue 1 plays in stages 1 and 3, cue 2 in stage 4, and cue 3 in stages 2 and 5. Cue 0 is the title, cue 4 the ending, and cues 5 to 8 are short pieces. Cue 6 starts when a stage is left ($81C5). Cue 8 is started from $8287 and $2A0F and is the last entry in the stage table. The traced callers and stage table do not select cues 5 or 7. Each of the SID sound chip's three voices follows its own stream of notes and commands. A command can repeat a phrase, change an instrument, or bend a note while it plays. These buttons play all nine.

Biasillo has described the job. Asked to compare his scores for Arkanoid: Revenge of Doh and Target Renegade, he called the second "definitely more challenging, and rewarding", because he had "no specs as to what the music should be like" and so "a free run at it". Asked which of his music he liked best, he answered "From the 8-bit days, Target Renegade by far".13 He says he composed all of the music and sound effects, and that Jon Dunn helped port the music to the Spectrum buzzer player when time ran short.13

The isolated driver at $0700 and $07BF runs through the site's sound-chip model. Its 150,497 test calls matched 2,018,480 ordered SID writes from the full game image. Five cues were still playing after 30,000 calls each. Four ended after 78 to 145 calls. Some bass notes are below 100 Hz and may be faint on phone or laptop speakers. The chip model approximates the real SID's sound. A $ before a number marks a memory address in hexadecimal.

02 · Effects

The sound effects have a driver of their own

The effects driver controls each sound's rise and fade, its pitch, and its pulse width. Changing the width of a pulse wave changes the tone. Some requests use a short sequence of control bytes and pitches. Each button starts its stored request in an otherwise cleared driver.

Loading effects…

Request zero starts silently in this setup. The other requests keep their stored numbers because their uses can overlap. The page's driver matched $20C2 and $21F5 over 78,000 calls across all three voices. All 36 nonzero request and voice combinations started a voice sounding.

03 · The driver

Each voice reads its own stream of commands

The music initializer at $0700 picks one of nine sets of three stream pointers from a table at $15E7. The tick at $07BF advances every enabled stream. In a stream, a byte below $80 is a note that indexes the frequency tables, $5E means keep the old pitch, and bytes from $80 to $97 are commands for substreams, loops, instruments, durations, and modulation. Three more routines run on each tick: one steps an arpeggio on each voice ($09FD), one moves the pulse width up or down ($0A38), and one sweeps the shared filter cutoff ($0A9B).

Four command numbers, $85, $94, $96, and $97, have no valid slot. A stream that reaches one lands in a loop at $1433 that changes the border colour. Some of the direct SID-write commands use the undocumented LAX instruction, and the page's driver keeps it.

On the title screen, Space toggles the byte at $0200 between MUSIC and FX. The main loop runs the music driver when it is zero and the effects driver otherwise ($811E), so each pass ticks one driver. In the normal play tested, Space did not change it.