The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > Fan Games > Binary ROM Hacking > Binary Hack Tutorials
Reload this Page Adding new evolution methods [FR]

Notices
For all updates, view the main page.

Binary Hack Tutorials Various tools and resources to help you develop your legacy hacks can be found here.

Ad Content
Reply
 
Thread Tools
  #151   Link to this post, but load the entire thread.  
Old June 17th, 2015 (8:49 PM).
jiangzhengwenjzw's Avatar
jiangzhengwenjzw jiangzhengwenjzw is offline
now working on katam
 
Join Date: Sep 2012
Gender: Male
Posts: 175
Quote:
Originally Posted by joexv View Post
Well if they work then I apologize! I was under the impresion that that "required" code was what determined more than just used in decrypting. So good job on simplifying those then!
Thank you for your reply!
Actually only 2 (maybe 3) are tested ok and the others are not tested and my friend is sparing his time testing them so they may have problem at the moment. Therefore, you may be right about keeping these "required" codes and i may be wrong as everything is not explicit now.
Anyway, I'm a bit confused with the function at 0x43110 as it is treated as the abort routine but also used as 6 different evolution methods. I cannot find out how it can distinguish them and I do not have much time to research it.....
Reply With Quote
  #152   Link to this post, but load the entire thread.  
Old June 18th, 2015 (3:23 AM).
FamiliaWerneck's Avatar
FamiliaWerneck FamiliaWerneck is offline
 
Join Date: May 2015
Location: São Paulo, Brasil
Gender: Male
Posts: 275
Does anyone know why we are unable to cancel an evolution by evolutionary stone and how can that be implemented in a custom evolution method?
Reply With Quote
  #153   Link to this post, but load the entire thread.  
Old June 19th, 2015 (5:44 AM).
jirachiwishmaker's Avatar
jirachiwishmaker jirachiwishmaker is offline
 
Join Date: Jul 2007
Location: Forina
Gender: Male
Nature: Lonely
Posts: 116
Quote:
Originally Posted by jiangzhengwenjzw View Post
Thank you very much if you can test and add them ;)
For the latter sentence, r u speaking of the last function? Then r4 needn't be protected as the decrypter function pushes and pops r4 so it won't change XD
And please ignore the last function as it is very bugged and it couldn't be done if the pokemon is not the first one in the party. (I tried to change r8 to fix it as you can see in the label "adjust", but failed.)

Then I've just written a routine to evolve at specific level (the second parameter in the evolution table) when it detects a certain event has happened by checking flag 0x200.
Not tested.
Spoiler:
Code:
.thumb
mov r0, #0x1
lsl r0, r0, #0x9 @you can change the flag ID here and I use 0x200
push {r1-r7}
ldr r1, decrypter
bl decrypt
pop {r1-r7}
cmp r0, #0x1
bne abort
ldr r0, evolve
bx r0

abort:
ldr r0, evolve
add r0, #0xfa
bx r0

decrypt:
bx r1

.align 2
decrypter: .word 0x0806e6d1
evolve: .word 0x8043017


