PHO - Pokémon Hackers Online
Go Back   PHO - Pokémon Hackers Online > ROM Hacking > Guides & Documentation

Guides & Documentation Learn how to make your own Pokémon game through the process of ROM Hacking, or help out the community by sharing your information.

Reply
 
Thread Tools Display Modes
Old 11th October 2012, 05:59 PM   #1
Linkandzelda
RHO つぃちょう
Webmaster
 
Linkandzelda's Avatar
 
Join Date: Apr 2012
Location: United Kingdom
Posts: 311
Linkandzelda Linkandzelda
Send a message via AIM to Linkandzelda Send a message via MSN to Linkandzelda Send a message via Skype™ to Linkandzelda
Default Wataru-Kun's Ultimate Pokémon Music Hacking Guide

All credit's go to Wataru-Kun for the following guide, Arranged by linkandzelda with permission to post.

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.

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.

And that concludes this tutorial. Hope it helped you guys out.

You can watch a video tutorial [nomedia="http://www.youtube.com/watch?v=el2s5EIHWSM"]YouTube- Broadcast Yourself.[/nomedia].

How to make your music sound the best

In my previous documents, I covered how to insert a midi into a GBA game. But the problem is, when inserting just any regular midi without modification, it might not sound the best on the GBA. In this tutorial, I'm going to basically give you guys some info on the GBA's music limits and how to make your music sound the best it can in your Pokemon hack. Before you read this document though, it is REALLY recommended you read and understand the first before you read this one.

1. Some information on the GBA's Music Limits

I'll start this document off with some information on the GBA's Music Limits that Clonex25 informed me of. Here's a direct quote on the limits from a PM that he sent me which best explains them...
Quote:
- You can use up to 10 tracks per song: 5 for DirectSound (D/S), and 5 for GB Waveform (GB).
- You can use any instrument in the D/S tracks, provided that you must limit the playing instruments to 6 (including the drums).
- You may reserve a D/S track for the drums.
- You can use the GB tracks for the following: 1) Square1, 2) Square2, 3) Wave, 4) and 5) Noise.
- Two GB tracks are used for the Noise part because Applause (126) has a "smoother" effect than Gunshot (127).
- You may maximize the 5 D/S tracks for town/city/route/cave music.
- You must limit the battle music D/S tracks to 4. This gives a track that the GBA uses for the attack SFX. Maximizing 5 D/S tracks may sacrifice the drums upon execution of attacks like Surf, or when there's a stat change (+ATK, -DEF).
So those are mostly the limits of the GBA, music wise and if you surpass those limits, the song might not sound as good as it could on the GBA. Now, I know some of you might be confused now by all the DirectSound and GB Waveform business, so I'll explain it. DirectSound instruments are basically any instruments that aren't GB Synth. So a trumpet would be a DirectSound instrument, a flute would be a Direct Sound instrument and so on. GB Synth is basically any instrument that uses the GB's internal Waveform. The original Game Boy and Game Boy Color only used Waveform and Direct Sound was added to the GBA.

2. Voicegroups

Every different song in each of the Pokemon GBA games uses a certain voicegroup and this can effect how good or bad the song might sound on the GBA. For instance, in Sappy you could assemble your .s file to "Encounter 1" and it might sound great, but then you assemble it to say... "Pallet Town" and it sounds horrible. This is because those songs use different voicegroups. Now, I know it's possible to change voicegroups through Hex Editing, but seeing as I've not tried that yet, I won't cover it here. So basically, what'd I reccomend is toying around with assembling your song to different songs and seeing which one sounds the best.

3. Balance

Sometimes the midi you've inserted into your GBA Pokemon hack, won't sound good if it's unbalanced. You know, if one instruments playing too loud and all the others are playing too soft or overall, the whole midi is just too loud. Balancing your midi can really help it sound better on the actual GBA. How I like to do this is I go into Anvil Studio(A program that let's you edit midi tracks) and just toy around with the volume of different instruments. You know, turning certain instruments up and turning certain instruments down and seeing what happens. But yeah, balancing the volume of your midi tracks can really help your midi sound better on the actual GBA.

4. Commonly used instruments in GBA Pokemon games

Here I will cover instruments that are commonly used in the GBA Pokemon games. Now, if you want to use an instrument not on the list, you can try to, but most of the time instruments that aren't common result in the instrument being converted to GB Synth. Overall, don't look at this as the definite list as you can try and use other instruments if you like and see if they work.

Commonly used DirectSound Instruments:
1 - Bright Acoustic Piano
2 - Electric Grand
5 - Electric Piano 1
13 - Xylophone
14 - Tubular Bells
17 - Percussive Organ
21 - Accordian
24 - Acoustic Guitar Nylon
25 - Acoustic Guitar Steel
29 - Overdriven Guitar
36 - Slap Bass 1
38 - Synth Bass 1
45 - Pizzicato Strings
46 - Harp
47 - Timpani
48 - Strings
53 - Voice Oohs
56 - Trumpet
59 - Tuba
60 - French Horn
73 - Flute
78 - Whistle

Direct Sound also has a drum track, but I'm not sure which one it is.

