Jump to content

[Tutorial] Basic / moderate ROM-music editing using Sappy and other tools


Recommended Posts

Hi there!

 

I decided to make a small basic tutorial on how to edit the ingame music using tools called Sappy and some others.

This tutorial will explain to you how you can rip music out of GBA games (not every game is supported though, but most pokemon games are), so you can save tem as a midi file or as a << raw data >> file.
The << raw data >> (I call them this way because they don't have an extension and it seems to be raw song data) file can be imported by Sappy and midi files can be used for your own personal use.

Rom-music editing is very much like coding and scripting, when song data is read, the game reads what instruments must be played, when they must be played and how they must be played (volume, tempo, if the pitch must decrease overtime, etc)

Each song uses a set of channels, also called tracks (but to avoid confusion, I call them channels or track channels). Each channel can play one instrument at a time.

 

Alright so let's get started!
First get these tools:

Sappy (added a link because it's hard to find and many versions are broken - this version is french though)

Hex editor (any hex editor is good as long as it has an option to search and replace)

Advance map or Free space finder

 

 

Tutorial 1/ Ripping music to midi format

So now you have the tools, I'll first explain you how to rip music to midi format:

(This is very easy, fast, and short)

 

Tools needed: Sappy

Difficulty: Very basic

 

Spoiler

 

1) Open up Sappy and open your rom.
2) Choose whatever song you want from the drop down box and then click on << Enregistrer en.mid >> which means << Save in .mid >>.

3) Done.

tut1_zps506136dc.png

 

 

 

Tutorial 2/ Changing what channels are used for a song

Maybe you know me from the <<less noise patch>> I made and had before the 25/06/2013 update.

What this patch basically did is it deleted some of the channels that used some instruments that were just squares sounds (beeps) and some instruments that used white noise.

Normally if you played the songs in an emulator like Visual Boy Advance, you wouldn't notice these beeps ut for the PokeMMO client you heard them quiet too much.

This is why I made the less noise patch, which is now unnecessary due to the sound engine update which replaces all the instruments by the standard ones used by your PC.
 

But you can still do this, and you can sort of remix the original song to something a little bit different:

 

Tools needed: Sappy, Advance map or Free space finder

Difficulty: Basic

 

Spoiler

 

1) Open up Sappy and open your rom.

2) Choose whatever song you want from the drop down box and click on export tracks

3) Choose what track channels you want to export by clicking on << Exporter les tracks >> which means << Export tracks >>and name it something you like and at << $t >> in the name (I used to call my track channels just $t but it's up to you)

4) Now you have everything exported, import them by clicking on << Importer les tracks >> which means << Import tracks >> and import them on the same song

 

Note: You can import them on another song, but if you do when you click on << Importer les tracks >> you should change the << Header >> and << Premier track >> which means first song. To get the addresses where you should repoint them open up Advance map or Free space finder, open your rom and search for 65535 empty FF space, then repoint the header and first song address to the first 2 addresses displayed. Also the header and first song address should never have the same address.

Note2: This way you can also export tracks from another rom (like Pokemon Ruby for example) and import it to your Pokemon Fire Red rom), but don't forget you should also repoint your addresses if you do this.

Note3: The first track channel also contains information about the songs speed, if you don't mport the first track channel (track channel 0) the speed will be automatically set to 120 bpm.

Note4: If you use Advance map, delete the .bak file it creates because the PokeMMO client might mistake it for being the Fire Red rom if it's in the Roms folder which makes it load the original Fire Red rom where no changes were made. You can also disable the .bak creation in the Advance map settings.

 

tut2_zps6adf33f5.png

 

 

Spoiler

 

Note: I didn't export track 8 because it only contains instrument number 0 which are drums for Sappy and for an emulator but a piano for the PokeMMO client, and I don't like it when my drums get replaced by pianos, I prefer a cleaner sound. I also show you here where you can deactivate the auto .bak creation of Advance map

 

 

Tutorial 3/ Making songs repeat and change what instruments are used

This is how you could make for example a full piano patch or make the RSE title screen repeat.

Tools needed: Sappy, Hex editor, Advance map or Free space finder

Difficulty: Moderate

 

Spoiler

 

Making songs repeat

1) Follow tutorial 2 to export your tracks

2) Open your exported tracks in your Hex editor and go to the very last byte which should be a B1

3) Add 5 more bytes after the B1 and change the B1 to B2 and change the 5 added bytes to: 00 00 00 00 B1

4) Save it and do this for all track channels, then import your tracks again (and repoint them!) using Tutorial 2

 

Changing the instruments of songs:

You could change the voicegroups with Sappy, but this won't work with PokeMMO because they do not use the GBA's voicegroup anymore so this will only work if you plan on making a rom which will be used with an emulator like Visual Boy Advance.

1) Follow tutorial 2 to export your tracks and open them in a hex editor
2) Now click on the downwards triangle in sappy and see what instrument is used

3) This instrument is in a decimal value, use the windows calculator to convert it to a hexadecimal value

4) Now search that byte and replace it by another byte (you must replace all bytes in it)

5) Save and import the track channel in your rom again

 

Note: If you want to replace instrument number 0 (which are drums in Sappy but a piano in PokeMMO) don't use this technique because you will most likely destroy your track channel

Note2: You could also use this technique to change the tempo of track channel 0 for example, or maybe for other stuff

tut3a_zps7e867aaa.png

 

tut3_zpsea3a2bd5.png

 

 

 

So how do you..

  • Make a RSE music patch? See Tutorial 2 and note1.
  • Make a full piano patch? You can make one with Tutorial 3.

 

Alright and that was it, if someone has questions, just don't be shy to ask them and ask them here.

Please let me know how my first tutorial ever was! :)

Link to comment

Hmm that's possible, well I could make some video tutorials but the reason why it's this long is due to having 3 tutorials in it :)

It also explains most of the errors you'll encounter

And for people that don't like to read I added the << So how do you ... >> part to guide them to what tutorial they'll need, so they don't have to read the whole thing

Link to comment

Hello! Just wanna thank you for the tutorial ahead of time. However I'm running into a problem running Sappy.

Whenever I open it I get this error.

[spoiler]Error.png[/spoiler]

Was wondering if you could help me fix it. I tried downloading said file but it still doesn't work. Any help would be appreciated. ^^

Link to comment

Hello! Just wanna thank you for the tutorial ahead of time. However I'm running into a problem running Sappy.

Whenever I open it I get this error.

[spoiler]Error.png[/spoiler]

Was wondering if you could help me fix it. I tried downloading said file but it still doesn't work. Any help would be appreciated. ^^

Alright in the .rar file did you first run the setup?
This error often occurs when you haven't run the setup.exe file
Also don't use the actual sappy that gets installed by the setup, use the one in the .rar file :)

Link to comment

This error often occurs when you haven't run the setup.exe file

Yeah I figured that out after I made my post. I was looking around and didn't notice the ReadMe. I was half asleep when I tried opening it. Lol.

Link to comment

Yeah I figured that out after I made my post. I was looking around and didn't notice the ReadMe. I was half asleep when I tried opening it. Lol.

Ok haha :)
I just added a video tutorial for tutorial 2, although the video is uncommented (lazy, sorry) it does have the sound that plays in Sappy.. Although the sound slightly glitched up and is delayed but oh well :P

Also at the end there should have been some sound but it got cut out :(

But atleast some form of video support is there lol

Link to comment
  • 3 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.