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

thedarkdragon11

New World Pirate
529
Posts
14
Years
This is easy. Hard is making the item go away.
Maybe hooking into the stone evolution, where you can't cancel. But I haven't found that, and didn't mind to keep looking as nobody seemed to show interest for it.

I see... Well, I'm interested because I'm planning to make a hack and replace the trade evolution with hold item with that...

By the way, if in trade it is possible, maybe it is also possible to check that (the trade with item) routine?
 
Last edited:
6
Posts
8
Years
  • Age 28
  • Seen Jul 1, 2016
So I'm not the greatest programmer out there ad I'm fairly new to the community, so any help or advice is greatly appreciated.
My plan was to create a Fire Red Rom where Eevee would have an evolution for each type. But there's not enough methods to do this, so I found the OP and attempted to follow the tutorial the best I could.

-Copied the table at 0x042FC4 to 0x720000
-Changed the pointer at 0x042FC0 from C4 2F 04 08 to 00 00 72 08
-Changed the number of evolutions at 0x042FAA from 0E to 10 (added two I believe)
-Copied the Day Time Held Item and Night Time Held Item evolution method codes from the OP into Notepad, saved them as .asm files, assembled them into .bat files, then used a hex editor to insert them into the rom at 0x720050 and 0x7200D0 respectively
-(I think) I added two pointers to the end of the repointed table at 0x72003C (pointer 50 00 72 08) and 0x720040 (pointer D0 00 72 08)
-Edited the .ini file for G3HS, adding Day Held Item and Night Held Item to the evolutionmethods line and Item and Item to the evomethodproperties line
-Used primaldialga's DNS program to add the RTC and DAN to the rom at 0x900000 and beyond.

The problem I'm having now is that the new evolution methods do not appear in G3HS. Did I miss a step or make some dumb mistake? Any help or advice is welcome and appreciated.
Thanks in advance.
 

Substitute Doll

An Alolan Exeggutor
115
Posts
8
Years
So I'm not the greatest programmer out there ad I'm fairly new to the community, so any help or advice is greatly appreciated.
My plan was to create a Fire Red Rom where Eevee would have an evolution for each type. But there's not enough methods to do this, so I found the OP and attempted to follow the tutorial the best I could.

-Copied the table at 0x042FC4 to 0x720000
-Changed the pointer at 0x042FC0 from C4 2F 04 08 to 00 00 72 08
-Changed the number of evolutions at 0x042FAA from 0E to 10 (added two I believe)
-Copied the Day Time Held Item and Night Time Held Item evolution method codes from the OP into Notepad, saved them as .asm files, assembled them into .bat files, then used a hex editor to insert them into the rom at 0x720050 and 0x7200D0 respectively
-(I think) I added two pointers to the end of the repointed table at 0x72003C (pointer 50 00 72 08) and 0x720040 (pointer D0 00 72 08)
-Edited the .ini file for G3HS, adding Day Held Item and Night Held Item to the evolutionmethods line and Item and Item to the evomethodproperties line
-Used primaldialga's DNS program to add the RTC and DAN to the rom at 0x900000 and beyond.

The problem I'm having now is that the new evolution methods do not appear in G3HS. Did I miss a step or make some dumb mistake? Any help or advice is welcome and appreciated.
Thanks in advance.
You need to edit the .ini of G3HS or the new evolution methods won't appear.
 
6
Posts
8
Years
  • Age 28
  • Seen Jul 1, 2016
Originaly posted by Deltakirby:
"You need to edit the .ini of G3HS or the new evolution methods won't appear."

I've already done that, and that's why I'm confused as to why it's not working.
 
275
Posts
8
Years
Oh I missed that. So for the argument its just which method then correct?

Sorry bro, didn't understand your question. =/

I see... Well, I'm interested because I'm planning to make a hack and replace the trade evolution with hold item with that...

By the way, if in trade it is possible, maybe it is also possible to check that (the trade with item) routine?

