Emulated Music

August 2nd, 2006

This entire guide has quite possibly been upstaged by unsavoury characters at OCRemix with Chipamp, which is an all-in-one package for Winamp emulation plugins. Harumph.

Winamp Screenshot (w/ emulated playlist)

The following is an extensive guide to emulated video game music, which is music extracted from its original source (like a game cartridge) and played using special players. Each system has its own format, since they all handle music differently, and this is a guide to major types. I don’t condone downloading music for games you don’t own, and there isn’t much point to doing that anyway, so don’t do it.

The best formats are almost always playable (on Windows) using a Winamp plugin. If these plugins don’t come with an installer, than just put the files included in your Winamp/plugins directory. Standalone players, which usually only play one or several formats, never work very well for Windows. Foobar2000, which is a less pretty but more powerful music player than Winamp, supports many video game music formats, but the ones available for Winamp are usually better. Mac users have Audio Overload which seems to play every major video game format, so if you use a Mac, you know what player to use.

One of the biggest annoyances in emulated music is the tendency to combine the entire soundtrack of a game into one file. These types of files never seem to work well with your playlist, and block you from removing, altering, or rearranging tracks. They’re are workarounds to most of these types of files, which I’ll explain. Most plugins also ignore Winamp’s superior naming capabilities, and force you to use theirs in its place, which is adjustable from each plugin’s respective configuration window.

NES

There are two NES music formats, NSFe and NSF. They’re basically the same, except NSF doesn’t have an metadata like song titles or artist information, and NSFe is less widely supported. Since NSF files are extracted sound files directly from the game, the often include annoying sound effect tracks, while many NSFe files avoid this altogether.

They both combine the entire soundtrack of a game into one file, but NotSo FatSo has a feature called “shadow” tracks (Right-click on an NSFe file, then press the Shadow->Winamp button) so you can create a playlist file that allows you to have control over which tracks are played. NotSo FatSo plays both NSF and NSFe, and does an amazing job of it. Your TV’s speakers could never really get across how tinny NES music really is, but NES emulation has advanced enough to make you curse getting such nice speakers when you play NSFe files. But fear not, NotSo FatSo’s main advantage is its filtering (Highpass/Lowpass/Prepass) capabilities will filter out the piercing nature of NSFe files without hurting the nostalgia.

Slick offers the best collection of NSFe files I’ve found, but seems to be missing some games. If you can’t find a game available as an NSFe, than try Zophar’s NSF collection. Keep in mind they’re NSF files (not NSFe) and some include way more sound effects than I’d like, but if it’s not there, than the game you’re thinking of doesn’t exist.

SNES

  • Format of Choice: SPC
  • Player of Choice: SNESamp (It’s in the “downloads” section)
  • Resource of Choice: SNESmusic.org

SPC files are one-track only (thank god) so each track for a game is an individual file. Some evil person decided this wasn’t such a great idea and made RSN, which is basically a renamed RAR file. So if you find an RSN file, change its file type to .rar and extract it with WinRAR. SNESmusic.org is probably the most effective SPC resource, and has very complete soundtracks. Nonetheless, there’s always Zophar’s inferior collection. SNESamp has some issues but plays SPC files very well. It also has plenty of neat features, including improving the quality of SNES music (you can always set it to “SNES” mode which makes the quality the same as the SNES if that isn’t your thing).

Sega Genesis

VGM (usually available as compressed files, which are named VGZ) is a very recent format, and is extremely media-player friendly. It’s even one-track per file! It replaced GYM as the standard for Genesis games, as GYM was a poor format with timing issues (and often included annoying sound effects at the beginning of tracks), and there weren’t any quality GYM players. Yet another format, GSR, intended to fix these problems, but VGM made it quickly obsolete.

VGM sounds perfectly accurate, has a very nice plugin for Winamp (and Foobar2000 actually) AND is the only plugin I’ve found that plays nice with Winamp’s naming system. Project 2612 is currently an extremely active group constantly churning out new soundtracks. The Genesis didn’t have great sound, but the VGM format is great nonetheless.

Gameboy (Original/Pocket/Color, but not Gameboy Advance)

GBS is a good format but it lacks metadata and the proper attention. Meridian Advance, which isn’t even a Winamp plugin, is the only player I’ve been able to use for Windows since its counterparts (including a Winamp plugin version of Meridian Advance, and the more “advanced” Meridian Prime) can’t actually seem to play anything. I’ve had some luck with the Winamp plugin NEZPlug but it can break other plugins if you don’t configure it properly and wouldn’t always play tracks properly for me. You can also try GBS files converted to GSF (more on this format is farther down). They’re available at GSF Central (at the bottom of the page), although the selection is pretty small.

You can convert GBS to GSF yourself if you’re desperate enough, but as this article is Windows-oriented I’m not going to get into it too deeply. The Linux program gbsplay can convert a GBS file to a GB (Gameboy ROM) file which can then be converted to a GBA (Gamebody Advance ROM) file using Goomba which can then be ripped to GSF files and tagged. If you’re using Windows, you might be able to do it with Cygwin, but that’s out of the scope of this article. I’ll be impressed by anybody who can pull it off though.