Commonly used GB Synth Instruments:
4, 6 and 7 = Not necessarily Square instruments, but are used as Sqaure's.
80 - Square(As Melody or Bass)
81 - Sawtooth(Mostly used as Bass)
82 - Calliope
83 - Chiff
84 - Charang
85 - Voice
87 - Bass + Lead
88 - Pad 1 (New Age)
91 - Pad 4 (Choir)
92 - Pad 5 (Bowed), mostly used as a Wave instrument
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

So yeah, those are the commonly used instruments in the GBA games. Now the numbers are the instrument numbers as they appear in Sappy. To get these instruments in most common midi programs, just add 1 to the instrument number. For instance 56 = Trumpet in Sappy, but to get a trumpet in a midi program, you'd look for track 57. I know this is all very confusing but bear with me here.

Read all that? Good because the last portion of this document is going to get a bit complicated and is really only recommended if you REALLY want your midi to sound great on the GBA. Basically, in the last document I'll be covering the Program Change. It's not really that hard to do, just hard to explain.

5. Program Change

Open Sappy and then open a rom of Pokemon Fire Red or Leaf Green. Then scroll down the songs list in Sappy and find "Route Theme 4". Click the box with the check beside it next to Location, to turn all of the tracks off. Now that you've done that, select the click on the second track. Now press play. If you watch closely, you'll immediately notice that within in the first 2 seconds, the track starts as strings(48), then the SAME TRACK changes into a French Horn(60) and then changes to a Trumpet(56). This is something I like to call Program Changing, which is when ONE track changes into another instrument on the fly. Learning how to do a Program Change will really help you compress the number of instruments a midi uses.

First, download and install Anvil Studio. Once you've done that, open Anvil Studio, find your midi and open it. Now turn off all but one track(Prefferably the Melody Track). Now go up to View and click on it and then click on "Piano Roll Editor". Then go to the part of the song where you want to change the instrument. But wait, before that, I have to tell you something very important. In order for a program change to work on the actual GBA there must be 4 blank notes before it. Once you've found a spot with 4 blank notes before it though, click on the beggining of the blank notes and go up to "Edit". Once you've clicked on that go down to "Insert Midi Controller Event...". The picture below shows you what I mean by "4 blank notes".



After that first make sure the "Show all controller events" box is selected and then go up to the "Kind of Event" box and find "Program Change". Once you've done that, it will probably already be on the correct channel number and all you have to do is change the control value(The value of the instrument you want to change to). So say for instance, you had strings and you wanted to switch to a trumpet, you'd put "57" as the control value.

And that's the end of a long tutorial guys. I know a lot of things in here are confusing, but it's really advanced stuff and is hard to explain.

Fire Red voice groups and the intruments they play
In this document, I'm gonna list all the voicegroups in Fire Red as well as the instruments each voicegroup can play. But first, what are voicegroups? My definition would be a group of instruments stored in a particular value in a rom. Voicegroups are one of the biggest deciding factors in whether the midi you insert sounds good or not. For instance, if you insert a midi, but you notice one of the DirectSound tracks gets turned to GBSynth, this is probably because the instrument isn't in the particular voicegroup of the song you assembled. This could also be though, because of the GBA's music limits, which are explained in Part 2 of my Music Hacking document. Luckily for you you can change the voicegroup before assembling, but what instruments can each particular voicegroup play? That's what I'm mostly gonna cover in this document. After much research I've produced an accurate list of instruments that each voicegroup can play and if an instrument isn't in that particular voicegroup, it probably won't play correctly.

However, before we move onto that, a little information on how some tracks are used on the GBA. First off, know that every track after 80 is mostly going to transfer into GBSynth, when assembled into Sappy. Channel 81, the sawtooth, is commonly used as the bass instrument in most GBA tracks, although sometimes DirectSound basses can be used if the voicegroup supports it. GBSynth tracks can be used in any track, so if I forget to list them in one voicegroup, that doesn't mean you can't use them. Second of all, I won't be covering what particular drums each voicegroup supports. Also a note to add about track 62 "SynthBrass1" though it says SynthBrass, this track is generally used to make a heavy low guitar sound. You'll find the different voicegroups inside the spoiler:

Spoiler:
0x48ABB0

2 - Electric Grand
13 - Xylophone
46 - Harp
47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn
73 - Flute
82 - Calliope
83 - Chiff
84 - Charang
85 - Voice
88 - Pad 1 (New Age)
100 - Brightness
101 - Goblin

0x48B078

47 - Timpani
60 - French Horn
80 - Square
81 - Sawtooth
82 - Calliope
83 - Chiff
84 - Charang

0x48B474

01 - Acoustic Grand
4, 5, 6 and 7 - Not Square instruments, but used as Square instruments in GBA Pokemon games.
47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn
80 - Square
90 - Pad 3 (Polysynth)

0x48B8B8 (Used for the second RSE battle theme)

01 - Bright Acoustic
4, 5, 6 and 7 - Not Square instruments, but used as Square instruments in GBA Pokemon games.
17 - Percussive Organ
33 - Electric Bass (Fingered)
47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn
81 - Sawtooth
82 - Calliope
83 - Chiff
90 - Pad 3 (Polysynth)

0x48F974

1 - Bright Acoustic
2 - Electric Grand
24 - Acoustic Guitar Nylon
80 - Square
81 - Sawtooth
127 - Gunshot(Used as Drum Noise)

