mirror of https://github.com/zeldaret/tmc.git
501 lines
8.5 KiB
ArmAsm
501 lines
8.5 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
|
|
thumb_func_start SpikedBeetle
|
|
SpikedBeetle: @ 0x0802B5F0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _0802B60C @ =gUnk_080CD2D8
|
|
bl EnemyFunctionHandler
|
|
movs r3, #0x10
|
|
rsbs r3, r3, #0
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
movs r2, #1
|
|
bl SetChildOffset
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0802B60C: .4byte gUnk_080CD2D8
|
|
|
|
thumb_func_start sub_0802B610
|
|
sub_0802B610: @ 0x0802B610
|
|
push {lr}
|
|
ldr r2, _0802B624 @ =gUnk_080CD2F0
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0802B624: .4byte gUnk_080CD2F0
|
|
|
|
thumb_func_start sub_0802B628
|
|
sub_0802B628: @ 0x0802B628
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x41
|
|
ldrb r0, [r0]
|
|
movs r1, #0x7f
|
|
ands r1, r0
|
|
cmp r1, #0x1d
|
|
bhi _0802B706
|
|
lsls r0, r1, #2
|
|
ldr r1, _0802B644 @ =_0802B648
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0802B644: .4byte _0802B648
|
|
_0802B648: @ jump table
|
|
.4byte _0802B6C0 @ case 0
|
|
.4byte _0802B706 @ case 1
|
|
.4byte _0802B6CC @ case 2
|
|
.4byte _0802B6CC @ case 3
|
|
.4byte _0802B6C0 @ case 4
|
|
.4byte _0802B6C0 @ case 5
|
|
.4byte _0802B6C0 @ case 6
|
|
.4byte _0802B706 @ case 7
|
|
.4byte _0802B6C0 @ case 8
|
|
.4byte _0802B6C0 @ case 9
|
|
.4byte _0802B6C0 @ case 10
|
|
.4byte _0802B6C0 @ case 11
|
|
.4byte _0802B6C0 @ case 12
|
|
.4byte _0802B706 @ case 13
|
|
.4byte _0802B706 @ case 14
|
|
.4byte _0802B706 @ case 15
|
|
.4byte _0802B706 @ case 16
|
|
.4byte _0802B706 @ case 17
|
|
.4byte _0802B706 @ case 18
|
|
.4byte _0802B706 @ case 19
|
|
.4byte _0802B706 @ case 20
|
|
.4byte _0802B706 @ case 21
|
|
.4byte _0802B6CC @ case 22
|
|
.4byte _0802B706 @ case 23
|
|
.4byte _0802B6CC @ case 24
|
|
.4byte _0802B6CC @ case 25
|
|
.4byte _0802B6CC @ case 26
|
|
.4byte _0802B706 @ case 27
|
|
.4byte _0802B706 @ case 28
|
|
.4byte _0802B6CC @ case 29
|
|
_0802B6C0:
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #4
|
|
bne _0802B706
|
|
movs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
b _0802B706
|
|
_0802B6CC:
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #5
|
|
bhi _0802B706
|
|
movs r0, #6
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #9
|
|
str r0, [r4, #0x20]
|
|
movs r1, #0
|
|
movs r0, #0xc0
|
|
strh r0, [r4, #0x24]
|
|
adds r0, r4, #0
|
|
adds r0, #0x3e
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, #0x15]
|
|
adds r0, r4, #0
|
|
adds r0, #0x42
|
|
strb r1, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x3d
|
|
movs r0, #0xf8
|
|
strb r0, [r1]
|
|
adds r1, #2
|
|
movs r0, #0x64
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #9
|
|
bl InitializeAnimation
|
|
_0802B706:
|
|
adds r0, r4, #0
|
|
adds r0, #0x43
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0802B718
|
|
adds r0, r4, #0
|
|
movs r1, #0x1c
|
|
bl sub_0804A9FC
|
|
_0802B718:
|
|
ldr r1, _0802B724 @ =gUnk_080CD2D8
|
|
adds r0, r4, #0
|
|
bl sub_0804AA30
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0802B724: .4byte gUnk_080CD2D8
|
|
|
|
thumb_func_start nullsub_144
|
|
nullsub_144: @ 0x0802B728
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0802B72C
|
|
sub_0802B72C: @ 0x0802B72C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0804A720
|
|
movs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0xff
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl sub_0802B7A4
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0802B744
|
|
sub_0802B744: @ 0x0802B744
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl GetNextFrame
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08049FDC
|
|
cmp r0, #0
|
|
beq _0802B780
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0xc
|
|
bl sub_0804A024
|
|
adds r1, r0, #0
|
|
cmp r1, #0xff
|
|
beq _0802B780
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x1e
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0x18
|
|
ands r1, r0
|
|
strb r1, [r4, #0x15]
|
|
adds r0, r4, #0
|
|
movs r1, #8
|
|
bl InitializeAnimation
|
|
b _0802B7A2
|
|
_0802B780:
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0802B794
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x1e
|
|
b _0802B7A0
|
|
_0802B794:
|
|
adds r0, r4, #0
|
|
bl sub_080AEF88
|
|
cmp r0, #0
|
|
bne _0802B7A2
|
|
movs r0, #1
|
|
_0802B7A0:
|
|
strb r0, [r4, #0xe]
|
|
_0802B7A2:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0802B7A4
|
|
sub_0802B7A4: @ 0x0802B7A4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0802B7F4
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
bl Random
|
|
ldr r2, _0802B7F8 @ =gUnk_080CD314
|
|
movs r1, #3
|
|
ands r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0x60
|
|
strh r0, [r4, #0x24]
|
|
adds r0, r4, #0
|
|
bl sub_0802B960
|
|
ldrb r0, [r4, #0x15]
|
|
lsls r1, r0, #0x18
|
|
lsrs r0, r1, #0x18
|
|
cmp r0, #0xff
|
|
beq _0802B7F4
|
|
lsrs r2, r1, #0x1b
|
|
ldrb r0, [r4, #0x14]
|
|
cmp r2, r0
|
|
beq _0802B7F4
|
|
movs r1, #3
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
strb r0, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
adds r1, r2, #0
|
|
bl InitializeAnimation
|
|
_0802B7F4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0802B7F8: .4byte gUnk_080CD314
|
|
|
|
thumb_func_start sub_0802B7FC
|
|
sub_0802B7FC: @ 0x0802B7FC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl GetNextFrame
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0802B81E
|
|
movs r0, #4
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x78
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0xe0
|
|
lsls r0, r0, #1
|
|
strh r0, [r4, #0x24]
|
|
_0802B81E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0802B820
|
|
sub_0802B820: @ 0x0802B820
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080AEFE0
|
|
cmp r0, #0
|
|
bne _0802B830
|
|
movs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
_0802B830:
|
|
adds r0, r4, #0
|
|
bl GetNextFrame
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0802B84A
|
|
adds r0, r4, #0
|
|
bl sub_0802B9B4
|
|
b _0802B87E
|
|
_0802B84A:
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08049FDC
|
|
cmp r0, #0
|
|
beq _0802B878
|
|
ldrb r1, [r4, #0xe]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0802B87E
|
|
ldr r0, _0802B874 @ =gUnk_020000B0
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_080045C4
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl sub_08004596
|
|
b _0802B87E
|
|
.align 2, 0
|
|
_0802B874: .4byte gUnk_020000B0
|
|
_0802B878:
|
|
adds r0, r4, #0
|
|
bl sub_0802B9B4
|
|
_0802B87E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0802B880
|
|
sub_0802B880: @ 0x0802B880
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r2, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0802B8AC
|
|
movs r0, #2
|
|
strb r0, [r2, #0xc]
|
|
movs r0, #0x3c
|
|
strb r0, [r2, #0xe]
|
|
ldrb r0, [r2, #0x15]
|
|
adds r0, #4
|
|
movs r1, #0x18
|
|
ands r0, r1
|
|
asrs r0, r0, #3
|
|
strb r0, [r2, #0x14]
|
|
ldrb r1, [r2, #0x14]
|
|
adds r0, r2, #0
|
|
bl InitializeAnimation
|
|
_0802B8AC:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0802B8B0
|
|
sub_0802B8B0: @ 0x0802B8B0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080AEFE0
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #5
|
|
adds r0, r4, #0
|
|
bl sub_080044EC
|
|
cmp r0, #0
|
|
beq _0802B8CC
|
|
cmp r0, #1
|
|
beq _0802B8D4
|
|
b _0802B8DA
|
|
_0802B8CC:
|
|
movs r0, #7
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x96
|
|
strb r0, [r4, #0xe]
|
|
_0802B8D4:
|
|
ldr r0, _0802B8DC @ =0x0000012B
|
|
bl sub_08004488
|
|
_0802B8DA:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0802B8DC: .4byte 0x0000012B
|
|
|
|
thumb_func_start sub_0802B8E0
|
|
sub_0802B8E0: @ 0x0802B8E0
|
|
push {r4, lr}
|
|
adds r3, r0, #0
|
|
ldrb r0, [r3, #0xe]
|
|
subs r1, r0, #1
|
|
strb r1, [r3, #0xe]
|
|
lsls r0, r1, #0x18
|
|
cmp r0, #0
|
|
beq _0802B91C
|
|
adds r4, r0, #0
|
|
lsrs r0, r4, #0x18
|
|
cmp r0, #0x3b
|
|
bhi _0802B940
|
|
movs r0, #1
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _0802B940
|
|
adds r3, #0x62
|
|
ldr r2, _0802B918 @ =gUnk_080CD318
|
|
lsrs r0, r4, #0x19
|
|
movs r1, #3
|
|
ands r0, r1
|
|
adds r0, r0, r2
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r3]
|
|
adds r0, r0, r1
|
|
strb r0, [r3]
|
|
b _0802B940
|
|
.align 2, 0
|
|
_0802B918: .4byte gUnk_080CD318
|
|
_0802B91C:
|
|
movs r0, #8
|
|
strb r0, [r3, #0xc]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #9
|
|
str r0, [r3, #0x20]
|
|
movs r0, #0x60
|
|
strh r0, [r3, #0x24]
|
|
adds r1, r3, #0
|
|
adds r1, #0x3f
|
|
movs r0, #0x63
|
|
strb r0, [r1]
|
|
ldrb r1, [r3, #0x14]
|
|
adds r0, r3, #0
|
|
bl InitializeAnimation
|
|
ldr r0, _0802B944 @ =0x0000012B
|
|
bl sub_08004488
|
|
_0802B940:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0802B944: .4byte 0x0000012B
|
|
|
|
thumb_func_start sub_0802B948
|
|
sub_0802B948: @ 0x0802B948
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #5
|
|
bl sub_08003FC4
|
|
cmp r0, #0
|
|
bne _0802B95E
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
strb r0, [r4, #0xe]
|
|
_0802B95E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0802B960
|
|
sub_0802B960: @ 0x0802B960
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #1
|
|
bl sub_08049FDC
|
|
cmp r0, #0
|
|
beq _0802B986
|
|
bl Random
|
|
movs r1, #7
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0802B9A6
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08049F84
|
|
adds r0, #4
|
|
b _0802B9AA
|
|
_0802B986:
|
|
adds r0, r4, #0
|
|
bl sub_08049FA0
|
|
cmp r0, #0
|
|
bne _0802B9A6
|
|
bl Random
|
|
movs r1, #3
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _0802B9A6
|
|
adds r0, r4, #0
|
|
bl sub_08049EE4
|
|
adds r0, #4
|
|
b _0802B9AA
|
|
_0802B9A6:
|
|
bl Random
|
|
_0802B9AA:
|
|
movs r1, #0x18
|
|
ands r0, r1
|
|
strb r0, [r4, #0x15]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0802B9B4
|
|
sub_0802B9B4: @ 0x0802B9B4
|
|
push {lr}
|
|
movs r1, #5
|
|
strb r1, [r0, #0xc]
|
|
movs r1, #0x3c
|
|
strb r1, [r0, #0xe]
|
|
ldrb r1, [r0, #0x15]
|
|
lsrs r1, r1, #3
|
|
movs r2, #3
|
|
ands r1, r2
|
|
strb r1, [r0, #0x14]
|
|
ldrb r1, [r0, #0x14]
|
|
adds r1, #4
|
|
bl InitializeAnimation
|
|
pop {pc}
|
|
.align 2, 0
|