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

kearnseyboy6

Aussie's Toughest Mudder
300
Posts
15
Years
  • Seen Jun 22, 2019
yeah i was unsure how to do the hex part, does each specific map have a number that corresponds or what?

Yep, what it does is load the map bank and map number (3.14 for example in Amap)

Next here is what an evolution entry looks like:

04 00 10 00 02 00 00 00 00

04 00 Evolution Method (Level in this case). Basically this is the 4th routine in the ASM table. SO for specific map, just correlate yours.

10 00 Argument (Level 16 in this case). So basically if you wanted map 3.14 you would type here: 0E 03

02 00 Pokemon to evolve into (Ivysaur etc)

00 00 Filler bytes 'cause alignment is important.

Find your mon's evolution table and your good to go!
 
3,044
Posts
9
Years
I have a new question, I hope ya'll don't mind! In that Male & Female Evolution routines, you said, "(please don't forget to update your pokemon base stats table...)"
What do you mean by that?
 

kearnseyboy6

Aussie's Toughest Mudder
300
Posts
15
Years
  • Seen Jun 22, 2019
I have a new question, I hope ya'll don't mind! In that Male & Female Evolution routines, you said, "(please don't forget to update your pokemon base stats table...)"
What do you mean by that?

pokebasestats = 0x254784

That's the offset of a vanilla FR ROM, look it up in your GH3S ini and make the changes in the routine.
 
275
Posts
8
Years
Just curious, was anyone able to make Shellder disappear after a Slowpoke evolves into Slowbro with a Shellder in the party?
I am trying this after I put the National Dex to work together with the Pokédex, and I believe that's the only evolution that nobody solved in this thread.
Just to make sure, Combee's evolution and Froslass and Gallade's were also covered? I know that Level up + Item was.
Anyways, just checking guys. Thanks in advance.

EDIT: Forgot this other question:
I am asking this simultaneously in another thread, but just to make sure. Is there a way I can make Pokémon transform? I'm asking this because of Rotom's and Shaymin's forms, and then I learned Giratina has different versions too. Is there any way to pull that, transformations (by holding items, I belive would be the easier way) and not evolutions?
And how does that work in the Pokédex? Like the Unown, the first you capture is shown within the Pokédex adn the rest you just see checking each Pokémon? And how would I add two or more Pokédex entries (for each transformation form) occupying only one number? Never played the games after Generation III, I'm curious.
 
Last edited:

kearnseyboy6

Aussie's Toughest Mudder
300
Posts
15
Years
  • Seen Jun 22, 2019
Just curious, was anyone able to make Shellder disappear after a Slowpoke evolves into Slowbro with a Shellder in the party?
Yes, just use the evolve with other mon in party routine, G3HS has the arguments for this explained in the OP.

I am trying this after I put the National Dex to work together with the Pokédex, and I believe that's the only evolution that nobody solved in this thread.
You mean you only want the chellder evolution to work after the National Dex is received? Then you need a new routine that is the exact same as the above one and just use a flag check.

Just to make sure, Combee's evolution and Froslass and Gallade's were also covered? I know that Level up + Item was.
Anyways, just checking guys. Thanks in advance.

Combee's: Yes
Frosslass/Gallade: No

EDIT: Forgot this other question:
I am asking this simultaneously in another thread, but just to make sure. Is there a way I can make Pokémon transform? I'm asking this because of Rotom's and Shaymin's forms, and then I learned Giratina has different versions too. Is there any way to pull that, transformations (by holding items, I belive would be the easier way) and not evolutions?
And how does that work in the Pokédex? Like the Unown, the first you capture is shown within the Pokédex adn the rest you just see checking each Pokémon? And how would I add two or more Pokédex entries (for each transformation form) occupying only one number? Never played the games after Generation III, I'm curious.
Not the thread for this, but being researched at the moment. Shouldn't be too far away.
 
275
Posts
8
Years
Yes, just use the evolve with other mon in party routine, G3HS has the arguments for this explained in the OP.

