1985 · Domark

A View to a Kill

This minisite was contributed by air, 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/a-view-to-a-kill with me to Gold.

Two tunes shared between four programs, a gunshot, and speech played by switching the volume on and off.

01 · The tunes

Two tunes, each kept in the memory under the operating system

The credits thank Tony Crowther for the arrangement of the James Bond theme, and name Duran Duran and John Barry for the title music.

The game has two tunes, each used by two programs. Both keep their notes at $E000 and up, in the memory hidden under the operating system's ROM. To read a note the player switches everything but RAM out for a moment (the intro $C773, Paris $7B73).

TunePlayed inVoices
The James Bond themethe intro and City Hall, with the same driver at the same address ($C640)three pulse waves; voice 1 through the low-pass filter
A tune based on Duran Duran's "A View to a Kill"Paris and the mine, with the same notes and different drivers ($7AAB, $7BAB)three voices; Paris uses noise, sawtooth and pulse

The game's two music drivers, the intro's ($C640-$C7B5) and Paris's ($7A40-$7BC7), ported to JavaScript and played through the site's model of the SID, with the notes read from each program. The ports were checked against the game's own code run in the kit's 6502 simulator: every register write, in order, for 40,000 frames of each tune, 342,506 writes in all, matched. Each tune is played once here; the game starts it again at once. The filter is a 6581's, whose cutoff varies from chip to chip. Both tunes have many notes below 100 Hz, some of Paris's below 60 Hz, which laptop and phone speakers barely play.

The intro and City Hall play the James Bond theme; Paris and the mine play the tune based on the Duran Duran song (heard by the site's contributor). In both drivers a note is three bytes, two for the frequency and one for its length, and the notes step after three frames and then two, in turn: 20 steps a second on a European machine. The intro's driver adds vibrato by adding 0, 4, 8 or 12 to the frequency each frame ($C798). One pass of the intro's tune is 5,106 steps, about 102 seconds.

Paris lets the player choose on the instruction page: the tune, the effects, or both ($4F30). In the mine the two effects, a beep for yes and a buzz for no, borrow the tune's second voice ($3B7D, $3B9C).

02 · The intro

A gunshot with the interrupts off, and the tune parked while it sounds

The gunshot is voice 3's noise at a fixed frequency, played with the interrupts off so nothing else runs ($CABC). Before it, the intro saves the music driver's whole state to $9F00 and puts it back afterwards, so the tune picks up where it stopped ($C1B0, $C1C0).

03 · Speech

Speech made of one-bit samples, played on the volume control

The intro ends with "Now, James, your mission begins" on screen, and Paris speaks when the chase is won or lost.

Both players work the same way. They switch the sound chip's master volume between 0 and 15, one bit of sample at a time, with the interrupts off (the intro $A000, Paris $1000). Each change of volume makes a click in the output, and a fast enough stream of clicks is heard as a voice.

SampleWhenLengthWhat it says
$A090the end of the intro2.18 s"My name's Bond. James Bond"
$1225Paris, May Day caught1.53 s"Well done, 007"
$190AParis, May Day lands (the altimeter reaches 000)1.47 s"You failed, Bond"
$1090, then $190AParis, the car wrecked (the damage reaches 40)0.36 s + 1.47 s"Damn it", then "You failed, Bond"

The speech player ported to JavaScript: it computes every write to the volume register and the cycle it lands on. The port was checked against the game's routine in the kit's simulator, and all 51,220 writes of the four samples matched, cycle for cycle. The picture shows how often the level changes along the sample; it is flat where the sample is silent. Heard here as a straight level through the C64's output stage. When the car is wrecked the game plays two samples one after the other ($4BA0).

Paris has no separate sample for a wreck: it says "Damn it" and then plays the same "You failed, Bond" as a landing ($4BA0). The words were heard by the site's contributor; the FRGCB blog hears the intro's the same way.