• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • 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

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.
 
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:
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.
 
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?
 
Excuse me. But any of this abilities have porting to Pokemon Ruby?
for most, it probably wouldn't be that hard. it's just finding addresses :P
 
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.
 
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:
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 :)
 
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.
 
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.
 
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:}
 
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:
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...
 
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
 
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.
 
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/posts/7101031/ 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
 
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/posts/7101031/ 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