• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Adding Songs to FireRed: A Dreadful Tutorial

12
Posts
10
Years
  • Seen May 7, 2014
Code:
Now that we've created a new copy of the song table, we have to tell the game to use it. Scroll to the top of the ROM. Now, remember the old offset of the song table? You need to convert it to a pointer. Split the number into bytes:

4A32CC -> 4A 32 CC

Reverse the order of those bytes:

CC 32 4A

Add an 08 onto the end:

CC 32 4A 08

This is the pointer to the old song table. We need to do the same conversion with the new song table's offset.

800000 -> 80 00 00 -> 00 00 80 08

Now, starting from the beginning of the ROM, search for the old song table pointer. There are five copies of it, which all need to be replaced with the pointer to the new song table.

I lost the track here.

I had overwritten the data, but how do I reverse the offset? Or where exactly do I do that?
I cant literally reverse it, and yes I am using HxD and it's my first time using this kind of stuff xD
But so far, very nice tutorial, it brought me further then I ever came.


Is this really the only way to import songtables?
Is there no easier way to import the Pokémon Ruby Songtable for example, into Fire Red (because Ruby tracks go BEEP BEEP in FR).
 
5,256
Posts
16
Years
Okay, imagine your offset is 123456. Split it up into bytes, which is just sets of two, like so:

12 34 56

Now, put these bytes in opposite order.

56 34 12

Now just add 08 at the end to make it into a pointer.

56 34 12 08

You can just do this in Notepad or something.
 
12
Posts
10
Years
  • Seen May 7, 2014
I see, but where would I paste/set the offset?
My offset/table is the same as used for the tutorial. (hacking on FR too)

My apologies for sounding vague, I am just really nuubish in this stuff yet.

Would I need this method to 'fix' the beep sounds that come with imported songs from R/S/E tracks?
 

totodile493

Person
11
Posts
13
Years
  • Seen Jan 22, 2021
Worked perfectly for one song of mine because I found a stock voice group that fit; however, in a second, more complicated song, I had to create a new voice group, and all 5 tracks work except for the third, which no matter which voice I use turns out all weird in the game. It sounds like a static-y, out-of-tune square. Shame for me, because that track contains the melody. :\

Also, when I leave the area with my custom song, the stock songs become glitched out too; parts missing, the wrong instrument, etc.

Just throwing this out there, but if anyone has any suggestions...
 
6
Posts
4
Years
  • Age 26
  • Seen May 7, 2023
I don't this thread is still active but if it is can anyone help? I followed the steps exactly but after replacing the 5 instances of the original table all music in the game is silent. The new table works just fine in Sappy and when I reverted the 5 instances of table pointers back to the original table it works again but obviously I can't expand the music if I'm using the original table. I have no clue why it won't work especially since it works just fine in Sappy. I doubt it'll help but here's the text file I was using to write notes and format the offsets.

