The PokéCommunity Forums Fan Games ROM Hacking Tools, Tutorials & Resources
Tutorial Full Music Editing Tutorial

Tools, Tutorials & Resources Various tools to help you develop your hacks can be found here.

Closed Thread
Thread Tools
Old October 27th, 2007 (2:18 AM). Edited October 31st, 2007 by Green Charizard.
Green Charizard's Avatar
Green Charizard Green Charizard is offline
pɹɐzıɹɐɥɔ uǝǝɹƃ
Join Date: Nov 2004
Location: the UK
Nature: Quiet
Posts: 253
Send a message via Windows Live Messenger to Green Charizard
This has been up on my site for a long time. I still see people asking over music in threads and such, so here it is, my music editing tutorial. I tried to go in to as much depth as possible, rather than the sketchy outlines people have been given.
Music editing, some see this as a hard thing in hacking, personally, I disagree. Sappy is currently the only way to edit music. For some reason when you hit “assemble that ugly thing” there’s a good chance it won’t work. (I'm not sure if this applys to newer versions of Sappy, that have been released since I wrote this, but the tutorial still applies). From experimenting, I don’t think sappy writes the voice group properly sometimes. I can’t confirm this; it’s just a theory. There is a way to overcome this problem; this means you can insert any midi, without failure if you follow my instructions carefully, which I shall write below.

How to edit music

To edit music you need the following things:-
  • The latest Sappy
  • Sappy support in your XML file for that game
  • Your .midi music file
  • You ROM
  • A spare Rom, that your prepared to kill.

  • Midi2gba (midi2agb.exe) – I’m not providing details on getting this, as everything about it is sketchy.
  • A hex editor
Creating your .s file

First place EVERYTHING in the same folder, if you don’t this’ll get confusing. To convert your midi, drag it onto “midi2agb.exe” If your midi is called “FutabaTown.midi” it will become “FutabaTown.s”. A very easy first step.

Converting your single .s file into multiple .s files

Most people just insert that single .s file, however that tends not to work. So we’re going to convert it into separate ones for each instrument.

To do this you need to sacrifice a ROM, so just copy one, or get an unedited one. Now open up sappy. Find any town, it doesn’t really matter on this. Click import and copy the voicegroup. Now, go to “Assemble Song” click on the .s file we created earlier. Paste the voicegroup into that section, also set the base destination offset to a blank space, so &H800000 if you’ve not already used it. Now click “Assemble that ugly thing!” and wait, click yes to the prompt that appears after a while. Then close that window. Now you need to reload sappy and the ROM that you just edited that you’re sacrificing. Find the town that you edited and click export. Now, tick all the boxes.

Don’t get confused with this next bit; it’s not that difficult.
In the right hand box either type $T or $P. $T numbers the tracks your exporting and $P labels the tracks with an offset. I suggest $T, it doesn’t really matter. Click ok.

Now we finally get to insert your freshly prepared music. Open your REAL ROM (Not the one you sacrificed!). Find the town that you want to write the music to. Go to import. You should see numbered files, or offsets, depending on what you chose earlier. Tick all the numbered/offseted files.

Before we carry on we need to look for blank space in a hex editor, so open one up and look for A LOT of “FF FF FF FF FF…” take a note of the offset on the right.

Back to sappy, enter this offset in the second box down, this “repoints” the track so it doesn’t overwrite data. No click ok and press yes at the prompt. You’re done! Music inserted! Now try it in the game. If it sounds odd go back to where we’re inserting multiple tracks and change the voicegroup box to one of another track (which can be viewed if you click on the town/route and press import, just copy and paste it), This changes the instruments. You can change the instruments by hex, but most of the time, it’s not necessary, good luck everyone!

~by Green Charizard

Ex-rom hacker, too attached to his childhood to leave.

Relevant Advertising!

Old October 30th, 2007 (11:47 PM).
The Smell's Avatar
The Smell The Smell is offline
Join Date: Sep 2006
Location: Melbourne, Australia
Age: 22
Gender: Male
Nature: Adamant
Posts: 212
Thanks! This worked great for me! I can now fully do my Diamond Remake!


Old October 31st, 2007 (12:11 AM).
Martin Yiu Martin Yiu is offline
disappeared... forever
Join Date: Jan 2006
Posts: 493
Ummm... Is there any chance to see the advanced instrument editation tutorial? Because I am pretty sure that some members (and me) would appreciate it. You know, some songs are never perfect if you import them from RSE and use one of default FRLG voicesets.

Old October 31st, 2007 (6:43 AM).
Green Charizard's Avatar
Green Charizard Green Charizard is offline
pɹɐzıɹɐɥɔ uǝǝɹƃ
Join Date: Nov 2004
Location: the UK
Nature: Quiet
Posts: 253
Send a message via Windows Live Messenger to Green Charizard
A good idea, I might be able to do that I read how to do that somewhere, I should be able to implement it in my own way. Personally, I just try it with different voice groups from the game your hacking and rewrite the .s files with different ones. Generally you can find one that fits quite well without having to edit anything. Also by having the multiple .s files you can choose not to use certain ones that may not sound correct.
Ex-rom hacker, too attached to his childhood to leave.
Old October 31st, 2007 (7:36 AM).
Binary's Avatar
Binary Binary is offline
Join Date: Aug 2007
Age: 22
Posts: 3,993
Wow this tutorial is really handy!
Thanx Green Charizard!
Old November 2nd, 2007 (1:04 AM).
Dan13x's Avatar
Dan13x Dan13x is offline
Join Date: Apr 2007
Location: Brisbane, Australia
Age: 20
Gender: Male
Nature: Quiet
Posts: 75
I tried replacing a the Wild Pokemon Battle in Fire Red but when I go in the grass the game freezes. Is something wrong?
Old November 2nd, 2007 (2:28 AM).
Green Charizard's Avatar
Green Charizard Green Charizard is offline
pɹɐzıɹɐɥɔ uǝǝɹƃ
Join Date: Nov 2004
Location: the UK
Nature: Quiet
Posts: 253
Send a message via Windows Live Messenger to Green Charizard
Yes, that'll be down to the music. Did you repoint? All you can do is try again, also, make your .s file again, midi2agb may be at fault.
Ex-rom hacker, too attached to his childhood to leave.
Old November 9th, 2007 (1:12 PM).
cooley's Avatar
cooley cooley is offline
///Keepin' it simple
Join Date: Feb 2007
Location: United States
Age: 22
Gender: Male
Nature: Impish
Posts: 1,147
Send a message via Windows Live Messenger to cooley Send a message via Skype™ to cooley
Just trying to keep this thread Alive, Can't this be done any other way?

Old November 9th, 2007 (10:59 PM).
Prof. 9 Prof. 9 is offline
Join Date: Jun 2006
Location: Netherlands
Gender: Male
Posts: 151
For some reason it doesn't work =/ it just repoints the old song
I'm using Sappy 2006.

Also, for some reason, I didn't get a yes/no prompt when assembling that ugly thing.
Old November 10th, 2007 (2:46 AM).
Zeikku™'s Avatar
Zeikku™ Zeikku™ is offline
Johto remaker
Join Date: Aug 2007
Location: London, England
Age: 25
Gender: Male
Nature: Naughty
Posts: 1,118
Send a message via Windows Live Messenger to Zeikku™
yeah i had that problem too, it may just be the .s file, you cant fix least i dont think so as i spent 3 days trying to fix it

Follow me on Twitter by clicking on my signature.
Old December 10th, 2007 (4:24 AM).
clonex25's Avatar
clonex25 clonex25 is offline
Just droppin' by...
Join Date: Jun 2007
Location: Pearl of the Orient Seas
Age: 32
Nature: Timid
Posts: 74
In my opinion, the instrumentation depends on what is available in the voicegroups. For example, the instruments available in the voicegroup for Viridian City may or may not be available in the Lavender Town voicegroup.

Just one question. When I tried to insert a song in the ROM, I placed a new header offset. The first new insertion was successful, but the rest didn't make a sound at all (my first insert has a value 015B in AdvanceMap, and I tried to insert the succeedind tracks with 015C, 015D, etc.). How can I find the right hex value for the other tracks?

I hvae updated the GBA Music Looping thread. It now has a tutorial for looping multiple-tracked S Files. Click the link below:

Due to popular demand, I have lowered the Wild Pokemon Theme (with two versions) and added it in my music collection thread:

Next STOP: To make guidelines regarding GBA music tracks
Closed Thread
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT -8. The time now is 4:40 AM.