• 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?".
  • Forum moderator applications are now open! Click here for details.
  • 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.

Code: Ability Resource Thread

Froosty

The_Learner
535
Posts
9
Years
After a quick glance I can't see anything obviously wrong with the logic. Did you follow the instruction telling you to put 01 48 00 47 00 00 xx xx xx 08 1A 4A at 01F1E2. Remember the offset has to be little-endian and plus 1 (since it's THUMB code). If you did this, I can only assume it's broken.

I am not talking of this specific ability but in general.
I expanded the ability name and description table, coded the asm for any of the mentioned ability and then inserted it to the rom, i also followed the instruction to some hex value at some fixed pointer,
but the thing i didnt get is how the rom identifies that the code is for the added ability.
I mean if I added 10 new abilities how can the rom determine that the hex value is to be for 1st or 2nd or 3rd added ability.
is there some else pointer I need to repoint??
pls reply. working on a new hack!
 
55
Posts
8
Years
  • Age 28
  • Seen Dec 2, 2021
I am not talking of this specific ability but in general.
I expanded the ability name and description table, coded the asm for any of the mentioned ability and then inserted it to the rom, i also followed the instruction to some hex value at some fixed pointer,
but the thing i didnt get is how the rom identifies that the code is for the added ability.
I mean if I added 10 new abilities how can the rom determine that the hex value is to be for 1st or 2nd or 3rd added ability.
is there some else pointer I need to repoint??
pls reply. working on a new hack!

in each ability there's a check to determine which ability it's looking for, denoted by a hex. for example, the ability Air Lock is 4D, so it would do something along the lines of

[S-HIGHLIGHT]AirLockCheckUser:
cmp r0, #0x4D
beq AirLockRoutine[/S-HIGHLIGHT]

you'll look for something similar in your routines and change them accordingly
 

Froosty

The_Learner
535
Posts
9
Years
in each ability there's a check to determine which ability it's looking for, denoted by a hex. for example, the ability Air Lock is 4D, so it would do something along the lines of

[S-HIGHLIGHT]AirLockCheckUser:
cmp r0, #0x4D
beq AirLockRoutine[/S-HIGHLIGHT]

you'll look for something similar in your routines and change them accordingly

Does it means if I replace the first ability with airlock then i should replace
cmp r0, #0x4D with
cmp r0, #0x1
 
325
Posts
9
Years
Does it means if I replace the first ability with airlock then i should replace
cmp r0, #0x4D with
cmp r0, #0x1
Yes but I do not recommend replacing abilities. It's easier to add new ones, otherwise the new one you added will have both the effect of the ability you added and the one you replaced.
 
55
Posts
8
Years
  • Age 28
  • Seen Dec 2, 2021
Does it means if I replace the first ability with airlock then i should replace
cmp r0, #0x4D with
cmp r0, #0x1

you would find the routine you're looking for and replace the hex it's checking for with the hex you want it to check for. if your new ability is at 4E (which in the rom would be the ability after air lock - i'm assuming you know how to insert abilities) then find the hex it's checking for and replace the existing hex with that.
 

Froosty

The_Learner
535
Posts
9
Years
Yes but I do not recommend replacing abilities. It's easier to add new ones, otherwise the new one you added will have both the effect of the ability you added and the one you replaced.
I was just trying to know about but not actually replace.
I added a new ability that is normalize(r) that made every move normal type but when the pokemon with this ability goes to battle then the game restarts!! any idea about it???

you would find the routine you're looking for and replace the hex it's checking for with the hex you want it to check for. if your new ability is at 4E (which in the rom would be the ability after air lock - i'm assuming you know how to insert abilities) then find the hex it's checking for and replace the existing hex with that.

I have expanded the ability table but still i am facing problem with adding the new abilities


I added a new ability that is normalize(r) that made every move normal type but when the pokemon with this ability goes to battle then the game restarts!! any idea about it???
 
Last edited by a moderator:

MrDollSteak

Formerly known as 11bayerf1
858
Posts
15
Years
I have expanded the ability table but still i am facing problem with adding the new abilities


I added a new ability that is normalize(r) that made every move normal type but when the pokemon with this ability goes to battle then the game restarts!! any idea about it???

Don't double post please. It's because you've clearly made a mistake with the routine.
 

Froosty

The_Learner
535
Posts
9
Years
Help needed!!

Sorry for the long delay, but here are the Type Change Abilities! Credits to Kleenexfeu for the original routines, I've just optimised them and added Normalize.

Normalize, Refrigerate, Pixilate and Aerilate

Spoiler:

I just wanted to ask if this single asm will work for all the abilitied named in this post???
If i just place the pointer and add names of the abilities will all work ???




Ice Body is written up at the moment but it's part of a huge set of routines so it might be a while. Magician I haven't looked into but I imagine it can go into the table that KDS did for the Life Orb thing.

So the Speed and Priority abilities are something I've had written up for awhile but since edited because of KDS and Kleenex's rewrite of the Turn Order Loader. This routine has new items included in it as well, and a few moves such as Trick Room and Tailwind.

Prankster, Gale Wings, Stall, Sand Rush, Slow Start and Quick Feet

Spoiler:

I am getting confused with these abilites pls!!
After I compile the asm codes and get the hex values of those what should i do???
Where should i insert them!
like in other abilities threat there is no
#insert hex hex hex XX XX XX 08 at pointer
where shall i insert it pls help
thanks in advance :)


Sorry for the long delay, but here are the Type Change Abilities! Credits to Kleenexfeu for the original routines, I've just optimised them and added Normalize.

Normalize, Refrigerate, Pixilate and Aerilate

Spoiler:

I tried it but none of the abilities work for me...
I have done every thing right!
is there anything special about these abilities???
 
Last edited:

Lance32497

LanceKoijer of Pokemon_Addicts
792
Posts
9
Years
Is it bad to ask question ????

I am just trying to know what wrong I am doing and what else can be done??
Asking question isnt spamming at all!!
>_>:|

Hey friend, question is not a form of spam. But if each of your question is separated by a post then it may look like a spam. If you have added new question, you may edit the first post since no one has commented on it yet and insert EDIT so it can be understood that you have added/edited question.
 

MrDollSteak

Formerly known as 11bayerf1
858
Posts
15
Years
I just wanted to ask if this single asm will work for all the abilitied named in this post???
If i just place the pointer and add names of the abilities will all work ???

I am getting confused with these abilites pls!!
After I compile the asm codes and get the hex values of those what should i do???
Where should i insert them!
like in other abilities threat there is no
#insert hex hex hex XX XX XX 08 at pointer
where shall i insert it pls help
thanks in advance :)

