Advertiser Content

Tutorial Adding new evolution methods [FR] Page 9

Started by kearnseyboy6 June 20th, 2014 1:51 AM
  • 54510 views
  • 226 replies
Seen January 10th, 2017
Posted April 21st, 2016
180 posts
5.7 Years
A simple request:

I read earlier that this is supposed to be easy, but my ASM skills are none. Could someone create a routine that evolves a Pokemon holding an item at ANY level and ANY time of the day WITHOUT losing the item.

This routine has been created for night-time and day-time respectively, but I would like to have it regardless of time.

Example: Dusklops at ANY level at ANY time of the day --> You give him a hold item --> Dusklops evolves and you get to keep the item afterwards.

Thanks in advance.

pokefreak890

The One that will make everything great

Male
Seen November 4th, 2018
Posted January 23rd, 2018
820 posts
5 Years
Okay hello there Pokecommunity I'm trying to insert new evolutions for my base and I keep getting stuck at step 2

Spoiler:

bl decrypt

decrypt: push {r0-r7}
mov r1, #0x##
ldr r2, decryptpoke
bx r2

decryptpoke: .word 0x0803FBE9


Spoiler:


Check for appropriate level: levelcheckloc: .word 0x08043017
Go straight to the evolution (no levelcheck): evolutionloc: .word 0x0804310D



Once you are done assemble the .asm file and place it in your ROM somewhere. Now go to your table and add another entry pointing to the assembled code (you do NOT need +1). Now

So I have 3 questions

1. What do I put in for the "##"
2. Do I compile what's in the second spoiler and if yes what do I have to do to get it working is it just a simple paste write and nothing more or do I have to do more to it
3.so once I put the assembled routine in for the first spoiler do I have to go back to my reprinted evolution table and write the pointer down? And if so is it the first pointer or would that be somewhere else

Thanks for taking the time to answer these questions
3DS FREIND CODE : 2724-3540-0898

EdgeZard X

Seen March 13th, 2018
Posted October 21st, 2016
35 posts
4.2 Years
So I looked at the Dawn Stone Routine, but I wasn't sure how to correctly use it;

Spoiler:
"Change the values in the lines marked UPDATE THIS to the indexes of male stone evos and female stone evos. Leave their entries blank in the general evolution table; stone evolutions function differently from level-up evolutions."


Does the "indexes" refer to the indexes of the Pokémon that evolve by Dawn Stone (Kirlia, Snorunt), or the indexes of Pokémon that have evolved from Dawn Stone (Gallade, Froslass)?

And....

Spoiler:
".org 0x4318e
lsl r0, r0, #0x0
ldr r2, .MethodAddr
bx r2

.MethodAddr: .word 0x085B2521 #UPDATE THIS TO MAIN FUNCTION OFFSET+1


What does it mean by main function, and what does the 0x4318e refer to?

(I'd been trying to find a method of evolving Kirlia and Snorunt into Gallade and Froslass without making Gardevoir female only and Glalie male only. I have the Dawn Stone in my hack, but it won't work as it should.)
CHALA CHALLA KA HAPPY MEAL TIME!
Age 24
Male
Seen April 2nd, 2017
Posted August 7th, 2016
5 posts
6.7 Years
I am pretty much clueless as to how to code in asm, but by looking at the day and night held item evolutions and some trial and error, I managed to remove the day/night check for a any time held item evolution. It's pretty useless if you have day/night in your hack, but if you're like me and hacking firered without adding a clock, it has its uses. Anyways, here it is:

Spoiler:
.text
.align 2
.thumb
.thumb_func
.global dayevoitemhold

