Welcome to the PokéCommunity!

Hi there! Thanks for visiting PokéCommunity. We’re a group of Pokémon fans dedicated to providing the best place on the Internet for discussing ideas and sharing fan-made content. Welcome! We’re glad you’re here.

In order to join our community we need you to create an account with us. Doing so will allow you to make posts, submit and view fan art and fan fiction, download fan-made games, and much more. It’s quick and easy; just click here and follow the instructions.

In Fire Red, you will surely have noticed, that apart from a few specific classes (Champion, Leader and Elite 4) there is absolutely no class based music for the trainer battles. Generally speaking, that is fine, since you don't want the average Youngsters etc to have special battle music, but what about Team Rocket? Shouldn't they have a special battle theme?

What?!

You can't do that with Fire Red?!

I beg to differ! Follow this tutorial, and we'll have class based music in no time!

So, firstly, assemble and insert this routine, and note down the location of your insert.

Now, navigate to 0x43FF2 and change the code to 01 48 00 47 00 00 XX XX XX 08, where the XX's stand for your reversed pointer to the ASM you just inserted, plus 1 for THUMB mode, of course.

Now, we're still not done, of course, so return to the location of the inserted ASM.

Now, we must create a table which contains definitions for the class based music. This allows you to define as many EXTRA classes as you want, but you CANNOT change the music assigned to the Champion/Elite 4/Gym Leaders using this.

So, in some aligned free space, create a table in this format:

[Trainer Class - Byte][00 - Byte][Song to play - Half-Word]

So, for example, I wanted the Team Rocket class to have track 0x130, I would put the following set of bytes into the table:

Code:

55 00 30 01

You must do this for every class you wish to have custom music.

When you're done with this, place:

FE FE 00 00 at the end of the table, so in my example, it would be:

Code:

55 00 30 01 FE FE 00 00

Easy, huh? Note down the location of this table and navigate to The ASM's insert location + 0xC0. Change the pointer here (should be FD FD FD 08) to point to the table you just created, NOT plus one.

Now, for anyone who knows ASM, or is eagle eyed, you will have noticed it also contains a variable check. This variable check allows you to have regional music!

Now, to create a set of regional music, navigate to some aligned free space, and start by putting the following set of values in:

Code:

2A 01 54 01 29 01 28 01 2B 01

You may recognise these as the existing battle theme track numbers. If you don't intend to use regional music, you can move on from here straight to the changing the pointer later on.

However, if you want regional music, you should follow the existing values with this format:

If you want any tracks to use the same values as their "normal" versions, you must set them to the same value. Eg, I want tracks 0x10A (wild), 0x140 (double wild), 0x109 (trainer), 0x154 (gym) but want to keep the Champion battle as 0x12B, then I would add the following values:

Code:

0A 01 40 01 09 01 54 01 2B 01

When you're done adding new values, note down the start location of this table, and then navigate to the start of the ASM + 0xC4. The pointer here should be FE FE FE 08. Now you must change it to point to the new regional table you just created.

Once you have done this, you are done!

In terms of in game use, you don't have to do anything to get the class based music, it will immediately start working. For the regional music, you must set variable number 0x40F6 to the set of regional music you want to use.

That is, for the "normal" set, set the variable to 0, and for any additional sets, set it to the correct number to pick that set. Everything else is handled in the background.

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

You've not set up the regional part of the hack. Even of you don't intend to use the regional music, you must still set up the "normal" set of music. You also screwed up your pointer to the class music, it points to 0x800D0 instead of 0x8000D0, like it should.

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Oh thanks i didn't get i had to do that too even if i don't use it :< (the FEFEFE08 bytes still confused me :o ) but even with the pointers changed to D0 00 80 08 and 00 01 80 08 and
0A 01 40 01 09 01 54 01 2B 01 inserted at 0x800100 the game still freezes right at the intro :< (not even the game-freak-logo anymore :o ) while it already plays the screen-fading before a battle and freezes afterwards and not before :) Oh and a-map can't open any maps in the rom anymore :O Sorry for bothering again :(

Oh thanks i didn't get i had to do that too even if i don't use it :< (the FEFEFE08 bytes still confused me :o ) but even with the pointers changed to D0 00 80 08 and 00 01 80 08 and
0A 01 40 01 09 01 54 01 2B 01 inserted at 0x800100 the game still freezes right at the intro :< (not even the game-freak-logo anymore :o ) while it already plays the screen-fading before a battle and freezes afterwards and not before Oh and a-map can't open any maps in the rom anymore :O Sorry for bothering again

I don't know what the second half of that post actually means, as to the title screen freezing (or earlier) that could only happen if there's some sort of conflict with another existing hack, or if you screwed up somewhere, since this is the same code that runs in LC (and runs fine, I may add).

__________________

Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!

