• 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

ShyRayq

Unprofessional Unprofessional
1,856
Posts
16
Years
  • Seen Apr 2, 2024
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.
 
39
Posts
7
Years
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.



i see. so it's a lot more complicated than i thought. thanks for telling me. ill try it again and see if ill be able to do it. thanks for the tips!
 
Last edited:

Zervais

Island Kahuna
258
Posts
7
Years
Is there a routine for Multitype and Judgement around? I think there's an Arceus form change somewhere but I'd like to know if anyone has a fully working version of him, as he should be, Judgement and all.
 

Lance32497

LanceKoijer of Pokemon_Addicts
792
Posts
9
Years
I'm trying to duplicate Victory Star

Will this code work?
Spoiler:


The bolded lines indicate my additions. Let's say C1 is the ability index, will this work?
 
325
Posts
10
Years
I'm trying to duplicate Victory Star

Will this code work?
Spoiler:


The bolded lines indicate my additions. Let's say C1 is the ability index, will this work?

I don't see why not, yeah.
 

Lance32497

LanceKoijer of Pokemon_Addicts
792
Posts
9
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:

Hello I tried editing the Snow warning Routine in your Rom Base which is located at 0x8909990
Code:
08 78 2D 28 01 D1 10 4A 10 47 6F 28 01 D0 0F 4C 20 47 0F 4A 11 88 80 20 08
40 00 28 01 D0 00 F0 0D F8 80 20 10 80 0B 4A 00 20 10 70 0A 48 00 F0 07 F8
0A 48 51 46 C1 75 00 F0 04 F8 08 4C 20 47 08 4A 10 47 08 48 00 47 AD A2 01
08 49 A1 01 08 1C 3F 02 02 48 3F 02 02 D0 9A 90 08 C4 3F 02 02 AB BB 01 08 
25 BC 01 08 5B BB 01 08

I added 8B 28 03 D0 which adds these lines
Code:
	cmp r0, #0x8B @8B is the index ID of Snow Warning Duplicate
	beq SnowWarning

so the code is now:
Code:
08 78 2D 28 01 D1 10 4A 10 47 6F 28 01 D0 [B]8B 28 03 D0[/B] 0F 4C 20 47 0F 
4A 11 88 80 20 08 40 00 28 01 D0 00 F0 0D F8 80 20 10 80 0B 4A 00 20 10 70 
0A 48 00 F0 07 F8 0A 48 51 46 C1 75 00 F0 04 F8 08 4C 20 47 08 4A 10 47 08 
48 00 47 AD A2 01 08 49 A1 01 08 1C 3F 02 02 48 3F 02 02 D0 9A 90 08 C4 3F 
02 02 AB BB 01 08 25 BC 01 08 5B BB 01 08

I gave Chirpich (my ideamon) an Ability Snow Warning and Draciate(Don't mind the Draciate name, that's not its effect, just for a test) and capture two Chirpichs with Snow Warning and Draciate Ability. However, instead of "Chirpich's Snow Warning made it hail!", the text appears as "Chirpich's Draciate made it hail!" even though that Chirpich has Snow Warning Ability.

I provided 2 videos below.
The first one shows the success of Draciate but the second one fails.





Can anyone here help me with this?
 
Last edited:

Froosty

The_Learner
535
Posts
9
Years
There was a report mentioning problems with the Magic Bounce Ability in MrDS's Rombase, so I decided it to implement this myself from scratch, and it is working fine in Trainer Battles and Doubles.
Here it is posted with Moxie.

Magic Bounce
Spoiler:


Moxie
Spoiler:


Also, these require Jambo's Callasm and Setword commands, and his Battle String Loader Hack.

I expanded the table...
I think it has f7(starting from 00) commands.... so I inserted the jambo's callasm at f8 and setword command at f9 is it ok ????
also
1E 01 9A YY YY YY 08
what about that underlined 9A
do it needs to be changed or is something special there ???

hoping to get answer :)
 

Trainer 781

Guest
0
Posts
I expanded the table...
I think it has f7(starting from 00) commands.... so I inserted the jambo's callasm at f8 and setword command at f9 is it ok ????
also
1E 01 9A YY YY YY 08
what about that underlined 9A
do it needs to be changed or is something special there ???

