Advertiser Content

Skeli-

Lord of the Rings

Age 21
Male
Canada
Seen 54 Minutes Ago
Posted 2 Weeks Ago
245 posts
5.9 Years
Introduction

Hello everyone! This is my first tutorial so I hope it's easy to understand.
I'm writing this tutorial based on another thread I read the other day by ipatix for his High Quality Sound Mixer. It didn't seem so clear to me as it was meant to be a development post rather than a tutorial, so I thought I'd make it easier for everyone in the future.

PLEASE NOTE: The offsets provided in this tutorial, only apply to an English Fire Red (BPRE). If you want offsets for an English or German Fire Red, Leaf Green, or Emerald, they are all in the original post.

WARNING: If you assemble this code, be aware that any previously saved states will no longer be openable in your Rom. Only in-game saves will be still be functionable.

Also make sure to disable the help menu by changing the button mode from 'help' to to 'LR' in the options, or the game will freeze. Another way to do this is by placing 1D E0 at 0x13B8C2.


I'm not allowed to post an actual link yet, but you can follow this to the original thread by ipatix: pokecommunity.com/showthread.php?t=324673

Requirements
You will need the following:
- A Hex Editor (preferably HxD)
- Visual Boy Advance
- A Basic Understanding of Hex Editing

Actual Tutorial