Playstation1/2

PSF, while complex, is the basis of more advanced formats, including the format of Playstation’s successor, PSF2. miniPSF files are even cooler, since they’re shrunken to almost nothing as the similarities between all the tracks in a game are combined into a single special library file. The catch is that the library file has to be in the same directory as the miniPSF files, but it’s a small price to pay. I haven’t found a paticularly great resource for PSF files, but since I only wanted a few soundtracks, Zophar always did the trick.

Nintendo 64

USF is a pretty new format that few will touch due to how difficult it is to make or play them. 64th Note still does a pretty good job, but requires a hefty amount of processor power to play. Honestly, my recommendation is that you download the files and turn them into MP3s using 64th Note so you can listen to them easier (more info on converting files to mp3 at the end of this post).

Since making USF files is fairly difficult, many games aren’t available as of this writing. Some dynamic tracks that change while you listen (think every Rare game ever made, like walking around the main world in Banjo-Kazooie as the instrument playing the theme changes) don’t play properly, since they just play all versions of the song on top of each other. Zophar (for once) has a comparable selection of USFs, so be sure to check them out also.

Since the USF format is based on PSF, they’re usually available as miniUSF files which are very small, but require a special library file to be in the same directory to play.

Gameboy Advance

GSF is similar to, but sounds better than GBS (Gameboy), since it has more advanced hardware. The format has metadata, unlike GBS, but since it’s a recent format currently there is only the one player. It does the job, no more, no less.

Like all formats based on PSF, GSF files are usually avaiable as miniGSF files which are much smaller but require a special library file to be in the same directory to play.

What about Gamecube, or Xbox?

It’s hard to say if modern video game music will even need to be emulated. Gone are the days where music-playing was part of the hardware in the console, instead, formats can vary based on the game. Developers can handle music on the level they wish, from streaming it straight off the CD to coming up with a customized format to save space.

Still, there is effort to continue emulating music into the next generation. There’s a Gamecube player here, but unlike other plugins which emulate the format associated with the system, instead it works for various formats found in Gamecube games. It’s hard to say how much of an advantage this is over a fan-made mp3 soundtrack, but it’s an interesting project.

For now there’s mp3 soundtracks, the best place I (accidentally) found is Galbadia Hotel, which has a pretty damn good selection of more recent stuff and old stuff as well. In fact, sometimes limitations in the format (like USF’s understandable inability to handle “dynamic” tracks) are pleasently absent, so downloading them from here is sometimes better than using the original format. Sometimes. The catch is, all the files must be individually downloaded as they are all on seperate pages. I have a hack-job setup with a website archiving program, although I’m looking for something better.

Converting to MP3

Personally, I think all these formats, while high in niftiness, aren’t very practical. For some formats, especially USF, the best thing to do is convert them to MP3 files. Winamp’s Diskwriter will do exactly this, but doesn’t have much customization when it comes to formats (paticularly its lack of VBR capabilities with MP3). Since I don’t have a solid method of doing this, you’ll have to experiment. Get ahold of out_lame, and just in case it doesn’t work, you can try Chun-Yu’s MP3 Writer or this File Writer. As far as options go, a VBR MP3 with a maximum of 128 (maybe 160 if you’re feeling bold) and a minimum of 32 will do the trick. At least for me anyway. If a plugin wants a Lame DLL, it isn’t a programmer’s joke, but an MP3 encoder all three plugins use. Direct it to the “lame_enc.dll” file that’s in Winamp’s “plugins” directory, although it’ll only be there if you downloaded the “full” version of Winamp. You did download the full version didn’t you?

Other helpful stuff

  • If you’re using Winamp and want to preview anything, or just play some music, use VLC. It can play MP3 files that are currently being written to, and your regular collection if you drag it to VLC.
  • Want to listen to video game music without all this bull? Try video game music remix sites OCRemix and VGMix. Or you could try Video Game Music Archive which features MIDI remixes instead.
  • For emulated music freaks like me, 8bitpeoples is a facinating project, check it out.
  • There are more formats I don’t care to find out about, and if you want more Zophar is always the place to go. Check its Music Archive and Music Players sections. You can also try Wikipedia’s VG Music pages, which could help get you started on formats Zophar ignores.

So that’s it. This guide is a work-in-progess, so any advice is welcome. Feel free to leave a comment if you think something about this article could be improved.

