1986 · Beam Software

Fist II: The Legend Continues

This minisite was contributed by air, unorig. It’s currently claimed by unorig who is editing it to reach a Gold tier standard.

Neil Brennan's1 three tunes, played by the game's own music driver, and the sound effects that play through the volume register.

Music

Three tunes, one for each part of the world

The game plays one tune at a time, chosen by where the hero stands ($1247), and loops it for as long as he stays. Press a tune to hear it.

The game's music driver ($F400) ported to JavaScript and played through the site's model of the SID chip. The port was checked against the driver itself, run in a 6502 simulator on the game's bytes: all 25 sound registers after each of 30,000 frames, ten minutes of each tune, match. Tune 1 sweeps the filter, so the player starts with the filter of a 6581, the C64's first sound chip; its cutoff is one chip's, and real 6581s differ widely. The filter sweep follows voice 3's envelope, which the model reads once a frame where the chip would be read part-way through it.

TuneWhere it playsSpeedInstruments
1areas 0-7 (scenery set 0, the caves), except the temples ($11FC)a tick every 2 frames8 (0-7)
2areas 30-47 (scenery set 2), and the temples ($11FC)a tick every 2 frames3 (9-11)
3areas 8-29 (scenery set 1), where the game starts ($1247)a tick every 5 frames5 (12-16)

Each zone's tune ($1247) comes from a three-byte table, and the temples, area 6, are given tune 2 ($11FC) on their own. The speeds are the tempo table ($F42F).

Brennan has described how he worked at Beam: Fred Milgrom, one of the studio's two founders,6 talked him through a game's characters and artwork and "the kind of musical 'feel' that he was after", and Brennan would "head off to my little 4-track to put down as many themes as I could muster". Milgrom's "view of games was very cinematic", he says: "He would make me watch Fellini films, or study Chinese music".14

The driver

Sequences, patterns and 21-byte instruments

The driver ($F400) runs once a frame from the status-band interrupt. Each voice reads a sequence ($F5BD): play pattern n, repeat a block, or jump back to loop. A pattern is a list of notes, each a note byte ($F68E) (the note in the low four bits, the octave in the next three) and a length byte ($F6C0) that picks one of sixteen lengths ($F4D5). The notes come from a table of one octave ($F4C8), doubled for each octave up. A byte of $80 or more in a pattern changes the instrument ($F683).

There are 17 instruments of 21 bytes ($FE43). An instrument sets the waveform and envelope, and can sweep the pulse width from one of three ramps, glide from note to note, add a vibrato or a trill, and route the voice through the filter with a cutoff that sweeps. Only voice 1 restarts its vibrato with each new note: the instruction that asks for the restart ($F6F0) is not indexed by voice, so voices 2 and 3 keep theirs running.

Sound effects

Samples through the volume register

The sound effects are samples, made by Bruce Bayley, the manual says.1 A timer interrupt ($3D8B) switches the SID's volume between two levels, and each byte of a sample sets how long until the next switch, through a table of 256 timer periods ($0200). Each switch of the volume makes a click, and the clicks at the right spacing make the sound. The site's model of the SID does not play samples, so they are not heard here.