Step 1:
Spoiler:
The first thing you need to do is do a paste write (not paste insert) of the following code into your Rom at any offset with 0xB24 (2852 in decimal) free bytes:
43 79 9B 08 40 D0 01 A1 08 47 C0 46 02 00 54 E3 35 7E 80 02 08 70 85 10 08 40 A0 E1 03 38 83 E1 00 41 2D E9 60 E1 9F E5 D6 00 95 E1 D1 10 D5 E0 D6 20 97 E1 D1 80 D7 E0 D6 90 95 E1 D1 A0 D5 E0 D6 B0 97 E1 D1 C0 D7 E0 01 00 80 E0 02 00 80 E0 08 00 90 E0 04 00 80 42 0A 10 89 E0 0B 10 81 E0 0C 10 91 E0 04 10 81 42 93 00 00 E0 93 01 01 E0 03 00 AE E8 02 40 54 E2 EA FF FF CA 00 41 BD E8 27 00 8F E2 10 FF 2F E1 40 4B 41 46 00 24 00 25 00 26 00 27 C9 08 00 D3 F0 C3 49 08 01 D3 F0 C3 F0 C3 F0 C3 F0 C3 F0 C3 F0 C3 01 39 F9 DC 44 46 37 A0 04 60 06 9C A0 69 84 46 A0 79 50 34 01 90 63 6A 26 78 C7 20 30 42 1D D0 70 06 12 D3 18 D4 03 26 18 1C 10 30 A1 69 40 18 A0 62 D8 68 40 1A A0 61 00 25 65 72 E5 61 DA 78 90 09 2A D0 10 20 06 43 27 E0 65 7A 70 07 06 D5 60 7B 01 38 60 73 27 D8 00 20 20 70 89 E2 70 06 0C D5 E0 79 45 43 2D 0A 02 D0 20 7B 85 42 1B D8 25 7B 00 2D F0 D0 04 20 06 43 14 E0 03 22 32 40 02 2A 08 D1 60 79 45 43 2D 0A A0 79 85 42 0B D8 05 1C ED D0 06 E0 03 2A 06 D1 20 79 2D 18 FF 2D 01 D3 FF 25 01 3E 26 70 65 72 06 98 C0 79 01 30 45 43 E0 78 68 43 40 0B 82 46 A0 78 68 43 40 0B 83 46 10 20 30 40 04 D0 08 33 03 CB C3 18 03 93 08 1A 04 90 03 4D A2 69 A3 6A 60 78 03 A1 08 47 C0 46 E0 28 00 03 FF FF FF FF 0C 80 1F E5 0B B8 9A E1 1C 01 00 0A 08 00 10 E3 E4 00 00 1A 30 00 10 E3 B8 01 00 1A 10 12 2D E9 02 20 B0 E1 40 00 80 03 01 00 C4 05 1C 40 84 E2 80 40 94 E8 9C 0E 04 E0 D1 60 D3 E0 D0 C0 D3 E1 40 00 10 E3 40 01 00 1A 06 C0 4C E0 AB B0 B0 E1 02 B9 AB E2 FF BC CB E3 07 10 A0 E1 94 18 A0 E0 A1 1B A0 E1 80 04 81 E1 00 00 52 E1 97 00 00 DA 00 20 42 E0 04 A2 9F E5 00 A0 8A E0 0D 00 5A E1 00 A0 83 E0 7A 9F 8F E2 04 24 89 E8 01 0B 50 33 0D 00 00 2A 03 10 C3 E3 01 93 A0 E3 D4 90 89 E2 07 00 80 E2 20 01 A0 E1 00 D1 4D E0 03 30 03 E2 0D 30 83 E0 21 E3 80 E3 02 60 89 E8 00 00 A0 E3 00 10 A0 E1 01 20 A0 E1 07 00 89 E8 02 45 54 E2 8B B0 A0 51 6B 0F 8F E2 18 00 80 52 02 45 54 52 18 00 80 52 02 45 84 52 94 21 9F E5 02 00 50 E1 0D 00 00 0A 88 01 8F E5 07 07 90 E8 34 E0 8F E2 03 00 8E E8 98 E0 8E E2 03 00 8E E8 8C E0 4E E2 04 07 8E E8 98 E0 8E E2 04 07 8E E8 80 E0 4E E2 01 51 95 E2 F5 FF FF 3A 34 81 1F E5 FF 24 A0 E3 03 44 95 E8 97 0C 09 E0 00 00 A0 E1 00 00 A0 E1 9B 09 20 10 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 C2 70 C7 E1 97 0C 09 10 00 00 A0 E1 00 00 A0 E1 9B 19 21 10 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 C2 70 C7 E1 97 0C 09 10 00 00 A0 E1 00 00 A0 E1 9B A9 2A 10 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 C2 70 C7 E1 97 0C 09 10 00 00 A0 E1 00 00 A0 E1 9B E9 2E 10 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 C2 70 C7 E1 03 44 A5 E8 03 44 95 E8 97 0C 09 10 00 00 A0 E1 00 00 A0 E1 9B 09 20 10 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 C2 70 C7 E1 97 0C 09 10 00 00 A0 E1 00 00 A0 E1 9B 19 21 10 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 C2 70 C7 E1 97 0C 09 10 00 00 A0 E1 00 00 A0 E1 9B A9 2A 10 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 C2 70 C7 E1 97 0C 09 10 00 00 A0 E1 00 00 A0 E1 9B E9 2E 10 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 00 00 A0 E1 C2 70 C7 E1 03 44 A5 E8 08 80 58 E2 B1 FF FF CA 04 C0 8F E2 0C 20 9C E8 2A 00 00 EA 00 00 00 00 00 00 00 00 00 00 00 00 10 79 00 03 00 00 00 00 49 9B A0 E1 86 90 99 E0 04 70 97 E0 06 60 8C 50 D1 C0 F3 51 06 C0 5C 50 C9 9B 96 E0 06 60 8C E0 04 70 97 E0 D1 60 F3 51 D1 C0 F3 E1 06 C0 5C E0 C9 9B 96 E0 04 70 87 E0 A7 3B 83 E0 D0 60 D3 E1 D1 C0 F3 E1 06 C0 5C E0 08 51 85 E0 97 0C 09 E0 49 9B A0 E1 86 90 99 E0 08 01 15 17 9B 09 20 10 08 01 05 17 04 70 87 E0 A7 9B B0 E1 07 00 00 0A A7 2B 52 E0 0B 00 00 DB 01 90 59 E2 06 60 8C 00 D9 60 B3 11 D1 C0 F3 E1 06 C0 4C E0 FE 75 C7 E3 01 80 58 E2 EC FF FF CA 01 30 43 E2 10 12 BD E8 1C 70 84 E5 51 00 00 EA 18 30 8D E2 48 00 93 E8 00 00 56 E3 00 90 62 12 02 20 86 10 08 F0 8E 12 10 12 BD E8 04 00 00 EA 18 20 9D E5 02 60 B0 E1 14 30 9D 15 1E FF 2F 11 10 02 BD E8 00 60 C4 E5 44 00 00 EA 0A 6C B0 E1 46 6C B0 E1 0A 68 B0 E1 46 6C B0 E1 0A 64 B0 E1 46 6C B0 E1 4A 6C B0 E1 00 04 B3 E8 0A 6C B0 E1 46 6C B0 E1 0A 68 B0 E1 46 6C B0 E1 0A 64 B0 E1 46 6C B0 E1 10 12 BD E8 10 02 2D E9 02 E0 A0 E1 08 00 52 E1 08 E0 A0 C1 01 E0 4E E2 2E E1 B0 E1 20 00 00 0A 0E 81 48 E0 0E 21 42 E0 34 10 8F E2 6C 00 4F E2 03 9F A0 E1 A9 0D 80 E0 C0 06 B0 E8 C0 00 81 E8 0C 10 81 E2 00 06 81 E8 0C 10 81 E2 C0 06 90 E8 C0 00 81 E8 0C 10 81 E2 00 06 81 E8 00 04 B3 E8 83 02 95 E8 00 00 A0 E1 00 00 A0 E1 9B 06 20 10 00 00 A0 E1 00 00 A0 E1 9B 16 21 10 00 00 A0 E1 00 00 A0 E1 9B 76 27 10 00 00 A0 E1 00 00 A0 E1 9B 96 29 10 83 02 A5 E8 01 E0 5E E2 EF FF FF 1A 04 30 43 E2 04 10 A0 E3 00 00 95 E5 D1 60 D3 E0 9B 06 20 E0 04 00 85 E4 01 20 52 E2 BA FF FF 0B 01 10 51 E2 F7 FF FF CA 04 80 58 E2 CD FF FF CA 10 02 BD E8 18 20 84 E5 28 30 84 E5 01 00 8F E2 10 FF 2F E1 01 98 01 38 01 DD 40 34 4B E5 07 A0 00 47 06 98 04 4B 03 60 07 B0 FF BC 80 46 89 46 92 46 9B 46 08 BC 18 47 53 6D 73 68 C0 A4 1F E5 08 90 9D E5 C4 84 1F E5 FF B0 A0 E3 00 C0 E0 E3 0C C7 A0 E1 63 7E A0 E3 F2 20 DA E0 F2 00 DA E0 F2 30 DA E0 F2 10 DA E0 01 09 50 E3 FE 0D A0 A3 01 09 70 E3 0C 00 A0 B1 01 09 51 E3 FE 1D A0 A3 01 09 71 E3 0C 10 A0 B1 01 09 52 E3 FE 2D A0 A3 01 09 72 E3 0C 20 A0 B1 01 09 53 E3 FE 3D A0 A3 01 09 73 E3 0C 30 A0 B1 C0 03 0B E0 C1 13 0B E0 C2 23 0B E0 C3 33 0B E0 03 24 82 E1 01 04 80 E1 B7 20 89 E1 B2 00 C9 E0 02 80 58 E2 E1 FF FF CA B5 00 4F E2 10 FF 2F E1 00 00 5C E3 30 00 00 1A 02 60 D3 E5 06 2C 82 E0 04 60 D3 E5 06 6C 92 E0 06 60 E0 41 26 A4 A0 E1 03 10 D3 E5 01 00 D3 E5 00 0C A0 E1 9A 01 26 E0 0C 12 2D E9 0F 56 95 E8 06 00 57 E1 0B 03 80 30 0B 03 40 20 84 71 97 E0 06 00 57 E1 0B 13 81 30 0B 13 41 20 84 71 97 E0 06 00 57 E1 0B 23 82 30 0B 23 42 20 84 71 97 E0 06 00 57 E1 0B 33 83 30 0B 33 43 20 84 71 97 E0 06 00 57 E1 0B 93 89 30 0B 93 49 20 84 71 97 E0 06 00 57 E1 0B A3 8A 30 0B A3 4A 20 84 71 97 E0 06 00 57 E1 0B C3 8C 30 0B C3 4C 20 84 71 97 E0 06 00 57 E1 0B E3 8E 30 0B E3 4E 20 84 71 97 E0 0F 56 A5 E8 08 80 58 E2 DB FF FF CA 0C 12 BD E8 41 FF FF EA 01 C0 5C E2 20 00 00 1A 03 6C A0 E3 AB B0 A0 E1 FF BC CB E3 70 C0 A0 E3 03 44 95 E8 84 71 97 E0 27 9C 6C E0 87 60 A0 E1 A6 9D 49 E0 C2 20 99 E0 9B 02 20 10 84 71 97 E0 27 9C 6C E0 87 60 A0 E1 A6 9D 49 E0 C2 20 99 E0 9B 12 21 10 84 71 97 E0 27 9C 6C E0 87 60 A0 E1 A6 9D 49 E0 C2 20 99 E0 9B A2 2A 10 84 71 97 E0 27 9C 6C E0 87 60 A0 E1 A6 9D 49 E0 C2 20 99 E0 9B E2 2E 10 03 44 A5 E8 04 80 58 E2 E3 FF FF CA 1E FF FF EA 80 60 A0 E3 06 CD A0 E3 03 44 95 E8 84 71 97 E0 C7 9B 66 50 A7 9B 4C 40 9B 09 20 E0 84 71 97 E0 C7 9B 66 50 A7 9B 4C 40 9B 19 21 E0 84 71 97 E0 C7 9B 66 50 A7 9B 4C 40 9B A9 2A E0 84 71 97 E0 C7 9B 66 50 A7 9B 4C 40 9B E9 2E E0 03 44 A5 E8 04 80 58 E2 EB FF FF CA 07 FF FF EA 24 60 94 E5 00 00 D4 E5 20 00 10 E3 0F 00 00 1A 20 00 80 E3 00 00 C4 E5 01 00 D4 E5 10 00 10 E3 04 00 00 0A 0C 10 96 E5 86 10 81 E0 20 10 81 E2 03 30 41 E0 28 30 84 E5 B0 00 D6 E1 00 00 50 E3 02 00 00 0A 06 30 43 E0 10 30 43 E2 28 30 84 E5 10 12 2D E9 AB B0 B0 E1 02 B9 AB E2 FF BC CB E3 1C 70 94 E5 20 10 94 E5 01 00 D4 E5 08 00 10 E3 02 15 A0 13 9C 01 01 00 08 51 85 E0 B0 00 D6 E1 00 00 50 E3 40 00 00 0A FF 04 A0 E3 3C 00 84 E5 01 00 D4 E5 10 00 10 E3 1C 00 00 1A 55 00 00 EB 0C 60 A0 E1 01 30 83 E2 52 00 00 EB 06 C0 4C E0 97 0C 09 E0 49 9B A0 E1 86 90 99 E0 08 01 15 17 9B 09 20 10 08 01 05 17 01 70 87 E0 A7 9B B0 E1 0B 00 00 0A A7 2B 52 E0 D4 FE FF DB 01 90 59 E2 06 60 8C 00 02 00 00 0A 09 30 83 E0 41 00 00 EB 0C 60 A0 E1 01 30 83 E2 3E 00 00 EB 06 C0 4C E0 FE 75 C7 E3 01 80 58 E2 E8 FF FF CA C3 FE FF EA 01 30 43 E2 37 00 00 EB 0C 60 A0 E1 01 30 43 E2 34 00 00 EB 06 C0 4C E0 97 0C 09 E0 49 9B A0 E1 86 90 99 E0 08 01 15 17 9B 09 20 10 08 01 05 17 01 70 87 E0 A7 9B B0 E1 0B 00 00 0A A7 2B 52 E0 B6 FE FF DB 01 90 59 E2 06 60 8C 00 02 00 00 0A 09 30 43 E0 23 00 00 EB 0C 60 A0 E1 01 30 43 E2 20 00 00 EB 06 C0 4C E0 FE 75 C7 E3 01 80 58 E2 E8 FF FF CA 03 30 83 E2 A4 FE FF EA 01 00 D4 E5 10 00 10 E3 A1 FE FF 0A D1 60 73 E1 D1 C0 53 E1 06 C0 4C E0 97 0C 09 E0 49 9B A0 E1 86 90 99 E0 08 01 15 17 9B 09 20 10 08 01 05 17 01 70 87 E0 A7 9B B0 E1 07 00 00 0A A7 2B 52 E0 97 FE FF DB 09 90 B0 E1 06 60 8C 00 D9 60 33 11 D1 C0 53 E1 06 C0 4C E0 FE 75 C7 E3 01 80 58 E2 EC FF FF CA 02 30 83 E2 89 FE FF EA E5 40 2D E9 23 03 A0 E1 3C C0 94 E5 0C 00 50 E1 17 00 00 0A 3C 00 84 E5 21 C0 A0 E3 9C 00 02 E0 24 C0 94 E5 0C 20 82 E0 10 20 82 E2 50 50 9F E5 50 60 8F E2 40 70 A0 E3 01 E0 D2 E4 01 E0 C5 E4 01 C0 D2 E4 04 00 00 EA 01 C0 D2 E4 2C 02 A0 E1 D0 00 96 E1 00 E0 8E E0 01 E0 C5 E4 0F 00 0C E2 D0 00 96 E1 00 E0 8E E0 01 E0 C5 E4 02 70 57 E2 F4 FF FF CA 08 50 9F E5 3F 00 03 E2 D0 C0 95 E1 E5 80 BD E8 88 20 00 03 00 01 04 09 10 19 24 31 C0 CF DC E7 F0 F7 FC FF
Hang onto this code because you're going to need it again soon.


