VGM (file Format)

VGM (Video Game Music) is an audio format for multiple video game platforms, such as Sega's Master System, Game Gear, Mega Drive/Genesis, SG-1000 Mark III, MSX, NeoGeo and many others.

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 dot, .vgz is used in order to launch a VGM player (e.g. Winamp with the proper 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 now supports PCM optimization for the Yamaha YM2612 sound chip, which makes sound files using the chip a lot smaller — sometimes with over 75% of size reduction. The first YM2612 VGM archive, Project 2612, optimized all of its packages soon after.

As of May 6, 2011, the official VGM specification was updated from version 1.50 to 1.60; the following non-exhaustive list details each new change:

Version 1.51 changes (unofficial update)

The 1.51 spec sheet documents that this version is compatible with the 1.50 specification (with exception of the dual-chip support), but Maxim's in_vgm Winamp plugin still exhibits issues when utilized.

  • Support for audio playback and manipulation of many new chips and formats, notably:
    • The YM Series (YM2203, YM2608, YM2610, YM3812, YM3526, Y8950, YMF262, YMF271, YMF278B, and YMZ280B)
    • RF5c68 and RF5c164 (Sega CD PCM)
    • Sega PCM and Sega 32x PWM
    • AY-3-8910
  • Data block type information has been added for all new chips that need additional data.
  • SN76489 Flags have been added.
  • Dual-chip support has been added for nearly every chip.

Version 1.60 changes

Several new optimization methods have been created (optvgmrf and optvgm32).

  • RF5cxx and PWM stream data blocks and a command for optimizing RF5cxx data streams have been added.
  • Ability to control DAC Streams more easily has been added to support better optimizations.

As of the 1.60 update, compatibility with 1.50 format players has been broken.