ShyRayq
Unprofessional Unprofessional
- 1,856
- Posts
- 17
- Years
- Seen Apr 21, 2025
hello. i just wanna ask how to properly implement a new ability.
i'm kind of new to asm hacking and so far i think i'm doing well (just a thought, though)
i successfully added some into my rom like the BW2 Repel system, gain-exp-on-catch, fix sturdy, color codes on nature and IV indicator. since i've done it pretty well i just thought maybe i'd try adding a new ability.
the ability i was trying to add is this protean:
because greninja is a thing, but whenever i tried to use it on battle, it doesn't work.
now the problem is, when i paste this ( 00 49 08 47 01 7B 77 08 ) to 1D7D8 (as instructed) nothing happens. i tried to not to add 1 on the "00" (last) part of the hex where i insert the asm but the screen just stuck after an attack. then i even tried not to reverse the hex and it called a rain, then crash >___<
the part (offset?) where i inserted the asm was on 777B00. i can't really figure out where did i got it wrong, but i really want to learn how to add it because it's a good feature. i hope someone could tell me my mistake. and lastly, sorry for a long reply, plus the bad english since it's not my mother language.
ps: i'm using mrds patch
Okay, I'm not really good at ASM, but I picked up a few things.
1st, in the ASM code, there is a section near the start called 'Proteancheck'.
In this section there's a bit of code that says:
cmp r0, #0xA9.
The A9 represents the index for the ability Protean in the table of abilities. This will not be exactly the same as in your rom. Assuming this is the only ability you have added, it should be 0x4E.
If you have added more, then it should be 0x4D + NN + 0x01 where NN is the number of abilities you have added before protean in hex.
2nd, I believe there is a string that prints that the user has changed type that you have to insert as well, but I'm not entirely sure.