I tried it but none of the abilities work for me...
I have done every thing right!
is there anything special about these abilities???

You need to compile the routines with an ASM editor. Insert the bin it generates into free space. Then point to it at the insert location+1. If it doesn't say insert xx xx xx +1 at the pointer its because it's being pasted directly over the original routine.
 

Froosty

The_Learner
535
Posts
9
Years
You need to compile the routines with an ASM editor. Insert the bin it generates into free space. Then point to it at the insert location+1. If it doesn't say insert xx xx xx +1 at the pointer its because it's being pasted directly over the original routine.

Thanks for the reply, I will take these words and check it out!
I have actually found such routines in many places so again thanks.
 

Froosty

The_Learner
535
Posts
9
Years
Good work Kleenexfeu! I've edited your routine to touch up the mistakes, as well as to optimise it, and finally port it to Fire Red.

Protean

Spoiler:

sorry but this is not working for me!
I had added new moves so i changed the move data accordingly,
it even shows "pokemon transformed to some type"
then the game freezes.
should i need to change something else also If I have expanded and repointed the move table???
pls reply
 
325
Posts
9
Years
sorry but this is not working for me!
I had added new moves so i changed the move data accordingly,
it even shows "pokemon transformed to some type"
then the game freezes.
should i need to change something else also If I have expanded and repointed the move table???
pls reply
Yes. Go down to the bottom of the routine and change the offset after .MoveData to the offset of your move table. This is common practice and I suggest looking over every routine for things like that before inserting.
 

Froosty

The_Learner
535
Posts
9
Years
Yes. Go down to the bottom of the routine and change the offset after .MoveData to the offset of your move table. This is common practice and I suggest looking over every routine for things like that before inserting.

I have changed the move data but it still freezes!
I have changed almost everything in my rom(abilities tables, moves table, pokemon table and even type table)
So apart from .Movedata Do I need to chamge anything else??
 
325
Posts
9
Years
I have changed the move data but it still freezes!
I have changed almost everything in my rom(abilities tables, moves table, pokemon table and even type table)
So apart from .Movedata Do I need to chamge anything else??
No, but you should check yourself next time. Check the labels all the time because stuff that gets repointed like that gets overlooked a lot.
Add the + 1 to the pointer to the routine, see if that works.
 
42
Posts
8
Years
  • Age 29
  • Seen yesterday
So, how does Sheer Force work, does it just check if a move has a secondary effect?

If I were to give Dragon Pulse an effect (e.g. SpDef drop), would Sheer Force now boost it?
 
325
Posts
9
Years
So, how does Sheer Force work, does it just check if a move has a secondary effect?

If I were to give Dragon Pulse an effect (e.g. SpDef drop), would Sheer Force now boost it?
Sheer Force will boost the BP of the attack by 30% if it does damage. However, it will remove the secondary effect if it has one. For instance, Ember will be boosted by 30%, but the chance to burn will be removed. All secondary effects on the user that are negative, however, are not removed.
 
457
Posts
10
Years
  • Age 28
  • Seen Mar 17, 2024
Lightningrod, Motor Drive, Dry Skin, Storm Drain and Sap Sipper

The strings doesn't use the AI's name and ability (It uses your name and ability. Example: the opponent is Electivire with Lightningrod, then when I used any Electric-type move, it displays my Pokemon's name and ability instead of the AI's). I think instances of FD 13 B4 E7 00 FD 1B should be replaced by FD 10 B4 E7 00 FD 19 on all battle strings.

In Storm Drain in double battles, after I use any Water attack on any target (exactly after the string message), the game crashes. And, this really messed up double battles.

Magic Guard
Routine IV: Prevent Poison Damage (also contains Poison Heal)
Routine V: Prevent Toxic Damage (also contains Poison Heal)

After applying these routines, both poison and toxic damage deal knockout.
 
Last edited:
39
Posts
7
Years
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:
Good work Kleenexfeu! I've edited your routine to touch up the mistakes, as well as to optimise it, and finally port it to Fire Red.

Protean

Spoiler:

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
 
Back
Top