Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Reload this Page Trainers with EVs

Notices
For all updates, view the main page.

Research & Development Got a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!
Research & Development programs in this forum are subject to moderator approval before they are displayed.



Reply
 
Thread Tools
  #51    
Old July 3rd, 2014 (09:12 AM).
Phenom2122's Avatar
Phenom2122 Phenom2122 is offline
 
Join Date: Jun 2014
Gender: Male
Nature: Quiet
Posts: 40
Quote originally posted by Aruaruu:
It will only take 36 slots or so for the brains spreads, maybe even less because of using other spreads you already made. That is minus the Factory Head's team since it cannot be changed.

It is not that concerning. It is just a nitpick.
Yeah actually I just thought carefully about what I said there. If this works with the IV value then of course that will happen, makes sense. It's a small price to pay for something so awesome. However, it would be nice if the battle frontier was exempt from this because as far as I understand there are already EV spreads for the battle frontier. I suppose if I translated all those entries to this new ev spread then I could theoretically free up the original spread as free space?
Reply With Quote
  #52    
Old November 26th, 2014 (03:59 AM).
Lance32497's Avatar
Lance32497 Lance32497 is offline
LanceKoijer of Pokemon_Addicts
 
Join Date: Aug 2014
Location: Criscanto town-Ginoa Region xD
Gender: Male
Nature: Adamant
Posts: 480
aahhhm?? What makes this hack unique? No! Its very unique, just wondering, how the Trainer EV's affect the entire game? Does it share his Pokemons EV stat?
__________________
My Threads

Reply With Quote
  #53    
Old December 29th, 2014 (04:28 PM).
DizzyEgg's Avatar
DizzyEgg DizzyEgg is online now
 
Join Date: Feb 2014
Age: 17
Gender: Male
Nature: Timid
Posts: 54
Quick question.
"First you will need to insert this ASM."
What exactly is ASM? I looked it up, but only found out it's connected to Assembly.
And where exactly am I supposed to insert this?
__________________
Please excuse my poor English. I'm still learning
Reply With Quote
  #54    
Old December 29th, 2014 (05:07 PM).
jAvAcOlA jAvAcOlA is offline
Banned
 
Join Date: Sep 2008
Gender:
Posts: 156
Quote originally posted by DizzyEgg:
Quick question.
"First you will need to insert this ASM."
What exactly is ASM? I looked it up, but only found out it's connected to Assembly.
And where exactly am I supposed to insert this?
Check out this tutorial under the "Having fun with ASM" section: http://www.pokecommunity.com/showthread.php?t=117917#ASM1

This is how I first learned. Inserting ASM seems insanely complex when you first come across it, but you'll realize it's really straight forward.

You're gonna need to know how to hex edit as well, which is also very easy once you understand the basics.
Reply With Quote
  #55    
Old December 30th, 2014 (10:02 AM). Edited January 4th, 2015 by DizzyEgg.
DizzyEgg's Avatar
DizzyEgg DizzyEgg is online now
 
Join Date: Feb 2014
Age: 17
Gender: Male
Nature: Timid
Posts: 54
Quote:
You will also need to find x1000 bytes of space, and change the .EV_Table variable in the method to point to it (I used xF00000). This is where the spreads will go. The method gives you 256 spreads to use- this is not full control, but it is more than you are likely to need (the Emerald Battle Frontier only uses around 36 IIRC). The EV Spread table format is:
So...I don't quite understand this. What bytes are we talking about? Those before where I inserted the routine? Also how do I change the EV_Table variable? Am I supposed to do it in XSE or some other editor? If so, how is it done?
Sorry for the nooby question. I'd be very grateful if someone could help me.

Edit: I've finally made this work. Thank you Doesn'tKnowHowToPlay for your routine!
Reply With Quote
  #56    
Old 4 Weeks Ago (07:59 AM). Edited 4 Weeks Ago by Chaotix.
Chaotix Chaotix is offline
Good at Maps, Bad at Scripts
 
