mirror of https://github.com/zeldaret/tmc.git
471 lines
8.3 KiB
ArmAsm
471 lines
8.3 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_08055FF4
|
|
sub_08055FF4: @ 0x08055FF4
|
|
push {lr}
|
|
movs r2, #0
|
|
ldr r0, _0805600C @ =gUnk_03000FF0
|
|
ldrh r1, [r0]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0xf
|
|
bne _08056006
|
|
movs r2, #1
|
|
_08056006:
|
|
adds r0, r2, #0
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0805600C: .4byte gUnk_03000FF0
|
|
|
|
thumb_func_start sub_08056010
|
|
sub_08056010: @ 0x08056010
|
|
ldr r1, _0805601C @ =gUnk_03001000
|
|
movs r2, #0
|
|
strb r0, [r1, #2]
|
|
strb r2, [r1, #3]
|
|
strb r2, [r1, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805601C: .4byte gUnk_03001000
|
|
|
|
thumb_func_start sub_08056020
|
|
sub_08056020: @ 0x08056020
|
|
push {r4, lr}
|
|
ldr r2, _08056088 @ =0x04000208
|
|
movs r1, #0
|
|
strh r1, [r2]
|
|
ldr r0, _0805608C @ =0x04000200
|
|
strh r1, [r0]
|
|
ldr r0, _08056090 @ =0x04000004
|
|
strh r1, [r0]
|
|
ldr r0, _08056094 @ =0x04000202
|
|
strh r1, [r0]
|
|
strh r1, [r2]
|
|
ldr r1, _08056098 @ =0x040000B0
|
|
ldrh r2, [r1, #0xa]
|
|
ldr r4, _0805609C @ =0x0000C5FF
|
|
adds r0, r4, #0
|
|
ands r0, r2
|
|
strh r0, [r1, #0xa]
|
|
ldrh r2, [r1, #0xa]
|
|
ldr r3, _080560A0 @ =0x00007FFF
|
|
adds r0, r3, #0
|
|
ands r0, r2
|
|
strh r0, [r1, #0xa]
|
|
ldrh r0, [r1, #0xa]
|
|
adds r1, #0xc
|
|
ldrh r2, [r1, #0xa]
|
|
adds r0, r4, #0
|
|
ands r0, r2
|
|
strh r0, [r1, #0xa]
|
|
ldrh r2, [r1, #0xa]
|
|
adds r0, r3, #0
|
|
ands r0, r2
|
|
strh r0, [r1, #0xa]
|
|
ldrh r0, [r1, #0xa]
|
|
adds r1, #0xc
|
|
ldrh r2, [r1, #0xa]
|
|
adds r0, r4, #0
|
|
ands r0, r2
|
|
strh r0, [r1, #0xa]
|
|
ldrh r2, [r1, #0xa]
|
|
adds r0, r3, #0
|
|
ands r0, r2
|
|
strh r0, [r1, #0xa]
|
|
ldrh r0, [r1, #0xa]
|
|
ldr r0, _080560A4 @ =0x040000D4
|
|
ldrh r1, [r0, #0xa]
|
|
ands r4, r1
|
|
strh r4, [r0, #0xa]
|
|
ldrh r1, [r0, #0xa]
|
|
ands r3, r1
|
|
strh r3, [r0, #0xa]
|
|
ldrh r0, [r0, #0xa]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08056088: .4byte 0x04000208
|
|
_0805608C: .4byte 0x04000200
|
|
_08056090: .4byte 0x04000004
|
|
_08056094: .4byte 0x04000202
|
|
_08056098: .4byte 0x040000B0
|
|
_0805609C: .4byte 0x0000C5FF
|
|
_080560A0: .4byte 0x00007FFF
|
|
_080560A4: .4byte 0x040000D4
|
|
|
|
thumb_func_start sub_080560A8
|
|
sub_080560A8: @ 0x080560A8
|
|
push {lr}
|
|
bl sub_08056020
|
|
movs r0, #0xde
|
|
bl SoftReset
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080560B8
|
|
sub_080560B8: @ 0x080560B8
|
|
push {r4, lr}
|
|
bl sub_08056134
|
|
cmp r0, #0
|
|
bne _080560F8
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x12
|
|
bl sub_0807CF30
|
|
adds r1, r0, #0
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
blt _080560E4
|
|
cmp r1, #0
|
|
ble _080560E4
|
|
cmp r1, #1
|
|
bne _080560E4
|
|
bl sub_08056134
|
|
cmp r0, #0
|
|
bne _080560F8
|
|
_080560E4:
|
|
ldr r0, _08056128 @ =gUnk_08100CD4
|
|
movs r4, #0x80
|
|
lsls r4, r4, #0x12
|
|
adds r1, r4, #0
|
|
movs r2, #0x10
|
|
bl sub_0801D66C
|
|
adds r0, r4, #0
|
|
bl sub_0807CF10
|
|
_080560F8:
|
|
ldr r2, _0805612C @ =gUnk_02000010
|
|
ldr r1, [r2]
|
|
ldr r0, _08056130 @ =0x4D435A33
|
|
eors r1, r0
|
|
rsbs r0, r1, #0
|
|
orrs r0, r1
|
|
lsrs r0, r0, #0x1f
|
|
ldrb r1, [r2, #4]
|
|
cmp r1, #0
|
|
beq _08056112
|
|
cmp r1, #0xc1
|
|
beq _08056112
|
|
movs r0, #1
|
|
_08056112:
|
|
cmp r0, #0
|
|
beq _08056124
|
|
ldr r4, _0805612C @ =gUnk_02000010
|
|
adds r0, r4, #0
|
|
movs r1, #0x20
|
|
bl sub_0801D630
|
|
ldr r0, _08056130 @ =0x4D435A33
|
|
str r0, [r4]
|
|
_08056124:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08056128: .4byte gUnk_08100CD4
|
|
_0805612C: .4byte gUnk_02000010
|
|
_08056130: .4byte 0x4D435A33
|
|
|
|
thumb_func_start sub_08056134
|
|
sub_08056134: @ 0x08056134
|
|
push {lr}
|
|
movs r2, #0x80
|
|
lsls r2, r2, #0x12
|
|
ldr r1, [r2]
|
|
ldr r0, _08056164 @ =0x4D435A33
|
|
cmp r1, r0
|
|
bne _08056160
|
|
ldrb r0, [r2, #4]
|
|
cmp r0, #2
|
|
bhi _08056160
|
|
ldrb r0, [r2, #5]
|
|
cmp r0, #2
|
|
bhi _08056160
|
|
ldrb r0, [r2, #6]
|
|
cmp r0, #2
|
|
bhi _08056160
|
|
ldrb r0, [r2, #7]
|
|
cmp r0, #1
|
|
bne _08056160
|
|
ldrb r0, [r2, #0xe]
|
|
cmp r0, #0
|
|
beq _08056168
|
|
_08056160:
|
|
movs r0, #0
|
|
b _0805616A
|
|
.align 2, 0
|
|
_08056164: .4byte 0x4D435A33
|
|
_08056168:
|
|
movs r0, #1
|
|
_0805616A:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0805616C
|
|
sub_0805616C: @ 0x0805616C
|
|
push {lr}
|
|
ldr r0, _080561E8 @ =0x80040000
|
|
bl PlaySFX
|
|
ldr r0, _080561EC @ =gScreen
|
|
adds r3, r0, #0
|
|
adds r3, #0x6c
|
|
ldrb r2, [r3]
|
|
adds r0, #0x6d
|
|
movs r1, #0
|
|
strb r2, [r0]
|
|
strb r1, [r3]
|
|
ldr r1, _080561F0 @ =0x040000B0
|
|
ldrh r2, [r1, #0xa]
|
|
ldr r0, _080561F4 @ =0x0000C5FF
|
|
ands r0, r2
|
|
strh r0, [r1, #0xa]
|
|
ldrh r2, [r1, #0xa]
|
|
ldr r0, _080561F8 @ =0x00007FFF
|
|
ands r0, r2
|
|
strh r0, [r1, #0xa]
|
|
ldrh r0, [r1, #0xa]
|
|
ldr r0, [r1, #8]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #0x18
|
|
cmp r0, #0
|
|
bge _080561AA
|
|
_080561A2:
|
|
ldr r0, [r1, #8]
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _080561A2
|
|
_080561AA:
|
|
ldr r2, _080561FC @ =0x040000BC
|
|
ldr r0, [r2, #8]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x18
|
|
cmp r0, #0
|
|
bge _080561BE
|
|
_080561B6:
|
|
ldr r0, [r2, #8]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080561B6
|
|
_080561BE:
|
|
ldr r2, _08056200 @ =0x040000C8
|
|
ldr r0, [r2, #8]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x18
|
|
cmp r0, #0
|
|
bge _080561D2
|
|
_080561CA:
|
|
ldr r0, [r2, #8]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080561CA
|
|
_080561D2:
|
|
ldr r2, _08056204 @ =0x040000D4
|
|
ldr r0, [r2, #8]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x18
|
|
cmp r0, #0
|
|
bge _080561E6
|
|
_080561DE:
|
|
ldr r0, [r2, #8]
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080561DE
|
|
_080561E6:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080561E8: .4byte 0x80040000
|
|
_080561EC: .4byte gScreen
|
|
_080561F0: .4byte 0x040000B0
|
|
_080561F4: .4byte 0x0000C5FF
|
|
_080561F8: .4byte 0x00007FFF
|
|
_080561FC: .4byte 0x040000BC
|
|
_08056200: .4byte 0x040000C8
|
|
_08056204: .4byte 0x040000D4
|
|
|
|
thumb_func_start sub_08056208
|
|
sub_08056208: @ 0x08056208
|
|
push {lr}
|
|
ldr r0, _08056224 @ =0x80060000
|
|
bl PlaySFX
|
|
ldr r0, _08056228 @ =gScreen
|
|
adds r3, r0, #0
|
|
adds r3, #0x6d
|
|
ldrb r2, [r3]
|
|
adds r0, #0x6c
|
|
movs r1, #0
|
|
strb r2, [r0]
|
|
strb r1, [r3]
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08056224: .4byte 0x80060000
|
|
_08056228: .4byte gScreen
|
|
|
|
thumb_func_start sub_0805622C
|
|
sub_0805622C: @ 0x0805622C
|
|
ldr r3, _08056248 @ =gScreen
|
|
str r0, [r3, #0x70]
|
|
str r1, [r3, #0x74]
|
|
str r2, [r3, #0x78]
|
|
adds r3, #0x6c
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r3]
|
|
ldr r1, _0805624C @ =gUnk_03003DE4
|
|
ldrb r0, [r1]
|
|
eors r0, r2
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08056248: .4byte gScreen
|
|
_0805624C: .4byte gUnk_03003DE4
|
|
|
|
thumb_func_start sub_08056250
|
|
sub_08056250: @ 0x08056250
|
|
ldr r0, _0805625C @ =gScreen
|
|
adds r0, #0x6c
|
|
movs r1, #0
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0805625C: .4byte gScreen
|
|
|
|
thumb_func_start sub_08056260
|
|
sub_08056260: @ 0x08056260
|
|
push {r4, r5, r6, lr}
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6}
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0x13
|
|
movs r0, #0x80
|
|
strh r0, [r1]
|
|
ldr r1, _080562B8 @ =0x04000132
|
|
ldr r2, _080562BC @ =0x00008304
|
|
adds r0, r2, #0
|
|
strh r0, [r1]
|
|
ldr r6, _080562C0 @ =0x04000208
|
|
movs r0, #0
|
|
mov r8, r0
|
|
strh r0, [r6]
|
|
ldr r5, _080562C4 @ =0x04000200
|
|
ldrh r4, [r5]
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #6
|
|
adds r0, r1, #0
|
|
strh r0, [r5]
|
|
movs r2, #1
|
|
mov sb, r2
|
|
strh r2, [r6]
|
|
bl SoundBiasReset
|
|
svc #3
|
|
bl SoundBiasSet
|
|
mov r0, r8
|
|
strh r0, [r6]
|
|
strh r4, [r5]
|
|
mov r1, sb
|
|
strh r1, [r6]
|
|
ldr r0, _080562C8 @ =gUnk_03001000
|
|
ldrb r1, [r0, #1]
|
|
mov r2, r8
|
|
strb r2, [r0, #1]
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_080562B8: .4byte 0x04000132
|
|
_080562BC: .4byte 0x00008304
|
|
_080562C0: .4byte 0x04000208
|
|
_080562C4: .4byte 0x04000200
|
|
_080562C8: .4byte gUnk_03001000
|
|
|
|
thumb_func_start sub_080562CC
|
|
sub_080562CC: @ 0x080562CC
|
|
push {r4, r5, r6, lr}
|
|
ldr r6, _080562FC @ =gRoomControls
|
|
movs r4, #0xa
|
|
ldrsh r5, [r6, r4]
|
|
ldrh r4, [r6, #6]
|
|
subs r5, r5, r4
|
|
subs r5, r5, r0
|
|
adds r5, #0xf0
|
|
movs r4, #0xc
|
|
ldrsh r0, [r6, r4]
|
|
ldrh r4, [r6, #8]
|
|
subs r0, r0, r4
|
|
subs r0, r0, r1
|
|
adds r0, #0xa0
|
|
adds r2, #0xf0
|
|
adds r3, #0xa0
|
|
movs r1, #0
|
|
cmp r5, r2
|
|
bhs _080562F8
|
|
cmp r0, r3
|
|
bhs _080562F8
|
|
movs r1, #1
|
|
_080562F8:
|
|
adds r0, r1, #0
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_080562FC: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_08056300
|
|
sub_08056300: @ 0x08056300
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
b _0805631C
|
|
_08056306:
|
|
ldrh r0, [r4, #2]
|
|
ldrh r1, [r4, #4]
|
|
ldrh r2, [r4, #6]
|
|
ldrh r3, [r4, #8]
|
|
bl sub_080562CC
|
|
cmp r0, #0
|
|
beq _0805631A
|
|
ldrh r0, [r4]
|
|
b _08056324
|
|
_0805631A:
|
|
adds r4, #0xa
|
|
_0805631C:
|
|
ldrh r0, [r4]
|
|
cmp r0, #0xff
|
|
bne _08056306
|
|
movs r0, #0xff
|
|
_08056324:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08056328
|
|
sub_08056328: @ 0x08056328
|
|
push {lr}
|
|
bl sub_0805E780
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08056330
|
|
sub_08056330: @ 0x08056330
|
|
push {lr}
|
|
bl sub_0805E780
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08056338
|
|
sub_08056338: @ 0x08056338
|
|
push {lr}
|
|
movs r2, #1
|
|
rsbs r2, r2, #0
|
|
ldr r0, _08056358 @ =gTextBox
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08056354
|
|
ldr r1, _0805635C @ =gUnk_02000040
|
|
ldrb r0, [r1]
|
|
cmp r0, #3
|
|
bne _08056354
|
|
ldrb r2, [r1, #1]
|
|
_08056354:
|
|
adds r0, r2, #0
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08056358: .4byte gTextBox
|
|
_0805635C: .4byte gUnk_02000040
|