·( VGM File Format )·

This page contains an introduction to the VGM file format, an explanation of its capabilities and purpose, and the official technical specifications of the format.
-Maxim

Introduction

On August 5, 2001 Dave posted a message on the S8-dev forum asking "Is there currently a format similar to GYM which logs YM2413 signals and PSG signals so they can be played in WinAMP?". It turns out there was not a format that met his requirements (Charles MacDonald's SSL was not able to store samples (voices)), so Dave invented a new format, retaining the similarity to GYM (a Mega Drive music logging format), which was able to store music from a wide range of systems, including the Master System and Mega Drive.

The format was tweaked and modified over the next two months, on the S8-dev forum - Maxim wrote a Winamp input plugin to play the test files Dave was producing using Dega; Bock added the feature to Meka; the file format went through several name changes, eventually being called VGM as a nice general name, not specific to any one person, system or emulator. VGM stands for Video Game Music.


Capabilities

VGM logs the data written to the sound chips by games. As of version 1.01 it can store data written to these chips:

Company Chip Some of the systems which use it
Texas Instruments SN76489 / SN76496 Master System, Mark III, SG-1000, SC-3000, Game Gear (with stereo extensions), Mega Drive/Genesis, BBC Micro
Yamaha YM2413 Japanese Master System & Mark III, MSX-1 with FM-PAC
Yamaha YM2612 Mega Drive/Genesis
Yamaha YM2151 Capcom CPS-1 arcade games

It is a simple task to add new hardware to the format, if necessary.

VGM is a 44100Hz sample-accurate logging format; it can record a practically unlimited number of sound hardware changes per sample. It can also be used as a frame-accurate format, to create even smaller files at the expense of some accuracy (samples will not work, but music will generally not be affected noticeably).

GD3 was invented to allow text information to be stored in VGM files; it is a similar concept to ID3 tags in MP3 files, this being the reason for the similarity in name. GD3 tags are also extensible; they store various information in Unicode format, allowing the use of any characters, including non-Roman alphabets. Information stored by GD3 v1.00 includes the track, game and system names; author, date of game release, name of the file creator, and any miscellaneous notes. Several of these are stored twice, in the Roman alphabet and in Japanese if possible.


Official Specifications

VGM v1.50 specification
GD3 v1.00 specification
VGM7z v1.00 specification


Return to Music
Return to SMS Power