I didn't understand the "evolution methods" part of the OP, truth be told.
I "got" the codes alright, how to find space, how to make it appear in other hacking tools, but I couldn't identify what evolution is what in the codes there.
Of course, that's probably because I don't know this programming language yet, but no sweat, I'll study it.


You mean you only want the chellder evolution to work after the National Dex is received? Then you need a new routine that is the exact same as the above one and just use a flag check.

No, I just meant that I'll just try enabling the National Dex from start and then I'll try inserting new evolution methods into my game. Just my order of hacking the game.

Combee's: Yes
Frosslass/Gallade: No

How does it work for Combee? And why it wouldn't for the other two?
If I can't make it, also, no problem. But I'll make both these evolutions like Poliwrath's/Politoed's. A simple "two way of evolving into two different Pokémon". Plus, Gallade and Froslass would have both genders. I don't really have a problem with that.

Not the thread for this, but being researched at the moment. Shouldn't be too far away.

Found some transformations done by daniilS, I believe. For some Pokémon, it's done already and undergoing for others.
I believe they are looking for a way to generalize it to transform any Pokémon, if wanted.

Thanks a lot, man!
 
534
Posts
11
Years
  • Age 26
  • Seen Jul 24, 2023
After I find "C4 2F 04 08" at 0X42FC0, how do I change the pointer to 00900000 (same place OP put his code)?
Also, why the hex code stills red after I paste it over 00900000 data?

You reverse it, i.e. make 900000 to 00 00 90 08.
Next, it is red because you have changed the file and haven't saved the changes you've made. Pressing ctrl+s or File>Save will make it disappear. ^_^
 
275
Posts
8
Years
The patch someone posted does not work with MrDollSteak's rombase. Could someone please add a patch that works with the rombase?

Edit: It probably has to do with the .ini, I'll investigate.

Edit 2: Fixed it. Just a quick .ini change and I got it to work! :)

How can I do it, bro? I'm using the newest version of MrDollSteak's Rombase, 1.5a version.
I just need to patch the game again, after MrDollSteak's own patch, right?
I noticed the .ini file has a section named [MrDS] version 1.4...
Also, noticed evolutions are in another section, different from MrDS's Rombase section.

Also, can I still add more evolution methods that are not added in the patch?
Can I edit the patched evolutions? If yes, how?
 
275
Posts
8
Years
Does anyone know what changes I have to make to the ini files so the patch for the evolutions works in other tools with MrDS's Rombase?
It apparently works, as Mustachemon himself already did it.
Also, after applying the patch, how can I make new evolutions? I just continue the process skipping "step 1"? Or will I still have to expand the tables once more?
Thanks in advance, guys.
 

kearnseyboy6

Aussie's Toughest Mudder
300
Posts
15
Years
  • Seen Jun 22, 2019
Does anyone know what changes I have to make to the ini files so the patch for the evolutions works in other tools with MrDS's Rombase?
It apparently works, as Mustachemon himself already did it.
Also, after applying the patch, how can I make new evolutions? I just continue the process skipping "step 1"? Or will I still have to expand the tables once more?
Thanks in advance, guys.

I'm not really sure, I know he repoints the move table, so you need to fix that. Maybe the Items?? But the steps are the same.
 
275
Posts
8
Years
I'm not really sure, I know he repoints the move table, so you need to fix that. Maybe the Items?? But the steps are the same.

Move evolutions are none of my concern. Will move's table still affect anything?
I thing he edit the .ini in the evolution section. Adding patched evolutions to [MrDS]'s Rom. I think there's even a section for [MrDS] in the .ini the guy from the patch provided. I'll try doing that the hard way.
Also, for the steps, I hope the patch already has extended tables for evolutions. Will I have to expand them for each new evolution, or can I just skip this first step, since the patch already expands the evolution tables?
 
Last edited:
275
Posts
8
Years
I'm not really sure, I know he repoints the move table, so you need to fix that. Maybe the Items?? But the steps are the same.

