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

Adding new evolution methods [FR]

persian_17

Trainer
31
Posts
16
Years
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:

daniilS

busy trying to do stuff not done yet
409
Posts
10
Years
  • Age 24
  • Seen Jan 29, 2024
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.
 

daniilS

busy trying to do stuff not done yet
409
Posts
10
Years
  • Age 24
  • Seen Jan 29, 2024
But the remoraid stays in the party right? its better if shellder and slowpoke will be joined like what should happen

That's why I said edit. randomfillertoreachcharacterminimum
 

kearnseyboy6

Aussie's Toughest Mudder
300
Posts
15
Years
  • Seen Jun 22, 2019
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.
 

Lance32497

LanceKoijer of Pokemon_Addicts
792
Posts
9
Years
Step 2 (Creating evolution routines; ASM needed)
Spoiler:
Spoiler:
 

Lance32497

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

kearnseyboy6

Aussie's Toughest Mudder
300
Posts
15
Years
  • Seen Jun 22, 2019
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.
 

Lance32497

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

Chronosplit

I play for keeps!
491
Posts
13
Years
  • Seen May 3, 2022
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:

MrDollSteak

Formerly known as 11bayerf1
858
Posts
15
Years
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)
 

kearnseyboy6

Aussie's Toughest Mudder
300
Posts
15
Years
  • Seen Jun 22, 2019
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.
 

~SAGE

Peruvian Rom Hacker
39
Posts
9
Years
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?
 

kearnseyboy6

Aussie's Toughest Mudder
300
Posts
15
Years
  • Seen Jun 22, 2019
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.
 

anonyboy

Pokemon Aerial Emerald Creator&Pokemon Hybrid Co-C
286
Posts
10
Years
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:
252
Posts
10
Years
  • Age 27
  • Seen Jul 6, 2019
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:
116
Posts
16
Years
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:
116
Posts
16
Years
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.
 

anonyboy

Pokemon Aerial Emerald Creator&Pokemon Hybrid Co-C
286
Posts
10
Years
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