The PokéCommunity Forums Fan Games ROM Hacking Research & Development
Quick Research & Development Thread

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!


Reply
 
Thread Tools
  #901    
Old November 25th, 2016 (9:30 AM). Edited November 26th, 2016 by BluRose.
BluRose BluRose is offline
blu rass
     
    Join Date: Apr 2014
    Location: hyakkoku city
    Age: 17
    Gender: Male
    Nature: Timid
    Posts: 737
    Quote:
    Originally Posted by LCCoolJ95 View Post
    Hello, just wondering how this is going!
    research/small tangent about how this was originally going
    Spoiler:
    Spoiler:
    Code:
    .text
    .thumb
    .thumb_func
    .align 2
    
    201E0:
    	add r0, r1, #0x0
    	add r1, r5, #0x0
    	bl 1E0868 @???
    	mov r2, r10
    	strh r0, [r2]
    	lsl r0, r0 , #0x10
    	cmp r0, @0x0
    	bne 201F6
    	mov r0, #0x1
    	strh r0, [r2]
    201F6:
    	ldr r0, =(0x02024DEE) @20248
    	strh r6, [r0]
    	ldr r2, =(0x02000000) @2024C
    	ldr r3, =(0x0001600F) @20250
    	add r2, r1, r3
    	ldrb r0, [r2]
    	add r0, #0x1
    	mov r3, #0x0
    	strb r0, [r2]
    	ldr r2, =(0x00016018) @20254
    	add r0, r1, r2
    	strb r3, [r0]
    	ldr r3, =(0x0001605F) @20258
    	add r1, r1, r3
    	mov r0, r8
    	strb r0, [r1]
    	ldr r0, =(0x02025A64) @2025C
    	ldr r0, [r0]
    	cmp r0, #0x0
    	beq 20220	
    	b 20996
    20220:
    	ldr r0, =(0x02000000) @2024C
    	ldr r1, =(0x00016018) @20254
    	add r0, r0, r1
    	ldrb r1, [r0]
    	mov r0, #0x64
    	mul r0, r1
    	ldr r1, =(0x02004360) @20260
    	add r0, r0, r1
    	mov r1, #0xC
    	bl 3CB60
    	lsl r0, r0, #0x10
    	lsr r0, r0, #0x10
    	cmp r0, #0xAF
    	bne 2026C
    	ldr r0, =(0x02025734) @20264
    	ldr r2, =(0x00003688) @20268
    	add r0, r0, r2
    	ldrb r4, [r0]
    	b 20274
    
    @[pointers/constant words here. define as .equ's later or something]
    @20248-2026B
    
    2026C:
    	bl A993C
    	lsl r0, r0, #0x18
    	lsr r4, r0, #0x18
    
    20274:
    	ldr r5, =(0x02000000) @20294
    	cmp r4, #0x19
    	beq 202A0
    	ldr r3, =(0x0001605F) @20298
    	add r1, r5, r3
    	ldrb r0, [r1]
    	mov r2, #0x1
    	and r2, r0
    	cmp r2, #0x0
    	bne 202A0
    	lsr r0, r0, #0x1
    	strb r0, [r1]
    	ldr r0, =(0x0001600F) @2029C @where andrea's function points to is right here, 2028C
    	add r1, r5, r0
    	b 202C8
    
    @[more pointers/constants.  .equ's later, maybe not.]
    @20294-2029F
    
    202A0:	@where andrea's return is going to
    	ldr r1, =(0x00016018) @202D4
    	add r0, r5, r1
    	ldrb r1, [r0]
    	mov r0, #0x64
    	mul r0, r1
    	ldr r1, =(0x03004360) @202D8
    	add r0, r0, r1
    	mov r1, #0x38
    	bl 3CB60
    	cmp r0, #0x64
    	bne 202E8
    	ldr r2, =(0x0001605F) @202DC
    	add r1, r5, r2
    	ldrb r0, [r1]
    	lsr r0, r0, #0x1
    	mov r1, #0x0
    	strb r0, [r1]
    	ldr r3, =(0x0001600F) @202E0
    	add r1, r5, r3
    202C8:
    	mov r0, #0x5
    	strb r0, [r1]
    	ldr r0, =(0x02024BEC) @202E4
    	str r2m [r0]
    	b 20996
    
    @[pointers/constants]
    @202D4-202E7
    
    202E8:
    	@insert function here
    
    20996:	@i felt that this was referenced a lot, so i decided to write it down like the rest i guess
    	@NOTE: this function as it is appears at least 37 times BEFORE it does here in the Ruby ROM.  It appears even more often in Fire Red.  PLEASE, don't come to me saying that you found an equivalent offset claiming 20996 in AXVE equals E8C in BPRE.
    	pop {r3-r5}
    	mov r8, r3
    	mov r9, r4
    	mov r10, r5
    	pop {r4-r7}
    	pop {r0}
    	bx r0
    
    @[more constants and muk]
    
    3CB60
    
    A993C
    
    1E0868

    it's just a matter of finding the rough same in fire red at the moment, specifically 20274. haven't even started on the other routine because all of this was really done this morning (shhhhhhh)

    EDIT: accidentally disassembled the other routine referenced that we haven't found as well while disassembling what the first one references :P
    coolio. meanwhile, i'm actually going to check out one of the other routines because really it doesn't seem equal ahaha

    EDIT: ok i'm psyducking dumb
    Code:
    branch point AXVE:  
            20280
    return point AXVE:  
            2028C (notice how it's literally branch +0xC)
    
    branch point BPRE:  
            21CCE
    return point BPRE: (one of what we're looking for)
            21CDA
    
    return point 2 AXVE:
            202A0
    return point 2 BPRE: (other of what we're looking for)
            21CE8
    magically, when looking it up in IDB, almost everything matches! imagine that :):):):):):):):):):):):):)
    here's bpre's routine, credits to andrea~ and the_learner (for making it relatively easy to find two addresses; he already found them). i did practically nothing except be stupid and look for something that was literally right under my nose the whole time


    - - - - - - - - -
    Andrea's Gen VI Exp. Share
    - - - - - - - - -

    Credits to Andrea~ and The_Learner

    bpre:
    Spoiler:
    Code:
    21CD0 - 00 4A 10 47 XX XX XX XX
    21C3A - 02 21
    21D70 - 01 20
    routine at XXXXXXXX
    Code:
    .THUMB
    .ALIGN 2
    
    PUSH {R0-R7}
    MOV R0, #0xB6
    MOV R1, #1
    BL CHECK_ITEM
    CMP R0, #1
    BEQ RETURN
    POP {R0-R7}
    
    MOV R2, #1
    AND R2, R0
    CMP R2, #0
    BNE RETURN_2
    
    LSR R0, R0, #1
    STRB R0, [R1]
    LDR R1, = 0x08021CDB /*axve: 0x0802028D*/
    BX R1
    
    RETURN:
    POP {R0-R7}
    
    RETURN_2:
    LDR R1, = 0x08021CE9 /*axve: 0x080202A1*/
    BX R1
    
    CHECK_ITEM:
    PUSH {R0}
    LDR R0, = 0x08099F41 /*axve: 0x080A92D5*/
    MOV R11, R0
    POP {R0}
    BX R11

    bpee:
    Spoiler:
    Code:
    4A594 - 00 4A 10 47 XX XX XX XX
    4A4BE - 02 21
    4A634 - 01 20
    Code:
    .THUMB
    .ALIGN 2
    
    PUSH {R0-R7}
    MOV R0, #0xB6
    MOV R1, #1
    BL CHECK_ITEM
    CMP R0, #1
    BEQ RETURN
    POP {R0-R7}
    
    MOV R2, #1
    AND R2, R0
    CMP R2, #0
    BNE RETURN_2
    
    LSR R0, R0, #1
    STRB R0, [R1]
    LDR R1, = 0x0804A59F /*axve: 0x0802028D*/
    BX R1
    
    RETURN:
    POP {R0-R7}
    
    RETURN_2:
    LDR R1, = 0x0804A5AD /*axve: 0x080202A1*/
    BX R1
    
    CHECK_ITEM:
    PUSH {R0}
    LDR R0, = 0x080D6725 /*axve: 0x080A92D5*/
    MOV R11, R0
    POP {R0}
    BX R11

    have a nice day, this took way too long <3
    __________________
    am i cool yet
    Reply With Quote

    Relevant Advertising!

      #902    
    Old November 26th, 2016 (12:24 AM).
    BlackWhiteRobin's Avatar
    BlackWhiteRobin BlackWhiteRobin is online now
       
      Join Date: Sep 2012
      Age: 20
      Gender: Male
      Nature: Quirky
      Posts: 543
      Quote:
      Originally Posted by BluRose View Post
      Spoiler:
      Code:
      .text
      .thumb
      .thumb_func
      .align 2
      
      201E0:
          add r0, r1, #0x0
          add r1, r5, #0x0
          bl 1E0868 @???
          mov r2, r10
          strh r0, [r2]
          lsl r0, r0 , #0x10
          cmp r0, @0x0
          bne 201F6
          mov r0, #0x1
          strh r0, [r2]
      201F6:
          ldr r0, =(0x02024DEE) @20248
          strh r6, [r0]
          ldr r2, =(0x02000000) @2024C
          ldr r3, =(0x0001600F) @20250
          add r2, r1, r3
          ldrb r0, [r2]
          add r0, #0x1
          mov r3, #0x0
          strb r0, [r2]
          ldr r2, =(0x00016018) @20254
          add r0, r1, r2
          strb r3, [r0]
          ldr r3, =(0x0001605F) @20258
          add r1, r1, r3
          mov r0, r8
          strb r0, [r1]
          ldr r0, =(0x02025A64) @2025C
          ldr r0, [r0]
          cmp r0, #0x0
          beq 20220    
          b 20996
      20220:
          ldr r0, =(0x02000000) @2024C
          ldr r1, =(0x00016018) @20254
          add r0, r0, r1
          ldrb r1, [r0]
          mov r0, #0x64
          mul r0, r1
          ldr r1, =(0x02004360) @20260
          add r0, r0, r1
          mov r1, #0xC
          bl 3CB60
          lsl r0, r0, #0x10
          lsr r0, r0, #0x10
          cmp r0, #0xAF
          bne 2026C
          ldr r0, =(0x02025734) @20264
          ldr r2, =(0x00003688) @20268
          add r0, r0, r2
          ldrb r4, [r0]
          b 20274
      
      @[pointers/constant words here. define as .equ's later or something]
      @20248-2026B
      
      2026C:
          bl A993C
          lsl r0, r0, #0x18
          lsr r4, r0, #0x18
      
      20274:
          ldr r5, =(0x02000000) @20294
          cmp r4, #0x19
          beq 202A0
          ldr r3, =(0x0001605F) @20298
          add r1, r5, r3
          ldrb r0, [r1]
          mov r2, #0x1
          and r2, r0
          cmp r2, #0x0
          bne 202A0
          lsr r0, r0, #0x1
          strb r0, [r1]
          ldr r0, =(0x0001600F) @2029C @where andrea's function points to is right here, 2028C
          add r1, r5, r0
          b 202C8
      
      @[more pointers/constants.  .equ's later, maybe not.]
      @20294-2029F
      
      202A0:    @where andrea's return is going to
          ldr r1, =(0x00016018) @202D4
          add r0, r5, r1
          ldrb r1, [r0]
          mov r0, #0x64
          mul r0, r1
          ldr r1, =(0x03004360) @202D8
          add r0, r0, r1
          mov r1, #0x38
          bl 3CB60
          cmp r0, #0x64
          bne 202E8
          ldr r2, =(0x0001605F) @202DC
          add r1, r5, r2
          ldrb r0, [r1]
          lsr r0, r0, #0x1
          mov r1, #0x0
          strb r0, [r1]
          ldr r3, =(0x0001600F) @202E0
          add r1, r5, r3
      202C8:
          mov r0, #0x5
          strb r0, [r1]
          ldr r0, =(0x02024BEC) @202E4
          str r2m [r0]
          b 20996
      
      @[pointers/constants]
      @202D4-202E7
      
      202E8:
          @insert function here
      
      20996:    @i felt that this was referenced a lot, so i decided to write it down like the rest i guess
          @NOTE: this function as it is appears at least 37 times BEFORE it does here in the Ruby ROM.  It appears even more often in Fire Red.  PLEASE, don't come to me saying that you found an equivalent offset claiming 20996 in AXVE equals E8C in BPRE.
          pop {r3-r5}
          mov r8, r3
          mov r9, r4
          mov r10, r5
          pop {r4-r7}
          pop {r0}
          bx r0
      
      @[more constants and ****]
      
      3CB60
      
      A993C
      
      1E0868

      it's just a matter of finding the rough same in fire red at the moment, specifically 20274. haven't even started on the other routine because all of this was really done this morning (shhhhhhh)

      EDIT: accidentally disassembled the other routine referenced that we haven't found as well while disassembling what the first one references :P
      coolio. meanwhile, i'm actually going to check out one of the other routines because really it doesn't seem equal ahaha

      EDIT: ok i'm ****ing dumb
      Code:
      branch point AXVE:  
              20280
      return point AXVE:  
              2028C (notice how it's literally branch +0xC)
      
      branch point BPRE:  
              21CCE
      return point BPRE: (one of what we're looking for)
              21CDA
      
      return point 2 AXVE:
              202A0
      return point 2 BPRE: (other of what we're looking for)
              21CE8
      magically, when looking it up in IDB, almost everything matches! imagine that :):):):):):):):):):):):):)
      here's bpre's routine, credits to andrea~ and the_learner (for making it relatively easy to find two addresses; he already found them). i did practically nothing except be stupid and look for something that was literally right under my nose the whole time
      as usual, untested
      Spoiler:
      Code:
      21CCE - 00 4A 10 47 XX XX XX XX
      21C3A - 02 21
      21D70 - 01 20
      routine at XXXXXXXX
      Code:
      .THUMB
      .ALIGN 2
      
      PUSH {R0-R7}
      MOV R0, #0xB6
      MOV R1, #1
      BL CHECK_ITEM
      CMP R0, #1
      BEQ RETURN
      POP {R0-R7}
      
      MOV R2, #1
      AND R2, R0
      CMP R2, #0
      BNE RETURN_2
      
      LSR R0, R0, #1
      STRB R0, [R1]
      LDR R1, = 0x08021CDB /*axve: 0x0802028D*/
      BX R1
      
      RETURN:
      POP {R0-R7}
      
      RETURN_2:
      LDR R1, = 0x08021CE9 /*axve: 0x080202A1*/
      BX R1
      
      CHECK_ITEM:
      PUSH {R0}
      LDR R0, = 0x08099F41 /*axve: 0x080A92D5*/ /*i was entirely off in my original searching for this ehehe*/
      MOV R11, R0
      POP {R0}
      BX R11

      and because lccoolj95's going to ask for it, bpee (still untested):
      Spoiler:
      Code:
      4A592 - 00 4A 10 47 XX XX XX XX
      4A4BE - 02 21
      4A634 - 01 20
      Code:
      .THUMB
      .ALIGN 2
      
      PUSH {R0-R7}
      MOV R0, #0xB6
      MOV R1, #1
      BL CHECK_ITEM
      CMP R0, #1
      BEQ RETURN
      POP {R0-R7}
      
      MOV R2, #1
      AND R2, R0
      CMP R2, #0
      BNE RETURN_2
      
      LSR R0, R0, #1
      STRB R0, [R1]
      LDR R1, = 0x0804A59F /*axve: 0x0802028D*/
      BX R1
      
      RETURN:
      POP {R0-R7}
      
      RETURN_2:
      LDR R1, = 0x0804A5AD /*axve: 0x080202A1*/
      BX R1
      
      CHECK_ITEM:
      PUSH {R0}
      LDR R0, = 0x080D6725 /*axve: 0x080A92D5*/
      MOV R11, R0
      POP {R0}
      BX R11

      have a nice day, this took way too long <3
      Tested EM's. Game restarts right before receiving experience points with or without EXP. Share Item. I've yet to test FR's. (And this breaks my heart.)
      Reply With Quote
        #903    
      Old November 26th, 2016 (6:01 AM). Edited November 26th, 2016 by BluRose.
      BluRose BluRose is offline
      blu rass
         
        Join Date: Apr 2014
        Location: hyakkoku city
        Age: 17
        Gender: Male
        Nature: Timid
        Posts: 737
        Quote:
        Originally Posted by BlackWhiteRobin View Post
        Tested EM's. Game restarts right before receiving experience points with or without EXP. Share Item. I've yet to test FR's. (And this breaks my heart.)
        lol ok i'll have to adjust it. likely because different registers are (probably) used for the check-item routine across all three versions, and i honestly only found it because the checkitem script command references it in each version
        report back with fr, please <3

        EDIT: i'll do fr, but how done i was yesterday shines through in that i didn't even tell to make the pointer aligned. :P

        EDIT2: works here after a few byte changes to my byte changes were made to made. updating post

        EDIT3: works in em after doing the same byte changes.

        happy hacking!
        __________________
        am i cool yet
        Reply With Quote
          #904    
        Old December 18th, 2016 (11:27 AM). Edited July 14th, 2017 by Sagiri.
        Sagiri's Avatar
        Sagiri Sagiri is offline
           
          Join Date: Mar 2007
          Posts: 742
          Automatic Double Battles with Trainers [FR]

          First, the code:

          Spoiler:
          Code:
          .text
          .align 2
          .thumb
          
          .equ FREE_SPACE, 0x800000
          .equ AUTODOUBLE_FLAG, 0x200
          
          .org 0x011686
          hook:
              ldr r0, autodoubleptr
              bx r0
              
          .align 2
              
          autodoubleptr: .word 0x08000000 + FREE_SPACE +1
          
          .org FREE_SPACE
          
          autodouble:
                                                      @ r3 := tid
              ldr r1, trainer_something_823EAC8
              ldr r4, [sp, #0x20]                     @ r4 := 4 * tid
              add r0, r3, r4                          @ r0 := 5 * tid
              lsl r0, r0, #3                          @ r0 := 40 * tid
              add r0, r1                              @ r0 := data
              ldr r3, flag_check
              
              push {r0}
              ldr r0, flag_number
              bl call
              mov r3, r0
              pop {r0}
              cmp r3, #0
              beq noautodouble
              
              @ NPC having less than 2 Pokemon -> single battle
              mov r1, #0
              mov r2, #0x20
              add r2, r0
              ldrb r2, [r2]                           @ r2 := party_size
              cmp r2, #2
              blo return
              
              push {r1}
              ldr r3, dbl_btl_teamcheck
              bl call
              pop {r1}
              cmp r0, #0
              bne return
              mov r1, #1
              
          return:
                                                      @ r1 := double ? 1 : 0
              ldr r2, battle_type_flags
              ldr r0, [r2]
              orr r0, r1
              str r0, [r2]
              ldr r0, returnptr
              bx r0
              
          noautodouble:
              ldrb r1, [r0, #0x18]
              b return
              
          call:
              bx r3
              
          .align 2
          
          battle_type_flags: .word 0x02022b4c
          trainer_something_823EAC8: .word 0x0823EAC8
          returnptr: .word 0x0801169c +1
          dbl_btl_teamcheck: .word 0x8040CC4 +1
          flag_check: .word 0x0806E6D0 +1
          flag_number: .hword AUTODOUBLE_FLAG


          You should change the definitions of FREE_SPACE and AUTODOUBLE_FLAG. FREE_SPACE should be self explanatory, and AUTODOUBLE_FLAG needs an unused flag (as in, for scripting). It defaults to 0x200, which is unused by default, but you can change it to whatever you want.

          If the flag you chose is on (set), the game will decide if a trainer battle should be a Single Battle or a Double Battle based on the number of eligible Pokemon. If both of you have two or more non-fainted Pokemon, it'll be a Double Battle. Otherwise, it'll be a single battle.

          If the flag is off (cleared), the game will revert back to the original behavior of using the double battle flag in the trainer data to determine if a trainer battle should be a Single Battle or a Double Battle.

          The main reason it's dependent on a flag is so that you can turn it on/off as needed. Or you could provide, for example, a Key Item to turn it on or off so the Player could have control over it.

          Powder Jar [FR]

          The amount of berry powder is stored in a byte at [0x300500C] + 0xAF8. It's referred to as "field_af8". It is encrypted via the Security Key.

          In finding this, I found a function at 0x0815EE3C which takes a pointer and decrypts what it points to with the Security Key.
          Reply With Quote
            #905    
          Old December 20th, 2016 (11:09 AM).
          esperance's Avatar
          esperance esperance is offline
           
          Join Date: Mar 2010
          Location: Ohio
          Age: 21
          Gender: Male
          Nature: Relaxed
          Posts: 3,820
          Door Animation Format

          Door animations follow a very simple 12-byte format, which I'm sharing for anyone that needs a reference.

          Code:
          | Offset  | Type          | Notes                            |
          |------------------------------------------------------------|
          | 0-1     | Tile index    |                                  |
          | 2       | Sound flag    | 00 = door, other = sliding door  |
          | 3       | Tile flag     | 00 = one tile, other = two tiles |
          | 4-7     | Image         | pointer, uncompressed            |
          | 8-11    | Palette       | pointer                          |
          The data is stored in tables, and can be found at the following offsets:
          Code:
          AXVE: 30F9B4
          AXPE: 30F944
          BPRE: 35B5D8
          BPGE: 35B5B8
          BPEE: 497174
          __________________
          What are you so afraid of?
          Reply With Quote
            #906    
          Old December 29th, 2016 (6:06 AM).
          EddyHg80's Avatar
          EddyHg80 EddyHg80 is offline
             
            Join Date: Jan 2014
            Age: 21
            Gender: Male
            Posts: 30
            Guys I need some help to port this feature to the Italian Emerald rom.
            I found the battle script offset and the other offsets required but I'm pretty sure some hex valuse needs to be changed. When inserting this new battle script when I catch a pokemon it's all fine, then the pokeball disappears but the battle doesn't end, if I go to the bag and then back into the battle the pokemon is still there.
            Can someone have a look into this?

            Battle script offset: 0x2DCD10
            Pokemons evolve from this experience, replace the bytes at 0x3DE80 with B9 DE 03 08

            You can use my save file to test the results.
            Reply With Quote
              #907    
            Old December 29th, 2016 (6:32 AM). Edited December 29th, 2016 by Trev.
            Trev's Avatar
            Trev Trev is offline
             
            Join Date: May 2012
            Age: 21
            Nature: Sassy
            Posts: 1,320
            The bytes you put at 0x3DE80 should be B5 DE 03 08. Unless that has something to do with Emerald, I don't know because I don't hack Emerald...

            Anyway, you don't need to insert any actual battle scripts. Copy this:

            Code:
            2A 00 08 42 02 02 05 00 92 BD 2D 08 60 0B 10 0B 01 F1 XX XX XX XX 2E 90 44 02 02 00 2E AC 40 02 02 00 2E AD 40 02 02 00 23 00 10 0F 01 3A 2E 32 43 02 02 00 F2 10 0D 01 3A 2E 32 43 02 02 00 F3 C2 BD 2D 08 F0 13 7A C9 5C 08 12 40 00 28 C3 BD 2D 08
            to freespace, and replace the XX XX XX XX with a pointer to:

            Code:
            2E 90 44 02 02 00 2E AC 40 02 02 00 2E AD 40 02 02 00 23 00 10 0D 01 3A 2E 32 43 02 02 00 F3 C2 BD 2D 08 F0 13 7A C9 5C 08 12 40 00 28 C3 BD 2D 08
            which you also insert into freespace. Then, go to your offset in a hex editor, and write the pointer to the first code overtop of the pointer already there. The pointer in the first code should be XX XX XX 08 (I don't know why Chaos wouldn't put the 08 there). That's what I did in FireRed so it should, theoretically, work.

            Quote:
            Originally Posted by Lost Heart View Post
            Spoiler:
            Door Animation Format

            Door animations follow a very simple 12-byte format, which I'm sharing for anyone that needs a reference.

            Code:
            | Offset  | Type          | Notes                            |
            |------------------------------------------------------------|
            | 0-1     | Tile index    |                                  |
            | 2       | Sound flag    | 00 = door, other = sliding door  |
            | 3       | Tile flag     | 00 = one tile, other = two tiles |
            | 4-7     | Image         | pointer, uncompressed            |
            | 8-11    | Palette       | pointer                          |
            The data is stored in tables, and can be found at the following offsets:
            Code:
            AXVE: 30F9B4
            AXPE: 30F944
            BPRE: 35B5D8
            BPGE: 35B5B8
            BPEE: 497174
            We can repoint this, I assume, which means we could probably have a much easier time inserting and creating doors. Images encompass the animation frames, yes? Does the animation occur naturally if data is added to this table? How would we utilize a newly-inserted door in a map editor?
            __________________






            Reply With Quote
              #908    
            Old December 30th, 2016 (3:42 AM).
            EddyHg80's Avatar
            EddyHg80 EddyHg80 is offline
               
              Join Date: Jan 2014
              Age: 21
              Gender: Male
              Posts: 30
              Quote:
              Originally Posted by Trev View Post
              Spoiler:
              The bytes you put at 0x3DE80 should be B5 DE 03 08. Unless that has something to do with Emerald, I don't know because I don't hack Emerald...

              Anyway, you don't need to insert any actual battle scripts. Copy this:

              Code:
              2A 00 08 42 02 02 05 00 92 BD 2D 08 60 0B 10 0B 01 F1 XX XX XX XX 2E 90 44 02 02 00 2E AC 40 02 02 00 2E AD 40 02 02 00 23 00 10 0F 01 3A 2E 32 43 02 02 00 F2 10 0D 01 3A 2E 32 43 02 02 00 F3 C2 BD 2D 08 F0 13 7A C9 5C 08 12 40 00 28 C3 BD 2D 08
              to freespace, and replace the XX XX XX XX with a pointer to:

              Code:
              2E 90 44 02 02 00 2E AC 40 02 02 00 2E AD 40 02 02 00 23 00 10 0D 01 3A 2E 32 43 02 02 00 F3 C2 BD 2D 08 F0 13 7A C9 5C 08 12 40 00 28 C3 BD 2D 08
              which you also insert into freespace. Then, go to your offset in a hex editor, and write the pointer to the first code overtop of the pointer already there. The pointer in the first code should be XX XX XX 08 (I don't know why Chaos wouldn't put the 08 there). That's what I did in FireRed so it should, theoretically, work.

              You just made a copy paste of what Chaos wrote, didn't you? :D
              Same result, something has to be changed to get this work with the Italian rom.

              Quote:
              Originally Posted by Trev View Post
              The bytes you put at 0x3DE80 should be B5 DE 03 08. Unless that has something to do with Emerald, I don't know because I don't hack Emerald...
              In the italian rom that pointer need to be changed since the bytes are not in the same place of the english one.

              Can someone download an italian rom and try to fix it please?
              (just serch for "Pokemon Smeraldo ita rom download")
              Here's my save file to test the results.
              Reply With Quote
                #909    
              Old December 30th, 2016 (6:26 AM). Edited December 30th, 2016 by Trev.
              Trev's Avatar
              Trev Trev is offline
               
              Join Date: May 2012
              Age: 21
              Nature: Sassy
              Posts: 1,320
              [FR] If you want every Pokemon who participates in battle to receive full exp instead of having it divided, write 01 21 at 0x21C3A. Credit to Doesnt for finding this (somehow).
              __________________






              Reply With Quote
                #910    
              Old December 30th, 2016 (1:44 PM).
              frezgle frezgle is offline
                 
                Join Date: Dec 2014
                Gender: Female
                Posts: 12
                Quote:
                Originally Posted by Trev View Post
                [FR] If you want every Pokemon who participates in battle to receive full exp instead of having it divided, write 01 21 at 0x21C3A.
                On this note, the equivalent bytes to change in Emerald are located at 0x4A4FE.
                Reply With Quote
                  #911    
                Old January 4th, 2017 (2:47 AM).
                Froosty's Avatar
                Froosty Froosty is offline
                The_Learner
                   
                  Join Date: Sep 2014
                  Location: Somewhere in this world.
                  Age: 20
                  Gender: Male
                  Nature: Brave
                  Posts: 541
                  Quote:
                  Originally Posted by azurile13 View Post
                  I don't know if this has been posted before, but whatevs. It came to my attention today that the bag in FireRed crashes if a "main" pocket has more than 42 items (the normal max for regular items). I had always assumed the malloc was done based on a multiple of the numbers inputted at the routine beginning 0x08099E44, because the TM pocket works fine even with over 100 items, but apparently the berry/TM cases mean they run off of something different. Anyhow, to allow for sufficient malloc requests, change ".equ largest_pocket_size" to your new max and insert this:
                  Code:
                  .equ largest_pocket_size,	CHANGE THIS LINE
                  .equ largest_pocket_size_plus_one, largest_pocket_size + 1
                  .equ strings_size,	largest_pocket_size_plus_one * 19
                  
                  .org 0x08002B9C
                  malloc:
                  	push {lr}
                  	mov r1, r0
                  
                  .org 0x081083F4
                  main:
                  	push {r4, lr}
                  	ldr r4, =(0x0203AD18)
                  	mov r0, #largest_pocket_size_plus_one
                  	lsl r0, r0, #0x3
                  	bl malloc
                  	str r0, [r4, #0x0]
                  	cmp r0, #0x0
                  	beq return
                  	ldr r0, =strings_size
                  	bl malloc
                  	str r0, [r4, #0x4]
                  	cmp r0, #0x0
                  	beq return
                  	mov r0, #0x1
                  
                  return:
                  	pop {r4}
                  	pop {r1}
                  	bx r1
                  EDIT: I haven't done much testing. I've only thrown like 60 items into the general items pocket before I got bored & assumed this routine was the only problem.

                  Info on 0x08099E44: http://www.pokecommunity.com/showpost.php?p=9014911&postcount=2018
                  I cant seem to compile it,
                  can anyone help me out???
                  __________________
                  Want to talk with me regarding Rom-hacking ??? Want to get access to my works exclusive than anywhere else ???
                  Click here to get in the discord server here where rom-hacking is a everyday talk and task.

                  Want to showcase your hack on discord server ??? Click here to get the dask done.

                  My works:
                  TOOL: TL's Quick Enhancer
                  TUTORIAL: Fire red habitat editing
                  TUTORIAL: Fire red Transparent text-box


                  | |
                  Reply With Quote
                    #912    
                  Old January 4th, 2017 (6:12 AM).
                  Trev's Avatar
                  Trev Trev is offline
                   
                  Join Date: May 2012
                  Age: 21
                  Nature: Sassy
                  Posts: 1,320
                  Quote:
                  Originally Posted by The_learner View Post
                  I cant seem to compile it,
                  can anyone help me out???
                  Post a thread in the Help-Me-Hack section.
                  __________________






                  Reply With Quote
                    #913    
                  Old January 4th, 2017 (10:52 AM).
                  Megax Rocker's Avatar
                  Megax Rocker Megax Rocker is offline
                     
                    Join Date: Jan 2016
                    Posts: 123
                    Is there a way to make Wobuffet and Maril/Azumaril always breed their baby forms without the need of the Incense items to be held? Essentially making them behave like Pikachu and pichu?
                    Reply With Quote
                      #914    
                    Old January 4th, 2017 (2:03 PM).
                    Chaotix Chaotix is offline
                    Good at Maps, Bad at Scripts
                       
                      Join Date: Feb 2007
                      Nature: Adamant
                      Posts: 40
                      Quote:
                      Originally Posted by Touched View Post
                      Try increasing the value at 0809B430 (FR) from 4 to 5. That number should be the digit length of prices for the Pokemart.
                      I just tried this recently and I can't seem to get it to work. On attempting to load a pokemart containing an item with a value greater than 5 digits in it's stock the game gets stuck on a black screen. Not sure what could be going wrong here.
                      Reply With Quote
                        #915    
                      Old January 4th, 2017 (3:55 PM).
                      BluRose BluRose is offline
                      blu rass
                         
                        Join Date: Apr 2014
                        Location: hyakkoku city
                        Age: 17
                        Gender: Male
                        Nature: Timid
                        Posts: 737
                        Quote:
                        Originally Posted by Chaotix View Post
                        I just tried this recently and I can't seem to get it to work. On attempting to load a pokemart containing an item with a value greater than 5 digits in it's stock the game gets stuck on a black screen. Not sure what could be going wrong here.
                        hi chaotix! me again

                        figured it out
                        9B430 - 05 (max characters taken from a string)
                        9B440 - 05 (i have no idea, maybe max characters that can be shown? necessary nonetheless)

                        so just doing these two changes creates an annoying thing where everything has its last digit cut off
                        9B47A - 64 (instead of 69) (it's an x-coordinate, so i don't know if this value is exact or not)

                        (resultant picture, you can use to compare to original and subtract/add pixel values as necessary)

                        EDIT: AHHHH KILL ATTACHED THUMBNAILS WITH FIRE
                        __________________
                        am i cool yet
                        Reply With Quote
                          #916    
                        Old January 4th, 2017 (4:07 PM).
                        Chaotix Chaotix is offline
                        Good at Maps, Bad at Scripts
                           
                          Join Date: Feb 2007
                          Nature: Adamant
                          Posts: 40
                          Quote:
                          Originally Posted by BluRose View Post
                          hi chaotix! me again

                          figured it out
                          9B430 - 05 (max characters taken from a string)
                          9B440 - 05 (i have no idea, maybe max characters that can be shown? necessary nonetheless)

                          so just doing these two changes creates an annoying thing where everything has its last digit cut off
                          9B47A - 64 (instead of 69) (it's an x-coordinate, so i don't know if this value is exact or not)
                          I appreciate this sooo much BluRose! I'll mess around with it soon and thanks much, sorry to bother you with all this.
                          Reply With Quote
                            #917    
                          Old January 5th, 2017 (7:03 AM).
                          Squeetz's Avatar
                          Squeetz Squeetz is offline
                          Music hacker
                           
                          Join Date: Jun 2013
                          Location: Norway
                          Age: 21
                          Gender: Male
                          Nature: Quiet
                          Posts: 235
                          To change what Pokémon gets the DeepseaScale and DeepseaTooth boosts, change the bytes at 0x3F24C to your new Pokémon's index, reversed. (0x175 is Clamperl)

                          This will give the Pokémon both boosts, however, so if you want a separate Pokémon for each item, insert this routine somewhere:
                          Spoiler:
                          .text
                          .align 2
                          .thumb
                          .thumb_func

                          main:
                          LDR R0, .index
                          CMP R1, R0
                          BNE .skip
                          MOV R1, R8
                          LDR R0, .return
                          BX R0

                          .skip
                          LDR R0, .return2
                          BX R0

                          .align 2
                          .index: .word 0x00000175 @pokemon that should get SpA boost from Deepseatooth
                          .return: .word 0x803EFD8 +1
                          .return2: .word 0x803EFDE +1


                          After that, go to 0x3EFD0 and place:
                          Code:
                          00 48 00 47 XX XX XX 08
                          where the XX is the pointer to the routine, +1.
                          After this, the byte change you made first in this post will only be relevant for the Pokémon that should get the Sp. Def boost from Deepseascale.

                          A huge thanks to NewDenverCity for helping me out with this, and making me understand instructions and hooks better!
                          __________________
                          Reply With Quote
                            #918    
                          Old January 7th, 2017 (6:01 AM).
                          ShyGuy25 ShyGuy25 is offline
                             
                            Join Date: Jun 2012
                            Gender: Male
                            Posts: 21
                            Does anyone know how to remove the 10% stat boosts given by badges in Fire Red?

                            Quote:
                            Originally Posted by Megax Rocker View Post
                            Is there a way to make Wobuffet and Maril/Azumaril always breed their baby forms without the need of the Incense items to be held? Essentially making them behave like Pikachu and pichu?
                            Open up any Pokemon editor and remove the "breeding only" in the evolutions tab for Wobbuffet, Marill and Azumarill. Its very simple.
                            Reply With Quote
                              #919    
                            Old January 7th, 2017 (5:23 PM).
                            Shiny Quagsire's Avatar
                            Shiny Quagsire Shiny Quagsire is offline
                            I'm Still Alive, Elsewhere
                               
                              Join Date: May 2009
                              Location: Hoenn Safari Zone
                              Age: 20
                              Gender: Male
                              Nature: Jolly
                              Posts: 700
                              In Fire Red, 0824EFC4 contains a table of structures 4 bytes long describing which environments go with a map's Fight Type. The structure is as follows:
                              Code:
                              <byte> Map Type
                              <byte> Battle Background Index
                              <Half-Word> Padding
                              An equivalent structure does not seem to exist in Emerald or Ruby.

                              The routine which reads the table has a maximum of 7 elements it will attempt to check the map type against. This table can be extended by repointing it and increasing the byte value at 0800F254. In theory, this can allow forcing particular environments in a map for wild/trainer battles. This table is only ever read if the Fight Type is not index 0 (Random in A-Map), and it overrides environments from tile types (ie all grass, water, cave, trainer etc battles will be forced). In theory you could also add additional battle backgrounds by extending the structure array at 0824EE34.
                              __________________



                              Reply With Quote
                                #920    
                              Old January 7th, 2017 (6:51 PM).
                              Trev's Avatar
                              Trev Trev is offline
                               
                              Join Date: May 2012
                              Age: 21
                              Nature: Sassy
                              Posts: 1,320
                              Quote:
                              Originally Posted by Shiny Quagsire View Post
                              In Fire Red, 0824EFC4 contains a table of structures 4 bytes long describing which environments go with a map's Fight Type. The structure is as follows:
                              Code:
                              <byte> Map Type
                              <byte> Battle Background Index
                              <Half-Word> Padding
                              An equivalent structure does not seem to exist in Emerald or Ruby.

                              The routine which reads the table has a maximum of 7 elements it will attempt to check the map type against. This table can be extended by repointing it and increasing the byte value at 0800F254. In theory, this can allow forcing particular environments in a map for wild/trainer battles. This table is only ever read if the Fight Type is not index 0 (Random in A-Map), and it overrides environments from tile types (ie all grass, water, cave, trainer etc battles will be forced). In theory you could also add additional battle backgrounds by extending the structure array at 0824EE34.
                              So, this? :v
                              __________________






                              Reply With Quote
                                #921    
                              Old January 8th, 2017 (5:32 PM).
                              BluRose BluRose is offline
                              blu rass
                                 
                                Join Date: Apr 2014
                                Location: hyakkoku city
                                Age: 17
                                Gender: Male
                                Nature: Timid
                                Posts: 737
                                Quote:
                                Originally Posted by Megax Rocker View Post
                                Is there a way to make Wobuffet and Maril/Azumaril always breed their baby forms without the need of the Incense items to be held? Essentially making them behave like Pikachu and pichu?
                                idk if the previous answer actually works (it seems like it wouldn't because there's literally a func handling this) but here's a definite one (fire red)
                                45FA8 - wynaut's index (1/2 value)
                                45FB0, 45FE6 - azurill's index (1/2 value)
                                45FD8, 45FDC - lax incense index
                                45FE0 - wobbuffet index
                                45FEE , 45FF2 - sea incense index
                                45FF6 - marill index
                                so the way this works is it checks for the species in the egg. if it matches with wynaut or azurill, it checks the held items of the padres. if this matches, it does nothing, if it doesn't, it changes the index to the correct one.

                                the "fix?" write 00 to 45FA8, 45FB0, and 45FE6. this just changes the pokémon to check for, making the pokémon with index 0 the required pokémon to do the checks. since you never encounter 0, you won't rewlly run into a problem (but it is theoretically possible to have your 00 turn into wobbuffet/marill if you use like cheats to get it smh)
                                Quote:
                                Originally Posted by ShyGuy25 View Post
                                Does anyone know how to remove the 10% stat boosts given by badges in Fire Red?

                                Open up any Pokemon editor and remove the "breeding only" in the evolutions tab for Wobbuffet, Marill and Azumarill. Its very simple.
                                flag checks in the damage calc for this (don't know where speed is)
                                3EE1C - boulderbadge check (atk)
                                3EE50 - soulbadge check (def)
                                3EE86 - volcanobadge (sp. atk)
                                3EEBE - volcanobadge (sp. def)
                                as for speed i'm too lazy to find it :(
                                __________________
                                am i cool yet
                                Reply With Quote
                                  #922    
                                Old January 8th, 2017 (6:11 PM).
                                Megax Rocker's Avatar
                                Megax Rocker Megax Rocker is offline
                                   
                                  Join Date: Jan 2016
                                  Posts: 123
                                  Quote:
                                  Originally Posted by BluRose View Post
                                  idk if the previous answer actually works (it seems like it wouldn't because there's literally a func handling this) but here's a definite one (fire red)
                                  45FA8 - wynaut's index (1/2 value)
                                  45FB0, 45FE6 - azurill's index (1/2 value)
                                  45FD8, 45FDC - lax incense index
                                  45FE0 - wobbuffet index
                                  45FEE , 45FF2 - sea incense index
                                  45FF6 - marill index
                                  so the way this works is it checks for the species in the egg. if it matches with wynaut or azurill, it checks the held items of the padres. if this matches, it does nothing, if it doesn't, it changes the index to the correct one.

                                  the "fix?" write 00 to 45FA8, 45FB0, and 45FE6. this just changes the pokémon to check for, making the pokémon with index 0 the required pokémon to do the checks. since you never encounter 0, you won't rewlly run into a problem (but it is theoretically possible to have your 00 turn into wobbuffet/marill if you use like cheats to get it smh)
                                  flag checks in the damage calc for this (don't know where speed is)
                                  3EE1C - boulderbadge check (atk)
                                  3EE50 - soulbadge check (def)
                                  3EE86 - volcanobadge (sp. atk)
                                  3EEBE - volcanobadge (sp. def)
                                  as for speed i'm too lazy to find it :(
                                  Thanks bro, I really appreciate it.
                                  Reply With Quote
                                    #923    
                                  Old January 16th, 2017 (8:32 PM).
                                  Froosty's Avatar
                                  Froosty Froosty is offline
                                  The_Learner
                                     
                                    Join Date: Sep 2014
                                    Location: Somewhere in this world.
                                    Age: 20
                                    Gender: Male
                                    Nature: Brave
                                    Posts: 541
                                    Quote:
                                    Originally Posted by kearnseyboy6 View Post
                                    If you want to change a text box permanently navigate to 0x160450. There are pointer to textbox type 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6 etc.

                                    Yes you can use XSE to decompile these scripts and feel free to add in anything you may desire.... permanently!

                                    So you won't have to call the transparency asm in every script you want, it does it automatically.
                                    I checked the pointer,
                                    the first two pointers in the offset you gave somehow account to the "found an item" and "bag is full" events,
                                    but the pointers after that really account to the text box :)
                                    __________________
                                    Want to talk with me regarding Rom-hacking ??? Want to get access to my works exclusive than anywhere else ???
                                    Click here to get in the discord server here where rom-hacking is a everyday talk and task.

                                    Want to showcase your hack on discord server ??? Click here to get the dask done.

                                    My works:
                                    TOOL: TL's Quick Enhancer
                                    TUTORIAL: Fire red habitat editing
                                    TUTORIAL: Fire red Transparent text-box


                                    | |
                                    Reply With Quote
                                      #924    
                                    Old January 18th, 2017 (2:12 PM). Edited January 21st, 2017 by BluRose.
                                    BluRose BluRose is offline
                                    blu rass
                                       
                                      Join Date: Apr 2014
                                      Location: hyakkoku city
                                      Age: 17
                                      Gender: Male
                                      Nature: Timid
                                      Posts: 737
                                      esipode's question made me do this and i have exams all throughout this week
                                      my priorities literally do not matter

                                      EDIT: a lot more values that are a lot better and that i'd actually be interested in changing!
                                      shoutouts to esipode again for finding 136684 way before i did

                                      fire red - miscellaneous summary screen values that somewhat make sense
                                      as they appear in my notes:
                                      Spoiler:
                                      Code:
                                      when i say "character limit" it's more accurate to say "loaded amount of characters"
                                      
                                      13627E - character limit for shown OT
                                      1362B2 - character limit for OT ID, natively supports 7 before showing NONE at the end
                                      1362C8 - character limit for level shown next to pokémon's name
                                      136378 - character limit for current hp
                                      13639C - character limit for maximum hp
                                      1363FA, 136432, 136468, 13649E, 1364D4 - "something probablyTM" but i haven't found anything that it changes
                                      136534 - character limit for attack
                                      136552 - x-value for stats (signed int but only on background?)
                                      13656E - character limit for defense
                                      1365A4 - character limit for sp. atk
                                      1365DA - character limit for sp. def
                                      136610 - character limit for speed
                                      13664C - character limit for maximum experience
                                      13666A - x-value for both experience values (signed int but only on covered area)
                                      136684 - sets the exp to next level to 0 when the level is this +1
                                      1366C0 - character limit for experience to next level
                                      136992 - character limit for current pp
                                      1369CA - character limit for max pp
                                      136A7E - character limit for base power
                                      136A9C - the accuracy value replaced by --- (0)
                                      136AD4 - character limit for accuracy
                                      136DCE - x-value for text in top left
                                      136DD0 - y-value for text in top left
                                      136E92 - x-value for the level above the sprite
                                      136E94 - y-value for the level above the sprite
                                      136EB2 - x-value for the name above the sprite
                                      136EB4 - y-value for the name above the sprite
                                      136EE0 - x-value for the pokémon gender (female)
                                      136EE2 - y-value for the pokémon gender (female)
                                      136F20 - x-value for the pokémon gender (male)
                                      136F22 - y-value for the pokémon gender (male)
                                      136FD0 - x-value for pokémon name
                                      136FD2 - y-value for pokémon name
                                      136FF2 - x-value for pokédex number
                                      137004 - y-value for pokédex number
                                      13701E - x-value for OT name
                                      137020 - y-value for OT name
                                      13703A - x-value for OT ID
                                      13703C - y-value for OT ID
                                      137056 - x-value for item
                                      137058 - y-value for item
                                      1370C2 - x-value for egg state description
                                      1370C4 - y-value for egg state description
                                      13710A - x-value for hp
                                      137122 - y-value for hp
                                      137136 - x-value for attack
                                      137148 - y-value for attack
                                      13715C - x-value for defense
                                      13716E - y-value for defense
                                      137182 - x-value for special attack
                                      137194 - y-value for special attack
                                      1371A8 - x-value for special defense
                                      1371BA - y-value for special defense
                                      1371CE - x-value for speed
                                      1371E0 - y-value for speed
                                      1371F4 - x-value for current exp
                                      137206 - y-value for current exp
                                      13721A - x-value for exp to next level
                                      13722C - y-value for exp to next level
                                      137B3E - x-value for base power
                                      137B40 - y-value for base power
                                      133B62 - x-value for accuracy
                                      133B64 - y-value for accuracy
                                      137B96 - x-value for move description
                                      137B98 - y-value for move description
                                      137C4A - x-value for ability name
                                      137C4C - y-value for ability name
                                      137C66 - x-value for ability description
                                      137C68 - y-value for ability description
                                      138A80 - x-value for first type
                                      138A82 - y-value for first type
                                      138AA4 - x-value for second type (first screen)
                                      138AA6 - y-value for second type (first screen)
                                      138ADA - x-value for first type (when move selected)
                                      138ADC - y-value for first type (when move selected)
                                      138AFC - x-value for second type (when move selected)
                                      138AFE - y-value for second type (when move selected)
                                      138BB4 - change it to anything lower than 64 to badeggify the team entire
                                      139CF4 - x-value for poké ball shown
                                      139CF6 - y-value for poké ball shown
                                      139E5C - x-value for pokémon icon (when move selected)
                                      139E5E - y-value for pokémon icon (when move selected)
                                      13A028 - x-value for the thing that shows you have selected a move (the red border)
                                      13A154 - initial y-value for the thing that shows you have selected a move (the red border)
                                      note   - the y-value shown on-screen is dependent on position.
                                      0203B16D - position of the move selected
                                      0203B16E - position of the move selected to switch
                                      13A6E6 - partitions on hp bar?
                                      13A904 - exp bar y-value
                                      note   - x is in r1 but values i thought would work aren't
                                      13A9DC - when the pokemon level is this +1, then the exp bar in the summary will not show any progress
                                      13AC24 - pokérus indicator x-value-loaded on direct access
                                      13AC26 - pokérus indicator y-value-loaded on direct access
                                      13AD98 - pokérus indicator x-value-loaded on switching pokémon
                                      13AD9E - pokérus indicator y-value-loaded on switching pokémon
                                      13AE20 - something x-value - same as shiny indicator
                                      13AE22 - something y-value - same as shiny indicator
                                      13AF26 - x-value shiny indicator when move selected
                                      13AF2C - y-value shiny indicator when move selected
                                      13AF40 - shiny indicator x-value
                                      13AF46 - shiny indicator y-value
                                      13B040 - markings x-value
                                      13B046 - markings y-value
                                      i'll organize it sometime or something

                                      EDIT2: but blurose! there are multiple x-values for a few things!
                                      haha ye i know and i have no idea what the difference is, either!
                                      it's important to know that the x- and y-values don't match with what is shown in vba as x-/y-values (usually)

                                      EDIT3: found a few more values
                                      still searching for the x-value to the pokémon sprite itself (likely not hardcoded at this point)
                                      __________________
                                      am i cool yet
                                      Reply With Quote
                                        #925    
                                      Old January 25th, 2017 (1:12 PM).
                                      Megax Rocker's Avatar
                                      Megax Rocker Megax Rocker is offline
                                         
                                        Join Date: Jan 2016
                                        Posts: 123
                                        Is there a way to make link battles faster, as in making the default text speed set as fast in link battles similar to how the battle mode is always SET in link battles, so basically how to change the default options in link battles?
                                        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 7:52 AM.