|Video Game Music|
|Developer:||Dave, Maxim, Valley Bell|
The Video Game Music format logs the audio instructions sent to a wide variety of audio chips used in 8 and 16-bit video game consoles, arcade consoles, home computers, and even pinball machines. Because of this, it has become the de facto standard format for retro video game music. Since VGM logs the instructions sent to an audio chip, playback can be made simply by sending the log to an actual chip or an emulated chip, which will yield identical sound as the game. To use a piano metaphor, VGM doesn't copy the sheet music, and it doesn't record the played music with a microphone, rather it records the motions made by the hands of the pianist.
While this method bypasses having to decipher the countless custom methods for storing and playing video game music that developers have thought up over the years, it is not without its share of problems. Only the processed data is recorded, not the original files and code. This means it doesn't retain any of the original looping information so each song must be timed by hand. It also doesn't include any meta data or unused portions of the original. For this reason, many VGMs can have trimming errors, particularly ones on SMS Power. However, ValleyBell developed a program named vgmlpfnd which finds loops, though it cannot be used with games that have strange sound drivers.
There are two common ways to compress VGM files and keep them playable in updated VGM players. The most common way is to compress each VGM song using ZIP compression, and replace the *.zip extension with *.vgz. The second method is to compress a collection of VGM songs into a 7Z archive and replace the *.7z extension with *.vgm7Z. The second method compresses much better than the first, but isn't as widely supported. Any of the three formats are acceptable on this site, though vgm7z is preferred.
- Audio Overload - Linux, Macintosh, Windows
- VGMPlay - Linux, Macintosh, Windows
- Game Emu Player - foobar2000
- VGM Input - Winamp, foobar2000
- VGM Player - DOS
VGM to ?
- Audio Overload - Linux, Macintosh, Windows - WAV
- VGM to TXT - Windows - TXT
- VGMTool - Windows - VGZ
- Game Emu Player - Foobar2000 - WAV
? to VGM
- CoktelADL2VGM - Linux, Windows - ADL (Coktel Vision), MUS (AdLib), SND (AdLib)
- DRO to VGM - Windows - DRO
The vast majority of 8 and 16-bit video game consoles, home computers, and arcade cabinets can have their music logged into VGM format.
How to Obtain
VGM music is usually logged using an emulator that can capture instructions sent to an audio chip. This requires actually being able to get to a point in the game where music is played, and often teasing out sound effects that may be played at the same time. Finally, the VGM log must be timed by listening to when the music loops. While the process isn't too difficult, it is quite time consuming. Thankfully, a large variety of games have already been logged to VGM format and can be downloaded from these following sites:
- vgmrips.net/forum - VGM Rips. Most active site, many platforms.
- project2612.org/list.php - Genesis only.
- smd.joshw.info - Josh W Genesis (7Z archives).
- smspower.org/Music/Index - 8-bit Sega only.
You can learn how to rip VGMs here.
There are some chips such as the Namco WSG, DCS, and 6581 which are not intended to be implemented into the format. The former chip is not currently implemented due to being part of a family of chips, but it is possible it may be supported in the future. There are also various DACs which are not intended to be included in VGM.
Game Gear VGM Glitch
Sometimes, VGM files logged through Game Gear games will not play. This can be fixed by changing the 4F byte (usually located from 0040 to 004F) to FF.