VGM
Video Game Music | |||||
Developer: | Dave, Maxim, Valley Bell | ||||
Header: | Custom | ||||
Content: | Log | ||||
Instruments: | Combined | ||||
Target Output
| |||||
Released: | 2001 | ||||
First Game: | N/A | ||||
Extensions |
|
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.
Contents
Players
- Audio Overload - Linux, Macintosh, Windows
- VGMPlay[1] - Linux, Macintosh, Windows
- Game Emu Player - foobar2000
- VGM Input - Winamp, foobar2000
- VGM Player - DOS
Editors
- VGMTool - Windows
- vgmtoolbox - Windows
Converters
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
Games
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.
Technical
Chips
Chip | Manufacturer | Devices |
---|---|---|
051649 | Konami | MSX with SCC1, and some Konami arcade games. |
053260 | Konami | Some Konami arcade games. |
054539 | Konami | Some Konami arcade games. |
AY-3-8910 | General Instrument | Hundreds of arcade games, Mockingboards Sound I and Sound II, MSX, Oric 1, Colour Genie, Elektor TV Games Computer (Expanded Version) |
AY-3-8912 | General Instrument | Vectrex, Amstrad CPC, ZX Spectrum 128, some arcade games. |
AY-3-8913 | General Instrument | Mockingboards A, C, D, M, and v1, some arcade games. |
AY-3-8914 | General Instrument | Intellivision, Intellivision II |
C012294 (POKEY) | Atari | Atari 8-bit home computers. |
ES5503 | Ensoniq | Apple IIgs |
C140 | Namco | Several Namco arcade games. |
DMG-CPU B | Nintendo | Game Boy |
HuC6280 | Hudson | Turbo Grafx 16, a some arcade games. |
MSM6258 | OKI | X68000 |
MSM6295 | OKI | Some arcade games. |
PC Speaker | Generic | Only DOS videogames have been ripped. AY-3-8910 was used as a substitute, since it's not supported directly. |
PWM | Sega | Sega 32x |
Q-Sound | Capcom | Capcom CPS-1 and CPS-2 arcade platforms. |
RF5C164 | Ricoh | Sega Mega CD |
RF5C68 | Ricoh | System 18 and System 32 arcade platforms. |
RP2A03 (APU) | Ricoh | Nintendo Entertainment System. |
Sega PCM | Sega | Various arcade games. |
SN76489 / SN76496 | Texas Instruments | BBC Micro, Game Gear (with stereo extensions), Mark III, SC-3000, Master System, Tandy 3 Voice, SG-1000, and Genesis. |
T6W28 | Texas Instruments | NeoGeo Pocket (variant of the SN76489). |
UPD7759 | NEC | Various arcade games. |
VSU | Nintendo | Virtual Boy |
Y8950 | Yamaha | MSX with MSX-Audio, a few arcade games. |
YM2149 (SSG) | Yamaha | MSX2, Atari ST. |
YM2151 (OPM) | Yamaha | Capcom CPS-1, and Sega arcade platforms and the Sharp X68000. |
YM2203 (OPN) | Yamaha | NEC PC-8801, PC-9801-23K, various arcade games. |
YM2413 (OPLL) | Yamaha | Japanese Master System, Mark III, and the MSX-1 with FM-PAC, VRC7. |
YM2608 (OPNA) | Yamaha | NEC PC-8801, NEC PC-9801, PC-8801-23, PC-9801-86, some arcade games. |
YM2610 (OPNB) | Yamaha | NeoGeo, various arcade games. |
YM2612 (OPN2) | Yamaha | Genesis, FM Towns. |
YM3526 (OPL) | Yamaha | Various arcade games. |
YM3812 (OPL2) | Yamaha | PC with AdLib or Sound Blaster, and various arcade games. |
YMF262 (OPL3) | Yamaha | PC with Sound Blaster 16, and some arcade games. |
YMF271 | Yamaha | Some arcade games. |
YMF278B (OPL4) | Yamaha | MSX with Moonsound and some arcade games. |
YMZ280B | Yamaha | Various arcade games. |
There are some chips such as the Namco WSG, Television Interface Adaptor, Display Processor Chip, MOS Technology's series (6560, 6581, 7360 and 8364), Macintosh chip (unknown model on SE, Plus) 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 such as DCS 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.
Links
- smspower.org/Music/VGMFileFormat - Official Specs.
- en.wikipedia.org/wiki/VGM_%28file_format%29 - Wikipedia.