Step 2:
Spoiler:
Once the code is inserted into the ROM, go to the offset, 0x1DD0B4 and replace the code there. Initially it should be:
A5 C0 1D 08
. Replace this with a pointer +1 to where you inserted the code from step 1. So if you inserted the code at 0x770000, then your pointer would look like this:
01 00 77 08
.


Step 3:
Spoiler:
Go to the offset 0x7B4. The current code there should be:
50 5F 00 03
This is a pointer to our old sound area. But we need to repoint it. So replace the code with:
00 E0 03 02
Notice how the pointer here is 02 and not the usual 08. This is because we're dealing with the RAM.

Now do this repointing also at the offset 0x1DD0C0 by replacing the code there also with:
00 E0 03 02
The sound area has now been successfully repointed.


Step 4:
Spoiler:
Go to the offset 0x1DD0B8. The current code there should be:
E0 28 00 03
This is a pointer to our old sound mixer. But we need to repoint it to our new mixer. So replace the code with:
50 5F 00 03
Now go to the offset 0x1DC094. The current code there should be:
E1 28 00 03
This is a pointer +1 to our old sound mixer. But we need to repoint it to our new mixer +1. So replace the code with:
51 5F 00 03
Our new sound mixer has now been successfully repointed.
It's time for the final step now.


