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!

TrollandToad.com
Reply
 
Thread Tools
  #51    
Old July 3rd, 2014 (9:12 AM).
Phenom2122's Avatar
Phenom2122 Phenom2122 is offline
     
    Join Date: Jun 2014
    Gender: Male
    Nature: Quiet
    Posts: 45
    Quote:
    Originally Posted by Aruaruu View Post
    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

    Relevant Advertising!

      #52    
    Old November 26th, 2014 (3: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: 793
      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?
      __________________
      This signature has been disabled.
      Scrollbar appears
      Please review and fix the issues by reading the signature rules.

      You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

      Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
      Reply With Quote
        #53    
      Old December 29th, 2014 (4:28 PM).
      DizzyEgg's Avatar
      DizzyEgg DizzyEgg is offline
         
        Join Date: Feb 2014
        Location: Poland
        Age: 20
        Gender: Male
        Nature: Quiet
        Posts: 715
        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?
        __________________
        Support Pokeruby!

        My works:
        Battle Engine Upgrade
        Pokemon Expansion
        Items/TMs/Tutors Expansion
        Various Features(Evo Methods, BW Repel, Levels Above 100, Trainers with EV, Nature Colored Stats)

        Emerald Features:
        Form Changes (KDS)
        Reply With Quote
          #54    
        Old December 29th, 2014 (5:07 PM).
        jAvAcOlA jAvAcOlA is offline
        Banned
           
          Join Date: Sep 2008
          Gender:
          Posts: 156
          Quote:
          Originally Posted by DizzyEgg View Post
          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 offline
             
            Join Date: Feb 2014
            Location: Poland
            Age: 20
            Gender: Male
            Nature: Quiet
            Posts: 715
            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 March 21st, 2015 (7:59 AM). Edited March 21st, 2015 by Chaotix.
            Chaotix Chaotix is offline
            Good at Maps, Bad at Scripts
               
              Join Date: Feb 2007
              Nature: Adamant
              Posts: 40
              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 March 23rd, 2015 (11:40 AM).
              Suwandi Suwandi is offline
              Banned
                 
                Join Date: Mar 2015
                Gender: Male
                Posts: 3
                Quote:
                Originally Posted by Lance32497 View Post
                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 March 24th, 2015 (8:33 PM).
                Cruztown's Avatar
                Cruztown Cruztown is offline
                Squirtle Squirt.
                   
                  Join Date: Jul 2012
                  Gender: Male
                  Nature: Rash
                  Posts: 44
                  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 March 26th, 2015 (4:32 AM).
                  Chaotix Chaotix is offline
                  Good at Maps, Bad at Scripts
                     
                    Join Date: Feb 2007
                    Nature: Adamant
                    Posts: 40
                    Quote:
                    Originally Posted by Cruztown View Post
                    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 March 26th, 2015 (7:47 PM). Edited March 26th, 2015 by Cruztown.
                    Cruztown's Avatar
                    Cruztown Cruztown is offline
                    Squirtle Squirt.
                       
                      Join Date: Jul 2012
                      Gender: Male
                      Nature: Rash
                      Posts: 44
                      Quote:
                      Originally Posted by Chaotix View Post
                      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 March 28th, 2015 (1:41 PM).
                      Mystery Man's Avatar
                      Mystery Man Mystery Man is offline
                      Don't be like me!
                         
                        Join Date: Dec 2011
                        Age: 21
                        Gender: Other
                        Nature: Quirky
                        Posts: 156
                        Quote:
                        Originally Posted by Cruztown View Post
                        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 March 28th, 2015 (5:01 PM).
                        kearnseyboy6's Avatar
                        kearnseyboy6 kearnseyboy6 is offline
                        Aussie's Toughest Mudder
                           
                          Join Date: Dec 2008
                          Posts: 300
                          Quote:
                          Originally Posted by Mystery Man View Post
                          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 March 29th, 2015 (8:48 AM). Edited March 29th, 2015 by Cruztown.
                          Cruztown's Avatar
                          Cruztown Cruztown is offline
                          Squirtle Squirt.
                             
                            Join Date: Jul 2012
                            Gender: Male
                            Nature: Rash
                            Posts: 44
                            Quote:
                            Originally Posted by Mystery Man View Post
                            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 March 31st, 2015 (6:44 AM). Edited March 31st, 2015 by leyn09.
                            leyn09's Avatar
                            leyn09 leyn09 is offline
                            Truant Trainer
                               
                              Join Date: May 2011
                              Location: Philippines
                              Gender: Male
                              Nature: Careful
                              Posts: 84
                              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 April 2nd, 2015 (4:23 AM).
                              kearnseyboy6's Avatar
                              kearnseyboy6 kearnseyboy6 is offline
                              Aussie's Toughest Mudder
                                 
                                Join Date: Dec 2008
                                Posts: 300
                                Quote:
                                Originally Posted by leyn09 View Post
                                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 April 2nd, 2015 (2:47 PM).
                                HungLikeATauros HungLikeATauros is offline
                                Banned
                                   
                                  Join Date: Feb 2015
                                  Gender: Male
                                  Posts: 46
                                  The instructions for inserting this are beyond horrid. Has there been a tutorial made by someone who's competent?
                                  Reply With Quote
                                    #67    
                                  Old April 2nd, 2015 (3:53 PM).
                                  DoesntKnowHowToPlay's Avatar
                                  DoesntKnowHowToPlay DoesntKnowHowToPlay is offline
                                  Tiny Umbrella with Lots and Lots of Good
                                     
                                    Join Date: Jan 2012
                                    Posts: 258
                                    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 April 2nd, 2015 (8:59 PM).
                                    kearnseyboy6's Avatar
                                    kearnseyboy6 kearnseyboy6 is offline
                                    Aussie's Toughest Mudder
                                       
                                      Join Date: Dec 2008
                                      Posts: 300
                                      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 April 3rd, 2015 (6:02 PM). Edited April 3rd, 2015 by leyn09.
                                      leyn09's Avatar
                                      leyn09 leyn09 is offline
                                      Truant Trainer
                                         
                                        Join Date: May 2011
                                        Location: Philippines
                                        Gender: Male
                                        Nature: Careful
                                        Posts: 84
                                        Quote:
                                        Originally Posted by kearnseyboy6 View Post
                                        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 View Post
                                        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 April 3rd, 2015 (8:14 PM).
                                        leyn09's Avatar
                                        leyn09 leyn09 is offline
                                        Truant Trainer
                                           
                                          Join Date: May 2011
                                          Location: Philippines
                                          Gender: Male
                                          Nature: Careful
                                          Posts: 84
                                          Quote:
                                          Originally Posted by kearnseyboy6 View Post
                                          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 April 4th, 2015 (4:38 PM). Edited April 4th, 2015 by Mystery Man.
                                          Mystery Man's Avatar
                                          Mystery Man Mystery Man is offline
                                          Don't be like me!
                                             
                                            Join Date: Dec 2011
                                            Age: 21
                                            Gender: Other
                                            Nature: Quirky
                                            Posts: 156
                                            Quote:
                                            Originally Posted by leyn09 View Post
                                            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 April 4th, 2015 (5:27 PM).
                                            leyn09's Avatar
                                            leyn09 leyn09 is offline
                                            Truant Trainer
                                               
                                              Join Date: May 2011
                                              Location: Philippines
                                              Gender: Male
                                              Nature: Careful
                                              Posts: 84
                                              Quote:
                                              Originally Posted by Mystery Man View Post
                                              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 April 4th, 2015 (5:42 PM).
                                              Mystery Man's Avatar
                                              Mystery Man Mystery Man is offline
                                              Don't be like me!
                                                 
                                                Join Date: Dec 2011
                                                Age: 21
                                                Gender: Other
                                                Nature: Quirky
                                                Posts: 156
                                                Quote:
                                                Originally Posted by leyn09 View Post
                                                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 April 4th, 2015 (6:00 PM).
                                                leyn09's Avatar
                                                leyn09 leyn09 is offline
                                                Truant Trainer
                                                   
                                                  Join Date: May 2011
                                                  Location: Philippines
                                                  Gender: Male
                                                  Nature: Careful
                                                  Posts: 84
                                                  Quote:
                                                  Originally Posted by Mystery Man View Post
                                                  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
                                                    #75    
                                                  Old April 27th, 2015 (8:39 PM). Edited July 13th, 2015 by azurile13.
                                                  azurile13 azurile13 is offline
                                                     
                                                    Join Date: Mar 2015
                                                    Posts: 421
                                                    First of all, this looks incredibly useful, so thank you

                                                    Now the question: in your instructions for the EV Spread Table, your list only adds up to 15 bytes. Am I correct in my assumption that you're merely missing the new spot for IV? Based on the second post in the thread, I'm guessing right before the HP EV?
                                                    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

                                                    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 GMT -8. The time now is 12:44 AM.