Thread: Development: Wild Pokémon Double Battles
View Single Post
Old January 10th, 2010 (5:37 PM).
JPAN JPAN is offline
pokemon rom researcher
    Join Date: Dec 2008
    Posts: 104
    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.
    Here are the links for my work

    Currently working on:
    Battle Script Documentation
    Another large project
    Reply With Quote