11 Responses to “Emulated Music”

  1. Jesse Says:

    Nice guide, even if Chipamp has superseded most of it. I appreciate the link to Galbadia Hotel, I hadn’t seen that before and it has a lot of music!

  2. Duckmyster Says:

    Lads great job on the info there, i’ve got plenty of vgm files an love the music i was wondering how i can convert it into more playable formats like mp3 and wmv or even wav

  3. devmas Says:

    There is a format I have found for Gamecube games. It is an incomplete format, but it is being worked on. Look here:
    http://hcs64.com/in_cube.html
    and you will see. The main drawback is that the files are almost the size as actual mp3s, but overtime, I am pretty sure that they will find a way to stuff all of the music data into one file, like the PSF, USF and GSF formats.

    Oh, and as a side note, if you go to the GSF Central page, you will notice that people are converting GBS files into GSF files, which means that it won’t have tht NSF drawback anymore, where all of the songs are in one file.

  4. devmas Says:

    Oh, and also, the plugin works for more than Gamecube games, because apparently, the Gamecube uses different music formats depending on the publisher/developer of the game, and those people may have used those music formats in some Dereamcast, PS2, Xboz, PC, and Nintendo DS games. You’ll see what I mean if you look at the GC compatibility list.

  5. Max Says:

    I’ve updated the GBS and future formats section.

    Thanks devmas!

  6. Scott Says:

    From a technical standpoint, the GBS format is no more more “sad” than NSF, or SID for that matter. Separate metadata (album info, track into, track length, looping, fade-out, etc.) in the form of playlists or tagging is the obvious add-on to these kinds of simple ROM-ripped music formats. That’s basically what NSFe is, additional metadata for NSF files; and it only exists because someone *cared* enough to do it. NEZPlug, which works very well for me in contrast to the difficulties you vaguely report, has such sophisticated playlist capability. It’s just a matter of someone *caring* enough to tag/time the tracks from GBS files. But, that’s what’s really “sad”: the general lack of interest.

    In fact, playlisting is very similar to what’s been done with GBS2GSF… a bunch of .minigsf files and the GSF “library” file is little different than a bunch of individual track playlists with the GBS file as the “library”. With the GSF approach you have to convert a GBS to a GB ROM, and then convert that to a GBA ROM, and then use various utilities to convert that into GSF… sheesh, so much work for what could be done so much more simply with playlists.

  7. Max Says:

    Scott:

    You make a good point, but maybe I don’t want to needlessly fill out playlists when such metadata could already be provided if the format supported it. I’ve never downloaded a soundtrack that supplied a playlist yet.

    You’re mostly right about converting GBS to GSF. Playlists would be much simpler, but since NEZPlug doesn’t work for me, there’s no advantage. Pre-converted files available online are the only ones that provide the metadata I want when it comes to Gameboy games.

    Keep in mind GSF library files are not metadata, but rather regular data that is shared between tracks, like instruments for example. Each track has still has it’s own metadata.

    I just updated that part about NEZPlug, it was a little vague. Thanks.

  8. Scott Says:

    I don’t think I suggested the GSF library was metadata; I compared it to a GBS file that contains music code and data. It’s the .minigsf files that really contain the metadata, and those are in essence separate, single-song playlist files.

    Getting back to my point, someone had to go to the trouble to MAKE that minigsf metadata (time the tracks, choose fade-out parameters, etc.) Whether it’s you that selects those parameters to your own personal taste, or the work of someone else, makes little difference: *someone* has to do that work in order for you to enjoy it.

    Sorry if I sound defensive, but as the author of the GBS format, it seemed to me a bit unfair for you to characterize the GBS format as being so poor compared to NSF files, which it is very much based on. The NSF format had the good fortune to have the author of NSFe provide for metadata with that player program. Unfortunately, GameBoy music was/is not as popular with player program authors, or so it seems.

    When I was working out the technical issues for the GBS format, I briefly considered expanding the header to include more detailed album/track info. But as it was intended to follow the example of PSID and NSF, I gave up on the idea. In retrospect, this wasn’t such a bad thing, I think. I’ve gotten more complaints about inaccuracies in what little header info there is in GBS files than about any technical issues. It’s easy to get that metadata stuff wrong, not to mention that it can be subjective; but the ROM data is not subjective, it’s cast in silicon. This has just reinforced in my mind that metadata SHOULD be separate from the rip format.

  9. Max Says:

    Scott:

    I never thought of the GBS format that way - as an archival format. I must say it’s intriguing, since I only considered these music formats useful for playback in media players. In the end what’s useful to me though is not raw data, but raw data encapsulated in media-player friendly formats.

    I misunderstood your point about GBS files being treated more like miniPSF library files. Now that I think about it, I fully agree with it. It’s a very interesting way to translate raw data into something media-player friendly. Probably the best way, since it could avoid altering the original data.

    I’ve updated the GBS section to be less critical of the format. The purpose of this article is still to find a way for formats to play back in Winamp like standard media files though. Sorry for being too harsh.

  10. Main Says:

    “I don’t condone downloading music for games you don’t own, and there isn’t much point to doing that anyway, so don’t do it.”

    What do you mean, “there isn’t much point?” Some people enjoy emulated game music for its musical value and not from in-game nostalgia.

  11. Anonymous Says:

    nice

Leave a Reply