summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2018-10-22 19:22:57 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2018-10-22 19:22:57 +0200
commitb330bdba51b86959e702e904c4a5d8039e6395c7 (patch)
tree88c9552bc137c9185c2c8c7ece049fa91a5cd605 /asm
parent0ab27e44b14a0dc4523b5bac7fef18312ab4fdde (diff)
More and more battle tower
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_tower.s2227
-rw-r--r--asm/rom_8011DC0.s2
2 files changed, 4 insertions, 2225 deletions
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index b8f138e7b..46d10acd1 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -5,2227 +5,6 @@
.text
- thumb_func_start sub_81646BC
-sub_81646BC: @ 81646BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- movs r0, 0
- mov r9, r0
- mov r10, r0
- bl GetFacilityEnemyMonLevel
- movs r0, 0xFA
- lsls r0, 1
- cmp r5, r0
- beq _081647CE
- subs r0, 0xC9
- cmp r5, r0
- bhi _081646FC
- ldr r0, =gFacilityTrainerMons
- ldr r1, [r0]
- lsls r0, r4, 4
- adds r0, r1
- ldrh r1, [r0, 0x2]
- mov r9, r1
- ldrh r0, [r0]
- mov r10, r0
- b _081647CE
- .pool
-_081646FC:
- ldr r0, =0x0000018f
- cmp r5, r0
- bhi _08164750
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- ldr r1, =gUnknown_03006298
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x2C
- muls r1, r0
- ldr r0, =0xfffffed4
- adds r2, r5, r0
- movs r0, 0xEC
- muls r0, r2
- adds r1, r0
- adds r3, r1
- movs r1, 0xEE
- lsls r1, 3
- adds r0, r3, r1
- ldrh r0, [r0]
- mov r9, r0
- ldr r2, =0x0000076c
- adds r3, r2
- ldrh r3, [r3]
- mov r10, r3
- b _081647CE
- .pool
-_08164750:
- ldr r4, =gSaveBlock2Ptr
- ldr r3, [r4]
- ldr r1, =gUnknown_03006298
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- subs r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r2, =0xfffffe70
- adds r1, r5, r2
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r0, r2
- adds r3, r0
- adds r0, r3, 0
- adds r0, 0xE2
- ldrh r0, [r0]
- mov r9, r0
- adds r3, 0xE0
- ldrh r3, [r3]
- mov r10, r3
- movs r3, 0
- ldr r7, =gStringVar3
- mov r8, r7
- adds r0, r4, 0
- mov r12, r0
- adds r4, r2, 0
- movs r6, 0x8A
- lsls r6, 1
-_08164794:
- mov r1, r8
- adds r2, r3, r1
- mov r1, r12
- ldr r0, [r1]
- adds r1, r3, r4
- adds r0, r6
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, 0x6
- ble _08164794
- adds r1, r3, r7
- movs r0, 0xFF
- strb r0, [r1]
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =0xfffffe70
- adds r1, r5, r0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- ldr r1, =0x0000011b
- adds r0, r2, r1
- ldrb r1, [r0]
- adds r0, r7, 0
- bl ConvertInternationalString
-_081647CE:
- ldr r0, =gStringVar1
- movs r1, 0xD
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- ldr r2, =gMoveNames
- adds r1, r2
- bl StringCopy
- ldr r0, =gStringVar2
- movs r1, 0xB
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- ldr r2, =gSpeciesNames
- adds r1, r2
- bl StringCopy
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81646BC
-
- thumb_func_start sub_8164828
-sub_8164828: @ 8164828
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- bl GetFacilityEnemyMonLevel
- bl sub_81A39C4
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, =gSpecialVar_LastTalked
- ldrh r0, [r0]
- subs r5, r0, 0x2
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r5, 1
- ldr r2, =0x00000cb4
- adds r0, r2
- adds r0, r1
- ldrh r7, [r0]
- movs r3, 0
- str r3, [sp]
- ldr r4, =gUnknown_085DD500
- lsls r6, r7, 16
- b _08164884
- .pool
-_0816487C:
- adds r4, 0x8
- ldr r0, [sp]
- adds r0, 0x1
- str r0, [sp]
-_08164884:
- ldr r1, [sp]
- cmp r1, 0x31
- bhi _0816489A
- lsrs r0, r6, 16
- bl GetFrontierTrainerFacilityClass
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- cmp r1, r0
- bne _0816487C
-_0816489A:
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x4
- bls _081648A4
- b _08164AC2
-_081648A4:
- lsls r0, 2
- ldr r1, =_081648B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081648B8:
- .4byte _081648CC
- .4byte _08164984
- .4byte _0816499C
- .4byte _081649BC
- .4byte _08164AC2
-_081648CC:
- movs r0, 0xFA
- lsls r0, 1
- cmp r7, r0
- bne _081648D6
- b _08164B54
-_081648D6:
- subs r0, 0xC9
- cmp r7, r0
- ble _081648E2
- ldr r0, =0x0000018f
- cmp r7, r0
- bgt _081648F4
-_081648E2:
- ldr r0, =gStringVar1
- adds r1, r7, 0
- bl GetFrontierTrainerName
- b _08164AC2
- .pool
-_081648F4:
- movs r3, 0
- lsls r2, r7, 16
- mov r10, r2
- ldr r6, =gStringVar1
- mov r9, r6
- ldr r4, =gSaveBlock2Ptr
- mov r8, r4
- ldr r5, =0xfffffe70
- adds r1, r7, r5
- lsls r0, r1, 4
- adds r0, r1
- lsls r4, r0, 2
- movs r5, 0x8A
- lsls r5, 1
-_08164910:
- mov r0, r9
- adds r2, r3, r0
- mov r1, r8
- ldr r0, [r1]
- adds r1, r3, r4
- adds r0, r5
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- adds r3, 0x1
- cmp r3, 0x6
- ble _08164910
- adds r1, r3, r6
- movs r0, 0xFF
- strb r0, [r1]
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- ldr r3, =0xfffffe70
- adds r0, r7, r3
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r1, r4
- ldr r5, =0x0000011b
- adds r0, r1, r5
- ldrb r1, [r0]
- adds r0, r6, 0
- bl ConvertInternationalString
- ldr r0, =gStringVar2
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- adds r1, r4
- adds r1, 0xDE
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, =gStringVar3
- mov r3, r10
- lsrs r1, r3, 16
- bl GetFrontierTrainerName
- b _08164AC2
- .pool
-_08164984:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0
- ldr r4, =0x00000cc4
- adds r1, r4
- b _081649A8
- .pool
-_0816499C:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r1, r0
- ldr r5, =0x00000cc6
- adds r1, r5
-_081649A8:
- adds r0, r7, 0
- ldrh r1, [r1]
- bl sub_81646BC
- b _08164AC2
- .pool
-_081649BC:
- ldr r0, =gPartnerTrainerId
- strh r7, [r0]
- ldr r0, =0x0000012b
- cmp r7, r0
- bgt _08164A08
- ldr r0, =gSaveBlock2Ptr
- ldr r4, [r0]
- lsls r1, r5, 1
- adds r0, r1, 0
- adds r0, 0x8
- lsls r0, 1
- ldr r3, =0x00000cb4
- adds r2, r4, r3
- adds r0, r2, r0
- ldrh r3, [r0]
- ldr r5, =0x00000cd8
- adds r0, r4, r5
- strh r3, [r0]
- adds r1, 0x9
- lsls r1, 1
- adds r2, r1
- ldrh r0, [r2]
- ldr r1, =0x00000cda
- adds r4, r1
- strh r0, [r4]
- b _08164A46
- .pool
-_08164A08:
- ldr r0, =0x0000018f
- cmp r7, r0
- bgt _08164A30
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r3, =gUnknown_03006298
- ldrh r2, [r3, 0x4]
- ldr r4, =0x00000cd8
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, 0x6]
- b _08164A40
- .pool
-_08164A30:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r3, =gUnknown_03006298
- ldrh r2, [r3]
- ldr r4, =0x00000cd8
- adds r0, r1, r4
- strh r2, [r0]
- ldrh r0, [r3, 0x2]
-_08164A40:
- ldr r5, =0x00000cda
- adds r1, r5
- strh r0, [r1]
-_08164A46:
- movs r5, 0
- mov r0, r8
- lsls r0, 24
- str r0, [sp, 0x4]
-_08164A4E:
- lsls r1, r5, 1
- mov r10, r1
- adds r2, r5, 0x1
- mov r9, r2
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r0, 1
- lsls r0, 24
- mov r8, r0
-_08164A60:
- ldr r3, [sp, 0x4]
- lsrs r0, r3, 24
- mov r4, r8
- lsrs r1, r4, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, =gPartnerTrainerId
- ldrh r0, [r0]
- cmp r0, r3
- beq _08164A60
- movs r2, 0
- cmp r2, r5
- bge _08164AA2
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r4, =0x00000cb4
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r3
- beq _08164AA2
- adds r6, r1, 0
-_08164A8E:
- adds r2, 0x1
- cmp r2, r5
- bge _08164AA2
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08164A8E
-_08164AA2:
- cmp r2, r5
- bne _08164A60
- ldr r5, =gSaveBlock2Ptr
- ldr r0, [r5]
- ldr r1, =0x00000cb4
- adds r0, r1
- add r0, r10
- strh r3, [r0]
- mov r5, r9
- cmp r5, 0xD
- ble _08164A4E
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- ldr r3, =0x00000cd6
- adds r0, r3
- strh r7, [r0]
-_08164AC2:
- movs r0, 0xFA
- lsls r0, 1
- cmp r7, r0
- beq _08164B54
- subs r0, 0xC9
- cmp r7, r0
- bgt _08164AF8
- ldr r0, =gUnknown_085DD500
- ldr r4, [sp]
- lsls r1, r4, 3
- b _08164B04
- .pool
-_08164AF8:
- ldr r0, =0x0000018f
- cmp r7, r0
- bgt _08164B28
- ldr r0, =gUnknown_085DD500
- ldr r5, [sp]
- lsls r1, r5, 3
-_08164B04:
- adds r0, 0x4
- adds r1, r0
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl ShowFieldMessage
- b _08164B54
- .pool
-_08164B28:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r0, =0xfffffe70
- adds r2, r7, r0
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDC
- ldrb r0, [r1]
- lsls r0, 27
- ldr r1, =gUnknown_085DD690
- lsrs r0, 25
- adds r0, r1
- ldr r1, =gSpecialVar_0x8005
- ldrh r1, [r1]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl ShowFieldMessage
-_08164B54:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164828
-
- thumb_func_start sub_8164B74
-sub_8164B74: @ 8164B74
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r7, r0, 30
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r4]
- ldr r2, =0x00000cb2
- adds r0, r2
- ldrh r6, [r0]
- bl GetMultiplayerId
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x6
- bls _08164BAC
- b _08164DB6
-_08164BAC:
- lsls r0, 2
- ldr r1, =_08164BD0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08164BD0:
- .4byte _08164BEC
- .4byte _08164C3C
- .4byte _08164CE0
- .4byte _08164D14
- .4byte _08164D98
- .4byte _08164DA8
- .4byte _08164DB6
-_08164BEC:
- cmp r5, 0x3
- beq _08164BF2
- b _08164DB0
-_08164BF2:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r7, 1
- adds r0, r1
- ldr r3, =0x00000cec
- adds r0, r3
- ldrh r0, [r0]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- bne _08164C18
- b _08164DB6
-_08164C18:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- movs r2, 0x4
- bl SendBlock
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- b _08164DB4
- .pool
-_08164C3C:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _08164C4A
- b _08164DB6
-_08164C4A:
- bl ResetBlockReceivedFlags
- ldr r1, =gBlockRecvBuffer
- movs r0, 0x80
- lsls r0, 1
- adds r2, r1, r0
- ldrh r0, [r1]
- ldrh r3, [r2]
- cmp r0, r3
- bhi _08164C60
- ldrh r0, [r2]
-_08164C60:
- str r0, [sp]
- movs r4, 0
- ldr r0, =gSaveBlock2Ptr
- mov r9, r0
-_08164C68:
- adds r1, r4, 0x1
- mov r8, r1
- lsrs r0, r4, 31
- adds r0, r4, r0
- asrs r0, 1
- lsls r7, r0, 24
-_08164C74:
- ldr r0, [sp]
- lsls r0, 24
- lsrs r0, 24
- lsrs r1, r7, 24
- bl sub_8162548
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- cmp r2, r4
- bge _08164CB0
- mov r1, r9
- ldr r0, [r1]
- ldr r1, =0x00000cb4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- beq _08164CB0
- ldr r6, =gSaveBlock2Ptr
- adds r5, r1, 0
-_08164C9C:
- adds r2, 0x1
- cmp r2, r4
- bge _08164CB0
- ldr r0, [r6]
- lsls r1, r2, 1
- adds r0, r5
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08164C9C
-_08164CB0:
- cmp r4, r2
- bne _08164C74
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r4, 1
- ldr r2, =0x00000cb4
- adds r0, r2
- adds r0, r1
- strh r3, [r0]
- mov r4, r8
- cmp r4, 0xD
- ble _08164C68
- ldr r1, =gSpecialVar_Result
- movs r0, 0x2
- b _08164DB4
- .pool
-_08164CE0:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _08164DB6
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r1, [r1]
- ldr r3, =0x00000cb4
- adds r1, r3
- movs r2, 0x28
- bl SendBlock
- ldr r1, =gSpecialVar_Result
- movs r0, 0x3
- b _08164DB4
- .pool
-_08164D14:
- bl GetBlockReceivedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- bne _08164DB6
- bl ResetBlockReceivedFlags
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r5, =0x00000cb4
- adds r0, r5
- ldr r1, =gBlockRecvBuffer
- movs r2, 0x28
- bl memcpy
- ldr r2, =gTrainerBattleOpponent_A
- ldr r1, [r4]
- lsls r0, r6, 2
- adds r1, r5
- adds r0, r1, r0
- ldrh r0, [r0]
- strh r0, [r2]
- ldr r4, =gTrainerBattleOpponent_B
- lsls r0, r6, 1
- adds r0, 0x1
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r4]
- ldrh r0, [r2]
- movs r1, 0
- bl SetBattleFacilityTrainerGfxId
- ldrh r0, [r4]
- movs r1, 0x1
- bl SetBattleFacilityTrainerGfxId
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _08164DB0
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _08164DB0
- ldr r1, =gSpecialVar_Result
- movs r0, 0x4
- b _08164DB4
- .pool
-_08164D98:
- bl sub_800AC34
- ldr r1, =gSpecialVar_Result
- movs r0, 0x5
- b _08164DB4
- .pool
-_08164DA8:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08164DB6
-_08164DB0:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x6
-_08164DB4:
- strh r0, [r1]
-_08164DB6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164B74
-
- thumb_func_start sub_8164DCC
-sub_8164DCC: @ 8164DCC
- push {lr}
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _08164DDA
- bl sub_800AC34
-_08164DDA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164DCC
-
- thumb_func_start sub_8164DE4
-sub_8164DE4: @ 8164DE4
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000cd6
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0xF
- bl SetBattleFacilityTrainerGfxId
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164DE4
-
- thumb_func_start sub_8164E04
-sub_8164E04: @ 8164E04
- push {r4-r6,lr}
- sub sp, 0x20
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _08164E9A
- ldr r5, =gTrainerBattleOpponent_A
- ldrh r1, [r5]
- mov r0, sp
- bl GetFrontierTrainerName
- mov r0, sp
- bl StripExtCtrlCodes
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- ldr r1, =0x00000bd8
- adds r0, r1
- mov r1, sp
- bl StringCopy
- ldr r0, [r4]
- ldr r2, =0x00000beb
- adds r0, r2
- ldrh r1, [r5]
- bl sub_8165B88
- ldr r6, =gBattlerPartyIndexes
- ldrh r0, [r6, 0x2]
- movs r5, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, [r4]
- ldr r2, =0x00000bd6
- adds r1, r2
- strh r0, [r1]
- ldrh r0, [r6]
- muls r0, r5
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- ldr r1, [r4]
- ldr r2, =0x00000bd4
- adds r1, r2
- strh r0, [r1]
- movs r2, 0
- movs r5, 0xBE
- lsls r5, 4
- ldr r3, =gBattleMons + 0x30
- adds r6, r4, 0
-_08164E7C:
- ldr r0, [r4]
- adds r0, r5
- adds r0, r2
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0xA
- ble _08164E7C
- ldr r0, [r6]
- ldr r1, =gBattleOutcome
- ldrb r1, [r1]
- ldr r2, =0x00000d06
- adds r0, r2
- strb r1, [r0]
-_08164E9A:
- add sp, 0x20
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164E04
-
- thumb_func_start sub_8164ED8
-sub_8164ED8: @ 8164ED8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r3, 0
- movs r2, 0
- ldr r4, =0x0000064c
- adds r1, r0, r4
-_08164EEA:
- ldm r1!, {r0}
- adds r3, r0
- adds r2, 0x1
- cmp r2, 0x39
- bls _08164EEA
- ldr r5, =gSaveBlock2Ptr
- ldr r1, [r5]
- ldr r2, =0x00000734
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, r3
- beq _08164F0A
- ldr r3, =0x0000064c
- adds r0, r1, r3
- bl sub_8164FB8
-_08164F0A:
- movs r4, 0
- adds r7, r5, 0
- movs r6, 0xEC
- mov r8, r7
-_08164F12:
- adds r0, r4, 0
- muls r0, r6
- movs r1, 0xE7
- lsls r1, 3
- adds r0, r1
- ldr r1, [r7]
- movs r3, 0
- movs r2, 0
- adds r5, r4, 0x1
- adds r1, r0
-_08164F26:
- ldm r1!, {r0}
- adds r3, r0
- adds r2, 0x1
- cmp r2, 0x39
- bls _08164F26
- mov r0, r8
- ldr r2, [r0]
- adds r1, r4, 0
- muls r1, r6
- movs r4, 0x82
- lsls r4, 4
- adds r0, r2, r4
- adds r0, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08164F52
- movs r3, 0xE7
- lsls r3, 3
- adds r0, r1, r3
- adds r0, r2, r0
- bl sub_8164FB8
-_08164F52:
- adds r4, r5, 0
- cmp r4, 0x4
- ble _08164F12
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8164ED8
-
- thumb_func_start CalcEmeraldBattleTowerChecksum
-CalcEmeraldBattleTowerChecksum: @ 8164F70
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xE8
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08164F7E:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x39
- bls _08164F7E
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CalcEmeraldBattleTowerChecksum
-
- thumb_func_start sub_8164F94
-sub_8164F94: @ 8164F94
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xA0
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08164FA2:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x27
- bls _08164FA2
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8164F94
-
- thumb_func_start sub_8164FB8
-sub_8164FB8: @ 8164FB8
- push {lr}
- movs r1, 0
- movs r2, 0
-_08164FBE:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x3A
- bls _08164FBE
- pop {r0}
- bx r0
- thumb_func_end sub_8164FB8
-
- thumb_func_start GetCurrentBattleTowerWinStreak
-GetCurrentBattleTowerWinStreak: @ 8164FCC
- push {lr}
- lsls r0, 24
- lsls r1, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r2, [r2]
- lsrs r0, 23
- lsrs r1, 22
- adds r0, r1
- movs r1, 0xCE
- lsls r1, 4
- adds r2, r1
- adds r2, r0
- ldrh r0, [r2]
- ldr r1, =0x0000270f
- cmp r0, r1
- bls _08164FEE
- adds r0, r1, 0
-_08164FEE:
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetCurrentBattleTowerWinStreak
-
- thumb_func_start sub_8164FFC
-sub_8164FFC: @ 8164FFC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_085DFA42
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- cmp r4, 0x3
- bls _0816501C
- movs r0, 0x3
- b _08165022
- .pool
-_0816501C:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
-_08165022:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8164FFC
-
- thumb_func_start sub_816502C
-sub_816502C: @ 816502C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- adds r5, r0, 0
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl sub_8164FFC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r2, 0x44
- mov r10, r2
- cmp r5, 0
- beq _0816506A
- movs r0, 0x45
- mov r10, r0
-_0816506A:
- ldr r1, =gSpecialVar_Result
- mov r9, r1
- movs r0, 0
- strh r0, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetCurrentBattleTowerWinStreak
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x37
- bls _081650DC
- movs r6, 0
- cmp r6, r8
- bge _081650DC
- ldr r7, =gSaveBlock1Ptr
- mov r5, sp
-_0816508C:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- lsls r1, r6, 1
- ldr r2, =0x00000caa
- adds r0, r2
- adds r0, r1
- ldrh r1, [r0]
- subs r1, 0x1
- movs r0, 0
- strb r1, [r5]
- strb r0, [r5, 0x1]
- movs r0, 0x64
- muls r0, r1
- movs r1, 0x8E
- lsls r1, 2
- adds r4, r0, r1
- ldr r0, [r7]
- adds r0, r4
- mov r1, r10
- bl GetMonData
- cmp r0, 0
- bne _081650D4
- movs r0, 0x1
- mov r2, r9
- strh r0, [r2]
- ldr r0, [r7]
- adds r0, r4
- mov r1, r10
- bl SetMonData
- ldr r0, [r7]
- adds r0, r4
- bl GetRibbonCount
- strb r0, [r5, 0x1]
-_081650D4:
- adds r5, 0x4
- adds r6, 0x1
- cmp r6, r8
- blt _0816508C
-_081650DC:
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0
- beq _08165132
- movs r0, 0x2A
- bl IncrementGameStat
- mov r0, r8
- cmp r0, 0x1
- ble _08165110
- mov r3, sp
- add r2, sp, 0x4
- mov r6, r8
- subs r6, 0x1
-_081650F8:
- ldrb r1, [r3, 0x1]
- ldrb r0, [r2, 0x1]
- cmp r0, r1
- bls _08165108
- ldr r1, [sp]
- ldr r0, [r2]
- str r0, [sp]
- str r1, [r2]
-_08165108:
- adds r2, 0x4
- subs r6, 0x1
- cmp r6, 0
- bne _081650F8
-_08165110:
- mov r0, sp
- ldrb r0, [r0, 0x1]
- cmp r0, 0x4
- bls _08165132
- ldr r2, =gSaveBlock1Ptr
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x64
- muls r1, r0
- movs r0, 0x8E
- lsls r0, 2
- adds r1, r0
- ldr r0, [r2]
- adds r0, r1
- mov r1, r10
- bl sub_80EE4DC
-_08165132:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816502C
-
- thumb_func_start sub_816515C
-sub_816515C: @ 816515C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- ldr r0, =0x00000bec
- adds r7, r2, r0
- ldrb r0, [r2, 0x8]
- adds r5, r1, 0
- cmp r0, 0
- beq _08165194
- ldr r4, =gTowerFemaleFacilityClasses
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _081651A6
- .pool
-_08165194:
- ldr r4, =gTowerMaleFacilityClasses
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_081651A6:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r7, 0x1]
- adds r0, r7, 0
- adds r0, 0xC
- ldr r1, [r5]
- adds r1, 0xA
- bl CopyUnalignedWord
- adds r0, r7, 0x4
- ldr r1, [r5]
- bl StringCopy7
- movs r0, 0x1
- strh r0, [r7, 0x2]
- movs r6, 0x7
- movs r4, 0
- ldr r0, =gSaveBlock1Ptr
- mov r8, r0
- adds r5, r7, 0
- adds r5, 0x10
- ldr r1, =0x00002bbc
- mov r12, r1
- adds r3, r7, 0
- adds r3, 0x28
- adds r2, r7, 0
- adds r2, 0x1C
-_081651E0:
- lsls r0, r4, 1
- mov r9, r0
- mov r1, r8
- ldr r0, [r1]
- add r0, r12
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r5]
- strh r6, [r2]
- adds r0, r6, 0x6
- strh r0, [r3]
- adds r6, 0x1
- adds r5, 0x2
- adds r3, 0x2
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, 0x5
- ble _081651E0
- movs r4, 0
-_08165206:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x34
- adds r1, r7, r1
- bl sub_80686FC
- adds r4, 0x1
- cmp r4, 0x2
- ble _08165206
- adds r0, r7, 0
- bl sub_8165328
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816515C
-
- thumb_func_start GetEreaderTrainerFrontSpriteId
-GetEreaderTrainerFrontSpriteId: @ 8165244
- ldr r1, =gFacilityClassToPicIndex
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000bed
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end GetEreaderTrainerFrontSpriteId
-
- thumb_func_start GetEreaderTrainerClassId
-GetEreaderTrainerClassId: @ 8165264
- ldr r1, =gFacilityClassToTrainerClass
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r2, =0x00000bed
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .pool
- thumb_func_end GetEreaderTrainerClassId
-
- thumb_func_start GetEreaderTrainerName
-GetEreaderTrainerName: @ 8165284
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xBF
- lsls r1, 4
- adds r4, r0, r1
-_08165294:
- adds r0, r3, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x4
- ble _08165294
- adds r1, r3, r2
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end GetEreaderTrainerName
-
- thumb_func_start ValidateEReaderTrainer
-ValidateEReaderTrainer: @ 81652B4
- push {r4-r6,lr}
- ldr r2, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r2]
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- ldr r3, =0x00000bec
- adds r5, r0, r3
- movs r4, 0
- movs r3, 0
- adds r6, r1, 0
- adds r1, r5, 0
-_081652CC:
- ldm r1!, {r0}
- orrs r4, r0
- adds r3, 0x1
- cmp r3, 0x2D
- bls _081652CC
- cmp r4, 0
- bne _081652EC
- movs r0, 0x1
- strh r0, [r2]
- b _08165316
- .pool
-_081652EC:
- movs r4, 0
- movs r3, 0
- adds r2, r5, 0
-_081652F2:
- ldm r2!, {r0}
- adds r4, r0
- adds r3, 0x1
- cmp r3, 0x2D
- bls _081652F2
- ldr r1, [r6]
- ldr r2, =0x00000ca4
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, r4
- beq _08165316
- ldr r3, =0x00000bec
- adds r0, r1, r3
- bl sub_816534C
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
-_08165316:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ValidateEReaderTrainer
-
- thumb_func_start sub_8165328
-sub_8165328: @ 8165328
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xB8
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08165336:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x2D
- bls _08165336
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8165328
-
- thumb_func_start sub_816534C
-sub_816534C: @ 816534C
- push {lr}
- movs r1, 0
- movs r2, 0
-_08165352:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x2E
- bls _08165352
- pop {r0}
- bx r0
- thumb_func_end sub_816534C
-
- thumb_func_start sub_8165360
-sub_8165360: @ 8165360
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000bfc
- adds r0, r1
- bl FrontierSpeechToString
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165360
-
- thumb_func_start sub_816537C
-sub_816537C: @ 816537C
- push {lr}
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08165398
- ldr r1, =gStringVar4
- movs r0, 0xFF
- strb r0, [r1]
- b _081653C0
- .pool
-_08165398:
- cmp r0, 0x1
- bne _081653B4
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c14
- adds r0, r1
- bl FrontierSpeechToString
- b _081653C0
- .pool
-_081653B4:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000c08
- adds r0, r1
- bl FrontierSpeechToString
-_081653C0:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_816537C
-
- thumb_func_start sub_81653CC
-sub_81653CC: @ 81653CC
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081653E0
- bl sub_80F01B8
-_081653E0:
- movs r0, 0x77
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081653F8
- bl sub_80F01B8
- movs r0, 0x77
- bl FlagClear
-_081653F8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81653CC
-
- thumb_func_start sub_8165404
-sub_8165404: @ 8165404
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x70
- lsls r0, 16
- lsrs r7, r0, 16
- bl GetFacilityEnemyMonLevel
- ldr r0, =0x00000c03
- cmp r7, r0
- beq _08165420
- b _0816554C
-_08165420:
- movs r0, 0
- mov r10, r0
- mov r1, sp
- adds r1, 0x44
- str r1, [sp, 0x64]
-_0816542A:
- mov r2, r10
- lsls r2, 2
- mov r9, r2
- mov r3, r10
- adds r3, 0x1
- str r3, [sp, 0x60]
- mov r0, r9
- add r0, r10
- lsls r0, 2
- ldr r6, =gUnknown_085DD6D0
- adds r5, r0, r6
-_08165440:
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x44]
- ldr r0, =0x0000ef2a
- adds r1, r4, 0
- bl IsShinyOtIdPersonality
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _08165440
- ldr r0, [sp, 0x44]
- bl GetNatureFromPersonality
- ldrb r1, [r5, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r1, r0
- bne _08165440
- movs r0, 0x64
- mov r6, r10
- muls r6, r0
- ldr r1, =gPlayerParty + 300
- mov r8, r1
- adds r0, r6, r1
- mov r5, r9
- add r5, r10
- lsls r5, 2
- ldr r2, =gUnknown_085DD6D0
- adds r3, r5, r2
- ldrh r1, [r3]
- ldrb r2, [r3, 0x3]
- ldrb r3, [r3, 0x2]
- mov r12, r3
- movs r4, 0x1
- str r4, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- str r4, [sp, 0x8]
- ldr r4, =0x0000ef2a
- str r4, [sp, 0xC]
- mov r3, r12
- bl CreateMon
- str r7, [sp, 0x44]
- movs r3, 0
- mov r4, r8
- ldr r0, =gUnknown_085DD6D5
- adds r5, r0
-_081654B0:
- adds r1, r3, 0
- adds r1, 0x1A
- adds r2, r5, r3
- adds r0, r6, r4
- bl SetMonData
- ldr r0, [sp, 0x44]
- adds r0, 0x1
- str r0, [sp, 0x44]
- adds r3, r0, 0
- cmp r3, 0x5
- ble _081654B0
- movs r0, 0
- str r0, [sp, 0x44]
- movs r1, 0
- movs r6, 0x64
- mov r4, r10
- muls r4, r6
- ldr r7, =gUnknown_085DD6DC
- ldr r6, =gPlayerParty + 300
- mov r0, r9
- add r0, r10
- lsls r5, r0, 2
-_081654DE:
- lsls r0, r1, 1
- adds r0, r5
- adds r0, r7
- ldrh r1, [r0]
- ldr r0, [sp, 0x64]
- ldrb r2, [r0]
- adds r0, r4, r6
- bl SetMonMoveSlot
- ldr r0, [sp, 0x44]
- adds r0, 0x1
- str r0, [sp, 0x44]
- adds r1, r0, 0
- cmp r1, 0x3
- ble _081654DE
- movs r1, 0x64
- mov r4, r10
- muls r4, r1
- ldr r0, =gPlayerParty + 300
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, =gTrainers + 804 * 0x28 + 0x4 @ TRAINER_STEVEN name
- bl SetMonData
- movs r0, 0
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- adds r0, r4, 0
- bl CalculateMonStats
- ldr r2, [sp, 0x60]
- mov r10, r2
- cmp r2, 0x2
- bgt _0816552E
- b _0816542A
-_0816552E:
- b _0816585A
- .pool
-_0816554C:
- movs r0, 0xFA
- lsls r0, 1
- cmp r7, r0
- bne _08165564
- add r0, sp, 0x10
- ldr r1, =gGameLanguage
- ldrb r1, [r1]
- strb r1, [r0]
- b _0816585A
- .pool
-_08165564:
- ldr r0, =0x0000012b
- cmp r7, r0
- bls _0816556C
- b _081656E8
-_0816556C:
- bl GetFacilityEnemyMonLevel
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x50]
- adds r0, r7, 0
- bl GetFrontierTrainerFixedIvs
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4C]
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 16
- orrs r4, r0
- str r4, [sp, 0x58]
- movs r3, 0
- mov r10, r3
- mov r6, sp
- adds r6, 0x44
- str r6, [sp, 0x64]
- mov r0, sp
- adds r0, 0x48
- str r0, [sp, 0x5C]
-_081655A6:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r0, r10
- adds r0, 0x12
- lsls r0, 1
- ldr r2, =0x00000cb4
- adds r1, r2
- adds r1, r0
- ldrh r1, [r1]
- str r1, [sp, 0x54]
- movs r6, 0x64
- mov r3, r10
- muls r3, r6
- mov r8, r3
- ldr r0, =gPlayerParty + 300
- mov r9, r0
- mov r0, r8
- add r0, r9
- ldr r6, =gFacilityTrainerMons
- ldr r4, [r6]
- lsls r5, r1, 4
- adds r4, r5, r4
- ldrh r1, [r4]
- ldr r3, [sp, 0x50]
- lsls r2, r3, 24
- ldrb r3, [r4, 0xC]
- mov r12, r3
- ldr r3, [sp, 0x4C]
- str r3, [sp]
- ldrb r4, [r4, 0xB]
- str r4, [sp, 0x4]
- ldr r3, [sp, 0x58]
- str r3, [sp, 0x8]
- lsrs r2, 24
- mov r3, r12
- bl CreateMonWithEVSpreadPersonalityOTID
- movs r0, 0xFF
- str r0, [sp, 0x48]
- movs r0, 0
- str r0, [sp, 0x44]
- movs r2, 0
- mov r0, r10
- adds r0, 0x1
- str r0, [sp, 0x60]
- mov r4, r8
- mov r3, r9
-_08165604:
- ldr r0, [r6]
- adds r0, r5, r0
- lsls r1, r2, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r1, [r0]
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, r3
- str r3, [sp, 0x68]
- bl SetMonMoveSlot
- ldr r0, [r6]
- adds r0, r5, r0
- ldr r2, [sp, 0x44]
- lsls r1, r2, 1
- adds r0, 0x2
- adds r0, r1
- ldrh r0, [r0]
- ldr r3, [sp, 0x68]
- cmp r0, 0xDA
- bne _08165634
- movs r0, 0
- str r0, [sp, 0x48]
-_08165634:
- adds r0, r2, 0x1
- str r0, [sp, 0x44]
- adds r2, r0, 0
- cmp r2, 0x3
- ble _08165604
- movs r1, 0x64
- mov r4, r10
- muls r4, r1
- ldr r0, =gPlayerParty + 300
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x5C]
- bl SetMonData
- ldr r0, =gFacilityTrainerMons
- ldr r1, [r0]
- ldr r2, [sp, 0x54]
- lsls r0, r2, 4
- adds r0, r1
- ldrb r2, [r0, 0xA]
- lsls r2, 1
- ldr r0, =gBattleFrontierHeldItems
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- str r0, [sp, 0x44]
- movs r2, 0
- ldr r0, =gFacilityTrainers
- ldr r1, [r0]
- movs r0, 0x34
- muls r0, r7
- adds r0, r1
- adds r3, r0, 0x4
-_0816567E:
- mov r1, sp
- adds r1, r2
- adds r1, 0x10
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, [sp, 0x44]
- adds r0, 0x1
- str r0, [sp, 0x44]
- adds r2, r0, 0
- cmp r2, 0x7
- ble _0816567E
- movs r3, 0x64
- mov r4, r10
- muls r4, r3
- ldr r0, =gPlayerParty + 300
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x7
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r7, 0
- bl IsFrontierTrainerFemale
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- ldr r6, [sp, 0x60]
- mov r10, r6
- cmp r6, 0x1
- bgt _081656CA
- b _081655A6
-_081656CA:
- b _0816585A
- .pool
-_081656E8:
- ldr r0, =0x0000018f
- cmp r7, r0
- bls _081656F0
- b _081657F0
-_081656F0:
- ldr r1, =0xfffffed4
- adds r0, r7, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r2, 0
- mov r10, r2
- mov r3, sp
- adds r3, 0x44
- str r3, [sp, 0x64]
- add r5, sp, 0x18
- ldr r6, =0x000015fc
- mov r9, r6
- ldr r0, =0x0000ffff
- mov r8, r0
- movs r1, 0x24
- str r1, [sp, 0x6C]
-_08165710:
- ldr r1, =gSaveBlock2Ptr
- movs r0, 0xEC
- adds r4, r7, 0
- muls r4, r0
- movs r2, 0xE7
- lsls r2, 3
- adds r4, r2
- ldr r0, [r1]
- adds r4, r0, r4
- ldr r3, =0x00000cb4
- adds r0, r3
- ldr r6, [sp, 0x6C]
- adds r0, r6
- ldrh r1, [r0]
- movs r0, 0x2C
- muls r1, r0
- adds r1, r4, r1
- adds r0, r5, 0
- adds r1, 0x34
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3,r6}
- stm r0!, {r2,r3,r6}
- ldm r1!, {r2,r3}
- stm r0!, {r2,r3}
- adds r1, r4, 0x4
- add r0, sp, 0x10
- bl StringCopy
- adds r4, 0xE4
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0816578C
- ldrh r0, [r5, 0x20]
- mov r6, r8
- ands r0, r6
- cmp r0, r9
- beq _0816579C
- mov r1, sp
- adds r1, 0x3D
- movs r0, 0xFF
- strb r0, [r1]
- add r0, sp, 0x38
- movs r1, 0x1
- bl ConvertInternationalString
- b _0816579C
- .pool
-_0816578C:
- ldrh r0, [r5, 0x20]
- mov r1, r8
- ands r0, r1
- cmp r0, r9
- bne _0816579C
- add r1, sp, 0x10
- movs r0, 0xFF
- strb r0, [r1, 0x5]
-_0816579C:
- movs r0, 0x64
- mov r4, r10
- muls r4, r0
- ldr r0, =gPlayerParty + 300
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8068338
- adds r0, r4, 0
- movs r1, 0x7
- add r2, sp, 0x10
- bl SetMonData
- movs r2, 0x96
- lsls r2, 1
- adds r0, r7, r2
- lsls r0, 16
- lsrs r0, 16
- bl IsFrontierTrainerFemale
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- ldr r3, [sp, 0x6C]
- adds r3, 0x2
- str r3, [sp, 0x6C]
- movs r6, 0x1
- add r10, r6
- mov r0, r10
- cmp r0, 0x1
- ble _08165710
- b _0816585A
- .pool
-_081657F0:
- ldr r1, =0xfffffe70
- adds r0, r7, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r2, 0
- mov r10, r2
- mov r3, sp
- adds r3, 0x44
- str r3, [sp, 0x64]
- ldr r6, =gSaveBlock2Ptr
- mov r8, r6
- movs r5, 0x24
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r6, r0, 0
- adds r6, 0xDC
-_08165812:
- movs r0, 0x64
- mov r4, r10
- muls r4, r0
- ldr r0, =gPlayerParty + 300
- adds r4, r0
- mov r1, r8
- ldr r0, [r1]
- adds r1, r0, r6
- ldr r2, =0x00000cb4
- adds r0, r2
- adds r0, r5
- ldrb r2, [r0]
- adds r0, r4, 0
- bl CreateApprenticeMon
- movs r3, 0xC8
- lsls r3, 1
- adds r0, r7, r3
- lsls r0, 16
- lsrs r0, 16
- bl IsFrontierTrainerFemale
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x31
- ldr r2, [sp, 0x64]
- bl SetMonData
- adds r5, 0x2
- movs r0, 0x1
- add r10, r0
- mov r1, r10
- cmp r1, 0x1
- ble _08165812
-_0816585A:
- add sp, 0x70
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8165404
-
- thumb_func_start sub_816587C
-sub_816587C: @ 816587C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r6, r0, 0
- adds r5, r1, 0
- movs r2, 0
- adds r1, r6, 0
- adds r3, r6, 0
- adds r3, 0x58
-_08165894:
- ldrh r0, [r1, 0x1C]
- cmp r0, 0
- beq _0816589C
- adds r2, 0x1
-_0816589C:
- adds r1, 0x2C
- cmp r1, r3
- ble _08165894
- cmp r2, 0x3
- beq _081658B4
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xEC
- bl memset
- movs r0, 0
- b _081659BE
-_081658B4:
- ldrb r0, [r6]
- strb r0, [r5]
- ldrh r0, [r6, 0x2]
- strh r0, [r5, 0x2]
- movs r2, 0
- ldr r0, =gUnknown_085DCF40
- ldrb r1, [r0]
- ldrb r3, [r6, 0x1]
- mov r12, r0
- adds r4, r5, 0x4
- adds r7, r6, 0x4
- movs r0, 0xC
- adds r0, r5
- mov r9, r0
- movs r0, 0xC
- adds r0, r6
- mov r8, r0
- adds r0, r5, 0
- adds r0, 0x10
- str r0, [sp, 0x4]
- movs r0, 0x10
- adds r0, r6
- mov r10, r0
- adds r0, r5, 0
- adds r0, 0x1C
- str r0, [sp, 0x8]
- adds r0, 0xC
- str r0, [sp, 0xC]
- adds r0, 0x90
- str r0, [sp, 0x10]
- cmp r1, r3
- beq _08165904
- mov r1, r12
-_081658F6:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x51
- bgt _08165904
- ldrb r0, [r1]
- cmp r0, r3
- bne _081658F6
-_08165904:
- cmp r2, 0x52
- beq _08165918
- lsls r0, r2, 1
- mov r1, r12
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- b _0816591A
- .pool
-_08165918:
- movs r0, 0x2B
-_0816591A:
- strb r0, [r5, 0x1]
- movs r2, 0
- adds r3, r7, 0
-_08165920:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08165920
- movs r2, 0
- mov r4, r9
- mov r3, r8
-_08165934:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _08165934
- mov r3, r10
- ldr r1, [sp, 0x4]
- movs r2, 0x5
-_08165948:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08165948
- ldr r3, =gUnknown_085DFA46
- ldr r1, [sp, 0x8]
- movs r2, 0x5
-_0816595C:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _0816595C
- ldr r3, =gUnknown_085DFA52
- ldr r1, [sp, 0xC]
- movs r2, 0x5
-_08165970:
- ldrh r0, [r3]
- strh r0, [r1]
- adds r3, 0x2
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08165970
- adds r2, r6, 0
- adds r3, r5, 0
- movs r4, 0x58
- adds r4, r2
- mov r8, r4
-_08165988:
- adds r1, r3, 0
- adds r1, 0x34
- adds r0, r2, 0
- adds r0, 0x1C
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r6,r7}
- stm r1!, {r6,r7}
- adds r2, 0x2C
- adds r3, 0x2C
- cmp r2, r8
- ble _08165988
- movs r0, 0
- str r0, [sp]
- ldr r2, =0x0500000b
- mov r0, sp
- ldr r1, [sp, 0x10]
- bl CpuSet
- adds r0, r5, 0
- bl CalcEmeraldBattleTowerChecksum
- movs r0, 0x1
-_081659BE:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_816587C
thumb_func_start sub_81659DC
sub_81659DC: @ 81659DC
@@ -2264,7 +43,7 @@ _08165A14:
ldrh r0, [r4, 0x2]
strh r0, [r6, 0x2]
movs r2, 0
- ldr r0, =gUnknown_085DCF40
+ ldr r0, =sRubyFacilityClassToEmerald
ldrb r1, [r0, 0x1]
ldrb r3, [r4, 0x1]
mov r12, r0
@@ -2361,7 +140,7 @@ _08165AB0:
cmp r2, r8
ble _08165AB0
adds r0, r6, 0
- bl sub_8164F94
+ bl CalcRubyBattleTowerChecksum
movs r0, 0x1
_08165AD8:
add sp, 0x4
@@ -3201,7 +980,7 @@ _08166174:
lsls r3, 3
adds r0, r1, r3
adds r0, r2, r0
- bl sub_8164FB8
+ bl ClearBattleTowerRecord
_08166180:
movs r0, 0
_08166182:
diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s
index 415ebfc0c..1c02f93cd 100644
--- a/asm/rom_8011DC0.s
+++ b/asm/rom_8011DC0.s
@@ -10934,7 +10934,7 @@ sub_801B1E8: @ 801B1E8
ldr r0, [r0]
ldr r1, =0x00000bec
adds r0, r1
- bl sub_816534C
+ bl ClearEReaderTrainer
pop {r0}
bx r0
.pool