Join Date: Feb 2007
Nature: Adamant
Posts: 23
I'm having trouble getting this to work.

I'm not quite sure where the code I'm supposed to replace begins and stops. With what I just tried if I get into a trainer battle that has Custom Moves and Items the game restarts.

This is on Fire Red.
Reply With Quote
  #57    
Old 3 Weeks Ago (11:40 AM).
Suwandi Suwandi is offline
 
Join Date: Mar 2015
Gender: Male
Posts: 3
Quote originally posted by Lance32497:
aahhhm?? What makes this hack unique? No! Its very unique, just wondering, how the Trainer EV's affect the entire game? Does it share his Pokemons EV stat?
what the heck are you talking about? it gives EVs to opposing pokemon.
Reply With Quote
  #58    
Old 3 Weeks Ago (08:33 PM).
Cruztown's Avatar
Cruztown Cruztown is offline
Squirtle Squirt.
 
Join Date: Jul 2012
Gender: Male
Nature: Rash
Posts: 40
Yo, I can't quite seem to get this to work for me. It doesn't cause any errors, the game seems to just ignore it. This is what I've tried compiling
Spoiler:
.align 2
.thumb
.thumb_func

.org 0x115f6
mov r0, r1
mov r6, r0
b 0x11604

.org 0x1162c
ldr r0, .Method_Addr
bx r0

.Method_Addr: .word 0x08F90001

.org 0x3dc70
b 0x3dcd0


.org 0xF90000

LoadItem:
add r5, #0x6
add r0, r4, #0x0
mov r1, #0xc
add r2, r5, #0x0
bl Insert_Element

LoadHPEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x5
mov r1, #0x1A
mov r0, r4
bl Insert_Element

LoadAtkEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x6
mov r1, #0x1B
mov r0, r4
bl Insert_Element

LoadDefEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x7
mov r1, #0x1C
mov r0, r4
bl Insert_Element

LoadSpeedEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x8
mov r1, #0x1D
mov r0, r4
bl Insert_Element

LoadSAtkEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x9
mov r1, #0x1E
mov r0, r4
bl Insert_Element

LoadSDefEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0xA
mov r1, #0x1F
mov r0, r4
bl Insert_Element

LoadBall:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0xB
mov r1, #0x26
mov r0, r4
bl Insert_Element

LoadAbility:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0xC
mov r1, #0x2E
mov r0, r4
bl Insert_Element

