mirror of https://github.com/zeldaret/tmc.git
400 lines
7.1 KiB
ArmAsm
400 lines
7.1 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_0805E3B0
|
|
sub_0805E3B0: @ 0x0805E3B0
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
ldrb r1, [r3, #0x10]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805E3C2
|
|
movs r0, #1
|
|
b _0805E404
|
|
_0805E3C2:
|
|
ldrb r0, [r3, #0xc]
|
|
cmp r0, #0
|
|
bne _0805E3CC
|
|
movs r0, #0
|
|
b _0805E404
|
|
_0805E3CC:
|
|
ldr r1, _0805E3DC @ =gUnk_03003DC0
|
|
ldrb r0, [r1]
|
|
ldrb r2, [r1, #1]
|
|
cmp r0, r2
|
|
bls _0805E3E0
|
|
adds r2, r0, #0
|
|
b _0805E3E2
|
|
.align 2, 0
|
|
_0805E3DC: .4byte gUnk_03003DC0
|
|
_0805E3E0:
|
|
ldrb r2, [r1, #1]
|
|
_0805E3E2:
|
|
ldr r0, _0805E408 @ =gTextBox
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0805E3F4
|
|
cmp r2, #2
|
|
bhs _0805E3F4
|
|
movs r2, #2
|
|
_0805E3F4:
|
|
movs r1, #0
|
|
ldrb r0, [r3, #0x11]
|
|
lsls r0, r0, #0x1c
|
|
lsrs r0, r0, #0x1c
|
|
cmp r2, r0
|
|
bls _0805E402
|
|
movs r1, #1
|
|
_0805E402:
|
|
adds r0, r1, #0
|
|
_0805E404:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0805E408: .4byte gTextBox
|
|
|
|
thumb_func_start sub_0805E40C
|
|
sub_0805E40C: @ 0x0805E40C
|
|
push {lr}
|
|
ldr r1, _0805E424 @ =gUnk_03003DC0
|
|
ldrb r0, [r1]
|
|
ldrb r2, [r1, #1]
|
|
cmp r0, r2
|
|
bhi _0805E41A
|
|
ldrb r0, [r1, #1]
|
|
_0805E41A:
|
|
cmp r0, #0
|
|
beq _0805E420
|
|
movs r0, #1
|
|
_0805E420:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0805E424: .4byte gUnk_03003DC0
|
|
|
|
thumb_func_start sub_0805E428
|
|
sub_0805E428: @ 0x0805E428
|
|
push {lr}
|
|
bl sub_0805E524
|
|
ldr r2, _0805E440 @ =gUnk_03003DC0
|
|
ldrb r3, [r2, #2]
|
|
adds r1, r3, #0
|
|
cmp r1, #0
|
|
beq _0805E444
|
|
movs r0, #0
|
|
strb r3, [r2, #1]
|
|
strb r0, [r2, #2]
|
|
b _0805E44E
|
|
.align 2, 0
|
|
_0805E440: .4byte gUnk_03003DC0
|
|
_0805E444:
|
|
ldrb r0, [r2, #3]
|
|
cmp r0, #0
|
|
beq _0805E44E
|
|
strb r1, [r2, #3]
|
|
strb r1, [r2, #1]
|
|
_0805E44E:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0805E450
|
|
sub_0805E450: @ 0x0805E450
|
|
push {lr}
|
|
ldr r1, _0805E464 @ =gUnk_03003DC0
|
|
ldrb r2, [r1, #2]
|
|
cmp r0, r2
|
|
blo _0805E460
|
|
ldrb r2, [r1, #1]
|
|
cmp r0, r2
|
|
bhs _0805E468
|
|
_0805E460:
|
|
movs r0, #0
|
|
b _0805E46C
|
|
.align 2, 0
|
|
_0805E464: .4byte gUnk_03003DC0
|
|
_0805E468:
|
|
strb r0, [r1, #2]
|
|
movs r0, #1
|
|
_0805E46C:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0805E470
|
|
sub_0805E470: @ 0x0805E470
|
|
ldr r1, _0805E478 @ =gUnk_03003DC0
|
|
movs r0, #1
|
|
strb r0, [r1, #3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805E478: .4byte gUnk_03003DC0
|
|
|
|
thumb_func_start sub_0805E47C
|
|
sub_0805E47C: @ 0x0805E47C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0x11]
|
|
lsls r0, r0, #0x1c
|
|
lsrs r0, r0, #0x18
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x11]
|
|
movs r0, #2
|
|
bl sub_0805E450
|
|
cmp r0, #0
|
|
beq _0805E49A
|
|
ldr r0, _0805E49C @ =gUnk_03003DC0
|
|
str r4, [r0, #4]
|
|
_0805E49A:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0805E49C: .4byte gUnk_03003DC0
|
|
|
|
thumb_func_start sub_0805E4A0
|
|
sub_0805E4A0: @ 0x0805E4A0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #1
|
|
bl sub_08078A90
|
|
ldrb r0, [r4, #0x11]
|
|
lsls r0, r0, #0x1c
|
|
lsrs r0, r0, #0x18
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x11]
|
|
movs r0, #1
|
|
bl sub_0805E450
|
|
cmp r0, #0
|
|
beq _0805E4C4
|
|
ldr r0, _0805E4C8 @ =gUnk_03003DC0
|
|
str r4, [r0, #4]
|
|
_0805E4C4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0805E4C8: .4byte gUnk_03003DC0
|
|
|
|
thumb_func_start sub_0805E4CC
|
|
sub_0805E4CC: @ 0x0805E4CC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #0
|
|
bl sub_08078A90
|
|
adds r0, r4, #0
|
|
bl sub_0805E584
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0805E4E0
|
|
sub_0805E4E0: @ 0x0805E4E0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
cmp r4, #0
|
|
beq _0805E4F6
|
|
ldrb r0, [r4, #0x11]
|
|
lsls r0, r0, #0x1c
|
|
lsrs r0, r0, #0x18
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x11]
|
|
_0805E4F6:
|
|
movs r0, #1
|
|
bl sub_0805E450
|
|
cmp r0, #0
|
|
beq _0805E504
|
|
ldr r0, _0805E50C @ =gUnk_03003DC0
|
|
str r4, [r0, #4]
|
|
_0805E504:
|
|
adds r0, r5, #0
|
|
bl sub_0805E510
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0805E50C: .4byte gUnk_03003DC0
|
|
|
|
thumb_func_start sub_0805E510
|
|
sub_0805E510: @ 0x0805E510
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldr r2, _0805E520 @ =gUnk_03003DC0
|
|
ldrh r0, [r2, #8]
|
|
cmp r0, r1
|
|
bhs _0805E51E
|
|
strh r1, [r2, #8]
|
|
_0805E51E:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0805E520: .4byte gUnk_03003DC0
|
|
|
|
thumb_func_start sub_0805E524
|
|
sub_0805E524: @ 0x0805E524
|
|
push {lr}
|
|
ldr r1, _0805E540 @ =gUnk_03003DC0
|
|
ldrh r0, [r1, #8]
|
|
cmp r0, #0
|
|
beq _0805E53C
|
|
subs r0, #1
|
|
strh r0, [r1, #8]
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _0805E53C
|
|
bl sub_0805E470
|
|
_0805E53C:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0805E540: .4byte gUnk_03003DC0
|
|
|
|
thumb_func_start sub_0805E544
|
|
sub_0805E544: @ 0x0805E544
|
|
ldr r1, _0805E55C @ =gUnk_03003DC0
|
|
movs r3, #6
|
|
movs r0, #6
|
|
strb r0, [r1]
|
|
ldr r2, _0805E560 @ =gPlayerEntity
|
|
ldrb r1, [r2, #0x11]
|
|
subs r0, #0x16
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
strb r0, [r2, #0x11]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805E55C: .4byte gUnk_03003DC0
|
|
_0805E560: .4byte gPlayerEntity
|
|
|
|
thumb_func_start UnfreezeTime
|
|
UnfreezeTime: @ 0x0805E564
|
|
ldr r1, _0805E57C @ =gUnk_03003DC0
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
ldr r2, _0805E580 @ =gPlayerEntity
|
|
ldrb r1, [r2, #0x11]
|
|
subs r0, #0x10
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x11]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805E57C: .4byte gUnk_03003DC0
|
|
_0805E580: .4byte gPlayerEntity
|
|
|
|
thumb_func_start sub_0805E584
|
|
sub_0805E584: @ 0x0805E584
|
|
push {lr}
|
|
ldrb r2, [r0, #0x11]
|
|
lsrs r3, r2, #4
|
|
movs r1, #0x10
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
orrs r1, r3
|
|
strb r1, [r0, #0x11]
|
|
bl sub_0805E470
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0805E59C
|
|
sub_0805E59C: @ 0x0805E59C
|
|
ldr r1, _0805E5A4 @ =gUnk_03003DC0
|
|
movs r0, #6
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805E5A4: .4byte gUnk_03003DC0
|
|
|
|
thumb_func_start sub_0805E5A8
|
|
sub_0805E5A8: @ 0x0805E5A8
|
|
ldr r1, _0805E5B0 @ =gUnk_03003DC0
|
|
movs r0, #7
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805E5B0: .4byte gUnk_03003DC0
|
|
|
|
thumb_func_start sub_0805E5B4
|
|
sub_0805E5B4: @ 0x0805E5B4
|
|
ldr r1, _0805E5BC @ =gUnk_03003DC0
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805E5BC: .4byte gUnk_03003DC0
|
|
|
|
thumb_func_start sub_0805E5C0
|
|
sub_0805E5C0: @ 0x0805E5C0
|
|
push {lr}
|
|
ldr r0, _0805E5F0 @ =gRoomVars
|
|
ldrb r1, [r0, #4]
|
|
movs r2, #0
|
|
strb r1, [r0, #5]
|
|
strb r2, [r0, #4]
|
|
bl sub_0805ED30
|
|
bl sub_0805E428
|
|
bl ClearHitboxList
|
|
bl sub_0806F0A4
|
|
ldr r1, _0805E5F4 @ =gUnk_03005F40
|
|
movs r0, #0
|
|
bl _call_via_r1
|
|
bl ClearAllDeletedEntities
|
|
bl sub_0805EE88
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0805E5F0: .4byte gRoomVars
|
|
_0805E5F4: .4byte gUnk_03005F40
|
|
|
|
thumb_func_start sub_0805E5F8
|
|
sub_0805E5F8: @ 0x0805E5F8
|
|
push {lr}
|
|
ldr r1, _0805E608 @ =gUnk_03005F40
|
|
movs r0, #1
|
|
bl _call_via_r1
|
|
bl ClearAllDeletedEntities
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0805E608: .4byte gUnk_03005F40
|
|
|
|
thumb_func_start EraseAllEntities
|
|
EraseAllEntities: @ 0x0805E60C
|
|
push {lr}
|
|
bl DeleteAllEntities
|
|
ldr r0, _0805E654 @ =gUnk_03003DC0
|
|
movs r1, #0xc
|
|
bl MemClear
|
|
ldr r0, _0805E658 @ =gPlayerEntity
|
|
movs r1, #0xaa
|
|
lsls r1, r1, #6
|
|
bl MemClear
|
|
ldr r0, _0805E65C @ =gUnk_02033290
|
|
movs r1, #0x80
|
|
lsls r1, r1, #4
|
|
bl MemClear
|
|
bl sub_0805E98C
|
|
ldr r0, _0805E660 @ =gEntCount
|
|
movs r1, #0
|
|
strb r1, [r0]
|
|
ldr r0, _0805E664 @ =gManagerCount
|
|
strb r1, [r0]
|
|
ldr r1, _0805E668 @ =gUnk_03000000
|
|
ldr r2, _0805E66C @ =0x00000427
|
|
adds r0, r1, r2
|
|
movs r2, #1
|
|
strb r2, [r0]
|
|
ldr r3, _0805E670 @ =0x00000426
|
|
adds r0, r1, r3
|
|
strb r2, [r0]
|
|
ldr r0, _0805E674 @ =0x0000042E
|
|
adds r1, r1, r0
|
|
strb r2, [r1]
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0805E654: .4byte gUnk_03003DC0
|
|
_0805E658: .4byte gPlayerEntity
|
|
_0805E65C: .4byte gUnk_02033290
|
|
_0805E660: .4byte gEntCount
|
|
_0805E664: .4byte gManagerCount
|
|
_0805E668: .4byte gUnk_03000000
|
|
_0805E66C: .4byte 0x00000427
|
|
_0805E670: .4byte 0x00000426
|
|
_0805E674: .4byte 0x0000042E
|