Obtaining MIDI Music From Other Platforms
This tutorial will attempt to demonstrate how to get midi files from other games to put into Gameboy Advance rom hacks. I have found 3 different systems that you can do this with, I will add more as I come across more. Now, to the tutorial, shall we?
1. Nintendo Entertainment System (NES)
1. You will need a .nsf (NES Sound Format) of the game in question. You can Google it, or make it yourself with NES2NSF.
2. You will need to get NSF2MIDI.
3. Create your NSF or download it off the internet.
4. Open the NSF with nsf2midi, and go to the song you wish to export. The song will play. Let the song play for as long as you want your midi to be. At the point of time you wish to have it end, go File, then Log to SMF. Here, you can save your midi and continue on with insertion.
Do note, with this technique, it will generate anything between 1 and 5 channels, as the NES has limited sound capabilities. You may need to remove channels to make it fit correctly. It will also put all tracks on Patch #1, so you will want to open it in a midi editor and fix that.
2. Super Nintendo Entertainment System (SNES)
1. You will need to make a .spc file of the song you want. Zophar's list of ripped .spc files You can also use the snes emulator, zsnes to make it as well. It may not always be compatible though.
2. Now, get spc2midi and open your .spc file. Just like the NES midi converter, all tracks will be put in patch #1, and there will be extra tracks added. You can determine the length, though.
3. Convert, loop and insert.
3. Nintendo DS (NDS)
1. You will need ndssndext. Take your .nds file and drag it over the command-line program. Give it a few minutes, and in the location of the nds file, it will have a folder with the internal rom's name. This is where all your midis are.
2. Find your midi. Do note that some midis may have more than 10 channels, the maximum of a Gameboy advance game. You may have to fix that. Also, the patch channels that are in the game will be retained, so you may have to adjust the patch numbers.
3. Convert, loop and insert!
4. Other Links
I thank you for reading this. If you wish to redistribute this, please contact me via PM or VM. This was written on August 4, 2010. If there is any content that can be added or removed, please notify me and I will take an appropriate action.