Hello my friends, I'm Magnius and I'm going to teach you today how to insert ANY song you like, into the GBA Pokemon games. For this particular tutorial we will be using Pokemon Fire Red, but it can be done on almost any Pokemon GBA game. However, before we start you're going to need a few things...
- 2 Pokemon Fire Red Roms(Don't ask me where to get the roms).
- An emulator to play the rom on(I use VisualBoyAdvance myself).
- Sappy and mid2agb which you can both get here.
- A midi that you want to insert into the game.
- A backup of the Pokemon Fire Red rom incase anything goes wrong.
Got all that stuff downloaded? Good. Once everything is downloaded make sure to extract everything into the same folder, trust me, it'll make things much easier later on. Now let's move on to the tutorial.
Step 1 - Convert your midi to a ".s" file
In this first step we're going to use Mid2Agb to convert our midi file that we want to insert into the game, to an ".s" file. Before we move on, make sure your midi is in the same folder as Mid2Agb. Once you've made sure of that, open up the folder that Mid2Agb is in and click on your midi. After you've clicked on your midi drag it over to the Mid2Agb file and Mid2Agb will automatically convert the midi into a ".s" file. There is another way to convert the midi using the command prompt, but that just makes the whole process harder than it has to be.
Step 2 - Assemble the song using Sappy
Alright, now that you've got your ".s" file, we're going to put it to use in Sappy. So first, open up Sappy. After you've opened up Sappy, go to file and then click on "Open". Now find your first Pokemon Fire Red rom and open it. Now once you've opened your rom in Sappy you'll notice that in the upper left corner of the program a dropdown box will appear with a song name in it. Click that dropdown box and you'll see a list that you can scroll, of songs from the game. The song you click will be the song you'll be modifying in game. You can change any song, but for this tutorial find a song on the list called "Pokemon Theme", since it's one of the first songs you hear when you turn on the game. After you find that, click on "Assemble song" which is in the left part of the program. After that a box will pop up that says "Assemble .S file" at the top. Click the button next to the first box and then to open your ".S" file. The second box, is where you'll write your base offset, but don't worry about that too much now. For now just type the offset "0xEB0B20" in the base offset box. Third is the Voicegroup offset box which will already be filled in. Now click on "Assemble that ugly thing!" and wait for the program to finish assembling the song. Congrats, you've assembled the file. If the song plays already in the game by now, then congratulations, you're done, but if it doesn't, don't fret, move on to Step 3.
第二步——使用Sappy替换音乐
好啦,既然我们已经得到“.s”文件,我们将在Sappy中把它加入。因此首先,打开Sappy。打开Sappy之后,点击“File”中的“Open”。打开第一个火红Rom。打开之后你会注意到在程序的左上角(好像是右上角)会出现一个下拉列表,其中有一些音乐名。你所选择的音乐就是你将要替换的音乐。你可以替换任何音乐,但是在这个教程中,选择“Pokemon Theme”,因为这是你打开游戏后首先听到的音乐之一。找到这个音乐后,点击程序左边的“Assemble Song”。然后会出现一个标有“Assemble .S file”的窗口。点击在第一个文本框后面的按钮然后打开你的“.s”文件。第二个文本框,是用来输入base地址的(大概就是输入初始地址),但是现在没必要太担心。现在只要输入地址“0xEB0B20”。第三个是Voicegroup(声音组?)地址框,它是自动填好的。点击“Assemble that ugly thing!”(“换掉那个恶心的东西!”汗……似乎有时候换晚会更恶心……因为声音似乎会受损)然后等程序完成替换音乐。祝贺一下,你已经成功地替换了文件。如果现在音乐已经在游戏中正常播放,那么就再祝贺一下你完成了~~~~但是如果不是,不要急,到第三步。
Step 3 - Getting the file to work in game
So now you've assembled the file and it plays in Sappy, but you see that it doesn't play in game. Well slow down there guy, there's still a ways to go before we can get the file playing in game. Now that you've assembled the file we're going to export the tracks. In order to do this, go to "Export Tracks". You'll then see a bunch of unchecked boxes which are basically the offsets of the tracks, check all of them. In the 2nd box, you can either put $T or $P, don't know worry too much about what they mean, for this tutorials sake just type in "$T". After that click on "Ok". The songs tracks will now be dumped to your folder and since you picked "$T" the tracks will be numbers like one tracks file name will be 0, the next tracks file name will 1, it's pretty simple. So after that close out Sappy and reopen it. Now that you've reopened Sappy, open the unmodified Pokemon Fire Red rom and find the song you modified in other rom, which should be "Pokemon Theme" in the case of this tutorial. Now go to "import tracks" and check all the "numbered" files, which are basically the tracks we dumped earlier. Next to the "First track" box basically type in an offset where there's a lot of free space, for the sake of this tutorial just put "0xEB0B20" there. Then press OK. Now open up your emulator, open up the rom you just modified and you'll see that the song works in game. Congratulations, you've done your first successful music hack.
And yep, that's how you insert music into the GBA Pokemon games. But I know some of you are asking, what if I want to import music from one Pokemon GBA game to another? Well, I'll explain that in this extra step.
Importing Music from one Pokemon GBA game to another
Importing music from one Pokemon GBA game to another is easy. First open the Pokemon GBA game you want music from like for instance, if I wanted to take music from Ruby and put it in Fire Red, I would open Ruby. Then I'd simply select the song I want to put into the other game and go to export tracks. Once you're in the export tracks window, check all the tracks, type "$T" in the second box and all your tracks will be exported to numbered files(1, 2, 3, 4, 5 you get the point). After that, open the game you want to insert the music into and find the track you want to replace. After that choose import tracks and import the numbered tracks you dumped and press okay. Congrats, you've successfully taken music from one GBA Pokemon and inserted it into another.
Importing Music from one Pokemon GBA game to another
Importing music from one Pokemon GBA game to another is easy. First open the Pokemon GBA game you want music from like for instance, if I wanted to take music from Ruby and put it in Fire Red, I would open Ruby. Then I'd simply select the song I want to put into the other game and go to export tracks. Once you're in the export tracks window, check all the tracks, type "$T" in the second box and all your tracks will be exported to numbered files(1, 2, 3, 4, 5 you get the point). After that, open the game you want to insert the music into and find the track you want to replace. After that choose import tracks and import the numbered tracks you dumped and press okay. Congrats, you've successfully taken music from one GBA Pokemon and inserted it into another.
从一个口袋GBA ROM中导入音乐到另一个中
从一个口袋GBA ROM中导入音乐到另一个中其实挺容易的。首先打开那个你想要音乐口袋GBA ROM游戏。例如,我想将红宝石版中的音乐导入到火红版里,在这里我应该打开红宝石版。然后应该(单项)选择并导出想导入到其他游戏的音轨。当你打开导出音轨窗口后,选择所有音轨。在第二个文本框中输入