VGM (file format)

From Wikipedia, the free encyclopedia
Jump to: navigation, search

VGM (Video Game Music) is an audio format for multiple video game platforms, such as Sega's Master System, Game Gear, Mega Drive/Genesis, MSX, Neo Geo, PC (Adlib/SoundBlaster), and has expanded to a variety of arcade system boards since its release.

The normal filename extension is .vgm, but files can also be Gzip compressed into .vgz files. Technically, .vgz files should be named .vgm.gz, but because some popular operating systems' file managers cannot handle file name suffixes that themselves contain a period, .vgz is used in order to launch a VGM player (e.g. Winamp with the proper input plugin) and not a data compression program such as WinZip or WinRAR.

On November 20, 2005, VGM 1.50 was officially announced, and a new version of the input plugin released. The new version of the format supported PCM optimization for the Yamaha YM2612 sound chip, which significantly reduces the size of VGM files by avoiding redundancy. The first YM2612 VGM archive, Project 2612, optimized all of its packages soon after.

Version history[edit]

1.00 Initial public release.
1.01 Rate value added.
1.10 PSG white noise feedback and shift register width parameters added.
1.50 VGM data offset added to header. Data block support added, allowing for improved handling of YM2612 PCM data.
1.51 Sega PCM, RF5C68, YM2203, YM2608, YM2610/B, YM3812, YM3526, Y8950, YMF262, YMF278B, YMF271, YMZ280B, RF5C164, PWM and AY8910 chips and commands added. Additional data block types RF5C68 RAM write, RF5C164 RAM write, Sega PCM ROM, YM2608 DELTA-T ROM, YM2610 ADPCM ROM, YM2610 DELTA-T ROM, YMF278B ROM, YMF271 ROM, YMF271 RAM, YMZ280B ROM and Y8950 DELTA-T ROM Data added. SN76489 flags and loop modifier added.
1.60 RF5C68, RF5C164 and PWM PCM blocks and compressed data blocks added. New commands (PCM RAM write and DAC Stream Control) added. Volume modifier and loop base also added.
1.61 GameBoy DMG, NES APU, MultiPCM, uPD7759, OKIM6258, OKIM6295, K051649, K051649, HuC6280, C140, K053260, Pokey and Q-Sound chips added, including necessary data blocks. Changed number of operands from 1 to 2 for reserved commands 0x40-0x4E.
1.70 Added extra header with separate chip clocks for the second one of dual chips and chip volume adjustments.
1.71 (beta) SCSP, WonderSwan, Virtual Boy VSU, SAA1099, ES5503, ES5506, Seta X1-010, Namco C352, Irem GA20 added. Data blocks (type 0x) for OKIM6258, HuC6280, SCSP and NES added. VGM v1.61 players support the data block of their respective chips, despite their late addition.


External links[edit]