summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorDizzyEggg <jajkodizzy@wp.pl>2018-09-10 01:01:39 +0200
committerDizzyEggg <jajkodizzy@wp.pl>2018-09-10 01:01:39 +0200
commitb87856b58eacd3ea7375f001427d53f096b02b68 (patch)
tree277e77ebd8e281aed47e4b2365c1806802bfc0c9 /asm
parentcf8898071d0aa02438be2b1b1d03a6e6b33892be (diff)
Battle Factory is decompiled and documented.
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_frontier_2.s408
-rw-r--r--asm/battle_tent.s260
2 files changed, 2 insertions, 666 deletions
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
index 280a8a483..c7966b48d 100644
--- a/asm/battle_frontier_2.s
+++ b/asm/battle_frontier_2.s
@@ -4,410 +4,6 @@
.syntax unified
.text
-
-
-
-
- thumb_func_start sub_819F654
-sub_819F654: @ 819F654
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819F694
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _0819F688
- ldr r0, =sFactorySwapScreen
- ldr r0, [r0]
- adds r0, 0x30
- movs r1, 0
- strb r1, [r0]
- b _0819F68E
- .pool
-_0819F688:
- movs r0, 0
- bl sub_819BE20
-_0819F68E:
- adds r0, r4, 0
- bl DestroySprite
-_0819F694:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819F654
-
- thumb_func_start sub_819F69C
-sub_819F69C: @ 819F69C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0819F71A
- cmp r0, 0x1
- bgt _0819F6C4
- cmp r0, 0
- beq _0819F6CA
- b _0819F77C
- .pool
-_0819F6C4:
- cmp r0, 0x2
- beq _0819F73C
- b _0819F77C
-_0819F6CA:
- movs r0, 0x58
- strh r0, [r4, 0xE]
- movs r0, 0x98
- strh r0, [r4, 0x38]
- movs r0, 0x40
- strh r0, [r4, 0x12]
- movs r0, 0x41
- strh r0, [r4, 0x18]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0x38]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- b _0819F7A6
-_0819F71A:
- movs r0, 0x3
- bl ShowBg
- ldr r1, =0x00001248
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x0000040b
- movs r0, 0x52
- bl SetGpuReg
- b _0819F7A6
- .pool
-_0819F73C:
- ldrh r0, [r4, 0x12]
- subs r0, 0x4
- strh r0, [r4, 0x12]
- ldrh r1, [r4, 0x18]
- adds r1, 0x4
- strh r1, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _0819F758
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x5F
- ble _0819F760
-_0819F758:
- movs r0, 0x20
- strh r0, [r4, 0x12]
- movs r0, 0x60
- strh r0, [r4, 0x18]
-_0819F760:
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0x20
- bne _0819F7AC
- b _0819F7A6
-_0819F77C:
- adds r0, r5, 0
- bl DestroyTask
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x16
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _0819F7A0
- bl sub_819F8E0
- b _0819F7AC
- .pool
-_0819F7A0:
- bl sub_819BD70
- b _0819F7AC
-_0819F7A6:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0819F7AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819F69C
-
- thumb_func_start sub_819F7B4
-sub_819F7B4: @ 819F7B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0819F844
- cmp r0, 0x1
- beq _0819F894
- movs r0, 0x3
- bl HideBg
- ldr r3, =gSprites
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r4, 0x16]
- strh r1, [r0, 0x3C]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_819F654
- str r1, [r0]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl ClearGpuRegBits
- adds r0, r5, 0
- bl DestroyTask
- b _0819F8D8
- .pool
-_0819F844:
- movs r0, 0x58
- strh r0, [r4, 0xE]
- movs r0, 0x98
- strh r0, [r4, 0x38]
- movs r0, 0x20
- strh r0, [r4, 0x12]
- movs r0, 0x60
- strh r0, [r4, 0x18]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0x38]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- b _0819F8D2
-_0819F894:
- ldrh r0, [r4, 0x12]
- adds r0, 0x4
- strh r0, [r4, 0x12]
- ldrh r1, [r4, 0x18]
- subs r1, 0x4
- strh r1, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- bgt _0819F8B0
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x41
- bgt _0819F8B8
-_0819F8B0:
- movs r0, 0x40
- strh r0, [r4, 0x12]
- movs r0, 0x41
- strh r0, [r4, 0x18]
-_0819F8B8:
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bne _0819F8D8
-_0819F8D2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0819F8D8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819F7B4
-
- thumb_func_start sub_819F8E0
-sub_819F8E0: @ 819F8E0
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r0, =sFactorySwapScreen
- ldr r1, [r0]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- bne _0819F900
- ldrb r1, [r1, 0x3]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gPlayerParty
- b _0819F908
- .pool
-_0819F900:
- ldrb r1, [r1, 0x3]
- movs r0, 0x64
- muls r1, r0
- ldr r0, =gEnemyParty
-_0819F908:
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- adds r0, r6, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x58
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- ldr r0, =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r2, r5, 0
- movs r3, 0x1
- bl CreateMonPicSprite_HandleDeoxys
- ldr r2, =sFactorySwapScreen
- ldr r1, [r2]
- adds r1, 0x2C
- movs r3, 0
- strb r0, [r1]
- ldr r4, =gSprites
- ldr r0, [r2]
- adds r0, 0x2C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x28
- strb r3, [r0]
- ldr r0, [r2]
- adds r0, 0x2C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x29
- strb r3, [r0]
- ldr r0, [r2]
- adds r0, 0x30
- strb r3, [r0]
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F8E0
-
-@ Battle Factory ends here
thumb_func_start sub_819F99C
sub_819F99C: @ 819F99C
@@ -12655,7 +12251,7 @@ nullsub_123: @ 81A6184
sub_81A6188: @ 81A6188
push {lr}
bl ZeroPlayerPartyMons
- bl sub_819A4F8
+ bl DoBattleFactorySelectScreen
pop {r0}
bx r0
thumb_func_end sub_81A6188
@@ -12663,7 +12259,7 @@ sub_81A6188: @ 81A6188
thumb_func_start sub_81A6198
sub_81A6198: @ 81A6198
push {lr}
- bl sub_819DC00
+ bl DoBattleFactorySwapScreen
pop {r0}
bx r0
thumb_func_end sub_81A6198
diff --git a/asm/battle_tent.s b/asm/battle_tent.s
deleted file mode 100644
index 8de98850f..000000000
--- a/asm/battle_tent.s
+++ /dev/null
@@ -1,260 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
-
-
- thumb_func_start sub_81BA040
-sub_81BA040: @ 81BA040
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r10, r0
- ldr r1, =gFacilityTrainers
- ldr r0, =gSlateportBattleTentTrainers
- str r0, [r1]
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gSlateportBattleTentMons
- str r0, [r1]
- ldr r7, =gSaveBlock2Ptr
- ldr r1, =0x0000ffff
- mov r8, r1
-_081BA062:
- mov r2, r10
- lsls r6, r2, 1
-_081BA066:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1E
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r5, 0
- ldr r1, [r7]
- ldr r4, =0x00000cb2
- adds r0, r1, r4
- ldrh r0, [r0]
- cmp r5, r0
- bge _081BA0AA
- ldr r2, =0x00000cb4
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r3
- beq _081BA0AA
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r0, r1, r4
- ldrh r2, [r0]
- adds r4, 0x2
- adds r1, r4
-_081BA09C:
- adds r1, 0x2
- adds r5, 0x1
- cmp r5, r2
- bge _081BA0AA
- ldrh r0, [r1]
- cmp r0, r3
- bne _081BA09C
-_081BA0AA:
- ldr r0, [r7]
- ldr r1, =0x00000cb2
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- bne _081BA066
- ldr r2, =gTrainerBattleOpponent_A
- strh r3, [r2]
- ldrh r3, [r2]
- ldr r4, =gFacilityTrainers
- ldr r1, [r4]
- movs r0, 0x34
- muls r0, r3
- adds r0, r1
- ldr r0, [r0, 0x30]
- adds r1, r6, r0
- ldrh r0, [r1]
- cmp r0, r8
- beq _081BA0DE
- ldr r3, =0x0000ffff
-_081BA0D2:
- adds r1, 0x2
- movs r6, 0x1
- add r10, r6
- ldrh r0, [r1]
- cmp r0, r3
- bne _081BA0D2
-_081BA0DE:
- mov r0, r10
- cmp r0, 0x8
- bgt _081BA110
- movs r1, 0
- mov r10, r1
- b _081BA062
- .pool
-_081BA110:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldr r6, =0x00000cb2
- adds r3, r1, r6
- ldrh r0, [r3]
- cmp r0, 0x1
- bhi _081BA12A
- lsls r0, 1
- ldr r3, =0x00000cb4
- adds r1, r3
- adds r1, r0
- ldrh r0, [r2]
- strh r0, [r1]
-_081BA12A:
- ldrh r1, [r2]
- ldr r2, [r4]
- movs r0, 0x34
- muls r0, r1
- adds r0, r2
- ldr r0, [r0, 0x30]
- mov r9, r0
- movs r5, 0
- ldr r7, =gUnknown_03001298
- mov r8, sp
-_081BA13E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r1, r10
- bl __modsi3
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r7]
- movs r2, 0
- ldrh r0, [r7]
- ldr r4, =gFacilityTrainerMons
- ldr r3, [r4]
- lsls r0, 4
- adds r0, r3
- ldr r1, =gSaveBlock2Ptr
- ldrh r6, [r0]
- ldr r1, [r1]
-_081BA166:
- movs r4, 0xE7
- lsls r4, 4
- adds r0, r1, r4
- ldrh r0, [r0]
- lsls r0, 4
- adds r0, r3
- ldrh r0, [r0]
- cmp r6, r0
- beq _081BA180
- adds r1, 0xC
- adds r2, 0x1
- cmp r2, 0x5
- ble _081BA166
-_081BA180:
- cmp r2, 0x6
- bne _081BA220
- movs r4, 0
- cmp r4, r5
- bge _081BA1B0
- mov r0, sp
- ldrh r0, [r0]
- cmp r0, r6
- beq _081BA1B0
- ldr r6, =gUnknown_03001298
- ldr r3, =gFacilityTrainerMons
- mov r2, sp
-_081BA198:
- adds r2, 0x2
- adds r4, 0x1
- cmp r4, r5
- bge _081BA1B0
- ldrh r0, [r6]
- ldr r1, [r3]
- lsls r0, 4
- adds r0, r1
- ldrh r1, [r2]
- ldrh r0, [r0]
- cmp r1, r0
- bne _081BA198
-_081BA1B0:
- cmp r4, r5
- bne _081BA220
- movs r4, 0
- cmp r4, r5
- bge _081BA1E6
- ldr r6, =gBattleFrontierHeldItems
- mov r12, r6
- add r3, sp, 0x8
-_081BA1C0:
- ldrh r2, [r3]
- cmp r2, 0
- beq _081BA1DE
- ldr r1, =gUnknown_03001298
- ldrh r0, [r1]
- ldr r6, =gFacilityTrainerMons
- ldr r1, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xA]
- lsls r0, 1
- add r0, r12
- ldrh r0, [r0]
- cmp r2, r0
- beq _081BA1E6
-_081BA1DE:
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, r5
- blt _081BA1C0
-_081BA1E6:
- cmp r4, r5
- bne _081BA220
- lsls r2, r5, 1
- ldrh r0, [r7]
- ldr r1, =gFacilityTrainerMons
- ldr r4, [r1]
- lsls r0, 4
- adds r0, r4
- ldrh r0, [r0]
- mov r3, r8
- strh r0, [r3]
- add r1, sp, 0x8
- adds r1, r2
- ldr r3, =gBattleFrontierHeldItems
- ldrh r0, [r7]
- lsls r0, 4
- adds r0, r4
- ldrb r0, [r0, 0xA]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, =gUnknown_03006298
- adds r2, r0
- ldrh r0, [r7]
- strh r0, [r2]
- movs r4, 0x2
- add r8, r4
- adds r5, 0x1
-_081BA220:
- cmp r5, 0x3
- bne _081BA13E
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81BA040
-
- .align 2, 0 @ Don't pad with nop.