0x48FF74

14 - Tubular Bells
17 - Percussive Organ
24 - Acoustic Guitar Nylon
47 - Timpani
56 - Trumpet
73 - Flute
80 - Square
81 - Sawtooth
87 - Bass + Lead
127 - Gunshot(Used as Drum Noise)

0x490574

17 - Percussive Organ
24 - Acoustic Guitar Nylon
29 - Overdriven Guitar
30 - Distortion Guitar
38 - Synth Bass 1
48 - Strings
56 - Trumpet
78 - Whistle
80 - Square
81 - Sawtooth
83 - Chiff
120 - Guitar Fret Noise
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x490B74

47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn
80 - Square
81 - Sawtooth
84 - Charang
85 - Voice
87 - Bass + Lead
88 - Pad 1 (New Age)

0x490FAC

21 - Accordian
80 - Square
81 - Sawtooth

0x491390

29 - Overdriven Guitar
30 - Distortion Guitar
38 - Synth Bass 1
62 - SynthBrass 1
80 - Square
81 - Sawtooth
83 - Chiff
84 - Charang
85 - Voice
86 - Lead Fifths
87 - Bass + Lead
88 - Pad 1 (New Age)
89 - Pad 2 (Warm)
125 - Helicopter
127 - Gunshot(Used as Drum Noise)

0x491990

14 - Tubular Bells
47 - Timpani
48 - Strings
56 - Trumpet
58 - Trombone
60 - French Horn
80 - Square
81 - Sawtooth
125 - Helicopter

0x491F90

17 - Percussive Organ
24 - Acoustic Guitar Nylon
48 - Strings
80 - Square
81 - Sawtooth
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x492590

10 - Music Box
17 - Percussive Organ
21 - Accordian
24 - Acoustic Guitar Nylon
48 - Strings
58 - Trombone
78 - Whistle
80 - Square
81 - Sawtooth

0x492B90

02 - Not really a square instrument, but used as such in the game.

0x492BC0

01 - Bright Acoustic
13 - Xylophone
17 - Percussive Organ
21 - Accordian
24 - Acoustic Guitar Nylon
56 - Trumpet
73 - Flute
80 - Square
81 - Sawtooth
83 - Chiff(Used here as Wave)
84 - Charang
85 - Voice(Used here as Wave)

0x4931C0

17 - Percussive Organ
24 - Acoustic Guitar Nylon
38 - Synth Bass 1
80 - Square
81 - Sawtooth
83 - Chiff

0x4935B0

01 - Bright Acoustic
17 - Percussive Organ
24 - Acoustic Guitar Nylon
48 - Strings
80 - Square
81 - Sawtooth
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x493BB0

01 - Bright Acoustic
17 - Percussive Organ
38 - Synth Bass 1
48 - Strings
80 - Square
81 - Sawtooth
126 - Applause(Used as Drum Noise)

0x4941B0

17 - Percussive Organ
24 - Acoustic Guitar Nylon
80 - Square
81 - Sawtooth
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x4947B0
01 - Bright Acoustic
13 - Xylophone
24 - Acoustic Guitar Nylon
48 - Strings
78 - Whistle
80 - Square
81 - Sawtooth
83 - Chiff
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x494DB0

01 - Bright Acoustic
24 - Acoustic Guitar Nylon
48 - Strings
80 - Square
81 - Sawtooth

0x4951A0
13 - Xylophone
39 - Synth Bass 2
48 - Strings
58 - Trombone
80 - Square
81 - Sawtooth
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x4957A0

1 - Bright Acoustic
2 - Used as a Square in GBA Pokemon games
9 - Glockenspiel
13 - Xylophone
46 - Harp
47 - Timpani
48 - Strings
56 - Trumpet
58 - Trombone
60 - French Horn
68 - Oboe
73 - Flute
80 - Square
81 - Sawtooth
82 - Calliope

0x495BFC

78 - Whistle
80 - Square
81 - Sawtooth
83 - Chiff
126 - Applause(Used as Drum Noise)

0x4961FC

47 - Timpani
48 - Strings
56 - Trumpet
80 - Square
81 - Sawtooth
84 - Charang

0x49661C

14 - Tubular Bells
17 - Percussive Organ
24 - Acoustic Guitar Nylon
47 - Timpani
48 - Strings
60 - French Horn
80 - Square
81 - Sawtooth
92 - Pad 5 (Bowed)
127 - Gunshot(Used as Drum Noise)

0x496C1C

14 - Tubular Bells
46 - Harp
47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn
73 - Flute
81 - Sawtooth
83 - Chiff
127 - Gunshot(Used as Drum Noise)

0x49721C

14 - Tubular Bells
47 - Timpani
48 - Strings
58 - Trombone
60 - French Horn
80 - Square
81 - Sawtooth

0x497678

4 and 5 - Not Squares, but interpreted by the GBA Pokemon games as such.
14 - Tubular Bells
17 - Percussive Organ
24 - Acoustic Guitar Nylon
29 - Overdriven Guitar
30 - Distortion Guitar
47 - Timpani
48 - Strings
60 - French Horn
62 - SynthBrass 1
83 - Chiff
89 - Pad 2 (Warm)
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x497C78

