All Computer music articles | Back to top

Video Game Music

Although a large portion of old video game soundtracks is available on YouTube now, there is an aesthetic appeal to playing the original music files using some form of emulator. However, the number of video game music formats is staggering.

In this article, I will touch on a few of these formats, and how to emulate them.

The 16-bit Generation

Probably, the most iconic and well-known period in video game music is the 8-bit era, mainly comprised of music from the Commodore 64, the NES, and the Sega Master System, a period that began in the year 1982 when the C64 was released, and ending somewhere in the 1990s.

The following generation, the 16-bit generation, could be said to start around 1985, when the Commodore Amiga and, shortly after, the PC-Engine, the Sega Genesis, and the Super Nintendo were released.

One of the primary characteristics of electronic music is the technology itself, and technology is what separates the 8-bit and 16-bit generation.

8-bit music was created with programmable sound generators (PSGs), digitally controlled oscillators capable of outputting predefined waveforms like square waves and white noise and, in the case of the C64, combinations of such oscillators put through adjustable analog filters. Through clever programming, the oscillators could be tricked into reproducing sampled sounds, although this was a relatively rare occurence in games.

The music of the 16-bit generation was characterized by the availability of new technology, mainly sound chips with built-in support for:

Music Player Daemon

MPD (Music Player Daemon) is a music server application that runs on Linux. MPD has support for the game-music-emu library, which, among other formats, supports replay of Super Nintendo and Sega Genesis music.

So, currently, MPD supports, among the more common sound file formats:

But MPD leaves two annoying gaps in my playback capabilities:

The Heterogeneity of Amiga Music

Amiga music is more than just MODs. Here are some examples of other Amiga music replayers:

These are some very interesting Amiga composers, making these formats important to emulate.

On the Amiga, two players were capable of playing all of these obscure formats, namely DeliTracker and EaglePlayer, desktop players with support for more than 150 different Amiga-specific formats. The Eagleplayer source was released under a GPL license in 2005, making it relevant for further development. These two multiformat trackers were ported to Windows and other operating systems in an interesting way in the form of the UADE project (Unix Amiga Delitracker Emulator); instead of rewriting the audio rendering code, UAE, the Unix Amiga Emulator, is used as an emulation core, and music is played using Eagleplayer / DeliTracker on an emulated Amiga.

UADE is a great method for playing Amiga music, it can be used as a command-line client: 'uade123', or as a plugin to well-known Linux media players XMMS or Audacious. uade123 runs on Linux. Here's a way to set up Midnight Commander to use uade123 for Amiga music files:


         Open=uade123 -n %f

UADE can be used on Windows to dump Amiga music to WAV files. UADE doesn't like backslashes, so here's a way to dump a WAV file from a TFMX:

uade123 songs/mdat.title -f output.wav

So that's the Amiga covered. But ...

Arcade Music

Without a doubt, the most complete, easy, and accurate way to emulate arcade games is the MAME (Multiple Arcade Machine Emulator) project. When playing arcade games from the 16-bit era, you will often encounter the same sound hardware. One of the most common is the Yamaha FM sound chip YM2151, used in games such as Contra, Golden Axe, Gradius III, Magic Sword, Marble Madness, NBA Jam, Pacmania, R-Type, Shinobi, Street Fighter II, and Strider. It is an eight voice FM synthesizer, similar to YM2612, the six voice sound chip used in the Sega Genesis, and similar to the classic 80s synthesizer keyboard, the 16 voice Yamaha DX-7, one of the best-selling synthesizers of all time.

FM synthesis has seen a resurgency in later years, possibly with the introduction of well-designed software synthesizers such as FM8 by Native Instruments or Operator for the popular music software Ableton Live.

Currently, the easiest way to export music from MAME-emulated games is to start a modified version of MAME that outputs the control data sent to sound chips such as YM2151 to a file. The modified MAME outputs such data in the VGM file format mentioned earlier, and can be played back using a special VGM-MAME player or other players, such as SonicPlayer. A drawback is that you have to play the game to record the control data, and sound effects may be intermingled in the output.

A more robust way of playing arcade game music is the MAME spin-off project M1. M1 is able to play music directly from a MAME ROM dump without having to actually play the game. This software has opened up a lot of new music to me, such as:

You Can Also Listen to Stuff!

There is a lot of game music players available:

Right out of the box, VLC comes with the game-music-emu library, that plays:

foobar2000 can, after installation of a couple of 'components', play:

If you want to get hardcore, you'll need these command-line tools:

Another interesting project is ProTracker for Windows.