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

I am trying to attempt to create a routine for Evolution During Day From Certain Level (i.e. Tyrunt) by looking at routines for other evolution methods.
The pokemon by this method is evolved in day due to level up and does not evolve in night, but is unable to check the required level in the argument. (i.e. evolves at any level during day on levelling up). Can somebody tell me what I am missing>

Code:
.text
.align 2
.thumb
.thumb_func
.global daylevelup

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrb r2, [r3, #0x2]
mov r0, r8
ldr r6, time
ldrb r6, [r6, #0x0]
cmp r6, #0x15
bge exit
cmp r6, #0x6
blt exit
mov r10, r3
pop {r0-r7}
mov r1, r10
ldr r0, levelcheckloc
bx r0
exit:
pop {r0-r7}
ldr r0, noevo
bx r0

.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
time: .word 0x03005542
 
I am trying to attempt to create a routine for Evolution During Day From Certain Level (i.e. Tyrunt) by looking at routines for other evolution methods.
The pokemon by this method is evolved in day due to level up and does not evolve in night, but is unable to check the required level in the argument. (i.e. evolves at any level during day on levelling up). Can somebody tell me what I am missing>

Code:
.text
.align 2
.thumb
.thumb_func
.global daylevelup

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
[B]ldrb r2, [r3, #0x2][/B]
mov r0, r8
ldr r6, time
ldrb r6, [r6, #0x0]
cmp r6, #0x15
bge exit
cmp r6, #0x6
blt exit
mov r10, r3
pop {r0-r7}
mov r1, r10
ldr r0, levelcheckloc
bx r0
exit:
pop {r0-r7}
ldr r0, noevo
bx r0

.align
levelcheckloc: .word [B]0x0804310D[/B]
noevo: .word 0x08043111
time: .word 0x03005542

0x0804310D: That location will jump straight to the evolution, ie: no check. If you want to go to the level check routine you need 0x08043017.

Now, you can either change that or do your own level check. You loaded the level into r2 with this code:

ldrb r2, [r3, #0x2]

You can decrypt your level with the decrypt function and compare, or just use the level check already in the game stated above.

PS. Can I use and credit your routine in the OP? It works on my rom :)
 
^- Just remove these lines in the night time item hold evolution then you are set:

Code:
ldr r5, time
ldrb r5, [r5, #0x0]
cmp r5, #0x15
bge test
cmp r5, #0x6
blt test
b exit
test:
 
Yes, but not necessary. Remove it because now it has no use.
 
I really hope you understand that there are lines you need to change based on how many evolutions per pokemon you have. Without those changes, people will have errors.
 
I really hope you understand that there are lines you need to change based on how many evolutions per pokemon you have. Without those changes, people will have errors.

It's covered already in the tutorial ;)
 
^ -Well no, because I have not hacked emerald yet. So I don't have much info about emerald offsets.
 
I've Added move induced Evoultion To the rom, but how do i make it display on g3hs, And should i put freespace in place of the table that's repointed in the beginning of the tut?

EDIT: It Shows up In G3HS But uses the item table and A Ton of garbage after it, How do i Make it Show moves?
 
Last edited:
I've Added move induced Evoultion To the rom, but how do i make it display on g3hs, And should i put freespace in place of the table that's repointed in the beginning of the tut?

EDIT: It Shows up In G3HS But uses the item table and A Ton of garbage after it, How do i Make it Show moves?

You have to cross-reference the move id with item id, i.e. in G3HS suppose you want to evolve by learning the move pound, gets its move_id which is 0x1, now search the item which has the same item_id of 0x1 (say masterball for example, don't remember the item with id 0x1), set the item with the id 0x1 in G3hs, then the pokemon will evolve by learning pound. This is a bit inconvenient, but this only the way you can set the evo method for now. (The future versions of G3HS are expected to add the dropdown list for moves and mapnames).

As for filling the original table with freespace is not neccessary, but generally, it is a good practice while relocating tables as the data there is practically useless, and if big tables are repointed then you can also get some extra amount of freespace.
 
Last edited:
You have to cross-reference the move id with item id, i.e. in G3HS suppose you want to evolve by learning the move pound, gets its move_id which is 0x1, now search the item which has the same item_id of 0x1 (say masterball for example, don't remember the item with id 0x1), set the item with the id 0x1 in G3hs, then the pokemon will evolve by learning pound. This is a bit inconvenient, but this only the way you can set the evo method for now. (The future versions of G3HS are expected to add the dropdown list for moves and mapnames).

As for filling the original table with freespace is not neccessary, but generally, it is a good practice while relocating tables as the data there is practically useless, and if big tables are repointed then you can also get some extra amount of freespace.

Actually It eventually showed me The move list but wasn't working in the game.
BTW, What exactly do i need to edit in the Pokemon BST Table to make The gender Evolutions work?
 
i've found a bug regarding the level up with item in the night/day, when evolving if you cancel the evolution, the item used still disappears, is there any way to fix that?

Aaaaah nope, dammit sorry.
 
is there any way to make it so you cannot cancel the evolution? or not get rid of the item at all? they're not ideal but they'd fix the problem

yes you can actually sorry! I'll do some research on the evolution stone as that's where you can't press the B button. I'm super busy at the moment but I'll try to have it done by the end of the week!
 
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! :)
 
Last edited:
Thanks for information bro Now I will Evol with Day And Night Like Pokemon PPD HGSS
 
Could you do an evolution which a pokemon will evolve just by holding an item, and evolve back if you remove the held item? it could be a good alternative for mega evolution... ^_^
 
Could you do an evolution which a pokemon will evolve just by holding an item, and evolve back if you remove the held item? it could be a good alternative for mega evolution... ^_^

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.
 
Back
Top