17 - Percussive Organ
21 - Accordian
29 - Overdriven Guitar
30 - Distortion Guitar
33 - Electric Bass (Fingered)
56 - Trumpet
62 - SynthBrass 1
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x498278

17 - Percussive Organ
24 - Acoustic Guitar Nylon
33 - Electric Bass (Fingered)
48 - Strings
80 - Square
81 - Sawtooth
87 - Bass + Lead
92 - Pad 5 (Bowed)
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x498878

4 - Used as synth by the game.
14 - Tubular Bells
24 - Acoustic Guitar Nylon
29 - Overdriven Guitar
30 - Distortion Guitar
31 - Guitar Harmonics
48 - Strings
53 - Voice Oohs
56 - Trumpet
60 - French Horn
62 - SynthBrass 1
80 - Square
81 - Sawtooth
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x498E78

4 - Used as synth.
5 - Used as synth by the game.
24 - Acoustic Guitar Nylon
48 - Strings
80 - Square
81 - Sawtooth
83 - Chiff

0x499478

14 - Tubular Bells
24 - Acoustic Guitar Nylon
48 - Strings
80 - Square
81 - Sawtooth

0x499898

01 - Bright Acoustic
21 - Accordian
48 - Strings
58 - Trombone
73 - Flute
80 - Square
81 - Sawtooth
83 - Chiff
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x499E98
4 - Used as synth
14 - Tubular Bells
17 - Percussive Organ
48 - Strings
80 - Square
81 - Sawtooth

0x49A2F4

01 - Bright Acoustic
05 - Used as synth.
46 - Harp
56 - Trumpet
58 - Trombone
73 - Flute
81 - Sawtooth
92 - Pad 5 (Bowed)
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x49A8F4

04 - Used as synth.
05 - Used as synth.
12 - Marimba(Used as synth here).
24 - Acoustic Guitar Nylon
46 - Harp
48 - Strings
73 - Flute
80 - Square
81 - Sawtooth

0x49AEF4

01 - Bright Acoustic
14 - Tubular Bells
17 - Percussive Organ
24 - Acoustic Guitar Nylon
58 - Trombone
73 - Flute
75 - Pan Flute
78 - Whistle

0x49B4F4

17 - Percussive Organ
24 - Acoustic Guitar Nylon
31 - Guitar Harmonics
48 - Strings
62 - SynthBrass 1
80 - Square
81 - Sawtooth
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x49BAF4

17 - Percussive Organ
21 - Accordian
24 - Acoustic Guitar Nylon
56 - Trumpet
80 - Square
81 - Sawtooth
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x49C0F4

17 - Percussive Organ
24 - Acoustic Guitar Nylon
45 - Pizzicato Strings
48 - Strings
60 - French Horn
73 - Flute
80 - Square
81 - Sawtooth

0x49C6F4

17 - Percussive Organ
75 - Pan Flute
80 - Square
81 - Sawtooth
127 - Gunshot(Used as Drum Noise)

0x49CCF4

47 - Timpani
56 - Trumpet
58 - Trombone
73 - Flute
81 - Sawtooth
82 - Calliope
83 - Chiff

0x49D0E4

45 - Pizzicato Strings
47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn
73 - Flute
81 - Sawtooth
82 - Calliope
83 - Chiff
85 - Voice
86 - Lead 7 fifths
89 - Pad 2 (Warm)

0x49D528

4 - Electric Piano 1
17 - Percussive Organ
24 - Acoustic Guitar Nylon
48 - Strings
73 - Flute
80 - Square
81 - Sawtooth
92 - Pad 5 (Bowed)
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x49DB28

1 - Bright Acoustic
4 - Electric Piano 1
17 - Percussive Organ
25 - Acoustic Guitar Steel
48 - Strings
80 - Square
81 - Sawtooth
83 - Chiff
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x49E128

1 - Bright Acoustic
30 - Distortion Guitar
38 - Synth Bass 1
80 - Square
81 - Sawtooth
82 - Calliope
83 - Chiff
92 - Pad 5 (Bowed)

0x49E884

13 - Xylophone
24 - Acoustic Guitar Nylon
80 - Square
81 - Sawtooth
87 - Bass + Lead

0x49F16C
13 - Xylophone
24 - Acoustic Guitar Nylon
80 - Square
81 - Sawtooth

0x49F58C

1 - Bright Acoustic
2 - Electric Grand
56 - Trumpet
60 - French Horn
80 - Square
81 - Sawtooth
83 - Chiff

0x4A01E0

47 - Timpani
48 - Strings
56 - Trumpet
58 - Trombone
60 - French Horn
81 - Sawtooth

0x4A0600

24 - Acoustic Guitar Nylon
35 - Fretless Bass
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x4A1008

14 - Tubular Bells
29 - Overdriven Guitar
30 - Distortion Guitar
33 - Electric Bass (Fingered)
48 - Strings
53 - Voice Oohs
60 - French Horn
62 - SynthBrass 1
78 - Whistle
81 - Sawtooth
127 - Gunshot(Used as Drum Noise)

0x4A1C08

01 - Bright Acoustic
24 - Acoustic Guitar Nylon
48 - Strings
56 - Trumpet
60 - French Horn
80 - Square
81 - Sawtooth
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x4A2208