I managed to make it work. I've changed the ini (Just repointed the offsets in the .ini the guy provided to match the offsets in MrDS' 1.5a ini) and added the new evolutions to the evolution methods and all.
I have a doubt, though. Both .inis had the same evolutions table offsets, same everything, but the number of types and moves.
How did Ollie11 expanded the evolutions table without moving it to some new free space?

Also, kearnseyboy6, when you said you can't do a Level+Item evolution because the argument was a limiter (it could have only one argument), did you mean that G3HS can only have one argument?
Because YAPE, for example, has both an Item and a Level boxes (but they never unlock at the same time, because no evolution had both things going on).
If, and only if, G3HS had one more argument space, or both MrDS' and Ollie11's patches were compatible with YAPE, would that evolution (Level + Item) be possible?
Sorry asking this again kearnseyboy6, stuff just come together to my head, and seemed possible. I'm just need to be certain of it, before writing an evolution method code for each evolutionary item I believe the game should have. =P

EDIT: I'm posting the .ini changes using MrDS's 1.5a Rombase with the patch Ollie11 provided, if anyone still need it.

This is Ollie11's PokeRoms.ini:
Spoiler:


This is my PokeRoms.ini:
Spoiler:


In both cases, I just copied MrDS's Rombase .ini as it contains the only changes you really need to make and some part of the last section, so you don't get lost.
In the last section, the one with the new evolutions that starts with [000], change to any 4 letter combination (I chose "Evos"), so MrDS's Rombase stills [0000]. That's only change you need to do to this section, as you are not going to use this.
 
Last edited:

kearnseyboy6

Aussie's Toughest Mudder
300
Posts
15
Years
  • Seen Jun 22, 2019
I managed to make it work. I've changed the ini (Just repointed the offsets in the .ini the guy provided to match the offsets in MrDS' 1.5a ini) and added the new evolutions to the evolution methods and all.
I have a doubt, though. Both .inis had the same evolutions table offsets, same everything, but the number of types and moves.
How did Ollie11 expanded the evolutions table without moving it to some new free space?

Also, kearnseyboy6, when you said you can't do a Level+Item evolution because the argument was a limiter (it could have only one argument), did you mean that G3HS can only have one argument?
Because YAPE, for example, has both an Item and a Level boxes (but they never unlock at the same time, because no evolution had both things going on).
If, and only if, G3HS had one more argument space, or both MrDS' and Ollie11's patches were compatible with YAPE, would that evolution (Level + Item) be possible?
Sorry asking this again kearnseyboy6, stuff just come together to my head, and seemed possible. I'm just need to be certain of it, before writing an evolution method code for each evolutionary item I believe the game should have. =P

First question: G3HS will find the table you repointed so don't worry about it.
Item + Level will never work dynamically. In each evolution routine it loads a argument that will customable. But there is only 1 argument in the routine. So trying to have 2 customizable routines won't work... That's also why Aipom will evolve at any level with double hit in my routine. Purely because the move is customizable so I cannot have a custom level too...

I can write a seperate evolution routine for checking 1 move and any level, but then I would need a routine for ancient power too and mimic and rollout... possible just tedious.

I hope that helped! :)
 
275
Posts
8
Years
First question: G3HS will find the table you repointed so don't worry about it.
Item + Level will never work dynamically. In each evolution routine it loads a argument that will customable. But there is only 1 argument in the routine. So trying to have 2 customizable routines won't work... That's also why Aipom will evolve at any level with double hit in my routine. Purely because the move is customizable so I cannot have a custom level too...

I can write a seperate evolution routine for checking 1 move and any level, but then I would need a routine for ancient power too and mimic and rollout... possible just tedious.

I hope that helped! :)

Yeah, that's the same thing you explained.

I was thinking with Java something like this:
Spoiler:
...and why the hell that could not be possible in ASM, seeming so easy - and mainly possible - in Java ways of thinking (assuming there is a variable for Pokémon item hold and for its level and of course, just creating what I need to get it done =P).

I just asked this 'cause I saw the argument box in G3HS and remembered there was one for item and one for level in YAPE. Thought it could be a limitation of the tool G3HS...
Anyways, I'll write a code for every evolutionary item, then. It is goddamn tedious, but it's better than not having it.
Thanks again man!

