Jump to content

Dumping & Converting Video Game Soundtracks With VGMTrans

Recommended Posts

- Intro
Older video game systems didn't have the capability for long recorded audio data.  Even if they could handle modern compression like MP3 (while still running the game on top), storage space was a limiting factor.  While your average MP3 might measure a few megabytes for one song, compare that to the entirety of Super Mario World for the SNES, which is 512KB (half a megabyte)!  Getting futher back, the original Legend of Zelda for the NES measures just 128KB, which is 1/8th of a megabyte.

For these games, they used sequenced music instead.  That is, they had musical notation (which notes from which instrument go where), and then they either generated the samples using FM synthesis (NES/Genesis and such), or had tiny little pre-recorded samples that they pitch-shifted and used repeatedly (SNES/PSX and such).

What does this have to do with Mabinogi?  Well, MML is also a sequenced format and uses the second method, it's musical notation using pre-recorded instrument samples.  Since older game systems used sequenced music, it can be converted into various other sequenced formats (like MIDI and then MML).  VGMTrans is a dedicated program for dumping and converting sequenced music from old video games.

VGMTrans: https://github.com/vgmtrans/vgmtrans/releases


- Why?
Why go through all the trouble of making MIDI conversions instead of using an existing MIDI?

1 - MIDIs don't exist for everything, for more obscure games or tracks they tend to be missing or you only have low-quality options.

2 - This method dumps the audio from the game itself, getting you as close to the original composition as you can reasonably get.  The tempo is what the game used, the notes will be what the game used, you can see how many tracks there are, etc.

2 - You don't have to deal with various "tricks" people do in MIDIs that make the resulting import messier and harder to handle (like strange timing, splitting something across too many tracks, reliance on effects instead of notation, and more annoyances).


- Dumping The Music
As far as actually getting the raw music data from the games, you have three options.

A - If you intend to dump music from specific container formats that VGMTrans natively browses (like the Nintendo DS), you're in luck because you can just drag and drop an .NDS ROM onto the open VGMTrans window.

B - For most formats you can just download archives of dumped soundtracks.  The VGMTrans page lists the formats it supports along with the common file extensions, and some googling can find collections.  While many are on Zophar's Domain in one form or another, there's also dedicated sites for specific consoles, such as http://snesmusic.org.

C - For most systems you'll have to dump/extract the audio files from ROMs/ISOs yourself using various tools before VGMTrans will parse them.  This may involve using an emulator to play the game and using a function to dump audio data when it's playing (SNES), browsing the disc image to find the music files (PSX/PS2), or specific tools that can browse ROMs/ISOs.  The exact procedure differs from system to system (and even different tools for different types of audio on the same system) so I'm not going to attempt to walk you through this.  A good place to start would be the tools section on Zophar's Domain (choose the system on the left and browse the tools).

(You will not get any help on downloading ROMs/ISOs from me.)


- Converting The Music
Once you have VGMTrans open, you can simply open your file(s) in it.  You could also drag and drop the files in if you happen to have a large collection you want to browse at once.  VGMTrans will parse the files (shown in the upper-left) and any recognized tracks it can deal with will be displayed in a scrolling list at the bottom.

(You may need to resize things to properly browse a bunch of tracks at once.)

Depending on the type of files you're dealing with, you may see only file names, internal names (as in the screenshot), or even titled tracks.  Clicking one and then pressing the space bar (or clicking the play button in the top toolbar) will preview the track for you.

Note that VGMTrans is still a work in progress and may crash when attempting to play some tracks, especially dummied-out or test tracks in some games, since they can be missing vital data or might be in different unsupported formats from earlier in the game's development.

Once you've found a track you want, right-click and and choose "Save as MIDI and DLS."  Choose the place to save the file, and there's your dumped and converted MIDI ready to be imported into 3MLE!


Edited by Rydian
Typo, slight formatting.
Link to comment
  • 4 weeks later...

This is very helpful. I have used this on occasion (well before this was written, but that's beside the point), though I never really got around to making a guide for this. I would also like to point out that there's also other apps like VGMTrans that you can use to rip soundtracks but for other systems that VGMTrans doesn't cover. However, whether they are able to be used readily or easily may vary. (For instance, if you're trying to RIP GBC music, good luck. You're going to need it.)

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...