How to insert music in Fire Emblem with good results?

I’ve been trying my hand at music hacking, and oh boy, this is a rabbit hole I am almost regretting getting into. If it weren’t for my fondness for music in video games, I probably would be okay with packing my bags and calling it a day. But I am not a quitter! (at least not without giving something my best effort first)

So here is what I have been able to figure out thus far. I managed to get Sappy working, I have Mid2Agb, and Anvil Studio. I also have GBA Music Ripper for ripping songs from other gba games. I couldn’t find any one comprehensive tutorial on music hacking, but there were a few videos on Youtube of people from the Pokemon hacking community teaching people the basics of inserting music in Pokemon games. Through that I learned how to use Mid2Agb to convert midi’s to a .s file. And I also learned how to insert that converted song into Fire Emblem 7 using Sappy. So my minor success was actually inserting a song (Yay!), unfortunately, the song sounds like an 8-bit atrocity in-game. The base melody is recognizable (which is how I know I succeeded in inserting the song), but it’s quality has been severely compromised. For reference of the original song, I want to insert a midi conversion of this:

From the various threads across the internet regarding GBA music hacking (mostly from the Pokemon hacking community and here), I believe at least one of my problems has to do with the instruments. I downloaded and patched my rom with Blazer’s instrument patch, but I don’t know how to use that at all. So it’s been useless for me so far. My problem is that I lack the knowledge of how to fix my problem. I just flat at don’t know what to do.

I don’t really know what my problem is specifically, nor do I know the normal procedures used to fix music up. I know that I should edit my songs on Anvil Studio, but I don’t know anything about music or music editing, so I don’t really know what I am suppose to do with that program. So if somebody well knowledge in music hacking could walk me through the steps of what I need to do to get a good quality insertion, I would greatly greatly appreciate it.

I would like to make clear that:
I am capable with hex editing basics
I have no knowledge of assembly, and all my attempts to learn it have always been futile.
I have no experience or knowledge with music editing software (like Anvil Studio).

For any kind-soul willing to help me, just understand that I am a noobie at this. So I pretty much need my hand held through this.

Don’t use Blazer’s patch, use the Native Instrument Map instead. When you go to insert a song in Sappy, there should be a field to fill out the address of where the voices are. Give it the offset of where ever you put the map and you should get some better quality.

1 Like

Thanks for the prompt reply! However, when I clicked the download link, Dropbox said “File not Found”.

Here’s a mirror

1 Like

Thanks! I just pasted that data at 00DFF900 in my FE7 rom. In the thread Argo mentioned that I can paste this data “anywhere that’s word aligned”, I don’t really know what that exactly means. But I assume the free space I used is a valid place to have pasted this data. Okay, I’m going to give things a try again now.

Okay, so I have inserted the Native Instrument Map into my rom, and that has improved things noticeably from before. That said, the song is still deeply flawed and isn’t at a satisfactory level yet. I have uploaded a video of what my insertion sounds like here:

Please compare this to the original:

So what should I do to get my song sounding more like the original. (I suppose this will require using Anvil Studio to modify things?)

The annoying boop instrument is the default one that gets used if there’s no sample/voice for the specified instrument.
If you open the midi in a song editing tool you should be able to change the instrument to one that FE7 supports (consult the native instrument map to figure out which instruments are which).

Also, word aligned means the offset you’re inserting at must be divisible by 4. Anything ending with 0, 4, 8, or C.

Okay, so I have been editing some things in Anvil studio (getting rid of unnecessary tracks, changing instruments, etc). I made my top most track the trumpet (which is supported by the Native Instrument map). The good thing, is that the trumpet part works just as it should now! The problem, is that in track 2 I use Steel Drums, which are also supported by the Native Music Map. Yet despite that, I think that they are the source of all my booping sounds now. So this part confused me. If Steel Drums are compatible, why are they the source of my problem? What instrument should I change them to?

Inserting Custom Sound Samples steal them from elsewhere

i just had a listen and all you need to do is adjust the instruments man

Change the strings to instrument 41, there’s an annoying piano track you left which is meant to be the percussion so change that to 127 or 124. the melody is a guitar which FE7 doesn’t have a good one by default so either steal it from another game or change it to something similar like pizz strings or piano

1 Like

Thanks so much for your response Agro! And sorry for mistyping your name earlier. Your tutorials and posts on other people’s topics about music hacking has been really really valuable. At my level though, I have a few basic questions. When you say to change my instrument to 41, do you mean for me to convert that into Hex and find the corresponding instrument in your instrument map? In that case, 41 would be 29 in hex, and that should be the Viola, right? And going off of that logic, 127 and 124 would be Gunshot and Telephone Ring respectfully. Please let me know if I am misunderstanding this, because I don’t fully know what you are talking about when you are referring to instrument numbers.

Additionally, is there a way to change the instruments and to do all this in Sappy? Or is doing this in Anvil Studio and then converting it to a .s file the only/best way?

He’s giving you the instrument numbers in decimal.

In general they might be gunshot and telephone, but in GBAFE they’re drum kits.

Editing them in a different program is best. But if you’re just changing instruments, you can tweak the .s file directly (use a text editor) and reinsert, which saves you a little time.

Thanks Primefusion, you have really helped me a lot with your helpful answers. I’ll fiddle around with this music file a bit more tomorrow, and hopefully things work (in which case I will be sure to report back on it.). If not, I’ll return here with more questions.

Okay, I’ve done it more or less! It took quite some trial and error, but I think my final product is fairly decent. I’m a little disappointed that I had to completely omit the drum part (since my understanding is that drums are kind of complicated on the GBA). Well here it is. If you have any suggestions on how I can improve this further, I am all ears!

Thanks everybody for helping out so much! Especially Primefusion and Agro.

Drum kits work by assigning each pitch to a different sound in the kit. You can figure out which pitch is which sound by making a song play each possible pitch and recording which is which. Not every pitch is used for a sound.

Thanks for that heads up. That sounds like something I will experiment with later.