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

Code: Ability Resource Thread

32
Posts
5
Years
  • Age 18
  • Seen Sep 1, 2023
Every ability has an index that is associated with its position in the ability name/descriptions table. For example, speed boost is ability 0x3. So, if you add an ability just after air lock, it would be ability 0x4F and you would assign that index to your pokemon's ability slot
Oh, that makes sense! I was just wondering;
So I used this routine here:
Sniper, Technician, Defeatist and the Slow Start Attack Drop
Spoiler:
I am also using MrDollSteak's Decap and Attack Rombase, in which the ID for Sniper is 0x55.
I can't find any mention of this number in the routine though!
Likewise, the ID for Technician appears to be 0x52, yet this is nowhere to be found.
I want to find the IDs for Defeatist and Slow Start, yet I can't figure out where they could be!
Any ideas?
 

AkameTheBulbasaur

Akame Marukawa of Iyotono
409
Posts
10
Years
"(.SnowWarningBS: .word 0x08CCCCCC)" what exactly should i put 8x08CCCCCC ?

There was a Battle Script that was intended to be used with Snow Warning, so 0x08CCCCCC should be the offset to this Battle Script. If you put it at 0xAABBCC, then you'd put 0x08AABBCC there.

The Battle Script doesn't seem to be included with the post though, which is likely the source of your confusion. Thankfully a functioning Battle Script to use with this isn't too difficult:

Here's what I used:

#dynamic 0x740000
#freespacebyte 0xFF

#org @SnowWarning
pause 0x20
playanimation 0x7 0xD 0x0
call 0x081D92DC
end3​

And that's it.
 
88
Posts
7
Years
  • Age 34
  • Seen Jan 16, 2020
Oh, that makes sense! I was just wondering;
So I used this routine here:

I am also using MrDollSteak's Decap and Attack Rombase, in which the ID for Sniper is 0x55.
I can't find any mention of this number in the routine though!
Likewise, the ID for Technician appears to be 0x52, yet this is nowhere to be found.
I want to find the IDs for Defeatist and Slow Start, yet I can't figure out where they could be!
Any ideas?

Yeah, it looks like that routine has Sniper's ability ID as 0x62, so there is a discrepancy in the actual engine and this routine. You can use a pokemon editor like PGE or G3T to check the ability indices just based on their names in the drop down menu.
 

Lance Koijer 2.0

Lance Koijer
105
Posts
5
Years
8Beast Boost : [FR]

At 0x213DC, open the address you found there in BSP.

Add the following:
On the first org., insert this before the code "return"
Code:
jumpifability 0x1 0xAA 0x8XXXXXX  //Change AA into your Beast Boost's Ability ID//

Battle Script at XXXXXX:
Spoiler:

Battle Script at ZZZZZZ:
Code:
return

Routine at YYYYYY:
Spoiler:

String at SSSSSS:
Code:
FD 0F B4 E7 00 BC D9 D5 E7 E8 00 BC E3 E3 E7 E8 FE
 EB D5 E7 00 D5 D7 E8 DD EA D5 E8 D9 D8 AB
 
Last edited:
15
Posts
4
Years
  • Age 30
  • Seen Jun 16, 2019
/JASHIN/, First of all, you must expand the abilities using the PGE tool or with a hexadecimal editor.

This is jashins mobile account because for whatever reason poke community won't let me log in on jashin. Anyways I've expanded the ability name and desc. Table already. Then I inserted the sturdy update and nothing happens
 
23
Posts
6
Years
This is jashins mobile account because for whatever reason poke community won't let me log in on jashin. Anyways I've expanded the ability name and desc. Table already. Then I inserted the sturdy update and nothing happens

The update of Sturdy what it does is that the Pokémon survive with 1 HP to direct damage attacks that will weaken it in a single blow if their HP were at maximum.

You must try having the HP of your Pokémon to the maximum.

Another thing: You must go to this address: 01F1E2
There you must insert this: 01 48 00 47 00 00 81 38 8b 08

Note: These abilities require Doesnt's PSS Split, because of a few shifting bytes.
If you do everything right and it does not work for you, you should make sure to insert the PSS Split system.
 
62
Posts
5
Years


The update of Sturdy what it does is that the Pokémon survive with 1 HP to direct damage attacks that will weaken it in a single blow if their HP were at maximum.

You must try having the HP of your Pokémon to the maximum.

Another thing: You must go to this address: 01F1E2
There you must insert this: 01 48 00 47 00 00 81 38 8b 08

Note: These abilities require Doesnt's PSS Split, because of a few shifting bytes.
If you do everything right and it does not work for you, you should make sure to insert the PSS Split system.

Do I insert that manually with a hex editor or do I use the "insert" function on the ASM command?
 
23
Posts
6
Years
Also, I'm having issues with any of them inserting. Is all I have to do is add the ASM routine to any random offset and the game will automatically find the ability for the index number? Or is there more to it? Do I have to edit anything else?

Scratch that, I got Scrappy to work, I know I patched my game to have the PSS, but I don't remember exactly whose patch I used. It was when I was first getting into rom hacking and didn't even know how to properly use a hex editor.

I do have a question though. The #insert command at the bottom of the ASM, I compiled that along with everything else AND manually edited the bytes at the specified offset. Was this the right thing to do?Just trying to avoid future bugs.

