pokefirered/asm/mystery_gift_menu.s
2017-12-19 15:19:41 -08:00

411 lines
6.9 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_8142078
sub_8142078: @ 8142078
push {lr}
bl ProcessSpriteCopyRequests
bl LoadOam
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_8142078
thumb_func_start sub_814208C
sub_814208C: @ 814208C
push {lr}
bl RunTasks
bl RunTextPrinters
bl AnimateSprites
bl BuildOamBuffer
pop {r0}
bx r0
thumb_func_end sub_814208C
thumb_func_start sub_81420A4
sub_81420A4: @ 81420A4
push {r4-r7,lr}
sub sp, 0xC
adds r7, r0, 0
ldr r0, _081420C4 @ =gMain
movs r1, 0x87
lsls r1, 3
adds r6, r0, r1
ldrb r5, [r6]
cmp r5, 0x1
bne _081420BA
b _081421EC
_081420BA:
cmp r5, 0x1
bgt _081420C8
cmp r5, 0
beq _081420D6
b _081422A0
.align 2, 0
_081420C4: .4byte gMain
_081420C8:
cmp r5, 0x2
bne _081420CE
b _08142254
_081420CE:
cmp r5, 0x3
bne _081420D4
b _08142274
_081420D4:
b _081422A0
_081420D6:
movs r0, 0
bl SetVBlankCallback
bl ResetPaletteFade
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetTasks
bl remove_some_task
movs r0, 0x1
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _081421E0 @ =gUnknown_8466D60
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r4, 0x80
lsls r4, 4
adds r0, r4, 0
bl Alloc
adds r1, r0, 0
movs r0, 0x3
bl SetBgTilemapBuffer
adds r0, r4, 0
bl Alloc
adds r1, r0, 0
movs r0, 0x2
bl SetBgTilemapBuffer
adds r0, r4, 0
bl Alloc
adds r1, r0, 0
movs r0, 0x1
bl SetBgTilemapBuffer
adds r0, r4, 0
bl Alloc
adds r1, r0, 0
movs r0, 0
bl SetBgTilemapBuffer
movs r0, 0
movs r1, 0xA
movs r2, 0xE0
bl sub_814FE40
movs r0, 0
movs r1, 0x1
movs r2, 0xF0
bl sub_814FDA0
ldr r1, _081421E4 @ =gUnknown_8466D30
movs r2, 0x80
lsls r2, 1
str r5, [sp]
movs r0, 0x3
movs r3, 0
bl sub_80F696C
ldr r0, _081421E8 @ =gUnknown_8466D70
bl InitWindows
bl DeactivateAllTextPrinters
movs r1, 0xC0
lsls r1, 7
movs r0, 0
bl ClearGpuRegBits
movs r0, 0x50
movs r1, 0
bl SetGpuReg
movs r0, 0x52
movs r1, 0
bl SetGpuReg
movs r0, 0x54
movs r1, 0
bl SetGpuReg
b _0814226C
.align 2, 0
_081421E0: .4byte gUnknown_8466D60
_081421E4: .4byte gUnknown_8466D30
_081421E8: .4byte gUnknown_8466D70
_081421EC:
ldr r0, _08142250 @ =gUnknown_8466D10
movs r1, 0
movs r2, 0x20
bl LoadPalette
movs r0, 0x2
bl stdpal_get
movs r1, 0xD0
movs r2, 0x20
bl LoadPalette
movs r4, 0x20
str r4, [sp]
str r4, [sp, 0x4]
movs r5, 0x11
str r5, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
movs r0, 0x2
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
bl sub_8142420
lsls r0, r7, 24
lsrs r0, 24
movs r1, 0
bl sub_8142344
b _0814226C
.align 2, 0
_08142250: .4byte gUnknown_8466D10
_08142254:
movs r0, 0x3
bl CopyBgTilemapBufferToVram
movs r0, 0x2
bl CopyBgTilemapBufferToVram
movs r0, 0x1
bl CopyBgTilemapBufferToVram
movs r0, 0
bl CopyBgTilemapBufferToVram
_0814226C:
ldrb r0, [r6]
adds r0, 0x1
strb r0, [r6]
b _081422A0
_08142274:
movs r0, 0
bl ShowBg
movs r0, 0x3
bl ShowBg
ldr r0, _08142298 @ =0x00000149
bl PlayBGM
ldr r0, _0814229C @ =sub_8142078
bl SetVBlankCallback
movs r0, 0xC5
bl EnableInterrupts
movs r0, 0x1
b _081422A2
.align 2, 0
_08142298: .4byte 0x00000149
_0814229C: .4byte sub_8142078
_081422A0:
movs r0, 0
_081422A2:
add sp, 0xC
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81420A4
thumb_func_start sub_81422AC
sub_81422AC: @ 81422AC
push {lr}
movs r0, 0
bl sub_81420A4
cmp r0, 0
beq _081422C8
ldr r0, _081422CC @ =sub_814208C
bl SetMainCallback2
ldr r1, _081422D0 @ =gUnknown_203F3B8
movs r0, 0
strb r0, [r1]
bl task_add_00_mystery_gift
_081422C8:
pop {r0}
bx r0
.align 2, 0
_081422CC: .4byte sub_814208C
_081422D0: .4byte gUnknown_203F3B8
thumb_func_end sub_81422AC
thumb_func_start sub_81422D4
sub_81422D4: @ 81422D4
push {lr}
movs r0, 0x1
bl sub_81420A4
cmp r0, 0
beq _081422F0
ldr r0, _081422F4 @ =sub_814208C
bl SetMainCallback2
ldr r1, _081422F8 @ =gUnknown_203F3B8
movs r0, 0x1
strb r0, [r1]
bl sub_81438A0
_081422F0:
pop {r0}
bx r0
.align 2, 0
_081422F4: .4byte sub_814208C
_081422F8: .4byte gUnknown_203F3B8
thumb_func_end sub_81422D4
thumb_func_start sub_81422FC
sub_81422FC: @ 81422FC
push {lr}
ldr r1, _0814233C @ =gUnknown_203F3B8
movs r0, 0
strb r0, [r1]
bl FreeAllWindowBuffers
movs r0, 0
bl GetBgTilemapBuffer
bl Free
movs r0, 0x1
bl GetBgTilemapBuffer
bl Free
movs r0, 0x2
bl GetBgTilemapBuffer
bl Free
movs r0, 0x3
bl GetBgTilemapBuffer
bl Free
ldr r0, _08142340 @ =sub_8078914
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0814233C: .4byte gUnknown_203F3B8
_08142340: .4byte sub_8078914
thumb_func_end sub_81422FC
thumb_func_start sub_8142344
sub_8142344: @ 8142344
push {r4-r6,lr}
sub sp, 0x14
adds r4, r1, 0
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
movs r1, 0
bl FillWindowPixelBuffer
cmp r5, 0
bne _081423B4
ldr r6, _081423A4 @ =gUnknown_841EDCA
cmp r4, 0x1
bne _08142362
ldr r6, _081423A8 @ =gUnknown_8415F51
_08142362:
str r5, [sp]
str r5, [sp, 0x4]
ldr r4, _081423AC @ =gUnknown_8466EE8
str r4, [sp, 0x8]
str r5, [sp, 0xC]
ldr r0, _081423B0 @ =gUnknown_841EDBD
str r0, [sp, 0x10]
movs r0, 0
movs r1, 0x2
movs r2, 0x2
movs r3, 0x2
bl AddTextPrinterParametrized2
movs r0, 0
adds r1, r6, 0
movs r2, 0
bl GetStringWidth
movs r2, 0xDE
subs r2, r0
lsls r2, 24
lsrs r2, 24
str r5, [sp]
str r5, [sp, 0x4]
str r4, [sp, 0x8]
str r5, [sp, 0xC]
str r6, [sp, 0x10]
movs r0, 0
movs r1, 0
movs r3, 0x2
bl AddTextPrinterParametrized2
b _081423E8
.align 2, 0
_081423A4: .4byte gUnknown_841EDCA
_081423A8: .4byte gUnknown_8415F51
_081423AC: .4byte gUnknown_8466EE8
_081423B0: .4byte gUnknown_841EDBD
_081423B4:
movs r4, 0
str r4, [sp]
str r4, [sp, 0x4]
ldr r5, _08142400 @ =gUnknown_8466EE8
str r5, [sp, 0x8]
str r4, [sp, 0xC]
ldr r0, _08142404 @ =gUnknown_841DE50
str r0, [sp, 0x10]
movs r0, 0
movs r1, 0x2
movs r2, 0x2
movs r3, 0x2
bl AddTextPrinterParametrized2
str r4, [sp]
str r4, [sp, 0x4]
str r5, [sp, 0x8]
str r4, [sp, 0xC]
ldr r0, _08142408 @ =gUnknown_841DE51
str r0, [sp, 0x10]
movs r0, 0
movs r1, 0
movs r2, 0x78
movs r3, 0x2
bl AddTextPrinterParametrized2
_081423E8:
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
movs r0, 0
bl PutWindowTilemap
add sp, 0x14
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08142400: .4byte gUnknown_8466EE8
_08142404: .4byte gUnknown_841DE50
_08142408: .4byte gUnknown_841DE51
thumb_func_end sub_8142344
.align 2, 0 @ Don't pad with nop.