Research & DevelopmentGot a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!

Black and White introduced the Dream World, where Pokemon with different abilities can be caught.
Maybe it is possible to implement a special area in the GBA games where Pokemon will have different abilities. I experimented with the Wally event from RSE.

Quote:

Originally Posted by diegoisawesome

There are four specials in that event you should be aware of: special 0x28, special 0x12F, special 0xA0, and special 0x29. special 0x28 saves your first Pokémon into memory for retrieval later, special 0x12F overwrites your first Pokémon with a specified Pokémon, special 0xA0 is the actual battle, and special 0x29 overwrites your first Pokémon with the one saved in memory.

I was messing around with the event, and deleted special 0x29, which causes that after the event, you still have the Zigzagoon. However, there is something special about this Zigzagoon: it has no ability instead of Pickup.
If we could import a special table that connects every Pokemon with its Dream World ability, and the game then checks when encountering the Pokemon where the player is, and when it's at a special place, the Pokémon will have that ability.
I think all of this is possible by creating and editing ASM routines.
What do you think? Is this a good idea? If you can help, please help. Maybe we could make our very own Dream World!

Black and White introduced the Dream World, where Pokemon with different abilities can be caught.
Maybe it is possible to implement a special area in the GBA games where Pokemon will have different abilities. I experimented with the Wally event from RSE.

I was messing around with the event, and deleted special 0x29, which causes that after the event, you still have the Zigzagoon. However, there is something special about this Zigzagoon: it has no ability instead of Pickup.
If we could import a special table that connects every Pokemon with its Dream World ability, and the game then checks when encountering the Pokemon where the player is, and when it's at a special place, the Pokémon will have that ability.
I think all of this is possible by creating and editing ASM routines.
What do you think? Is this a good idea? If you can help, please help. Maybe we could make our very own Dream World!

I would require a bit of hacking. Abilities in the Pokemon Structure in the RAM of the 3rd Generation is stored in a single bit (which can only have two values, 0 or 1).

However, if you created sub-routines for EVERY routine that reads for Abilities, then it is possible to branch to a different table if certain criteria is met. But, I would assume, there are quite a few routine that do this.

So yeah, it's possible, but I don't see anyone doing it for you unless they wanted it in their hack aswell.

It's possible, but, as Darthatron said, will take a lot of ASM hacking. Also, it might take a bit of space to make the table. In other words, I honestly don't think it's worth it.

With one extra ability per pokemon, it would only take up 386 bytes. But, you could not take up any extra space by using the padding at the end on the base-stats data structure. You could even add two extra abilities per pokemon without needing a table. ^_^

Doing the above would also allow easier routine editing, as adding a simple check for a flag (or something), then branch into a slightly edited routine. Thus, not taking up too much extra space.

EDIT: I looked into it a bit, and it seems most abilities are actually determined from a single routine. ^_^ I don't have any assemblers installed on my laptop, but I'll set up my old desktop and see if I can get something done. The routine is at 0x40D38, btw.

Oh, awesome! I already made a list of all the 439 index numbers with their Dream World ability, I then turned the decimal into hexadecimal, which gives you 0x0 until 0x1B7, now I'm gonna change all abilites introduced in Gen 4 or 5 into abilites with almost the same effect, and then turn them into their hexadecimal value. I'll post them once they're done.

EDIT: Here are the first 2 lists, I forget I finished them already.
All Pokémon with their Dream World Abilities:

The following routine will make it so you can add 2 more abilities per Pokemon, like the Dream World abilities in B/W. These new abilities are stored in the buffer at the end of the Pokemon Base Stats Structure.

The following routine will make it so you can add 2 more abilities per Pokemon, like the Dream World abilities in B/W. These new abilities are stored in the buffer at the end of the Pokemon Base Stats Structure.

Awesome. If you plan on completing all the pokemon, maybe you could make a patch and post it in the first post along with my routine?

Sure! Only a limitation: I have to replace abilities introduced in gen IV and V with abilities introduced in gen III, which means I can only use 76 out of the 164 abilities, except if it's possible to add new abilities...
Anyway, I'll make a patch later :)

Sure! Only a limitation: I have to replace abilities introduced in gen IV and V with abilities introduced in gen III, which means I can only use 76 out of the 164 abilities, except if it's possible to add new abilities...
Anyway, I'll make a patch later :)

Well this is awkward... The routine I made isn't anything like the Dream World at all. :\ Instead of being able to catch pokemon with different abilities, it changes the ability that the pokemon actually has... Sorry about that. >_<"

Well this is awkward... The routine I made isn't anything like the Dream World at all. :\ Instead of being able to catch pokemon with different abilities, it changes the ability that the pokemon actually has... Sorry about that. >_<"

Oh, it's allright, I even didn't try it. Thanks for the research anyway :) It might help later ~
And if you want, you can keep researching, I'm researching now too because of your help :)

Oh, it's allright, I even didn't try it. Thanks for the research anyway :) It might help later ~
And if you want, you can keep researching, I'm researching now too because of your help :)

The Dream World thing is near impossible... Gen 3 games store the ability a pokemon has in a single bit (can only be set to 0 or 1), whereas Gen 4 and 5 store abilities in a byte, allowing any pokemon to have any ability. Simply put, without a total re-write of the entire Ability engine and the Pokemon Structure... which really isn't practicle.

The Dream World thing is near impossible... Gen 3 games store the ability a pokemon has in a single bit (can only be set to 0 or 1), whereas Gen 4 and 5 store abilities in a byte, allowing any pokemon to have any ability. Simply put, without a total re-write of the entire Ability engine and the Pokemon Structure... which really isn't practicle.

Oh, I get it. I guess I'll have to find a way around it, or rewrite the structure.
Didn't know it was that hard.
Could maybe a custom ASM routine do it

The PokéCommunity

Meta

Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, or The Pokémon Company International. We just love Pokémon.