In order to edit video game music, you need to get it into a format you can edit. Not all video game music is easily editable, and it tends to vary by system.
Almost all video game music falls into one of two categories: sequenced or streamed. This refers to the two primary ways music can be stored within the game data and played back.
Streamed music is stored as an ordinary music file in the game data, such as an MP3 or some similar format. This is pretty easy to understand, but it also generally means the song is not editable, unfortunately. It may still be possible to do a mashup or melody injection, or get creative with sampling, but it does limit what you can do. An experienced musician may be able to reconstruct the entire song in order to edit it, or transcribe it in order to arrange it in a different soundfont (remember, you’ve got to transcribe it yourself), but this is much more difficult and requires a great deal more skill. Still, if you’re not there yet, it’s something to shoot for.
The other type, sequenced music, is not stored as a regular audio file like MP3, but rather as a sequence of notes which the game plays in real time. Many old games did this back when data storage was very limited, making the use of streamed audio prohibitive.
If a song is sequenced, then it is in theory editable. Different game consoles have different sound hardware, though, and store and play sequenced music in very different ways. There are tools which can extract sequences, soundfonts, samples, and synthesis settings, but they don’t exist for every system, and the ones that do exist don’t always offer 100% compatibility with all games on the system, or 100% accuracy.
Note that wherever possible you should use a soundfont extracted from the game itself, not a fan-made soundfont you found online. These vary wildly in quality.
Rips tend to be easier on some platforms than others, though this varies by game and by the ripper’s individual skillset. In rough order from easiest to hardest, it goes like this:
DS ➔ N64 ➔ GBA ➔ SNES ➔ Genesis ➔ NES ➔ GB/GBC
If you’re familiar with tracker software, then SNES and NES will be a bit easier for you than for others, as there are more tools for exporting SNES and NES music to trackers than there are for exporting them to MIDI.
Here’s a breakdown of how to rip some of the most common game consoles:
Nintendo DS (NDS)
- Obtain a ROM of the game you want to rip. (I do not condone piracy.)
- Use VGMTrans.
- Compatible with nearly all DS games, but results aren’t always accurate.
- Some DS games used streamed audio, which isn’t rippable.
Nintendo 64 (N64)
- If the game is compatible with N64 Soundbank Tool, then use that. This tool isn’t perfect so double-check the accuracy, especially of the percussion.
Game Boy Advance (GBA)
- Obtain a ROM of the game you want to rip. (I do not condone piracy.)
- Use GBA Mus Riper, which is compatible with most but not all GBA games.
- Using GBA Mus Riper can be difficult for people who aren’t accustomed to running things from the command line, so you can use this batch file if you’re struggling.
- VGMTrans apparently supports GBA, but I’ve never seen it work where GBA Mus Riper didn’t.
- Sound is not perfectly accurate to the original, but actually sounds better in most cases.
- Some effects such as pitch bends are not preserved, and may have to be restored manually.
- Edit the MIDI directly in a MIDI editor such as Sekaiju, or import the MIDI into your DAW.
Super Nintendo Entertainment System (SNES)
- Highly difficult system to rip. Rips of SNES games are almost always somewhat inaccurate. As such, SNES rips tend to be given a bit more leeway for accuracy than other systems.
- Obtain an SPC of the song you want to rip.
- Try VGMTrans. It may not work, or the output may be too screwed up to fix, but it’s worth a try. You may have to fix balancing and ADSR. VGMTrans often screws up drums, so try rendering stems for the drum tracks.
- As a last resort, you can always use SPC700 Player to render individual channels (stems), cut out the parts you intend to change, and use C700 VST to render the new material. Copy the settings from SPC700 Player for maximum accuracy. Watch your balancing and panning.
- If you want higher accuracy and aren’t afraid to use a tracker, you can make the rip from scratch in OpenMPT, and convert to SPC using SNESMOD. Then use SPC700 Player to render as WAV.
Sega Genesis/Mega Drive
- Obtain a VGM or VGZ file of the game you want to rip.
- If it’s a VGZ, change the extension to .zip and extract that ZIP, then add the extension .vgm to the extracted file.
- Use towave to render stems of each channel.
- Use vgm2mid to extract the MIDI. You may or may not use it, but it’s nice to have.
- Use vgm2pre to extract the FM synthesis patch settings from the VGM file.
- For any channel or segment of a channel you don’t plan to edit, use the output of towave.
- Add as many instances of Genny VST to your project as necessary, and import the appropriate FM synthesis patch settings output by vgm2pre.
- Use Genny to play the new melodies (and other parts).
Nintendo Entertainment System (NES)
- Obtain an NSF or NSFE file of the game you want to rip.
- Use NSFImport and then edit the result in 0CC-Famitracker.
- It is possible to create 100% accurate rips in most cases.
- NSFImport doesn’t support some special audio chips like Sunsoft 5B (used in Gimmick!), but such games are very rare.
- This route requires the user to learn 0CC-Famitracker, which is challenging for new users.
- NES VST can be used to make NES-style arrangements in a DAW. The sound is not 100% accurate, but it is close enough. Care must be taken to adhere to hardware limitations, as NES VST does not enforce them.
Game Boy/Game Boy Color
- Obtain a GBS file of the game you want to rip.
- Use GBSImport and do the rip in 0CC-Famitracker.
- 0CC-Famitracker doesn’t support stereo and some other GB-exclusive effects, so you will have to have 0CC-Famitracker render the channels individually and manually restore stereo effects in some other program (probably your DAW).
PlayStation 1, PlayStation 2, Capcom CPS1, CPS2
- VGMTrans sometimes works.
- Some old games just use MIDI, and you can edit those directly.
- Cave Story music can be edited using ORG Maker. Take care not to use the ORG Maker 2 drums.
- Games by Daisuke Amaya after Cave Story are editable in PxTone.
- mlconverter2 is a program for editing the music in Mario & Luigi: Superstar Saga, which is not compatible with GBA Mus Riper. Ripping this game is a huge pain in the ass, as the balancing will be all screwed up even if you simply export the midi, edit it, and reimport it. Also, make sure you inject the new song as the title screen so you can easily access it to record from the emulator.
- Use ebmused for EarthBound.
- Microsoft DirectMusic Producer can be used to edit the music files in the original La-Mulana (The freeware MSX-style version, released in 2005). The La-Mulana remake on WiiWare can be edited by extracting the data files using ShowMiiWads, editing the MIDI file directly using Sekaiju, recompiling the WAD and recording from the emulator (or hardware if you’re really dedicated). Stick your new song in for the surface theme (m02.mid) and turn off sound effects in-game for a clean recording.
- While Super Mario World works with VGMTrans, if you want maximum accuracy, you can port the tracks into the game itself using this guide.