mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-07 06:35:48 -05:00
3443 lines
59 KiB
ArmAsm
3443 lines
59 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80F1DAC
|
|
sub_80F1DAC: @ 80F1DAC
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80F1DAC
|
|
|
|
thumb_func_start sub_80F1DC0
|
|
sub_80F1DC0: @ 80F1DC0
|
|
push {lr}
|
|
bl RunTasks
|
|
bl RunTextPrinters
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80F1DC0
|
|
|
|
thumb_func_start InitHallOfFameScreen
|
|
InitHallOfFameScreen: @ 80F1DDC
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r0, _080F1DFC @ =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x4
|
|
bls _080F1DF0
|
|
b _080F1EF0
|
|
_080F1DF0:
|
|
lsls r0, 2
|
|
ldr r1, _080F1E00 @ =_080F1E04
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080F1DFC: .4byte gMain
|
|
_080F1E00: .4byte _080F1E04
|
|
.align 2, 0
|
|
_080F1E04:
|
|
.4byte _080F1E18
|
|
.4byte _080F1E50
|
|
.4byte _080F1E56
|
|
.4byte _080F1E88
|
|
.4byte _080F1EC4
|
|
_080F1E18:
|
|
ldr r1, _080F1E40 @ =gUnknown_3005ECC
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
bl ClearVramOamPltt_LoadHofPal
|
|
ldr r4, _080F1E44 @ =gUnknown_203AB3C
|
|
ldr r0, _080F1E48 @ =0x00002008
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r0, _080F1E4C @ =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _080F1EF0
|
|
.align 2, 0
|
|
_080F1E40: .4byte gUnknown_3005ECC
|
|
_080F1E44: .4byte gUnknown_203AB3C
|
|
_080F1E48: .4byte 0x00002008
|
|
_080F1E4C: .4byte gMain
|
|
_080F1E50:
|
|
bl sub_80F36BC
|
|
b _080F1EAA
|
|
_080F1E56:
|
|
ldr r1, _080F1E80 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0xE2
|
|
lsls r1, 3
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
bl sub_80F36F8
|
|
ldr r0, _080F1E84 @ =gUnknown_203AB3C
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
b _080F1EAA
|
|
.align 2, 0
|
|
_080F1E80: .4byte 0x00003f42
|
|
_080F1E84: .4byte gUnknown_203AB3C
|
|
_080F1E88:
|
|
bl sub_80F3770
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _080F1EF0
|
|
ldr r0, _080F1EBC @ =sub_80F1DAC
|
|
bl SetVBlankCallback
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r4, [sp]
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
_080F1EAA:
|
|
ldr r1, _080F1EC0 @ =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080F1EF0
|
|
.align 2, 0
|
|
_080F1EBC: .4byte sub_80F1DAC
|
|
_080F1EC0: .4byte gMain
|
|
_080F1EC4:
|
|
bl UpdatePaletteFade
|
|
ldr r0, _080F1EE8 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080F1EF0
|
|
ldr r0, _080F1EEC @ =sub_80F1DC0
|
|
bl SetMainCallback2
|
|
movs r0, 0x8F
|
|
lsls r0, 1
|
|
bl PlayBGM
|
|
movs r0, 0
|
|
b _080F1EF2
|
|
.align 2, 0
|
|
_080F1EE8: .4byte gPaletteFade
|
|
_080F1EEC: .4byte sub_80F1DC0
|
|
_080F1EF0:
|
|
movs r0, 0x1
|
|
_080F1EF2:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end InitHallOfFameScreen
|
|
|
|
thumb_func_start CB2_DoHallOfFameScreen
|
|
CB2_DoHallOfFameScreen: @ 80F1EFC
|
|
push {r4,lr}
|
|
bl InitHallOfFameScreen
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _080F1F2C
|
|
ldr r0, _080F1F34 @ =Task_Hof_InitMonData
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080F1F38 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r4, [r1, 0x8]
|
|
ldr r4, _080F1F3C @ =gUnknown_203AB38
|
|
movs r0, 0x78
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
_080F1F2C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F1F34: .4byte Task_Hof_InitMonData
|
|
_080F1F38: .4byte gTasks
|
|
_080F1F3C: .4byte gUnknown_203AB38
|
|
thumb_func_end CB2_DoHallOfFameScreen
|
|
|
|
thumb_func_start CB2_DoHallOfFameScreenDontSaveData
|
|
CB2_DoHallOfFameScreenDontSaveData: @ 80F1F40
|
|
push {lr}
|
|
bl InitHallOfFameScreen
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080F1F66
|
|
ldr r0, _080F1F6C @ =Task_Hof_InitMonData
|
|
movs r1, 0
|
|
bl CreateTask
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080F1F70 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x8]
|
|
_080F1F66:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F1F6C: .4byte Task_Hof_InitMonData
|
|
_080F1F70: .4byte gTasks
|
|
thumb_func_end CB2_DoHallOfFameScreenDontSaveData
|
|
|
|
thumb_func_start Task_Hof_InitMonData
|
|
Task_Hof_InitMonData: @ 80F1F74
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0xC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r1, _080F2050 @ =gTasks
|
|
lsls r0, 2
|
|
add r0, r8
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strh r1, [r0, 0xC]
|
|
movs r7, 0
|
|
ldr r0, _080F2054 @ =gUnknown_203AB38
|
|
mov r9, r0
|
|
_080F1F98:
|
|
movs r0, 0x64
|
|
adds r1, r7, 0
|
|
muls r1, r0
|
|
ldr r0, _080F2058 @ =gPlayerParty
|
|
adds r6, r1, r0
|
|
adds r0, r6, 0
|
|
movs r1, 0xB
|
|
bl GetMonData
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
beq _080F2064
|
|
adds r0, r6, 0
|
|
movs r1, 0x41
|
|
bl GetMonData
|
|
mov r1, r9
|
|
ldr r3, [r1]
|
|
lsls r4, r7, 2
|
|
adds r4, r7
|
|
lsls r4, 2
|
|
adds r3, r4
|
|
ldr r2, _080F205C @ =0x000001ff
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
ldrh r1, [r3, 0x8]
|
|
ldr r5, _080F2060 @ =0xfffffe00
|
|
adds r2, r5, 0
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x8]
|
|
adds r0, r6, 0
|
|
movs r1, 0x1
|
|
bl GetMonData
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
adds r1, r4
|
|
str r0, [r1]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl GetMonData
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
adds r1, 0x4
|
|
adds r1, r4
|
|
str r0, [r1]
|
|
adds r0, r6, 0
|
|
movs r1, 0x38
|
|
bl GetMonData
|
|
ldr r2, [r5]
|
|
adds r2, r4
|
|
lsls r0, 1
|
|
ldrb r3, [r2, 0x9]
|
|
movs r1, 0x1
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
strb r1, [r2, 0x9]
|
|
adds r0, r6, 0
|
|
movs r1, 0x2
|
|
mov r2, sp
|
|
bl GetMonData
|
|
movs r2, 0
|
|
mov r6, r8
|
|
lsls r5, r6, 2
|
|
ldr r3, _080F2054 @ =gUnknown_203AB38
|
|
_080F2022:
|
|
ldr r0, [r3]
|
|
adds r1, r2, r4
|
|
adds r0, 0xA
|
|
adds r0, r1
|
|
mov r6, sp
|
|
adds r1, r6, r2
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0x9
|
|
bls _080F2022
|
|
ldr r0, _080F2050 @ =gTasks
|
|
mov r2, r8
|
|
adds r1, r5, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r1, 0xC]
|
|
b _080F2098
|
|
.align 2, 0
|
|
_080F2050: .4byte gTasks
|
|
_080F2054: .4byte gUnknown_203AB38
|
|
_080F2058: .4byte gPlayerParty
|
|
_080F205C: .4byte 0x000001ff
|
|
_080F2060: .4byte 0xfffffe00
|
|
_080F2064:
|
|
mov r6, r9
|
|
ldr r3, [r6]
|
|
lsls r2, r7, 2
|
|
adds r2, r7
|
|
lsls r2, 2
|
|
adds r4, r3, r2
|
|
ldrh r0, [r4, 0x8]
|
|
ldr r6, _080F20EC @ =0xfffffe00
|
|
adds r1, r6, 0
|
|
ands r0, r1
|
|
strh r0, [r4, 0x8]
|
|
str r5, [r4]
|
|
adds r3, 0x4
|
|
adds r3, r2
|
|
str r5, [r3]
|
|
ldrb r1, [r4, 0x9]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
strb r0, [r4, 0x9]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, r2
|
|
movs r1, 0xFF
|
|
strb r1, [r0, 0xA]
|
|
mov r2, r8
|
|
lsls r5, r2, 2
|
|
_080F2098:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
cmp r7, 0x5
|
|
bhi _080F20A4
|
|
b _080F1F98
|
|
_080F20A4:
|
|
ldr r0, _080F20F0 @ =gUnknown_203AB34
|
|
movs r3, 0
|
|
str r3, [r0]
|
|
ldr r4, _080F20F4 @ =gTasks
|
|
mov r6, r8
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
adds r2, r1, r4
|
|
strh r3, [r2, 0xA]
|
|
movs r0, 0xFF
|
|
strh r0, [r2, 0x10]
|
|
movs r7, 0
|
|
adds r3, r4, 0
|
|
adds r3, 0x8
|
|
movs r2, 0xFF
|
|
_080F20C2:
|
|
adds r0, r7, 0x5
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
adds r0, r3
|
|
strh r2, [r0]
|
|
adds r0, r7, 0x1
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
cmp r7, 0x5
|
|
bls _080F20C2
|
|
mov r1, r8
|
|
adds r0, r5, r1
|
|
lsls r0, 3
|
|
adds r1, r0, r4
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _080F20FC
|
|
ldr r0, _080F20F8 @ =sub_80F2294
|
|
b _080F20FE
|
|
.align 2, 0
|
|
_080F20EC: .4byte 0xfffffe00
|
|
_080F20F0: .4byte gUnknown_203AB34
|
|
_080F20F4: .4byte gTasks
|
|
_080F20F8: .4byte sub_80F2294
|
|
_080F20FC:
|
|
ldr r0, _080F2110 @ =Task_Hof_InitTeamSaveData
|
|
_080F20FE:
|
|
str r0, [r1]
|
|
add sp, 0xC
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2110: .4byte Task_Hof_InitTeamSaveData
|
|
thumb_func_end Task_Hof_InitMonData
|
|
|
|
thumb_func_start Task_Hof_InitTeamSaveData
|
|
Task_Hof_InitTeamSaveData: @ 80F2114
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r7, _080F2140 @ =gDecompressionBuffer
|
|
bl sub_8112450
|
|
ldr r0, _080F2144 @ =gUnknown_203AB44
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080F2148
|
|
movs r2, 0x80
|
|
lsls r2, 6
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl memset
|
|
b _080F2162
|
|
.align 2, 0
|
|
_080F2140: .4byte gDecompressionBuffer
|
|
_080F2144: .4byte gUnknown_203AB44
|
|
_080F2148:
|
|
movs r0, 0x3
|
|
bl Save_LoadGameData
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080F2162
|
|
movs r2, 0x80
|
|
lsls r2, 6
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl memset
|
|
_080F2162:
|
|
movs r5, 0
|
|
ldrh r1, [r7, 0x8]
|
|
ldr r2, _080F2208 @ =0x000001ff
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
mov r1, r9
|
|
lsls r1, 2
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
beq _080F218C
|
|
_080F2176:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r7, 0x78
|
|
cmp r5, 0x31
|
|
bhi _080F2190
|
|
ldrh r1, [r7, 0x8]
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080F2176
|
|
_080F218C:
|
|
cmp r5, 0x31
|
|
bls _080F21B2
|
|
_080F2190:
|
|
ldr r4, _080F220C @ =gDecompressionBuffer
|
|
adds r6, r4, 0
|
|
adds r4, 0x78
|
|
movs r5, 0
|
|
subs r7, 0x78
|
|
_080F219A:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x78
|
|
bl memcpy
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r6, 0x78
|
|
adds r4, 0x78
|
|
cmp r5, 0x30
|
|
bls _080F219A
|
|
_080F21B2:
|
|
ldr r0, _080F2210 @ =gUnknown_203AB38
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
movs r2, 0x78
|
|
bl memcpy
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl DrawDialogueFrame
|
|
ldr r2, _080F2214 @ =gUnknown_8419F54
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized2
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r1, _080F2218 @ =gTasks
|
|
mov r0, r8
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080F221C @ =sub_80F2220
|
|
str r1, [r0]
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2208: .4byte 0x000001ff
|
|
_080F220C: .4byte gDecompressionBuffer
|
|
_080F2210: .4byte gUnknown_203AB38
|
|
_080F2214: .4byte gUnknown_8419F54
|
|
_080F2218: .4byte gTasks
|
|
_080F221C: .4byte sub_80F2220
|
|
thumb_func_end Task_Hof_InitTeamSaveData
|
|
|
|
thumb_func_start sub_80F2220
|
|
sub_80F2220: @ 80F2220
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, _080F2254 @ =gGameContinueCallback
|
|
ldr r0, _080F2258 @ =CB2_DoHallOfFameScreenDontSaveData
|
|
str r0, [r1]
|
|
movs r0, 0x3
|
|
bl TrySavingData
|
|
movs r0, 0x30
|
|
bl PlaySE
|
|
ldr r1, _080F225C @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080F2260 @ =sub_80F2264
|
|
str r1, [r0]
|
|
movs r1, 0x20
|
|
strh r1, [r0, 0xE]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2254: .4byte gGameContinueCallback
|
|
_080F2258: .4byte CB2_DoHallOfFameScreenDontSaveData
|
|
_080F225C: .4byte gTasks
|
|
_080F2260: .4byte sub_80F2264
|
|
thumb_func_end sub_80F2220
|
|
|
|
thumb_func_start sub_80F2264
|
|
sub_80F2264: @ 80F2264
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080F2284 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080F2288
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0xE]
|
|
b _080F228C
|
|
.align 2, 0
|
|
_080F2284: .4byte gTasks
|
|
_080F2288:
|
|
ldr r0, _080F2290 @ =sub_80F2294
|
|
str r0, [r1]
|
|
_080F228C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2290: .4byte sub_80F2294
|
|
thumb_func_end sub_80F2264
|
|
|
|
thumb_func_start sub_80F2294
|
|
sub_80F2294: @ 80F2294
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080F22A8 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r0, _080F22AC @ =sub_80F22B0
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080F22A8: .4byte gTasks
|
|
_080F22AC: .4byte sub_80F22B0
|
|
thumb_func_end sub_80F2294
|
|
|
|
thumb_func_start sub_80F22B0
|
|
sub_80F22B0: @ 80F22B0
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
ldr r0, _080F22E4 @ =gTasks
|
|
lsls r1, r7, 2
|
|
adds r1, r7
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r6, [r1, 0xA]
|
|
ldr r2, _080F22E8 @ =gUnknown_203AB38
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
ldr r2, [r2]
|
|
adds r4, r2, r0
|
|
movs r2, 0xC
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x3
|
|
ble _080F22F0
|
|
ldr r1, _080F22EC @ =gUnknown_840C268
|
|
b _080F22F2
|
|
.align 2, 0
|
|
_080F22E4: .4byte gTasks
|
|
_080F22E8: .4byte gUnknown_203AB38
|
|
_080F22EC: .4byte gUnknown_840C268
|
|
_080F22F0:
|
|
ldr r1, _080F2388 @ =gUnknown_840C298
|
|
_080F22F2:
|
|
lsls r2, r6, 3
|
|
adds r0, r2, r1
|
|
ldrh r3, [r0]
|
|
adds r0, r1, 0x2
|
|
adds r0, r2, r0
|
|
ldrh r5, [r0]
|
|
adds r0, r1, 0x4
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0]
|
|
mov r9, r0
|
|
adds r1, 0x6
|
|
adds r2, r1
|
|
ldrh r2, [r2]
|
|
mov r8, r2
|
|
ldrh r0, [r4, 0x8]
|
|
lsls r0, 23
|
|
lsrs r0, 23
|
|
ldr r1, [r4]
|
|
ldr r2, [r4, 0x4]
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
str r3, [sp]
|
|
lsls r3, r5, 16
|
|
asrs r3, 16
|
|
str r3, [sp, 0x4]
|
|
lsls r3, r6, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0x8]
|
|
ldr r3, _080F238C @ =0x0000ffff
|
|
str r3, [sp, 0xC]
|
|
movs r3, 0x1
|
|
bl CreateMonPicSprite_HandleDeoxys
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _080F2390 @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1, r3
|
|
movs r4, 0
|
|
mov r5, r9
|
|
strh r5, [r2, 0x30]
|
|
mov r5, r8
|
|
strh r5, [r2, 0x32]
|
|
strh r4, [r2, 0x2E]
|
|
adds r3, 0x1C
|
|
adds r1, r3
|
|
ldr r2, _080F2394 @ =sub_80F3870
|
|
str r2, [r1]
|
|
ldr r5, _080F2398 @ =gTasks
|
|
adds r1, r6, 0x5
|
|
lsls r1, 1
|
|
lsls r4, r7, 2
|
|
adds r4, r7
|
|
lsls r4, 3
|
|
adds r1, r4
|
|
adds r2, r5, 0
|
|
adds r2, 0x8
|
|
adds r1, r2
|
|
strh r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl ClearDialogWindowAndFrame
|
|
adds r4, r5
|
|
ldr r0, _080F239C @ =sub_80F23A0
|
|
str r0, [r4]
|
|
add sp, 0x10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2388: .4byte gUnknown_840C298
|
|
_080F238C: .4byte 0x0000ffff
|
|
_080F2390: .4byte gSprites
|
|
_080F2394: .4byte sub_80F3870
|
|
_080F2398: .4byte gTasks
|
|
_080F239C: .4byte sub_80F23A0
|
|
thumb_func_end sub_80F22B0
|
|
|
|
thumb_func_start sub_80F23A0
|
|
sub_80F23A0: @ 80F23A0
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _080F2410 @ =gTasks
|
|
lsls r3, r0, 2
|
|
adds r3, r0
|
|
lsls r3, 3
|
|
adds r5, r3, r4
|
|
ldrh r1, [r5, 0xA]
|
|
ldr r2, _080F2414 @ =gUnknown_203AB38
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r2, [r2]
|
|
adds r6, r2, r0
|
|
ldr r2, _080F2418 @ =gSprites
|
|
adds r1, 0x5
|
|
lsls r1, 1
|
|
adds r1, r3
|
|
adds r4, 0x8
|
|
adds r1, r4
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _080F2408
|
|
ldrh r2, [r6, 0x8]
|
|
ldr r0, _080F241C @ =0x000001ff
|
|
ands r0, r2
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _080F23F6
|
|
lsls r0, r2, 23
|
|
lsrs r0, 23
|
|
movs r1, 0
|
|
bl PlayCry1
|
|
_080F23F6:
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
movs r2, 0xE
|
|
bl sub_80F3194
|
|
movs r0, 0x78
|
|
strh r0, [r5, 0xE]
|
|
ldr r0, _080F2420 @ =Task_Hof_TryDisplayAnotherMon
|
|
str r0, [r5]
|
|
_080F2408:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2410: .4byte gTasks
|
|
_080F2414: .4byte gUnknown_203AB38
|
|
_080F2418: .4byte gSprites
|
|
_080F241C: .4byte 0x000001ff
|
|
_080F2420: .4byte Task_Hof_TryDisplayAnotherMon
|
|
thumb_func_end sub_80F23A0
|
|
|
|
thumb_func_start Task_Hof_TryDisplayAnotherMon
|
|
Task_Hof_TryDisplayAnotherMon: @ 80F2424
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r2, _080F2460 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r6, r0, 3
|
|
adds r4, r6, r2
|
|
ldrh r3, [r4, 0xA]
|
|
ldr r1, _080F2464 @ =gUnknown_203AB38
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
mov r9, r1
|
|
ldrh r1, [r4, 0xE]
|
|
movs r7, 0xE
|
|
ldrsh r0, [r4, r7]
|
|
mov r12, r2
|
|
cmp r0, 0
|
|
beq _080F2468
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _080F2500
|
|
.align 2, 0
|
|
_080F2460: .4byte gTasks
|
|
_080F2464: .4byte gUnknown_203AB38
|
|
_080F2468:
|
|
ldr r2, _080F24E0 @ =gUnknown_203AB34
|
|
ldr r0, _080F24E4 @ =gSprites
|
|
mov r8, r0
|
|
adds r0, r3, 0x5
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
mov r1, r12
|
|
adds r1, 0x8
|
|
adds r6, r0, r1
|
|
movs r7, 0
|
|
ldrsh r1, [r6, r7]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r0, [r0, 0x5]
|
|
lsrs r0, 4
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
lsls r1, r0
|
|
ldr r3, [r2]
|
|
orrs r3, r1
|
|
str r3, [r2]
|
|
ldrh r2, [r4, 0xA]
|
|
movs r1, 0xA
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bgt _080F24F4
|
|
mov r7, r9
|
|
ldrh r1, [r7, 0x1C]
|
|
ldr r0, _080F24E8 @ =0x000001ff
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080F24F4
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0xA]
|
|
ldr r0, _080F24EC @ =0x00007716
|
|
str r0, [sp]
|
|
adds r0, r3, 0
|
|
movs r1, 0
|
|
movs r2, 0xC
|
|
movs r3, 0xC
|
|
bl BeginNormalPaletteFade
|
|
movs r0, 0
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r2, [r0, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
movs r2, 0x4
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x5]
|
|
ldr r0, _080F24F0 @ =sub_80F22B0
|
|
str r0, [r4]
|
|
b _080F2500
|
|
.align 2, 0
|
|
_080F24E0: .4byte gUnknown_203AB34
|
|
_080F24E4: .4byte gSprites
|
|
_080F24E8: .4byte 0x000001ff
|
|
_080F24EC: .4byte 0x00007716
|
|
_080F24F0: .4byte sub_80F22B0
|
|
_080F24F4:
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
add r0, r12
|
|
ldr r1, _080F2510 @ =Task_Hof_PaletteFadeAndPrintWelcomeText
|
|
str r1, [r0]
|
|
_080F2500:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2510: .4byte Task_Hof_PaletteFadeAndPrintWelcomeText
|
|
thumb_func_end Task_Hof_TryDisplayAnotherMon
|
|
|
|
thumb_func_start Task_Hof_PaletteFadeAndPrintWelcomeText
|
|
Task_Hof_PaletteFadeAndPrintWelcomeText: @ 80F2514
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080F259C @ =0xffff0000
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
movs r3, 0
|
|
lsls r1, r4, 2
|
|
adds r0, r1, r4
|
|
lsls r5, r0, 3
|
|
ldr r0, _080F25A0 @ =gTasks+0x8
|
|
mov r12, r0
|
|
mov r8, r1
|
|
ldr r6, _080F25A4 @ =gSprites
|
|
movs r7, 0xD
|
|
negs r7, r7
|
|
_080F2542:
|
|
adds r0, r3, 0x5
|
|
lsls r0, 1
|
|
adds r0, r5
|
|
mov r2, r12
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0xFF
|
|
beq _080F2564
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
ldrb r2, [r1, 0x5]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r1, 0x5]
|
|
_080F2564:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0x5
|
|
bls _080F2542
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
bl HallOfFame_PrintWelcomeText
|
|
movs r0, 0x62
|
|
bl PlaySE
|
|
ldr r1, _080F25A8 @ =gTasks
|
|
mov r2, r8
|
|
adds r0, r2, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0xC8
|
|
lsls r1, 1
|
|
strh r1, [r0, 0xE]
|
|
ldr r1, _080F25AC @ =sub_80F25B0
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F259C: .4byte 0xffff0000
|
|
_080F25A0: .4byte gTasks+0x8
|
|
_080F25A4: .4byte gSprites
|
|
_080F25A8: .4byte gTasks
|
|
_080F25AC: .4byte sub_80F25B0
|
|
thumb_func_end Task_Hof_PaletteFadeAndPrintWelcomeText
|
|
|
|
thumb_func_start sub_80F25B0
|
|
sub_80F25B0: @ 80F25B0
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r7, _080F25F0 @ =gTasks
|
|
lsls r4, r6, 2
|
|
adds r0, r4, r6
|
|
lsls r5, r0, 3
|
|
adds r1, r5, r7
|
|
ldrh r2, [r1, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080F25F4
|
|
subs r2, 0x1
|
|
strh r2, [r1, 0xE]
|
|
movs r0, 0x3
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080F266E
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6E
|
|
ble _080F266E
|
|
bl sub_80F3930
|
|
b _080F266E
|
|
.align 2, 0
|
|
_080F25F0: .4byte gTasks
|
|
_080F25F4:
|
|
movs r3, 0
|
|
mov r9, r4
|
|
ldr r0, _080F2680 @ =gUnknown_203AB34
|
|
mov r10, r0
|
|
adds r4, r5, 0
|
|
adds r7, 0x8
|
|
mov r8, r7
|
|
ldr r7, _080F2684 @ =gSprites
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
mov r12, r1
|
|
movs r5, 0x4
|
|
_080F260C:
|
|
adds r0, r3, 0x5
|
|
lsls r0, 1
|
|
adds r0, r4
|
|
mov r2, r8
|
|
adds r1, r0, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0xFF
|
|
beq _080F2630
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r7
|
|
ldrb r2, [r1, 0x5]
|
|
mov r0, r12
|
|
ands r0, r2
|
|
orrs r0, r5
|
|
strb r0, [r1, 0x5]
|
|
_080F2630:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0x5
|
|
bls _080F260C
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
ldr r1, _080F2688 @ =0x00007716
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0xC
|
|
movs r3, 0xC
|
|
bl BeginNormalPaletteFade
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r1, _080F268C @ =gTasks
|
|
mov r2, r9
|
|
adds r0, r2, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r1, 0x7
|
|
strh r1, [r0, 0xE]
|
|
ldr r1, _080F2690 @ =sub_80F2694
|
|
str r1, [r0]
|
|
_080F266E:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2680: .4byte gUnknown_203AB34
|
|
_080F2684: .4byte gSprites
|
|
_080F2688: .4byte 0x00007716
|
|
_080F268C: .4byte gTasks
|
|
_080F2690: .4byte sub_80F2694
|
|
thumb_func_end sub_80F25B0
|
|
|
|
thumb_func_start sub_80F2694
|
|
sub_80F2694: @ 80F2694
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080F26B4 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0xF
|
|
ble _080F26BC
|
|
ldr r0, _080F26B8 @ =sub_80F26D4
|
|
str r0, [r1]
|
|
b _080F26CE
|
|
.align 2, 0
|
|
_080F26B4: .4byte gTasks
|
|
_080F26B8: .4byte sub_80F26D4
|
|
_080F26BC:
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0xE]
|
|
movs r0, 0xE
|
|
ldrsh r1, [r1, r0]
|
|
lsls r1, 24
|
|
lsrs r1, 16
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
_080F26CE:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80F2694
|
|
|
|
thumb_func_start sub_80F26D4
|
|
sub_80F26D4: @ 80F26D4
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
ldr r0, _080F2748 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x8]
|
|
movs r1, 0x1
|
|
bl PlayerGenderToFrontTrainerPicId_Debug
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x6
|
|
str r1, [sp]
|
|
ldr r1, _080F274C @ =0x0000ffff
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0x1
|
|
movs r2, 0x78
|
|
movs r3, 0x48
|
|
bl CreateTrainerPicSprite
|
|
ldr r1, _080F2750 @ =gTasks
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
strh r0, [r4, 0x10]
|
|
ldr r0, _080F2754 @ =gUnknown_840C234
|
|
bl AddWindow
|
|
ldr r1, _080F2758 @ =0x0000021d
|
|
movs r0, 0x1
|
|
movs r2, 0xD0
|
|
bl TextWindow_SetStdFrame0_WithPal
|
|
movs r0, 0x78
|
|
strh r0, [r4, 0xE]
|
|
ldr r0, _080F275C @ =Task_Hof_WaitAndPrintPlayerInfo
|
|
str r0, [r4]
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2748: .4byte gSaveBlock2Ptr
|
|
_080F274C: .4byte 0x0000ffff
|
|
_080F2750: .4byte gTasks
|
|
_080F2754: .4byte gUnknown_840C234
|
|
_080F2758: .4byte 0x0000021d
|
|
_080F275C: .4byte Task_Hof_WaitAndPrintPlayerInfo
|
|
thumb_func_end sub_80F26D4
|
|
|
|
thumb_func_start Task_Hof_WaitAndPrintPlayerInfo
|
|
Task_Hof_WaitAndPrintPlayerInfo: @ 80F2760
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _080F2784 @ =gTasks
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r4, r1, r2
|
|
ldrh r0, [r4, 0xE]
|
|
movs r1, 0xE
|
|
ldrsh r5, [r4, r1]
|
|
cmp r5, 0
|
|
beq _080F2788
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0xE]
|
|
b _080F27F4
|
|
.align 2, 0
|
|
_080F2784: .4byte gTasks
|
|
_080F2788:
|
|
ldr r2, _080F27A8 @ =gSprites
|
|
movs r3, 0x10
|
|
ldrsh r1, [r4, r3]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r0, r2
|
|
ldrh r2, [r1, 0x20]
|
|
movs r3, 0x20
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0xC0
|
|
beq _080F27AC
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1, 0x20]
|
|
b _080F27F4
|
|
.align 2, 0
|
|
_080F27A8: .4byte gSprites
|
|
_080F27AC:
|
|
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, 0x1
|
|
movs r1, 0x2
|
|
bl sub_80F33DC
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl DrawDialogueFrame
|
|
ldr r2, _080F27FC @ =gUnknown_84160C8
|
|
str r5, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized2
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r0, _080F2800 @ =Task_Hof_ExitOnKeyPressed
|
|
str r0, [r4]
|
|
_080F27F4:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F27FC: .4byte gUnknown_84160C8
|
|
_080F2800: .4byte Task_Hof_ExitOnKeyPressed
|
|
thumb_func_end Task_Hof_WaitAndPrintPlayerInfo
|
|
|
|
thumb_func_start Task_Hof_ExitOnKeyPressed
|
|
Task_Hof_ExitOnKeyPressed: @ 80F2804
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080F2830 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080F282A
|
|
movs r0, 0x4
|
|
bl FadeOutBGM
|
|
ldr r0, _080F2834 @ =gTasks
|
|
lsls r1, r4, 2
|
|
adds r1, r4
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080F2838 @ =Task_Hof_HandlePaletteOnExit
|
|
str r0, [r1]
|
|
_080F282A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2830: .4byte gMain
|
|
_080F2834: .4byte gTasks
|
|
_080F2838: .4byte Task_Hof_HandlePaletteOnExit
|
|
thumb_func_end Task_Hof_ExitOnKeyPressed
|
|
|
|
thumb_func_start Task_Hof_HandlePaletteOnExit
|
|
Task_Hof_HandlePaletteOnExit: @ 80F283C
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080F287C @ =gPlttBufferFaded
|
|
ldr r1, _080F2880 @ =gPlttBufferUnfaded
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
bl CpuSet
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r1, 0x8
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
ldr r1, _080F2884 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080F2888 @ =Task_Hof_HandleExit
|
|
str r1, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F287C: .4byte gPlttBufferFaded
|
|
_080F2880: .4byte gPlttBufferUnfaded
|
|
_080F2884: .4byte gTasks
|
|
_080F2888: .4byte Task_Hof_HandleExit
|
|
thumb_func_end Task_Hof_HandlePaletteOnExit
|
|
|
|
thumb_func_start Task_Hof_HandleExit
|
|
Task_Hof_HandleExit: @ 80F288C
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _080F2924 @ =gPaletteFade
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080F291E
|
|
lsls r7, r6, 2
|
|
ldr r1, _080F2928 @ =gTasks
|
|
adds r0, r7, r6
|
|
lsls r0, 3
|
|
adds r1, 0x12
|
|
adds r4, r0, r1
|
|
movs r5, 0x5
|
|
_080F28AC:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xFF
|
|
beq _080F28B6
|
|
bl FreeAndDestroyMonPicSprite
|
|
_080F28B6:
|
|
adds r4, 0x2
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080F28AC
|
|
ldr r0, _080F2928 @ =gTasks
|
|
adds r1, r7, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r0, [r1, 0x10]
|
|
bl FreeAndDestroyTrainerPicSprite
|
|
movs r0, 0
|
|
bl HideBg
|
|
movs r0, 0x1
|
|
bl HideBg
|
|
movs r0, 0x3
|
|
bl HideBg
|
|
bl FreeAllWindowBuffers
|
|
movs r0, 0x1
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0x3
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
adds r0, r6, 0
|
|
bl DestroyTask
|
|
ldr r4, _080F292C @ =gUnknown_203AB3C
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080F290A
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080F290A:
|
|
ldr r4, _080F2930 @ =gUnknown_203AB38
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080F291A
|
|
bl Free
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080F291A:
|
|
bl sub_80F2934
|
|
_080F291E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2924: .4byte gPaletteFade
|
|
_080F2928: .4byte gTasks
|
|
_080F292C: .4byte gUnknown_203AB3C
|
|
_080F2930: .4byte gUnknown_203AB38
|
|
thumb_func_end Task_Hof_HandleExit
|
|
|
|
thumb_func_start sub_80F2934
|
|
sub_80F2934: @ 80F2934
|
|
push {lr}
|
|
sub sp, 0x4
|
|
ldr r0, _080F2970 @ =0x00004085
|
|
movs r1, 0x1
|
|
bl VarSet
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
bl FlagSet
|
|
ldr r1, _080F2974 @ =gUnknown_2031DD8
|
|
movs r0, 0x2
|
|
strb r0, [r1]
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x6
|
|
str r0, [sp]
|
|
movs r0, 0x3
|
|
movs r1, 0x9
|
|
movs r3, 0xB
|
|
bl Overworld_SetWarpDestination
|
|
bl DoWarp
|
|
bl ResetInitialPlayerAvatarState
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2970: .4byte 0x00004085
|
|
_080F2974: .4byte gUnknown_2031DD8
|
|
thumb_func_end sub_80F2934
|
|
|
|
thumb_func_start sub_80F2978
|
|
sub_80F2978: @ 80F2978
|
|
push {r4,lr}
|
|
ldr r0, _080F2994 @ =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x5
|
|
bhi _080F29B4
|
|
lsls r0, 2
|
|
ldr r1, _080F2998 @ =_080F299C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080F2994: .4byte gMain
|
|
_080F2998: .4byte _080F299C
|
|
.align 2, 0
|
|
_080F299C:
|
|
.4byte _080F29B4
|
|
.4byte _080F29E4
|
|
.4byte _080F29EA
|
|
.4byte _080F2A08
|
|
.4byte _080F2A28
|
|
.4byte _080F2A58
|
|
_080F29B4:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
bl ClearVramOamPltt_LoadHofPal
|
|
ldr r4, _080F29D8 @ =gUnknown_203AB3C
|
|
ldr r0, _080F29DC @ =0x00002008
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r0, _080F29E0 @ =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
b _080F2A8C
|
|
.align 2, 0
|
|
_080F29D8: .4byte gUnknown_203AB3C
|
|
_080F29DC: .4byte 0x00002008
|
|
_080F29E0: .4byte gMain
|
|
_080F29E4:
|
|
bl sub_80F36BC
|
|
b _080F2A42
|
|
_080F29EA:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
bl sub_80F36F8
|
|
b _080F2A42
|
|
_080F2A08:
|
|
bl sub_80F3770
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080F2A8C
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80A0A48
|
|
ldr r0, _080F2A24 @ =sub_80F1DAC
|
|
bl SetVBlankCallback
|
|
b _080F2A42
|
|
.align 2, 0
|
|
_080F2A24: .4byte sub_80F1DAC
|
|
_080F2A28:
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
bl sub_80A0A98
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080F2A8C
|
|
_080F2A42:
|
|
ldr r1, _080F2A54 @ =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
b _080F2A8C
|
|
.align 2, 0
|
|
_080F2A54: .4byte gMain
|
|
_080F2A58:
|
|
ldr r1, _080F2A94 @ =0x00003f42
|
|
movs r0, 0x50
|
|
bl SetGpuReg
|
|
movs r1, 0xE2
|
|
lsls r1, 3
|
|
movs r0, 0x52
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
ldr r0, _080F2A98 @ =sub_80F2AA4
|
|
movs r1, 0
|
|
bl CreateTask
|
|
ldr r4, _080F2A9C @ =gUnknown_203AB38
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
bl AllocZeroed
|
|
str r0, [r4]
|
|
ldr r0, _080F2AA0 @ =sub_80F1DC0
|
|
bl SetMainCallback2
|
|
_080F2A8C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2A94: .4byte 0x00003f42
|
|
_080F2A98: .4byte sub_80F2AA4
|
|
_080F2A9C: .4byte gUnknown_203AB38
|
|
_080F2AA0: .4byte sub_80F1DC0
|
|
thumb_func_end sub_80F2978
|
|
|
|
thumb_func_start sub_80F2AA4
|
|
sub_80F2AA4: @ 80F2AA4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r0, _080F2AD8 @ =0x00000226
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
movs r1, 0x1E
|
|
movs r2, 0
|
|
movs r3, 0xC
|
|
bl CreateTopBarWindowLoadPalette
|
|
movs r0, 0x3
|
|
bl Save_LoadGameData
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _080F2AE4
|
|
ldr r0, _080F2ADC @ =gTasks
|
|
lsls r1, r6, 2
|
|
adds r1, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080F2AE0 @ =sub_80F30A4
|
|
b _080F2B5A
|
|
.align 2, 0
|
|
_080F2AD8: .4byte 0x00000226
|
|
_080F2ADC: .4byte gTasks
|
|
_080F2AE0: .4byte sub_80F30A4
|
|
_080F2AE4:
|
|
ldr r0, _080F2B2C @ =gDecompressionBuffer
|
|
ldr r4, _080F2B30 @ =gUnknown_203AB38
|
|
ldr r1, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
bl CpuSet
|
|
ldr r4, [r4]
|
|
movs r2, 0
|
|
ldrh r1, [r4, 0x8]
|
|
ldr r3, _080F2B34 @ =0x000001ff
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
lsls r5, r6, 2
|
|
cmp r0, 0
|
|
beq _080F2B1A
|
|
_080F2B04:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
adds r4, 0x78
|
|
cmp r2, 0x31
|
|
bhi _080F2B3C
|
|
ldrh r1, [r4, 0x8]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080F2B04
|
|
_080F2B1A:
|
|
cmp r2, 0x31
|
|
bhi _080F2B3C
|
|
ldr r0, _080F2B38 @ =gTasks
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
subs r0, r2, 0x1
|
|
b _080F2B46
|
|
.align 2, 0
|
|
_080F2B2C: .4byte gDecompressionBuffer
|
|
_080F2B30: .4byte gUnknown_203AB38
|
|
_080F2B34: .4byte 0x000001ff
|
|
_080F2B38: .4byte gTasks
|
|
_080F2B3C:
|
|
ldr r0, _080F2B64 @ =gTasks
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x31
|
|
_080F2B46:
|
|
strh r0, [r1, 0x8]
|
|
movs r0, 0xA
|
|
bl GetGameStat
|
|
ldr r2, _080F2B64 @ =gTasks
|
|
adds r1, r5, r6
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
strh r0, [r1, 0xA]
|
|
ldr r0, _080F2B68 @ =sub_80F2B6C
|
|
_080F2B5A:
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2B64: .4byte gTasks
|
|
_080F2B68: .4byte sub_80F2B6C
|
|
thumb_func_end sub_80F2AA4
|
|
|
|
thumb_func_start sub_80F2B6C
|
|
sub_80F2B6C: @ 80F2B6C
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
ldr r0, _080F2C24 @ =gUnknown_203AB38
|
|
ldr r3, [r0]
|
|
movs r5, 0
|
|
ldr r1, _080F2C28 @ =gTasks
|
|
mov r2, r9
|
|
lsls r0, r2, 2
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r4, 0x8
|
|
ldrsh r0, [r0, r4]
|
|
adds r4, r1, 0
|
|
ldr r2, _080F2C2C @ =gUnknown_203AB34
|
|
cmp r5, r0
|
|
bge _080F2BAA
|
|
adds r1, r0, 0
|
|
_080F2B9E:
|
|
adds r3, 0x78
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r5, r1
|
|
blt _080F2B9E
|
|
_080F2BAA:
|
|
adds r6, r3, 0
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
mov r5, r9
|
|
lsls r2, r5, 2
|
|
adds r1, r2, r5
|
|
lsls r1, 3
|
|
adds r1, r4
|
|
strh r0, [r1, 0xC]
|
|
strh r0, [r1, 0x10]
|
|
movs r5, 0
|
|
str r2, [sp, 0x14]
|
|
ldr r4, _080F2C30 @ =0x000001ff
|
|
adds r2, r1, 0
|
|
_080F2BC6:
|
|
ldrh r1, [r6, 0x8]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080F2BD6
|
|
ldrh r0, [r2, 0x10]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0x10]
|
|
_080F2BD6:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r6, 0x14
|
|
cmp r5, 0x5
|
|
bls _080F2BC6
|
|
adds r6, r3, 0
|
|
movs r5, 0
|
|
ldr r1, _080F2C28 @ =gTasks
|
|
ldr r0, [sp, 0x14]
|
|
add r0, r9
|
|
lsls r0, 3
|
|
mov r8, r0
|
|
adds r0, r1
|
|
str r0, [sp, 0x10]
|
|
adds r1, 0x8
|
|
mov r10, r1
|
|
_080F2BF8:
|
|
ldrh r1, [r6, 0x8]
|
|
ldr r2, _080F2C30 @ =0x000001ff
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
adds r7, r1, 0
|
|
cmp r0, 0
|
|
beq _080F2CA8
|
|
ldr r4, [sp, 0x10]
|
|
movs r1, 0x10
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3
|
|
ble _080F2C3C
|
|
lsls r1, r5, 3
|
|
ldr r0, _080F2C34 @ =gUnknown_840C268
|
|
adds r0, 0x4
|
|
adds r0, r1, r0
|
|
ldrh r3, [r0]
|
|
ldr r2, _080F2C38 @ =gUnknown_840C26E
|
|
adds r1, r2
|
|
ldrh r4, [r1]
|
|
b _080F2C4C
|
|
.align 2, 0
|
|
_080F2C24: .4byte gUnknown_203AB38
|
|
_080F2C28: .4byte gTasks
|
|
_080F2C2C: .4byte gUnknown_203AB34
|
|
_080F2C30: .4byte 0x000001ff
|
|
_080F2C34: .4byte gUnknown_840C268
|
|
_080F2C38: .4byte gUnknown_840C26E
|
|
_080F2C3C:
|
|
ldr r0, _080F2C9C @ =gUnknown_840C298
|
|
lsls r2, r5, 3
|
|
adds r1, r0, 0x4
|
|
adds r1, r2, r1
|
|
ldrh r3, [r1]
|
|
adds r0, 0x6
|
|
adds r2, r0
|
|
ldrh r4, [r2]
|
|
_080F2C4C:
|
|
lsls r0, r7, 23
|
|
lsrs r0, 23
|
|
ldr r1, [r6]
|
|
ldr r2, [r6, 0x4]
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
str r3, [sp]
|
|
lsls r3, r4, 16
|
|
asrs r3, 16
|
|
str r3, [sp, 0x4]
|
|
lsls r3, r5, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0x8]
|
|
ldr r3, _080F2CA0 @ =0x0000ffff
|
|
str r3, [sp, 0xC]
|
|
movs r3, 0x1
|
|
bl CreateMonPicSprite_HandleDeoxys
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _080F2CA4 @ =gSprites
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r3, [r1, 0x5]
|
|
movs r4, 0xD
|
|
negs r4, r4
|
|
adds r2, r4, 0
|
|
ands r3, r2
|
|
movs r2, 0x4
|
|
orrs r3, r2
|
|
strb r3, [r1, 0x5]
|
|
adds r1, r5, 0x5
|
|
lsls r1, 1
|
|
add r1, r8
|
|
add r1, r10
|
|
strh r0, [r1]
|
|
b _080F2CB4
|
|
.align 2, 0
|
|
_080F2C9C: .4byte gUnknown_840C298
|
|
_080F2CA0: .4byte 0x0000ffff
|
|
_080F2CA4: .4byte gSprites
|
|
_080F2CA8:
|
|
adds r0, r5, 0x5
|
|
lsls r0, 1
|
|
add r0, r8
|
|
add r0, r10
|
|
movs r1, 0xFF
|
|
strh r1, [r0]
|
|
_080F2CB4:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r6, 0x14
|
|
cmp r5, 0x5
|
|
bls _080F2BF8
|
|
ldr r0, _080F2D08 @ =0xffff0000
|
|
ldr r2, _080F2D0C @ =0x00007716
|
|
movs r1, 0xC
|
|
bl BlendPalettes
|
|
ldr r0, _080F2D10 @ =gStringVar1
|
|
ldr r1, _080F2D14 @ =gTasks
|
|
ldr r4, [sp, 0x14]
|
|
add r4, r9
|
|
lsls r4, 3
|
|
adds r4, r1
|
|
movs r5, 0xA
|
|
ldrsh r1, [r4, r5]
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
ldr r5, _080F2D18 @ =gStringVar4
|
|
ldr r1, _080F2D1C @ =gUnknown_84160B4
|
|
adds r0, r5, 0
|
|
bl StringExpandPlaceholders
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bgt _080F2D24
|
|
ldr r1, _080F2D20 @ =gText_UPDOWNPick_ABUTTONBBUTTONCancel
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl TopBarWindowPrintTwoStrings
|
|
b _080F2D34
|
|
.align 2, 0
|
|
_080F2D08: .4byte 0xffff0000
|
|
_080F2D0C: .4byte 0x00007716
|
|
_080F2D10: .4byte gStringVar1
|
|
_080F2D14: .4byte gTasks
|
|
_080F2D18: .4byte gStringVar4
|
|
_080F2D1C: .4byte gUnknown_84160B4
|
|
_080F2D20: .4byte gText_UPDOWNPick_ABUTTONBBUTTONCancel
|
|
_080F2D24:
|
|
ldr r1, _080F2D54 @ =gText_UPDOWNPick_ABUTTONNext_BBUTTONBack
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl TopBarWindowPrintTwoStrings
|
|
_080F2D34:
|
|
ldr r0, _080F2D58 @ =gTasks
|
|
ldr r1, [sp, 0x14]
|
|
add r1, r9
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080F2D5C @ =Task_HofPC_PrintMonInfo
|
|
str r0, [r1]
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2D54: .4byte gText_UPDOWNPick_ABUTTONNext_BBUTTONBack
|
|
_080F2D58: .4byte gTasks
|
|
_080F2D5C: .4byte Task_HofPC_PrintMonInfo
|
|
thumb_func_end sub_80F2B6C
|
|
|
|
thumb_func_start Task_HofPC_PrintMonInfo
|
|
Task_HofPC_PrintMonInfo: @ 80F2D60
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _080F2E68 @ =gUnknown_203AB38
|
|
ldr r5, [r0]
|
|
movs r3, 0
|
|
ldr r1, _080F2E6C @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
movs r2, 0x8
|
|
ldrsh r0, [r0, r2]
|
|
cmp r3, r0
|
|
bge _080F2D94
|
|
adds r1, r0, 0
|
|
_080F2D88:
|
|
adds r5, 0x78
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, r1
|
|
blt _080F2D88
|
|
_080F2D94:
|
|
movs r3, 0
|
|
lsls r7, r4, 2
|
|
adds r0, r7, r4
|
|
lsls r6, r0, 3
|
|
ldr r0, _080F2E70 @ =gTasks+0x8
|
|
mov r10, r0
|
|
ldr r1, _080F2E74 @ =gSprites
|
|
mov r8, r1
|
|
movs r2, 0xD
|
|
negs r2, r2
|
|
mov r9, r2
|
|
movs r0, 0x4
|
|
mov r12, r0
|
|
_080F2DAE:
|
|
adds r0, r3, 0x5
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
add r0, r10
|
|
ldrh r1, [r0]
|
|
cmp r1, 0xFF
|
|
beq _080F2DD0
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldrb r2, [r0, 0x5]
|
|
mov r1, r9
|
|
ands r1, r2
|
|
mov r2, r12
|
|
orrs r1, r2
|
|
strb r1, [r0, 0x5]
|
|
_080F2DD0:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
cmp r3, 0x5
|
|
bls _080F2DAE
|
|
adds r1, r7, r4
|
|
lsls r1, 3
|
|
ldr r0, _080F2E6C @ =gTasks
|
|
adds r6, r1, r0
|
|
movs r2, 0xC
|
|
ldrsh r0, [r6, r2]
|
|
adds r0, 0x5
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldr r1, _080F2E6C @ =gTasks
|
|
adds r1, 0x8
|
|
adds r0, r1
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080F2E74 @ =gSprites
|
|
adds r0, r1
|
|
ldrb r2, [r0, 0x5]
|
|
movs r1, 0xD
|
|
negs r1, r1
|
|
ands r1, r2
|
|
strb r1, [r0, 0x5]
|
|
lsrs r1, 4
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
lsls r0, r1
|
|
ldr r1, _080F2E78 @ =0xffff0000
|
|
eors r0, r1
|
|
ldr r2, _080F2E7C @ =gUnknown_203AB34
|
|
str r0, [r2]
|
|
ldr r2, _080F2E80 @ =0x00007716
|
|
movs r1, 0xC
|
|
bl BlendPalettesUnfaded
|
|
movs r0, 0xC
|
|
ldrsh r1, [r6, r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r4, r5, r0
|
|
ldrh r1, [r4, 0x8]
|
|
ldr r0, _080F2E84 @ =0x000001ff
|
|
ands r0, r1
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _080F2E4A
|
|
bl StopCryAndClearCrySongs
|
|
ldrh r0, [r4, 0x8]
|
|
lsls r0, 23
|
|
lsrs r0, 23
|
|
movs r1, 0
|
|
bl PlayCry1
|
|
_080F2E4A:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0xE
|
|
bl sub_80F3194
|
|
ldr r0, _080F2E88 @ =Task_HofPC_HandleInput
|
|
str r0, [r6]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2E68: .4byte gUnknown_203AB38
|
|
_080F2E6C: .4byte gTasks
|
|
_080F2E70: .4byte gTasks+0x8
|
|
_080F2E74: .4byte gSprites
|
|
_080F2E78: .4byte 0xffff0000
|
|
_080F2E7C: .4byte gUnknown_203AB34
|
|
_080F2E80: .4byte 0x00007716
|
|
_080F2E84: .4byte 0x000001ff
|
|
_080F2E88: .4byte Task_HofPC_HandleInput
|
|
thumb_func_end Task_HofPC_PrintMonInfo
|
|
|
|
thumb_func_start Task_HofPC_HandleInput
|
|
Task_HofPC_HandleInput: @ 80F2E8C
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
ldr r1, _080F2F00 @ =gMain
|
|
ldrh r2, [r1, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
adds r3, r1, 0
|
|
cmp r0, 0
|
|
beq _080F2F38
|
|
ldr r7, _080F2F04 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r1, r0, r5
|
|
lsls r3, r1, 3
|
|
adds r4, r3, r7
|
|
ldrh r2, [r4, 0x8]
|
|
movs r6, 0x8
|
|
ldrsh r1, [r4, r6]
|
|
mov r8, r0
|
|
cmp r1, 0
|
|
beq _080F2F0C
|
|
subs r0, r2, 0x1
|
|
strh r0, [r4, 0x8]
|
|
movs r4, 0
|
|
adds r6, r3, 0
|
|
adds r7, 0x8
|
|
_080F2EC4:
|
|
adds r0, r4, 0x5
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
adds r0, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
beq _080F2ED6
|
|
bl FreeAndDestroyMonPicSprite
|
|
_080F2ED6:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
cmp r4, 0x5
|
|
bls _080F2EC4
|
|
ldr r0, _080F2F04 @ =gTasks
|
|
mov r2, r8
|
|
adds r1, r2, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0xA]
|
|
movs r3, 0xA
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _080F2EF8
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0xA]
|
|
_080F2EF8:
|
|
ldr r0, _080F2F08 @ =sub_80F2B6C
|
|
str r0, [r1]
|
|
b _080F2FD8
|
|
.align 2, 0
|
|
_080F2F00: .4byte gMain
|
|
_080F2F04: .4byte gTasks
|
|
_080F2F08: .4byte sub_80F2B6C
|
|
_080F2F0C:
|
|
bl IsCryPlayingOrClearCrySongs
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080F2F26
|
|
bl StopCryAndClearCrySongs
|
|
ldr r0, _080F2F2C @ =gMPlayInfo_BGM
|
|
ldr r1, _080F2F30 @ =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
_080F2F26:
|
|
ldr r0, _080F2F34 @ =sub_80F2FEC
|
|
str r0, [r4]
|
|
b _080F2FD8
|
|
.align 2, 0
|
|
_080F2F2C: .4byte gMPlayInfo_BGM
|
|
_080F2F30: .4byte 0x0000ffff
|
|
_080F2F34: .4byte sub_80F2FEC
|
|
_080F2F38:
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080F2F7C
|
|
bl IsCryPlayingOrClearCrySongs
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080F2F5A
|
|
bl StopCryAndClearCrySongs
|
|
ldr r0, _080F2F6C @ =gMPlayInfo_BGM
|
|
ldr r1, _080F2F70 @ =0x0000ffff
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl m4aMPlayVolumeControl
|
|
_080F2F5A:
|
|
ldr r0, _080F2F74 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080F2F78 @ =sub_80F2FEC
|
|
str r0, [r1]
|
|
b _080F2FD8
|
|
.align 2, 0
|
|
_080F2F6C: .4byte gMPlayInfo_BGM
|
|
_080F2F70: .4byte 0x0000ffff
|
|
_080F2F74: .4byte gTasks
|
|
_080F2F78: .4byte sub_80F2FEC
|
|
_080F2F7C:
|
|
movs r0, 0x40
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080F2FAC
|
|
ldr r0, _080F2FA4 @ =gTasks
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0xC]
|
|
movs r4, 0xC
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
beq _080F2FAC
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1, 0xC]
|
|
ldr r0, _080F2FA8 @ =Task_HofPC_PrintMonInfo
|
|
str r0, [r1]
|
|
b _080F2FD8
|
|
.align 2, 0
|
|
_080F2FA4: .4byte gTasks
|
|
_080F2FA8: .4byte Task_HofPC_PrintMonInfo
|
|
_080F2FAC:
|
|
ldrh r1, [r3, 0x2E]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080F2FD8
|
|
ldr r1, _080F2FE4 @ =gTasks
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
adds r2, r0, r1
|
|
movs r6, 0xC
|
|
ldrsh r1, [r2, r6]
|
|
movs r3, 0x10
|
|
ldrsh r0, [r2, r3]
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
bge _080F2FD8
|
|
ldrh r0, [r2, 0xC]
|
|
adds r0, 0x1
|
|
strh r0, [r2, 0xC]
|
|
ldr r0, _080F2FE8 @ =Task_HofPC_PrintMonInfo
|
|
str r0, [r2]
|
|
_080F2FD8:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F2FE4: .4byte gTasks
|
|
_080F2FE8: .4byte Task_HofPC_PrintMonInfo
|
|
thumb_func_end Task_HofPC_HandleInput
|
|
|
|
thumb_func_start sub_80F2FEC
|
|
sub_80F2FEC: @ 80F2FEC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080F3020 @ =gPlttBufferFaded
|
|
ldr r1, _080F3024 @ =gPlttBufferUnfaded
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
bl CpuSet
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80A0A70
|
|
ldr r1, _080F3028 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080F302C @ =sub_80F3030
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F3020: .4byte gPlttBufferFaded
|
|
_080F3024: .4byte gPlttBufferUnfaded
|
|
_080F3028: .4byte gTasks
|
|
_080F302C: .4byte sub_80F3030
|
|
thumb_func_end sub_80F2FEC
|
|
|
|
thumb_func_start sub_80F3030
|
|
sub_80F3030: @ 80F3030
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
bl sub_80A0AAC
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _080F3094
|
|
movs r0, 0
|
|
bl HideBg
|
|
movs r0, 0x1
|
|
bl HideBg
|
|
movs r0, 0x3
|
|
bl HideBg
|
|
bl DestroyTopBarWindow
|
|
bl FreeAllWindowBuffers
|
|
movs r0, 0x1
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0x3
|
|
bl UnsetBgTilemapBuffer
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
ldr r5, _080F309C @ =gUnknown_203AB3C
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _080F3082
|
|
bl Free
|
|
str r4, [r5]
|
|
_080F3082:
|
|
ldr r5, _080F30A0 @ =gUnknown_203AB38
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _080F3090
|
|
bl Free
|
|
str r4, [r5]
|
|
_080F3090:
|
|
bl ReturnFromHallOfFamePC
|
|
_080F3094:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F309C: .4byte gUnknown_203AB3C
|
|
_080F30A0: .4byte gUnknown_203AB38
|
|
thumb_func_end sub_80F3030
|
|
|
|
thumb_func_start sub_80F30A4
|
|
sub_80F30A4: @ 80F30A4
|
|
push {r4,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080F30FC @ =gText_ABUTTONExit
|
|
movs r1, 0x8
|
|
movs r2, 0x1
|
|
bl TopBarWindowPrintString
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl DrawDialogueFrame
|
|
ldr r2, _080F3100 @ =gUnknown_8416090
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r3, 0
|
|
bl AddTextPrinterParameterized2
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
ldr r1, _080F3104 @ =gTasks
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, _080F3108 @ =Task_HofPC_ExitOnButtonPress
|
|
str r1, [r0]
|
|
add sp, 0x10
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F30FC: .4byte gText_ABUTTONExit
|
|
_080F3100: .4byte gUnknown_8416090
|
|
_080F3104: .4byte gTasks
|
|
_080F3108: .4byte Task_HofPC_ExitOnButtonPress
|
|
thumb_func_end sub_80F30A4
|
|
|
|
thumb_func_start Task_HofPC_ExitOnButtonPress
|
|
Task_HofPC_ExitOnButtonPress: @ 80F310C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _080F3130 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080F312C
|
|
ldr r0, _080F3134 @ =gTasks
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, _080F3138 @ =sub_80F2FEC
|
|
str r0, [r1]
|
|
_080F312C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F3130: .4byte gMain
|
|
_080F3134: .4byte gTasks
|
|
_080F3138: .4byte sub_80F2FEC
|
|
thumb_func_end Task_HofPC_ExitOnButtonPress
|
|
|
|
thumb_func_start HallOfFame_PrintWelcomeText
|
|
HallOfFame_PrintWelcomeText: @ 80F313C
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
ldr r5, _080F318C @ =gUnknown_8416008
|
|
movs r0, 0x2
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl GetStringWidth
|
|
movs r4, 0xD0
|
|
subs r4, r0
|
|
lsrs r0, r4, 31
|
|
adds r4, r0
|
|
asrs r4, 1
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
ldr r0, _080F3190 @ =gUnknown_840C23C
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r1, 0x2
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl AddTextPrinterParameterized3
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F318C: .4byte gUnknown_8416008
|
|
_080F3190: .4byte gUnknown_840C23C
|
|
thumb_func_end HallOfFame_PrintWelcomeText
|
|
|
|
thumb_func_start sub_80F3194
|
|
sub_80F3194: @ 80F3194
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x34
|
|
adds r7, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0
|
|
bl PutWindowTilemap
|
|
ldrh r0, [r7, 0x8]
|
|
ldr r1, _080F3214 @ =0x000001ff
|
|
ands r1, r0
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _080F3252
|
|
add r4, sp, 0x1C
|
|
ldr r1, _080F3218 @ =gUnknown_84160EC
|
|
adds r0, r4, 0
|
|
bl StringCopy
|
|
ldrh r0, [r7, 0x8]
|
|
lsls r0, 23
|
|
lsrs r0, 23
|
|
bl sub_8043F90
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, _080F321C @ =0x0000ffff
|
|
mov r8, r4
|
|
cmp r6, r0
|
|
beq _080F3220
|
|
add r4, sp, 0xC
|
|
adds r0, r6, 0
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r4]
|
|
add r5, sp, 0xC
|
|
adds r0, r6, 0
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5, 0x1]
|
|
add r5, sp, 0xC
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5, 0x2]
|
|
b _080F322E
|
|
.align 2, 0
|
|
_080F3214: .4byte 0x000001ff
|
|
_080F3218: .4byte gUnknown_84160EC
|
|
_080F321C: .4byte 0x0000ffff
|
|
_080F3220:
|
|
add r3, sp, 0xC
|
|
adds r2, r3, 0
|
|
adds r1, r2, 0
|
|
movs r0, 0xAC
|
|
strb r0, [r1, 0x2]
|
|
strb r0, [r2, 0x1]
|
|
strb r0, [r3]
|
|
_080F322E:
|
|
add r1, sp, 0xC
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x3]
|
|
mov r0, r8
|
|
bl StringAppend
|
|
ldr r0, _080F32B8 @ =gUnknown_840C23C
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
mov r0, r8
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0x10
|
|
movs r3, 0x1
|
|
bl AddTextPrinterParameterized3
|
|
_080F3252:
|
|
movs r2, 0
|
|
ldrb r0, [r7, 0xA]
|
|
cmp r0, 0xFF
|
|
beq _080F327C
|
|
adds r3, r7, 0
|
|
adds r3, 0xA
|
|
_080F325E:
|
|
mov r1, sp
|
|
adds r1, r2
|
|
adds r1, 0xC
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0x9
|
|
bhi _080F327C
|
|
adds r0, r3, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _080F325E
|
|
_080F327C:
|
|
mov r1, sp
|
|
adds r1, r2
|
|
adds r1, 0xC
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r0, 0x2
|
|
movs r1, 0x2
|
|
bl GetFontAttribute
|
|
adds r2, r0, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0x2
|
|
add r1, sp, 0xC
|
|
bl GetStringWidth
|
|
adds r2, r0, 0
|
|
ldrh r1, [r7, 0x8]
|
|
ldr r0, _080F32BC @ =0x000001ff
|
|
ands r0, r1
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
bne _080F32C0
|
|
lsrs r0, r2, 31
|
|
adds r0, r2, r0
|
|
asrs r0, 1
|
|
movs r1, 0x80
|
|
subs r0, r1, r0
|
|
b _080F32C4
|
|
.align 2, 0
|
|
_080F32B8: .4byte gUnknown_840C23C
|
|
_080F32BC: .4byte 0x000001ff
|
|
_080F32C0:
|
|
movs r0, 0x80
|
|
subs r0, r2
|
|
_080F32C4:
|
|
lsls r2, r0, 24
|
|
lsrs r2, 24
|
|
ldr r0, _080F331C @ =gUnknown_840C23C
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
add r0, sp, 0xC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r3, 0x1
|
|
bl AddTextPrinterParameterized3
|
|
ldrh r2, [r7, 0x8]
|
|
ldr r4, _080F3320 @ =0x000001ff
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
movs r1, 0xCE
|
|
lsls r1, 1
|
|
cmp r0, r1
|
|
beq _080F33BA
|
|
add r1, sp, 0xC
|
|
movs r0, 0xBA
|
|
strb r0, [r1]
|
|
mov r0, sp
|
|
adds r0, 0xD
|
|
lsls r1, r2, 23
|
|
lsrs r1, 23
|
|
movs r2, 0xB
|
|
muls r1, r2
|
|
ldr r2, _080F3324 @ =gSpeciesNames
|
|
adds r1, r2
|
|
bl StringCopy
|
|
adds r6, r0, 0
|
|
ldrh r1, [r7, 0x8]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0x20
|
|
beq _080F3318
|
|
cmp r0, 0x1D
|
|
bne _080F3328
|
|
_080F3318:
|
|
movs r0, 0xFF
|
|
b _080F333A
|
|
.align 2, 0
|
|
_080F331C: .4byte gUnknown_840C23C
|
|
_080F3320: .4byte 0x000001ff
|
|
_080F3324: .4byte gSpeciesNames
|
|
_080F3328:
|
|
lsls r0, r1, 23
|
|
lsrs r0, 23
|
|
ldr r1, [r7, 0x4]
|
|
bl GetGenderFromSpeciesAndPersonality
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _080F3342
|
|
_080F333A:
|
|
cmp r0, 0xFE
|
|
beq _080F3346
|
|
movs r0, 0
|
|
b _080F3348
|
|
_080F3342:
|
|
movs r0, 0xB5
|
|
b _080F3348
|
|
_080F3346:
|
|
movs r0, 0xB6
|
|
_080F3348:
|
|
strb r0, [r6]
|
|
adds r6, 0x1
|
|
movs r0, 0xFF
|
|
strb r0, [r6]
|
|
ldr r5, _080F33D0 @ =gUnknown_840C23C
|
|
str r5, [sp]
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
add r0, sp, 0xC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0x80
|
|
movs r3, 0x1
|
|
bl AddTextPrinterParameterized3
|
|
ldr r1, _080F33D4 @ =gUnknown_84160F4
|
|
add r0, sp, 0xC
|
|
bl StringCopy
|
|
adds r6, r0, 0
|
|
ldrb r1, [r7, 0x9]
|
|
lsrs r1, 1
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl ConvertIntToDecimalStringN
|
|
str r5, [sp]
|
|
str r4, [sp, 0x4]
|
|
add r0, sp, 0xC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0x20
|
|
movs r3, 0x11
|
|
bl AddTextPrinterParameterized3
|
|
ldr r1, _080F33D8 @ =gUnknown_8416104
|
|
add r0, sp, 0xC
|
|
bl StringCopy
|
|
adds r6, r0, 0
|
|
ldrh r1, [r7]
|
|
movs r2, 0x2
|
|
movs r3, 0x5
|
|
bl ConvertIntToDecimalStringN
|
|
str r5, [sp]
|
|
str r4, [sp, 0x4]
|
|
add r0, sp, 0xC
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0
|
|
movs r1, 0x2
|
|
movs r2, 0x60
|
|
movs r3, 0x11
|
|
bl AddTextPrinterParameterized3
|
|
_080F33BA:
|
|
movs r0, 0
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0x34
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F33D0: .4byte gUnknown_840C23C
|
|
_080F33D4: .4byte gUnknown_84160F4
|
|
_080F33D8: .4byte gUnknown_8416104
|
|
thumb_func_end sub_80F3194
|
|
|
|
thumb_func_start sub_80F33DC
|
|
sub_80F33DC: @ 80F33DC
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x2C
|
|
ldr r0, _080F35EC @ =gUnknown_840C234
|
|
ldrb r6, [r0, 0x3]
|
|
lsls r6, 3
|
|
subs r0, r6, 0x6
|
|
str r0, [sp, 0x28]
|
|
movs r0, 0x1
|
|
movs r1, 0x11
|
|
bl FillWindowPixelBuffer
|
|
movs r0, 0x1
|
|
bl PutWindowTilemap
|
|
ldr r2, _080F35F0 @ =0x0000021d
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r3, 0xD
|
|
bl DrawStdFrameWithCustomTileAndPalette
|
|
movs r7, 0
|
|
str r7, [sp]
|
|
str r7, [sp, 0x4]
|
|
ldr r1, _080F35F4 @ =gUnknown_840C240
|
|
mov r9, r1
|
|
str r1, [sp, 0x8]
|
|
str r7, [sp, 0xC]
|
|
ldr r0, _080F35F8 @ =gUnknown_84160FC
|
|
str r0, [sp, 0x10]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0x4
|
|
movs r3, 0x3
|
|
bl AddTextPrinterParameterized4
|
|
ldr r0, _080F35FC @ =gSaveBlock2Ptr
|
|
mov r10, r0
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
bl GetStringWidth
|
|
adds r2, r0, 0
|
|
ldr r1, [sp, 0x28]
|
|
subs r2, r1, r2
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r0, r9
|
|
str r0, [sp]
|
|
str r7, [sp, 0x4]
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r3, 0x3
|
|
bl AddTextPrinterParameterized3
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
ldrb r4, [r0, 0xA]
|
|
ldrb r0, [r0, 0xB]
|
|
lsls r0, 8
|
|
orrs r4, r0
|
|
mov r0, r9
|
|
str r0, [sp]
|
|
str r7, [sp, 0x4]
|
|
ldr r0, _080F3600 @ =gUnknown_8416104
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0x4
|
|
movs r3, 0x12
|
|
bl AddTextPrinterParameterized3
|
|
add r1, sp, 0x14
|
|
mov r8, r1
|
|
ldr r1, _080F3604 @ =0x000186a0
|
|
adds r0, r4, 0
|
|
bl __modsi3
|
|
ldr r5, _080F3608 @ =0x00002710
|
|
adds r1, r5, 0
|
|
bl __divsi3
|
|
subs r0, 0x5F
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
add r0, sp, 0x14
|
|
mov r8, r0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r5, 0xFA
|
|
lsls r5, 2
|
|
adds r1, r5, 0
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
mov r1, r8
|
|
strb r0, [r1, 0x1]
|
|
add r0, sp, 0x14
|
|
mov r8, r0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
mov r1, r8
|
|
strb r0, [r1, 0x2]
|
|
add r5, sp, 0x14
|
|
adds r0, r4, 0
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5, 0x3]
|
|
add r5, sp, 0x14
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5, 0x4]
|
|
add r1, sp, 0x14
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x5]
|
|
subs r6, 0x24
|
|
lsls r6, 24
|
|
lsrs r6, 24
|
|
mov r0, r9
|
|
str r0, [sp]
|
|
str r7, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
adds r2, r6, 0
|
|
movs r3, 0x12
|
|
bl AddTextPrinterParameterized3
|
|
mov r1, r9
|
|
str r1, [sp]
|
|
str r7, [sp, 0x4]
|
|
ldr r0, _080F360C @ =gUnknown_8415CE8
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r2, 0x4
|
|
movs r3, 0x20
|
|
bl AddTextPrinterParameterized3
|
|
add r5, sp, 0x14
|
|
mov r0, r10
|
|
ldr r4, [r0]
|
|
ldrh r0, [r4, 0xE]
|
|
movs r1, 0x64
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5]
|
|
add r5, sp, 0x14
|
|
ldrh r0, [r4, 0xE]
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5, 0x1]
|
|
add r5, sp, 0x14
|
|
ldrh r0, [r4, 0xE]
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r5, 0x2]
|
|
add r0, sp, 0x14
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xA1
|
|
bne _080F3570
|
|
add r0, sp, 0x14
|
|
strb r7, [r0]
|
|
_080F3570:
|
|
add r0, sp, 0x14
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
bne _080F3582
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0xA1
|
|
bne _080F3582
|
|
add r0, sp, 0x14
|
|
strb r1, [r0, 0x1]
|
|
_080F3582:
|
|
add r1, sp, 0x14
|
|
movs r6, 0
|
|
movs r0, 0xF0
|
|
strb r0, [r1, 0x3]
|
|
adds r4, r1, 0
|
|
ldr r0, _080F35FC @ =gSaveBlock2Ptr
|
|
ldr r5, [r0]
|
|
ldrb r0, [r5, 0x10]
|
|
movs r1, 0x64
|
|
bl __umodsi3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
movs r1, 0xA
|
|
bl __udivsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r4, 0x4]
|
|
add r4, sp, 0x14
|
|
ldrb r0, [r5, 0x10]
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
adds r0, 0xA1
|
|
strb r0, [r4, 0x5]
|
|
add r1, sp, 0x14
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x6]
|
|
ldr r2, [sp, 0x28]
|
|
subs r2, 0x24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, _080F35F4 @ =gUnknown_840C240
|
|
str r0, [sp]
|
|
str r6, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0x1
|
|
movs r1, 0x2
|
|
movs r3, 0x20
|
|
bl AddTextPrinterParameterized3
|
|
movs r0, 0x1
|
|
movs r1, 0x3
|
|
bl CopyWindowToVram
|
|
add sp, 0x2C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F35EC: .4byte gUnknown_840C234
|
|
_080F35F0: .4byte 0x0000021d
|
|
_080F35F4: .4byte gUnknown_840C240
|
|
_080F35F8: .4byte gUnknown_84160FC
|
|
_080F35FC: .4byte gSaveBlock2Ptr
|
|
_080F3600: .4byte gUnknown_8416104
|
|
_080F3604: .4byte 0x000186a0
|
|
_080F3608: .4byte 0x00002710
|
|
_080F360C: .4byte gUnknown_8415CE8
|
|
thumb_func_end sub_80F33DC
|
|
|
|
thumb_func_start ClearVramOamPltt_LoadHofPal
|
|
ClearVramOamPltt_LoadHofPal: @ 80F3610
|
|
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, _080F36B0 @ =0x040000d4
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
ldr r7, _080F36B4 @ =0x81000800
|
|
movs r0, 0x81
|
|
lsls r0, 24
|
|
mov r12, r0
|
|
_080F3636:
|
|
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 _080F3636
|
|
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, _080F36B0 @ =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]
|
|
bl ResetPaletteFade
|
|
ldr r0, _080F36B8 @ =gUnknown_840C39C
|
|
movs r1, 0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F36B0: .4byte 0x040000d4
|
|
_080F36B4: .4byte 0x81000800
|
|
_080F36B8: .4byte gUnknown_840C39C
|
|
thumb_func_end ClearVramOamPltt_LoadHofPal
|
|
|
|
thumb_func_start sub_80F36BC
|
|
sub_80F36BC: @ 80F36BC
|
|
push {lr}
|
|
bl ScanlineEffect_Stop
|
|
bl ResetTasks
|
|
bl ResetSpriteData
|
|
bl ResetTempTileDataBuffers
|
|
bl ResetAllPicSprites
|
|
bl FreeAllSpritePalettes
|
|
ldr r1, _080F36EC @ =gReservedSpritePaletteCount
|
|
movs r0, 0x8
|
|
strb r0, [r1]
|
|
ldr r0, _080F36F0 @ =gUnknown_840C248
|
|
bl LoadCompressedSpriteSheet
|
|
ldr r0, _080F36F4 @ =gUnknown_840C258
|
|
bl LoadCompressedSpritePalette
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F36EC: .4byte gReservedSpritePaletteCount
|
|
_080F36F0: .4byte gUnknown_840C248
|
|
_080F36F4: .4byte gUnknown_840C258
|
|
thumb_func_end sub_80F36BC
|
|
|
|
thumb_func_start sub_80F36F8
|
|
sub_80F36F8: @ 80F36F8
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, _080F3764 @ =gUnknown_840C228
|
|
movs r0, 0
|
|
movs r2, 0x3
|
|
bl InitBgsFromTemplates
|
|
ldr r4, _080F3768 @ =gUnknown_203AB3C
|
|
ldr r1, [r4]
|
|
adds r1, 0x6
|
|
movs r0, 0x1
|
|
bl SetBgTilemapBuffer
|
|
ldr r1, [r4]
|
|
ldr r0, _080F376C @ =0x00001006
|
|
adds r1, r0
|
|
movs r0, 0x3
|
|
bl SetBgTilemapBuffer
|
|
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, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl ChangeBgY
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F3764: .4byte gUnknown_840C228
|
|
_080F3768: .4byte gUnknown_203AB3C
|
|
_080F376C: .4byte 0x00001006
|
|
thumb_func_end sub_80F36F8
|
|
|
|
thumb_func_start sub_80F3770
|
|
sub_80F3770: @ 80F3770
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
ldr r0, _080F3788 @ =gUnknown_203AB3C
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x4
|
|
bhi _080F3854
|
|
lsls r0, 2
|
|
ldr r1, _080F378C @ =_080F3790
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080F3788: .4byte gUnknown_203AB3C
|
|
_080F378C: .4byte _080F3790
|
|
.align 2, 0
|
|
_080F3790:
|
|
.4byte _080F37A4
|
|
.4byte _080F37BC
|
|
.4byte _080F37C8
|
|
.4byte _080F381E
|
|
.4byte _080F3828
|
|
_080F37A4:
|
|
ldr r1, _080F37B8 @ =gUnknown_840C3BC
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl DecompressAndCopyTileDataToVram
|
|
b _080F3854
|
|
.align 2, 0
|
|
_080F37B8: .4byte gUnknown_840C3BC
|
|
_080F37BC:
|
|
bl FreeTempTileDataBuffersIfPossible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080F3854
|
|
b _080F385E
|
|
_080F37C8:
|
|
movs r4, 0x20
|
|
str r4, [sp]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
str r4, [sp]
|
|
movs r0, 0xB
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x3
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
str r4, [sp]
|
|
movs r0, 0x6
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0x1
|
|
movs r1, 0x1
|
|
movs r2, 0
|
|
movs r3, 0xE
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
str r4, [sp]
|
|
str r4, [sp, 0x4]
|
|
movs r0, 0x3
|
|
movs r1, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl FillBgTilemapBufferRect_Palette0
|
|
movs r0, 0x1
|
|
bl CopyBgTilemapBufferToVram
|
|
movs r0, 0x3
|
|
bl CopyBgTilemapBufferToVram
|
|
b _080F3854
|
|
_080F381E:
|
|
bl InitStandardTextBoxWindows
|
|
bl ResetBg0
|
|
b _080F3854
|
|
_080F3828:
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuReg
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
ldr r0, _080F3850 @ =gUnknown_203AB3C
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
b _080F3860
|
|
.align 2, 0
|
|
_080F3850: .4byte gUnknown_203AB3C
|
|
_080F3854:
|
|
ldr r0, _080F3868 @ =gUnknown_203AB3C
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
_080F385E:
|
|
movs r0, 0x1
|
|
_080F3860:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080F3868: .4byte gUnknown_203AB3C
|
|
thumb_func_end sub_80F3770
|
|
|
|
thumb_func_start nullsub_84
|
|
nullsub_84: @ 80F386C
|
|
bx lr
|
|
thumb_func_end nullsub_84
|
|
|
|
thumb_func_start sub_80F3870
|
|
sub_80F3870: @ 80F3870
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldr r1, [r2, 0x20]
|
|
ldr r0, [r2, 0x30]
|
|
cmp r1, r0
|
|
beq _080F38C6
|
|
ldrh r3, [r2, 0x20]
|
|
movs r1, 0x20
|
|
ldrsh r0, [r2, r1]
|
|
movs r4, 0x30
|
|
ldrsh r1, [r2, r4]
|
|
cmp r0, r1
|
|
bge _080F3890
|
|
adds r0, r3, 0
|
|
adds r0, 0xF
|
|
strh r0, [r2, 0x20]
|
|
_080F3890:
|
|
ldrh r3, [r2, 0x20]
|
|
movs r4, 0x20
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, r1
|
|
ble _080F38A0
|
|
adds r0, r3, 0
|
|
subs r0, 0xF
|
|
strh r0, [r2, 0x20]
|
|
_080F38A0:
|
|
ldrh r3, [r2, 0x22]
|
|
movs r1, 0x22
|
|
ldrsh r0, [r2, r1]
|
|
movs r4, 0x32
|
|
ldrsh r1, [r2, r4]
|
|
cmp r0, r1
|
|
bge _080F38B4
|
|
adds r0, r3, 0
|
|
adds r0, 0xA
|
|
strh r0, [r2, 0x22]
|
|
_080F38B4:
|
|
ldrh r3, [r2, 0x22]
|
|
movs r4, 0x22
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, r1
|
|
ble _080F38CE
|
|
adds r0, r3, 0
|
|
subs r0, 0xA
|
|
strh r0, [r2, 0x22]
|
|
b _080F38CE
|
|
_080F38C6:
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
ldr r0, _080F38D4 @ =nullsub_84
|
|
str r0, [r2, 0x1C]
|
|
_080F38CE:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F38D4: .4byte nullsub_84
|
|
thumb_func_end sub_80F3870
|
|
|
|
thumb_func_start sub_80F38D8
|
|
sub_80F38D8: @ 80F38D8
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldrh r1, [r5, 0x26]
|
|
movs r2, 0x26
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x78
|
|
ble _080F38EE
|
|
adds r0, r5, 0
|
|
bl DestroySprite
|
|
b _080F3926
|
|
_080F38EE:
|
|
adds r0, r1, 0x1
|
|
ldrh r1, [r5, 0x30]
|
|
adds r0, r1
|
|
strh r0, [r5, 0x26]
|
|
ldrh r4, [r5, 0x2E]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
adds r0, 0x8
|
|
ldr r1, _080F392C @ =gSineTable
|
|
lsls r4, 1
|
|
adds r4, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
muls r0, r1
|
|
cmp r0, 0
|
|
bge _080F391C
|
|
adds r0, 0xFF
|
|
_080F391C:
|
|
asrs r0, 8
|
|
strh r0, [r5, 0x24]
|
|
ldrh r0, [r5, 0x2E]
|
|
adds r0, 0x4
|
|
strh r0, [r5, 0x2E]
|
|
_080F3926:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080F392C: .4byte gSineTable
|
|
thumb_func_end sub_80F38D8
|
|
|
|
thumb_func_start sub_80F3930
|
|
sub_80F3930: @ 80F3930
|
|
push {r4,lr}
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xF0
|
|
bl __umodsi3
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
bl Random
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0x7
|
|
ands r2, r0
|
|
negs r2, r2
|
|
ldr r0, _080F39A0 @ =gUnknown_840C384
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r1, r4, 0
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 4
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080F39A4 @ =gSprites
|
|
adds r4, r1, r0
|
|
bl Random
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x11
|
|
bl __umodsi3
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
bl StartSpriteAnim
|
|
bl Random
|
|
movs r1, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080F39A8
|
|
movs r0, 0
|
|
b _080F39AA
|
|
.align 2, 0
|
|
_080F39A0: .4byte gUnknown_840C384
|
|
_080F39A4: .4byte gSprites
|
|
_080F39A8:
|
|
movs r0, 0x1
|
|
_080F39AA:
|
|
strh r0, [r4, 0x30]
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80F3930
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|