17 - Percussive Organ
24 - Acoustic Guitar Nylon
48 - Strings
80 - Square
81 - Sawtooth
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x4A2808

17 - Percussive Organ
24 - Acoustic Guitar Nylon
48 - Strings
80 - Square
81 - Sawtooth
82 - Calliope
126 - Applause(Used as Drum Noise)
127 - Gunshot(Used as Drum Noise)

0x4A0C00

14 - Tubular Bells
31 - Guitar Harmonics
38 - Synth Bass 1
80 - Square
81 - Sawtooth
85 - Voice(For once, it's actually not used as Synth)

0x4A1608
01 - Bright Acoustic
81 - Sawtooth
127 - Gunshot(Used as Drum Noise)


So yeah, that was the list. Next I'm gonna cover choosing the right voicegroup for your song.

Choosing the Right Voicegroup

When the choosing the voicegroup you want to use, you should generally pick a voicegroup that has a lot of the same instruments that are in your midi. For instance, if your midi uses strings, trumpets, but also guitars, you want to find a voicegroup that has all of those. If you find a voicegroup with most of the same instruments, you can either try your luck or change some of the instruments in that midi, so that they're all in that particular voicegroup. If a particular instrument isn't in any voicegroup, it will probably have to be substituted for some other instrument.

But I'm confused, my tracks have different numbers than the ones used on the GBA...

If you have standard midi software, the track numbers are probably going to be different than what's used on the GBA. I don't know if this'll work for your particular midi program but to get the GBA track number, I take the general midi track number and subtract it by one. So say my general midi program has 57 for the track number of the trumpet, it would be track number 56 in the Pokemon games. Your midi program might also have different names for instruments than mine, but it's generally gonna be in the same order. Hopes this helps you guys gain an understanding.

And yeah, that's the tutorial guys... Hoped it help you out.

A Complete list of Fire Red's music values
Are you like me and wanted to change Fire Red's map music in AdvanceMap, but had no idea what the values where? Well, worry no more. In this documentation, you will find a list of Hex Values for EVERY song in Pokemon Fire Red. These Hex Values have been tested in game, so I know that each and every last one of them is the right music value. So yeah, if you ever wanted to change the games music, but didn't know the correct hex values, here they are. All the names are taken from Sappy, with minor add ons and corrections.

Quote:
0105 = Healing (RS)
0106 = Level Up
0107 = Evolution Start
0108 = Evolution/Safari
0109 = Battle 1
010A = Battle 2
010B = Unknown/Not listed in Sappy
010C = Fanfare 1
010D = Fanfare 2
010E = You Fail It!
010F = You Fail It Again!
0110 = Follow Me
0111 = Game Corner
0112 = Evil Lurks
0113 = Gym
0114 = Jigglypuff's Song
0115 = Introduction
0116 = Pokemon Theme
0117 = Cinnabar Island
0118 = Lavender Town
0119 = Healing
011A = Bicycle
011B = Encounter 1
011C = Encounter 2
011D = Encounter 3
011E = You're In The Hall of Fame!
011F = Viridian Forest
0120 = Mount Moon
0121 = Abandoned Place
0122 = End Credits
0123 = Route Theme 1
0124 = Route Theme 2/Intro
0125 = Route Theme 3
0126 = Route Theme 4
0127 = Indigo Plateau
0128 = Battle 3
0129 = Battle 4
012A = Battle 5
012B = Battle 6
012C = Pallet Town
012D = Oak's Lab
012E = Oak's Theme
012F = Pokemon Center
0130 = SS Anne
0131 = Surf's Up
0132 = Pokemon Tower
0133 = Silph Co.
0134 = Cerulean City
0135 = Celadon City
0136 = Victory 1
0137 = Victory 2
0138 = Victory 3
0139 = Vermillion City
013A = Viridian City and Pewter City
013B = Gary's Theme
013C = Gary's Theme (bis)
013D = Fanfare 3
013E = Fanfare 4
013F = You caught a Pokemon!
0140 = Trainer Card Photo
0141 = Gamefreak
0142 = Victory 2 (bis)
0143 = Intro Message 1
0144 = Intro Message 2
0145 = Intro Message 3
0146 = Game Corner (+1)
0147 = Game Corner (+2)
0148 = Net Corner
0149 = Mystery Connection
014A = Game Corner (+3)
014B = Mount Ember
014C = Follow Me (alt)
014D = Water Labyrinth
014E = Tanoby Ruins
014F = Islands 1-3
0150 = Islands 4-5
0151 = Islands 6-7(AKA Violet City Theme from GSC)
0152 = PokeFlute
0153 = Battle - Deoxys
0154 = Battle 5 (+1)
0155 = Battle 5 (+2)
0156 = Encounter 4
0157 = Deoxys Encounter
0158 = Trainer Tower
0159 = Pallet Town (fame mix)
015A = Teachy TV
So there you go, that's the list. Hope this helps people out.

Advance music hacking guide - Midi events
Hey, what's up guys this is Magnius here again today with another tutorial on how to make your music that you insert in Sappy, sound even more professional. But what will I be covering today? Well, midi events. Midi events are things that you can add to your midi files in order to change a number of variables such as a tracks volume or a tracks instrument, on the fly.

But what does that have to do with music hacking? Well, the official FRLG songs use midi events in them and by knowing how to use these midi events correctly, you can not only make your midis sound more official, but you can make your midis look more official.

So basically, in this tutorial I will first explain to you, HOW to insert midi events and then tell you what those events do.

However, before you move on you're going to need 2 programs... Anvil Studio and WinjammerPro, both which are free. The links to where to download them are listed below...

http://www.anvilstudio.com/
You can get Anvil Studio there.

And....

http://home.mchsi.com/~davidbmidi5/_disco/000000f6.htm
You can get WinJammer there.

Both are pretty much required for this tutorial.

It's also recommended you read the previous tutorials, before reading this one...

So now on to the tutorial...

So, how do you actually add a midi event in Anvil Studio?

Well, that's a good question. Well to make things easy, I'll tell you things step by step.

1. Open up Anvil Studio.



2. Next, find where it says "File" near the upper left corner and click on that.



3. Once you've clicked on that, find "Open Song..." on that menu.



4. Next find a midi of your choice and open that.



5. Now that you've done that, find the "View" option at the top and click on that. Then make sure it's set to "Mixer".



6. Select the track that you want add a midi event to.



7. Now this isn't mandatory, but it's probably a good idea to solo out this track, so that only it is playing. To do this, look in the "On" column of that particular track. Then keep clicking in the "On" section of that track, until it changes to Solo.



8. Next, with that same track selected, click on View near the top. After that scroll down to "Piano Roll Editor". This will take you to the Piano Roll.



9. Once you're in the Piano Roll, listen to the track and decide where you want to insert the event. After you've done that, click on the place where you want to insert the event.



10. After that, find "Edit" at the top and click on it. Then find "Insert MIDI Controller Event..." on the list of options and click on that.



11. After this, you should see a box that says "New MIDI Event" at the top. When you get to this box make sure "Show all controller events" is checked.



Now, do you notice that small scrolling box, next to "Kind of event:"? Well by default the box should say "ChannelVolume - b007".

That my friends is a midi event. If you look below that you'll see the words "Control Value" with a box next to it that has numbers.



That's basically the Control Value of the midi event.



If you click on the scrolling box next to "Kind of event:" and keep scrolling down, you'll see a ton of different midi events.

Now, in this tutorial I won't be covering ALL the midi events, however, I will only be covering those commonly used in the FRLG mixes. Those events are...

1. ChannelVolume - b007

ChannelVolume - b007, as it's listed in Anvil Studio, is a midi event that allows you to change a track's volume at a selected position in the song. So if you want a track to play loud at one point, but then want the volume of the track to suddenly become low, you can use this event for that. The control value of this event, decides how loud or how soft the volume change will be. As you can probably guess "100" is the loudest volume and 0 is the lowest volume.

Now, if you want the volume to gradually get lower, that's more advanced, but can be done in WinJammer.

2. Program Change

Alright, so if you go into Sappy and isolate one of the DirectSound tracks on one of the official FRLG songs, more than likely you'll notice that sometimes that one track, may change it's instrument on the fly. This is used in MOST official FRLG mixes and is a great way to fit more instruments in, without adding more tracks in. After all, the GBA can only have 5 DirectSound tracks playing at once.

The control value for this midi event, is basically the instrument number that you want to switch to. How to figure out what numbers correspond to what instruments, has been covered already in another document.

3. Panpot - b00a

Well, if you go into Sappy and examine the tracks of some of the FRLG mixes, sometimes you'll notice the sound moving either to left or to the right, as opposed to being in the center like usual. This, my friends is called panning and it's something that most of the official FRLG mixes use.

The control value for this one is kind of confusing. Basically the way I like to think, is that "30" is the value I use if I want to pan the sound to the left and "90" is the value I use if I want to pan the sound to the right. "64" is what I use if I want to center the sound.

And yeah, that's the end of part one of the tutorial. On the next tutorial, I'll be covering one more new event, that you need Winjammer for and I'll be covering how to do advanced things with events in Winjammer.

RSE voice groups and the instruments they play
Hi this is Magnius. In this document you're going to find information on the voicegroups used in RSE, as well as some general information about voicegroups. For those of you who have not read the Fire Red voicegroup document yet or are just clueless about what voicegroups are, I'm going to go over the basics of voicegroups.

So what is a voicegroup? Well if I had to define it myself, I would define it as a list of instruments stored in a particular value of a rom. That's my personal definition of what a voicegroup is. But why are voicegroups important you ask? Well, it's because they play such a big role in whether or not a midi you insert into the game sounds good. I'm sure you've all been in a situation where you assemble a midi into the game, but then some of the most important instruments get turned to GBSynth. This is most likely because of A. The instruments that get turned to GBSynth aren't in the voicegroup you assembled the song too or B. You have too many DirectSound instruments.

"But Magnius, how do I know which voicegroups support which instruments?" Well, simply, read through this topic and you'll find out all of that. Below, you're basically gonna find a list of most of the voicegroups in RSE and what instruments they play.

But before we get on to that... I'm gonna list a few things that are true for every voicegroup, as well as some general notes on things regarding the voicegroups.

- Usually, tracks 80 and up are used as GBSynth. In the rare case this ISN'T true for a particular voicegroup, I'll note that.

- Tracks 2-13 are also usually used as GBSynth. There are however, some cases where that's not true. In the case that one of these instruments IS used as a DirectSound track, I'll list it.

- 125, 126 and 127 are used as "Noise" tracks.

- Track 0 is usually the drum track, however, in some voicegroups Track 0 is used as an Acoustic Grand track.

- Tracks 33-38 are commonly used basses in RSE, however, you can only hear in Sappy is Track 38 - Synth Bass 1, in Sappy. So while all the other basses DO play in game, you won't be able to actually hear them in Sappy.

- Be aware that even if a voicegroup has more than 5 DirectSound instruments in it, you can only have 5 DirectSound tracks playing at once. If your song uses drums, that already counts as one of the DirectSound tracks.

Read through all that? Haha. Well then here it is, what you guys have been waiting for! The list, in the spoiler!

Spoiler:
0x43F644

01 - Bright Acoustic
45 - Pizzicato Strings
46 - Harp
47 - Timpani
48 - Strings
56 - Trumpet
58 - Tuba
60 - French Horn
73 - Flute

0x44964C

01 - Bright Acoustic
46 - Harp
47 - Timpani
48 - Strings
56 - Trumpet
58 - Tuba
60 - French Horn

0x43F218

01 - Bright Acoustic
14 - Tubular Bells
46 - Harp
47 - Timpani
48 - Strings
56 - Trumpet
58 - Tuba
60 - French Horn
73 - Flute

0x43C4A0

01 - Bright Acoustic
35 - Fretless Bass
45 - Pizzicato Strings
48 - Strings
73 - Flute

0x431FF4

01 - Bright Acoustic
24 - Acoustic Guitar Nylon (Used as GBSynth here)
25 - Acoustic Guitar Steel (Used as GBSynth here)
26 - Electric Guitar Jazz (Used as GBSynth here)
27 - Electric Guitar Clean (Used as GBSynth here)
35 - Fretless Bass
56 - Trumpet
73 - Flute

0x43A280

01 - Bright Acoustic (Used as GBSynth here)
02 - Electric Grand (Used as GBSynth here)
03 - Honky-Tonk (Used as GBSynth here)
06 - Harpsichord (Used as GBSynth here)
10 - Music Box
17 - Percussive Organ
38 - Synth Bass 1
48 - Strings
73 - Flute

0x444444

17 - Percussive Organ
24 - Acoustic Guitar Nylon
35 - Fretless Bass
46 - Harp
48 - Strings
73 - Flute

0x446844

05 - Electric Piano 2 (Used as GBSynth here)
17 - Percussive Organ
24 - Acoustic Guitar Nylon
39 - Synth Bass 2(Wave instrument, but still makes sound)
48 - Strings
73 - Flute

0x439EB4

00 - Acoustic Grand
35 - Fretless Bass
45 - Pizzicato Strings
48 - Strings
73 - Flute

0x447A5C

24 - Acoustic Guitar Nylon
45 - Pizzicato Strings
46 - Harp
48 - Strings
60 - French Horn
73 - Flute

0x436314

01 - Bright Acoustic
35 - Fretless Bass
73 - Flute

0x43D418

45 - Pizzicato Strings
48 - Strings
58 - Tuba
60 - French Horn
73 - Flute

0x44A84C

01 - Bright Acoustic
17 - Percussive Organ
24 - Acoustic Guitar Nylon
58 - Tuba
73 - Flute

0x442644

14 - Tubular Bells
24 - Acoustic Guitar Nylon
35 - Fretless Bass
56 - Trumpet

0x430CF8

24 - Acoustic Guitar Nylon
35 - Fretless Bass
48 - Strings
73 - Flute

0x430908

14 - Tubular Bells
46 - Harp
47 - Timpani
48 - Strings
56 - Trumpet
58 - Tuba
60 - French Horn

0x431BF8

24 - Acoustic Guitar Nylon
46 - Harp
47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn

0x4339A4

47 - Timpani
56 - Trumpet
58 - Tuba
60 - French Horn
73 - Flute
81 - Sawtooth(Used as a Wave instrument here, but makes noise)

0x43B480

46 - Harp
47 - Timpani
48 - Strings
56 - Trumpet
58 - Tuba
60 - French Horn

0x440E44

24 - Acoustic Guitar Nylon
47 - Timpani
60 - French Horn
73 - Flute

0x43DA18

38 - Synth Bass 1
48 - Strings

0x435D74

01 - Bright Acoustic
14 - Tubular Bells
17 - Percussive Organ
46 - Harp
47 - Timpani
60 - French Horn
90 - Polysynth

0x443844

56 - Trumpet
58 - Tuba
60 - French Horn

0x437AE4

14 - Tubular Bells
46 - Harp
47 - Timpani
48 - Strings
58 - Tuba
60 - French Horn

0x446E44

24 - Acoustic Guitar Nylon
38 - Synth Bass 1
48 - Strings
60 - French Horn
73 - Flute

0x446244

14 - Tubular Bells
24 - Acoustic Guitar Nylon
35 - Fretless Bass
45 - Pizzicato Strings
47 - Timpani
60 - French Horn

0x445044

01 - Bright Acoustic
14 - Tubular Bells
47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn
73 - Flute

0x447E4C

00 - Acoustic Grand
24 - Acoustic Guitar Nylon
46 - Harp
47 - Timpani
48 - Strings
60 - French Horn
73 - Flute

0x43C818

47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn

0x432750

45 - Pizzicato Strings
46 - Harp
48 - Strings
58 - Tuba
60 - French Horn
73 - Flute

0x43B8A0

01 - Bright Acoustic
09 - Glockenspiel
35 - Fretless Bass
45 - Pizzicato Strings
46 - Harp
47 - Timpani
48 - Strings
60 - French Horn
73 - Flute

0x43E618

09 - Glockenspiel
23 - Tango Accordion
35 - Fretless Bass
45 - Pizzicato Strings
46 - Harp

0x445C44(Check assembling later)

17 - Percussive Organ
24 - Acoustic Guitar Nylon
35 - Fretless Bass
46 - Harp(Used as noise here)
73 - Flute
82 - Calliope(Used as Wave instrument, but makes sound)

0x449C4C

73 - Flute

0x44A24C

Has no DirectSound instruments.

0x43A880

00 - Acoustic Grand
06 - Electric Piano 2
45 - Pizzicato Strings
48 - Strings
73 - Flute

0x43BEA0

01 - Bright Acoustic
17 - Percussive Organ
35 - Fretless Bass
46 - Harp

0x4317C0

47 - Timpani
48 - Strings
56 - Trumpet
87 - Fifths(Used as a Wave instrument, but makes sound)

0x445644

17 - Percussive Organ
35 - Fretless Bass
36 - Slap Bass 1
56 - Trumpet

0x44BA4C

09 - Glockenspiel
13 - Xylophone
14 - Tubular Bells
17 - Percussive Organ
21 - Accordian
24 - Acoustic Guitar Nylon
47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn
73 - Flute

0x44D24C

56 - Trumpet
58 - Tuba
73 - Flute

0x433590

00 - Acoustic Grand
45 - Pizzicato Strings
48 - Strings
58 - Tuba

0x433F14

00 - Acoustic Grand
35 - Fretless Bass
46 - Harp
56 - Trumpet

0x447444

01 - Bright Acoustic

0x4370E8

01 - Bright Acoustic
47 - Timpani
48 - Strings
56 - Trumpet
60 - French Horn

0x444A44

13 - Xylophone
35 - Fretless Bass
47 - Timpani
82 - Calliope(Used as a wave instrument here, but plays sound)

0x448A4C

17 - Percussive Organ
36 - Slap Bass 1
56 - Trumpet
60 - French Horn
73 - Flute

0x44AE4C

24 - Acoustic Guitar Nylon
38 - Synth Bass 1

0x441A44

24 - Acoustic Guitar Nylon
35 - Fretless Bass
45 - Pizzicato Strings

0x435570

17 - Percussive Organ
36 - Slap Bass 1
56 - Trumpet

0x43CE18

01 - Bright Acoustic
35 - Fretless Bass
48 - Strings
73 - Flute

0x44C04C

24 - Acoustic Guitar Nylon
38 - Synth Bass 1

0x434F70

01 - Bright Acoustic
13 - Xylophone
38 - Synth Bass 1

0x4374E4

33 - Electric Bass Fingered
48 - Strings
60 - French Horn

0x439AE8

01 - Bright Acoustic
48 - Strings
58 - Tuba
73 - Flute

0x44CC4C

47 - Timpani
58 - Tuba
60 - French Horn

0x440244

29 - Overdriven Guitar(Wave instrument but plays sound)
38 - Synth Bass 1
56 - Trumpet

0x440844

17 - Percussive Organ
36 - Slap Bass 1
56 - Trumpet

0x441444

01 - Bright Acoustic
36 - Slap Bass 1
56 - Trumpet

0x44904C

29 - Overdriven Guitar(Used as a wave instrument here, but plays

sound)
38 - Synth Bass 1
47 - Timpani
56 - Trumpet
60 - French Horn


And there it goes. It's not complete yet, but it probably will be pretty soon.
__________________





Linkandzelda is offline   Reply With Quote
Sponsored Links
Reply

Tags
guide, hacking, music, pok?mon, pokemon, pokmon, ultimate, watarukun, [Guide]

Thread Tools
Display Modes

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
[Guide] Complete ROM Hacking Guide - Part 1: Introduction To ROM Hacking Linkandzelda Guides & Documentation 0 11th October 2012 05:24 PM


All times are GMT. The time now is 03:51 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc. User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Feedback Buttons provided by Advanced Post Thanks / Like (Lite) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Pokémon characters and images belong to Pokémon USA, Inc. and Nintendo.
Pokémon Hackers Online (PHO) is in no way affiliated with or endorsed by Nintendo LLC, Creatures, GAMEFREAK inc,
The Pokémon Company, Pokémon USA, Inc., The Pokémon Company International, or Wizards of the Coast.
All forum/site content (unless noted otherwise) and site designs are © 2006-2013 Pokémon Hackers Online (PHO).
Green Charizard Christos TreeckoLv100

"Black 2" by ARTPOP. Kyurem artwork by XOUS.

no new posts