pokediamond/arm9/asm/unk_020484A8.s

529 lines
10 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .rodata
.global UNK_020F4684
UNK_020F4684: ; 0x020F4684
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020F4694
UNK_020F4694: ; 0x020F4694
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global UNK_020F46B0
UNK_020F46B0: ; 0x020F46B0
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00
.text
thumb_func_start sub_020484A8
sub_020484A8: ; 0x020484A8
push {r3-r6, lr}
sub sp, #0x14
add r5, r0, #0x0
ldr r0, [r5, #0xc]
add r6, r1, #0x0
mov r1, #0xb
add r2, sp, #0x0
bl LoadHallOfFame
add r4, r0, #0x0
ldr r0, [sp, #0x0]
cmp r0, #0x1
bne _020484C6
cmp r6, #0x0
bne _020484CC
_020484C6:
add r0, r4, #0x0
bl Save_HOF_Init
_020484CC:
ldr r0, [r5, #0xc]
bl SaveArray_Party_Get
add r6, r0, #0x0
add r0, sp, #0x4
bl GF_RTC_CopyDate
add r0, r4, #0x0
add r1, r6, #0x0
add r2, sp, #0x4
bl Save_HOF_RecordParty
ldr r0, [r5, #0xc]
add r1, r4, #0x0
bl SaveHallOfFame
add r0, r4, #0x0
bl Heap_Free
add sp, #0x14
pop {r3-r6, pc}
.balign 4
thumb_func_start sub_020484F8
sub_020484F8: ; 0x020484F8
push {r4-r7, lr}
sub sp, #0xc
add r4, r0, #0x0
bl TaskManager_GetFieldSystem
add r6, r0, #0x0
add r0, r4, #0x0
bl TaskManager_GetEnvironment
add r5, r0, #0x0
add r0, r4, #0x0
bl TaskManager_GetStatePtr
add r4, r0, #0x0
ldr r0, [r4, #0x0]
cmp r0, #0x9
bhi _02048554
add r1, r0, r0
add r1, pc
ldrh r1, [r1, #0x6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02048526: ; jump table (using 16-bit offset)
.short _0204853A - _02048526 - 2; case 0
.short _0204854A - _02048526 - 2; case 1
.short _02048586 - _02048526 - 2; case 2
.short _020485AE - _02048526 - 2; case 3
.short _020485C0 - _02048526 - 2; case 4
.short _020485F6 - _02048526 - 2; case 5
.short _02048612 - _02048526 - 2; case 6
.short _02048624 - _02048526 - 2; case 7
.short _02048644 - _02048526 - 2; case 8
.short _02048666 - _02048526 - 2; case 9
_0204853A:
add r0, r6, #0x0
add r1, r5, #0x4
bl sub_02038814
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _02048688
_0204854A:
add r0, r6, #0x0
bl FieldSystem_ApplicationIsRunning
cmp r0, #0x0
beq _02048556
_02048554:
b _02048688
_02048556:
mov r1, #0x4
mov r0, #0x3
lsl r2, r1, #0xf
bl Heap_Create
add r0, r6, #0x0
add r1, r5, #0x0
bl sub_02048764
mov r0, #0x8
str r0, [sp, #0x0]
mov r1, #0x1
str r1, [sp, #0x4]
mov r0, #0x20
str r0, [sp, #0x8]
mov r0, #0x3
add r2, r1, #0x0
mov r3, #0x0
bl BeginNormalPaletteFade
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _02048688
_02048586:
bl IsPaletteFadeFinished
cmp r0, #0x0
beq _02048688
ldr r0, [r6, #0xc]
bl Save_FileDoesNotBelongToPlayer
cmp r0, #0x0
bne _020485A8
add r0, r6, #0x0
add r1, r5, #0x0
bl sub_020487E4
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _02048688
_020485A8:
mov r0, #0x7
str r0, [r4, #0x0]
b _02048688
_020485AE:
add r0, r5, #0x0
bl sub_02048838
cmp r0, #0x0
beq _02048688
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _02048688
_020485C0:
ldr r0, [r6, #0xc]
bl SaveArray_Party_Get
bl HealParty
bl Save_SetDirtyBit
ldr r0, [r6, #0xc]
bl SaveGame
add r7, r0, #0x0
ldr r1, [r5, #0x0]
add r0, r6, #0x0
bl sub_020484A8
add r0, r5, #0x0
bl sub_02048848
add r0, r6, #0x0
add r1, r5, #0x0
add r2, r7, #0x0
bl sub_02048864
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _02048688
_020485F6:
add r0, r5, #0x0
bl sub_02048838
cmp r0, #0x0
beq _02048688
ldr r0, _02048690 ; =0x0000061B
bl PlaySE
mov r0, #0x12
str r0, [r5, #0x38]
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _02048688
_02048612:
ldr r1, [r5, #0x38]
cmp r1, #0x0
beq _0204861E
sub r0, r1, #0x1
str r0, [r5, #0x38]
b _02048688
_0204861E:
add r0, r0, #0x1
str r0, [r4, #0x0]
b _02048688
_02048624:
mov r0, #0x8
str r0, [sp, #0x0]
mov r1, #0x0
mov r0, #0x1
str r0, [sp, #0x4]
mov r0, #0x20
str r0, [sp, #0x8]
mov r0, #0x3
add r2, r1, #0x0
add r3, r1, #0x0
bl BeginNormalPaletteFade
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _02048688
_02048644:
bl IsPaletteFadeFinished
cmp r0, #0x0
beq _02048688
add r0, r6, #0x0
add r1, r5, #0x0
bl sub_020488D4
add r5, #0x10
add r0, r6, #0x0
add r1, r5, #0x0
bl sub_02038854
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
b _02048688
_02048666:
add r0, r6, #0x0
bl FieldSystem_ApplicationIsRunning
cmp r0, #0x0
bne _02048688
add r0, r5, #0x0
bl Heap_Free
mov r0, #0x4
bl Heap_Destroy
mov r0, #0x0
bl OS_ResetSystem
add sp, #0xc
mov r0, #0x1
pop {r4-r7, pc}
_02048688:
mov r0, #0x0
add sp, #0xc
pop {r4-r7, pc}
nop
_02048690: .word 0x0000061B
thumb_func_start CallTask_GameClear
CallTask_GameClear: ; 0x02048694
push {r4-r7, lr}
sub sp, #0xc
add r7, r0, #0x0
bl TaskManager_GetFieldSystem
add r4, r0, #0x0
mov r0, #0x20
mov r1, #0x3c
bl Heap_Alloc
add r5, r0, #0x0
ldr r0, [r4, #0xc]
bl Save_VarsFlags_Get
add r6, r0, #0x0
ldr r0, [r4, #0xc]
bl Save_PlayerData_GetProfile
str r0, [sp, #0x0]
ldr r0, [r4, #0xc]
bl Save_LocalFieldData_Get
bl LocalFieldData_GetDynamicWarp
str r0, [sp, #0x8]
ldr r0, [r4, #0xc]
bl Save_LocalFieldData_Get
bl LocalFieldData_GetSpecialSpawnWarpPtr
str r0, [sp, #0x4]
add r0, r6, #0x0
bl sub_0205ED0C
str r0, [r5, #0x0]
ldr r0, [r4, #0xc]
bl Save_PlayerData_GetProfile
str r0, [r5, #0x4]
ldr r0, [r4, #0xc]
bl SaveArray_Party_Get
str r0, [r5, #0x8]
ldr r0, [r4, #0xc]
bl Save_PlayerData_GetIGTAddr
str r0, [r5, #0xc]
ldr r0, [r4, #0xc]
bl Save_PlayerData_GetProfile
bl PlayerProfile_GetTrainerGender
str r0, [r5, #0x10]
add r0, r6, #0x0
bl sub_0205ED0C
str r0, [r5, #0x14]
ldr r0, [r4, #0xc]
bl Save_Pokedex_Get
str r0, [r5, #0x18]
add r0, r6, #0x0
bl sub_0205ED0C
cmp r0, #0x0
bne _0204871E
add r0, r4, #0x0
bl Script_SavRTC_DateTimeTox2C
_0204871E:
ldr r0, [r4, #0xc]
bl SaveArray_Party_Get
bl GiveAllMonsTheSinnohChampRibbon
ldr r0, [sp, #0x8]
bl sub_020377B0
ldr r0, [sp, #0x4]
bl sub_020377C8
add r0, r6, #0x0
bl sub_0205F154
add r0, r6, #0x0
bl sub_0205ECFC
ldr r0, [sp, #0x0]
bl PlayerProfile_SetGameClearFlag
ldr r0, [r4, #0xc]
bl Save_GameStats_Get
mov r1, #0x2e
bl GameStats_Inc
ldr r1, _02048760 ; =sub_020484F8
add r0, r7, #0x0
add r2, r5, #0x0
bl TaskManager_Call
add sp, #0xc
pop {r4-r7, pc}
.balign 4
_02048760: .word sub_020484F8
thumb_func_start sub_02048764
sub_02048764: ; 0x02048764
push {r4, lr}
sub sp, #0x10
add r4, r0, #0x0
mov r0, #0x0
str r0, [r1, #0x2c]
str r0, [r1, #0x30]
add r1, #0x1c
add r0, r1, #0x0
bl InitWindow
ldr r0, _020487D4 ; =UNK_020F46B0
bl GfGfx_SetBanks
ldr r2, _020487D8 ; =0x04000304
ldrh r1, [r2, #0x0]
lsr r0, r2, #0xb
orr r0, r1
strh r0, [r2, #0x0]
ldr r0, _020487DC ; =UNK_020F4684
bl SetBothScreensModesAndDisable
mov r0, #0x3
mov r1, #0x0
bl BG_SetMaskColor
ldr r0, [r4, #0x8]
ldr r2, _020487E0 ; =UNK_020F4694
mov r1, #0x3
mov r3, #0x0
bl InitBgFromTemplate
mov r1, #0x20
mov r0, #0x3
mov r2, #0x0
add r3, r1, #0x0
bl BG_ClearCharDataRange
mov r2, #0x0
str r2, [sp, #0x0]
mov r0, #0x20
str r0, [sp, #0x4]
str r0, [sp, #0x8]
mov r0, #0x11
str r0, [sp, #0xc]
ldr r0, [r4, #0x8]
mov r1, #0x3
add r3, r2, #0x0
bl FillBgTilemapRect
ldr r0, [r4, #0x8]
mov r1, #0x3
bl BgCommitTilemapBufferToVram
add sp, #0x10
pop {r4, pc}
nop
_020487D4: .word UNK_020F46B0
_020487D8: .word 0x04000304
_020487DC: .word UNK_020F4684
_020487E0: .word UNK_020F4694
thumb_func_start sub_020487E4
sub_020487E4: ; 0x020487E4
push {r4-r6, lr}
add r5, r0, #0x0
ldr r0, [r5, #0xc]
add r4, r1, #0x0
bl Save_PlayerData_GetOptionsAddr
add r6, r0, #0x0
mov r0, #0x1a
mov r1, #0xc7
mov r2, #0xf
mov r3, #0x20
bl ReadMsgData_NewNarc_NewString
str r0, [r4, #0x2c]
add r1, r4, #0x0
ldr r0, [r5, #0x8]
add r1, #0x1c
mov r2, #0x3
bl sub_020545B8
add r0, r4, #0x0
add r0, #0x1c
add r1, r6, #0x0
bl sub_02054608
add r0, r4, #0x0
ldr r1, [r4, #0x2c]
add r0, #0x1c
add r2, r6, #0x0
mov r3, #0x1
bl sub_02054658
str r0, [r4, #0x34]
add r0, r4, #0x0
ldr r1, _02048834 ; =0x000003E2
add r0, #0x1c
bl WaitingIcon_New
str r0, [r4, #0x30]
pop {r4-r6, pc}
.balign 4
_02048834: .word 0x000003E2
thumb_func_start sub_02048838
sub_02048838: ; 0x02048838
ldr r0, [r0, #0x34]
ldr r3, _02048844 ; =sub_020546C8
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bx r3
nop
_02048844: .word sub_020546C8
thumb_func_start sub_02048848
sub_02048848: ; 0x02048848
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x2c]
bl String_Delete
ldr r0, [r4, #0x30]
bl sub_0200DBFC
add r4, #0x1c
add r0, r4, #0x0
bl sub_0205464C
pop {r4, pc}
.balign 4
thumb_func_start sub_02048864
sub_02048864: ; 0x02048864
push {r3-r7, lr}
add r5, r0, #0x0
add r4, r1, #0x0
add r6, r2, #0x0
mov r0, #0x1
mov r1, #0x1a
mov r2, #0xc7
mov r3, #0x4
bl NewMsgDataFromNarc
add r7, r0, #0x0
cmp r6, #0x2
bne _020488AC
mov r0, #0x4
bl MessageFormat_New
add r6, r0, #0x0
ldr r0, [r5, #0xc]
bl Save_PlayerData_GetProfile
add r2, r0, #0x0
add r0, r6, #0x0
mov r1, #0x0
bl BufferPlayersName
add r0, r6, #0x0
add r1, r7, #0x0
mov r2, #0x10
mov r3, #0x4
bl ReadMsgData_ExpandPlaceholders
str r0, [r4, #0x2c]
add r0, r6, #0x0
bl MessageFormat_Delete
b _020488B4
_020488AC:
mov r1, #0x12
bl NewString_ReadMsgData
str r0, [r4, #0x2c]
_020488B4:
add r0, r7, #0x0
bl DestroyMsgData
ldr r0, [r5, #0xc]
bl Save_PlayerData_GetOptionsAddr
add r2, r0, #0x0
add r0, r4, #0x0
ldr r1, [r4, #0x2c]
add r0, #0x1c
mov r3, #0x1
bl sub_02054658
str r0, [r4, #0x34]
pop {r3-r7, pc}
.balign 4
thumb_func_start sub_020488D4
sub_020488D4: ; 0x020488D4
push {r3-r5, lr}
add r4, r1, #0x0
add r5, r0, #0x0
ldr r0, [r4, #0x2c]
cmp r0, #0x0
beq _020488E4
bl String_Delete
_020488E4:
add r0, r4, #0x0
add r0, #0x1c
bl WindowIsInUse
cmp r0, #0x0
beq _020488F8
add r4, #0x1c
add r0, r4, #0x0
bl RemoveWindow
_020488F8:
ldr r0, [r5, #0x8]
mov r1, #0x3
bl FreeBgTilemapBuffer
pop {r3-r5, pc}
.balign 4