pokefirered/asm/clear_save_data_screen.s
2019-06-17 10:21:32 -04:00

475 lines
7.9 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80F5574
sub_80F5574: @ 80F5574
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80F5574
thumb_func_start sub_80F558C
sub_80F558C: @ 80F558C
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_80F558C
thumb_func_start sub_80F55A0
sub_80F55A0: @ 80F55A0
push {r4,lr}
ldr r4, _080F55D0 @ =gUnknown_203AB54
movs r0, 0x4
bl AllocZeroed
str r0, [r4]
movs r1, 0
strb r1, [r0, 0x1]
ldr r0, [r4]
strb r1, [r0]
ldr r0, [r4]
strb r1, [r0, 0x2]
bl sub_80F580C
ldr r0, _080F55D4 @ =sub_80F55DC
movs r1, 0
bl CreateTask
ldr r0, _080F55D8 @ =sub_80F5574
bl SetMainCallback2
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F55D0: .4byte gUnknown_203AB54
_080F55D4: .4byte sub_80F55DC
_080F55D8: .4byte sub_80F5574
thumb_func_end sub_80F55A0
thumb_func_start sub_80F55DC
sub_80F55DC: @ 80F55DC
push {r4,lr}
sub sp, 0x14
lsls r0, 24
lsrs r4, r0, 24
ldr r0, _080F55F8 @ =gUnknown_203AB54
ldr r0, [r0]
ldrb r0, [r0, 0x1]
cmp r0, 0x5
bhi _080F56C0
lsls r0, 2
ldr r1, _080F55FC @ =_080F5600
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080F55F8: .4byte gUnknown_203AB54
_080F55FC: .4byte _080F5600
.align 2, 0
_080F5600:
.4byte _080F5618
.4byte _080F562A
.4byte _080F5644
.4byte _080F564A
.4byte _080F5660
.4byte _080F569C
_080F5618:
movs r0, 0x1
negs r0, r0
movs r1, 0
str r1, [sp]
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
b _080F56E2
_080F562A:
ldr r0, _080F5640 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080F56EC
movs r0, 0
bl SetVBlankCallback
b _080F56E2
.align 2, 0
_080F5640: .4byte gPaletteFade
_080F5644:
bl sub_80F5820
b _080F56E2
_080F564A:
movs r0, 0
movs r1, 0x1
movs r2, 0xF0
bl TextWindow_SetStdFrame0_WithPal
movs r0, 0x1
movs r1, 0x1
movs r2, 0xF0
bl TextWindow_SetStdFrame0_WithPal
b _080F56E2
_080F5660:
movs r0, 0x1
movs r1, 0x1
movs r2, 0x1
movs r3, 0xF
bl SetWindowBorderStyle
movs r0, 0x1
str r0, [sp]
str r0, [sp, 0x4]
ldr r0, _080F5694 @ =gUnknown_841EE80
str r0, [sp, 0x8]
movs r0, 0
str r0, [sp, 0xC]
ldr r0, _080F5698 @ =gUnknown_841B69E
str r0, [sp, 0x10]
movs r0, 0x1
movs r1, 0x2
movs r2, 0
movs r3, 0x3
bl AddTextPrinterParameterized4
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
b _080F56E2
.align 2, 0
_080F5694: .4byte gUnknown_841EE80
_080F5698: .4byte gUnknown_841B69E
_080F569C:
ldr r0, _080F56BC @ =gUnknown_841EE68
movs r2, 0x1
str r2, [sp]
movs r1, 0xF
str r1, [sp, 0x4]
str r2, [sp, 0x8]
movs r1, 0x2
movs r2, 0
movs r3, 0x2
bl CreateYesNoMenu
movs r0, 0
bl CopyBgTilemapBufferToVram
b _080F56E2
.align 2, 0
_080F56BC: .4byte gUnknown_841EE68
_080F56C0:
ldr r0, _080F56F4 @ =0x0000ffff
str r0, [sp]
movs r1, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
ldr r0, _080F56F8 @ =sub_80F558C
bl SetVBlankCallback
ldr r1, _080F56FC @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldr r1, _080F5700 @ =sub_80F5708
str r1, [r0]
_080F56E2:
ldr r0, _080F5704 @ =gUnknown_203AB54
ldr r1, [r0]
ldrb r0, [r1, 0x1]
adds r0, 0x1
strb r0, [r1, 0x1]
_080F56EC:
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F56F4: .4byte 0x0000ffff
_080F56F8: .4byte sub_80F558C
_080F56FC: .4byte gTasks
_080F5700: .4byte sub_80F5708
_080F5704: .4byte gUnknown_203AB54
thumb_func_end sub_80F55DC
thumb_func_start sub_80F5708
sub_80F5708: @ 80F5708
push {r4,r5,lr}
sub sp, 0x14
lsls r0, 24
lsrs r1, r0, 24
ldr r5, _080F5740 @ =gUnknown_203AB54
ldr r0, [r5]
ldrb r0, [r0]
cmp r0, 0
bne _080F578C
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _080F5736
cmp r4, r0
ble _080F5792
cmp r4, 0
beq _080F5744
cmp r4, 0x1
bne _080F5792
_080F5736:
movs r0, 0x5
bl PlaySE
b _080F577A
.align 2, 0
_080F5740: .4byte gUnknown_203AB54
_080F5744:
movs r0, 0x5
bl PlaySE
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0x1
str r0, [sp]
str r0, [sp, 0x4]
ldr r0, _080F5784 @ =gUnknown_841EE80
str r0, [sp, 0x8]
str r4, [sp, 0xC]
ldr r0, _080F5788 @ =gUnknown_841B6B9
str r0, [sp, 0x10]
movs r0, 0x1
movs r1, 0x2
movs r2, 0
movs r3, 0x3
bl AddTextPrinterParameterized4
movs r0, 0x1
movs r1, 0x3
bl CopyWindowToVram
bl ClearSaveData
_080F577A:
ldr r1, [r5]
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
b _080F5792
.align 2, 0
_080F5784: .4byte gUnknown_841EE80
_080F5788: .4byte gUnknown_841B6B9
_080F578C:
adds r0, r1, 0
bl sub_80F579C
_080F5792:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80F5708
thumb_func_start sub_80F579C
sub_80F579C: @ 80F579C
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
ldr r5, _080F57B4 @ =gUnknown_203AB54
ldr r0, [r5]
ldrb r0, [r0, 0x2]
cmp r0, 0
beq _080F57B8
cmp r0, 0x1
beq _080F57D4
b _080F57FE
.align 2, 0
_080F57B4: .4byte gUnknown_203AB54
_080F57B8:
ldr r0, _080F57D0 @ =0x0000ffff
str r0, [sp]
movs r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
ldr r1, [r5]
ldrb r0, [r1, 0x2]
adds r0, 0x1
strb r0, [r1, 0x2]
b _080F57FE
.align 2, 0
_080F57D0: .4byte 0x0000ffff
_080F57D4:
ldr r0, _080F5808 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080F57FE
bl sub_81100E8
adds r0, r6, 0
bl DestroyTask
bl FreeAllWindowBuffers
ldr r0, [r5]
bl Free
str r4, [r5]
bl DoSoftReset
_080F57FE:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080F5808: .4byte gPaletteFade
thumb_func_end sub_80F579C
thumb_func_start sub_80F580C
sub_80F580C: @ 80F580C
push {lr}
bl ResetSpriteData
bl ResetPaletteFade
bl ResetTasks
pop {r0}
bx r0
thumb_func_end sub_80F580C
thumb_func_start sub_80F5820
sub_80F5820: @ 80F5820
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
movs r3, 0xC0
lsls r3, 19
movs r4, 0xC0
lsls r4, 9
add r0, sp, 0x4
mov r8, r0
mov r2, sp
movs r6, 0
ldr r1, _080F593C @ =0x040000d4
movs r5, 0x80
lsls r5, 5
ldr r7, _080F5940 @ =0x81000800
movs r0, 0x81
lsls r0, 24
mov r12, r0
_080F5846:
strh r6, [r2]
mov r0, sp
str r0, [r1]
str r3, [r1, 0x4]
str r7, [r1, 0x8]
ldr r0, [r1, 0x8]
adds r3, r5
subs r4, r5
cmp r4, r5
bhi _080F5846
strh r6, [r2]
mov r2, sp
str r2, [r1]
str r3, [r1, 0x4]
lsrs r0, r4, 1
mov r2, r12
orrs r0, r2
str r0, [r1, 0x8]
ldr r0, [r1, 0x8]
movs r0, 0xE0
lsls r0, 19
movs r3, 0x80
lsls r3, 3
movs r4, 0
str r4, [sp, 0x4]
ldr r2, _080F593C @ =0x040000d4
mov r1, r8
str r1, [r2]
str r0, [r2, 0x4]
lsrs r0, r3, 2
movs r1, 0x85
lsls r1, 24
orrs r0, r1
str r0, [r2, 0x8]
ldr r0, [r2, 0x8]
movs r1, 0xA0
lsls r1, 19
mov r0, sp
strh r4, [r0]
str r0, [r2]
str r1, [r2, 0x4]
lsrs r3, 1
movs r0, 0x81
lsls r0, 24
orrs r3, r0
str r3, [r2, 0x8]
ldr r0, [r2, 0x8]
movs r0, 0
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _080F5944 @ =gUnknown_841EE64
movs r0, 0
movs r2, 0x1
bl InitBgsFromTemplates
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
ldr r0, _080F5948 @ =gUnknown_841EE68
bl InitWindows
bl DeactivateAllTextPrinters
movs r1, 0x82
lsls r1, 5
movs r0, 0
bl SetGpuReg
movs r0, 0
bl ShowBg
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F593C: .4byte 0x040000d4
_080F5940: .4byte 0x81000800
_080F5944: .4byte gUnknown_841EE64
_080F5948: .4byte gUnknown_841EE68
thumb_func_end sub_80F5820
thumb_func_start nullsub_85
nullsub_85: @ 80F594C
bx lr
thumb_func_end nullsub_85
.align 2, 0 @ Don't pad with nop.