• 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.

(All Games) Type Weakness/Strength Changing

Status
Not open for further replies.

IIMarckus

J946@5488AA97464
402
Posts
16
Years
  • Seen Feb 21, 2024
How do I change the old pointer to the new location.
Depends on what system you're hacking. Let's use Crystal as an example. If the offset is >4000, then we can get its pointer by (offset MOD 4000) + 4000.

034BB1 Mod 4000 = 0BB1
0BB1 + 4000 = 4BB1

So 4BB1 is our pointer. Next, we look for the pointer in our ROM. In most cases (not always, but usually), the pointer is in the same bank as the data. Each bank is 4000 bytes long and starts at the offset rounded down to the nearest 4000, which in our case is 034000. So we navigate to 034000 in our hex editor and search for the pointer. GBC pointers are little-endian, which means that the one's place byte goes first. So we search for B14B.

Our result is at 034741. Notice the 21 in front of the pointer. 21, 11, and 01 are assembly commands that mean "load the next two bytes into the CPU registers." If you see one of those while searching for pointer values, it's a good bet that you've found your pointer. (Not to say that a pointer without a 21 in front is less likely to be a pointer -- a lot of the time you'll find pointers in lists, especially when it comes to things like text.)

So we change the value in 034741-034742 to the pointer to our new location for the data. The free space in this bank starts at 037EE2, so let's assume we copied our data there. Like before, we would find the pointer to our new location with ((037EE2 MOD 4000) + 4000), which is 7EE2. Don't forget to byteswap! Our final value will be E27E.

This method will work for GBC pointers, but not GBA pointers. If you're needing those instead, it shouldn't be that hard to find out info on how they work.
 
Last edited:

timmy112

Learning to Hack
18
Posts
16
Years
  • Seen Jul 27, 2016
Thanks , where did you find all of this info, because I need info for gba games. Does anyone know how to change gba pointers and what program do I use?
 
Last edited:

Blaziken626

Pokemon Black Shadow
208
Posts
17
Years
  • Age 30
  • Seen Aug 25, 2015
Sorry if this sounds kinda stupid, but...

For R/S/E/FR/LG/D/P if you use the value 12, would that work if I wanted to add a new type?
 
35
Posts
16
Years
  • Seen Nov 13, 2012
N00bish Question alert.......

How do you look up the address? 0_o
Yeah, i have VBA, i tried memory viewer but it only has 4 numbers, not 5. So when i look up "34D01", it goes to "4D01" instead.
And the numbers are like 00 09 77 D1 C9 11 etc...... Not really right.......
I'm trying to GBC hack btw.....
 
Last edited:
1,104
Posts
16
Years
N00bish Question alert.......

How do you look up the address? 0_o
Yeah, i have VBA, i tried memory viewer but it only has 4 numbers, not 5. So when i look up "34D01", it goes to "4D01" instead.
And the numbers are like 00 09 77 D1 C9 11 etc...... Not really right.......
I'm trying to GBC hack btw.....

HEX EDITOR!
Memory viewer is different.
 

Ineffable~

DAT SNARKITUDE
2,738
Posts
15
Years
Thanks a 627 quintillion, coolerboilmayonnaise (food puns, yay!)
But in emerald, correct me if I'm wrong, does 0E constitute an
immunity removal with foresight? (I found 00 07 0E instead of 00 07 00.

I was wondering if I could ask a question regarding this tutorial? I managed to locate the bytes and recognise them,(02 01 14, flying X2 damage to fighting etc...) but I wondered how exactly it is possible to add a new type to the game? If you need to edit a old type in order to do this editing 09(???) would be a good choice as you wouldn't lose any of the others but I couldn't see any data regarding types attacking 09, or visa versa. Am just not looking hard enough or is the process of adding new types much more complicated? Sorry if this question sounds dumb, I'm not familiar with hex editing, but sounds fun to learn. I was also wondering what would mean x1 damage? I am hacking Ruby version by the way.

There is nothing that means 1x damage. They don't list 1x damage.
That's default.
 
Last edited:
Status
Not open for further replies.
Back
Top