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

Trainer 781

Guest
0
Posts
    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
     

    kearnseyboy6

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

    Trainer 781

    Guest
    0
    Posts
    ^- 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:
     

    Trainer 781

    Guest
    0
    Posts
    Yes, but not necessary. Remove it because now it has no use.
     

    GoGoJJTech

    (☞゚ヮ゚)☞ http://GoGoJJTech.com ☜(゚ヮ゚☜)
    2,475
    Posts
    11
    Years
  • 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.
     

    kearnseyboy6

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

    Trainer 781

    Guest
    0
    Posts
    ^ -Well no, because I have not hacked emerald yet. So I don't have much info about emerald offsets.
     

    anonyboy

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

    Trainer 781

    Guest
    0
    Posts
    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:

    anonyboy

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

    kearnseyboy6

    Aussie's Toughest Mudder
    300
    Posts
    15
    Years
    • Seen Jun 22, 2019
    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!
     
    7
    Posts
    9
    Years
    • Seen Jan 28, 2019
    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:

    daniilS

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

    Hmm, new issue. I will also look into it.
     

    persian_17

    Trainer
    31
    Posts
    16
    Years
  • 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... ^_^
     

    daniilS

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