View Full Version : Development: Wild Pokémon Double Battles

January 10th, 2010, 5:37 PM
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:
; =============== S U B R O U T I N E =======================================
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 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 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 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 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 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 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 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 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.

January 12th, 2010, 7:48 PM
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

January 13th, 2010, 10:46 AM
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.
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.

January 13th, 2010, 10:54 AM
I say we get it working and put it in our hax =p

January 13th, 2010, 9:16 PM
I found the same thing on Ruby ^^ Except that the buffer's were different.

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 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 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 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 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 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 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 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 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

January 14th, 2010, 7:16 PM
Can someone merge this to a new thread.
I want to get something working and stuff :D

January 25th, 2010, 8:04 AM
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)?


February 6th, 2010, 10:57 AM
Is there also a way for double battles to happen with the player only having one pokemon? Without your one pokemon being cloned?

September 23rd, 2014, 9:35 PM
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
September 24th, 2014, 5:35 PM
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.

September 24th, 2014, 8:38 PM
So You mean for me to get the offset.... I need to look onto the vboy?

Red John
January 13th, 2015, 10:25 PM
So You mean for me to get the offset.... I need to look onto the vboy?

That's a simple Iram area. It can't be just edited with hex editor lol

January 11th, 2016, 11:58 AM
How much progress have we made on this double battle front, i'm interested, i want to implement this into my new ROM-Hack

cosmic latte 205
April 11th, 2016, 4:11 PM
Can you make a picture for this for people to put in there signiture to say they support this