40 56 6B 08 00 00 00 00 60 56 6B 08 01 00 01 00 8C 56 6B 08 01 00 01 00 B0 56 6B 08 01 00 01 00 F4 56 6B 08 01 00 01 00 20 57 6B 08 02 00 02 00 3C 57 6B 08 01 00 01 00 58 57 6B 08 02 00 02 00 74 57 6B 08 01 00 01 00 A8 57 6B 08 01 00 01 00 CC 57 6B 08 01 00 01 00 E8 57 6B 08 01 00 01 00 14 58 6B 08 01 00 01 00 60 58 6B 08 01 00 01 00 DC 58 6B 08 01 00 01 00 30 59 6B 08 01 00 01 00 84 59 6B 08 01 00 01 00 D4 59 6B 08 01 00 01 00 F0 59 6B 08 01 00 01 00 44 5A 6B 08 01 00 01 00 8C 5A 6B 08 01 00 01 00 B8 5A 6B 08 01 00 01 00 DC 5A 6B 08 01 00 01 00 00 5B 6B 08 01 00 01 00 84 5B 6B 08 02 00 02 00 B0 5B 6B 08 01 00 01 00 E0 5B 6B 08 01 00 01 00 60 5D 6B 08 01 00 01 00 84 5D 6B 08 01 00 01 00 A8 5D 6B 08 01 00 01 00 CC 5D 6B 08 01 00 01 00 FC 5D 6B 08 01 00 01 00 20 5E 6B 08 01 00 01 00 6C 5E 6B 08 01 00 01 00 A4 5E 6B 08 01 00 01 00 F8 5E 6B 08 01 00 01 00 34 5F 6B 08 01 00 01 00 8C 5F 6B 08 01 00 01 00 D0 5F 6B 08 02 00 02 00 0C 60 6B 08 01 00 01 00 4C 60 6B 08 01 00 01 00 78 60 6B 08 01 00 01 00 B4 60 6B 08 01 00 01 00 60 61 6B 08 01 00 01 00 D8 61 6B 08 01 00 01 00 04 62 6B 08 02 00 02 00 38 62 6B 08 01 00 01 00 64 62 6B 08 02 00 02 00 A8 62 6B 08 01 00 01 00 D4 62 6B 08 01 00 01 00 00 63 6B 08 01 00 01 00 2C 63 6B 08 01 00 01 00 58 63 6B 08 01 00 01 00 AC 63 6B 08 02 00 02 00 F0 63 6B 08 01 00 01 00 24 64 6B 08 02 00 02 00 5C 64 6B 08 02 00 02 00 94 64 6B 08 02 00 02 00 CC 64 6B 08 02 00 02 00 04 65 6B 08 02 00 02 00 3C 65 6B 08 02 00 02 00 74 65 6B 08 02 00 02 00 AC 65 6B 08 02 00 02 00 E0 65 6B 08 02 00 02 00 04 66 6B 08 02 00 02 00 50 66 6B 08 01 00 01 00 B0 66 6B 08 01 00 01 00 E4 66 6B 08 02 00 02 00 14 67 6B 08 02 00 02 00 4C 67 6B 08 02 00 02 00 90 67 6B 08 02 00 02 00 C0 67 6B 08 02 00 02 00 E8 67 6B 08 01 00 01 00 50 68 6B 08 01 00 01 00 8C 68 6B 08 03 00 03 00 CC 68 6B 08 03 00 03 00 08 69 6B 08 03 00 03 00 48 69 6B 08 03 00 03 00 84 69 6B 08 03 00 03 00 C4 69 6B 08 03 00 03 00 2C 6A 6B 08 01 00 01 00 7C 6A 6B 08 01 00 01 00 B8 6A 6B 08 01 00 01 00 E8 6A 6B 08 03 00 03 00 34 6B 6B 08 01 00 01 00 58 6B 6B 08 02 00 02 00 AC 6B 6B 08 02 00 02 00 40 6C 6B 08 01 00 01 00 7C 6C 6B 08 01 00 01 00 A0 6C 6B 08 01 00 01 00 04 6D 6B 08 01 00 01 00 6C 6D 6B 08 01 00 01 00 94 6D 6B 08 01 00 01 00 C8 6D 6B 08 01 00 01 00 F4 6D 6B 08 01 00 01 00 70 6E 6B 08 01 00 01 00 30 6F 6B 08 01 00 01 00 18 70 6B 08 01 00 01 00 30 71 6B 08 01 00 01 00 54 71 6B 08 01 00 01 00 68 72 6B 08 01 00 01 00 94 72 6B 08 01 00 01 00 C8 72 6B 08 01 00 01 00 2C 73 6B 08 01 00 01 00 94 73 6B 08 01 00 01 00 90 75 6B 08 01 00 01 00 1C 76 6B 08 01 00 01 00 6C 76 6B 08 01 00 01 00 98 76 6B 08 01 00 01 00 B8 76 6B 08 02 00 02 00 F4 76 6B 08 01 00 01 00 88 77 6B 08 02 00 02 00 F4 77 6B 08 01 00 01 00 3C 78 6B 08 01 00 01 00 00 79 6B 08 01 00 01 00 54 79 6B 08 01 00 01 00 D4 79 6B 08 01 00 01 00 0C 7A 6B 08 01 00 01 00 40 7A 6B 08 01 00 01 00 80 7A 6B 08 01 00 01 00 F8 7A 6B 08 01 00 01 00 78 7B 6B 08 01 00 01 00 D0 7B 6B 08 01 00 01 00 74 7C 6B 08 01 00 01 00 C0 7C 6B 08 01 00 01 00 3C 7D 6B 08 02 00 02 00 88 7D 6B 08 02 00 02 00 BC 7D 6B 08 01 00 01 00 08 7E 6B 08 01 00 01 00 68 7E 6B 08 01 00 01 00 B4 7E 6B 08 01 00 01 00 38 7F 6B 08 01 00 01 00 8C 7F 6B 08 01 00 01 00 58 80 6B 08 01 00 01 00 F8 80 6B 08 01 00 01 00 34 81 6B 08 01 00 01 00 80 81 6B 08 01 00 01 00 04 82 6B 08 01 00 01 00 74 82 6B 08 01 00 01 00 48 83 6B 08 01 00 01 00 EC 83 6B 08 01 00 01 00 5C 84 6B 08 01 00 01 00 D0 84 6B 08 01 00 01 00 B0 85 6B 08 02 00 02 00 EC 85 6B 08 01 00 01 00 54 86 6B 08 02 00 02 00 D0 86 6B 08 01 00 01 00 1C 87 6B 08 01 00 01 00 64 87 6B 08 01 00 01 00 CC 87 6B 08 01 00 01 00 68 88 6B 08 01 00 01 00 CC 89 6B 08 01 00 01 00 34 8A 6B 08 01 00 01 00 78 8A 6B 08 01 00 01 00 F4 8A 6B 08 01 00 01 00 60 8B 6B 08 01 00 01 00 E0 8B 6B 08 01 00 01 00 60 8C 6B 08 01 00 01 00 FC 8C 6B 08 01 00 01 00 48 8D 6B 08 01 00 01 00 88 8D 6B 08 02 00 02 00 00 8E 6B 08 01 00 01 00 3C 8E 6B 08 01 00 01 00 94 8E 6B 08 02 00 02 00 5C 8F 6B 08 01 00 01 00 50 90 6B 08 01 00 01 00 60 91 6B 08 01 00 01 00 E8 91 6B 08 01 00 01 00 30 92 6B 08 01 00 01 00 90 92 6B 08 01 00 01 00 DC 92 6B 08 01 00 01 00 64 93 6B 08 01 00 01 00 20 94 6B 08 01 00 01 00 78 94 6B 08 01 00 01 00 F4 94 6B 08 01 00 01 00 BC 95 6B 08 01 00 01 00 78 96 6B 08 01 00 01 00 64 97 6B 08 01 00 01 00 A4 97 6B 08 01 00 01 00 00 98 6B 08 01 00 01 00 38 98 6B 08 01 00 01 00 EC 98 6B 08 01 00 01 00 8C 99 6B 08 01 00 01 00 F4 99 6B 08 01 00 01 00 18 9B 6B 08 01 00 01 00 94 9B 6B 08 01 00 01 00 F0 9B 6B 08 01 00 01 00 28 9C 6B 08 01 00 01 00 78 9C 6B 08 01 00 01 00 04 9D 6B 08 01 00 01 00 68 9D 6B 08 01 00 01 00 E0 9D 6B 08 01 00 01 00 48 9E 6B 08 01 00 01 00 9C 9F 6B 08 01 00 01 00 70 A0 6B 08 02 00 02 00 80 A1 6B 08 01 00 01 00 64 A2 6B 08 01 00 01 00 44 A3 6B 08 01 00 01 00 90 A3 6B 08 01 00 01 00 1C A4 6B 08 01 00 01 00 AC A5 6B 08 01 00 01 00 4C A7 6B 08 01 00 01 00 BC A7 6B 08 02 00 02 00 0C A8 6B 08 01 00 01 00 30 A9 6B 08 01 00 01 00 B0 A9 6B 08 01 00 01 00 A0 AA 6B 08 01 00 01 00 04 AB 6B 08 01 00 01 00 60 AB 6B 08 01 00 01 00 14 AC 6B 08 01 00 01 00 10 AE 6B 08 01 00 01 00 30 AF 6B 08 01 00 01 00 A0 B0 6B 08 01 00 01 00 10 B1 6B 08 01 00 01 00 A8 B1 6B 08 01 00 01 00 E0 B1 6B 08 01 00 01 00 B8 B2 6B 08 02 00 02 00 90 B3 6B 08 01 00 01 00 3C B4 6B 08 01 00 01 00 D4 B4 6B 08 01 00 01 00 6C B5 6B 08 01 00 01 00 14 B6 6B 08 01 00 01 00 60 B6 6B 08 01 00 01 00 5C B7 6B 08 01 00 01 00 F0 B7 6B 08 01 00 01 00 54 B8 6B 08 01 00 01 00 F0 B8 6B 08 01 00 01 00 F8 BA 6B 08 02 00 02 00 F4 BB 6B 08 02 00 02 00 E4 BC 6B 08 01 00 01 00 68 BD 6B 08 01 00 01 00 DC BD 6B 08 02 00 02 00 5C BF 6B 08 01 00 01 00 60 C0 6B 08 01 00 01 00 C0 C0 6B 08 01 00 01 00 30 C1 6B 08 01 00 01 00 4C C2 6B 08 02 00 02 00 F0 C2 6B 08 01 00 01 00 60 C4 6B 08 01 00 01 00 94 C5 6B 08 01 00 01 00 18 C6 6B 08 01 00 01 00 70 C6 6B 08 01 00 01 00 A0 C6 6B 08 01 00 01 00 D8 C6 6B 08 01 00 01 00 64 C7 6B 08 01 00 01 00 9C C7 6B 08 01 00 01 00 E0 C7 6B 08 01 00 01 00 20 C8 6B 08 01 00 01 00 48 C8 6B 08 01 00 01 00 00 C9 6B 08 01 00 01 00 74 C9 6B 08 01 00 01 00 E0 C9 6B 08 01 00 01 00 28 CA 6B 08 01 00 01 00 08 CB 6B 08 01 00 01 00 C8 CB 6B 08 01 00 01 00 FC CB 6B 08 01 00 01 00 B8 CC 6B 08 02 00 02 00 98 CD 6B 08 02 00 02 00 E4 CE 6B 08 02 00 02 00 80 D0 6B 08 02 00 02 00 58 D3 6B 08 02 00 02 00 E4 D4 6B 08 02 00 02 00 BC D5 6B 08 02 00 02 00 28 D6 6B 08 02 00 02 00 98 DB 6B 08 00 00 00 00 C8 88 38 08 00 00 00 00 0C E6 38 08 00 00 00 00 C0 FD 6B 08 00 00 00 00 E0 FF 6B 08 02 00 02 00 20 01 6C 08 02 00 02 00 04 02 6C 08 02 00 02 00 FC 02 6C 08 02 00 02 00 E4 07 6C 08 00 00 00 00 20 17 6C 08 00 00 00 00 44 33 6C 08 00 00 00 00 50 3D 6C 08 00 00 00 00 E8 3F 6C 08 02 00 02 00 E8 4A 6C 08 00 00 00 00 5C 5B 6C 08 00 00 00 00 30 6A 6C 08 00 00 00 00 6C E7 38 08 00 00 00 00 B0 77 6C 08 00 00 00 00 C4 83 6C 08 00 00 00 00 84 87 6C 08 00 00 00 00 3C 8B 6C 08 00 00 00 00 E4 8F 6C 08 00 00 00 00 A0 9A 6C 08 00 00 00 00 B8 AC 6C 08 00 00 00 00 08 C1 6C 08 00 00 00 00 44 D3 6C 08 00 00 00 00 54 13 6D 08 00 00 00 00 DC 1D 6D 08 00 00 00 00 4C 26 6D 08 00 00 00 00 88 35 6D 08 00 00 00 00 FC 42 6D 08 00 00 00 00 3C 50 6D 08 00 00 00 00 20 6B 6D 08 00 00 00 00 94 96 6D 08 00 00 00 00 10 A8 6D 08 00 00 00 00 E0 CF 6D 08 00 00 00 00 60 28 36 08 00 00 00 00 E0 DF 6D 08 00 00 00 00 6C E9 6D 08 00 00 00 00 5C 66 38 08 00 00 00 00 70 06 6E 08 00 00 00 00 E8 0F 6E 08 00 00 00 00 B4 18 6E 08 00 00 00 00 A8 2F 6E 08 00 00 00 00 E4 39 6E 08 00 00 00 00 64 45 6E 08 00 00 00 00 E4 56 6E 08 00 00 00 00 1C 5C 6E 08 00 00 00 00 0C 6B 6E 08 00 00 00 00 20 79 6E 08 00 00 00 00 10 88 6E 08 00 00 00 00 4C 90 6E 08 00 00 00 00 20 98 6E 08 00 00 00 00 20 9A 6E 08 02 00 02 00 20 9C 6E 08 02 00 02 00 90 9F 6E 08 02 00 02 00 00 A1 6E 08 02 00 02 00 04 AA 6E 08 00 00 00 00 3C AE 6E 08 00 00 00 00 C8 AE 6E 08 00 00 00 00 98 B0 6E 08 00 00 00 00 54 B1 6E 08 00 00 00 00 C8 C0 6E 08 00 00 00 00 44 D0 6E 08 00 00 00 00 A0 DA 6E 08 00 00 00 00 20 DF 6E 08 00 00 00 00 4C EE 6E 08 00 00 00 00 50 02 6F 08 00 00 00 00 40 07 6F 08 00 00 00 00 00 16 6F 08 00 00 00 00 1C 28 6F 08 00 00 00 00 10 37 6F 08 00 00 00 00 38 47 6F 08 00 00 00 00 68 56 6F 08 00 00 00 00 2C 58 6F 08 02 00 02 00 B4 79 6F 08 00 00 00 00 2C 8B 6F 08 00 00 00 00 E4 9D 6F 08 00 00 00 00 28 A2 6F 08 00 00 00 00 70 AB 6F 08 00 00 00 00 70 B5 6F 08 00 00 00 00 B0 BD 6F 08 00 00 00 00 8C BE 6F 08 00 00 00 00 00 00 00 00


CC 32 4A 08 - the original table

83 40 D7 - my offset
D7 40 83 08 - my offset formatted
 
Back
Top