Step 5:
Spoiler:
Go to the offset 0x1DD0BC. The current code there should be:
00 02
This needs to be changed to:
C9 02
And that's it!


If you followed all these steps correctly, any new music you import into your Rom should be much higher quality with a lot less background noise (unless I made a mistake somewhere in the tutorial and then your Rom either won't open at all, or won't play music).

Again, I take zero credit for any of this. It all goes to ipatix for his amazing ASM code which I just assembled and put in step 1.

I hope this was useful and easy to understand!
Please let me know if there is anything I can improve on for next time.
Pokemon Unbound

Diegoisawesome

Oh god the bees

Age 23
Male
Somewhere the rains of Africa can be blessed
Seen 6 Days Ago
Posted December 7th, 2019
1,059 posts
12.2 Years
Hey, just wanted to let you know that a bunch of this tutorial is superfluous. You can't insert anything permanent in the memory editor, it'll get cleared once VBA closes. Not sure about how the rest of the tutorial is because I don't personally need this myself but I just thought I should let you know.

Skeli-

Lord of the Rings

Age 21
Male
Canada
Seen 54 Minutes Ago
Posted 2 Weeks Ago
245 posts
5.9 Years
Hey, just wanted to let you know that a bunch of this tutorial is superfluous. You can't insert anything permanent in the memory editor, it'll get cleared once VBA closes. Not sure about how the rest of the tutorial is because I don't personally need this myself but I just thought I should let you know.
Thanks for letting me know. I'm sure you know more about this than I do since I only recently discovered Ram editing, but if what you're saying is true, this Tutorial still should work because of the repointing. The sound area is still repointed to a new, free location, the mixer is still repointed, and the new mixer placed in the Rom with the hex editor still replaces the old one. So the sound quality should still increase if you followed the repointing steps right.
Pokemon Unbound

LukeeGD

Mostly a Music Hacker

Philippines
Seen 1 Day Ago
Posted July 3rd, 2019
49 posts
2.7 Years
What you mean by this?
Disabling the help menu in FRLG: going to 0x13B8C2 for FireRed or 0x13B89A for LeafGreen, and changing the bytes from 1D D1 to 1D E0.
Advertiser Content