Turns out I was just VEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEERY bad at hex editing sorry :( But well as everything is fine now (and team rocket finally has their own battle theme) i noticed that trainer, gym and champ-battles are silent now (but wild battles still do and i can change their theme with the regional table). Is it possible that this happens due to me not having any wild double battles? :(

EDIT.: fixed it.
and the byte responsible for the wild double battle changes the rivals battle theme for me o.O

I tried it for a german Firred ROM, and found all the ROM Offsets i need, but somehow it doesnt work for me. All Trainerbattle are muted now and every time i walk in a wildbattle, game freezes isntantly. I guess its because of the RAM-Offsets, wich may be different in FRE and FRD.
But how can i find those?

Oh thanks i didn't get i had to do that too even if i don't use it :< (the FEFEFE08 bytes still confused me :o ) but even with the pointers changed to D0 00 80 08 and 00 01 80 08 and
0A 01 40 01 09 01 54 01 2B 01 inserted at 0x800100 the game still freezes right at the intro :< (not even the game-freak-logo anymore :o ) while it already plays the screen-fading before a battle and freezes afterwards and not before Oh and a-map can't open any maps in the rom anymore :O Sorry for bothering again

There thing freezes your TitleScreen/Intro is so simple that I am considuring that to "funny". Make sure you're on Overwrite mode on your Hex Editor, NEVER insert! (That's what jambo told me hihi). Second, while pasting the ASM code into the ROM, make sure you don't press CTRL+V to paste. NEVER! It is "Paste Insert". Use CTRL+B. It's Paste Overwrite. Well, I'd like to hear if it worked or not

Yea, sure there is, because I created it . Of course Jambo gave me permission for making that, if he wouldn't give me, I will never do a tutorial on this. It just follows the original tutorial (this) to help people that don't know how to ASM.

In Fire Red, you will surely have noticed, that apart from a few specific classes (Champion, Leader and Elite 4) there is absolutely no class based music for the trainer battles. Generally speaking, that is fine, since you don't want the average Youngsters etc to have special battle music, but what about Team Rocket? Shouldn't they have a special battle theme?

What?!

You can't do that with Fire Red?!

I beg to differ! Follow this tutorial, and we'll have class based music in no time!

So, firstly, assemble and insert this routine, and note down the location of your insert.

Now, navigate to 0x43FF2 and change the code to 01 48 00 47 00 00 XX XX XX 08, where the XX's stand for your reversed pointer to the ASM you just inserted, plus 1 for THUMB mode, of course.

Now, we're still not done, of course, so return to the location of the inserted ASM.

Now, we must create a table which contains definitions for the class based music. This allows you to define as many EXTRA classes as you want, but you CANNOT change the music assigned to the Champion/Elite 4/Gym Leaders using this.

So, in some aligned free space, create a table in this format:

[Trainer Class - Byte][00 - Byte][Song to play - Half-Word]

So, for example, I wanted the Team Rocket class to have track 0x130, I would put the following set of bytes into the table:

Code:

55 00 30 01

You must do this for every class you wish to have custom music.

When you're done with this, place:

FE FE 00 00 at the end of the table, so in my example, it would be:

Code:

55 00 30 01 FE FE 00 00

Easy, huh? Note down the location of this table and navigate to The ASM's insert location + 0xC0. Change the pointer here (should be FD FD FD 08) to point to the table you just created, NOT plus one.

Now, for anyone who knows ASM, or is eagle eyed, you will have noticed it also contains a variable check. This variable check allows you to have regional music!

Now, to create a set of regional music, navigate to some aligned free space, and start by putting the following set of values in:

Code:

2A 01 54 01 29 01 28 01 2B 01

You may recognise these as the existing battle theme track numbers. If you don't intend to use regional music, you can move on from here straight to the changing the pointer later on.

However, if you want regional music, you should follow the existing values with this format:

If you want any tracks to use the same values as their "normal" versions, you must set them to the same value. Eg, I want tracks 0x10A (wild), 0x140 (double wild), 0x109 (trainer), 0x154 (gym) but want to keep the Champion battle as 0x12B, then I would add the following values:

Code:

0A 01 40 01 09 01 54 01 2B 01

When you're done adding new values, note down the start location of this table, and then navigate to the start of the ASM + 0xC4. The pointer here should be FE FE FE 08. Now you must change it to point to the new regional table you just created.

Once you have done this, you are done!

In terms of in game use, you don't have to do anything to get the class based music, it will immediately start working. For the regional music, you must set variable number 0x40F6 to the set of regional music you want to use.

That is, for the "normal" set, set the variable to 0, and for any additional sets, set it to the correct number to pick that set. Everything else is handled in the background.

Hi sir Jambo I am Alex and this is my first blog to pokecommunity.I was wondering if you could help me out with my hack on pokemon fire red as I also checked the video of youtube but still am having problem.I want to put the CHAMPION class battle music on PKMN TRAINER class music.I also donot have the trainer editor that you created that can tell you the number of the player classes.I need your help.I can give you my hacked file of fire red so can you do me this favour or if you cannot then can you give me the trainer class editor that you created please no mediafire link because it keeps on giving the captchas.Thanks.by Alex form Alexalphaworld.blogspot.com

Hi sir Jambo I am Alex and this is my first blog to pokecommunity.I was wondering if you could help me out with my hack on pokemon fire red as I also checked the video of youtube but still am having problem.I want to put the CHAMPION class battle music on PKMN TRAINER class music.I also donot have the trainer editor that you created that can tell you the number of the player classes.I need your help.I can give you my hacked file of fire red so can you do me this favour or if you cannot then can you give me the trainer class editor that you created please no mediafire link because it keeps on giving the captchas.Thanks.by Alex form Alexalphaworld.blogspot.com

I don't know what the second half of that post actually means, as to the title screen freezing (or earlier) that could only happen if there's some sort of conflict with another existing hack, or if you screwed up somewhere, since this is the same code that runs in LC (and runs fine, I may add).

Touched wrote an asm routine for me that lets you play custom victory music for a Trainer based on its class, mimicking the format of Jambo's routine here. I'm posting it here because he's too lazy to do it. =P

The PokéCommunity

Meta

Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, or The Pokémon Company International. We just love Pokémon.