VGM Tools

From vgmrips
Jump to: navigation, search

Over the years various programs have been written to work with different aspects of VGM files, beginning with the original all-in-one VGMTool by Maxim. An update to the original VGMTool, tagged as version 2R6, was released by NeoLogiX to resolve YM2612 and YM2151 processing issues but was found to have numerous other bugs (including buggy support for the particular UTF-16/UCS2 used for GD3 tagging) that rendered it unsuitable for widespread use.

Valley Bell currently releases the most up-to-date tools for working with VGMs, though they are all command-line.

Tools by Valley Bell

Win32 binaries

Win32 binaries

source

Command-line tools dacopt, dro2vgm, opt_oki, optvgm, optvgmrf, vgm_cmp, vgm_cnt, vgm_dbc, vgm_facc, vgm_ndlz, vgm_ptch, vgm_ren, vgm_smp1, vgm_sptd, vgm_spts, vgm_sro, vgm_stat, vgm_tag, vgm_trim, vgm_tt, vgm_vol, vgm2txt, vgmlpfnd, vgmmerge
Please refer to the Readme for further information on what the tools do and how they are used.
For the most up-to-date versions, please visit the official release thread or the GitHub Repository.
vgm2mid

Win32 binaries

Win32 binaries

source

The most recent update to Paul Jensen's original VB6-based VGM2MID; handles most VGM v1.51 and a few 1.61 chips.

Tools by NeoLogiX

vgm2pre
official release thread | open beta thread
Win64 binary | Win32 binary | source
vgm2pre is a program to save instrument presets from VGMs to formats usable in various trackers and sequencers. It currently dumps FM presets from VGMs with YM2612 data.
YM2612 FM presets can be dumped to VGI, TFI, TYI, EIF, DMP, Y12, and GYB formats.
vgm2mid, Sphere edition
A port of Paul Jensen's original VGM2MID program to JavaScript; due to its reliance on Sphere's file APIs it only runs in the Sphere engine.
NeoLogiX has plans to port the script to web-compatible JavaScript, though no date has been given for its release.
VGMTool v3
source
As early as 2012 NeoLogiX announced plans to completely revamp VGMTool for modern systems with the goal of making the codebase easier to update and maintain than the original Win32-only VGMTool source. Though he released screenshots of work-in-progress to garner attention and has uploaded source code to it, development is not complete. Release date is currently unknown.

When to use vgm_sro vs optvgmrf?

[Posted verbatim from the IRC for now.]

<Gnome> Btw, is optvgmrf obsolete now or something? I thought that's what should be used on RF packs
<BoxCubed> No, vgm_sro for FMT is used to get rid of dummy data.
<VB|work> vgm_sro = a single sample ROM block
<VB|work> optvgmrf = when the game streams data in realtime
<VB|work> so vgm_sro is used when the game preloads data
<VB|work> sorry, I don't have an exe at hand right now
<BoxCubed> ah, but it also gets rid of excess 0xFF writes, right?
<VB|work> yes
<VB|work> and ... it used to get rid of too many of them
<VB|work> causing the bug that GTG had
<Gnome> Does the order in which they're used matter?
<VB|work> You use only one of them.
<Gnome> Oh so on FMT we use sro
<VB|work> I tihnk vgm_sro refuses the file if data is streamed.
<Gnome> Optrf for Sega arcades
<VB|work> FMT *may* stream data
<VB|work> but I think just trying vgm_sro first works
<VB|work> of vgm_sro accepts it, then use it
<VB|work> if it refuses and complains about streamed data, use optvgmrf
<BoxCubed> it's vgm_sro -> optvgmrf
<Gnome> Well the raw log was pretty small, so no streamed data I believe
<VB|work> On the Sega MegaCD for example, the Japanese BIOS had static samples
<VB|work> but the US BIOS streamed data
<BoxCubed> I helped marklincadet with this when he was working on Dengeki Nurse
<VB|work> So it doesn't depend on the platform, but mostly on the sound driver.
<VB|work> (or how the sound driver is used, in case of MCD SMPS)
<VB|work> All the tooling is unfortunately not very obvious
<VB|work> but I never found the time and passion to write a proper guide to "when to use which tool"