mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 22:28:44 -05:00
2307 lines
38 KiB
ArmAsm
2307 lines
38 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8078914
|
|
sub_8078914: @ 8078914
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
ldr r0, _08078930 @ =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldrb r6, [r0]
|
|
cmp r6, 0x1
|
|
beq _080789F0
|
|
cmp r6, 0x1
|
|
bgt _08078934
|
|
cmp r6, 0
|
|
beq _08078946
|
|
b _0807893A
|
|
.align 2, 0
|
|
_08078930: .4byte gMain
|
|
_08078934:
|
|
cmp r6, 0x2
|
|
bne _0807893A
|
|
b _08078AC0
|
|
_0807893A:
|
|
ldr r0, _080789D0 @ =gMain
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_08078946:
|
|
movs r0, 0
|
|
bl SetVBlankCallback
|
|
bl StartTimer1
|
|
ldr r0, _080789D4 @ =gHeap
|
|
movs r1, 0xE0
|
|
lsls r1, 9
|
|
bl InitHeap
|
|
bl ResetTasks
|
|
bl ResetSpriteData
|
|
bl FreeAllSpritePalettes
|
|
bl ResetPaletteFade
|
|
bl sub_8078B34
|
|
add r1, sp, 0x4
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r1, _080789D8 @ =0x040000d4
|
|
add r0, sp, 0x4
|
|
str r0, [r1]
|
|
movs r0, 0xC0
|
|
lsls r0, 19
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _080789DC @ =0x8100c000
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r2, 0
|
|
str r2, [sp, 0x8]
|
|
add r0, sp, 0x8
|
|
str r0, [r1]
|
|
movs r0, 0xE0
|
|
lsls r0, 19
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _080789E0 @ =0x85000100
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
add r0, sp, 0x4
|
|
strh r2, [r0]
|
|
str r0, [r1]
|
|
movs r0, 0xA0
|
|
lsls r0, 19
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _080789E4 @ =0x81000200
|
|
str r0, [r1, 0x8]
|
|
ldr r0, [r1, 0x8]
|
|
movs r0, 0
|
|
bl ResetBgsAndClearDma3BusyFlags
|
|
ldr r1, _080789E8 @ =gUnknown_83BFB74
|
|
movs r0, 0
|
|
movs r2, 0x4
|
|
bl InitBgsFromTemplates
|
|
movs r1, 0x82
|
|
lsls r1, 5
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, _080789EC @ =gUnknown_2037F30
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
b _08078B18
|
|
.align 2, 0
|
|
_080789D0: .4byte gMain
|
|
_080789D4: .4byte gHeap
|
|
_080789D8: .4byte 0x040000d4
|
|
_080789DC: .4byte 0x8100c000
|
|
_080789E0: .4byte 0x85000100
|
|
_080789E4: .4byte 0x81000200
|
|
_080789E8: .4byte gUnknown_83BFB74
|
|
_080789EC: .4byte gUnknown_2037F30
|
|
_080789F0:
|
|
ldr r0, _08078A94 @ =gUnknown_8EAB6C4
|
|
movs r2, 0xD0
|
|
lsls r2, 1
|
|
movs r1, 0
|
|
bl LoadPalette
|
|
ldr r1, _08078A98 @ =gUnknown_8EAB8C4
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r1, _08078A9C @ =gUnknown_8EAD390
|
|
str r6, [sp]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r0, _08078AA0 @ =gUnknown_8EAD5E8
|
|
movs r1, 0xD0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, _08078AA4 @ =gUnknown_8EAD608
|
|
str r4, [sp]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r1, _08078AA8 @ =gUnknown_8EADEE4
|
|
str r6, [sp]
|
|
movs r0, 0x1
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r5, _08078AAC @ =gUnknown_8EAE094
|
|
adds r0, r5, 0
|
|
movs r1, 0xF0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, _08078AB0 @ =gUnknown_8EAE0B4
|
|
str r4, [sp]
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r1, _08078AB4 @ =gUnknown_8EAE374
|
|
str r6, [sp]
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
adds r0, r5, 0
|
|
movs r1, 0xE0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r1, _08078AB8 @ =gUnknown_83BF58C
|
|
str r4, [sp]
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
ldr r1, _08078ABC @ =gUnknown_83BF5A8
|
|
str r6, [sp]
|
|
movs r0, 0x3
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl decompress_and_copy_tile_data_to_vram
|
|
bl sub_8079708
|
|
b _08078B18
|
|
.align 2, 0
|
|
_08078A94: .4byte gUnknown_8EAB6C4
|
|
_08078A98: .4byte gUnknown_8EAB8C4
|
|
_08078A9C: .4byte gUnknown_8EAD390
|
|
_08078AA0: .4byte gUnknown_8EAD5E8
|
|
_08078AA4: .4byte gUnknown_8EAD608
|
|
_08078AA8: .4byte gUnknown_8EADEE4
|
|
_08078AAC: .4byte gUnknown_8EAE094
|
|
_08078AB0: .4byte gUnknown_8EAE0B4
|
|
_08078AB4: .4byte gUnknown_8EAE374
|
|
_08078AB8: .4byte gUnknown_83BF58C
|
|
_08078ABC: .4byte gUnknown_83BF5A8
|
|
_08078AC0:
|
|
bl free_temp_tile_data_buffers_if_possible
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08078B26
|
|
ldr r0, _08078B00 @ =0x0000ffff
|
|
movs r1, 0x10
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
ldr r0, _08078B04 @ =sub_8078C24
|
|
movs r1, 0x4
|
|
bl CreateTask
|
|
ldr r0, _08078B08 @ =sub_8078BEC
|
|
movs r1, 0x2
|
|
bl CreateTask
|
|
ldr r1, _08078B0C @ =gUnknown_2037F30
|
|
strb r0, [r1]
|
|
ldr r0, _08078B10 @ =sub_8078BB4
|
|
bl SetVBlankCallback
|
|
ldr r0, _08078B14 @ =sub_8078B9C
|
|
bl SetMainCallback2
|
|
movs r0, 0x8B
|
|
lsls r0, 1
|
|
bl m4aSongNumStart
|
|
b _08078B26
|
|
.align 2, 0
|
|
_08078B00: .4byte 0x0000ffff
|
|
_08078B04: .4byte sub_8078C24
|
|
_08078B08: .4byte sub_8078BEC
|
|
_08078B0C: .4byte gUnknown_2037F30
|
|
_08078B10: .4byte sub_8078BB4
|
|
_08078B14: .4byte sub_8078B9C
|
|
_08078B18:
|
|
ldr r1, _08078B30 @ =gMain
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
adds r0, 0x1
|
|
strb r0, [r1]
|
|
_08078B26:
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078B30: .4byte gMain
|
|
thumb_func_end sub_8078914
|
|
|
|
thumb_func_start sub_8078B34
|
|
sub_8078B34: @ 8078B34
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x52
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x10
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x12
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x14
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x16
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x18
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1A
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1C
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x1E
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8078B34
|
|
|
|
thumb_func_start sub_8078B9C
|
|
sub_8078B9C: @ 8078B9C
|
|
push {lr}
|
|
bl RunTasks
|
|
bl AnimateSprites
|
|
bl BuildOamBuffer
|
|
bl UpdatePaletteFade
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8078B9C
|
|
|
|
thumb_func_start sub_8078BB4
|
|
sub_8078BB4: @ 8078BB4
|
|
push {lr}
|
|
bl LoadOam
|
|
bl ProcessSpriteCopyRequests
|
|
bl TransferPlttBuffer
|
|
bl sub_8087F54
|
|
ldr r1, _08078BE4 @ =gUnknown_2037F30
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xFF
|
|
beq _08078BE0
|
|
ldr r2, _08078BE8 @ =gUnknown_3005090
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrh r1, [r0, 0x8]
|
|
adds r1, 0x1
|
|
strh r1, [r0, 0x8]
|
|
_08078BE0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078BE4: .4byte gUnknown_2037F30
|
|
_08078BE8: .4byte gUnknown_3005090
|
|
thumb_func_end sub_8078BB4
|
|
|
|
thumb_func_start sub_8078BEC
|
|
sub_8078BEC: @ 8078BEC
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _08078C18 @ =gUnknown_3005098
|
|
adds r0, r1
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
ldr r0, _08078C1C @ =0x00000a8b
|
|
cmp r1, r0
|
|
ble _08078C12
|
|
ldr r1, _08078C20 @ =gUnknown_2037F30
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
adds r0, r2, 0
|
|
bl DestroyTask
|
|
_08078C12:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078C18: .4byte gUnknown_3005098
|
|
_08078C1C: .4byte 0x00000a8b
|
|
_08078C20: .4byte gUnknown_2037F30
|
|
thumb_func_end sub_8078BEC
|
|
|
|
thumb_func_start sub_8078C24
|
|
sub_8078C24: @ 8078C24
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _08078C6C @ =gUnknown_3005098
|
|
adds r4, r1, r0
|
|
ldr r0, _08078C70 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0xB
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08078C74
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3
|
|
beq _08078C74
|
|
cmp r0, 0x4
|
|
beq _08078C74
|
|
cmp r0, 0x5
|
|
beq _08078C74
|
|
bl sub_8079620
|
|
bl sub_8079648
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
bl sub_8079A10
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl sub_8078C90
|
|
b _08078C86
|
|
.align 2, 0
|
|
_08078C6C: .4byte gUnknown_3005098
|
|
_08078C70: .4byte gMain
|
|
_08078C74:
|
|
ldr r0, _08078C8C @ =gUnknown_83BFB84
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r4, 0
|
|
bl _call_via_r1
|
|
_08078C86:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078C8C: .4byte gUnknown_83BFB84
|
|
thumb_func_end sub_8078C24
|
|
|
|
thumb_func_start sub_8078C90
|
|
sub_8078C90: @ 8078C90
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0
|
|
strh r2, [r0, 0x2]
|
|
strh r1, [r0]
|
|
bx lr
|
|
thumb_func_end sub_8078C90
|
|
|
|
thumb_func_start sub_8078C9C
|
|
sub_8078C9C: @ 8078C9C
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x10
|
|
mov r8, r0
|
|
movs r0, 0
|
|
bl HideBg
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
ldr r0, _08078D14 @ =0x04000054
|
|
str r0, [sp]
|
|
ldr r0, _08078D18 @ =0xa2600001
|
|
str r0, [sp, 0x4]
|
|
mov r1, sp
|
|
movs r5, 0
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x8]
|
|
mov r0, sp
|
|
strb r5, [r0, 0x9]
|
|
add r0, sp, 0xC
|
|
strh r5, [r0]
|
|
ldr r4, _08078D1C @ =gUnknown_2038700
|
|
ldr r6, _08078D20 @ =0x010000a0
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl CpuSet
|
|
mov r0, sp
|
|
adds r0, 0xE
|
|
strh r5, [r0]
|
|
movs r1, 0xF0
|
|
lsls r1, 3
|
|
adds r4, r1
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl CpuSet
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
bl sub_8087EE4
|
|
mov r0, r8
|
|
movs r1, 0x1
|
|
bl sub_8078C90
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078D14: .4byte 0x04000054
|
|
_08078D18: .4byte 0xa2600001
|
|
_08078D1C: .4byte gUnknown_2038700
|
|
_08078D20: .4byte 0x010000a0
|
|
thumb_func_end sub_8078C9C
|
|
|
|
thumb_func_start sub_8078D24
|
|
sub_8078D24: @ 8078D24
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _08078D5C
|
|
cmp r0, 0x1
|
|
bgt _08078D3A
|
|
cmp r0, 0
|
|
beq _08078D40
|
|
b _08078D9C
|
|
_08078D3A:
|
|
cmp r0, 0x2
|
|
beq _08078D84
|
|
b _08078D9C
|
|
_08078D40:
|
|
movs r0, 0x50
|
|
movs r1, 0x82
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x80
|
|
strh r0, [r4, 0x4]
|
|
movs r0, 0x80
|
|
bl sub_8079550
|
|
b _08078D78
|
|
_08078D5C:
|
|
ldrh r0, [r4, 0x4]
|
|
subs r0, 0x4
|
|
strh r0, [r4, 0x4]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_8079550
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bge _08078D9C
|
|
ldr r1, _08078D80 @ =gUnknown_2039600
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
_08078D78:
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
b _08078D9C
|
|
.align 2, 0
|
|
_08078D80: .4byte gUnknown_2039600
|
|
_08078D84:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_8078C90
|
|
_08078D9C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8078D24
|
|
|
|
thumb_func_start sub_8078DA4
|
|
sub_8078DA4: @ 8078DA4
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
adds r6, r0, 0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x9
|
|
bls _08078DB4
|
|
b _08078FB6
|
|
_08078DB4:
|
|
lsls r0, 2
|
|
ldr r1, _08078DC0 @ =_08078DC4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08078DC0: .4byte _08078DC4
|
|
.align 2, 0
|
|
_08078DC4:
|
|
.4byte _08078DEC
|
|
.4byte _08078DF2
|
|
.4byte _08078E24
|
|
.4byte _08078E40
|
|
.4byte _08078E80
|
|
.4byte _08078EA4
|
|
.4byte _08078ED4
|
|
.4byte _08078EF8
|
|
.4byte _08078F24
|
|
.4byte _08078F98
|
|
_08078DEC:
|
|
movs r0, 0
|
|
strh r0, [r6, 0x4]
|
|
b _08078F80
|
|
_08078DF2:
|
|
ldrh r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x4]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bgt _08078E02
|
|
b _08078FB6
|
|
_08078E02:
|
|
ldr r0, _08078E20 @ =gUnknown_2037398
|
|
movs r1, 0x10
|
|
bl TintPalette_GrayScale2
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r1, 0x9
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
b _08078F80
|
|
.align 2, 0
|
|
_08078E20: .4byte gUnknown_2037398
|
|
_08078E24:
|
|
ldr r0, _08078E3C @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08078E36
|
|
b _08078FB6
|
|
_08078E36:
|
|
strh r0, [r6, 0x4]
|
|
b _08078F80
|
|
.align 2, 0
|
|
_08078E3C: .4byte gUnknown_2037AB8
|
|
_08078E40:
|
|
ldrh r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x4]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x24
|
|
bgt _08078E50
|
|
b _08078FB6
|
|
_08078E50:
|
|
ldr r0, _08078E78 @ =sub_80792C8
|
|
movs r1, 0x3
|
|
bl CreateTask
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
ldr r2, _08078E7C @ =0x00007fde
|
|
str r2, [sp]
|
|
movs r4, 0
|
|
str r4, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
movs r2, 0x1
|
|
movs r3, 0x10
|
|
bl sub_80717A8
|
|
strh r4, [r6, 0x4]
|
|
b _08078F80
|
|
.align 2, 0
|
|
_08078E78: .4byte sub_80792C8
|
|
_08078E7C: .4byte 0x00007fde
|
|
_08078E80:
|
|
movs r0, 0
|
|
bl sub_807185C
|
|
adds r3, r0, 0
|
|
cmp r3, 0
|
|
beq _08078E8E
|
|
b _08078FB6
|
|
_08078E8E:
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
ldr r2, _08078EA0 @ =0x00007fde
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
str r3, [sp, 0x8]
|
|
b _08078F78
|
|
.align 2, 0
|
|
_08078EA0: .4byte 0x00007fde
|
|
_08078EA4:
|
|
ldrh r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x4]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
bgt _08078EB4
|
|
b _08078FB6
|
|
_08078EB4:
|
|
movs r0, 0
|
|
strh r0, [r6, 0x4]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
ldr r2, _08078ED0 @ =0x00007fde
|
|
str r2, [sp]
|
|
movs r2, 0
|
|
str r2, [sp, 0x4]
|
|
str r2, [sp, 0x8]
|
|
movs r2, 0x1
|
|
movs r3, 0x10
|
|
b _08078F7C
|
|
.align 2, 0
|
|
_08078ED0: .4byte 0x00007fde
|
|
_08078ED4:
|
|
movs r0, 0
|
|
bl sub_807185C
|
|
adds r3, r0, 0
|
|
cmp r3, 0
|
|
bne _08078FB6
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
ldr r2, _08078EF4 @ =0x00007fde
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
str r3, [sp, 0x8]
|
|
b _08078F78
|
|
.align 2, 0
|
|
_08078EF4: .4byte 0x00007fde
|
|
_08078EF8:
|
|
ldrh r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x4]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x14
|
|
ble _08078FB6
|
|
movs r0, 0
|
|
strh r0, [r6, 0x4]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
movs r1, 0x3
|
|
negs r1, r1
|
|
ldr r2, _08078F20 @ =0x00007fde
|
|
str r2, [sp]
|
|
movs r2, 0
|
|
str r2, [sp, 0x4]
|
|
str r2, [sp, 0x8]
|
|
movs r3, 0x10
|
|
b _08078F7C
|
|
.align 2, 0
|
|
_08078F20: .4byte 0x00007fde
|
|
_08078F24:
|
|
movs r0, 0
|
|
bl sub_807185C
|
|
adds r7, r0, 0
|
|
cmp r7, 0
|
|
bne _08078FB6
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0xA]
|
|
bl sub_80799F0
|
|
movs r4, 0x80
|
|
lsls r4, 9
|
|
lsls r4, r0
|
|
ldr r0, _08078F88 @ =0x00001fff
|
|
orrs r4, r0
|
|
ldr r5, _08078F8C @ =0x00007fde
|
|
adds r0, r4, 0
|
|
movs r1, 0x10
|
|
adds r2, r5, 0
|
|
bl BlendPalettes
|
|
str r5, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x10
|
|
movs r3, 0
|
|
bl BeginNormalPaletteFade
|
|
movs r0, 0
|
|
bl ShowBg
|
|
ldr r0, _08078F90 @ =gUnknown_8EAD5E8
|
|
ldr r1, _08078F94 @ =gUnknown_2037398
|
|
movs r2, 0x10
|
|
bl CpuSet
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
str r5, [sp]
|
|
str r7, [sp, 0x4]
|
|
str r7, [sp, 0x8]
|
|
movs r1, 0x1
|
|
_08078F78:
|
|
movs r2, 0xF
|
|
movs r3, 0
|
|
_08078F7C:
|
|
bl sub_80717A8
|
|
_08078F80:
|
|
ldrh r0, [r6, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x2]
|
|
b _08078FB6
|
|
.align 2, 0
|
|
_08078F88: .4byte 0x00001fff
|
|
_08078F8C: .4byte 0x00007fde
|
|
_08078F90: .4byte gUnknown_8EAD5E8
|
|
_08078F94: .4byte gUnknown_2037398
|
|
_08078F98:
|
|
movs r0, 0
|
|
bl sub_807185C
|
|
cmp r0, 0
|
|
bne _08078FB6
|
|
ldr r0, _08078FC0 @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08078FB6
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl sub_8078C90
|
|
_08078FB6:
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08078FC0: .4byte gUnknown_2037AB8
|
|
thumb_func_end sub_8078DA4
|
|
|
|
thumb_func_start sub_8078FC4
|
|
sub_8078FC4: @ 8078FC4
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _08078FD6
|
|
cmp r0, 0x1
|
|
beq _08079004
|
|
b _08079094
|
|
_08078FD6:
|
|
movs r0, 0x1
|
|
bl sub_812B1F0
|
|
ldr r0, _0807902C @ =sub_807941C
|
|
movs r1, 0
|
|
bl CreateTask
|
|
ldr r0, _08079030 @ =sub_8079840
|
|
movs r1, 0x5
|
|
bl CreateTask
|
|
bl sub_80790A0
|
|
bl sub_8079A40
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
strh r0, [r4, 0xC]
|
|
bl sub_812B484
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
_08079004:
|
|
ldr r2, _08079034 @ =gMain
|
|
ldrh r1, [r2, 0x2C]
|
|
movs r0, 0x46
|
|
ands r0, r1
|
|
cmp r0, 0x46
|
|
bne _08079040
|
|
ldrb r0, [r4, 0xC]
|
|
bl sub_8079A88
|
|
ldr r0, _08079038 @ =sub_8078C24
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
ldr r0, _0807903C @ =sub_80796CC
|
|
bl SetMainCallback2
|
|
b _08079094
|
|
.align 2, 0
|
|
_0807902C: .4byte sub_807941C
|
|
_08079030: .4byte sub_8079840
|
|
_08079034: .4byte gMain
|
|
_08079038: .4byte sub_8078C24
|
|
_0807903C: .4byte sub_80796CC
|
|
_08079040:
|
|
movs r0, 0x6
|
|
ands r0, r1
|
|
cmp r0, 0x6
|
|
bne _0807906C
|
|
ldrb r0, [r4, 0xC]
|
|
bl sub_8079A88
|
|
ldr r0, _08079064 @ =sub_8078C24
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
ldr r0, _08079068 @ =sub_80796E8
|
|
bl SetMainCallback2
|
|
b _08079094
|
|
.align 2, 0
|
|
_08079064: .4byte sub_8078C24
|
|
_08079068: .4byte sub_80796E8
|
|
_0807906C:
|
|
ldrh r1, [r2, 0x2E]
|
|
movs r0, 0x9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08079080
|
|
adds r0, r4, 0
|
|
movs r1, 0x5
|
|
bl sub_8078C90
|
|
b _08079094
|
|
_08079080:
|
|
ldr r0, _0807909C @ =sub_8078BEC
|
|
bl FuncIsActiveTask
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08079094
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
bl sub_8078C90
|
|
_08079094:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0807909C: .4byte sub_8078BEC
|
|
thumb_func_end sub_8078FC4
|
|
|
|
thumb_func_start sub_80790A0
|
|
sub_80790A0: @ 80790A0
|
|
push {lr}
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
ldr r1, _080790C8 @ =0x00003f1f
|
|
movs r0, 0x4A
|
|
bl SetGpuReg
|
|
movs r0, 0x50
|
|
movs r1, 0x81
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0xD
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080790C8: .4byte 0x00003f1f
|
|
thumb_func_end sub_80790A0
|
|
|
|
thumb_func_start sub_80790CC
|
|
sub_80790CC: @ 80790CC
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4
|
|
bhi _080791B0
|
|
lsls r0, 2
|
|
ldr r1, _080790E4 @ =_080790E8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080790E4: .4byte _080790E8
|
|
.align 2, 0
|
|
_080790E8:
|
|
.4byte _080790FC
|
|
.4byte _08079104
|
|
.4byte _0807913C
|
|
.4byte _08079170
|
|
.4byte _08079198
|
|
_080790FC:
|
|
ldrb r0, [r4, 0xC]
|
|
bl sub_8079A88
|
|
b _0807918C
|
|
_08079104:
|
|
ldr r0, _08079138 @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080791B0
|
|
ldrb r0, [r4, 0xC]
|
|
bl sub_8079AA8
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
bne _080791B0
|
|
movs r0, 0xA
|
|
bl FadeOutMapMusic
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r5, [sp]
|
|
movs r1, 0x3
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
bl sub_8079528
|
|
b _0807918C
|
|
.align 2, 0
|
|
_08079138: .4byte gUnknown_2037AB8
|
|
_0807913C:
|
|
bl IsNotWaitingForBGMStop
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080791B0
|
|
ldr r0, _08079168 @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _080791B0
|
|
ldr r0, _0807916C @ =sub_807941C
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
strh r5, [r4, 0x4]
|
|
b _0807918C
|
|
.align 2, 0
|
|
_08079168: .4byte gUnknown_2037AB8
|
|
_0807916C: .4byte sub_807941C
|
|
_08079170:
|
|
ldrh r0, [r4, 0x4]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x4]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x13
|
|
ble _080791B0
|
|
ldr r0, _08079194 @ =sub_807941C
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
_0807918C:
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
b _080791B0
|
|
.align 2, 0
|
|
_08079194: .4byte sub_807941C
|
|
_08079198:
|
|
bl sub_812B478
|
|
ldr r0, _080791B8 @ =sub_8078C24
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
ldr r0, _080791BC @ =sub_80EC864
|
|
bl SetMainCallback2
|
|
_080791B0:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080791B8: .4byte sub_8078C24
|
|
_080791BC: .4byte sub_80EC864
|
|
thumb_func_end sub_80790CC
|
|
|
|
thumb_func_start sub_80791C0
|
|
sub_80791C0: @ 80791C0
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _08079204
|
|
cmp r0, 0x1
|
|
bgt _080791D8
|
|
cmp r0, 0
|
|
beq _080791DE
|
|
b _080792A6
|
|
_080791D8:
|
|
cmp r0, 0x2
|
|
beq _08079248
|
|
b _080792A6
|
|
_080791DE:
|
|
ldr r0, _08079200 @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _080792A6
|
|
movs r0, 0x6
|
|
movs r1, 0
|
|
bl PlayCry1
|
|
ldrb r0, [r4, 0xC]
|
|
bl sub_8079A88
|
|
strh r5, [r4, 0x4]
|
|
b _08079238
|
|
.align 2, 0
|
|
_08079200: .4byte gUnknown_2037AB8
|
|
_08079204:
|
|
ldrh r1, [r4, 0x4]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x59
|
|
bgt _08079214
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x4]
|
|
b _080792A6
|
|
_08079214:
|
|
ldrb r0, [r4, 0xC]
|
|
bl sub_8079AA8
|
|
cmp r0, 0
|
|
bne _080792A6
|
|
ldr r0, _08079240 @ =0x0fffffff
|
|
ldr r1, _08079244 @ =0x00007fff
|
|
str r1, [sp]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x10
|
|
bl BeginNormalPaletteFade
|
|
bl sub_8079528
|
|
movs r0, 0x4
|
|
bl FadeOutBGM
|
|
_08079238:
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
b _080792A6
|
|
.align 2, 0
|
|
_08079240: .4byte 0x0fffffff
|
|
_08079244: .4byte 0x00007fff
|
|
_08079248:
|
|
ldr r0, _080792B0 @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080792A6
|
|
bl SeedRngAndSetTrainerId
|
|
bl SetSaveBlocksPointers
|
|
bl sub_8054A28
|
|
bl ResetSaveCounters
|
|
movs r0, 0
|
|
bl sub_80DA4FC
|
|
ldr r0, _080792B4 @ =gUnknown_30053A0
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _08079276
|
|
cmp r0, 0x2
|
|
bne _0807927A
|
|
_08079276:
|
|
bl Sav2_ClearSetDefault
|
|
_0807927A:
|
|
ldr r0, _080792B8 @ =gSaveBlock2Ptr
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x15]
|
|
lsls r0, 31
|
|
lsrs r0, 31
|
|
bl SetPokemonCryStereo
|
|
ldr r0, _080792BC @ =gHeap
|
|
movs r1, 0xE0
|
|
lsls r1, 9
|
|
bl InitHeap
|
|
ldr r0, _080792C0 @ =sub_800C300
|
|
bl SetMainCallback2
|
|
ldr r0, _080792C4 @ =sub_8078C24
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl DestroyTask
|
|
_080792A6:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080792B0: .4byte gUnknown_2037AB8
|
|
_080792B4: .4byte gUnknown_30053A0
|
|
_080792B8: .4byte gSaveBlock2Ptr
|
|
_080792BC: .4byte gHeap
|
|
_080792C0: .4byte sub_800C300
|
|
_080792C4: .4byte sub_8078C24
|
|
thumb_func_end sub_80791C0
|
|
|
|
thumb_func_start sub_80792C8
|
|
sub_80792C8: @ 80792C8
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _080792EC @ =gUnknown_3005098
|
|
adds r4, r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x5
|
|
bls _080792E2
|
|
b _08079414
|
|
_080792E2:
|
|
lsls r0, 2
|
|
ldr r1, _080792F0 @ =_080792F4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080792EC: .4byte gUnknown_3005098
|
|
_080792F0: .4byte _080792F4
|
|
.align 2, 0
|
|
_080792F4:
|
|
.4byte _0807930C
|
|
.4byte _08079344
|
|
.4byte _08079368
|
|
.4byte _0807937C
|
|
.4byte _080793BC
|
|
.4byte _08079404
|
|
_0807930C:
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
movs r0, 0
|
|
bl SetGpuRegBits
|
|
movs r0, 0x48
|
|
movs r1, 0x3F
|
|
bl SetGpuReg
|
|
movs r0, 0x4A
|
|
movs r1, 0x37
|
|
bl SetGpuReg
|
|
movs r0, 0x44
|
|
movs r1, 0xA0
|
|
bl SetGpuReg
|
|
movs r0, 0x40
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
b _080793AA
|
|
_08079344:
|
|
movs r1, 0xC0
|
|
lsls r1, 1
|
|
adds r0, r1, 0
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x2]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r4, 0x4]
|
|
cmp r0, 0xEF
|
|
ble _08079364
|
|
movs r0, 0xF0
|
|
strh r0, [r4, 0x4]
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
_08079364:
|
|
ldrh r1, [r4, 0x4]
|
|
b _080793F6
|
|
_08079368:
|
|
ldrh r0, [r4, 0x6]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x6]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x9
|
|
ble _08079414
|
|
movs r0, 0
|
|
strh r0, [r4, 0x6]
|
|
b _080793AA
|
|
_0807937C:
|
|
movs r0, 0x4A
|
|
movs r1, 0x3B
|
|
bl SetGpuReg
|
|
ldr r1, _080793B4 @ =0x0000f0f0
|
|
movs r0, 0x40
|
|
bl SetGpuReg
|
|
ldr r1, _080793B8 @ =0xffff1000
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl BlendPalettes
|
|
movs r1, 0xF0
|
|
lsls r1, 4
|
|
adds r0, r1, 0
|
|
strh r0, [r4, 0x2]
|
|
_080793AA:
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
b _08079414
|
|
.align 2, 0
|
|
_080793B4: .4byte 0x0000f0f0
|
|
_080793B8: .4byte 0xffff1000
|
|
_080793BC:
|
|
ldr r1, _08079400 @ =0xfffffe80
|
|
adds r0, r1, 0
|
|
ldrh r1, [r4, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x2]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r4, 0x4]
|
|
cmp r0, 0
|
|
bgt _080793DA
|
|
movs r0, 0
|
|
strh r0, [r4, 0x4]
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
_080793DA:
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
negs r1, r1
|
|
lsls r1, 8
|
|
movs r0, 0x2
|
|
movs r2, 0
|
|
bl ChangeBgX
|
|
ldrh r1, [r4, 0x4]
|
|
lsls r1, 8
|
|
movs r0, 0xF0
|
|
orrs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
_080793F6:
|
|
movs r0, 0x40
|
|
bl SetGpuReg
|
|
b _08079414
|
|
.align 2, 0
|
|
_08079400: .4byte 0xfffffe80
|
|
_08079404:
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
adds r0, r5, 0
|
|
bl DestroyTask
|
|
_08079414:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80792C8
|
|
|
|
thumb_func_start sub_807941C
|
|
sub_807941C: @ 807941C
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r1, _08079460 @ =gUnknown_3005098
|
|
adds r5, r0, r1
|
|
movs r1, 0x1E
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _08079444
|
|
ldr r0, _08079464 @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08079444
|
|
movs r0, 0x1
|
|
strh r0, [r5, 0x1C]
|
|
_08079444:
|
|
movs r3, 0x1C
|
|
ldrsh r0, [r5, r3]
|
|
cmp r0, 0
|
|
beq _08079468
|
|
ldr r0, _08079464 @ =gUnknown_2037AB8
|
|
ldrb r1, [r0, 0x7]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08079468
|
|
adds r0, r2, 0
|
|
bl DestroyTask
|
|
b _08079510
|
|
.align 2, 0
|
|
_08079460: .4byte gUnknown_3005098
|
|
_08079464: .4byte gUnknown_2037AB8
|
|
_08079468:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r5, r1]
|
|
ldrh r2, [r5, 0x2]
|
|
cmp r0, 0
|
|
bne _08079476
|
|
movs r0, 0x3C
|
|
b _08079478
|
|
_08079476:
|
|
movs r0, 0x1E
|
|
_08079478:
|
|
strh r0, [r5, 0x4]
|
|
ldrh r0, [r5]
|
|
adds r0, 0x1
|
|
strh r0, [r5]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r3, 0x4
|
|
ldrsh r1, [r5, r3]
|
|
cmp r0, r1
|
|
blt _08079510
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
movs r0, 0x1
|
|
eors r0, r2
|
|
strh r0, [r5, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _080794CC
|
|
ldr r2, _080794C0 @ =gUnknown_20371F8
|
|
ldr r4, _080794C4 @ =gUnknown_8EAE094
|
|
ldr r1, _080794C8 @ =gUnknown_20375F8
|
|
movs r0, 0xF1
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
adds r2, r0
|
|
movs r3, 0x4
|
|
_080794AC:
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r2]
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
adds r2, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080794AC
|
|
b _080794F2
|
|
.align 2, 0
|
|
_080794C0: .4byte gUnknown_20371F8
|
|
_080794C4: .4byte gUnknown_8EAE094
|
|
_080794C8: .4byte gUnknown_20375F8
|
|
_080794CC:
|
|
movs r3, 0
|
|
ldr r2, _08079518 @ =gUnknown_20371F8
|
|
ldr r0, _0807951C @ =gUnknown_8EAE094
|
|
ldr r1, _08079520 @ =gUnknown_20375F8
|
|
adds r4, r0, 0x2
|
|
movs r0, 0xF1
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
adds r2, r0
|
|
_080794DE:
|
|
ldrh r0, [r4]
|
|
strh r0, [r2]
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
adds r1, 0x2
|
|
adds r2, 0x2
|
|
adds r3, 0x1
|
|
cmp r3, 0x4
|
|
ble _080794DE
|
|
_080794F2:
|
|
movs r1, 0x1C
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _08079510
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ldr r2, _08079524 @ =gUnknown_2037AB8
|
|
ldrh r1, [r2, 0x4]
|
|
lsls r1, 21
|
|
lsrs r1, 27
|
|
ldrh r2, [r2, 0x6]
|
|
lsls r2, 17
|
|
lsrs r2, 17
|
|
bl BlendPalettes
|
|
_08079510:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079518: .4byte gUnknown_20371F8
|
|
_0807951C: .4byte gUnknown_8EAE094
|
|
_08079520: .4byte gUnknown_20375F8
|
|
_08079524: .4byte gUnknown_2037AB8
|
|
thumb_func_end sub_807941C
|
|
|
|
thumb_func_start sub_8079528
|
|
sub_8079528: @ 8079528
|
|
push {lr}
|
|
ldr r0, _08079548 @ =sub_807941C
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0807954C @ =gUnknown_3005090
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x26]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079548: .4byte sub_807941C
|
|
_0807954C: .4byte gUnknown_3005090
|
|
thumb_func_end sub_8079528
|
|
|
|
thumb_func_start sub_8079550
|
|
sub_8079550: @ 8079550
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r5, r0, 16
|
|
asrs r4, r5, 16
|
|
cmp r4, 0
|
|
blt _08079574
|
|
ldr r3, _08079618 @ =gUnknown_2038700
|
|
lsls r2, r4, 1
|
|
ldr r0, _0807961C @ =gUnknown_2039600
|
|
ldrb r1, [r0, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r3
|
|
movs r0, 0x10
|
|
strh r0, [r2]
|
|
_08079574:
|
|
movs r3, 0
|
|
mov r8, r5
|
|
adds r6, r4, 0
|
|
ldr r0, _08079618 @ =gUnknown_2038700
|
|
mov r12, r0
|
|
ldr r7, _0807961C @ =gUnknown_2039600
|
|
movs r5, 0xF
|
|
lsls r2, r6, 1
|
|
adds r4, r2, 0
|
|
_08079586:
|
|
adds r0, r6, r3
|
|
cmp r0, 0
|
|
blt _0807959A
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r0, r4, r0
|
|
add r0, r12
|
|
strh r5, [r0]
|
|
_0807959A:
|
|
subs r0, r6, r3
|
|
cmp r0, 0
|
|
blt _080795AE
|
|
ldrb r1, [r7, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r0, r2, r0
|
|
add r0, r12
|
|
strh r5, [r0]
|
|
_080795AE:
|
|
subs r5, 0x1
|
|
subs r2, 0x2
|
|
adds r4, 0x2
|
|
adds r3, 0x1
|
|
cmp r3, 0xF
|
|
ble _08079586
|
|
mov r1, r8
|
|
asrs r0, r1, 16
|
|
adds r3, r0, 0
|
|
adds r3, 0x10
|
|
cmp r3, 0x9F
|
|
bgt _080795E6
|
|
ldr r6, _08079618 @ =gUnknown_2038700
|
|
ldr r5, _0807961C @ =gUnknown_2039600
|
|
movs r4, 0
|
|
_080795CC:
|
|
cmp r3, 0
|
|
blt _080795E0
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r5, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r6
|
|
strh r4, [r2]
|
|
_080795E0:
|
|
adds r3, 0x1
|
|
cmp r3, 0x9F
|
|
ble _080795CC
|
|
_080795E6:
|
|
mov r1, r8
|
|
asrs r0, r1, 16
|
|
adds r3, r0, 0
|
|
subs r3, 0x10
|
|
cmp r3, 0
|
|
blt _0807960E
|
|
ldr r6, _08079618 @ =gUnknown_2038700
|
|
ldr r5, _0807961C @ =gUnknown_2039600
|
|
movs r4, 0
|
|
_080795F8:
|
|
lsls r2, r3, 1
|
|
ldrb r1, [r5, 0x14]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 7
|
|
adds r2, r0
|
|
adds r2, r6
|
|
strh r4, [r2]
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080795F8
|
|
_0807960E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079618: .4byte gUnknown_2038700
|
|
_0807961C: .4byte gUnknown_2039600
|
|
thumb_func_end sub_8079550
|
|
|
|
thumb_func_start sub_8079620
|
|
sub_8079620: @ 8079620
|
|
push {lr}
|
|
ldr r1, _08079644 @ =gUnknown_2039600
|
|
ldrb r0, [r1, 0x15]
|
|
cmp r0, 0
|
|
beq _0807962E
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x15]
|
|
_0807962E:
|
|
movs r0, 0x50
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
movs r0, 0x54
|
|
movs r1, 0
|
|
bl SetGpuReg
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079644: .4byte gUnknown_2039600
|
|
thumb_func_end sub_8079620
|
|
|
|
thumb_func_start sub_8079648
|
|
sub_8079648: @ 8079648
|
|
push {r4,lr}
|
|
ldr r0, _080796BC @ =sub_80792C8
|
|
bl FindTaskIdByFunc
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xFF
|
|
beq _0807965C
|
|
bl DestroyTask
|
|
_0807965C:
|
|
bl sub_8071898
|
|
bl ResetPaletteFadeControl
|
|
ldr r0, _080796C0 @ =gUnknown_8EAB6C4
|
|
movs r2, 0xD0
|
|
lsls r2, 1
|
|
movs r1, 0
|
|
bl LoadPalette
|
|
ldr r0, _080796C4 @ =gUnknown_8EAD5E8
|
|
movs r1, 0xD0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
ldr r4, _080796C8 @ =gUnknown_8EAE094
|
|
adds r0, r4, 0
|
|
movs r1, 0xF0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
adds r0, r4, 0
|
|
movs r1, 0xE0
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
bl sub_80F6C14
|
|
movs r1, 0xE0
|
|
lsls r1, 8
|
|
movs r0, 0
|
|
bl ClearGpuRegBits
|
|
movs r0, 0x1
|
|
bl ShowBg
|
|
movs r0, 0x2
|
|
bl ShowBg
|
|
movs r0, 0
|
|
bl ShowBg
|
|
movs r0, 0x3
|
|
bl ShowBg
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080796BC: .4byte sub_80792C8
|
|
_080796C0: .4byte gUnknown_8EAB6C4
|
|
_080796C4: .4byte gUnknown_8EAD5E8
|
|
_080796C8: .4byte gUnknown_8EAE094
|
|
thumb_func_end sub_8079648
|
|
|
|
thumb_func_start sub_80796CC
|
|
sub_80796CC: @ 80796CC
|
|
push {lr}
|
|
bl UpdatePaletteFade
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080796DE
|
|
ldr r0, _080796E4 @ =sub_80F55A0
|
|
bl SetMainCallback2
|
|
_080796DE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080796E4: .4byte sub_80F55A0
|
|
thumb_func_end sub_80796CC
|
|
|
|
thumb_func_start sub_80796E8
|
|
sub_80796E8: @ 80796E8
|
|
push {lr}
|
|
bl UpdatePaletteFade
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080796FE
|
|
bl m4aMPlayAllStop
|
|
ldr r0, _08079704 @ =sub_815F74C
|
|
bl SetMainCallback2
|
|
_080796FE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079704: .4byte sub_815F74C
|
|
thumb_func_end sub_80796E8
|
|
|
|
thumb_func_start sub_8079708
|
|
sub_8079708: @ 8079708
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
ldr r4, _08079728 @ =gUnknown_83BFB9C
|
|
_0807970E:
|
|
adds r0, r4, 0
|
|
bl LoadCompressedObjectPic
|
|
adds r4, 0x8
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
bls _0807970E
|
|
ldr r0, _0807972C @ =gUnknown_83BFBBC
|
|
bl LoadSpritePalettes
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079728: .4byte gUnknown_83BFB9C
|
|
_0807972C: .4byte gUnknown_83BFBBC
|
|
thumb_func_end sub_8079708
|
|
|
|
thumb_func_start sub_8079730
|
|
sub_8079730: @ 8079730
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r2, r4, 0
|
|
adds r2, 0x2E
|
|
ldrh r0, [r4, 0x2E]
|
|
ldrh r1, [r2, 0x2]
|
|
subs r0, r1
|
|
strh r0, [r4, 0x2E]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r4, 0x20]
|
|
movs r1, 0x8
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
blt _08079774
|
|
ldrh r0, [r2, 0x6]
|
|
ldrh r1, [r2, 0x4]
|
|
adds r0, r1
|
|
strh r0, [r2, 0x4]
|
|
lsls r0, 16
|
|
asrs r0, 20
|
|
strh r0, [r4, 0x22]
|
|
subs r0, 0x10
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xB8
|
|
bhi _08079774
|
|
adds r0, r4, 0
|
|
adds r0, 0x3F
|
|
ldrb r1, [r0]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0807977C
|
|
_08079774:
|
|
adds r0, r4, 0
|
|
bl DestroySprite
|
|
b _080797A6
|
|
_0807977C:
|
|
ldrh r1, [r2, 0xE]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
beq _080797A6
|
|
subs r0, r1, 0x1
|
|
strh r0, [r2, 0xE]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _080797A6
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl StartSpriteAnim
|
|
adds r2, r4, 0
|
|
adds r2, 0x3E
|
|
ldrb r1, [r2]
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
_080797A6:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8079730
|
|
|
|
thumb_func_start sub_80797AC
|
|
sub_80797AC: @ 80797AC
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
mov r8, r2
|
|
adds r7, r3, 0
|
|
ldr r0, [sp, 0x18]
|
|
cmp r0, 0
|
|
beq _080797C8
|
|
ldr r0, _080797C4 @ =gUnknown_83BFB04
|
|
b _080797CA
|
|
.align 2, 0
|
|
_080797C4: .4byte gUnknown_83BFB04
|
|
_080797C8:
|
|
ldr r0, _08079828 @ =gUnknown_83BFB1C
|
|
_080797CA:
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
lsls r2, r5, 16
|
|
asrs r2, 16
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0x40
|
|
beq _08079834
|
|
ldr r0, _0807982C @ =gSprites
|
|
mov r12, r0
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r6, r0, 2
|
|
mov r1, r12
|
|
adds r2, r6, r1
|
|
lsls r0, r4, 4
|
|
movs r1, 0
|
|
strh r0, [r2, 0x2E]
|
|
mov r0, r8
|
|
strh r0, [r2, 0x30]
|
|
lsls r0, r5, 4
|
|
strh r0, [r2, 0x32]
|
|
strh r7, [r2, 0x34]
|
|
strh r1, [r2, 0x36]
|
|
mov r3, r8
|
|
muls r3, r7
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _0807980C
|
|
adds r0, 0xF
|
|
_0807980C:
|
|
asrs r0, 4
|
|
lsls r0, 4
|
|
subs r0, r3, r0
|
|
strh r0, [r2, 0x38]
|
|
mov r1, sp
|
|
ldrh r1, [r1, 0x18]
|
|
strh r1, [r2, 0x3A]
|
|
mov r0, r12
|
|
adds r0, 0x1C
|
|
adds r0, r6, r0
|
|
ldr r1, _08079830 @ =sub_8079730
|
|
str r1, [r0]
|
|
movs r0, 0x1
|
|
b _08079836
|
|
.align 2, 0
|
|
_08079828: .4byte gUnknown_83BFB1C
|
|
_0807982C: .4byte gSprites
|
|
_08079830: .4byte sub_8079730
|
|
_08079834:
|
|
movs r0, 0
|
|
_08079836:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80797AC
|
|
|
|
thumb_func_start sub_8079840
|
|
sub_8079840: @ 8079840
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r0, r5, 2
|
|
adds r0, r5
|
|
lsls r0, 3
|
|
ldr r1, _08079868 @ =gUnknown_3005098
|
|
adds r6, r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
beq _0807986C
|
|
cmp r0, 0x1
|
|
beq _08079884
|
|
b _0807998A
|
|
.align 2, 0
|
|
_08079868: .4byte gUnknown_3005098
|
|
_0807986C:
|
|
ldr r2, _08079880 @ =0x00007878
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_807999C
|
|
ldrh r0, [r6]
|
|
adds r0, 0x1
|
|
strh r0, [r6]
|
|
b _0807998A
|
|
.align 2, 0
|
|
_08079880: .4byte 0x00007878
|
|
_08079884:
|
|
ldrh r0, [r6, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0x2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x4
|
|
ldrsh r1, [r6, r2]
|
|
cmp r0, r1
|
|
blt _0807998A
|
|
movs r0, 0
|
|
strh r0, [r6, 0x2]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_80799B4
|
|
movs r0, 0x12
|
|
strh r0, [r6, 0x4]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_80799B4
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 10
|
|
ands r1, r0
|
|
lsrs r1, 16
|
|
subs r1, 0x2
|
|
mov r8, r1
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_80799B4
|
|
lsls r0, 16
|
|
movs r1, 0xE0
|
|
lsls r1, 11
|
|
ands r1, r0
|
|
lsrs r1, 16
|
|
adds r7, r1, 0
|
|
subs r7, 0x10
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_80799B4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x3
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r0, 0x74
|
|
mov r9, r0
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_80799B4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0xF0
|
|
bl __umodsi3
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_80799B4
|
|
movs r2, 0
|
|
lsls r0, 16
|
|
movs r1, 0xF0
|
|
lsls r1, 12
|
|
ands r1, r0
|
|
lsrs r1, 16
|
|
cmp r1, 0x7
|
|
bls _0807991C
|
|
movs r2, 0x1
|
|
_0807991C:
|
|
str r2, [sp]
|
|
adds r0, r4, 0
|
|
mov r1, r9
|
|
mov r2, r8
|
|
adds r3, r7, 0
|
|
bl sub_80797AC
|
|
movs r4, 0
|
|
_0807992C:
|
|
ldr r1, _08079998 @ =gUnknown_83BFBD4
|
|
adds r1, r4, r1
|
|
movs r2, 0xA
|
|
ldrsh r0, [r6, r2]
|
|
ldrb r1, [r1]
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
str r1, [sp]
|
|
mov r1, r9
|
|
mov r2, r8
|
|
adds r3, r7, 0
|
|
bl sub_80797AC
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_80799B4
|
|
lsls r0, 16
|
|
movs r1, 0xC0
|
|
lsls r1, 10
|
|
ands r1, r0
|
|
lsrs r1, 16
|
|
subs r1, 0x2
|
|
mov r8, r1
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl sub_80799B4
|
|
lsls r0, 16
|
|
movs r1, 0xE0
|
|
lsls r1, 11
|
|
ands r1, r0
|
|
lsrs r1, 16
|
|
adds r7, r1, 0
|
|
subs r7, 0x10
|
|
adds r4, 0x1
|
|
cmp r4, 0xE
|
|
ble _0807992C
|
|
ldrh r0, [r6, 0xA]
|
|
adds r0, 0x1
|
|
strh r0, [r6, 0xA]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x3
|
|
ble _0807998A
|
|
movs r0, 0
|
|
strh r0, [r6, 0xA]
|
|
_0807998A:
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079998: .4byte gUnknown_83BFBD4
|
|
thumb_func_end sub_8079840
|
|
|
|
thumb_func_start sub_807999C
|
|
sub_807999C: @ 807999C
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
bl SetWordTaskArg
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_807999C
|
|
|
|
thumb_func_start sub_80799B4
|
|
sub_80799B4: @ 80799B4
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl GetWordTaskArg
|
|
adds r6, r0, 0
|
|
ldr r0, _080799E8 @ =0x41c64e6d
|
|
muls r0, r6
|
|
ldr r1, _080799EC @ =0x00006073
|
|
adds r6, r0, r1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl SetWordTaskArg
|
|
lsrs r0, r6, 16
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080799E8: .4byte 0x41c64e6d
|
|
_080799EC: .4byte 0x00006073
|
|
thumb_func_end sub_80799B4
|
|
|
|
thumb_func_start sub_80799F0
|
|
sub_80799F0: @ 80799F0
|
|
push {lr}
|
|
ldr r0, _08079A0C @ =gUnknown_83BFB3C
|
|
movs r1, 0x18
|
|
movs r2, 0x90
|
|
movs r3, 0
|
|
bl CreateSprite
|
|
movs r0, 0x2
|
|
bl IndexOfSpritePaletteTag
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08079A0C: .4byte gUnknown_83BFB3C
|
|
thumb_func_end sub_80799F0
|
|
|
|
thumb_func_start sub_8079A10
|
|
sub_8079A10: @ 8079A10
|
|
push {lr}
|
|
cmp r0, 0
|
|
beq _08079A38
|
|
movs r0, 0x2
|
|
bl IndexOfSpritePaletteTag
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
ldr r0, _08079A34 @ =gUnknown_8EAE488
|
|
lsrs r1, 4
|
|
movs r2, 0x80
|
|
lsls r2, 17
|
|
adds r1, r2
|
|
lsrs r1, 16
|
|
movs r2, 0x20
|
|
bl LoadPalette
|
|
b _08079A3C
|
|
.align 2, 0
|
|
_08079A34: .4byte gUnknown_8EAE488
|
|
_08079A38:
|
|
bl sub_80799F0
|
|
_08079A3C:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8079A10
|
|
|
|
thumb_func_start sub_8079A40
|
|
sub_8079A40: @ 8079A40
|
|
push {r4,lr}
|
|
ldr r0, _08079A7C @ =gUnknown_83BFB5C
|
|
movs r1, 0x20
|
|
negs r1, r1
|
|
movs r2, 0x1B
|
|
movs r3, 0x1
|
|
bl CreateSprite
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r4, r1, 0
|
|
cmp r1, 0x40
|
|
beq _08079A74
|
|
ldr r3, _08079A80 @ =gSprites
|
|
lsls r0, r1, 4
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r3, 0
|
|
adds r1, 0x1C
|
|
adds r1, r0, r1
|
|
ldr r2, _08079A84 @ =sub_8079AD8
|
|
str r2, [r1]
|
|
adds r0, r3
|
|
movs r1, 0x87
|
|
lsls r1, 2
|
|
strh r1, [r0, 0x30]
|
|
_08079A74:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08079A7C: .4byte gUnknown_83BFB5C
|
|
_08079A80: .4byte gSprites
|
|
_08079A84: .4byte sub_8079AD8
|
|
thumb_func_end sub_8079A40
|
|
|
|
thumb_func_start sub_8079A88
|
|
sub_8079A88: @ 8079A88
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x40
|
|
beq _08079AA0
|
|
ldr r0, _08079AA4 @ =gSprites
|
|
lsls r1, r2, 4
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1, 0x32]
|
|
_08079AA0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079AA4: .4byte gSprites
|
|
thumb_func_end sub_8079A88
|
|
|
|
thumb_func_start sub_8079AA8
|
|
sub_8079AA8: @ 8079AA8
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r2, 0x40
|
|
bne _08079AB6
|
|
movs r0, 0
|
|
b _08079ACE
|
|
_08079AB6:
|
|
ldr r1, _08079AD4 @ =gSprites
|
|
lsls r0, r2, 4
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r2, 0x2E
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x2
|
|
eors r1, r0
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
_08079ACE:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08079AD4: .4byte gSprites
|
|
thumb_func_end sub_8079AA8
|
|
|
|
thumb_func_start sub_8079AD8
|
|
sub_8079AD8: @ 8079AD8
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r1, 0x2E
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0x1
|
|
beq _08079B24
|
|
cmp r0, 0x1
|
|
bgt _08079B74
|
|
cmp r0, 0
|
|
bne _08079B74
|
|
movs r1, 0x32
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
beq _08079B04
|
|
adds r3, r2, 0
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
movs r0, 0x2
|
|
strh r0, [r2, 0x2E]
|
|
_08079B04:
|
|
ldrh r0, [r2, 0x30]
|
|
subs r0, 0x1
|
|
strh r0, [r2, 0x30]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bne _08079B74
|
|
adds r3, r2, 0
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r1, 0x5
|
|
negs r1, r1
|
|
ands r1, r0
|
|
strb r1, [r3]
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0x2E]
|
|
b _08079B74
|
|
_08079B24:
|
|
ldrh r0, [r2, 0x20]
|
|
adds r0, 0x9
|
|
strh r0, [r2, 0x20]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x43
|
|
bne _08079B38
|
|
ldrh r0, [r2, 0x22]
|
|
subs r0, 0x7
|
|
strh r0, [r2, 0x22]
|
|
_08079B38:
|
|
movs r0, 0x20
|
|
ldrsh r1, [r2, r0]
|
|
cmp r1, 0x94
|
|
bne _08079B46
|
|
ldrh r0, [r2, 0x22]
|
|
adds r0, 0x7
|
|
strh r0, [r2, 0x22]
|
|
_08079B46:
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
ble _08079B74
|
|
adds r3, r2, 0
|
|
adds r3, 0x3E
|
|
ldrb r0, [r3]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
movs r0, 0x32
|
|
ldrsh r1, [r2, r0]
|
|
cmp r1, 0
|
|
beq _08079B68
|
|
movs r0, 0x2
|
|
strh r0, [r2, 0x2E]
|
|
b _08079B74
|
|
_08079B68:
|
|
ldr r0, _08079B78 @ =0x0000ffe0
|
|
strh r0, [r2, 0x20]
|
|
movs r0, 0x87
|
|
lsls r0, 2
|
|
strh r0, [r2, 0x30]
|
|
strh r1, [r2, 0x2E]
|
|
_08079B74:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08079B78: .4byte 0x0000ffe0
|
|
thumb_func_end sub_8079AD8
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|