Skip to content

VGM Tool Collection

All you need to work with VGMs. Last update: 2022-12-30

Technical discussion about the VGM format, and all the software you need to handle VGM files.

Moderator: Staff

  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

VGM Tool Collection

Post by ValleyBell »

Current tool list:
dacopt, dro2vgm, imf2vgm, opl_23, opt_oki, optvgm, optvgmrf, raw2vgm, vgm_cmp, vgm_cnt, vgm_dbc, vgm_facc, vgm_mono, 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

Win32 Binaries / Source (GitHub repo)

Please refer to the Readme for further information on what the tools do and how they are used. Or as in the chatbox due to the readme being horribly out of date.


Old versions:

Win32 Binaries / Source (2021-11-30)
Win32 Binaries / Source (2012-12-07)
vgm_sro + vgm_cmp update (2013-01-16)
imf2vgm (2013-03-17)
vgm_sro K054539 fix (2013-07-25)
vgm_sro RF5C68 fix + MultiPCM (2015-02-09)
Win32 Binaries / Source (2015-07-25)
Win32 Binaries / Source (2016-08-04)



Old post:
I don't feel like writing lots of text at the moment, so I just drop a link: Download

I updated/fixed many of the tools (e.g. vgm_trim, vgm_cmp, etc.) and I also included an updated vgm_tag.

Please note that the read me file is a little outdated, although I quickly made a few changes before uploading the tools.
btw: I changed the way vgmlpfnd displays its results - it's more tidier and readable now.

If there are bugs, please report them.

Happy ripping!

Post by Sonic of 8! »

Thanks!

"Halleujah" chorus time! XD
オモいカルチャーをオモチャーと言う - 細野晴臣
  • User avatar
  • 2ch-H Offline
  • Posts: 280
  • Joined: 2012-01-03, 2:10:28

Post by 2ch-H »

Thank you for update

Is it malfunction?
Usage: vgm_trim [-state] Input.vgm StartSmpl LoopSmpl EndSmpl [Output.vgm]
An output file name becomes EndSmpl when I use a command-line
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Oooops ...
Yeah, that's a bug. I forgot to change a variable. Thanks for the report.

Post by Sonic of 8! »

I don't know if this occur only with K054539 or with some other chips. When I put some Salamander 2 VGMs, vgmlpfnd was not dectected any commands (the Counting Commands line is 0).
オモいカルチャーをオモチャーと言う - 細野晴臣
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

I just updated the tool package. It's only a small and quick update for the last few bugs, which are:
  • vgmlpfnd can now handle data blocks for the second chip (that was the problem with 2xK054539 vgms)
  • fixed the argument bug of vgm_trim
  • fixed vgm_cmp's dual-chip support for AY8910 and GameBoy chips (was a small oversight - the commands of the second chip were always going to the first one)
  • Tom Offline
  • Ragequit Member
    Ragequit Member
  • Posts: 496
  • Joined: 2011-11-30, 17:26:44
  • Location: Italy
  • Contact:

Post by Tom »

ValleyBell wrote:fixed vgm_cmp's dual-chip support for AY8910
Was this the cause of the missing note in my Battle Road vgm? If yes, does this mean I should redo everything from scratch?
Also known as nineko.
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Yes, that was the cause and it works now.

You don't need to redo everything from scratch, but you need to use the unoptimized vgms. EDIT: Or the ones optimized with -justtmr.
If you don't have them anymore, I uploaded the old archive in the submission folder.
  • Tom Offline
  • Ragequit Member
    Ragequit Member
  • Posts: 496
  • Joined: 2011-11-30, 17:26:44
  • Location: Italy
  • Contact:

Post by Tom »

Got it, thanks.
Also known as nineko.

Post by Sonic of 8! »

I have two questions:

- I found in vgm_sro, a NES APU word. Why the name is present on the tool?
- Why chips needed to put in vgm_dbc? Since I dropped some System GX VGM files on them and the program is crashed on every file.
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Sonic of 8! wrote:- I found in vgm_sro, a NES APU word. Why the name is present on the tool?
Because I planned to add support for it. But since it's possible to change the sample data mid-song, I haven't yet startet to work on NES support.
Sonic of 8! wrote:- Why chips needed to put in vgm_dbc? Since I dropped some System GX VGM files on them and the program is crashed on every file.
The tool is made for MegaDrive and 32x (PWM) VGMs. It's pretty good when used with optimized 32x VGMs, but since I haven't worked on optvgm32 for months it's pretty useless at the moment.
But it shouldn't crash, so I'll check this.


EDIT: Okay, I found the bug. The problem is how I handle the data blocks for the second chip. If it isn't handled correctly, the program crashes.
I went through all tools and made sure that it works correctly everywhere. (And it didn't work in many of them.)

Post by Sonic of 8! »

ValleyBell, could you post here the vgm_mono? I needed to run this tool on Darius II.
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

ValleyBell wrote:OutRunners (MultiPCM, rips done, needs vgm_mono)
"Needs vgm_mono" means, that it the tool is incomplete and not usable.
In case of vgm_mono it means that I still have to write the tool and I haven't even started coding it. Sorry.
  • Tom Offline
  • Ragequit Member
    Ragequit Member
  • Posts: 496
  • Joined: 2011-11-30, 17:26:44
  • Location: Italy
  • Contact:

Post by Tom »

I decided to help too: http://vgmrips.net/programs/tools/vgm_name.rar

You know, the various vgm tools by ValleyBell are very useful, but if you use them all in a row (e.g. vgm_sro, vgm_sptd, vgm_trim, vgm_smp1, vgm_cmp), you might end up with a filename such as Title_optimized_01_trimmed_no1smpl_optimized.vgm, which is good and all (because you retain a backup of the original file), but it's a very long filename. If you're working on a pack with a lot of songs (Knights Of The Round has 31, for example) you will end up wasting a lot of time removing all those _suffixes from your files.

So. Put vgm_name.exe in the same folder with your *.vg? files, run it, and it will remove all the _suffixes for you, renaming Title_whatever.vgm to Title.vgm
It won't overwrite existing files; if Title.vgm already exists when you run vgm_name, it will throw a nice run-time error 58 and it will quit.

It requires msvbvm50.dll installed on your computer.

And no, it won't rename itself or the other vgm_something tools. It operates on a *.vg? wildcard.
Also known as nineko.
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Most of the tools support an additional and optional output file name.

What I usually do, is vgm_cmp "File.vgm" "cmped\File.vgm".
An example .bat-file:

Code: Select all

set path=D:\VGMTools
mkdir sro
for %%f in (*.vgm) do vgm_sro "%%f" "sro\%%f"
cd sro
mkdir cmp
for %%f in (*.vgm) do vgm_cmp "%%f" "cmp\%%f"
This method work with all tools (even unreleased ones), but: dro2vgm, vgm_facc (I forgot it here), vgm_ndlz, vgm_sptd, vgm_spts, vgm2txt.
And it's mentioned in the Readme for vgm_cmp, vgm_trim and vgmmerge.


But still, that tool will be very useful for me, especially after using vgm_trim and vgm_ndlz. You need to give yourself a "Programmer" star now. ;)
Post Reply