• 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

Le pug

Creator of Pokémon: Discovery / Fat Kid
870
Posts
10
Years
Spoiler:

For anyone who uses this, just remember that you HAVE to place Mold Breaker in Ability slot #2 for whatever Pokemon you are editing or it WON'T work. (i.e. Pangoro would be Ability 1: Iron Fist Ability 2: Mold Breaker)
 
Last edited:
457
Posts
10
Years
  • Age 29
  • Seen Apr 9, 2024
For anyone who uses this, just remember that you HAVE to place Mold Breaker in Ability slot #2 for whatever Pokemon you are editing or it WON'T work. (i.e. Pangoro would be Ability 1: Iron Fist Ability 2: Mold Breaker)

Is the problem only for Pokemon with one ability (e.g. Treecko Ability#1: Overgrow; Ability #2: "???????")? Ppl could have duplicated the ability to the second slot (e.g. Treecko Ability#1: Overgrow; Ability #2: Overgrow).
 
116
Posts
16
Years
Hello guys the code of normalize and pixilate is still broken.



I have replicated soul-heart already, the only problem when I was creating the ability is that the checking of the highest stat.. I'd tried to make an ASM that will compare each stats so whatver stat got the highest will increase. If someone can just make an ASM that will get the highest stat of a pok?mon and store it somewhere, the ability would be possible.

How Pixilate is broken?
 

Le pug

Creator of Pokémon: Discovery / Fat Kid
870
Posts
10
Years
Is the problem only for Pokemon with one ability (e.g. Treecko Ability#1: Overgrow; Ability #2: "???????")? Ppl could have duplicated the ability to the second slot (e.g. Treecko Ability#1: Overgrow; Ability #2: Overgrow).

For Mold Breaker, it specifically needs to be in Ability #2 IF you have another ability with it. If you have a pokemon with only one ability, it'll show just that ability and work with it. Including Mold Breaker.
 
81
Posts
7
Years
  • Age 30
  • Seen yesterday

Expanding Ability Names Data and Ability Descriptions Pointer Table

I think this should be here so I don't need to make a new thread with a very simple tutorial. Alright! I'm going to tell you how to expand Ability tables (the Names and the Descriptions). I'm using HxD here as a HEX Editor.

Legend:
  • Green bolded text are for Emerald.
  • Red bolded text are for FireRed.

Step 1: Ability Names

  • Go to a new free space names (example: 0x720000). Select 3328 (0xD00 in HEX) bytes. Fill the bytes with AE AE AE AE AE AE AE FF 00 00 00 00 00.
  • Go to 31B6DB or 24FC40. Select and copy 1014 (0x3F6 in HEX) bytes.
  • Go to the offset of your names data (which the example is 0x720000) and paste the data there.
  • Replace all DB B6 31 08 or 40 FC 24 08 with the "reversed hex in little indian of your new names data offset with 08 at the end" (example: 00 00 72 08)

Step 2: Ability Descriptions

  • Go to a new free space descriptions (example: 0x720D00). Select 1024 (0x400 in HEX) bytes. Fill the bytes with 98 AF 31 08 or C4 F3 24 08.
  • Go to 31BAD4 or 24FB08. Select and copy 312 (0x138 in HEX) bytes.
  • Go to the offset of your description table (which the example is 0x720D00) and paste the data there.
  • Replace all D4 BA 31 08 or 08 FB 24 08 with the "reversed hex in little indian of your new description data offset with 08 at the end" (example: 00 0D 72 08)

Then, change your .ini-s. Replace the old offsets in the .ini with your new data (they should be at where the Ability Names and Ability Descriptions are). Luckily, these don't have limiter stuff at all.

With the expanded data, the new data should be working. I have made this tutorial to have maximized the slots to 256 abilities (255 usable abilities plus one for the none "-----" slot). Now you have 178 new slots for Generation IV+ abilities. Noted that the game can only support up to 256 abilities. The rest of the tutorial on how to insert ability routines are on the first post of this thread since inserting ability routines are now complicated. I hope this post is to be linked up in the Extra Information of this thread so everyone can expand stuff too.

Table Ruby in:

Spoiler:


Skill Link:

Spoiler:
 
Last edited:
81
Posts
7
Years
  • Age 30
  • Seen yesterday
To start off here are a few damage-calc related abilities as well as an update Sturdy effect!

These abilities require Doesnt's PSS Split, because of a few shifting bytes.

Sniper, Technician, Defeatist and the Slow Start Attack Drop
Spoiler:

Toxic Boost and Flare Boost
Spoiler:
Multiscale and Fur Coat
Spoiler:
Sturdy
Spoiler:

Pokémon Ruby:

Sturdy:

Spoiler:


Ruby: at 0x1D69E - replace 65 28 with CE 29
 
Last edited:
17
Posts
5
Years
  • Age 32
  • Seen Sep 23, 2020
I would love to see Ditto's hidden ability "Imposter" to be made for FireRed.

It has the same effect as the Transform move, but it's automatically applied at the beginning of the battle. Not sure if the move's script can somehow be used, but as an ability, but that would sure help when making it.

I'm new to ROM hacking, but i'll try to learn how to add new abilities in hopes of implementing Imposter, but if someone else who already knows how to make abilities want to take a look at it, that'd be awesome!
 
Last edited:
1
Posts
6
Years
Here's Snow Warning for Fire Red! I'll update this and port it to Emerald. I'm going to edit it slightly in the future to account for the new weather abilities too that Kleenex has already written routines for.

Snow Warning

Spoiler:

"(.SnowWarningBS: .word 0x08CCCCCC)" what exactly should i put 8x08CCCCCC ?
 
32
Posts
5
Years
  • Age 18
  • Seen Sep 1, 2023
Sorry if I sound like a noob, but I'm really confused.
I know how to insert ASM routines, but I was wondering how to make the actual abilities work?
Do I just add the name of the ability to the table in a Hex Editor after adding in the routine?
 
Last edited:
88
Posts
7
Years
  • Age 34
  • Seen Jan 16, 2020
Sorry if I sound like a noob, but I'm really confused.
I know how to insert ASM routines, but I was wondering how to make the actual abilities work?
Do I just add the name of the ability to the table in a Hex Editor after adding in the routine?

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