hoping to get answer :)

Yes, its good to go.
9A is the ability index for moxie. So if you have an index other than 9A for moxie then you will have to change this.
 
50
Posts
9
Years
  • Age 30
  • Seen Jan 18, 2017
Sorry for my ignorance but I wanted to know if it has already opened a new post for the 7th skills, if I am annoying sorry, it is not my intention.
 
39
Posts
7
Years
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:

False Swipe no longer works after I put Sturdy {D:}
 
9
Posts
7
Years
  • Age 21
  • Seen Jan 7, 2017
Help!
I really want to add protean to fire red.
Sorry i'm bad at this stuff and i need an easy tutorial for beginners like me.
 
Last edited:
22
Posts
7
Years
  • Age 20
  • Seen Feb 28, 2022
Hey guys! I am finding it hard to insert the abilities in my ROM is there any one who could be willing to help out? I expand the Ability Table and then insert the ASM then what do i Have to do ??? I dont want to rely on MrDs' Patch (no offence) as it is not dynamic...
 

BluRose

blu rass
811
Posts
10
Years
Hey guys! I am finding it hard to insert the abilities in my ROM is there any one who could be willing to help out? I expand the Ability Table and then insert the ASM then what do i Have to do ??? I dont want to rely on MrDs' Patch (no offence) as it is not dynamic...
insert the asm routines and make the necessary byte changes, and all should be outlined in the post :P

edit: and mrds' patch is rather fine to use unless if you're using that space starting at 0x900000
 
22
Posts
7
Years
  • Age 20
  • Seen Feb 28, 2022
insert the asm routines and make the necessary byte changes, and all should be outlined in the post :P

edit: and mrds' patch is rather fine to use unless if you're using that space starting at 0x900000

Thanks they are working... :)
 
17
Posts
9
Years
  • Age 30
  • Seen Sep 3, 2023
Skill Link

Spoiler:

Having a problem with this one - all multi-hit moves are hitting five times 100% of the time, even if the user does not have Skill Link. I figured maybe the 5D in the first script was just taken from the "default" index for Skill Link, and I changed that to the index of what it is in my hack, but no dice. Is there something else I need to do?

EDIT: Nevermind!! What I had accidentally done was, when replacing the pointers, I replaced the one in the second script by mistake. Working fine now.
 

Chaotix

Love to test
59
Posts
17
Years
  • Age 34
  • Seen Jan 11, 2020
There was a report mentioning problems with the Magic Bounce Ability in MrDS's Rombase, so I decided it to implement this myself from scratch, and it is working fine in Trainer Battles and Doubles.
Here it is posted with Moxie.

Magic Bounce
Spoiler:


Moxie
Spoiler:


Also, these require Jambo's Callasm and Setword commands, and his Battle String Loader Hack.

Not sure why I am having a tough time getting Moxie to work. When I KO a pokemon in the wild the attack boost animation plays then the game gets stuck there.

I put the pointer to where I inserted script XXXXXX at 0x08213DC;
changed the ability index to 4E from 9A since I only added Moxie;
added callasm to the command table at F8;
added battle string loader exactly as Jambo posted it here https://www.pokecommunity.com/showpost.php?p=7101031&postcount=230 do I need to change it at all?;
added setword command KDS posted on page 3 and added a pointer to it at FA in the command table.

What could be wrong?

Edit: For Fire Red
 

Trainer 781

Guest
0
Posts
Not sure why I am having a tough time getting Moxie to work. When I KO a pokemon in the wild the attack boost animation plays then the game gets stuck there.

I put the pointer to where I inserted script XXXXXX at 0x08213DC;
changed the ability index to 4E from 9A since I only added Moxie;
added callasm to the command table at F8;
added battle string loader exactly as Jambo posted it here https://www.pokecommunity.com/showpost.php?p=7101031&postcount=230 do I need to change it at all?;
added setword command KDS posted on page 3 and added a pointer to it at FA in the command table.

What could be wrong?

Edit: For Fire Red
Code:
FB 20 E3 03 02 SS SS SS 08
have you changed the FB to FA here?
 
Back
Top