EDIT: http://www.pokecommunity.com/showthread.php?p=8793205#post8793205
Can I use this with Mantyke's evolution method for the Slowpoke idea?

EDIT 2: Something that occurred to me today. The tables you referred in OP that we have to extend contain pointers to the actual evolution routines, right?
Can I, instead of expanding, just change the pointer of an existing evolution (that I'll not use, like "Trade" or "Trade+Item") to the pointer of my new evolution routine?
That way I wouldn't have to expand the table for the pointers.
Can I do it? Just assemble a routine for a new evolution and swap its pointer with an existing one I'm not going to use?
 
Last edited:

kearnseyboy6

Aussie's Toughest Mudder
300
Posts
15
Years
  • Seen Jun 22, 2019
Yeah, that's the same thing you explained.

I was thinking with Java something like this:
Spoiler:
...and why the hell that could not be possible in ASM, seeming so easy - and mainly possible - in Java ways of thinking (assuming there is a variable for Pokémon item hold and for its level and of course, just creating what I need to get it done =P).

It is possible XD

I just asked this 'cause I saw the argument box in G3HS and remembered there was one for item and one for level in YAPE. Thought it could be a limitation of the tool G3HS...
Anyways, I'll write a code for every evolutionary item, then. It is goddamn tedious, but it's better than not having it.
Thanks again man!

EDIT: http://www.pokecommunity.com/showthread.php?p=8793205#post8793205
Can I use this with Mantyke's evolution method for the Slowpoke idea?

EDIT 2: Something that occurred to me today. The tables you referred in OP that we have to extend contain pointers to the actual evolution routines, right?
Can I, instead of expanding, just change the pointer of an existing evolution (that I'll not use, like "Trade" or "Trade+Item") to the pointer of my new evolution routine?
That way I wouldn't have to expand the table for the pointers.
Can I do it? Just assemble a routine for a new evolution and swap its pointer with an existing one I'm not going to use?

Yes it's possible just tedious. YAPE will cause errors or not work because there is definitely only 1 parameter:

http://bulbapedia.bulbagarden.net/wiki/Pokémon_evolution_data_structure_in_Generation_III
 

Joexv

ManMadeOfGouda joexv.github.io
1,037
Posts
11
Years
275
Posts
8
Years
Yes it's possible just tedious. YAPE will cause errors or not work because there is definitely only 1 parameter:

http://bulbapedia.bulbagarden.net/wiki/Pokémon_evolution_data_structure_in_Generation_III

Thanks again kearnseyboy6. Also, thanks for the link. Never saw it before and it did help a bit. =D

@FamiliaWerneck
I'll make a evo routine that works for this. Granted as you said, G3HS only has one param so the items used will be based off of a table, is that ok?

I didn't ask for it, 'cause I didn't want to bother (I did ask kearnseyboy6 for help with the evolution routines. Talk about bother... =P).
I also wanted to try my very first ASM challenge. Can we work together?

Also, for both you guys. Do you think we can use that HackMew's 'Take Pokémon" code to take a Shellder when a Slowpoke evolves?
 

jiangzhengwenjzw

now working on katam
181
Posts
11
Years
  • Seen today
Final notes, I am a bit vague on the structure of the routine musts because I am still learning it. However finally all evolutions will be open-sourced and available below in the spoiler (will add more over time).

Spoiler:


Lastly, acknowledgements go to Daniils and Jambo for their guidance and locations for everything.

~ Thank you and good luck



Hello, I am a newbie and I'm kinda confused with this kind of method to write routines as it always push registers and use much stack space.
For example, if I want to use the "specific map evolution", I will write the following function:
Spoiler:
I think it does nothing different with the original routine in the thread so I'm really confused about it. (I haven't tested it yet)
Does evolution hack use special ways to write routines?

Anyway, I've updated the night friendship evolution and day friendship evolution routine so that they will work in fr.
Spoiler:

They're also not tested.
 
Last edited:
Back
Top