3000 lines
49 KiB
ArmAsm
3000 lines
49 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8129B14
|
|
sub_8129B14: @ 8129B14
|
|
push {r4,lr}
|
|
ldr r4, _08129B60 @ =gUnknown_203B0E4
|
|
ldr r0, _08129B64 @ =0x00002168
|
|
bl Alloc
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
beq _08129B70
|
|
bl sub_812AE70
|
|
cmp r0, 0
|
|
beq _08129B70
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, _08129B68 @ =gUnknown_845AA84
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
ldr r0, _08129B6C @ =gUnknown_845AA94
|
|
bl InitWindows
|
|
bl ResetTempTileDataBuffers
|
|
bl sub_812AD50
|
|
ldr r0, [r4]
|
|
bl sub_8129BB8
|
|
bl sub_8129BC4
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8129C34
|
|
movs r0, 0x1
|
|
b _08129B72
|
|
.align 2, 0
|
|
_08129B60: .4byte gUnknown_203B0E4
|
|
_08129B64: .4byte 0x00002168
|
|
_08129B68: .4byte gUnknown_845AA84
|
|
_08129B6C: .4byte gUnknown_845AA94
|
|
_08129B70:
|
|
movs r0, 0
|
|
_08129B72:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129B14
|
|
|
|
thumb_func_start sub_8129B78
|
|
sub_8129B78: @ 8129B78
|
|
push {lr}
|
|
movs r0, 0
|
|
bl sub_8129C8C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129B78
|
|
|
|
thumb_func_start sub_8129B88
|
|
sub_8129B88: @ 8129B88
|
|
push {r4,lr}
|
|
bl sub_812AEB0
|
|
ldr r4, _08129BB0 @ =gUnknown_203B0E4
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08129B9E
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_08129B9E:
|
|
bl FreeAllWindowBuffers
|
|
ldr r1, _08129BB4 @ =gScanlineEffect
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08129BB0: .4byte gUnknown_203B0E4
|
|
_08129BB4: .4byte gScanlineEffect
|
|
thumb_func_end sub_8129B88
|
|
|
|
thumb_func_start sub_8129BB8
|
|
sub_8129BB8: @ 8129BB8
|
|
movs r2, 0
|
|
movs r1, 0xFF
|
|
strh r1, [r0, 0x18]
|
|
strh r1, [r0, 0x1E]
|
|
strh r2, [r0, 0x1A]
|
|
bx lr
|
|
thumb_func_end sub_8129BB8
|
|
|
|
thumb_func_start sub_8129BC4
|
|
sub_8129BC4: @ 8129BC4
|
|
push {r4,r5,lr}
|
|
ldr r1, _08129BF4 @ =gUnknown_203B0E4
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
beq _08129BEC
|
|
movs r2, 0
|
|
adds r4, r1, 0
|
|
ldr r5, _08129BF8 @ =sub_812A420
|
|
movs r3, 0
|
|
_08129BD6:
|
|
ldr r0, [r4]
|
|
lsls r1, r2, 3
|
|
adds r0, r1
|
|
str r5, [r0]
|
|
strb r3, [r0, 0x4]
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
strb r3, [r0, 0x5]
|
|
adds r2, 0x1
|
|
cmp r2, 0x2
|
|
ble _08129BD6
|
|
_08129BEC:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08129BF4: .4byte gUnknown_203B0E4
|
|
_08129BF8: .4byte sub_812A420
|
|
thumb_func_end sub_8129BC4
|
|
|
|
thumb_func_start sub_8129BFC
|
|
sub_8129BFC: @ 8129BFC
|
|
push {r4-r6,lr}
|
|
ldr r1, _08129C30 @ =gUnknown_203B0E4
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
beq _08129C2A
|
|
movs r5, 0
|
|
adds r6, r1, 0
|
|
_08129C0A:
|
|
ldr r0, [r6]
|
|
lsls r4, r5, 3
|
|
adds r1, r0, r4
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _08129C24
|
|
adds r0, r1, 0x5
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
ldr r1, [r6]
|
|
adds r1, r4
|
|
strb r0, [r1, 0x4]
|
|
_08129C24:
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
ble _08129C0A
|
|
_08129C2A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08129C30: .4byte gUnknown_203B0E4
|
|
thumb_func_end sub_8129BFC
|
|
|
|
thumb_func_start sub_8129C34
|
|
sub_8129C34: @ 8129C34
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
lsls r1, 24
|
|
ldr r3, _08129C70 @ =gUnknown_203B0E4
|
|
ldr r0, [r3]
|
|
lsrs r1, 21
|
|
adds r0, r1
|
|
ldr r2, _08129C74 @ =sub_812A420
|
|
str r2, [r0]
|
|
movs r4, 0
|
|
adds r5, r3, 0
|
|
adds r3, r1, 0
|
|
mov r12, r4
|
|
ldr r1, _08129C78 @ =gUnknown_845AABC
|
|
movs r7, 0x1
|
|
adds r2, r1, 0x4
|
|
_08129C56:
|
|
ldrh r0, [r1]
|
|
cmp r0, r6
|
|
bne _08129C7C
|
|
ldr r1, [r5]
|
|
adds r1, r3
|
|
ldr r0, [r2]
|
|
str r0, [r1]
|
|
strb r7, [r1, 0x4]
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
mov r1, r12
|
|
strb r1, [r0, 0x5]
|
|
b _08129C86
|
|
.align 2, 0
|
|
_08129C70: .4byte gUnknown_203B0E4
|
|
_08129C74: .4byte sub_812A420
|
|
_08129C78: .4byte gUnknown_845AABC
|
|
_08129C7C:
|
|
adds r1, 0x8
|
|
adds r2, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x14
|
|
bls _08129C56
|
|
_08129C86:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8129C34
|
|
|
|
thumb_func_start sub_8129C8C
|
|
sub_8129C8C: @ 8129C8C
|
|
lsls r0, 24
|
|
ldr r1, _08129C9C @ =gUnknown_203B0E4
|
|
ldr r1, [r1]
|
|
lsrs r0, 21
|
|
adds r1, r0
|
|
ldrb r0, [r1, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_08129C9C: .4byte gUnknown_203B0E4
|
|
thumb_func_end sub_8129C8C
|
|
|
|
thumb_func_start sub_8129CA0
|
|
sub_8129CA0: @ 8129CA0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl FreeTempTileDataBuffersIfPossible
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08129D36
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x6
|
|
bhi _08129D2C
|
|
lsls r0, 2
|
|
ldr r1, _08129CC0 @ =_08129CC4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08129CC0: .4byte _08129CC4
|
|
.align 2, 0
|
|
_08129CC4:
|
|
.4byte _08129CE0
|
|
.4byte _08129CEA
|
|
.4byte _08129CF0
|
|
.4byte _08129CF6
|
|
.4byte _08129CFC
|
|
.4byte _08129D02
|
|
.4byte _08129D14
|
|
_08129CE0:
|
|
bl sub_812AAD4
|
|
bl sub_812AB8C
|
|
b _08129D30
|
|
_08129CEA:
|
|
bl sub_812ABD8
|
|
b _08129D30
|
|
_08129CF0:
|
|
bl sub_812AC08
|
|
b _08129D30
|
|
_08129CF6:
|
|
bl sub_812AC58
|
|
b _08129D30
|
|
_08129CFC:
|
|
bl sub_812AC9C
|
|
b _08129D30
|
|
_08129D02:
|
|
bl sub_812ACC0
|
|
bl sub_812ACEC
|
|
bl sub_812AD20
|
|
bl sub_812AD04
|
|
b _08129D30
|
|
_08129D14:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08129D30
|
|
bl sub_812AEC8
|
|
bl sub_812B048
|
|
bl sub_812B100
|
|
b _08129D30
|
|
_08129D2C:
|
|
movs r0, 0
|
|
b _08129D38
|
|
_08129D30:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
_08129D36:
|
|
movs r0, 0x1
|
|
_08129D38:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129CA0
|
|
|
|
thumb_func_start sub_8129D40
|
|
sub_8129D40: @ 8129D40
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08129D50
|
|
cmp r0, 0x1
|
|
beq _08129D5E
|
|
b _08129D68
|
|
_08129D50:
|
|
bl sub_812AA10
|
|
movs r0, 0x3
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
b _08129D68
|
|
_08129D5E:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _08129D70
|
|
_08129D68:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_08129D70:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129D40
|
|
|
|
thumb_func_start sub_8129D78
|
|
sub_8129D78: @ 8129D78
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08129D88
|
|
cmp r0, 0x1
|
|
beq _08129D96
|
|
b _08129DA0
|
|
_08129D88:
|
|
bl sub_812AA64
|
|
movs r0, 0x3
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
b _08129DA0
|
|
_08129D96:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _08129DA8
|
|
_08129DA0:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_08129DA8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129D78
|
|
|
|
thumb_func_start sub_8129DB0
|
|
sub_8129DB0: @ 8129DB0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x1
|
|
beq _08129DE6
|
|
cmp r0, 0x1
|
|
bgt _08129DC4
|
|
cmp r0, 0
|
|
beq _08129DCA
|
|
b _08129E0C
|
|
_08129DC4:
|
|
cmp r0, 0x2
|
|
beq _08129DF2
|
|
b _08129E0C
|
|
_08129DCA:
|
|
movs r0, 0x1
|
|
bl sub_812AEFC
|
|
bl sub_812A980
|
|
cmp r0, 0
|
|
bne _08129E12
|
|
bl sub_812A804
|
|
movs r0, 0x2
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
b _08129E0C
|
|
_08129DE6:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08129E0C
|
|
b _08129E12
|
|
_08129DF2:
|
|
bl sub_812A9C8
|
|
cmp r0, 0
|
|
bne _08129E12
|
|
bl sub_812AF1C
|
|
movs r0, 0
|
|
bl sub_812AEFC
|
|
bl sub_812B160
|
|
movs r0, 0
|
|
b _08129E14
|
|
_08129E0C:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
_08129E12:
|
|
movs r0, 0x1
|
|
_08129E14:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129DB0
|
|
|
|
thumb_func_start sub_8129E1C
|
|
sub_8129E1C: @ 8129E1C
|
|
push {lr}
|
|
bl sub_812AF1C
|
|
movs r0, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129E1C
|
|
|
|
thumb_func_start sub_8129E28
|
|
sub_8129E28: @ 8129E28
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08129E38
|
|
cmp r0, 0x1
|
|
beq _08129E5C
|
|
b _08129E66
|
|
_08129E38:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_812A578
|
|
movs r0, 0x17
|
|
movs r1, 0xB
|
|
movs r2, 0x1
|
|
bl sub_812A424
|
|
ldr r0, _08129E58 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
b _08129E66
|
|
.align 2, 0
|
|
_08129E58: .4byte gUnknown_203B0E4
|
|
_08129E5C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _08129E6E
|
|
_08129E66:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_08129E6E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129E28
|
|
|
|
thumb_func_start sub_8129E74
|
|
sub_8129E74: @ 8129E74
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08129E84
|
|
cmp r0, 0x1
|
|
beq _08129E94
|
|
b _08129EAA
|
|
_08129E84:
|
|
bl sub_812A6F4
|
|
bl sub_812A51C
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
b _08129EAA
|
|
_08129E94:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08129EB0
|
|
bl sub_812A728
|
|
bl sub_812A544
|
|
movs r0, 0
|
|
b _08129EB2
|
|
_08129EAA:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
_08129EB0:
|
|
movs r0, 0x1
|
|
_08129EB2:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129E74
|
|
|
|
thumb_func_start sub_8129EB8
|
|
sub_8129EB8: @ 8129EB8
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08129ECA
|
|
cmp r0, 0x1
|
|
beq _08129F02
|
|
b _08129F14
|
|
_08129ECA:
|
|
add r1, sp, 0x8
|
|
add r0, sp, 0x4
|
|
bl sub_8129730
|
|
ldr r0, [sp, 0x4]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, [sp, 0x8]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
movs r2, 0
|
|
bl sub_812A74C
|
|
bl sub_8129714
|
|
adds r1, r0, 0
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_812A778
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
b _08129F14
|
|
_08129F02:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08129F1A
|
|
bl sub_812B160
|
|
movs r0, 0
|
|
b _08129F1C
|
|
_08129F14:
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
_08129F1A:
|
|
movs r0, 0x1
|
|
_08129F1C:
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129EB8
|
|
|
|
thumb_func_start sub_8129F24
|
|
sub_8129F24: @ 8129F24
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x1
|
|
beq _08129F80
|
|
cmp r0, 0x1
|
|
bgt _08129F3A
|
|
cmp r0, 0
|
|
beq _08129F44
|
|
b _08129FBA
|
|
_08129F3A:
|
|
cmp r0, 0x2
|
|
beq _08129FA4
|
|
cmp r0, 0x3
|
|
beq _08129FB6
|
|
b _08129FBA
|
|
_08129F44:
|
|
bl sub_8129788
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
bl sub_8129758
|
|
adds r5, r0, 0
|
|
bl StringLength_Multibyte
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
movs r2, 0x66
|
|
bl sub_812A74C
|
|
movs r0, 0x5
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl sub_812A778
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
b _08129FBA
|
|
_08129F80:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08129FC0
|
|
movs r0, 0x1
|
|
movs r1, 0x10
|
|
bl sub_812A578
|
|
ldr r0, _08129FA0 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
b _08129FBA
|
|
.align 2, 0
|
|
_08129FA0: .4byte gUnknown_203B0E4
|
|
_08129FA4:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08129FC0
|
|
movs r0, 0x1
|
|
bl sub_812AF8C
|
|
b _08129FBA
|
|
_08129FB6:
|
|
movs r0, 0
|
|
b _08129FC2
|
|
_08129FBA:
|
|
ldrb r0, [r6]
|
|
adds r0, 0x1
|
|
strb r0, [r6]
|
|
_08129FC0:
|
|
movs r0, 0x1
|
|
_08129FC2:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129F24
|
|
|
|
thumb_func_start sub_8129FCC
|
|
sub_8129FCC: @ 8129FCC
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x1
|
|
beq _0812A028
|
|
cmp r0, 0x1
|
|
bgt _08129FE2
|
|
cmp r0, 0
|
|
beq _08129FEC
|
|
b _0812A062
|
|
_08129FE2:
|
|
cmp r0, 0x2
|
|
beq _0812A048
|
|
cmp r0, 0x3
|
|
beq _0812A05E
|
|
b _0812A062
|
|
_08129FEC:
|
|
bl sub_8129788
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
bl sub_8129758
|
|
adds r5, r0, 0
|
|
bl StringLength_Multibyte
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_812A74C
|
|
movs r0, 0x2
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x3
|
|
movs r3, 0x1
|
|
bl sub_812A778
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
b _0812A062
|
|
_0812A028:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0812A068
|
|
bl sub_812A6F4
|
|
ldr r0, _0812A044 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
b _0812A062
|
|
.align 2, 0
|
|
_0812A044: .4byte gUnknown_203B0E4
|
|
_0812A048:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0812A068
|
|
movs r0, 0
|
|
bl sub_812AF8C
|
|
bl sub_812A728
|
|
b _0812A062
|
|
_0812A05E:
|
|
movs r0, 0
|
|
b _0812A06A
|
|
_0812A062:
|
|
ldrb r0, [r6]
|
|
adds r0, 0x1
|
|
strb r0, [r6]
|
|
_0812A068:
|
|
movs r0, 0x1
|
|
_0812A06A:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8129FCC
|
|
|
|
thumb_func_start sub_812A074
|
|
sub_812A074: @ 812A074
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812A084
|
|
cmp r0, 0x1
|
|
beq _0812A098
|
|
b _0812A0A6
|
|
_0812A084:
|
|
bl sub_812A804
|
|
movs r0, 0x2
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0812A0A6
|
|
_0812A098:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0812A0A6
|
|
movs r0, 0
|
|
b _0812A0A8
|
|
_0812A0A6:
|
|
movs r0, 0x1
|
|
_0812A0A8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A074
|
|
|
|
thumb_func_start sub_812A0B0
|
|
sub_812A0B0: @ 812A0B0
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x4
|
|
bhi _0812A182
|
|
lsls r0, 2
|
|
ldr r1, _0812A0C4 @ =_0812A0C8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0812A0C4: .4byte _0812A0C8
|
|
.align 2, 0
|
|
_0812A0C8:
|
|
.4byte _0812A0DC
|
|
.4byte _0812A108
|
|
.4byte _0812A138
|
|
.4byte _0812A15C
|
|
.4byte _0812A126
|
|
_0812A0DC:
|
|
ldr r0, _0812A104 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrh r5, [r0, 0x1A]
|
|
bl sub_81297C4
|
|
adds r4, r0, 0
|
|
bl sub_81297D0
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_812AA78
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
b _0812A17C
|
|
.align 2, 0
|
|
_0812A104: .4byte gUnknown_203B0E4
|
|
_0812A108:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0
|
|
bne _0812A182
|
|
ldr r0, _0812A12C @ =gUnknown_203B0E4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x1A]
|
|
cmp r0, 0x8
|
|
bhi _0812A130
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1A]
|
|
movs r0, 0x4
|
|
strb r0, [r6]
|
|
_0812A126:
|
|
movs r0, 0
|
|
b _0812A184
|
|
.align 2, 0
|
|
_0812A12C: .4byte gUnknown_203B0E4
|
|
_0812A130:
|
|
strh r2, [r1, 0x1C]
|
|
ldrb r0, [r6]
|
|
adds r0, 0x1
|
|
strb r0, [r6]
|
|
_0812A138:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0x5
|
|
movs r3, 0x11
|
|
bl ScrollWindow
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
bl CopyWindowToVram
|
|
ldr r0, _0812A178 @ =gUnknown_203B0E4
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x1C]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x1C]
|
|
ldrb r0, [r6]
|
|
adds r0, 0x1
|
|
strb r0, [r6]
|
|
_0812A15C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0812A182
|
|
ldr r0, _0812A178 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0x1C]
|
|
cmp r0, 0x2
|
|
bhi _0812A17C
|
|
ldrb r0, [r6]
|
|
subs r0, 0x1
|
|
b _0812A180
|
|
.align 2, 0
|
|
_0812A178: .4byte gUnknown_203B0E4
|
|
_0812A17C:
|
|
ldrb r0, [r6]
|
|
adds r0, 0x1
|
|
_0812A180:
|
|
strb r0, [r6]
|
|
_0812A182:
|
|
movs r0, 0x1
|
|
_0812A184:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A0B0
|
|
|
|
thumb_func_start sub_812A18C
|
|
sub_812A18C: @ 812A18C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812A19C
|
|
cmp r0, 0x1
|
|
beq _0812A1A8
|
|
b _0812A1AE
|
|
_0812A19C:
|
|
bl sub_812AFC0
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0812A1AE
|
|
_0812A1A8:
|
|
bl sub_812AFFC
|
|
b _0812A1B0
|
|
_0812A1AE:
|
|
movs r0, 0x1
|
|
_0812A1B0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A18C
|
|
|
|
thumb_func_start sub_812A1B8
|
|
sub_812A1B8: @ 812A1B8
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812A1C8
|
|
cmp r0, 0x1
|
|
beq _0812A1E8
|
|
b _0812A1F2
|
|
_0812A1C8:
|
|
movs r0, 0x3
|
|
movs r1, 0x10
|
|
bl sub_812A578
|
|
ldr r0, _0812A1E4 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0812A1F2
|
|
.align 2, 0
|
|
_0812A1E4: .4byte gUnknown_203B0E4
|
|
_0812A1E8:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0812A1F4
|
|
_0812A1F2:
|
|
movs r0, 0x1
|
|
_0812A1F4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A1B8
|
|
|
|
thumb_func_start sub_812A1FC
|
|
sub_812A1FC: @ 812A1FC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812A20C
|
|
cmp r0, 0x1
|
|
beq _0812A22C
|
|
b _0812A236
|
|
_0812A20C:
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
bl sub_812A578
|
|
ldr r0, _0812A228 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0812A236
|
|
.align 2, 0
|
|
_0812A228: .4byte gUnknown_203B0E4
|
|
_0812A22C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0812A238
|
|
_0812A236:
|
|
movs r0, 0x1
|
|
_0812A238:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A1FC
|
|
|
|
thumb_func_start sub_812A240
|
|
sub_812A240: @ 812A240
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812A250
|
|
cmp r0, 0x1
|
|
beq _0812A280
|
|
b _0812A28A
|
|
_0812A250:
|
|
bl DynamicPlaceholderTextUtil_Reset
|
|
bl sub_8129814
|
|
adds r1, r0, 0
|
|
movs r0, 0
|
|
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
bl sub_812A578
|
|
ldr r0, _0812A27C @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0812A28A
|
|
.align 2, 0
|
|
_0812A27C: .4byte gUnknown_203B0E4
|
|
_0812A280:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0812A28C
|
|
_0812A28A:
|
|
movs r0, 0x1
|
|
_0812A28C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A240
|
|
|
|
thumb_func_start sub_812A294
|
|
sub_812A294: @ 812A294
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812A2A4
|
|
cmp r0, 0x1
|
|
beq _0812A2D0
|
|
b _0812A2DA
|
|
_0812A2A4:
|
|
movs r0, 0x6
|
|
movs r1, 0
|
|
bl sub_812A578
|
|
movs r0, 0x17
|
|
movs r1, 0xA
|
|
movs r2, 0x1
|
|
bl sub_812A424
|
|
ldr r0, _0812A2CC @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0812A2DA
|
|
.align 2, 0
|
|
_0812A2CC: .4byte gUnknown_203B0E4
|
|
_0812A2D0:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0812A2DC
|
|
_0812A2DA:
|
|
movs r0, 0x1
|
|
_0812A2DC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A294
|
|
|
|
thumb_func_start sub_812A2E4
|
|
sub_812A2E4: @ 812A2E4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812A2F4
|
|
cmp r0, 0x1
|
|
beq _0812A320
|
|
b _0812A32A
|
|
_0812A2F4:
|
|
movs r0, 0x7
|
|
movs r1, 0
|
|
bl sub_812A578
|
|
movs r0, 0x17
|
|
movs r1, 0xA
|
|
movs r2, 0x1
|
|
bl sub_812A424
|
|
ldr r0, _0812A31C @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0812A32A
|
|
.align 2, 0
|
|
_0812A31C: .4byte gUnknown_203B0E4
|
|
_0812A320:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0812A32C
|
|
_0812A32A:
|
|
movs r0, 0x1
|
|
_0812A32C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A2E4
|
|
|
|
thumb_func_start sub_812A334
|
|
sub_812A334: @ 812A334
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812A344
|
|
cmp r0, 0x1
|
|
beq _0812A364
|
|
b _0812A36E
|
|
_0812A344:
|
|
movs r0, 0x8
|
|
movs r1, 0
|
|
bl sub_812A578
|
|
ldr r0, _0812A360 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0812A36E
|
|
.align 2, 0
|
|
_0812A360: .4byte gUnknown_203B0E4
|
|
_0812A364:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0812A370
|
|
_0812A36E:
|
|
movs r0, 0x1
|
|
_0812A370:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A334
|
|
|
|
thumb_func_start sub_812A378
|
|
sub_812A378: @ 812A378
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812A388
|
|
cmp r0, 0x1
|
|
beq _0812A3BC
|
|
b _0812A3C6
|
|
_0812A388:
|
|
bl DynamicPlaceholderTextUtil_Reset
|
|
ldr r0, _0812A3B4 @ =gSaveBlock2Ptr
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
|
|
movs r0, 0x9
|
|
movs r1, 0
|
|
bl sub_812A578
|
|
ldr r0, _0812A3B8 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0812A3C6
|
|
.align 2, 0
|
|
_0812A3B4: .4byte gSaveBlock2Ptr
|
|
_0812A3B8: .4byte gUnknown_203B0E4
|
|
_0812A3BC:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0812A3C8
|
|
_0812A3C6:
|
|
movs r0, 0x1
|
|
_0812A3C8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A378
|
|
|
|
thumb_func_start sub_812A3D0
|
|
sub_812A3D0: @ 812A3D0
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812A3E0
|
|
cmp r0, 0x1
|
|
beq _0812A40C
|
|
b _0812A416
|
|
_0812A3E0:
|
|
movs r0, 0xA
|
|
movs r1, 0
|
|
bl sub_812A578
|
|
movs r0, 0x17
|
|
movs r1, 0xA
|
|
movs r2, 0x1
|
|
bl sub_812A424
|
|
ldr r0, _0812A408 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x1E]
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldrb r0, [r4]
|
|
adds r0, 0x1
|
|
strb r0, [r4]
|
|
b _0812A416
|
|
.align 2, 0
|
|
_0812A408: .4byte gUnknown_203B0E4
|
|
_0812A40C:
|
|
bl IsDma3ManagerBusyWithBgCopy
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0812A418
|
|
_0812A416:
|
|
movs r0, 0x1
|
|
_0812A418:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A3D0
|
|
|
|
thumb_func_start sub_812A420
|
|
sub_812A420: @ 812A420
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_812A420
|
|
|
|
thumb_func_start sub_812A424
|
|
sub_812A424: @ 812A424
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
lsls r0, 24
|
|
lsls r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
ldr r4, _0812A4FC @ =0xffffff00
|
|
ldr r2, [sp, 0xC]
|
|
ands r2, r4
|
|
lsrs r0, 16
|
|
ldr r3, _0812A500 @ =0xffff00ff
|
|
ands r2, r3
|
|
orrs r2, r0
|
|
lsrs r1, 8
|
|
ldr r0, _0812A504 @ =0xff00ffff
|
|
ands r2, r0
|
|
orrs r2, r1
|
|
ldr r0, _0812A508 @ =0x00ffffff
|
|
ands r2, r0
|
|
movs r0, 0xC0
|
|
lsls r0, 19
|
|
orrs r2, r0
|
|
str r2, [sp, 0xC]
|
|
ldr r0, [sp, 0x10]
|
|
ands r0, r4
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
ands r0, r3
|
|
movs r1, 0xE0
|
|
lsls r1, 4
|
|
orrs r0, r1
|
|
ldr r1, _0812A50C @ =0x0000ffff
|
|
ands r0, r1
|
|
movs r1, 0xA4
|
|
lsls r1, 15
|
|
orrs r0, r1
|
|
str r0, [sp, 0x10]
|
|
add r0, sp, 0xC
|
|
bl AddWindow
|
|
adds r1, r0, 0
|
|
ldr r6, _0812A510 @ =gUnknown_203B0E4
|
|
ldr r0, [r6]
|
|
movs r7, 0
|
|
strh r1, [r0, 0x18]
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xFF
|
|
beq _0812A4F0
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x18]
|
|
bl PutWindowTilemap
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x18]
|
|
ldr r2, _0812A514 @ =gText_Yes
|
|
movs r5, 0x2
|
|
str r5, [sp]
|
|
movs r4, 0xFF
|
|
str r4, [sp, 0x4]
|
|
str r7, [sp, 0x8]
|
|
movs r1, 0x2
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x18]
|
|
ldr r2, _0812A518 @ =gText_No
|
|
movs r1, 0x10
|
|
str r1, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r7, [sp, 0x8]
|
|
movs r1, 0x2
|
|
movs r3, 0x8
|
|
bl AddTextPrinterParameterized
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x18]
|
|
movs r1, 0x1
|
|
movs r2, 0xD
|
|
bl DrawTextBorderOuter
|
|
ldr r0, [r6]
|
|
ldrb r0, [r0, 0x18]
|
|
movs r1, 0xE
|
|
str r1, [sp]
|
|
str r5, [sp, 0x4]
|
|
mov r1, r8
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl Menu_InitCursor
|
|
_0812A4F0:
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812A4FC: .4byte 0xffffff00
|
|
_0812A500: .4byte 0xffff00ff
|
|
_0812A504: .4byte 0xff00ffff
|
|
_0812A508: .4byte 0x00ffffff
|
|
_0812A50C: .4byte 0x0000ffff
|
|
_0812A510: .4byte gUnknown_203B0E4
|
|
_0812A514: .4byte gText_Yes
|
|
_0812A518: .4byte gText_No
|
|
thumb_func_end sub_812A424
|
|
|
|
thumb_func_start sub_812A51C
|
|
sub_812A51C: @ 812A51C
|
|
push {r4,lr}
|
|
ldr r4, _0812A540 @ =gUnknown_203B0E4
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0xFF
|
|
beq _0812A53A
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl ClearStdWindowAndFrameToTransparent
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x18]
|
|
bl ClearWindowTilemap
|
|
_0812A53A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812A540: .4byte gUnknown_203B0E4
|
|
thumb_func_end sub_812A51C
|
|
|
|
thumb_func_start sub_812A544
|
|
sub_812A544: @ 812A544
|
|
push {r4,lr}
|
|
ldr r4, _0812A564 @ =gUnknown_203B0E4
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, 0x18]
|
|
cmp r0, 0xFF
|
|
beq _0812A55E
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl RemoveWindow
|
|
ldr r1, [r4]
|
|
movs r0, 0xFF
|
|
strh r0, [r1, 0x18]
|
|
_0812A55E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812A564: .4byte gUnknown_203B0E4
|
|
thumb_func_end sub_812A544
|
|
|
|
thumb_func_start sub_812A568
|
|
sub_812A568: @ 812A568
|
|
push {lr}
|
|
bl Menu_ProcessInput
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A568
|
|
|
|
thumb_func_start sub_812A578
|
|
sub_812A578: @ 812A578
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x1C
|
|
adds r7, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r9, r1
|
|
ldr r1, _0812A624 @ =0xffffff00
|
|
ldr r3, [sp, 0x14]
|
|
ands r3, r1
|
|
ldr r2, _0812A628 @ =0xffff00ff
|
|
ands r3, r2
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
orrs r3, r0
|
|
ldr r0, _0812A62C @ =0xff00ffff
|
|
ands r3, r0
|
|
movs r0, 0x80
|
|
lsls r0, 13
|
|
orrs r3, r0
|
|
ldr r5, _0812A630 @ =0x00ffffff
|
|
ands r3, r5
|
|
movs r0, 0xA8
|
|
lsls r0, 21
|
|
orrs r3, r0
|
|
str r3, [sp, 0x14]
|
|
ldr r0, [sp, 0x18]
|
|
ands r0, r1
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
ands r0, r2
|
|
movs r1, 0xE0
|
|
lsls r1, 4
|
|
orrs r0, r1
|
|
ldr r1, _0812A634 @ =0x0000ffff
|
|
ands r0, r1
|
|
movs r1, 0xD4
|
|
lsls r1, 15
|
|
orrs r0, r1
|
|
str r0, [sp, 0x18]
|
|
ldr r1, _0812A638 @ =gUnknown_845AB64
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, 0xA]
|
|
cmp r0, 0
|
|
beq _0812A5F8
|
|
lsls r0, r3, 16
|
|
movs r1, 0xF9
|
|
lsls r1, 24
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
ands r2, r3
|
|
orrs r2, r0
|
|
lsrs r1, r2, 24
|
|
adds r1, 0x7
|
|
lsls r1, 24
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
str r0, [sp, 0x14]
|
|
_0812A5F8:
|
|
add r0, sp, 0x14
|
|
bl AddWindow
|
|
ldr r5, _0812A63C @ =gUnknown_203B0E4
|
|
ldr r1, [r5]
|
|
strh r0, [r1, 0x1E]
|
|
ldrh r0, [r1, 0x1E]
|
|
mov r8, r0
|
|
cmp r0, 0xFF
|
|
beq _0812A6E2
|
|
ldrb r0, [r4, 0x9]
|
|
cmp r0, 0
|
|
beq _0812A640
|
|
adds r0, r1, 0
|
|
adds r0, 0x22
|
|
ldr r1, [r4]
|
|
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
|
|
ldr r0, [r5]
|
|
adds r6, r0, 0
|
|
adds r6, 0x22
|
|
b _0812A642
|
|
.align 2, 0
|
|
_0812A624: .4byte 0xffffff00
|
|
_0812A628: .4byte 0xffff00ff
|
|
_0812A62C: .4byte 0xff00ffff
|
|
_0812A630: .4byte 0x00ffffff
|
|
_0812A634: .4byte 0x0000ffff
|
|
_0812A638: .4byte gUnknown_845AB64
|
|
_0812A63C: .4byte gUnknown_203B0E4
|
|
_0812A640:
|
|
ldr r6, [r4]
|
|
_0812A642:
|
|
mov r0, r9
|
|
lsls r1, r0, 8
|
|
movs r0, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
mov r1, r8
|
|
lsls r0, r1, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r5, 0
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
adds r0, r5, 0
|
|
bl PutWindowTilemap
|
|
ldr r1, _0812A6AC @ =gUnknown_845AB64
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0x1
|
|
bne _0812A6B0
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
movs r2, 0x2
|
|
bl DrawTextBorderInner
|
|
ldrb r3, [r4, 0x5]
|
|
adds r3, 0x8
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4, 0x6]
|
|
adds r0, 0x8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp]
|
|
movs r0, 0xFF
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
ldrb r0, [r4, 0x7]
|
|
str r0, [sp, 0xC]
|
|
ldrb r0, [r4, 0x8]
|
|
str r0, [sp, 0x10]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
adds r2, r6, 0
|
|
bl AddTextPrinterParameterized5
|
|
b _0812A6DA
|
|
.align 2, 0
|
|
_0812A6AC: .4byte gUnknown_845AB64
|
|
_0812A6B0:
|
|
adds r0, r5, 0
|
|
movs r1, 0xA
|
|
movs r2, 0x2
|
|
bl DrawTextBorderOuter
|
|
ldrb r3, [r4, 0x5]
|
|
ldrb r0, [r4, 0x6]
|
|
str r0, [sp]
|
|
movs r0, 0xFF
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
ldrb r0, [r4, 0x7]
|
|
str r0, [sp, 0xC]
|
|
ldrb r0, [r4, 0x8]
|
|
str r0, [sp, 0x10]
|
|
adds r0, r5, 0
|
|
movs r1, 0x2
|
|
adds r2, r6, 0
|
|
bl AddTextPrinterParameterized5
|
|
_0812A6DA:
|
|
ldr r0, _0812A6F0 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
mov r1, r8
|
|
strh r1, [r0, 0x1E]
|
|
_0812A6E2:
|
|
add sp, 0x1C
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812A6F0: .4byte gUnknown_203B0E4
|
|
thumb_func_end sub_812A578
|
|
|
|
thumb_func_start sub_812A6F4
|
|
sub_812A6F4: @ 812A6F4
|
|
push {r4,lr}
|
|
ldr r4, _0812A724 @ =gUnknown_203B0E4
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, 0x1E]
|
|
cmp r0, 0xFF
|
|
beq _0812A712
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0
|
|
bl ClearStdWindowAndFrameToTransparent
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x1E]
|
|
bl ClearWindowTilemap
|
|
_0812A712:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812A724: .4byte gUnknown_203B0E4
|
|
thumb_func_end sub_812A6F4
|
|
|
|
thumb_func_start sub_812A728
|
|
sub_812A728: @ 812A728
|
|
push {r4,lr}
|
|
ldr r4, _0812A748 @ =gUnknown_203B0E4
|
|
ldr r0, [r4]
|
|
ldrh r0, [r0, 0x1E]
|
|
cmp r0, 0xFF
|
|
beq _0812A742
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl RemoveWindow
|
|
ldr r1, [r4]
|
|
movs r0, 0xFF
|
|
strh r0, [r1, 0x1E]
|
|
_0812A742:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812A748: .4byte gUnknown_203B0E4
|
|
thumb_func_end sub_812A728
|
|
|
|
thumb_func_start sub_812A74C
|
|
sub_812A74C: @ 812A74C
|
|
push {lr}
|
|
sub sp, 0x8
|
|
adds r3, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
lsls r3, 19
|
|
lsrs r3, 16
|
|
lsls r1, 19
|
|
lsrs r1, 16
|
|
str r1, [sp]
|
|
movs r0, 0xE
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
adds r1, r2, 0
|
|
adds r2, r3, 0
|
|
movs r3, 0x1
|
|
bl FillWindowPixelRect
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812A74C
|
|
|
|
thumb_func_start sub_812A778
|
|
sub_812A778: @ 812A778
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x34
|
|
mov r10, r1
|
|
ldr r1, [sp, 0x54]
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
mov r9, r5
|
|
lsls r2, 24
|
|
lsrs r4, r2, 24
|
|
mov r8, r4
|
|
lsls r3, 24
|
|
lsrs r7, r3, 24
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
cmp r4, 0
|
|
beq _0812A7B4
|
|
bl sub_81297DC
|
|
adds r1, r0, 0
|
|
subs r1, r5
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_812A74C
|
|
_0812A7B4:
|
|
add r0, sp, 0xC
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
strb r7, [r0, 0x1]
|
|
strb r6, [r0, 0x2]
|
|
add r4, sp, 0x10
|
|
movs r0, 0xFC
|
|
strb r0, [r4]
|
|
movs r0, 0x14
|
|
strb r0, [r4, 0x1]
|
|
movs r0, 0x8
|
|
strb r0, [r4, 0x2]
|
|
mov r0, sp
|
|
adds r0, 0x13
|
|
mov r1, r10
|
|
bl StringCopy
|
|
mov r0, r9
|
|
lsls r2, r0, 27
|
|
lsrs r2, 24
|
|
add r1, sp, 0xC
|
|
str r1, [sp]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r3, 0x1
|
|
bl AddTextPrinterParameterized3
|
|
add sp, 0x34
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812A778
|
|
|
|
thumb_func_start sub_812A804
|
|
sub_812A804: @ 812A804
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4C
|
|
movs r0, 0x2
|
|
movs r1, 0xFF
|
|
bl FillWindowPixelBuffer
|
|
bl GetCurrentKeyboardPage
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
add r1, sp, 0xC
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0xE
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0xD
|
|
strb r0, [r1, 0x2]
|
|
cmp r2, 0x3
|
|
beq _0812A8A0
|
|
add r1, sp, 0x10
|
|
movs r0, 0xFC
|
|
strb r0, [r1]
|
|
movs r0, 0x14
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x8
|
|
strb r0, [r1, 0x2]
|
|
str r0, [sp, 0x40]
|
|
str r1, [sp, 0x44]
|
|
cmp r2, 0x2
|
|
bne _0812A84C
|
|
movs r1, 0x6
|
|
str r1, [sp, 0x40]
|
|
_0812A84C:
|
|
movs r7, 0
|
|
movs r6, 0
|
|
lsls r0, r2, 2
|
|
ldr r1, _0812A89C @ =sUnionRoomKeyboardText
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
adds r4, r0, r1
|
|
ldr r0, [sp, 0x40]
|
|
lsls r5, r0, 24
|
|
_0812A85E:
|
|
ldr r1, [r4]
|
|
cmp r1, 0
|
|
bne _0812A866
|
|
b _0812A96C
|
|
_0812A866:
|
|
mov r0, sp
|
|
adds r0, 0x13
|
|
bl StringCopy
|
|
lsls r3, r6, 24
|
|
lsrs r3, 24
|
|
add r1, sp, 0xC
|
|
str r1, [sp]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x4]
|
|
ldr r0, [sp, 0x44]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
lsrs r2, r5, 24
|
|
bl AddTextPrinterParameterized3
|
|
adds r4, 0x4
|
|
adds r7, 0x1
|
|
adds r0, r6, 0
|
|
adds r0, 0xC
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
cmp r7, 0x9
|
|
ble _0812A85E
|
|
b _0812A96C
|
|
.align 2, 0
|
|
_0812A89C: .4byte sUnionRoomKeyboardText
|
|
_0812A8A0:
|
|
movs r1, 0x4
|
|
str r1, [sp, 0x40]
|
|
movs r7, 0
|
|
movs r6, 0
|
|
_0812A8A8:
|
|
adds r0, r7, 0
|
|
bl sub_81294B0
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl GetStringWidth
|
|
cmp r0, 0x28
|
|
bgt _0812A8E6
|
|
lsls r3, r6, 24
|
|
lsrs r3, 24
|
|
add r4, sp, 0xC
|
|
str r4, [sp]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r4, 0x80
|
|
lsls r4, 19
|
|
lsrs r2, r4, 24
|
|
bl AddTextPrinterParameterized3
|
|
adds r0, r7, 0x1
|
|
str r0, [sp, 0x48]
|
|
adds r6, 0xC
|
|
mov r10, r6
|
|
b _0812A960
|
|
_0812A8E6:
|
|
adds r0, r5, 0
|
|
bl StringLength_Multibyte
|
|
adds r4, r0, 0
|
|
mov r1, sp
|
|
adds r1, 0x10
|
|
str r1, [sp, 0x44]
|
|
ldr r0, [sp, 0x40]
|
|
lsls r0, 24
|
|
mov r8, r0
|
|
lsls r1, r6, 24
|
|
mov r9, r1
|
|
adds r0, r7, 0x1
|
|
str r0, [sp, 0x48]
|
|
adds r6, 0xC
|
|
mov r10, r6
|
|
ldr r7, [sp, 0x40]
|
|
adds r7, 0x23
|
|
ldr r6, [sp, 0x44]
|
|
_0812A90C:
|
|
subs r4, 0x1
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl StringCopyN_Multibyte
|
|
movs r0, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl GetStringWidth
|
|
cmp r0, 0x23
|
|
bgt _0812A90C
|
|
mov r1, r8
|
|
lsrs r2, r1, 24
|
|
mov r0, r9
|
|
lsrs r4, r0, 24
|
|
add r1, sp, 0xC
|
|
str r1, [sp]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x4]
|
|
ldr r1, [sp, 0x44]
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
adds r3, r4, 0
|
|
bl AddTextPrinterParameterized3
|
|
adds r2, r7, 0
|
|
add r0, sp, 0xC
|
|
str r0, [sp]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [sp, 0x4]
|
|
ldr r0, _0812A97C @ =gUnknown_845ABE8
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
adds r3, r4, 0
|
|
bl AddTextPrinterParameterized3
|
|
_0812A960:
|
|
ldr r7, [sp, 0x48]
|
|
mov r4, r10
|
|
lsls r0, r4, 16
|
|
lsrs r6, r0, 16
|
|
cmp r7, 0x9
|
|
ble _0812A8A8
|
|
_0812A96C:
|
|
add sp, 0x4C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812A97C: .4byte gUnknown_845ABE8
|
|
thumb_func_end sub_812A804
|
|
|
|
thumb_func_start sub_812A980
|
|
sub_812A980: @ 812A980
|
|
push {r4,lr}
|
|
ldr r1, _0812A9A4 @ =gUnknown_203B0E4
|
|
ldr r2, [r1]
|
|
ldrh r3, [r2, 0x20]
|
|
movs r4, 0x20
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0x37
|
|
bgt _0812A9B4
|
|
adds r0, r3, 0
|
|
adds r0, 0xC
|
|
strh r0, [r2, 0x20]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x37
|
|
ble _0812A9A8
|
|
movs r0, 0x38
|
|
strh r0, [r2, 0x20]
|
|
b _0812A9B4
|
|
.align 2, 0
|
|
_0812A9A4: .4byte gUnknown_203B0E4
|
|
_0812A9A8:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r2, r1]
|
|
bl sub_812ADA0
|
|
movs r0, 0x1
|
|
b _0812A9C0
|
|
_0812A9B4:
|
|
ldr r0, [r1]
|
|
movs r4, 0x20
|
|
ldrsh r0, [r0, r4]
|
|
bl sub_812ADF8
|
|
movs r0, 0
|
|
_0812A9C0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A980
|
|
|
|
thumb_func_start sub_812A9C8
|
|
sub_812A9C8: @ 812A9C8
|
|
push {r4,lr}
|
|
ldr r1, _0812A9EC @ =gUnknown_203B0E4
|
|
ldr r2, [r1]
|
|
ldrh r3, [r2, 0x20]
|
|
movs r4, 0x20
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0
|
|
ble _0812A9FC
|
|
adds r0, r3, 0
|
|
subs r0, 0xC
|
|
strh r0, [r2, 0x20]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _0812A9F0
|
|
movs r0, 0
|
|
strh r0, [r2, 0x20]
|
|
b _0812A9FC
|
|
.align 2, 0
|
|
_0812A9EC: .4byte gUnknown_203B0E4
|
|
_0812A9F0:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r2, r1]
|
|
bl sub_812ADA0
|
|
movs r0, 0x1
|
|
b _0812AA08
|
|
_0812A9FC:
|
|
ldr r0, [r1]
|
|
movs r4, 0x20
|
|
ldrsh r0, [r0, r4]
|
|
bl sub_812ADF8
|
|
movs r0, 0
|
|
_0812AA08:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812A9C8
|
|
|
|
thumb_func_start sub_812AA10
|
|
sub_812AA10: @ 812AA10
|
|
push {lr}
|
|
sub sp, 0xC
|
|
movs r0, 0x3
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
movs r2, 0xD
|
|
bl DrawTextBorderOuter
|
|
ldr r0, _0812AA60 @ =gUnknown_845ABEC
|
|
str r0, [sp]
|
|
movs r0, 0x3
|
|
movs r1, 0x2
|
|
movs r2, 0xE
|
|
movs r3, 0x5
|
|
bl UnionRoomAndTradeMenuPrintOptions
|
|
bl GetCurrentKeyboardPage
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0xE
|
|
str r1, [sp]
|
|
movs r1, 0x5
|
|
str r1, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl Menu_InitCursor
|
|
movs r0, 0x3
|
|
bl PutWindowTilemap
|
|
add sp, 0xC
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AA60: .4byte gUnknown_845ABEC
|
|
thumb_func_end sub_812AA10
|
|
|
|
thumb_func_start sub_812AA64
|
|
sub_812AA64: @ 812AA64
|
|
push {lr}
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
bl ClearStdWindowAndFrameToTransparent
|
|
movs r0, 0x3
|
|
bl ClearWindowTilemap
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812AA64
|
|
|
|
thumb_func_start sub_812AA78
|
|
sub_812AA78: @ 812AA78
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
adds r5, r1, 0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r2, 24
|
|
add r3, sp, 0xC
|
|
movs r1, 0x1
|
|
strb r1, [r3]
|
|
lsrs r2, 23
|
|
adds r1, r2, 0x2
|
|
strb r1, [r3, 0x1]
|
|
adds r1, r3, 0
|
|
adds r2, 0x3
|
|
strb r2, [r1, 0x2]
|
|
lsls r4, r0, 4
|
|
subs r4, r0
|
|
lsls r3, r4, 16
|
|
lsrs r3, 16
|
|
movs r0, 0xA8
|
|
str r0, [sp]
|
|
movs r0, 0xF
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
movs r2, 0
|
|
bl FillWindowPixelRect
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
add r0, sp, 0xC
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
adds r3, r4, 0
|
|
bl AddTextPrinterParameterized3
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812AA78
|
|
|
|
thumb_func_start sub_812AAD4
|
|
sub_812AAD4: @ 812AAD4
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r1, 0xE0
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, _0812AB88 @ =0x000040f0
|
|
movs r0, 0x40
|
|
bl SetGpuReg
|
|
movs r0, 0x44
|
|
movs r1, 0x90
|
|
bl SetGpuReg
|
|
movs r0, 0x48
|
|
movs r1, 0x3D
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
movs r1, 0x3F
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AB88: .4byte 0x000040f0
|
|
thumb_func_end sub_812AAD4
|
|
|
|
thumb_func_start sub_812AB8C
|
|
sub_812AB8C: @ 812AB8C
|
|
push {r4,lr}
|
|
ldr r4, _0812ABC8 @ =gUnknown_203B0E4
|
|
ldr r1, [r4]
|
|
movs r0, 0x94
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r0, 0
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
ldr r0, _0812ABCC @ =0x00000928
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
ldr r0, _0812ABD0 @ =0x00001128
|
|
adds r1, r0
|
|
movs r0, 0x3
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
ldr r0, _0812ABD4 @ =0x00001928
|
|
adds r1, r0
|
|
movs r0, 0x2
|
|
bl SetBgTilemapBuffer
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812ABC8: .4byte gUnknown_203B0E4
|
|
_0812ABCC: .4byte 0x00000928
|
|
_0812ABD0: .4byte 0x00001128
|
|
_0812ABD4: .4byte 0x00001928
|
|
thumb_func_end sub_812AB8C
|
|
|
|
thumb_func_start sub_812ABD8
|
|
sub_812ABD8: @ 812ABD8
|
|
push {lr}
|
|
sub sp, 0x8
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
movs r0, 0
|
|
movs r2, 0x20
|
|
movs r3, 0x1
|
|
bl RequestDma3Fill
|
|
movs r0, 0x20
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812ABD8
|
|
|
|
thumb_func_start sub_812AC08
|
|
sub_812AC08: @ 812AC08
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, _0812AC48 @ =gUnknown_8EAA9F0
|
|
movs r1, 0x70
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r0, _0812AC4C @ =gUnknown_845AA24
|
|
movs r1, 0xC0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, _0812AC50 @ =gUnknown_8EAAA10
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl DecompressAndCopyTileDataToVram
|
|
ldr r1, _0812AC54 @ =gUnknown_8EAAA6C
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AC48: .4byte gUnknown_8EAA9F0
|
|
_0812AC4C: .4byte gUnknown_845AA24
|
|
_0812AC50: .4byte gUnknown_8EAAA10
|
|
_0812AC54: .4byte gUnknown_8EAAA6C
|
|
thumb_func_end sub_812AC08
|
|
|
|
thumb_func_start sub_812AC58
|
|
sub_812AC58: @ 812AC58
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, _0812AC90 @ =gUnknown_8EA1700
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, _0812AC94 @ =gUnknown_8EA1720
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl DecompressAndCopyTileDataToVram
|
|
ldr r1, _0812AC98 @ =gUnknown_8EA1958
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl CopyToBgTilemapBuffer
|
|
movs r0, 0x2
|
|
bl CopyBgTilemapBufferToVram
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AC90: .4byte gUnknown_8EA1700
|
|
_0812AC94: .4byte gUnknown_8EA1720
|
|
_0812AC98: .4byte gUnknown_8EA1958
|
|
thumb_func_end sub_812AC58
|
|
|
|
thumb_func_start sub_812AC9C
|
|
sub_812AC9C: @ 812AC9C
|
|
push {lr}
|
|
ldr r0, _0812ACB8 @ =gUnknown_845AA44
|
|
movs r1, 0x80
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, _0812ACBC @ =0x06004020
|
|
movs r0, 0
|
|
movs r2, 0x20
|
|
movs r3, 0x1
|
|
bl RequestDma3Fill
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812ACB8: .4byte gUnknown_845AA44
|
|
_0812ACBC: .4byte 0x06004020
|
|
thumb_func_end sub_812AC9C
|
|
|
|
thumb_func_start sub_812ACC0
|
|
sub_812ACC0: @ 812ACC0
|
|
push {lr}
|
|
ldr r0, _0812ACE8 @ =gUnknown_845AA64
|
|
movs r1, 0xF0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812ACE8: .4byte gUnknown_845AA64
|
|
thumb_func_end sub_812ACC0
|
|
|
|
thumb_func_start sub_812ACEC
|
|
sub_812ACEC: @ 812ACEC
|
|
push {lr}
|
|
movs r0, 0x2
|
|
bl PutWindowTilemap
|
|
bl sub_812A804
|
|
movs r0, 0x2
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812ACEC
|
|
|
|
thumb_func_start sub_812AD04
|
|
sub_812AD04: @ 812AD04
|
|
push {lr}
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812AD04
|
|
|
|
thumb_func_start sub_812AD20
|
|
sub_812AD20: @ 812AD20
|
|
push {lr}
|
|
movs r0, 0x3
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
movs r2, 0xD0
|
|
bl TextWindow_SetUserSelectedFrame
|
|
movs r0, 0x3
|
|
movs r1, 0xA
|
|
movs r2, 0x20
|
|
bl TextWindow_SetStdFrame0_WithPal
|
|
ldr r0, _0812AD4C @ =gTMCaseMainWindowPalette
|
|
movs r1, 0xE0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AD4C: .4byte gTMCaseMainWindowPalette
|
|
thumb_func_end sub_812AD20
|
|
|
|
thumb_func_start sub_812AD50
|
|
sub_812AD50: @ 812AD50
|
|
push {lr}
|
|
sub sp, 0x10
|
|
ldr r0, _0812AD8C @ =0xa2600001
|
|
str r0, [sp, 0x4]
|
|
ldr r0, _0812AD90 @ =0x04000014
|
|
str r0, [sp]
|
|
mov r2, sp
|
|
movs r1, 0
|
|
movs r0, 0x1
|
|
strb r0, [r2, 0x8]
|
|
mov r0, sp
|
|
strb r1, [r0, 0x9]
|
|
ldr r0, _0812AD94 @ =gUnknown_203B0E4
|
|
ldr r0, [r0]
|
|
strh r1, [r0, 0x20]
|
|
str r1, [sp, 0xC]
|
|
add r0, sp, 0xC
|
|
ldr r1, _0812AD98 @ =gScanlineEffectRegBuffers
|
|
ldr r2, _0812AD9C @ =0x010003c0
|
|
bl CpuFastSet
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
bl ScanlineEffect_SetParams
|
|
add sp, 0x10
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AD8C: .4byte 0xa2600001
|
|
_0812AD90: .4byte 0x04000014
|
|
_0812AD94: .4byte gUnknown_203B0E4
|
|
_0812AD98: .4byte gScanlineEffectRegBuffers
|
|
_0812AD9C: .4byte 0x010003c0
|
|
thumb_func_end sub_812AD50
|
|
|
|
thumb_func_start sub_812ADA0
|
|
sub_812ADA0: @ 812ADA0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
ldr r5, _0812ADE8 @ =gScanlineEffect
|
|
ldrb r0, [r5, 0x14]
|
|
lsls r1, r0, 4
|
|
subs r1, r0
|
|
lsls r1, 7
|
|
ldr r4, _0812ADEC @ =gScanlineEffectRegBuffers
|
|
adds r1, r4
|
|
ldr r2, _0812ADF0 @ =0x01000090
|
|
mov r0, sp
|
|
bl CpuSet
|
|
mov r0, sp
|
|
adds r0, 0x2
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldrb r2, [r5, 0x14]
|
|
lsls r1, r2, 4
|
|
subs r1, r2
|
|
lsls r1, 7
|
|
movs r2, 0x90
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
adds r1, r4
|
|
ldr r2, _0812ADF4 @ =0x01000010
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812ADE8: .4byte gScanlineEffect
|
|
_0812ADEC: .4byte gScanlineEffectRegBuffers
|
|
_0812ADF0: .4byte 0x01000090
|
|
_0812ADF4: .4byte 0x01000010
|
|
thumb_func_end sub_812ADA0
|
|
|
|
thumb_func_start sub_812ADF8
|
|
sub_812ADF8: @ 812ADF8
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
mov r0, sp
|
|
strh r4, [r0]
|
|
ldr r5, _0812AE64 @ =gScanlineEffectRegBuffers
|
|
ldr r0, _0812AE68 @ =0x01000090
|
|
mov r9, r0
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
mov r2, r9
|
|
bl CpuSet
|
|
mov r0, sp
|
|
adds r0, 0x2
|
|
movs r6, 0
|
|
strh r6, [r0]
|
|
movs r2, 0x90
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
ldr r2, _0812AE6C @ =0x01000010
|
|
mov r8, r2
|
|
bl CpuSet
|
|
add r0, sp, 0x4
|
|
strh r4, [r0]
|
|
movs r2, 0xF0
|
|
lsls r2, 3
|
|
adds r1, r5, r2
|
|
mov r2, r9
|
|
bl CpuSet
|
|
mov r0, sp
|
|
adds r0, 0x6
|
|
strh r6, [r0]
|
|
movs r1, 0x8A
|
|
lsls r1, 4
|
|
adds r5, r1
|
|
adds r1, r5, 0
|
|
mov r2, r8
|
|
bl CpuSet
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AE64: .4byte gScanlineEffectRegBuffers
|
|
_0812AE68: .4byte 0x01000090
|
|
_0812AE6C: .4byte 0x01000010
|
|
thumb_func_end sub_812ADF8
|
|
|
|
thumb_func_start sub_812AE70
|
|
sub_812AE70: @ 812AE70
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
ldr r4, _0812AE9C @ =gUnknown_845AF58
|
|
_0812AE76:
|
|
adds r0, r4, 0
|
|
bl LoadCompressedSpriteSheet
|
|
adds r4, 0x8
|
|
adds r5, 0x1
|
|
cmp r5, 0x4
|
|
bls _0812AE76
|
|
ldr r0, _0812AEA0 @ =gUnknown_845AF80
|
|
bl LoadSpritePalette
|
|
ldr r4, _0812AEA4 @ =gUnknown_203B0E8
|
|
movs r0, 0x18
|
|
bl Alloc
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
beq _0812AEA8
|
|
movs r0, 0x1
|
|
b _0812AEAA
|
|
.align 2, 0
|
|
_0812AE9C: .4byte gUnknown_845AF58
|
|
_0812AEA0: .4byte gUnknown_845AF80
|
|
_0812AEA4: .4byte gUnknown_203B0E8
|
|
_0812AEA8:
|
|
movs r0, 0
|
|
_0812AEAA:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812AE70
|
|
|
|
thumb_func_start sub_812AEB0
|
|
sub_812AEB0: @ 812AEB0
|
|
push {lr}
|
|
ldr r0, _0812AEC4 @ =gUnknown_203B0E8
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0812AEBE
|
|
bl Free
|
|
_0812AEBE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AEC4: .4byte gUnknown_203B0E8
|
|
thumb_func_end sub_812AEB0
|
|
|
|
thumb_func_start sub_812AEC8
|
|
sub_812AEC8: @ 812AEC8
|
|
push {lr}
|
|
ldr r0, _0812AEF0 @ =gUnknown_845AFC0
|
|
movs r1, 0xA
|
|
movs r2, 0x18
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0812AEF4 @ =gUnknown_203B0E8
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0812AEF8 @ =gSprites
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AEF0: .4byte gUnknown_845AFC0
|
|
_0812AEF4: .4byte gUnknown_203B0E8
|
|
_0812AEF8: .4byte gSprites
|
|
thumb_func_end sub_812AEC8
|
|
|
|
thumb_func_start sub_812AEFC
|
|
sub_812AEFC: @ 812AEFC
|
|
ldr r1, _0812AF18 @ =gUnknown_203B0E8
|
|
ldr r1, [r1]
|
|
ldr r2, [r1]
|
|
adds r2, 0x3E
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
ldrb r3, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0812AF18: .4byte gUnknown_203B0E8
|
|
thumb_func_end sub_812AEFC
|
|
|
|
thumb_func_start sub_812AF1C
|
|
sub_812AF1C: @ 812AF1C
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
bl GetCurrentKeyboardPage
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
mov r5, sp
|
|
adds r5, 0x1
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
bl sub_8129700
|
|
cmp r4, 0x3
|
|
beq _0812AF5C
|
|
ldr r4, _0812AF58 @ =gUnknown_203B0E8
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
ldr r1, [r4]
|
|
ldr r2, [r1]
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
adds r0, 0xA
|
|
strh r0, [r2, 0x20]
|
|
ldr r2, [r1]
|
|
b _0812AF72
|
|
.align 2, 0
|
|
_0812AF58: .4byte gUnknown_203B0E8
|
|
_0812AF5C:
|
|
ldr r4, _0812AF88 @ =gUnknown_203B0E8
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
ldr r2, [r4]
|
|
ldr r1, [r2]
|
|
movs r0, 0x18
|
|
strh r0, [r1, 0x20]
|
|
ldr r2, [r2]
|
|
_0812AF72:
|
|
ldrb r1, [r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, 0x18
|
|
strh r0, [r2, 0x22]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AF88: .4byte gUnknown_203B0E8
|
|
thumb_func_end sub_812AF1C
|
|
|
|
thumb_func_start sub_812AF8C
|
|
sub_812AF8C: @ 812AF8C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 2
|
|
ldr r0, _0812AFB8 @ =gUnknown_845AC14 + 2
|
|
adds r4, r0
|
|
movs r0, 0
|
|
bl IndexOfSpritePaletteTag
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 4
|
|
ldr r0, _0812AFBC @ =0x01010000
|
|
adds r1, r0
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl LoadPalette
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AFB8: .4byte gUnknown_845AC14 + 2
|
|
_0812AFBC: .4byte 0x01010000
|
|
thumb_func_end sub_812AF8C
|
|
|
|
thumb_func_start sub_812AFC0
|
|
sub_812AFC0: @ 812AFC0
|
|
push {lr}
|
|
bl GetCurrentKeyboardPage
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _0812AFE0
|
|
ldr r0, _0812AFDC @ =gUnknown_203B0E8
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
bl StartSpriteAnim
|
|
b _0812AFEC
|
|
.align 2, 0
|
|
_0812AFDC: .4byte gUnknown_203B0E8
|
|
_0812AFE0:
|
|
ldr r0, _0812AFF8 @ =gUnknown_203B0E8
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
movs r1, 0x3
|
|
bl StartSpriteAnim
|
|
_0812AFEC:
|
|
ldr r0, _0812AFF8 @ =gUnknown_203B0E8
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strh r0, [r1, 0x14]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812AFF8: .4byte gUnknown_203B0E8
|
|
thumb_func_end sub_812AFC0
|
|
|
|
thumb_func_start sub_812AFFC
|
|
sub_812AFFC: @ 812AFFC
|
|
push {r4,lr}
|
|
ldr r4, _0812B00C @ =gUnknown_203B0E8
|
|
ldr r1, [r4]
|
|
ldrh r0, [r1, 0x14]
|
|
cmp r0, 0x3
|
|
bls _0812B010
|
|
_0812B008:
|
|
movs r0, 0
|
|
b _0812B042
|
|
.align 2, 0
|
|
_0812B00C: .4byte gUnknown_203B0E8
|
|
_0812B010:
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x14]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x3
|
|
bls _0812B040
|
|
bl GetCurrentKeyboardPage
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _0812B034
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
b _0812B008
|
|
_0812B034:
|
|
ldr r0, [r4]
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
bl StartSpriteAnim
|
|
b _0812B008
|
|
_0812B040:
|
|
movs r0, 0x1
|
|
_0812B042:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812AFFC
|
|
|
|
thumb_func_start sub_812B048
|
|
sub_812B048: @ 812B048
|
|
push {r4,r5,lr}
|
|
ldr r0, _0812B08C @ =gUnknown_845AFE0
|
|
movs r1, 0x4C
|
|
movs r2, 0x98
|
|
movs r3, 0x2
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r5, _0812B090 @ =gUnknown_203B0E8
|
|
ldr r2, [r5]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r4, _0812B094 @ =gSprites
|
|
adds r1, r4
|
|
str r1, [r2, 0x8]
|
|
ldr r0, _0812B098 @ =gUnknown_845AFF8
|
|
movs r1, 0x40
|
|
movs r2, 0x98
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [r5]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
str r1, [r2, 0x4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812B08C: .4byte gUnknown_845AFE0
|
|
_0812B090: .4byte gUnknown_203B0E8
|
|
_0812B094: .4byte gSprites
|
|
_0812B098: .4byte gUnknown_845AFF8
|
|
thumb_func_end sub_812B048
|
|
|
|
thumb_func_start sub_812B09C
|
|
sub_812B09C: @ 812B09C
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_81297DC
|
|
adds r3, r0, 0
|
|
cmp r3, 0xF
|
|
bne _0812B0B8
|
|
adds r0, r4, 0
|
|
adds r0, 0x3E
|
|
ldrb r1, [r0]
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0812B0CC
|
|
_0812B0B8:
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r0, [r2]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r2]
|
|
lsls r0, r3, 3
|
|
adds r0, 0x4C
|
|
strh r0, [r4, 0x20]
|
|
_0812B0CC:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812B09C
|
|
|
|
thumb_func_start sub_812B0D4
|
|
sub_812B0D4: @ 812B0D4
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrh r0, [r1, 0x2E]
|
|
adds r0, 0x1
|
|
movs r2, 0
|
|
strh r0, [r1, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
ble _0812B0FA
|
|
strh r2, [r1, 0x2E]
|
|
ldrh r0, [r1, 0x24]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0x24]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
ble _0812B0FA
|
|
strh r2, [r1, 0x24]
|
|
_0812B0FA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812B0D4
|
|
|
|
thumb_func_start sub_812B100
|
|
sub_812B100: @ 812B100
|
|
push {r4,r5,lr}
|
|
ldr r0, _0812B150 @ =gUnknown_845B050
|
|
movs r1, 0x8
|
|
movs r2, 0x98
|
|
movs r3, 0x3
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r5, _0812B154 @ =gUnknown_203B0E8
|
|
ldr r2, [r5]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r4, _0812B158 @ =gSprites
|
|
adds r1, r4
|
|
str r1, [r2, 0xC]
|
|
ldr r0, _0812B15C @ =gUnknown_845B068
|
|
movs r1, 0x20
|
|
movs r2, 0x98
|
|
movs r3, 0x4
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, [r5]
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r4
|
|
str r1, [r2, 0x10]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812B150: .4byte gUnknown_845B050
|
|
_0812B154: .4byte gUnknown_203B0E8
|
|
_0812B158: .4byte gSprites
|
|
_0812B15C: .4byte gUnknown_845B068
|
|
thumb_func_end sub_812B100
|
|
|
|
thumb_func_start sub_812B160
|
|
sub_812B160: @ 812B160
|
|
push {r4,lr}
|
|
bl GetCurrentKeyboardPage
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _0812B198
|
|
bl sub_8129720
|
|
cmp r0, 0
|
|
beq _0812B1A2
|
|
ldr r3, _0812B194 @ =gUnknown_203B0E8
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x10]
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, 0x10]
|
|
movs r1, 0x3
|
|
bl StartSpriteAnim
|
|
b _0812B1D6
|
|
.align 2, 0
|
|
_0812B194: .4byte gUnknown_203B0E8
|
|
_0812B198:
|
|
bl sub_81297E8
|
|
adds r4, r0, 0
|
|
cmp r4, 0x3
|
|
bne _0812B1B8
|
|
_0812B1A2:
|
|
ldr r0, _0812B1B4 @ =gUnknown_203B0E8
|
|
ldr r0, [r0]
|
|
ldr r1, [r0, 0x10]
|
|
adds r1, 0x3E
|
|
ldrb r0, [r1]
|
|
movs r2, 0x4
|
|
orrs r0, r2
|
|
strb r0, [r1]
|
|
b _0812B1D6
|
|
.align 2, 0
|
|
_0812B1B4: .4byte gUnknown_203B0E8
|
|
_0812B1B8:
|
|
ldr r3, _0812B1DC @ =gUnknown_203B0E8
|
|
ldr r0, [r3]
|
|
ldr r1, [r0, 0x10]
|
|
adds r1, 0x3E
|
|
ldrb r2, [r1]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
ldr r0, [r3]
|
|
ldr r0, [r0, 0x10]
|
|
lsls r1, r4, 24
|
|
lsrs r1, 24
|
|
bl StartSpriteAnim
|
|
_0812B1D6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812B1DC: .4byte gUnknown_203B0E8
|
|
thumb_func_end sub_812B160
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|