I can try to look into there, but there are a few problems. For starters, using trade evolution's animation might not work, because it's not an evolution that changes screen. It uses the screen that is there after you trade your Pokémon. Second problem is related to how the evolution happens.
Evolutions are triggered after an argument is confirmed true, but it only checks that argument for the type of evolution method (leveling up, using an item or trading), i.e. it won't look up for trade+item if the Pokémon leveled up. It will skip trade and item evolutions and check only the level up routines (which is the one I used to do Level+Item).
The whole evolution routine check that we are hacking here is part of a bigger routine that also calls the evolution animation.
I don't know how the game knows what type of evolution animation to work with, but all three types are checked in the same place, that I'm sure of. So, I don't know if the function returns 3 things: if the Pokémon evolves, to what Pokémon it evolves to and the evolution method type; or if it's checked when the evolution animation is called (not sure if I'm pretty clear).
To delete an item after the evolution animation, I have to get the Pokémon's item an take it from him, which should be simple enough, IF I know where the evolution type the animation wants. Plus, for the Level+Item evolution, either the evolution can't be stopped (which we would have to use other type evolution's animation) or we have to restore the item or not to delete it if the animation is cancelled.
That's how it works.

Originaly posted by Deltakirby:
"You need to edit the .ini of G3HS or the new evolution methods won't appear."

I've already done that, and that's why I'm confused as to why it's not working.

Are you sure you have edited the right G3HS game block? G3HS has a different part of the .ini for each different game, y'know.
 

thedarkdragon11

New World Pirate
529
Posts
14
Years
I can try to look into there, but there are a few problems. For starters, using trade evolution's animation might not work, because it's not an evolution that changes screen. It uses the screen that is there after you trade your Pokémon. Second problem is related to how the evolution happens.
Evolutions are triggered after an argument is confirmed true, but it only checks that argument for the type of evolution method (leveling up, using an item or trading), i.e. it won't look up for trade+item if the Pokémon leveled up. It will skip trade and item evolutions and check only the level up routines (which is the one I used to do Level+Item).
The whole evolution routine check that we are hacking here is part of a bigger routine that also calls the evolution animation.
I don't know how the game knows what type of evolution animation to work with, but all three types are checked in the same place, that I'm sure of. So, I don't know if the function returns 3 things: if the Pokémon evolves, to what Pokémon it evolves to and the evolution method type; or if it's checked when the evolution animation is called (not sure if I'm pretty clear).
To delete an item after the evolution animation, I have to get the Pokémon's item an take it from him, which should be simple enough, IF I know where the evolution type the animation wants. Plus, for the Level+Item evolution, either the evolution can't be stopped (which we would have to use other type evolution's animation) or we have to restore the item or not to delete it if the animation is cancelled.
That's how it works.

I see... How about just after a battle by just gaining EXP (whichever the most possible way that includes hold item and EXP? Or just like Gligar/Sneasel's method but without Day or Night condition?
 
6
Posts
8
Years
  • Age 28
  • Seen Jul 1, 2016
Originally posted by FamiliaWerneck:
Are you sure you have edited the right G3HS game block? G3HS has a different part of the .ini for each different game, y'know. "
I had actually edited all five game blocks just to cover my bases. I honestly think that I might've made my error somewhere in the hex editing, as it definitely isn't my strong suit, but I still cannot tell.
 
275
Posts
8
Years
I see... How about just after a battle by just gaining EXP (whichever the most possible way that includes hold item and EXP? Or just like Gligar/Sneasel's method but without Day or Night condition?

Getting Pokémon to evolve while holding an item after gaining a level is easy (Gligar's and Sneasel's evolution without the day and night requirement). Again, problem is deleting the item.

I had actually edited all five game blocks just to cover my bases. I honestly think that I might've made my error somewhere in the hex editing, as it definitely isn't my strong suit, but I still cannot tell.

Try again, step by step. It doesn't take much time.
Anyways, making it show up over G3HS doesn't require to have it added in your ROM.
Try this: in the "evolutionmethods" and "evolutionargument (or whatever the name is)", when adding an evolution, don't use spaces between commas. Like this (disconsider the order):
"Level Up,Stone,Trade,Trade + Item,Level Up D,Level Up N"
and this:
"...,None,None,Level,Item,Level,Level,Item"
 
6
Posts
8
Years
  • Age 28
  • Seen Jul 1, 2016
Originally posted by FamiliaWerneck
Try this: in the "evolutionmethods" and "evolutionargument (or whatever the name is)", when adding an evolution, don't use spaces between commas. Like this (disconsider the order):
"Level Up,Stone,Trade,Trade + Item,Level Up D,Level Up N"
and this:
"...,None,None,Level,Item,Level,Level,Item"

This was actually the issue, I combed through the .ini and realized I had left spaces. Again, thank you!

Now to take this a step further, I'd like to create another type of evolution no previously listed. It's a night time friendship evo, but instead of checking for max happiness (a value of 255) i'd like to check for min happiness (a value of 0).
I'm sure the night friendship evo code in the op could be modified to make this work, but I'm not sure how it would need to be changed.

Original Night Friendship code:
Spoiler:


Any thoughts?
 
Last edited:
275
Posts
8
Years
If there's no real way for now, I think that's better than nothing...

I'm about to enter test week. Gimme a couple of weeks and I'll start looking into this more incisively than what I am right now.

This was actually the issue, I combed through the .ini and realized I had left spaces. Again, thank you!

Now to take this a step further, I'd like to create another type of evolution no previously listed. It's a night time friendship evo, but instead of checking for max happiness (a value of 255) i'd like to check for min happiness (a value of 0).
I'm sure the night friendship evo code in the op could be modified to make this work, but I'm not sure how it would need to be changed.

Original Night Friendship code:
Spoiler:


Any thoughts?

That probably checks the Friendship value of the Pokémon, always set to maximum. That said, you would just need to go to the Pokémon's evolution argument and make it be 00 instead of FF. If it is done the way I think it is done.
Is this a vanilla routine?
 
Last edited:
6
Posts
8
Years
  • Age 28
  • Seen Jul 1, 2016
Originally posted by FamiliaWerneck
That probably checks the Friendship value of the Pokémon, always set to maximum. That said, you would just need to go to the Pokémon's evolution argument and make it be 00 instead of FF. If it is done the way I think it is done.
Is this a vanilla routine?

Just checked this out, the hex code itself has two ff bytes, one in the beginning and one at 0x00000E. I'm going to change the second and see if that works.
As for this being a vanilla routine, I have no clue what that means.
 
275
Posts
8
Years
Just checked this out, the hex code itself has two ff bytes, one in the beginning and one at 0x00000E. I'm going to change the second and see if that works.
As for this being a vanilla routine, I have no clue what that means.

vanilla = from the original game
not vanilla = hack
If you don't want time to be a factor in your evolution, I think you should just go with the friendship evolution. Again, just changing the number on the Pokémon's argument should do the trick.
 
Last edited:
6
Posts
8
Years
  • Age 28
  • Seen Jul 1, 2016
Originally posted by FamiliaWerneck
vanilla = from the original game
not vanilla = hack
If you don't want time to be a factor in your evolution, I think you should just go with the friendship evolution. Again, just changing the number on the Pokémon's argument should do the trick.

Yes, this is a vanilla routine. I've been seeing what needs to be done to do the things I want to do with my hack.
After editing as I described and inserting this method, gameplay was normal until the pokemon was supposed to evolve. the game reset at that point.
The argument that you're referring to, is it actually in the ASM coding?
 
275
Posts
9
Years


Evolve with a Fairy type move (KDS Credits)

Spoiler:
Found a problem here. If you are using MrDS's patch, you need to change 0xXX to 0x17, not 0x16.


Pancham Evolution (KDS Credits)



Spoiler:

Also, why this routine doesn't check level? I know that in routine levelcheckloc set to the right offset, but in game it doesn't check level. It just makes evolve Pokemon when Dark type is in party, whatever level it is.
 
Last edited:
275
Posts
9
Years
Long time ago I posted a patch with all evolutions implemented. I hope not many people used it, because it wasn't tested and could have been broken (though it looks like it worked fine). So, with no further text, I present new version of my patch, which includes all evolution methods listed here (except Specific Map Evolution) and is completely tested and it is compatible with MrDs Patch. It is provided with ReadMe file. Read that first to avoid any confusion. So here's the link.
 

pokefreak890

The One that will make everything great
853
Posts
9
Years
  • Age 26
  • Seen May 18, 2023
can u please reupload that evolution patch that would be so good for my base
 
Back
Top