• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Development: Wild Pokémon Double Battles

JPAN

pokemon rom researcher
104
Posts
15
Years
  • Seen Jul 2, 2016
I hope I'm using this thread correctly.
I have found, while searching for something else, a string in FR, at 0x3fd2bf, that may be something you might want to research.
This position is the start of a string that says, quite simply "Wild [buffer1] and [buffer2] appeared!" This indicates that double wild battles were intended for the game, but I personally don't remember seeing it before D\P\Pt. So, I thought it was dead code, an artifact of an old idea laid to waste. But after searching some more, I found that the battle message printing routine has a way to reach it, using valid addresses. The printing function is quite big, so I'll only post the relevant part:
Code:
 ; =============== S U B R O U T I N E =======================================
ROM:080D7274
ROM:080D7274
ROM:080D7274 Battle_printing                         ; CODE XREF: sub_80DDBA0+18p
ROM:080D7274                 PUSH    {R4-R7,LR}
ROM:080D7276                 MOV     R7, R10
ROM:080D7278                 MOV     R6, R9
ROM:080D727A                 MOV     R5, R8
ROM:080D727C                 PUSH    {R5-R7}
ROM:080D727E                 LSL     R0, R0, #0x10
ROM:080D7280                 LSR     R6, R0, #0x10
ROM:080D7282                 MOV     R7, #0
ROM:080D7284                 LDR     R4, =0x2039A34
ROM:080D7286                 LDR     R0, =0x2023BC4
ROM:080D7288                 MOV     R8, R0
ROM:080D728A                 LDRB    R1, [R0]
ROM:080D728C                 LSL     R1, R1, #9
ROM:080D728E                 LDR     R0, =0x2022BC8
ROM:080D7290                 ADD     R1, R1, R0
ROM:080D7292                 STR     R1, [R4]
ROM:080D7294                 LDR     R2, =0x2023D68
ROM:080D7296                 LDRH    R0, [R1,#4]
ROM:080D7298                 STRH    R0, [R2]
ROM:080D729A                 LDR     R2, =0x2023D6A
ROM:080D729C                 LDRB    R0, [R1,#6]
ROM:080D729E                 STRB    R0, [R2]
ROM:080D72A0                 LDR     R5, =0x2023FC4
ROM:080D72A2                 LDRB    R0, [R1,#7]
ROM:080D72A4                 STRB    R0, [R5,#0x17]
ROM:080D72A6                 LDR     R3, =0x2023FE8
ROM:080D72A8                 LDR     R0, [R3]
ROM:080D72AA                 ADD     R0, #0x52
ROM:080D72AC                 LDRB    R1, [R1,#8]
ROM:080D72AE                 STRB    R1, [R0]
ROM:080D72B0                 LDR     R0, [R3]
ROM:080D72B2                 ADD     R0, #0xAD
ROM:080D72B4                 LDR     R1, [R4]
ROM:080D72B6                 LDRB    R1, [R1,#9]
ROM:080D72B8                 STRB    R1, [R0]
ROM:080D72BA                 LDR     R1, =0x2023D6F
ROM:080D72BC                 LDR     R2, [R4]
ROM:080D72BE                 LDRB    R0, [R2,#0xA]
ROM:080D72C0                 STRB    R0, [R1]
ROM:080D72C2                 LDR     R0, [R3]
ROM:080D72C4                 ADD     R0, #0x8E
ROM:080D72C6                 LDRB    R1, [R2,#0xB]
ROM:080D72C8                 STRB    R1, [R0]
ROM:080D72CA                 MOV     R2, #0
ROM:080D72CC                 MOV     R12, R8
ROM:080D72CE                 MOV     R10, R5
ROM:080D72D0                 LDR     R1, =0x2022AB8
ROM:080D72D2                 MOV     R9, R1
ROM:080D72D4                 LDR     R3, =0x2039A30
ROM:080D72D6
ROM:080D72D6 loc_80D72D6                             ; CODE XREF: Battle_printing+72j
ROM:080D72D6                 ADD     R0, R2, R3
ROM:080D72D8                 LDR     R1, [R4]
ROM:080D72DA                 ADD     R1, #0xC
ROM:080D72DC                 ADD     R1, R1, R2
ROM:080D72DE                 LDRB    R1, [R1]
ROM:080D72E0                 STRB    R1, [R0]
ROM:080D72E2                 ADD     R2, #1
ROM:080D72E4                 CMP     R2, #3
ROM:080D72E6                 BLE     loc_80D72D6
ROM:080D72E8                 MOV     R2, #0
ROM:080D72EA                 LDR     R0, =0x2022AB8
ROM:080D72EC                 MOV     R8, R0
ROM:080D72EE                 LDR     R3, =0x2039A34
ROM:080D72F0                 LDR     R5, =0x2022AC8
ROM:080D72F2                 LDR     R4, =0x2022AD8
ROM:080D72F4
ROM:080D72F4 loc_80D72F4                             ; CODE XREF: Battle_printing+AAj
ROM:080D72F4                 MOV     R0, R8
ROM:080D72F6                 ADD     R1, R2, R0
ROM:080D72F8                 LDR     R0, [R3]
ROM:080D72FA                 ADD     R0, #0x10
ROM:080D72FC                 ADD     R0, R0, R2
ROM:080D72FE                 LDRB    R0, [R0]
ROM:080D7300                 STRB    R0, [R1]
ROM:080D7302                 ADD     R1, R2, R5
ROM:080D7304                 LDR     R0, [R3]
ROM:080D7306                 ADD     R0, #0x20
ROM:080D7308                 ADD     R0, R0, R2
ROM:080D730A                 LDRB    R0, [R0]
ROM:080D730C                 STRB    R0, [R1]
ROM:080D730E                 ADD     R1, R2, R4
ROM:080D7310                 LDR     R0, [R3]
ROM:080D7312                 ADD     R0, #0x30
ROM:080D7314                 ADD     R0, R0, R2
ROM:080D7316                 LDRB    R0, [R0]
ROM:080D7318                 STRB    R0, [R1]
ROM:080D731A                 ADD     R2, #1
ROM:080D731C                 CMP     R2, #0xF
ROM:080D731E                 BLE     loc_80D72F4
ROM:080D7320                 CMP     R6, #5
ROM:080D7322                 BLS     loc_80D7326
ROM:080D7324                 B       loc_80D77B8
ROM:080D7326 ; ---------------------------------------------------------------------------
ROM:080D7326
ROM:080D7326 loc_80D7326                             ; CODE XREF: Battle_printing+AEj
ROM:080D7326                 LSL     R0, R6, #2
ROM:080D7328                 LDR     R1, =off_80D7364
ROM:080D732A                 ADD     R0, R0, R1
ROM:080D732C                 LDR     R0, [R0]
ROM:080D732E                 MOV     PC, R0
ROM:080D732E ; ---------------------------------------------------------------------------
ROM:080D7330 dword_80D7330   DCD 0x2039A34           ; DATA XREF: Battle_printing+10r
ROM:080D7330                                         ; Battle_printing+7Ar
ROM:080D7334 dword_80D7334   DCD 0x2023BC4           ; DATA XREF: Battle_printing+12r
ROM:080D7338 dword_80D7338   DCD 0x2022BC8           ; DATA XREF: Battle_printing+1Ar
ROM:080D733C dword_80D733C   DCD 0x2023D68           ; DATA XREF: Battle_printing+20r
ROM:080D7340 dword_80D7340   DCD 0x2023D6A           ; DATA XREF: Battle_printing+26r
ROM:080D7344 dword_80D7344   DCD 0x2023FC4           ; DATA XREF: Battle_printing+2Cr
ROM:080D7348 dword_80D7348   DCD 0x2023FE8           ; DATA XREF: Battle_printing+32r
ROM:080D734C dword_80D734C   DCD 0x2023D6F           ; DATA XREF: Battle_printing+46r
ROM:080D7350 dword_80D7350   DCD 0x2022AB8           ; DATA XREF: Battle_printing+5Cr
ROM:080D7350                                         ; Battle_printing+76r
ROM:080D7354 dword_80D7354   DCD 0x2039A30           ; DATA XREF: Battle_printing+60r
ROM:080D7358 dword_80D7358   DCD 0x2022AC8           ; DATA XREF: Battle_printing+7Cr
ROM:080D735C dword_80D735C   DCD 0x2022AD8           ; DATA XREF: Battle_printing+7Er
ROM:080D7360 off_80D7360     DCD off_80D7364         ; DATA XREF: Battle_printing+B4r
ROM:080D7364 off_80D7364     DCD loc_80D737C         ; DATA XREF: Battle_printing:off_80D7360o
ROM:080D7368                 DCD loc_80D7428
ROM:080D736C                 DCD loc_80D74C8
ROM:080D7370                 DCD loc_80D7558
ROM:080D7374                 DCD loc_80D75F0
ROM:080D7378                 DCD loc_80D7654
ROM:080D737C ; ---------------------------------------------------------------------------
ROM:080D737C
ROM:080D737C loc_80D737C                             ; DATA XREF: Battle_printing:off_80D7364o
ROM:080D737C                 LDR     R0, =0x2022B4C
ROM:080D737E                 LDR     R1, [R0]
ROM:080D7380                 MOV     R0, #8
ROM:080D7382                 AND     R0, R1
ROM:080D7384                 CMP     R0, #0
ROM:080D7386                 BEQ     loc_80D73C4
ROM:080D7388                 MOV     R0, #2
ROM:080D738A                 AND     R0, R1
ROM:080D738C                 CMP     R0, #0
ROM:080D738E                 BEQ     loc_80D73B4
ROM:080D7390                 MOV     R0, #0x40
ROM:080D7392                 AND     R1, R0
ROM:080D7394                 CMP     R1, #0
ROM:080D7396                 BEQ     loc_80D73A4
ROM:080D7398                 LDR     R7, =unk_83FD397
ROM:080D739A                 B       loc_80D77DC
ROM:080D739A ; ---------------------------------------------------------------------------
ROM:080D739C dword_80D739C   DCD 0x2022B4C           ; DATA XREF: Battle_printing:loc_80D737Cr
ROM:080D73A0 off_80D73A0     DCD unk_83FD397         ; DATA XREF: Battle_printing+124r
ROM:080D73A4 ; ---------------------------------------------------------------------------
ROM:080D73C4 ; ---------------------------------------------------------------------------
ROM:080D73C4
ROM:080D73C4 loc_80D73C4                             ; CODE XREF: Battle_printing+112j
ROM:080D73C4                 MOVL    R0, 0x8000
ROM:080D73C8                 AND     R0, R1
ROM:080D73CA                 CMP     R0, #0
ROM:080D73CC                 BEQ     loc_80D73E8
ROM:080D73CE                 MOVL    R0, 0x2000
ROM:080D73D2                 AND     R1, R0
ROM:080D73D4                 LDR     R7, =unk_83FD2D9
ROM:080D73D6                 CMP     R1, #0
ROM:080D73D8                 BNE     loc_80D73DC
ROM:080D73DA                 B       loc_80D77DC
ROM:080D73DC ; ---------------------------------------------------------------------------
ROM:080D73DC
ROM:080D73DC loc_80D73DC                             ; CODE XREF: Battle_printing+164j
ROM:080D73DC                 LDR     R7, =unk_83FD30D
ROM:080D73DE                 B       loc_80D77DC
ROM:080D73DE ; ---------------------------------------------------------------------------
ROM:080D73E0 off_80D73E0     DCD unk_83FD2D9         ; DATA XREF: Battle_printing+160r
ROM:080D73E4 off_80D73E4     DCD unk_83FD30D         ; DATA XREF: Battle_printing:loc_80D73DCr
; ---------------------------------------------------------------------------
ROM:080D73E8
ROM:080D73E8 loc_80D73E8                             ; CODE XREF: Battle_printing+158j
ROM:080D73E8                 MOVL    R0, 0x2000
ROM:080D73EC                 AND     R0, R1
ROM:080D73EE                 CMP     R0, #0
ROM:080D73F0                 BEQ     loc_80D73FC
ROM:080D73F2                 LDR     R7, =unk_83FD297
ROM:080D73F4                 B       loc_80D77DC
ROM:080D73F4 ; ---------------------------------------------------------------------------
ROM:080D73F6                 DCB    0
ROM:080D73F7                 DCB    0
ROM:080D73F8 off_80D73F8     DCD unk_83FD297         ; DATA XREF: Battle_printing+17Er
ROM:080D73FC ; ---------------------------------------------------------------------------
ROM:080D73FC
ROM:080D73FC loc_80D73FC                             ; CODE XREF: Battle_printing+17Cj
ROM:080D73FC                 MOV     R0, #1
ROM:080D73FE                 AND     R0, R1
ROM:080D7400                 CMP     R0, #0
ROM:080D7402                 BEQ     loc_80D740C
ROM:080D7404                 LDR     R7, =unk_83FD2BF
ROM:080D7406                 B       loc_80D77DC
ROM:080D7406 ; ---------------------------------------------------------------------------
ROM:080D7408 off_80D7408     DCD unk_83FD2BF         ; DATA XREF: Battle_printing+190r
This is all the information on it. I am searching for so many things right now, that I can't take this one on for a while. So, if someone cares to give it a try, to see where the values needed to start a double wild battle, maybe then we can have double wild battles available for all.
 

interdpth

I've seen things, man.
275
Posts
19
Years
  • Seen Jun 8, 2021
I was able to make a double encounter happen.
I set a break for when the game set the encounter variable(2022B4C) 4 which is a normal battle, I then manually changed it to 1 which meant double battle. I am sstill code searching for when the game would set it to one!

And it seems very buggy
 

JPAN

pokemon rom researcher
104
Posts
15
Years
  • Seen Jul 2, 2016
I was able to make a double encounter happen.
I set a break for when the game set the encounter variable(2022B4C) 4 which is a normal battle, I then manually changed it to 1 which meant double battle. I am sstill code searching for when the game would set it to one!

And it seems very buggy
Thanks for the info. I checked it out myself, and found out why this method is so buggy. First of all, about 02022b4c, it's a Battle type flag. Some combinations crash the game immediately, but most are harmless. One in particular crashes the game, probably because it needs something else to work it it.
Code:
Bit -> what it does
0 -> double battle bit
1 -> crashes, so I dunno
2 -> normal wild battle one. seems to say not to load the randomize pokemon method, as when called combined with the next flags produces ???????s
3 -> trainer battle flag
4 -> dims the screen (prof oak battle). If no string is present to print, crashes
5 -> seen nothing special yet.
6 -> puts you to the left, and deletes your first pokemon. Meant to be used with the double battle bit, as a double battle with two different trainers. Not even developed enough to work properly.
7 -> Starts safari encounter. If you try double battle, you mess up the whole battle.
Also, there is only one thing wrong with this wild double battle code, and that is because it only generates one wild pokemon, so the game will try and fill that data with the previous pokemon it loaded. So, you allways battle two of the same pokemon, and if one faints the battle ends. But if you load a pokemon at the second wild battle slot manually, the code works great. Except for pokemon captures, as the ball seems to be encoded to only copy the data at the first enemy party slot.
 

ZodiacDaGreat

Working on a Mobile System
429
Posts
17
Years
I found the same thing on Ruby ^^ Except that the buffer's were different.

Code:
ROM:08120AA8 ; ---------------------------------------------------------------------------
ROM:08120AA8
ROM:08120AA8 BattlePrinting
ROM:08120AA8                 PUSH    {R4-R7,LR}
ROM:08120AAA                 MOV     R7, R10
ROM:08120AAC                 MOV     R6, R9
ROM:08120AAE                 MOV     R5, R8
ROM:08120AB0                 PUSH    {R5-R7}
ROM:08120AB2                 LSLS    R0, R0, #0x10
ROM:08120AB4                 LSRS    R7, R0, #0x10
ROM:08120AB6                 MOVS    R6, #0
ROM:08120AB8                 LDR     R5, =0x2039270
ROM:08120ABA                 LDR     R4, =0x2024A60
ROM:08120ABC                 LDRB    R1, [R4]
ROM:08120ABE                 LSLS    R1, R1, #9
ROM:08120AC0                 LDR     R0, =0x2023A64
ROM:08120AC2                 ADDS    R1, R1, R0
ROM:08120AC4                 STR     R1, [R5]
ROM:08120AC6                 LDR     R2, =0x2024C04
ROM:08120AC8                 LDRH    R0, [R1,#4]
ROM:08120ACA                 STRH    R0, [R2]
ROM:08120ACC                 LDR     R2, =0x2024C06
ROM:08120ACE                 LDRB    R0, [R1,#6]
ROM:08120AD0                 STRB    R0, [R2]
ROM:08120AD2                 LDR     R3, =0x2000000
ROM:08120AD4                 LDRB    R0, [R1,#7]
ROM:08120AD6                 MOV     R8, R0
ROM:08120AD8                 LDR     R2, =0x16003
ROM:08120ADA                 ADDS    R0, R3, R2
ROM:08120ADC                 MOV     R2, R8
ROM:08120ADE                 STRB    R2, [R0]
ROM:08120AE0                 LDRB    R0, [R1,#8]
ROM:08120AE2                 MOV     R8, R0
ROM:08120AE4                 LDR     R2, =0x1605E
ROM:08120AE6                 ADDS    R0, R3, R2
ROM:08120AE8                 MOV     R2, R8
ROM:08120AEA                 STRB    R2, [R0]
ROM:08120AEC                 LDRB    R0, [R1,#9]
ROM:08120AEE                 MOV     R8, R0
ROM:08120AF0                 LDR     R2, =0x160C1
ROM:08120AF2                 ADDS    R0, R3, R2
ROM:08120AF4                 MOV     R2, R8
ROM:08120AF6                 STRB    R2, [R0]
ROM:08120AF8                 LDR     R2, =0x2024C0B
ROM:08120AFA                 LDRB    R0, [R1,#0xA]
ROM:08120AFC                 STRB    R0, [R2]
ROM:08120AFE                 LDRB    R1, [R1,#0xB]
ROM:08120B00                 LDR     R2, =0x160A0
ROM:08120B02                 ADDS    R0, R3, R2
ROM:08120B04                 STRB    R1, [R0]
ROM:08120B06                 MOVS    R2, #0
ROM:08120B08                 MOV     R9, R3
ROM:08120B0A                 LDR     R3, =0x30041C0
ROM:08120B0C                 MOV     R10, R3
ROM:08120B0E                 LDR     R3, =0x203926C
ROM:08120B10
ROM:08120B10 loc_8120B10                             ; CODE XREF: ROM:08120B20j
ROM:08120B10                 ADDS    R0, R2, R3
ROM:08120B12                 LDR     R1, [R5]
ROM:08120B14                 ADDS    R1, #0xC
ROM:08120B16                 ADDS    R1, R1, R2
ROM:08120B18                 LDRB    R1, [R1]
ROM:08120B1A                 STRB    R1, [R0]
ROM:08120B1C                 ADDS    R2, #1
ROM:08120B1E                 CMP     R2, #3
ROM:08120B20                 BLE     loc_8120B10
ROM:08120B22                 MOVS    R2, #0
ROM:08120B24                 LDR     R0, =0x30041C0
ROM:08120B26                 MOV     R8, R0
ROM:08120B28                 LDR     R3, =0x2039270
ROM:08120B2A                 LDR     R1, =0x3004290
ROM:08120B2C                 MOV     R12, R1
ROM:08120B2E                 LDR     R5, =0x30042B0
ROM:08120B30
ROM:08120B30 loc_8120B30                             ; CODE XREF: ROM:08120B5Cj
ROM:08120B30                 MOV     R0, R8
ROM:08120B32                 ADDS    R1, R2, R0
ROM:08120B34                 LDR     R0, [R3]
ROM:08120B36                 ADDS    R0, #0x10
ROM:08120B38                 ADDS    R0, R0, R2
ROM:08120B3A                 LDRB    R0, [R0]
ROM:08120B3C                 STRB    R0, [R1]
ROM:08120B3E                 MOV     R0, R12
ROM:08120B40                 ADDS    R1, R2, R0
ROM:08120B42                 LDR     R0, [R3]
ROM:08120B44                 ADDS    R0, #0x20
ROM:08120B46                 ADDS    R0, R0, R2
ROM:08120B48                 LDRB    R0, [R0]
ROM:08120B4A                 STRB    R0, [R1]
ROM:08120B4C                 ADDS    R1, R2, R5
ROM:08120B4E                 LDR     R0, [R3]
ROM:08120B50                 ADDS    R0, #0x30
ROM:08120B52                 ADDS    R0, R0, R2
ROM:08120B54                 LDRB    R0, [R0]
ROM:08120B56                 STRB    R0, [R1]
ROM:08120B58                 ADDS    R2, #1
ROM:08120B5A                 CMP     R2, #0xF
ROM:08120B5C                 BLE     loc_8120B30
ROM:08120B5E                 CMP     R7, #5
ROM:08120B60                 BLS     loc_8120B64
ROM:08120B62                 B       loc_8120F50
ROM:08120B64 ; ---------------------------------------------------------------------------
ROM:08120B64
ROM:08120B64 loc_8120B64                             ; CODE XREF: ROM:08120B60j
ROM:08120B64                 LSLS    R0, R7, #2
ROM:08120B66                 LDR     R1, =off_8120BB0
ROM:08120B68                 ADDS    R0, R0, R1
ROM:08120B6A                 LDR     R0, [R0]
ROM:08120B6C                 MOV     PC, R0
ROM:08120B6C ; ---------------------------------------------------------------------------
ROM:08120B6E                 DCB    0
ROM:08120B6F                 DCB    0
ROM:08120B70 dword_8120B70   DCD 0x2039270           ; DATA XREF: ROM:08120AB8r
ROM:08120B70                                         ; ROM:08120B28r
ROM:08120B74 dword_8120B74   DCD 0x2024A60           ; DATA XREF: ROM:08120ABAr
ROM:08120B78 dword_8120B78   DCD 0x2023A64           ; DATA XREF: ROM:08120AC0r
ROM:08120B7C dword_8120B7C   DCD 0x2024C04           ; DATA XREF: ROM:08120AC6r
ROM:08120B80 dword_8120B80   DCD 0x2024C06           ; DATA XREF: ROM:08120ACCr
ROM:08120B84 dword_8120B84   DCD 0x2000000           ; DATA XREF: ROM:08120AD2r
ROM:08120B88 dword_8120B88   DCD 0x16003             ; DATA XREF: ROM:08120AD8r
ROM:08120B8C dword_8120B8C   DCD 0x1605E             ; DATA XREF: ROM:08120AE4r
ROM:08120B90 dword_8120B90   DCD 0x160C1             ; DATA XREF: ROM:08120AF0r
ROM:08120B94 dword_8120B94   DCD 0x2024C0B           ; DATA XREF: ROM:08120AF8r
ROM:08120B98 dword_8120B98   DCD 0x160A0             ; DATA XREF: ROM:08120B00r
ROM:08120B9C dword_8120B9C   DCD 0x30041C0           ; DATA XREF: ROM:08120B0Ar
ROM:08120B9C                                         ; ROM:08120B24r
ROM:08120BA0 dword_8120BA0   DCD 0x203926C           ; DATA XREF: ROM:08120B0Er
ROM:08120BA4 dword_8120BA4   DCD 0x3004290           ; DATA XREF: ROM:08120B2Ar
ROM:08120BA8 dword_8120BA8   DCD 0x30042B0           ; DATA XREF: ROM:08120B2Er
ROM:08120BAC off_8120BAC     DCD off_8120BB0         ; DATA XREF: ROM:08120B66r
ROM:08120BB0 off_8120BB0     DCD loc_8120BC8         ; DATA XREF: ROM:off_8120BACo
ROM:08120BB4                 DCD unk_8120C40
ROM:08120BB8                 DCD unk_8120CCC
ROM:08120BBC                 DCD unk_8120D5C
ROM:08120BC0                 DCD unk_8120DE8
ROM:08120BC4                 DCD unk_8120E50
ROM:08120BC8 ; ---------------------------------------------------------------------------
ROM:08120BC8
ROM:08120BC8 loc_8120BC8                             ; DATA XREF: ROM:off_8120BB0o
ROM:08120BC8                 LDR     R0, =0x20239F8
ROM:08120BCA                 LDRH    R1, [R0]
ROM:08120BCC                 MOVS    R0, #8
ROM:08120BCE                 ANDS    R0, R1
ROM:08120BD0                 CMP     R0, #0
ROM:08120BD2                 BEQ     loc_8120C00
ROM:08120BD4                 MOVS    R0, #2
ROM:08120BD6                 ANDS    R0, R1
ROM:08120BD8                 CMP     R0, #0
ROM:08120BDA                 BEQ     loc_8120BF8
ROM:08120BDC                 MOVS    R0, #0x40
ROM:08120BDE                 ANDS    R0, R1
ROM:08120BE0                 LDR     R6, =unk_84005C7
ROM:08120BE2                 CMP     R0, #0
ROM:08120BE4                 BNE     loc_8120BE8
ROM:08120BE6                 B       loc_8120F70
ROM:08120BE8 ; ---------------------------------------------------------------------------
ROM:08120BE8
ROM:08120BE8 loc_8120BE8                             ; CODE XREF: ROM:08120BE4j
ROM:08120BE8                 LDR     R6, =unk_84005DB
ROM:08120BEA                 B       loc_8120F70
ROM:08120BEA ; ---------------------------------------------------------------------------
ROM:08120BEC dword_8120BEC   DCD 0x20239F8           ; DATA XREF: ROM:loc_8120BC8r
ROM:08120BF0 off_8120BF0     DCD unk_84005C7         ; DATA XREF: ROM:08120BE0r
ROM:08120BF4 off_8120BF4     DCD unk_84005DB         ; DATA XREF: ROM:loc_8120BE8r
ROM:08120BF8 ; ---------------------------------------------------------------------------
ROM:08120BF8
ROM:08120BF8 loc_8120BF8                             ; CODE XREF: ROM:08120BDAj
ROM:08120BF8                 LDR     R6, =unk_84005AA
ROM:08120BFA                 B       loc_8120F70
ROM:08120BFA ; ---------------------------------------------------------------------------
ROM:08120BFC off_8120BFC     DCD unk_84005AA         ; DATA XREF: ROM:loc_8120BF8r
ROM:08120C00 ; ---------------------------------------------------------------------------
ROM:08120C00
ROM:08120C00 loc_8120C00                             ; CODE XREF: ROM:08120BD2j
ROM:08120C00                 MOVLS   R0, 0x2000
ROM:08120C04                 ANDS    R0, R1
ROM:08120C06                 CMP     R0, #0
ROM:08120C08                 BEQ     loc_8120C14
ROM:08120C0A                 LDR     R6, =unk_8400568
ROM:08120C0C                 B       loc_8120F70
ROM:08120C0C ; ---------------------------------------------------------------------------
ROM:08120C0E                 DCB    0
ROM:08120C0F                 DCB    0
ROM:08120C10 off_8120C10     DCD unk_8400568         ; DATA XREF: ROM:08120C0Ar
ROM:08120C14 ; ---------------------------------------------------------------------------
ROM:08120C14
ROM:08120C14 loc_8120C14                             ; CODE XREF: ROM:08120C08j
ROM:08120C14                 MOVS    R0, #1
ROM:08120C16                 ANDS    R0, R1
ROM:08120C18                 CMP     R0, #0
ROM:08120C1A                 BEQ     loc_8120C24
ROM:08120C1C                 LDR     R6, =DoubleWildBattleText ; Wild [buffer1] and [buffer2] appeared!
ROM:08120C1E                 B       loc_8120F70
ROM:08120C1E ; ---------------------------------------------------------------------------
ROM:08120C20 off_8120C20     DCD DoubleWildBattleText ; DATA XREF: ROM:08120C1Cr
ROM:08120C24 ; ---------------------------------------------------------------------------
So, I take it that Nintendo obviously planned Double Wild Battles on GBA but due to some certain *whatever* we never get to see it XD

Edit: Looks like I have to document my Ruby ROM more :D
 
Last edited:

interdpth

I've seen things, man.
275
Posts
19
Years
  • Seen Jun 8, 2021
Can someone merge this to a new thread.
I want to get something working and stuff :D
 

sonic1

ASM is my life now...
77
Posts
15
Years
This discovery is very useful(but buggy)!
Even buggy,i want to test this kind of battles.

Is there a way that we can do a double wild battle without putting manualy the values (like a routine or a modifcation in the main battle engine)?

~sonic1~
 

Aro-kun

Pokemon trainer
152
Posts
15
Years
  • Age 32
  • Orre
  • Seen Jul 11, 2014
Is there also a way for double battles to happen with the player only having one pokemon? Without your one pokemon being cloned?
 

Lance32497

LanceKoijer of Pokemon_Addicts
792
Posts
9
Years
Hi guys and gals, I tried to look "02022b4c"

and it seems that the rom doesnt have that offset.....
what offset is that?
BTW, I used Firered rom..
Thanks for your response
 

Shiny Quagsire

I'm Still Alive, Elsewhere
697
Posts
14
Years
Hi guys and gals, I tried to look "02022b4c"

and it seems that the rom doesnt have that offset.....
what offset is that?
BTW, I used Firered rom..
Thanks for your response

It's a RAM offset, go there in VBA's memory viewer. RAM is modified at run time to store variables and such.
 

tayyab43

The Don
25
Posts
8
Years
  • Age 25
  • Seen Jan 30, 2021
How much progress have we made on this double battle front, i'm interested, i want to implement this into my new ROM-Hack
 
3
Posts
15
Years
  • Seen Sep 28, 2019
This had to be successfully done since Pokemon double Emerald has everything doing double battles, trainers and wild encounters. I'd like to know how this was done. Also is Emerald different from the other games when it comes to double battles, cuz if I recall there was a lot more double battles in that game compared to all the others. I'm not sure if it's simply easier to do that in Emerald or not. I'd like to add it in my game as well, but mine is based off of Fire Red.
 
Last edited:
Back
Top