In addition, the routine checking if the Pokemon is shiny to go to level evolution. (Also not tested and I'm a bit not sure if the pokemon data pointer is in r8)
Spoiler:
Code:
.thumb
mov r0, r8
push {r1-r2}
ldrh r1, [r0]
ldrh r2, [r0, #0x2]
eor r1, r2
ldrh r2, [r0, #0x4]
ldrh r0, [r0, #0x6]
eor r0, r2
eor r0, r1
pop {r1-r2}
cmp r0, #0x7
bls evolution
ldr r0, evolve
add r0, #0xfa
bx r0

evolution:
ldr r0, evolve
bx r0

.align 2
evolve: .word 0x8043017


And here I will post the simplified routines in the thread, all not tested. (The routines I write before several days will also be included)
Now the simplified routines are all finished because i only simplified some of them.
Spoiler:

evolve in the specific map:
Code:
.thumb

add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r1, r0, r3
ldrh r0, [r1, #0x2]
push {r1}
ldr r1, mapbank
ldrh r1, [r1]
cmp r1, r0
bne exit
pop {r1}
ldr r0, evolve
bx r0

exit:
pop {r1}
ldr r0, evolve
add r0, r0, #0x4
bx r0

.align 2
evolve: .word 0x0804310D
mapbank: .word 0x02031DBC
Day friendship:
Code:
.thumb
ldr r0, time
ldrb r0, [r0]
cmp r0, #0x15
bge abort
cmp r0, #0x
blt abort
ldr r1, evolve
bx r1

abort:
ldr r0, noevo
bx r0

.align 2
time: .word 0x3005542
evolve: .word 0x8043001
noevo: .word 0x8043111
night friendship:
Code:
.thumb
ldr r0, time
ldrb r0, [r0]
cmp r0, #0x15
bge evolution
cmp r0, #0x6
blt evolution
ldr r0, noevo
bx r0

evolution:
ldr r1, evolve
bx r1

.align 2
time: .word 0x3005542
evolve: .word 0x8043001
noevo: .word 0x8043111
Raining in the Overworld (Goodra)
Code:
.thumb
ldr r0, currentweather
ldrb r0, [r0, #0x0]
cmp r0, #0x3
beq rain
cmp r0, #0x5
beq rain
cmp r0, #0xd
beq rain
ldr r0, levelcheckloc
add r0, #0xfa
bx r0

rain:
ldr r0, levelcheckloc
bx r0

.align 2
levelcheckloc: .word 0x08043017
currentweather: .word 0x02036E12
Night Time Level Up
Code:
.thumb
ldr r0, time
ldrb r0, [r0]
cmp r0, #0x15
bge level
cmp r0, #0x6
blt level
ldr r0, levelcheckloc
add r0, #0xfa
bx r0

level:
ldr r0, levelcheckloc
bx r0


.align 2
levelcheckloc: .word 0x08043017
time: .word 0x03005542
Day Time Level Induced Tyruant(I keep its original time)
Code:
.thumb
ldr r0, time
ldrb r0, [r0]
cmp r0, #0x15
bge exit
cmp r0, #0x6
bls exit
ldr r0, levelcheckloc
bx r0

exit:
ldr r0, levelcheckloc
add r0, #0xfa
bx r0

.align 2
levelcheckloc: .word 0x08043017
time: .word 0x03005542
Specific Map Name evolution(I don't quite know what it means, but anyway I've simplified it)
Code:
.thumb
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r1, r0, r3
ldrh r0, [r1, #0x2]
push {r1}
ldr r1, map
ldrb r1, [r1]
cmp r0, r1
bne exit
pop {r1}
ldr r0, evolve
bx r0

exit:
pop {r1}
ldr r0, evolve
add r0, r0, #0x4
bx r0

.align 2
map: .word 0x2036e10
evolve: .word 0x804310d
I won't simplify the other routines because I'm very lazy and busy. I think they are great and do not need modification.
If you've found any glitches, please post a reply to this post and testing them is very appreciated.


I am not sure if my way of writing evolution routines is correct as it looks different from the original ones in the thread.
All the ASM codes who was simplified by jiangzhengwenjzw have been tested by me, they were working properly. Very nice to see these.
Reply With Quote
  #154   Link to this post, but load the entire thread.  
Old June 19th, 2015 (6:01 AM).
jiangzhengwenjzw's Avatar
jiangzhengwenjzw jiangzhengwenjzw is offline
now working on katam
 
Join Date: Sep 2012
Gender: Male
Posts: 175
Quote:
Originally Posted by jirachiwishmaker View Post
All the ASM codes who was simplified by jiangzhengwenjzw have been tested by me, they were working properly. Very nice to see these.
Thank you very much for your testing!

If you (or anyone) make sure that my simplified routines work properly in FR, you can just use them and bear in mind that you should absolutely keep the original credits and credit of mine is not needed as I actually only do the simplification work.

I hope that someone will check the 2 custom routines written by me though they are not such useful as far as I know XD
Reply With Quote
  #155   Link to this post, but load the entire thread.  
Old June 30th, 2015 (7:45 PM).
Joexv's Avatar
Joexv Joexv is offline
ManMadeOfGouda
joexv.github.io
 
Join Date: Oct 2012
Location: Oregon
Age: 25
Gender: Male
Nature: Sassy
Posts: 1,035
New working and tested routine:
Item and Level evolution!
Note: This works based on one item per routine!!! So you can reuse this for every Pokemon that needs metal coat, but if you want another one to use a Pokeball then you need to edit the routine(just one byte real simple)
Once G3HS is updated to support multiple arguments for evolutions this will make the routine customizable.
Code:
.text
.align 2
.thumb
.thumb_func
.global LevelItemEvo

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrb r2, [r3, #0x2]
@Item Check
mov r0, r8
mov r1, #0xC
bl decrypt
mov r11, r0
pop {r0-r7}
mov r1, r11
cmp r1, #0xc7 @Change this to change item
bne exit
@Item removal
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

exit: 
pop {r0-r7}
ldr r0, noevo
bx r0

encrypt:
push {r0-r7}
ldr r2, blank
ldr r5, encryptpoke
bx r5

decrypt: 
push {r0-r7}
ldr r2, decryptpoke
bx r2

.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
decryptpoke: .word 0x0803FBE9
encryptpoke: .word 0x0804037D
blank: .word 0x020242A2
__________________
New living flesh vessel who dis?
Reply With Quote
  #156   Link to this post, but load the entire thread.  
Old July 1st, 2015 (12:39 PM).
FamiliaWerneck's Avatar
FamiliaWerneck FamiliaWerneck is offline
 
Join Date: May 2015
Location: São Paulo, Brasil
Gender: Male
Posts: 275
Quote:
Originally Posted by joexv View Post
New working and tested routine:
Item and Level evolution!
Note: This works based on one item per routine!!! So you can reuse this for every Pokemon that needs metal coat, but if you want another one to use a Pokeball then you need to edit the routine(just one byte real simple)
Once G3HS is updated to support multiple arguments for evolutions this will make the routine customizable.
Spoiler:
Code:
.text
.align 2
.thumb
.thumb_func
.global LevelItemEvo

main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrb r2, [r3, #0x2]
@Item Check
mov r0, r8
mov r1, #0xC
bl decrypt
mov r11, r0
pop {r0-r7}
mov r1, r11
cmp r1, #0xc7 @Change this to change item
bne exit
@Item removal
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

exit: 
pop {r0-r7}
ldr r0, noevo
bx r0

encrypt:
push {r0-r7}
ldr r2, blank
ldr r5, encryptpoke
bx r5

decrypt: 
push {r0-r7}
ldr r2, decryptpoke
bx r2

.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
decryptpoke: .word 0x0803FBE9
encryptpoke: .word 0x0804037D
blank: .word 0x020242A2
Great work joexv! Congratulations bro, and thanks a lot!
__________________
My Main Team:


Reply With Quote
  #157   Link to this post, but load the entire thread.  
Old July 3rd, 2015 (7:58 PM). Edited July 4th, 2015 by jiangzhengwenjzw.
jiangzhengwenjzw's Avatar
jiangzhengwenjzw jiangzhengwenjzw is offline
now working on katam
 
Join Date: Sep 2012
Gender: Male
Posts: 175
Specific coordinate evolution in specific map:
Code:
.thumb
.align 2
add r0, r6, r7
lsl r0, r0, #3
add r0, r2, r0
add r1, r0, r3
ldrh r0, [r1, #2]
push {r1}
ldr r1, =0x2031DBC
ldrh r1, [r1]
cmp r0, r1
bne end
ldr r0, =0x3005008
ldr r0, [r0]
ldr r0, [r0]
ldr r1, =0x000f003c @for example, 0x000f003c for (3c,f)
cmp r0, r1
bne end
pop {r1}
ldr r0, =0x0804310d
bx r0
end:
pop {r1}
ldr r0, =0x0804310d
add r0, #4
bx r0
Tested. The parameter in G3HS (or you use HxD) is the same as "specific map evolution", which means [byte-mapbank][byte-mapnumber]
The coordinates are reversed in the routine, so please be careful. It should be [hword-Y][hword-X]
For example, if you want your pokemon to evolve in (0x23,0x10e), You should put 0x010e0023 in the above routine.
Reply With Quote
  #158   Link to this post, but load the entire thread.  
Old July 14th, 2015 (12:36 AM).
DizzyEgg's Avatar
DizzyEgg DizzyEgg is offline
 
Join Date: Feb 2014
Location: Poland
Age: 25
Gender: Male
Nature: Quiet
Posts: 794
For some strange reason, day and night friendship evoultions don't work.
__________________
Support Pokeemerald!

Pokeemerald starter pack:
Emerald Expansion
Reply With Quote
  #159   Link to this post, but load the entire thread.  
Old July 14th, 2015 (6:04 AM).
jiangzhengwenjzw's Avatar
jiangzhengwenjzw jiangzhengwenjzw is offline
now working on katam
 
Join Date: Sep 2012
Gender: Male
Posts: 175
Quote:
Originally Posted by DizzyEgg View Post
For some strange reason, day and night friendship evoultions don't work.
Have you tried my method?
http://www.pokecommunity.com/showpost.php?p=8797411&postcount=144
Reply With Quote
  #160   Link to this post, but load the entire thread.  
Old July 20th, 2015 (9:41 PM).
thedarkdragon11's Avatar
thedarkdragon11 thedarkdragon11 is offline
New World Pirate
 
Join Date: May 2009
Location: Laugh Tale, New World
Gender: Male
Nature: Hasty
Posts: 518
How about Karrablast-Shelmet trade evolution, Gligar and Sneasel evolution, and Inkay evolution? I believe Inkay's is almost impossible?
__________________
Reply With Quote
  #161   Link to this post, but load the entire thread.  
Old July 20th, 2015 (11:37 PM).
DizzyEgg's Avatar
DizzyEgg DizzyEgg is offline
 
Join Date: Feb 2014
Location: Poland
Age: 25
Gender: Male
Nature: Quiet
Posts: 794
Quote:
Originally Posted by darky123 View Post
How about Karrablast-Shelmet trade evolution, Gligar and Sneasel evolution, and Inkay evolution? I believe Inkay's is almost impossible?
There already is Gligar and Sneasel evolution, look up the first post and see "day/night evolution while holding an item". How would you want Inkay's evolution to look like on a emulator though?
__________________
Support Pokeemerald!

Pokeemerald starter pack:
Emerald Expansion
Reply With Quote
  #162   Link to this post, but load the entire thread.  
Old July 21st, 2015 (4:12 AM).
thedarkdragon11's Avatar
thedarkdragon11 thedarkdragon11 is offline
New World Pirate
 
Join Date: May 2009
Location: Laugh Tale, New World
Gender: Male
Nature: Hasty
Posts: 518
Quote:
Originally Posted by DizzyEgg View Post
There already is Gligar and Sneasel evolution, look up the first post and see "day/night evolution while holding an item". How would you want Inkay's evolution to look like on a emulator though?
I'm sorry that I overlooked the Gligar and Sneasel evolution method... Hmm, yeah that's what I'm also thinking right now...
__________________
Reply With Quote
  #163   Link to this post, but load the entire thread.  
Old August 10th, 2015 (2:58 AM).
The Legacy of The Legends Creator :D The Legacy of The Legends Creator :D is offline
 
Join Date: May 2010
Gender: Male
Posts: 348
I have a few questions ;3;

Spoiler:

1. I noticed that it said Day and night specific evolution methods, I thought there wasnt a day and night feature in FR

2. With specific map evolution not being available in G3HS yet and Hex edit only, what is being said here, how to implement it?

3. The Gender evolutions is it where like for example we have gallade a non stone evo, the only way we get garveoir and gallade is dependent on leveling up with corresponding gender?

4. And when you said dont forget to update your pokemon base stats table, what do we update? and where is it? And what is done if it is not update?

5. The day and night time hold item, where says if you edited the pokemon data structure table in the RAM the item clearing will not work, what does this mean?

6. And can you expand on the day and night friendship issue? Having to edit the routine in the table, because they dont work in FR?



Sorry for a lot of questions lol
__________________
Hey guys. lol i didnt think my username through. Wish i could change it.
Hey guys, I think you would enjoy a Pokemon RPG: Pokemon Eclipse!


Reply With Quote
  #164   Link to this post, but load the entire thread.  
Old August 10th, 2015 (5:10 AM).
PurpleOrange's Avatar
PurpleOrange PurpleOrange is offline
still don't know what I'm doing
 
Join Date: Sep 2013
Location: Littleroot Town (UK)
Age: 25
Gender: Male
Posts: 367
Quote:
Originally Posted by The Legacy of The Legends Creator :D View Post
I have a few questions ;3;

Spoiler:

1. I noticed that it said Day and night specific evolution methods, I thought there wasnt a day and night feature in FR

2. With specific map evolution not being available in G3HS yet and Hex edit only, what is being said here, how to implement it?

3. The Gender evolutions is it where like for example we have gallade a non stone evo, the only way we get garveoir and gallade is dependent on leveling up with corresponding gender?

4. And when you said dont forget to update your pokemon base stats table, what do we update? and where is it? And what is done if it is not update?

5. The day and night time hold item, where says if you edited the pokemon data structure table in the RAM the item clearing will not work, what does this mean?

6. And can you expand on the day and night friendship issue? Having to edit the routine in the table, because they dont work in FR?



Sorry for a lot of questions lol
1. You have to insert an rtc yourself using a day night tool
2. Like all the new evolution methods you have to change the .ini
3. The stone gender evolutions have not yet been made yet
4,5,6. not sure
__________________

Reply With Quote
  #165   Link to this post, but load the entire thread.  
Old August 10th, 2015 (9:09 AM).
Joexv's Avatar
Joexv Joexv is offline
ManMadeOfGouda
joexv.github.io
 
Join Date: Oct 2012
Location: Oregon
Age: 25
Gender: Male
Nature: Sassy
Posts: 1,035
Quote:
Originally Posted by The Legacy of The Legends Creator :D View Post
I have a few questions ;3;

Spoiler:

1. I noticed that it said Day and night specific evolution methods, I thought there wasnt a day and night feature in FR

2. With specific map evolution not being available in G3HS yet and Hex edit only, what is being said here, how to implement it?

3. The Gender evolutions is it where like for example we have gallade a non stone evo, the only way we get garveoir and gallade is dependent on leveling up with corresponding gender?

4. And when you said dont forget to update your pokemon base stats table, what do we update? and where is it? And what is done if it is not update?

5. The day and night time hold item, where says if you edited the pokemon data structure table in the RAM the item clearing will not work, what does this mean?

6. And can you expand on the day and night friendship issue? Having to edit the routine in the table, because they dont work in FR?



Sorry for a lot of questions lol
2. It means that you have to go into the ROM and edit the evolution to change which map it uses.
3.Actually the gender by stone evolution has been done by Gogo and I madea version myself, but as I am not satisfied with how I did it, I am not releasing it till I fix it.
4. If you dont know, then dont worry about it.
5. Again, if you dont know, dont worry about it.
6. Not entirely sure what you're asking here.

Quote:
Originally Posted by PurpleOrange View Post
1. You have to insert an rtc yourself using a day night tool
2. Like all the new evolution methods you have to change the .ini
3. The stone gender evolutions have not yet been made yet
4,5,6. not sure
Actually the gender by stone evolution has been done by Gogo and I made a version myself, but as I am not satisfied with how I did it, I am not releasing it until I fix it.
__________________
New living flesh vessel who dis?
Reply With Quote
  #166   Link to this post, but load the entire thread.  
Old August 10th, 2015 (2:40 PM).
The Legacy of The Legends Creator :D The Legacy of The Legends Creator :D is offline
 
Join Date: May 2010
Gender: Male
Posts: 348
Quote:
Originally Posted by joexv View Post
4. If you dont know, then dont worry about it.
5. Again, if you dont know, dont worry about it.
Why would i not worry about if i just dont know,i dont know if its something i may have to do, id like to know, im trying to learn.

Why would i not need to know?
__________________
Hey guys. lol i didnt think my username through. Wish i could change it.
Hey guys, I think you would enjoy a Pokemon RPG: Pokemon Eclipse!


Reply With Quote
  #167   Link to this post, but load the entire thread.  
Old August 10th, 2015 (7:32 PM).
Joexv's Avatar
Joexv Joexv is offline
ManMadeOfGouda
joexv.github.io
 
Join Date: Oct 2012
Location: Oregon
Age: 25
Gender: Male
Nature: Sassy
Posts: 1,035
Quote:
Originally Posted by The Legacy of The Legends Creator :D View Post
Why would i not worry about if i just dont know,i dont know if its something i may have to do, id like to know, im trying to learn.

Why would i not need to know?
Cause both require you to knowengly have changed them.
For the pokemon stats, if youve expanded then yes change it, and for the other, that requires quite a bit of ASM to change the layout of the stats in RAM.

Im not saying dont learn. Im saying if you dont know if theyre changed then they arent changed.
__________________
New living flesh vessel who dis?
Reply With Quote
  #168   Link to this post, but load the entire thread.  
Old September 18th, 2015 (8:38 AM).
Pokemon_XY Pokemon_XY is offline
 
Join Date: Aug 2015
Posts: 58
Firstly, the tutorial tells us a lot, thanks.
But there's a serious problem that the "required codes" in the thread is actually not need, you can always use your own code to load parameters and handle registers. Actually it's more safe and simple so why should we always push & pop r0-r7?
Another thing is that there're levelcheckloc & evoloc. The former will check the parameter of level, so in some cases, like the D/N evolution, we will never use any of the "required codes" because the routine itself will handle all the things and we don't need to load parameters except level. :)
Reply With Quote
  #169   Link to this post, but load the entire thread.  
Old January 28th, 2016 (3:08 AM). Edited January 28th, 2016 by FamiliaWerneck.
FamiliaWerneck's Avatar
FamiliaWerneck FamiliaWerneck is offline
 
Join Date: May 2015
Location: São Paulo, Brasil
Gender: Male
Posts: 275
Looking to pick this up from where it stopped.
I want the following evolutions, and I'll be trying them from now on:
- Level + Item;
- Gender + Stone;
- Level + Pokémon in Party > loses that Pokémon from the party.
Those are the ones I'm trying.
It would be great to receive help. joexv, you are more than welcome to step in!
__________________
My Main Team:


Reply With Quote
  #170   Link to this post, but load the entire thread.  
Old January 28th, 2016 (10:58 AM).
thedarkdragon11's Avatar
thedarkdragon11 thedarkdragon11 is offline
New World Pirate
 
Join Date: May 2009
Location: Laugh Tale, New World
Gender: Male
Nature: Hasty
Posts: 518
By the way, where can I find the "Hold Induced Evolution" without any specific time (no Day/Night) and the "Stone Evolution" with gender?
__________________
Reply With Quote
  #171   Link to this post, but load the entire thread.  
Old January 28th, 2016 (11:39 AM).
FamiliaWerneck's Avatar
FamiliaWerneck FamiliaWerneck is offline
 
Join Date: May 2015
Location: São Paulo, Brasil
Gender: Male
Posts: 275
Quote:
Originally Posted by thedarkdragon11 View Post
By the way, where can I find the "Hold Induced Evolution" without any specific time (no Day/Night) and the "Stone Evolution" with gender?
Hold induced?
Also, I saw comments on Gender + Stone and Level + Item been done. Can you confirm?
joexv was working on them, but he didn't come to a working completion. We were also trying to find why stone evolutions can't be cancelled.
__________________
My Main Team:


Reply With Quote
  #172   Link to this post, but load the entire thread.  
Old January 28th, 2016 (6:06 PM).
thedarkdragon11's Avatar
thedarkdragon11 thedarkdragon11 is offline
New World Pirate
 
Join Date: May 2009
Location: Laugh Tale, New World
Gender: Male
Nature: Hasty
Posts: 518
Quote:
Originally Posted by FamiliaWerneck View Post
Hold induced?
Also, I saw comments on Gender + Stone and Level + Item been done. Can you confirm?
joexv was working on them, but he didn't come to a working completion. We were also trying to find why stone evolutions can't be cancelled.
Yeah... Hold induced is when a Pokémon levels up and evolve while holding a necessary item... Those are already made but in a specific time (day or night)... I'm just not sure if there's something like that without the day or night condition exist... I'm also not sure if that's the same with Level + Item which does exist...

The Gender + Stone, I'm not sure... I haven't seen that yet...
__________________
Reply With Quote
  #173   Link to this post, but load the entire thread.  
Old January 28th, 2016 (9:01 PM).
Joexv's Avatar
Joexv Joexv is offline
ManMadeOfGouda
joexv.github.io
 
Join Date: Oct 2012
Location: Oregon
Age: 25
Gender: Male
Nature: Sassy
Posts: 1,035
Quote:
Originally Posted by FamiliaWerneck View Post
- Gender + Stone;
http://www.pokecommunity.com/showpost.php?p=9043968&postcount=817
__________________
New living flesh vessel who dis?
Reply With Quote
  #174   Link to this post, but load the entire thread.  
Old January 29th, 2016 (2:11 AM).
FamiliaWerneck's Avatar
FamiliaWerneck FamiliaWerneck is offline
 
Join Date: May 2015
Location: São Paulo, Brasil
Gender: Male
Posts: 275
Quote:
Originally Posted by thedarkdragon11 View Post
Yeah... Hold induced is when a Pokémon levels up and evolve while holding a necessary item... Those are already made but in a specific time (day or night)... I'm just not sure if there's something like that without the day or night condition exist... I'm also not sure if that's the same with Level + Item which does exist...

The Gender + Stone, I'm not sure... I haven't seen that yet...
Don't know how you can pick a specific time of the day and a specific item, but that doesn't include specific level. Pokémon just level up, but still, that's two arguments. Changing the daytime to be level, should work.
I say this, 'cause if I'm not wrong, they are in the main post.

Quote:
Originally Posted by thedarkdragon11 View Post
Level + Item which does exist
WHERE????

Thanks joexv!
If what both of you said is correct, I won't have to work much.

Quote:
Originally Posted by kearnseyboy6 View Post
Hi everyone,

BIG TEXT

Thank you and good luck
Hey kearnseyboy6. You should really update the first post if these new evolutions are working alright.
__________________
My Main Team:


Reply With Quote
  #175   Link to this post, but load the entire thread.  
Old February 4th, 2016 (10:35 AM). Edited February 4th, 2016 by FamiliaWerneck.
FamiliaWerneck's Avatar
FamiliaWerneck FamiliaWerneck is offline
 
Join Date: May 2015
Location: São Paulo, Brasil
Gender: Male
Posts: 275
Need a more experienced fellow hacker here, as I haven't had the chance to try it myself, yet.
Is it possible to run a code like this:
Spoiler:
Code:
Special Evolution
LevelItemBuffer:
    load into r1 the Pokémon's level
    load into r2 the Pokémon's held item
CheckArgument1: //let's say "Level 40 + Metal Coat" (for Steelix, maybe)
    compare level to 40
    if not, go to CheckArgument2
    compare item to Metal Coat
    if not, go to CheckArgument2
    move rx, #0x1
    go to Evolution
CheckArgument2: //let's go with "Level 40 + Magmarizer" (Magmortar)
    compare level to 40
    if not, go to CheckArgument3
    compare item to Magmarizer
    if not, go to CheckArgument3
    move rx, #0x2
    go to Evolution
CheckArgument3: //let's say "Level 30 + Metal Coat" (for Scizor now)
    compare level to 30
    if not, go to NoEvo
    compare item to Metal Coat
    if not, go to NoEvo
    move rx, #0x3
    go to Evolution
NoEvo:
    simply return
Evolution:
    makes the evolution happening based on the argument in rx


What's the idea? Since we can have an argument up to #0xFF, I first thought that we could make argument 101 on level be like "Level 40 + Metal Coat", but then I remembered that the "Level" evolution routine wouldn't check for items, so it's not much use.
But if we could make another evolution method, one that runs a check for every type of evolution you want and simply give it an argument value, it could work.
Of course, there are probable ways of making this way more efficient, since looking for 0xFF possibilities could take a while, though I don't think people will do that many evolution types.
I had an idea of putting all equal level checks together, or items. That way, instead of jumping to the next check, we could have something like this:
Spoiler:
Code:
Special Evolution
LevelItemBuffer:
    load into r1 the Pokémon's level
    load into r2 the Pokémon's held item
CheckArgument1: //let's say "Level 40 + Metal Coat" (for Steelix, maybe)
    compare item to Metal Coat.
    if not, go to CheckArgument3
    compare level to 40
    if not, go to CheckArgument2
    move rx, #0x1
    go to Evolution
CheckArgument2: //let's say "Level 30 + Metal Coat" (for Scizor now)
    compare item to Metal Coat
    if not, go to CheckArgument3    
    compare level to 30
    if not, go to CheckArgument3
    move rx, #0x2
    go to Evolution
CheckArgument3: //let's go with "Level 40 + Magmarizer" (Magmortar)
    compare item to Magmarizer
    if not, go to NoEvo
    compare level to 40
    if not, go to NoEvo
    move rx, #0x3
    go to Evolution
NoEvo:
    simply return
Evolution:
    makes the evolution happening based on the argument in rx


Problem is I only have 3 arguments in this example, but since I let all Metal Coat evolutions together, if the first check doesn't find a Metal Coat, it goes straight to the next item, ignoring all the possible levels + Metal Coat. Even comparing Metal Coat again is deletable, since if it's not Metal Coat, the code will jump all Metal Coat evolutions. I only let there to show the idea (and to be safe).
The problem now is, can this idea work? The argument stops being two things. It's two checks, and then you give a single argument for each combination. Aaaand, it can be edited via G3HS.
Thanks for the attention.

EDIT:
Okay, I've worked on getting what every register meant before calling an evolution routine and wrote this, based on kearnseyboy6's routines, what's in IDA and the game.
I didn't have time to finish this up and clearly this is meant for my own hack, knowing what evolutions I will need. If it works, it'll be easily editable to get a different combination of levels and items for each argument entry.
Spoiler:
Code:
.text
.align 2
.thumb
.thumb_func
.global LevelItemEvo

Main:
	push {r0-r7}
	add r0, r6, r7
	lsl r0, r0, #0x3
	add r0, r2, r0
	add r1, r0, r3
	ldrb r0, [r1, #0x2]
	//r0 holds the Pokémon's evolution argument value (not type of evolution, nor to which Pokémon it evolves)

BufferHeldItem:
	//load Pokémon's held item in r6

Level10:
	cmp r9, #0x9
	bhi Level10SilverPowder
Level12:
	cmp r9, #0xB
	bhi Level12BeigeBelt
Level20:
	cmp r9, #0x13
	bhi Level20DeepSeaTooth
Level30:
	cmp r9, #0x1D
	bhi Level30RazorFang
Level40:
	cmp r9, #0x27
	bhi Level40Magnet
Level50:
	cmp r9, #0x31
	bhi Level50MetalCoat
	mov r5, #0x0
	b ArgumentCheck

Level10SilverPowder:
	cmp r6, #0xBC
	bne Level10PoisonBarb
	mov r5, #0x1
	b ArgumentCheck
Level10PoisonBarb:
	cmp r6, #0xD3
	bne WrongItem
	mov r5, #0x2
	b ArgumentCheck

Level12BeigeBelt:
	cmp r6, #0xBeigeBeltID
	bne Level12RedBelt
	mov r5, #0x3
	b ArgumentCheck
Level12RedBelt:
	cmp r6, #0xRedBeltID
	bne Level12BlueBelt
	mov r5, #0x4
	b ArgumentCheck
Level12BlueBelt:
	cmp r6, #0xBlueBeltID
	bne WrongItem
	mov r5, #0x5
	b ArgumentCheck

Level20DeepSeaTooth:
	cmp r6, #0xC0
	bne Level20DeepSeaScale
	mov r5, #0x6
	b ArgumentCheck
Level20DeepSeaScale:
	cmp r6, #0xC1
	bne WrongItem
	mov r5, #0x7
	b ArgumentCheck

Level30RazorFang:
	cmp r6, #0xRazorFangID
	bne Level30RazorClaw
	mov r5, #0x8
	b ArgumentCheck
Level30RazorClaw:
	cmp r6, #0xRazorClawID
	bne Level30MetalCoat
	mov r5, #0x9
	b ArgumentCheck
Level30MetalCoat:
	cmp r6, #0xC7
	bne WrongItem
	mov r5, #0xA
	b ArgumentCheck

Level40Magnet:
	cmp r6, #0xD0
	bne Level40DragonScale
	mov r5, #0xB
	b ArgumentCheck
Level40DragonScale:
	cmp r6, #0xC9
	bne Level40MetalCoat
	mov r5, #0xC
	b ArgumentCheck
Level40MetalCoat:
	cmp r6, #0xC7
	bne Level40Electirizer
	mov r5, #0xD
	b ArgumentCheck
Level40Electirizer:
	cmp r6, #0xElectirizerID
	bne Level40Magmarizer
	mov r5, #0xE
	b ArgumentCheck
Level40Magmarizer:
	cmp r6, #0xMagmarizerID
	bne Level40SpellTag
	mov r5, #0xF
	b ArgumentCheck
Level40SpellTag:
	cmp r6, #0xD5
	bne WrongItem
	mov r5, #0x10
	b ArgumentCheck

Level50MetalCoat:
	cmp r6, #0xC7
	bne WrongItem
	mov r5, #0x11
	b ArgumentCheck

WrongItem:
	mov r5, #0x0
	b ArgumentCheck

ArgumentCheck:
	cmp r0, r5 //say argument 1 is Level 10 + Silver Powder. If the Pokémon matches both requirements, it will receive argument #0x1 and will evolve
	beq Evolution

//REST OF THE CODE I HAVEN't WORKED UP YET
__________________
My Main Team:


Reply With Quote
Reply

Quick Reply

Join the conversation!

Create an account to post a reply in this thread, participate in other discussions, and more!

Create a PokéCommunity Account
Ad Content

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 8:50 AM.