StartNatureLoop:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
ldrb r5, [r2, #0x0]
cmp r5, #0x0
beq LoadIVs
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x4]
eor r1, r0, r1
str r1, [r4, #0x4]

NatureLoop:
ldr r0, [r4, #0x0]
add r0, r0, #0x18
str r0, [r4, #0x0]
mov r1, #0x19
bl Mod
cmp r0, r5
bne NatureLoop

EndNatureLoop:
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x4]
eor r1, r0, r1
str r1, [r4, #0x4]

LoadIVs:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
ldrb r6, [r2, #0x4]
push {r6}

StartIVLoop:
mov r5, #0x27

IVLoop:
mov r0, r4
mov r1, r5
mov r2, sp
bl Insert_Element
add r5, r5, #0x1
cmp r5, #0x2D
bne IVLoop

End:
pop {r6}
bl Recalculate_Stats
ldr r1, .Return_Addr
bx r1

Insert_Element:
ldr r3, .Insert_Addr
bx r3

Recalculate_Stats:
mov r0, r4
ldr r1, .Recalc_Addr
bx r1

Mod:
ldr r3, .Mod_Addr
bx r3

.align 2
.Return_Addr: .word 0x08011639
.EV_Table: .word 0x08F00000
.Insert_Addr: .word 0x0804037d
.Recalc_Addr: .word 0x0803e47d
.Mod_Addr: .word 0x081e4685
with the resulting Hex
Spoiler:
06 35 20 1C 0C 21 2A 1C 00 F0 69 F8 30 01 38 4A 12 18 05 32 1A 21 20 1C 00 F0 61 F8 30 01 34 4A 12 18 06 32 1B 21 20 1C 00 F0 59 F8 30 01 30 4A 12 18 07 32 1C 21 20 1C 00 F0 51 F8 30 01 2C 4A 12 18 08 32 1D 21 20 1C 00 F0 49 F8 30 01 28 4A 12 18 09 32 1E 21 20 1C 00 F0 41 F8 30 01 24 4A 12 18 0A 32 1F 21 20 1C 00 F0 39 F8 30 01 20 4A 12 18 0B 32 26 21 20 1C 00 F0 31 F8 30 01 1C 4A 12 18 0C 32 2E 21 20 1C 00 F0 29 F8 30 01 18 4A 12 18 15 78 00 2D 0F D0 20 68 61 68 41 40 61 60 20 68 18 30 20 60 19 21 00 F0 1E F8 A8 42 F7 D1 20 68 61 68 41 40 61 60 30 01 0D 4A 12 18 16 79 40 B4 27 25 20 1C 29 1C 6A 46 00 F0 08 F8 01 35 2D 2D F7 D1 40 BC 00 F0 04 F8 04 49 08 47 05 4B 18 47 20 1C 04 49 08 47 04 4B 18 47 39 16 01 08 00 00 F0 08 7D 03 04 08 7D E4 03 08 85 46 1E 08
Reply With Quote
  #59    
Old 3 Weeks Ago (04:32 AM).
Chaotix Chaotix is offline
Good at Maps, Bad at Scripts
 
Join Date: Feb 2007
Nature: Adamant
Posts: 23
Quote originally posted by Cruztown:
Yo, I can't quite seem to get this to work for me. It doesn't cause any errors, the game seems to just ignore it. This is what I've tried compiling
Spoiler:
.align 2
.thumb
.thumb_func

.org 0x115f6
mov r0, r1
mov r6, r0
b 0x11604

.org 0x1162c
ldr r0, .Method_Addr
bx r0

.Method_Addr: .word 0x08F90001

.org 0x3dc70
b 0x3dcd0


.org 0xF90000

LoadItem:
add r5, #0x6
add r0, r4, #0x0
mov r1, #0xc
add r2, r5, #0x0
bl Insert_Element

LoadHPEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x5
mov r1, #0x1A
mov r0, r4
bl Insert_Element

LoadAtkEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x6
mov r1, #0x1B
mov r0, r4
bl Insert_Element

LoadDefEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x7
mov r1, #0x1C
mov r0, r4
bl Insert_Element

LoadSpeedEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x8
mov r1, #0x1D
mov r0, r4
bl Insert_Element

LoadSAtkEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x9
mov r1, #0x1E
mov r0, r4
bl Insert_Element

LoadSDefEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0xA
mov r1, #0x1F
mov r0, r4
bl Insert_Element

LoadBall:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0xB
mov r1, #0x26
mov r0, r4
bl Insert_Element

LoadAbility:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0xC
mov r1, #0x2E
mov r0, r4
bl Insert_Element

StartNatureLoop:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
ldrb r5, [r2, #0x0]
cmp r5, #0x0
beq LoadIVs
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x4]
eor r1, r0, r1
str r1, [r4, #0x4]

NatureLoop:
ldr r0, [r4, #0x0]
add r0, r0, #0x18
str r0, [r4, #0x0]
mov r1, #0x19
bl Mod
cmp r0, r5
bne NatureLoop

EndNatureLoop:
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x4]
eor r1, r0, r1
str r1, [r4, #0x4]

LoadIVs:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
ldrb r6, [r2, #0x4]
push {r6}

StartIVLoop:
mov r5, #0x27

IVLoop:
mov r0, r4
mov r1, r5
mov r2, sp
bl Insert_Element
add r5, r5, #0x1
cmp r5, #0x2D
bne IVLoop

End:
pop {r6}
bl Recalculate_Stats
ldr r1, .Return_Addr
bx r1

Insert_Element:
ldr r3, .Insert_Addr
bx r3

Recalculate_Stats:
mov r0, r4
ldr r1, .Recalc_Addr
bx r1

Mod:
ldr r3, .Mod_Addr
bx r3

.align 2
.Return_Addr: .word 0x08011639
.EV_Table: .word 0x08F00000
.Insert_Addr: .word 0x0804037d
.Recalc_Addr: .word 0x0803e47d
.Mod_Addr: .word 0x081e4685
with the resulting Hex
Spoiler:
06 35 20 1C 0C 21 2A 1C 00 F0 69 F8 30 01 38 4A 12 18 05 32 1A 21 20 1C 00 F0 61 F8 30 01 34 4A 12 18 06 32 1B 21 20 1C 00 F0 59 F8 30 01 30 4A 12 18 07 32 1C 21 20 1C 00 F0 51 F8 30 01 2C 4A 12 18 08 32 1D 21 20 1C 00 F0 49 F8 30 01 28 4A 12 18 09 32 1E 21 20 1C 00 F0 41 F8 30 01 24 4A 12 18 0A 32 1F 21 20 1C 00 F0 39 F8 30 01 20 4A 12 18 0B 32 26 21 20 1C 00 F0 31 F8 30 01 1C 4A 12 18 0C 32 2E 21 20 1C 00 F0 29 F8 30 01 18 4A 12 18 15 78 00 2D 0F D0 20 68 61 68 41 40 61 60 20 68 18 30 20 60 19 21 00 F0 1E F8 A8 42 F7 D1 20 68 61 68 41 40 61 60 30 01 0D 4A 12 18 16 79 40 B4 27 25 20 1C 29 1C 6A 46 00 F0 08 F8 01 35 2D 2D F7 D1 40 BC 00 F0 04 F8 04 49 08 47 05 4B 18 47 20 1C 04 49 08 47 04 4B 18 47 39 16 01 08 00 00 F0 08 7D 03 04 08 7D E4 03 08 85 46 1E 08
There is also hex you have to replace at 0x115f6 and 0x3dc70. Go to those offsets in the bin and replace whats in your rom with them.
Reply With Quote
  #60    
Old 3 Weeks Ago (07:47 PM). Edited 3 Weeks Ago by Cruztown.
Cruztown's Avatar
Cruztown Cruztown is offline
Squirtle Squirt.
 
Join Date: Jul 2012
Gender: Male
Nature: Rash
Posts: 40
Quote originally posted by Chaotix:
There is also hex you have to replace at 0x115f6 and 0x3dc70. Go to those offsets in the bin and replace whats in your rom with them.
I completely over looked that, thanks a bunch! That said, it just begins freezing. I looked around and nothing else seems to be altered, not even 0x011624 (that's still 20 1C 33 1C 2C F0 14 FA like Mystery Man suggested in the ASM Help thread). Any other iceas
Reply With Quote
  #61    
Old 2 Weeks Ago (01:41 PM).
Mystery Man's Avatar
Mystery Man Mystery Man is offline
Don't be like me!
 
Join Date: Dec 2011
Age: 19
Gender: Other
Nature: Quirky
Posts: 38
Quote originally posted by Cruztown:
I completely over looked that, thanks a bunch! That said, it just begins freezing. I looked around and nothing else seems to be altered, not even 0x011624 (that's still 20 1C 33 1C 2C F0 14 FA like Mystery Man suggested in the ASM Help thread). Any other iceas
Just to be sure, have you made the changes at 0x115F6, 0x1162C, 0x3DC70, and 0xF90000 to your ROM? If not, go to those offsets in the bin file, copy the bytes before the sea of zeros, and paste them onto the EXACT same location in your ROM. Also, make sure that at 0xF00000 is not FF. This is where the game will read the EVs and such. If it is FF, the game will freeze.
Reply With Quote
  #62    
Old 2 Weeks Ago (05:01 PM).
kearnseyboy6's Avatar
kearnseyboy6 kearnseyboy6 is offline
Aussie's Toughest Mudder
 
Join Date: Dec 2008
Posts: 265
Quote originally posted by Mystery Man:
Just to be sure, have you made the changes at 0x115F6, 0x1162C, 0x3DC70, and 0xF90000 to your ROM? If not, go to those offsets in the bin file, copy the bytes before the sea of zeros, and paste them onto the EXACT same location in your ROM. Also, make sure that at 0xF00000 is not FF. This is where the game will read the EVs and such. If it is FF, the game will freeze.
Further to this, make sure you copy bytes aligned. It's explained in the thread but one of the 00's need to be copied.

Also the ROM will only crash if the nature is above 0x20 or something. And keep the IV's between 0x0 and 0x1F
__________________
HOLIDAYING CURRENTLY!!
Reply With Quote
  #63    
Old 2 Weeks Ago (08:48 AM). Edited 2 Weeks Ago by Cruztown.
Cruztown's Avatar
Cruztown Cruztown is offline
Squirtle Squirt.
 
Join Date: Jul 2012
Gender: Male
Nature: Rash
Posts: 40
Quote originally posted by Mystery Man:
Just to be sure, have you made the changes at 0x115F6, 0x1162C, 0x3DC70, and 0xF90000 to your ROM? If not, go to those offsets in the bin file, copy the bytes before the sea of zeros, and paste them onto the EXACT same location in your ROM. Also, make sure that at 0xF00000 is not FF. This is where the game will read the EVs and such. If it is FF, the game will freeze.
Thank you for the response. I have copied all of the altered bytes at those four locations. At xF00000, the exact first spread I put down was as follows
Quote:
0F 00 00 00 1F FC 00 00 06 FC 00 07 01 00 00 00
Quote:
Further to this, make sure you copy bytes aligned. It's explained in the thread but one of the 00's need to be copied.

Also the ROM will only crash if the nature is above 0x20 or something. And keep the IV's between 0x0 and 0x1F
Thank you, as well, for a reply. I haven't tried using any nature values above 0x20. The only one I've actually tried was modest, which seems to be 0x0F.
Reply With Quote
  #64    
Old 2 Weeks Ago (06:44 AM). Edited 2 Weeks Ago by leyn09.
leyn09's Avatar
leyn09 leyn09 is offline
Truant Trainer
 
Join Date: May 2011
Location: Philippines
Gender: Male
Nature: Careful
Posts: 38
Hello. I have some questions.

It's confusing on what should I copy and paste-write from the assembled bin to the rom. Am I getting the correct bytes in the screenshot below (0x1162c,0x115f6,0x3dc70) ?
Spoiler:


I've put my EV spread table at 0x860510 and put the EV Trainer routine at 0x850000
screenshot of EV spread table:
Spoiler:


I tried testing it (Trainer with custom held item and moves, 2 pokemon set using unnamed editor with IV 0 and latter, 1) and fortunately, it doesn't restart or hang. Tho, the ev spread and the ball modification (default pokeball still shows) doesn't work. My ROM is supported by MrDollSteak Rombase and JPAN FR Hacked Engine. Here is my EV trainer routine:
Spoiler:

#EV spread table format
#Each spread is 16 bytes
#0x0 = Nature
#0x4 = IVs (from 0-31, not 0-255, used for all IVs)
# (if you want hidden powers, recall the ai can't handle -- bp moves)
#0x5 = HP EVs
#0x6 = Atk EVs
#0x7 = Def EVs
#0x8 = Speed EVs
#0x9 = SAtk EVs
#0xA = SDef EVs
#0xB = Pokeball
#last four bytes are filler

.align 2
.thumb
.thumb_func

.org 0x115f6
mov r0, r1
mov r6, r0
b 0x11604

.org 0x1162c
ldr r0, .Method_Addr
bx r0

.Method_Addr: .word 0x08850001

.org 0x3dc70
b 0x3dcd0


.org 0x850000

LoadItem:
add r5, #0x6
add r0, r4, #0x0
mov r1, #0xc
add r2, r5, #0x0
bl Insert_Element

LoadHPEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x5
mov r1, #0x1A
mov r0, r4
bl Insert_Element

LoadAtkEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x6
mov r1, #0x1B
mov r0, r4
bl Insert_Element

LoadDefEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x7
mov r1, #0x1C
mov r0, r4
bl Insert_Element

LoadSpeedEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x8
mov r1, #0x1D
mov r0, r4
bl Insert_Element

LoadSAtkEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0x9
mov r1, #0x1E
mov r0, r4
bl Insert_Element

LoadSDefEV:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0xA
mov r1, #0x1F
mov r0, r4
bl Insert_Element

LoadAbility:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0xC
mov r1, #0x2E
mov r0, r4
bl Insert_Element

LoadBall:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
add r2, #0xB
mov r1, #0x26
mov r0, r4
bl Insert_Element

StartNatureLoop:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
ldrb r5, [r2, #0x0]
cmp r5, #0x0
beq LoadIVs
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x4]
eor r1, r0, r1
str r1, [r4, #0x4]

NatureLoop:
ldr r0, [r4, #0x0]
add r0, r0, #0x18
str r0, [r4, #0x0]
mov r1, #0x19
bl Mod
cmp r0, r5
bne NatureLoop

EndNatureLoop:
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x4]
eor r1, r0, r1
str r1, [r4, #0x4]

LoadIVs:
lsl r0, r6, #0x4
ldr r2, .EV_Table
add r2, r0
ldrb r6, [r2, #0x4]
push {r6}

StartIVLoop:
mov r5, #0x27

IVLoop:
mov r0, r4
mov r1, r5
mov r2, sp
bl Insert_Element
add r5, r5, #0x1
cmp r5, #0x2D
bne IVLoop

End:
pop {r6}
bl Recalculate_Stats
ldr r1, .Return_Addr
bx r1

Insert_Element:
ldr r3, .Insert_Addr
bx r3

Recalculate_Stats:
mov r0, r4
ldr r1, .Recalc_Addr
bx r1

Mod:
ldr r3, .Mod_Addr
bx r3

.align 2
.Return_Addr: .word 0x08011639
.EV_Table: .word 0x08860510
.Insert_Addr: .word 0x0804037d
.Recalc_Addr: .word 0x0803e47d
.Mod_Addr: .word 0x081e4685


Is there any problem? Thanks in advance!
Reply With Quote
  #65    
Old 2 Weeks Ago (04:23 AM).
kearnseyboy6's Avatar
kearnseyboy6 kearnseyboy6 is offline
Aussie's Toughest Mudder
 
Join Date: Dec 2008
Posts: 265
Quote originally posted by leyn09:
Hello. I have some questions.

It's confusing on what should I copy and paste-write from the assembled bin to the rom. Am I getting the correct bytes in the screenshot below (0x1162c,0x115f6,0x3dc70) ?
Spoiler:
At 0x115F6 you grabbed 4 extra bytes at the end. That's all I can find sorry, it looks good.

Could be JPAN, but I'm sure Doesnt would have said something if it didn't work.
__________________
HOLIDAYING CURRENTLY!!
Reply With Quote
  #66    
Old 2 Weeks Ago (02:47 PM).
HungLikeATauros HungLikeATauros is offline
 
Join Date: Feb 2015
Gender: Male
Posts: 33
The instructions for inserting this are beyond horrid. Has there been a tutorial made by someone who's competent?
Reply With Quote
  #67    
Old 2 Weeks Ago (03:53 PM).
DoesntKnowHowToPlay's Avatar
DoesntKnowHowToPlay DoesntKnowHowToPlay is offline
some loser
 
Join Date: Jan 2012
Posts: 221
Quote:
It's confusing on what should I copy and paste-write from the assembled bin to the rom. Am I getting the correct bytes in the screenshot below (0x1162c,0x115f6,0x3dc70) ?
You've got four bytes too many at x115F6. Rule of thumb is that instructions other than bl are two bytes; bl is four bytes. With the exception of lsl r0, r0, #0x0, instructions won't be 00 00 either.

I don't know if JPAN's engine would do anything, to be honest. I do know that it messes around with trainer loading for its level scaling options though, so there's a significant possibility it does.


Quote:
The instructions for inserting this are beyond horrid. Has there been a tutorial made by someone who's competent?
You should probably double-check which subforum you're posting in.

Read this if you haven't: http://www.pokecommunity.com/showpost.php?p=8526603&postcount=199

If you have then just implement this your own way, since you clearly know what you're doing better than me ^_^
__________________

Yet Another Fire Red Hack

Physical/Special Split
Reply With Quote
  #68    
Old 2 Weeks Ago (08:59 PM).
kearnseyboy6's Avatar
kearnseyboy6 kearnseyboy6 is offline
Aussie's Toughest Mudder
 
Join Date: Dec 2008
Posts: 265
Spoiler:
.org 0xF90000

vartest:
push {r0,r2}
ldr r2, .VarDecrypt
ldr r0, .VarWant
bl Vardecrypt1
ldrh r0, [r0]
cmp r0, #0x0
beq Continue
mov r6, r0
b Continue

Vardecrypt1:
bx r2

Continue:
pop {r0,r2}

.align2
.VarDecrypt: .word 0x0806E454+1
.VarWant: .word 0x0000408F


This is meant to be an extension of this hack, you can apply it if you want it to load a specific entry in the EV table depending on the var you select.

Eg: 0x40F7 set to 0x1 will load entry number 1.

If it is set to 0x0 it will load the routine as normal.
__________________
HOLIDAYING CURRENTLY!!
Reply With Quote
  #69    
Old 2 Weeks Ago (06:02 PM). Edited 2 Weeks Ago by leyn09.
leyn09's Avatar
leyn09 leyn09 is offline
Truant Trainer
 
Join Date: May 2011
Location: Philippines
Gender: Male
Nature: Careful
Posts: 38
Quote originally posted by kearnseyboy6:
At 0x115F6 you grabbed 4 extra bytes at the end. That's all I can find sorry, it looks good.

Could be JPAN, but I'm sure Doesnt would have said something if it didn't work.
Quote originally posted by DoesntKnowHowToPlay:
You've got four bytes too many at x115F6. Rule of thumb is that instructions other than bl are two bytes; bl is four bytes. With the exception of lsl r0, r0, #0x0, instructions won't be 00 00 either.

I don't know if JPAN's engine would do anything, to be honest. I do know that it messes around with trainer loading for its level scaling options though, so there's a significant possibility it does.
EDIT: Thanks for answering. I'll try your suggestions!

EDIT2: Still doesn't work. Perhaps, it really is JFRHE's incompatibility? It's quite saddening. :O How could I make this work?
Reply With Quote
  #70    
Old 2 Weeks Ago (08:14 PM).
leyn09's Avatar
leyn09 leyn09 is offline
Truant Trainer
 
Join Date: May 2011
Location: Philippines
Gender: Male
Nature: Careful
Posts: 38
Quote originally posted by kearnseyboy6:
Spoiler:
.org 0xF90000

vartest:
push {r0,r2}
ldr r2, .VarDecrypt
ldr r0, .VarWant
bl Vardecrypt1
ldrh r0, [r0]
cmp r0, #0x0
beq Continue
mov r6, r0
b Continue

Vardecrypt1:
bx r2

Continue:
pop {r0,r2}

.align2
.VarDecrypt: .word 0x0806E454+1
.VarWant: .word 0x0000408F


This is meant to be an extension of this hack, you can apply it if you want it to load a specific entry in the EV table depending on the var you select.

Eg: 0x40F7 set to 0x1 will load entry number 1.

If it is set to 0x0 it will load the routine as normal.
If I were to utilize this, should I insert it to the EV trainer routine or I'll compile it on a separate routine?

If I'm inserting this, should insert the contents of org .F90000 to the org .F90000 of my original routine and the contents of .align2 to the .align2 of my original routine
Reply With Quote
  #71    
Old 1 Week Ago (04:38 PM). Edited 1 Week Ago by Mystery Man.
Mystery Man's Avatar
Mystery Man Mystery Man is offline
Don't be like me!
 
Join Date: Dec 2011
Age: 19
Gender: Other
Nature: Quirky
Posts: 38
Quote originally posted by leyn09:
If I were to utilize this, should I insert it to the EV trainer routine or I'll compile it on a separate routine?

If I'm inserting this, should insert the contents of org .F90000 to the org .F90000 of my original routine and the contents of .align2 to the .align2 of my original routine
I went through a similar problem myself. My issue stemmed from the set trainer level specials JPAN made, so my solution was to revert the conflicting changes the trainer level specials made to what an unhacked Firered has. This is what resolved it for me:

Go to 0x11624. If you are using JPAN's hacked engine or the particular special I was talking about, the bytes there should be "00 48 00 47 ?? ?? ?? 08". Overwrite those bytes with what an unhacked Firered has, which is "20 1C 33 1C 2C F0 14 FA". That should stop the freezing.
Reply With Quote
  #72    
Old 1 Week Ago (05:27 PM).
leyn09's Avatar
leyn09 leyn09 is offline
Truant Trainer
 
Join Date: May 2011
Location: Philippines
Gender: Male
Nature: Careful
Posts: 38
Quote originally posted by Mystery Man:
I went through a similar problem myself. My issue stemmed from the set trainer level specials JPAN made, so my solution was to revert the conflicting changes the trainer level specials made to what an unhacked Firered has. This is what resolved it for me:

Go to 0x11624. If you are using JPAN's hacked engine or the particular special I was talking about, the bytes there should be "00 48 00 47 ?? ?? ?? 08". Overwrite those bytes with what an unhacked Firered has, which is "20 1C 33 1C 2C F0 14 FA". That should stop the freezing.
This will really help me! Though, if I were to use this, The EV trainer routine will work but I'll need to sacrifice the set trainer level (var 0x4052)?
Reply With Quote
  #73    
Old 1 Week Ago (05:42 PM).
Mystery Man's Avatar
Mystery Man Mystery Man is offline
Don't be like me!
 
Join Date: Dec 2011
Age: 19
Gender: Other
Nature: Quirky
Posts: 38
Quote originally posted by leyn09:
This will really help me! Though, if I were to use this, The EV trainer routine will work but I'll need to sacrifice the set trainer level (var 0x4052)?
Correct. These changes are integral to making the set trainer level specials work. So it's either that, or the EV trainer routine for now at least.
Reply With Quote
  #74    
Old 1 Week Ago (06:00 PM).
leyn09's Avatar
leyn09 leyn09 is offline
Truant Trainer
 
Join Date: May 2011
Location: Philippines
Gender: Male
Nature: Careful
Posts: 38
Quote originally posted by Mystery Man:
Correct. These changes are integral to making the set trainer level specials work. So it's either that, or the EV trainer routine for now at least.
Hmmm... Both of those features are important to me. :O There must be some way, like ASMing set trainer level in a different approach though I have currently no idea about that. Setting that aside, thank you Mystery Man!
Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

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 UTC -8. The time now is 11:40 AM.