Logging VGMs
Hot dog! You're ready to take the first step of your pack-making journey... almost! Depending on the game you're trying to log, this will be very easy or very tricky.
Accessing All the Tracks You Must Log
This is easy, in theory, when the game has a sound test. Great sound tests have these features:
- Contain all the songs in the game, including unused ones
- Let you move back and forth
- Let you skip over many songs (usually 10)
- Loop back to the lowest/highest numbers at the end
- Let you stop playback
Most sound tests aren't "great", but merely good. Even if they contain some unused songs, others may be hidden inside the code and need hacking to uncover. (Sometimes these aren't discovered for decades!) Occasionally, they won't include some used songs and you'll need to rip from in the game or hack it to make the song play elsewhere.
Some sound tests don't let you stop playback. That's not great, since logging from silence is generally preferred to avoid the possible cutting-off of important VGM commands. The easiest workaround is to play a jingle or other short song that ends with silence. If that won't work (some tests always play songs when you go to them), all is not lost. By using vgm_trim or one of the vgm splitters (see "One Big VGM" below), you might be able to get the same results.
If the game doesn't have a sound test at all, or needs a non-emulator ripping method, ripping is more complex but not always more difficult. If you find info applying to your game to be daunting, it's better to start with a simpler rip until you get accustomed to the logging basics.
- NES/APU and FDS games have a dedicated Nintendo Entertainment System ripping tutorial, since a game might need a specific emulator. The caveat is, Hoot shouldn't shouldn't be used as it's inaccurate.
- Game Boy games use NEZPlay, much like some NES games. Using NEZPlay is quite easy, but some GB VGMs may need additional processing to fix issues.
- Neo-Geo games have a sound-test simulator called UNIBIOS.
- Sometimes people make patches for games to let others access hidden sound tests or hidden songs without hacking. (Or make good sound tests into great sound tests, like for the Genesis Animaniacs.) You might find some on ROM Hacking.
- Mega Drive/Genesis games that use the GEMS engine may work with GemsScan and gems2rom, creating a playable jukebox. The only real issue is you sometimes might have to manually set a track's tempo. In cases like Garfield: Caught in the Act, trying to use gems2rom sucks enough that it was easier to launch the hidden sound test.
- If there are no other options, you'll have to do an in-game rip (not preferred), do some light hacking or ask for help.
- MD/G games that use the SMPS engine might work by sending numbers to the sound trigger 0x1C09. BlastEm's page has more details.
- You can find out what sound engine the game uses by consulting the Genesis Sound Driver List.
- The game itself may need to be hex edited to make songs play on the title screen or other more convenient spots instead. Bubsy in Claws Encounters of the Furred Kind is one example.
- Check the Category:Sound Hacking page to see if there's one for your needs.
- MD/G games that use the SMPS engine might work by sending numbers to the sound trigger 0x1C09. BlastEm's page has more details.
- With PC-based games (whether for Western or Japanese PCs) you can often swap songs pretty easily. The easiest case would be "one file for each song" - then you can just rename files to e.g play another song on the options or title screen. If it uses archives, it may be easy to swap files by hex-editing.
- Don't be afraid to ask for aid: the community doesn't mind helping contributors, as without contributions, there's no music museum. Your questions might also uncover problems that haven't been thought of or noticed before, which helps processes and documentation improve. Everybody wins!
A website called The Cutting Room Floor documents unused or hard-to-find things in video games, including unused songs/sound tests and how to access them. You should be able to find level select cheats here if they exist. If there's nothing for your game, you can try checking the Content to expand page for info that hasn't been added in to the wiki proper yet.
Even if you've already looked at the page for your game, you should check again: the Garfield hidden sound test was only discovered in 2019, and having saved a page copy before, I wouldn't have thought to look again on my own.
Very good. At this point, if I've done my job, you should now know how many songs you have to rip and how to access them. Now let's start your career by making a small test VGM, so you know how to do it. (Experienced loggers can skip this test and find more useful info later.)
Learning the Ways of the Log
Each emulator has a different way of logging; you might need to press a key (like m
in BlastEm), or choose a menu option (like in NP2). Sometimes both ways are available. Sometimes the way might be slightly more complex, in cases like NES and Game Boy games.
Since this tutorial is emulator- and system-agnostic, and there are many of each, we won't list all the methods here. Instead, you can find full info on your emulator's wiki page. If none exists, try checking Category:Tutorials; poking around in the emulator menus/reading its readme; or bringing this gap to our attention in IRC.
Now it's time to- Wait! You didn't try making the VGM yet, right? Some emulators ask you where to put the VGM, and others, like NEZPlay, just plop them right in the program's folder - but yet others, like BlastEm, have strange default options that automatically put them in strange spots, like your computer-user folder. I haven't tried all the logging emulators, but if your test vgm "vanishes", you'll have to change these settings to something more convenient. Fortunately, the same places I mentioned above should tell you how.
Okay, now it's time to fight Dr. Morbus.
- Open the game you're ripping in the emulator.
- When any sounds or music start playing, start the VGM log.
- Since we don't need a very long one, just stop logging after a few seconds.
- Open your newly-created VGM with your VGM player of choice (probably VGMPlay/in_vgm).
If all's gone well, you'll hear the little bit of sound you just recorded play back. Jawesome!
If you can't find the VGM you just made, and you already checked the settings like I mentioned, the path (all folders + filename) is probably too long. BlastEm fails both to record when this happens, and to tell you when it does. (But it will tell you if you make a screenshot with the same paths involved.) This is easy to fix by moving things out into folders with shorter paths.
If the VGM sounds Completely Wrong!, this may be a problem, to say the least. Game Boy games in particular may need header editing to fix conversion issues. In these cases, come on the forum or IRC to ask for help/info. It may even be that it's not possible to rip this game in VGM form yet.
But now that you've gotten used to creating a log, it's time to proceed to the actual logging part.
The Basic Flow of LOG
Method 1: Many VGMs
Make your way to where the first song you want to record will play, but don't play it just yet. First start logging, then after about a second of silence, start the song playing.
Whether recording from a sound test or in gameplay, you want to make sure no sound effects play during the log: they'll wind up in the VGM too. For in-game logs, you want to turn off SFX completely if the options let you. (This is one of the reasons in-game rips are discouraged.)
When a song that ends ends, stop the logging. You might find your log ends before you actually stopped the recording; this is okay. It happens because the game stopped sending commands to the sound chips after the music ended.
When should you stop logging a song that loops? You want to have enough VGM to work with in the trimming phase. So this means a bit more than at least 2-3 loops should pass first. It's okay to record even more than that if you want to be sure. Stop recording before you stop playback or go to play a jingle to restore silence.
Most emulators let you fast forward, or speed up and down emulation. (This is separate from frame-skipping, which you shouldn't use, I think?) If you know the songs you're ripping very well, this is useful for making logging go much faster. However, I don't necessarily recommend it; in the caveats later, I'll explain why.
Naming Said VGMs for Convenience and Profit
As you proceed, it's a good idea to name or rename the vgms with info that helps you identify the songs. You can rename the VGM log even as you're logging it, for maximum convenience. Windows OSes might complain that the file is in use, but just hit "Try again" after you've finished the log.
You may as well name each VGM with the Title you're going to use in the tagging stage. This will mean the song name (if it exists, from an OST for the game or right there in the sound test), or the level name (if it exists), or something like "Level 1" if no names exist. With a song name, it's preferred that you also add which levels/contexts the song is used in in parentheses. If you do it this way, you also have the title of the VGM ready for when we tag.
Another good thing to put in the filename is the number that the sound test gives you for that song. It could be decimal (e.g., 023) or probably-unprefixed hex (0A). Either way, it's also good info for the tag comments - and if you (or anyone) need to relog any songs, this'll help you find them more quickly.
If you're using sound triggers to record, you'll find that these numbers don't match the sound test, usually. Both are still good info to include.
With all three pieces I mentioned, then, I might end up with a filename like "12 8D Round 4-1, 4-D.vgm" for a song from World of Illusion.
- I put the sound test number first, and the internal sound trigger number second. You can reverse them, but this makes the most sense to me.
- Stages in this game are called Rounds; the beta version tells me the internal naming scheme of said rounds. So the name I put here says this song plays in the Round's first level and its Donald-Duck-only level. (You can get in with two players, but that's not the point....)
- Now, the Japanese manual suggests that the Rounds don't have names. The USA manual, though, gives them names and calls them stages. Should those be considered official, meaning I should rename the VGMs and put the Round names in the tag Comments? That's something I have to ask about. But in general, the region of first release should be favored... and in this case, that's the USA. Oops.
Of course, some sound tests have names and not numbers. And these names might not match up with the official song name, if one exists. My advice doesn't change, except of course that you'll put down sound test names instead of numbers. In the case of Mega Drive Mickey Mania, we simply end up with numberless single names like EOL Boss3 and Wharf. (Only some of these will thus need usage notes.)
NEZPlay includes numbers in the filenames it makes, much like internal sound trigger numbers. But the problem is, internal numbers for these files start with zero, while the generated names start with one. It's annoying, but you'll have to remember to subtract 1 from what it named the files with.
Renaming the files in these ways makes it easy to add all this info to the tags later, as well as confirm the accuracy of existing tags if you're doing a relogging. But why name the files so, instead of making separate notes? I have a way to put parts of the filename into the tags automatically. That's an advanced thing we'll learn about later, but I thought I should show this filename-dancing is definitely useful.
Method 2: One Big VGM
This way is the same as Method 1, except you'll record all the songs in a single continuous VGM, without stopping the log until after the final track. If the sound test completely sucks, like in Jim Power (Mega Drive), you won't really have a choice. Two of the VGM Tools, vgm_sptd and vgm_spts let you break up these big VGMs into smaller ones for easier looping. Their pages explain how they work, but I'll also cover this when we go on to trimming.
(Of course, in this case, you can't name the VGMs as you go along. Instead, write down the info of numbers and names in a text file for later.)
Maybe the sound test sucks, but you're a bit worried about making a big VGM in case something goes wrong. If so, you can combine these methods by not worrying about starting from silence, and using the splitters or even just vgm_trim to lop off the unneeded part from the previously-playing song.
If you're a total VGM beginner, you might want to stick with method 1 for now, unless you're comfortable already with command-line tools and audio editors.
Caveats of the Log
Very important! They are many and slightly sticky.
Beginning Silence
There's some songs where beginning silence is part of the song, rather than something to be trimmed off like the safety buffer. It'll be helpful for that step if you make notes as you go when you encounter such songs.
I recommend making a small log as thus:
- Have a song, any song, already playing when you start the log
- Start the song that has a silent start
- Stop the log shortly after the silence ends
- Name this log similarly to the full log, but with "silence" in the filename. You don't have to include all the information in the full log's name; just enough for you to see easily what the silence is from without having to open the VGMs first.
With this, you not only have a "note", but the true amount of silence involved to compare a starting trim against.
60hz Versus 50hz
There are certain games which, for full accuracy, should be ripped at 50hz (PAL/Europe settings). Those are, of course, European games - and the games being documented on the 50Hz Mega Drive Games page, a work-in-progress. (If you have solid information or fixes for this list, it'll be most appreciated!). All others run at 60hz.
Each game must be ripped at the correct clock rate (Hz), or you'll get songs playing too fast or too slow. Even if the logs sound correct, you might find that logs at the correct rate are easier to trim.
For those Mega Drive games, you can see the clock rate in the BlastEm title bar, as the Frames Per Second; make sure it's the right average for your game. BlastEm should detect the region automatically, but if you need to you can change the Default Region from the "System" menu in BlastEm's Settings - or force BlastEm to only emulate one region with a command line switch (see its wiki page).
Other emulators should function similarly.
Songs that loop in five minutes or longer
As I mentioned, you should be able to use fast-forward features of the emulator to skip to two loops without mangling the log. But I recommend it only if you've already spent large amounts of time becoming familiar with the game's music. Even then, I don't recommend it except for individual songs you really cannot stand.
Why not fast forward? Some songs are vastly longer than one would think. Take Green Grove Zone, Act 2 from Sonic 3D Blast. Two contributors logged and trimmed the song previously (the latter adding ~one minute to the length), and both were dead wrong. With correct trimming, the full song is in fact eight minutes long due to a playback bug; neither ripper noticed.
With cases like that, even if you're familiar with the song, I recommend listening carefully to it again as you record, and skewing towards longer logs against shorter ones. It takes time and care to discover subtle true loops that come >five minutes into a detailed song and make you go "Are you kidding me that's how long this is."
This, of course, may mean you have to listen alertly to a song you really rather can't stand for many, many minutes while trimming. The logging phase is where you should find out if you actually want to try to trim the (entire) pack yourself.
If you plan to rip the beta version of a game as well, this also helps you find differences between its and the final's songs, since both versions will be fresh in your head.

Songs that have drifting parts or are like Warning of Puyopuyo
The Machine from Sonic Spinball and the second Curse of Orangebeard level's music from Garfield Caught in the Act have sounds in them that move around as the song plays. As you play the level or hear it from the sound test, you'll notice that these sounds play at different points from before.
If you tried to make a log or trim that actually looped "properly" under these conditions, it would be horrifically long and have a file size to match. In these cases, then, you should ignore the drifting noise and apply the ~2-3+ loops rule as normal to the rest of the song.
Same for a song that continues to rise in pitch on each "repeat" without stopping and looping normally the way that Mega Drive Aladdin's Boss Tune does. If the VGM would literally go on for more than thirty minutes and not even loop? Yeah, just use your best judgement to cut it off after a reasonable length and don't worry about looping.
The Dreaded Checksum
If you've had to hack the game to change sound test entries, the changed checksum might make the game not load. If this happens, consult Defeating Checksums. It only addresses Mega Drive games right now, though.
A Couple More Mega Drive Issues
There is a slowdown bug affecting certain Genesis songs on certain Genesis hardware (for instance, the title screen and first level music for EarthWorm Jim). This is a bug that doesn't affect other Genesis models. At current, I don't know the preferred BlastEm Model setting for recording such songs as they were intended to be played.
If you have experience with your game on real hardware, you may note some sound differences. Note that BlastEm defaults to emulating a Model 1 VA3 Genesis, which may be different from your model. Emulation of other models may not be fine-tuned yet, and Model 2 emulation isn't currently available.
If in doubt, and your model is a 1 VA3, it's best to confirm BlastEm is really to blame before filing a bug report. The best way is to use VGM_PLAY on a Mega Everdrive to test your strange-sounding VGM; rather than the original program, you should use the 16-bit Audiophile Project's version of VGM_PLAY to ensure best possible accuracy. (Although there are some flaws there too, it's better than nothing.) Alternatively, just use the actual game!
Next Stop: Trimming (or Tagging)
Gotten all the tracks logged as best you can? At the right clock rate? Properly filenamed, or with notes thereof?
Before we proceed, I recommend compressing all of your logs into one Ultra-compressed 7z archive, then backing up this archive in more than one place. You'll be grateful later on to have copies of your original logs, and the 7z compression makes them take up a much less irritating amount of space. Multiple backups is an excellent habit you will definitely be happy to make in general, not just for VGM work.
At the moment, Trimming VGMs is not complete given that it took me about eight hours over three days to complete this logging-only guide. The good news is, a lot of the information already exists in dedicated guides. Repeating from R(er)ipping_for_the_Out-of-Element_Contributor, here they are:
- vgmlpfnd can sometimes make finding loops easier.
- Finding Trim Points in WAV Files
- Finding Trim Points with vgm2txt
- Manual looping tutorial
If you logged to a single vgm, vgm_sptd and vgm_spts are the tools to help you break them up. Then, once you've found proper trims, you'll use vgm_trim.
You could also tag and then trim. Filling Out the Tags and Text File is meant to be your one stop shop for the ways of the metadata.