• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • 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

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).
 
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?
 
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...
 
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