DP

From Video Game Music Preservation Foundation Wiki
Jump to: navigation, search
DMX PC Speaker Format
DP.png
Developer: Paul Radek
Header: Custom
Content: PCM
Instruments: Intrinsic
Target Output
Output - Digital Audio - No.png Output - MIDI - No.png Output - FM Synthesis - No.png Output - PSG.png
Released: 1992-12-10
First Game: Doom (DOS)
Extensions
  • *.dp
  • *.lmp

The DMX PC Speaker Format (DP) is a special PC speaker format designed so that people who played Doom (DOS) without sound cards could still hear sound effects. By 1994, sound cards were pretty ubiquitous among PC gamers, but id Software decided to accommodate those who still lagged behind the technology curve by adding PC Speaker sound effects to the game. This format was never used for music. In the WAD files, the DP files use the generic .lmp extension, but to make them unique, they're given the .dp extension.

Subsequent games made using the Doom engine also could have utilized this format.

Players

(Category)

Games

(Category)
Released Title
1993-12-10 Doom (DOS)
1994-04-01 Raptor: Call of the Shadows (DOS)
1994-10-10 Doom II: Hell On Earth (DOS)
1996-05-31 Final Doom (DOS)
1996-??-?? Chex Quest (DOS)
1996-??-?? Chex Quest 2 (DOS)
1996-??-?? Strife (DOS)

Technical

PC speaker sound effects have a four byte header that is used to specify the length of the sound. That many bytes then follow.

Each byte corresponds to a tone that is played for 1/140th of a second (this corresponds to 4*35, where 35 is the number of frames per second in Doom). Because of this, the format doesn't easily translate to games played at a different frame rate. The frequency values used are on a musical scale; there are 24 notes per octave, which corresponds to double that of the western musical scale (12 notes per octave). The values are therefore a superset of the western musical scale, with an extra microtone inserted between each note.

Because of this, the frequencies increase exponentially with respect to the byte values. Adding 24 to the value doubles the frequency. A value of 0 causes silence.

The format was reverse engineered by Simon Howard (fraggle) and Andrew Apted (ajapted).

Links