1988 · Electronic Arts

Wasteland

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

The game itself has three sounds on one voice of the SID, and one of them is never heard. The title and the radio bring sounds of their own.

01 · Sound

Sound: three effects, and one of them never sounds

Every sound the game itself makes comes from a table of three records, played on one voice of the SID: an explosion, a click, and a third that is never heard. The title and the radio program bring sounds of their own.

Loading the sounds…

Every sound in the game, played by a port of the routine that makes it through the site's model of the SID, with the bytes each one is made from. The slider sets the Geiger counter's distance to the radiation. Each port keeps the routine's timing to the cycle: a test ran the game's own code on the kit's 6502 simulator beside the port, 1,789 runs and 172,557 SID writes, and every write came in the same frame, at the same cycle, with the same value. The player changes the SID's registers once a frame (20 ms), and three sounds lose something to that. The whistle's 243 steps are heard as four. The fanfare's 7 ms gaps between notes last 20 ms or vanish. Close to radiation, two clicks in one frame play as one. The title's explosions are a low rumble, nearly a third of it below 100 Hz, which laptop and phone speakers barely play: listen with headphones. The pitches are a PAL machine's.

The engine has one short routine for sound ($C993), and it plays on the first of the SID's three voices. A sound is an 11-byte record in a table of three ($C9BC): the voice's frequency, pulse width and envelope, the three filter registers, and a control byte. The routine turns the voice's gate off, sets the volume to 15, and writes the record: bytes 0 to 6 to the voice's registers from the top down, bytes 7 to 9 to the filter's, and the control byte last. The control byte picks the waveform, and its bit 0, the gate, starts the sound.

Record 0 is an explosion: noise that dies away. It plays while the screen shakes for half a second ($0746), which happens when the party uses one of seven items, from the grenade to the RPG-7, at events in twelve of the maps, and when Base Cochise is destroyed ($CA4C).

Record 22 is a short click of noise. Every step the party takes clicks with it ($AE26), the Geiger counter clicks with it, and so does the title as it types its story ($8427).

Record 11 never makes a sound. Its control byte, $A4, asks for noise and sawtooth with the gate bit clear, and a voice whose gate stays shut stays silent. The Ranger Center plays record 11 when it refuses a choice, then waits 1.2 seconds ($8188), and the game does the same after one of its messages ($92BC). Modules 1 and 2 call it too. The what-if button plays the record with the gate bit set. Noise mixed with another waveform is something the model only approximates, so the result is a guess.

The Geiger counter clicks from the game's main loop ($7E63). Every fifth pass of the loop counts a number down. At 0 the counter clicks, and the next pass draws a new number from 1 to the distance plus 1 ($24C4). The distance is to the nearest radiation square in view, about 10 for each square, from a table of 50 ($0921). The loop goes round about a thousand times a second, 20 times a frame by a count in the emulator, so the clicks come at random, faster as the radiation gets nearer. With none in view, or nobody carrying a Geiger counter, the distance is $FF and nothing clicks. The bar beside the slider is the game's gauge ($0AA1): 18 segments, one fewer lit for every 8 of the distance.

DistanceWhere the radiation isClicks a second
2on the party's square72
10one square away32
14one square diagonally24
50five squares away8.0
98the corner of the view3.9

The title has sounds of its own, from a routine in the start-up program that can use any voice ($7E03). The routine adds the voice's offset, 0 for voice 1 and 7 for voice 2, to every register it writes but the volume, the filter's included, as if each voice had a filter of its own. The SID has one, at $D415 to $D417. For voice 2 the three filter bytes land at $D41C to $D41E, past the volume register, the last of the chip's sound registers. Nothing is lost. They are the same three bytes that voice 1's record has just written to the real filter registers, and those send no voice through the filter.

The siren comes as the title's story turns to war ($7E77). Two sawtooth voices climb slowly together, hold, fall, and fade, eleven seconds in all. Then the gauge on the right fills, two whistles fall from 3,806 Hz to 168 Hz in 75 ms each ($7EFA), and 14 explosions follow at the intervals of a table ($8133). The title's explosion is not the game's record 0. The title plays noise at so low a frequency that the noise changes only about 750 times a second, a rumble rather than a crack ($7F13).

The radio program plays a six-note fanfare before the Cochise reward and before each promotion ($7E06). Its frequencies are tuned to the American machine's clock, on which the notes are C5, C5, C5, E5, F5, and G5. A PAL machine plays every note 65 cents flat.

The Ranger Center's program loads with SID code in it ($8621 to $8694), but the code is the fanfare's. The load reads past the end of the Ranger Center's program into the radio program's file, which follows it on the disk, and nothing in the Ranger Center calls it. The Ranger Center's only sound is the silent record 11.

Players remembered these sounds for years. The Wasteland Ranger HQ-Grid's Underground gathered what C64 players recalled on Snake Squeezins: beeps, the air raid siren during the beginning sequence, a Geiger counter more realistic sounding than the other versions', explosions that sound like explosions, and the promotion jingle. Four of them are on this page: the title's siren, the Geiger counter's clicks, the explosions of record 0 and of the title, and the radio's fanfare. Which sound the beeps were is not known.