jonicito's question: 3. And how do I use Mid2agb with midis?
My answer: Put the midi file, mid2agb and sappy (you will need it) into the same directory. Then drag the midi and drop it on the mid2gba/agb (i don't remember) executable. And now copy the ROM and open the copy in Sappy. Now, choose the song you want to replace with the new one and click on the Assemble song option. Choose your *.s file which was created and write the free offset (like 800000) and voiceset offset (you will find one near the song's name while playing) which probably works with the song and then click on the Assemble that ugly thing! button. Wait a while, then click OK when a prompt appears and try the song out. Before you click on the play button, look at the song's name. If Sappy crashes, don't worry and open the Sappy.xml (or something like that - xml file) and look for the name of your song (Pallet town for example - imagine you replaced this one and name lasts). Then, write down its hex number (e.g. 12C) and now open your ROM with AdvanceMap. Open the header view tab in the town which has to have the song. Now, write the hex number for the song (you need AM 1.82) and save your ROM. Now, open it with your emulator and try if the song works. If not, try with another voiceset (the assembly) and the same free offset.