main:
push {r0-r7}
ldr r5, time
ldrb r5, [r5, #0x0]
cmp r5, #0x73
beq exit
cmp r5, #0x73
beq exit
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
mov r1, #0xC
bl decrypt
mov r11, r0
pop {r0-r7}
mov r1, r11
cmp r1, r2
bne exit
mov r1, #0xC
mov r0, r8
bl encrypt
pop {r0-r7}
mov r9, r3
pop {r0-r7}
mov r1, r9
ldr r0, levelcheckloc
bx r0
decrypt:
push {r0-r7}
ldr r2, decryptpoke
bx r2
encrypt:
push {r0-r7}
ldr r2, blank
ldr r5, encryptpoke
bx r5
exit:
pop {r0-r7}
ldr r0, noevo
bx r0

.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
time: .word 0x03005542
blank: .word 0x020242A2
decryptpoke: .word 0x0803FBE9
encryptpoke: .word 0x0804037D
Ditto is strongest. Second only to arceus.

thedarkdragon11

New World Pirate

Male
Raftel, New World
Seen 7 Minutes Ago
Posted 2 Hours Ago
872 posts
10.5 Years
I am pretty much clueless as to how to code in asm, but by looking at the day and night held item evolutions and some trial and error, I managed to remove the day/night check for a any time held item evolution. It's pretty useless if you have day/night in your hack, but if you're like me and hacking firered without adding a clock, it has its uses. Anyways, here it is:

Spoiler:
.text
.align 2
.thumb
.thumb_func
.global dayevoitemhold

main:
push {r0-r7}
ldr r5, time
ldrb r5, [r5, #0x0]
cmp r5, #0x73
beq exit
cmp r5, #0x73
beq exit
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
mov r1, #0xC
bl decrypt
mov r11, r0
pop {r0-r7}
mov r1, r11
cmp r1, r2
bne exit
mov r1, #0xC
mov r0, r8
bl encrypt
pop {r0-r7}
mov r9, r3
pop {r0-r7}
mov r1, r9
ldr r0, levelcheckloc
bx r0
decrypt:
push {r0-r7}
ldr r2, decryptpoke
bx r2
encrypt:
push {r0-r7}
ldr r2, blank
ldr r5, encryptpoke
bx r5
exit:
pop {r0-r7}
ldr r0, noevo
bx r0

.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
time: .word 0x03005542
blank: .word 0x020242A2
decryptpoke: .word 0x0803FBE9
encryptpoke: .word 0x0804037D
Whoa! Thanks a lot for this! Does this remove the item?

Starfall321

OnePunchStarfall

Seen August 3rd, 2016
Posted July 21st, 2016
36 posts
3.5 Years
I am pretty much clueless as to how to code in asm, but by looking at the day and night held item evolutions and some trial and error, I managed to remove the day/night check for a any time held item evolution. It's pretty useless if you have day/night in your hack, but if you're like me and hacking firered without adding a clock, it has its uses. Anyways, here it is:

Spoiler:
.text
.align 2
.thumb
.thumb_func
.global dayevoitemhold

main:
push {r0-r7}
ldr r5, time
ldrb r5, [r5, #0x0]
cmp r5, #0x73
beq exit
cmp r5, #0x73
beq exit
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
mov r1, #0xC
bl decrypt
mov r11, r0
pop {r0-r7}
mov r1, r11
cmp r1, r2
bne exit
mov r1, #0xC
mov r0, r8
bl encrypt
pop {r0-r7}
mov r9, r3
pop {r0-r7}
mov r1, r9
ldr r0, levelcheckloc
bx r0
decrypt:
push {r0-r7}
ldr r2, decryptpoke
bx r2
encrypt:
push {r0-r7}
ldr r2, blank
ldr r5, encryptpoke
bx r5
exit:
pop {r0-r7}
ldr r0, noevo
bx r0

.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
time: .word 0x03005542
blank: .word 0x020242A2
decryptpoke: .word 0x0803FBE9
encryptpoke: .word 0x0804037D
Pretty sure you didn't remove the check, but bypassing it with some useless code.

Just remove these line:
Spoiler:
.text
.align 2
.thumb
.thumb_func
.global dayevoitemhold

main:
push {r0-r7}
ldr r5, time
ldrb r5, [r5, #0x0]
cmp r5, #0x73
beq exit
cmp r5, #0x73
beq exit

add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
mov r1, #0xC
bl decrypt
mov r11, r0
pop {r0-r7}
mov r1, r11
cmp r1, r2
bne exit
mov r1, #0xC
mov r0, r8
bl encrypt
pop {r0-r7}
mov r9, r3
pop {r0-r7}
mov r1, r9
ldr r0, levelcheckloc
bx r0
decrypt:
push {r0-r7}
ldr r2, decryptpoke
bx r2
encrypt:
push {r0-r7}
ldr r2, blank
ldr r5, encryptpoke
bx r5
exit:
pop {r0-r7}
ldr r0, noevo
bx r0

.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
time: .word 0x03005542
blank: .word 0x020242A2
decryptpoke: .word 0x0803FBE9
encryptpoke: .word 0x0804037D

Froosty

The_Learner

Age 21
Male
Somewhere in this world.
Seen June 29th, 2019
Posted May 26th, 2018
543 posts
5.2 Years
I dont know whats happening but there is some error with the male and female evolution.

they work perfectly fine but the name of the pokemon doesnt change at all.
i set if male then evolution of squirtle into pidgey to check,
it evolved into pidgey but the name still remained squirtle....
any idea how to fix it???

actually seems like its the error with all the methods listed

EDIT: can anyone pls help me with it!
Its not a major error that causes the game crash but its still a error, I want to make my hack game as much as errorless as possible
so anyone pls help me.
.
simply you can check if its happening to you also or nor!
If not I will try once again :D
Thanks .....
Male
Seen February 7th, 2017
Posted December 31st, 2016
13 posts
3.9 Years
ok so i had my goodra style evolution in my game and when i tested it i thought it worked fine but i just found out that for some reason if i level my pokemon in the rain and hes not a high enough level (example: i set my squirtle to evolve at lvl 8 in the rain into blastoise [dont ask y lvl 8 random number i know lol]) the screen of my game just stays black and cant do anything else :/ anyone know why this would happen?
Seen 4 Weeks Ago
Posted 4 Weeks Ago
41 posts
1.9 Years
I don't understanding ASM yet but just copy the code,compile and after edit aini in G3HS?
Someone can create a routine like Gligar, Happiny and Sneasel evo mode but without Day/Night condition?

I want do this to allow Trade pokemon evolve with Lvl Up with item, like Scyther -> Metal Coat + Lvl Up -> Scizor or Graveler to Golem with Hard Stone

Lunos

Random Uruguayan User

Male
Montevideo (Uruguay)
Online now
Posted 7 Hours Ago
2,083 posts
11.1 Years
Hey, can someone do some simplification/optimization work like jiangzhengwenjzw did here on Dark Magnezone's held item evolution routine?
I'm a fan of preserving as much free space as possible, and judging by Starfall321's comment the routine might be unoptimized xD ..
I tried Starfall's own simplification but it throws an error when trying to compile it.

Lance Koijer 2.0

Lance Koijer

Male
Criscanto Town
Seen 1 Day Ago
Posted 1 Week Ago
82 posts
1.6 Years
Can you make an evolution routine for using an item in a specific map?
That's hard to do because it involves two parameters. The first one is the item number and the second one is the Map Number. Unless there is a specific item or specific map that will be used for checking. I'll be back with an evolution routine which requires a table to be created.

Prof. Leon Dias

Let your memes be dreams

Male
A deep underground lab somewhere...
Seen 2 Days Ago
Posted 3 Weeks Ago
95 posts
6.8 Years
I followed all directions and every evolution method listed in the OP works like a charm on my rom base. I additionally expanded evolutions to 8 (offset : 727000), made necessary changes and all methods still work.
However there is a glaring issue.

Apparently if I expand pokemon/pokedex using PGE or G3HS, the rom will crash every time you win a battle, be it wild, trainer, etc. I tested the rom before expansion and after, various times using backups.
On the routines that required updating the pokemon stat table (pancham, male, female, etc.) I have done so and the same result is produced. When the game should fade to black and return to the overworld, instead it is stuck there.
Check Out My Projects:

& My Ultimate Fire Red Base
https://www.pokecommunity.com/showthread.php?t=409672

Discord to join my Wish/Rombase server for updates, questions, and info:
https://discord.gg/N46NeqS
Male
London
Seen 2 Days Ago
Posted September 20th, 2019
58 posts
1.3 Years
Hello. This thread is probably inactive but I was hoping for some assistance that's slightly maybe off topic. Hopefully a simple request compared to some of the requests in this thread. I'm not looking to add new evolution methods, I simply want to expand the number of max evolutions per Pokemon in the game from 5 to 8 to account for Eeveelutions.

I saw the edit in the original post saying Change F019 TO 7000 but I didn't quite understand this, I tried changing the bytes at F019 to 7000 in a hex editor which didn't help, so I changed them back, and there are multiple occurrences of F019 in the hex data so I'm not sure which one to try and change.

How do I simply tell the game I want 8 evolutions per Pokemon, not 5. Is it possible through just hex editing as ASM is a little advanced for me. I scrolled through the comments but couldn't find what I was looking for.
Seen August 18th, 2019
Posted May 11th, 2019
41 posts
1.7 Years
Hello. This thread is probably inactive but I was hoping for some assistance that's slightly maybe off topic. Hopefully a simple request compared to some of the requests in this thread. I'm not looking to add new evolution methods, I simply want to expand the number of max evolutions per Pokemon in the game from 5 to 8 to account for Eeveelutions.

I saw the edit in the original post saying Change F019 TO 7000 but I didn't quite understand this, I tried changing the bytes at F019 to 7000 in a hex editor which didn't help, so I changed them back, and there are multiple occurrences of F019 in the hex data so I'm not sure which one to try and change.

How do I simply tell the game I want 8 evolutions per Pokemon, not 5. Is it possible through just hex editing as ASM is a little advanced for me. I scrolled through the comments but couldn't find what I was looking for.
You can use G3HS for that.
Advertiser Content