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

Adding new evolution methods [FR]

Yeah, it would just always be mega evolved, even in the overworld. Also it would allow players to have 6 mega evolved pokemon on their team, wouldn't require a mega ring, and probably would have to be a simple asm routine to change the index number based on a hold item (which I have made and still need to clean up before publishing) rather than an evolution routine.

I think we'd need more than that.

my idea is to have only 1 universal stone that will serve as a mega stone for all, and will be given only one in-game, ithink it is alright for a pokemon to stay mega evolved out of the battle, but i dont know what to do for x and y variants of charizard and mewtwo :(

i have another idea, what about a reverse type of nincada's evolution,
e.g. Slowpoke will evolve to slowbro if you have a shellder in the team. but shellder will be removed to the team after slowpoke evolved.
 
Last edited by a moderator:
i have another idea, what about a reverse type of nincada's evolution,
e.g. Slowpoke will evolve to slowbro if you have a shellder in the team. but shellder will be removed to the team after slowpoke evolved.

I think it would be easier to edit the Mantyke-Mantine evo for that.
 
But the remoraid stays in the party right? its better if shellder and slowpoke will be joined like what should happen

In the last section I explain how to make it compatible with G3HS, simply for KK552's convention and you can make any pokemon evolve with any pokemon. If you want the pokemon to disappear after evolution, well that's a whole kettle of fish.
 
Step 2 (Creating evolution routines; ASM needed)
Spoiler:
Spoiler:
 
bl decrypt
decrypt: push {r0-r7}
mov r1, #0x ##
ldr r2, decryptpoke
bx r2
decryptpoke: .word 0x0803FBE9

also, I dont know what do you mean in #0x ## is that a variable for a certain byte, example #0x16 that refers to a fairy or something,

How should I insert that in a Rom? Is that necessary to write? and Is that seperated in the first asm?
 
How can I insert this routine in my rom, because it is not he same in the tutorial given by other here..... He/She says that to call that routine in a rom, I must call that using XSE..... Just a noob question...xD

I dont get that, so after I wrote THE RAIN EVO METHOD in THUMB assembler, I need to right that again inTHUMB ASSEMBLER? then after what will I do? Do I need to edit hex or something....sorry for the questions, I just want to know how to compile that and make it works.


another that confuses my mind.... I tried to edit that in G#HS but nothing happened... and Will you give me a link for KK552's syntax for the ini file . another one, will you give me a clearer example of what will I edit in the ini file... for example in evomethod blah blah blah, I just replace the offset of offset I placed my asm or something........


sorry for the questions
Firstly all routines you compile you must put anywhere in the ROM with free space that ends in either 0,4,8,C. You then take that location and put it in the next entry of the table you repointed in step 1. No SXE is needed.

Then open up the ini, and follow the format for G3HS (there is only 'level','item','trade') to add your own entries.
 
Firstly all routines you compile you must put anywhere in the ROM with free space that ends in either 0,4,8,C. You then take that location and put it in the next entry of the table you repointed in step 1. No SXE is needed.

Then open up the ini, and follow the format for G3HS (there is only 'level','item','trade') to add your own entries.

sorry, but can you give the link on how to edit .ini file?
and my second question...How can I perform bl routine

TIA
 
Question, I'm curious if anyone's tried this.

Let's say I used the methods here to introduce leveling up as male only, and made Kirlia level-up as a male in to evolve into Gallade. But I leave Gardevoir's evolution at plain level-up as any gender, except at a higher level. Let's say Gallade is at 25 and Gardevoir is at 30.

Will the world explode if I left things like this? What happens if someone wants to raise a Male Gardevoir under these conditions?

Oh, and do I need to change an item into an evolutionary stone in order to use it for leveling-up while holding an item?
 
Last edited:
Question, I'm curious if anyone's tried this.

Let's say I used the methods here to introduce leveling up as male only, and made Kirlia level-up as a male in to evolve into Gallade. But I leave Gardevoir's evolution at plain level-up as any gender, except at a higher level. Let's say Gallade is at 25 and Gardevoir is at 30.

Will the world explode if I left things like this? What happens if someone wants to raise a Male Gardevoir under these conditions?

Oh, and do I need to change an item into an evolutionary stone in order to use it for leveling-up while holding an item?

It wouldn't work, Gardevoir would need to be female. You can't have Level Up and Friendship evolutions for the same reason. I'm pretty sure that the game doesn't know how to differentiate between the two evolutions if they activate at the same time (if you had a lvl 29 male kirlia that hit 30)
 
It wouldn't work, Gardevoir would need to be female. You can't have Level Up and Friendship evolutions for the same reason. I'm pretty sure that the game doesn't know how to differentiate between the two evolutions if they activate at the same time (if you had a lvl 29 male kirlia that hit 30)

Not exactly, the game can use 1 variable argument (visible in G3HS) which can be a level, hold item, map name, weather, move etc.

There are two branching locations as well:

Check for appropriate level: levelcheckloc: .word 0x08043017
Go straight to the evolution (no levelcheck): evolutionloc: .word 0x0804310D

Also specifics relating to the properties of the pokemon ie: gender, stats, happiness etc can all be decrypted from the pokemon. So yes you can decrypt happiness and then compare it and send it to the levelcheck location.
 
when i apply the .ips in my rom, the rom crashs,
why?
i've installed the patch of jonkane with 870pkm,
cold u tell me what new types of evolution are included in this new patch?
 
when i apply the .ips in my rom, the rom crashs,
why?
i've installed the patch of jonkane with 870pkm,
cold u tell me what new types of evolution are included in this new patch?

No idea, you will have to discuss that with jonkane and ask where he repointed everything in his patch.
 
Hey the other routines can now import to rom? or I need to put bl code?
 
No idea, you will have to discuss that with jonkane and ask where he repointed everything in his patch.

Basically he dosen't need to ask, he just need to go to the offset 0x42fc0 and then to the pointer located there.

i don't know if i should put this here but whatever. for emerald, the table that needs to be copied to free space is at 0x6D198. and the offset that needs to be changed to the repointed table is at 0x6D194. for ruby, the table that needs to be copied to free space is at 0x3F58C. and the offset that needs to be changed to the repointed table is at 0x3F588. however i do not know where the limiting bytes are for either of them

Try Changing In emerald 0x6D180 and in ruby it is 0x3F574.
 
Last edited by a moderator:
can any one tell me what's wrong with this routine, it's for specific map name evolution in emerald

Spoiler:

i figure it may have something to do with the numbers at the bottom, but i'm not good with asm
I just looked at your map bank offset in VBA's memory viewer, and it seems like your offset is wrong. (It had a FF byte in it, and it didn't change when I went from Petalburg City to Route 102) I'll try and find the correct map bank offset, and I'll notify you if I find it.
EDIT: the map bank offset seems to be 0x020322E4. Try that, and see if it works. If it doesn't work, the offsets for the levelcheckloc or the noevo could be wrong. (or the evolutions work differently for em, but I highly doubt that)
EDIT2: *facepalm
I misunderstood which routine you were using. I thought you were using the map bank routine, instead of the map name routine. Sorry about that. That being said though, you probably still have the wrong map name offset, since the ram offsets for fr and em are usually different.
 