Hi friend. The #insert command is not compiled in the routine, it is only to give the information where to insert the bytes. But when it is in the routine, the tool does not compile that command.
 
62
Posts
5
Years
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've been able to get most of the abilities that I've been trying to insert no proble, but for some reason I just can't get Normalize or Pixilate to work. I haven't tried Aeirilate or refrigerate yet, but I'm assuming those two won't work as well. I'm pretty well positive I've followed the instructions to the T. I inserted the ASM at EA2F80. As of such, I went over to the offset 03ED7A pasted the following: 01 48 00 47 00 0 81 2F EA 08.

I made sure I'm using the correct index number for the abilities and still no luck. Did I do something wrong here?
 
62
Posts
5
Years
Kleenex is right, I've said it a few different times here, but no worries.

I've got some more easy abilities here, Super Luck and Scrappy!

Super Luck

Spoiler:
Scrappy

Spoiler:

Just a heads up, but this scrappy effect only works for normal type attacks, although scrappy is supposed to allow fighting type attacks to hit as well. Is there a way to modify this code so that it would work for both types?

EDIT: It seems like Foresight is having an issue in my game where it allows for the use of normal type attacks to hit ghosts, but not fighting. I've checked my attack effect table and foresight is correctly attributed to attack 113. I've checked the pointer that said effect leads to and it's identical to the base game one. Has anyone else had this issue?


EDIT AGAIN: I fixed the issue. There was an issue with my fighting type not being affected by foresight. I just opened up a type matchup editor and fixed it. I must have done something stupid when I was adding fairy type back in the day.
 
Last edited:
23
Posts
6
Years
I've been able to get most of the abilities that I've been trying to insert no proble, but for some reason I just can't get Normalize or Pixilate to work. I haven't tried Aeirilate or refrigerate yet, but I'm assuming those two won't work as well. I'm pretty well positive I've followed the instructions to the T. I inserted the ASM at EA2F80. As of such, I went over to the offset 03ED7A pasted the following: 01 48 00 47 00 0 81 2F EA 08.

I made sure I'm using the correct index number for the abilities and still no luck. Did I do something wrong here?

Hi friend! Apparently this routine has something wrong, because I also do not work, I have tried many ways and nothing.
 
8
Posts
7
Years
  • Age 33
  • Seen Nov 18, 2023
There's a way to edit ability speed boost?
Maybe change speed to evasiviness.
 

Pekin

Wigglytuff is and has always been on acid.
282
Posts
15
Years
I'm looking to add the Steelworker ability to my hack, Fakemon FireRed. If anyone can help me with that, I'd be endlessly grateful.

Also, less importantly, but if anyone can give me some insight into how to customize or edit the existing routines for the -ate abilities to work for other types, that would be amazing. I've tried, but I haven't really taken the time to learn all the ins and outs of asm just yet, so it's mostly guesswork on my part, and it doesn't work. If anyone can help or point me in the right direction, I'd really appreciate that.
 
23
Posts
6
Years
How to add Abilities?
I think I already know the compilation part

I'm trying to implement Snow Warning
added 41 new abilities with PGE
76 - Snow Warning (Position 118)

I get lost in that part:
#Insert 00 48 00 47 xx xx xx 08 at 1A140

what should I do?

Hello Friend.

XX XX XX means the permuted offsets where you inserted the asm routine, and you must add 1.
An example would be, if you inserted the routine in the offset 901000, xx xx xx would be 01 10 90.

xx xx xx means where you are going to insert the routine (where you want).
If I inserted it in 901000 I must add 1, and it would be 901001 and put the permuted offset, which would be 01 10 90.

And you must go to offsets 1A140 and insert the code: 00 48 00 47 01 10 90 08.
 

AkameTheBulbasaur

Akame Marukawa of Iyotono
409
Posts
10
Years
Out-Of-Battle Effects
Starting from Emerald onward, certain Abilities had effects that acted outside of battle. Except for Pickup, these are absent from FireRed... Until now!

Type Attracting Abilities
These are abilities which have a 50% chance to force an encounter with a Pokemon of a certain Type. Which Type that is, depends on the Ability.

Spoiler:


This routine has Static (Electric), Magnet Pull (Steel), Harvest (Grass) and Storm Drain (Water). If you want to add a new one, add the following with the rest of the compare (cmp) statements.


cmp r1, #0xGG
beq TYPENAME
...

TYPENAME:
mov r5, #0xXX
b CheckIfExists​

Where GG is the Ability Index and XX is the Type Index.

Encounter Rate Abilities
These are abilities which increase or decrease the likelihood of encountering a Pokemon.

Spoiler:


Encounter Level Abilities
These are Abilities which have a 50% chance to force the encountered Pokemon to be the highest level they can be.

Spoiler:


Other Abilities

Synchronise
Here is the Synchronise out-of-battle effect paired with the Shiny Pokemon generator. They need to go together because Nature and Shininess are both determined by the PID.

Spoiler:


Compound Eyes
The Compound Eyes and Super Luck Abilities will make it more likely that the Wild Pokemon is holding an item.

Spoiler:


Flame Body
Flame Body, Magma Armour and Steam Engine will halve the number of steps needed to hatch an egg if they are in the party.

Spoiler:
 
Last edited:
Back
Top