From GameBrew

GBA VGM Player
Last Updated2005/10/22
TypeMedia players

GBA VGM Player is a program for your Game Boy Advance (or compatible hardware) that will play back VGM files. Comes with ROM builder.


The easiest way is to use GBA VGM Player ROM Builder. This program builds custom-ordered GBA VGM Player ROMs, by creating an editable tree view of the files added and then generating a non-standard GBFS structure. To use:

  • Make sure gbavgmplayer.gba is in the same directory as the program.
  • Open or drag/drop VGM files, or playlists, or directories (playlists recommended).
  • Re-order using the buttons (or Ctrl+Up/Down), delete with the button/Delete key.
  • Double-clicking will open VGM files in the associated player (Winamp and in_vgm recommended).
  • Sort root sorts the root level alphabetically but won't destroy playlist ordering.
  • Create ROM will make your rom. "Play ROM" will then load it in an emulator if you have GBA files associated with one.

Alternative method:

  • Put VGM files (as compressed .vgz or uncompressed .vgm) into the vgms directory.
  • Run Go.bat (which may not work if you don't have Windows XP) to build a ROM out of them.

Put that onto a flashcard (there's not much point playing it on an emulator) and listen to magical VGM goodness everywhere you go.

User guide


Q. Doesn't it support YM2413/YM2612/YM2151?

No way, no chance. It's possible an accurate FM chip emulator could be written in assembly, but not with this program.

Q. What's the sampling rate?

It's actually at 20kHz, not 32kHz as the GBA is capable of at its peak.

But the antialiasing effect means you can hardly tell the difference anyway.

Q. Why does file X play badly, with clicks and stutters and stuff?

The amount of CPU time needed depends on the data being played and some data uses more CPU time than others.

Some samples play back OK, some don't. If you find a music track that stutters, let me know and I'll see about fixing it.

However, first optimise the VGM data using VGMTool.

This reduces the amount of data without affecting the output, which helps save CPU time for sound chip emulation.

Q. Why don't you use the GB square wave generators instead?

Because it is not possible to accurately convert data to make it play back properly on those; it's only good enough for a fast SMS emulator's sound emulation.

Q. Why does it put the files in the wrong order?

The GBFS system used (made by Damian Yerrick) is designed to support finding data from its filename so to make the search fast, all files are sorted alphabetically.

Using GBA VGM Player ROM Builder will allow you to choose the ordering, but using the batch file (which uses gbfs.exe underneath) will always give alphabetical ordering by filename.


Left/Right - Skip track

Hold A - Skip 10 tracks at a time

Hold B - Skip 100 tracks at a time

Start - Pause

Select - Keylock

A+B - Toggle shuffle

Up/Down - Select loop count (1 to 9, or loop forever)


This is based upon GBA GSM Player by Damian Yerrick.


v0.17 2005/10/22

  • Increased sampling rate, improved UI.

v0.16 2005/05/03

  • Fixed a bug with the keylock functionality.

v0.15 2005/05/02

  • Added tone channel antialiasing to vastly increase the sound quality.
  • Added loop count configurability and fast-forward mode.

External links