Last edited:
can any one tell me what's wrong with this routine, it's for specific map name evolution in emerald

Spoiler:

i figure it may have something to do with the numbers at the bottom, but i'm not good with asm

The map ram of Emerald is 0x0203732C. I spent a few hours to find it out last time. I had been tested it and worked properly.
 
Last edited:
I just looked at your map bank offset in VBA's memory viewer, and it seems like your offset is wrong. (It had a FF byte in it, and it didn't change when I went from Petalburg City to Route 102) I'll try and find the correct map bank offset, and I'll notify you if I find it.
EDIT: the map bank offset seems to be 0x020322E4. Try that, and see if it works. If it doesn't work, the offsets for the levelcheckloc or the noevo could be wrong. (or the evolutions work differently for em, but I highly doubt that)
EDIT2: *facepalm
I misunderstood which routine you were using. I thought you were using the map bank routine, instead of the map name routine. Sorry about that. That being said though, you probably still have the wrong map name offset, since the ram offsets for fr and em are usually different.

It was fixed. The map ram is 0x0203732C. Could you tell me how to change the map bank and map number into hex code if I using the map bank routine in Emerald? Thanks in advance.
 
It was fixed. The map ram is 0x0203732C. Could you tell me how to change the map bank and map number into hex code if I using the map bank routine in Emerald? Thanks in advance.
could you find the decryptpoke offset for emerald? if we have it that means we could port the existing evolution routines from FR to Emerald.
 
Back
Top