diff options
author | YamaArashi <shadow962@live.com> | 2016-10-17 20:24:30 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-10-17 20:24:30 -0700 |
commit | 9b7948055c486011217d68d55180f67cbd3166ff (patch) | |
tree | 0b68f37780d222f20ffd553cbe5583f96bb80e78 /asm/title_screen.s | |
parent | 1e09615b2b893c59a8896a7415fcdd5ce282b9bd (diff) |
split out title_screen.s
Diffstat (limited to 'asm/title_screen.s')
-rw-r--r-- | asm/title_screen.s | 1270 |
1 files changed, 1270 insertions, 0 deletions
diff --git a/asm/title_screen.s b/asm/title_screen.s new file mode 100644 index 000000000..726a446ee --- /dev/null +++ b/asm/title_screen.s @@ -0,0 +1,1270 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start item_menu_type_2 +item_menu_type_2: @ 807BE00 + push {r4,lr} + adds r2, r0, 0 + movs r0, 0x30 + ldrsh r1, [r2, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _0807BE34 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0807BE38 + ldrb r1, [r2, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + movs r0, 0x42 + strh r0, [r2, 0x22] + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x47 + ands r0, r1 + strb r0, [r2] + b _0807BE80 + .align 2, 0 +_0807BE34: .4byte gTasks +_0807BE38: + ldrh r1, [r4, 0x12] + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _0807BE46 + subs r0, r1, 0x1 + strh r0, [r4, 0x12] +_0807BE46: + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x3F + bgt _0807BE80 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldrh r1, [r2, 0x22] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r0, 0x42 + beq _0807BE6A + adds r0, r1, 0x1 + strh r0, [r2, 0x22] +_0807BE6A: + ldr r3, _0807BE88 + ldr r2, _0807BE8C + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r3] +_0807BE80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807BE88: .4byte REG_BLDALPHA +_0807BE8C: .4byte gUnknown_08393E64 + thumb_func_end item_menu_type_2 + + thumb_func_start sub_807BE90 +sub_807BE90: @ 807BE90 + push {lr} + adds r2, r0, 0 + movs r0, 0x30 + ldrsh r1, [r2, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _0807BEC4 + adds r1, r0, r1 + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _0807BEC8 + ldrb r1, [r2, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + movs r0, 0x42 + strh r0, [r2, 0x22] + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x47 + ands r0, r1 + strb r0, [r2] + b _0807BEEC + .align 2, 0 +_0807BEC4: .4byte gTasks +_0807BEC8: + movs r3, 0x12 + ldrsh r0, [r1, r3] + cmp r0, 0x3F + bgt _0807BEEC + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r3] + ldrh r1, [r2, 0x22] + movs r3, 0x22 + ldrsh r0, [r2, r3] + cmp r0, 0x42 + beq _0807BEEC + adds r0, r1, 0x1 + strh r0, [r2, 0x22] +_0807BEEC: + pop {r0} + bx r0 + thumb_func_end sub_807BE90 + + thumb_func_start sub_807BEF0 +sub_807BEF0: @ 807BEF0 + push {lr} + adds r2, r0, 0 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _0807BF18 + ldrh r0, [r2, 0x30] + adds r0, 0x1 + strh r0, [r2, 0x30] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0807BF18 + adds r0, r2, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0807BF24 +_0807BF18: + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_0807BF24: + pop {r0} + bx r0 + thumb_func_end sub_807BEF0 + + thumb_func_start sub_807BF28 +sub_807BF28: @ 807BF28 + push {r4-r7,lr} + lsls r0, 16 + ldr r2, _0807BF78 + adds r0, r2 + lsrs r0, 16 + movs r6, 0 + lsls r7, r1, 16 +_0807BF36: + lsls r5, r0, 16 + asrs r5, 16 + ldr r0, _0807BF7C + adds r1, r5, 0 + asrs r2, r7, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0807BF80 + adds r4, r0 + adds r0, r4, 0 + adds r1, r6, 0 + bl StartSpriteAnim + movs r0, 0x1 + strh r0, [r4, 0x2E] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r5, 0x20 + lsls r5, 16 + lsrs r0, r5, 16 + cmp r6, 0x2 + bls _0807BF36 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807BF78: .4byte 0xffe00000 +_0807BF7C: .4byte gSpriteTemplate_8393F74 +_0807BF80: .4byte gSprites + thumb_func_end sub_807BF28 + + thumb_func_start sub_807BF84 +sub_807BF84: @ 807BF84 + push {r4-r6,lr} + lsls r0, 16 + ldr r2, _0807BFD4 + adds r0, r2 + lsrs r0, 16 + movs r5, 0 + lsls r6, r1, 16 +_0807BF92: + lsls r4, r0, 16 + asrs r4, 16 + ldr r0, _0807BFD8 + adds r1, r4, 0 + asrs r2, r6, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, _0807BFDC + adds r2, r0 + adds r1, r5, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r2, 0 + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, 0x20 + lsls r4, 16 + lsrs r0, r4, 16 + cmp r5, 0x4 + bls _0807BF92 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0807BFD4: .4byte 0xffc00000 +_0807BFD8: .4byte gSpriteTemplate_8393F74 +_0807BFDC: .4byte gSprites + thumb_func_end sub_807BF84 + + thumb_func_start sub_807BFE0 +sub_807BFE0: @ 807BFE0 + push {r4,lr} + adds r3, r0, 0 + ldr r2, _0807C02C + ldr r0, _0807C030 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0xA + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _0807C070 + movs r2, 0x20 + ldrsh r1, [r3, r2] + ldr r0, _0807C034 + ldrh r4, [r3, 0x20] + cmp r1, r0 + bgt _0807C070 + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _0807C064 + cmp r1, 0x77 + bgt _0807C038 + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0x1E + bgt _0807C050 + adds r1, 0x1 + strh r1, [r3, 0x30] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x1E + bgt _0807C050 + adds r0, r1, 0x1 + b _0807C04E + .align 2, 0 +_0807C02C: .4byte gTasks +_0807C030: .4byte gUnknown_0202F7E4 +_0807C034: .4byte 0x0000010f +_0807C038: + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _0807C050 + subs r0, r1, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + cmp r0, 0 + beq _0807C050 + subs r0, r1, 0x2 +_0807C04E: + strh r0, [r3, 0x30] +_0807C050: + ldrh r1, [r3, 0x30] + movs r0, 0x1F + ands r0, r1 + lsls r1, r0, 10 + lsls r2, r0, 5 + adds r1, r2 + orrs r1, r0 + ldr r0, _0807C06C + strh r1, [r0] + .ifdef SAPPHIRE + strh r1, [r0, 0x34] + .else + strh r1, [r0, 0x2A] + .endif +_0807C064: + adds r0, r4, 0x4 + strh r0, [r3, 0x20] + b _0807C07E + .align 2, 0 +_0807C06C: .4byte gPlttBufferFaded +_0807C070: + ldr r1, _0807C084 + movs r0, 0 + strh r0, [r1] + .ifdef SAPPHIRE + strh r0, [r1, 0x34] + .else + strh r0, [r1, 0x2A] + .endif + adds r0, r3, 0 + bl DestroySprite +_0807C07E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807C084: .4byte gPlttBufferFaded + thumb_func_end sub_807BFE0 + + thumb_func_start sub_807C088 +sub_807C088: @ 807C088 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0807C0C0 + movs r1, 0 + movs r2, 0x44 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807C0C4 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + movs r2, 0x8 + orrs r0, r2 + strb r0, [r1, 0x1] + strh r4, [r1, 0x2E] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807C0C0: .4byte gSpriteTemplate_8393FC0 +_0807C0C4: .4byte gSprites + thumb_func_end sub_807C088 + + thumb_func_start sub_807C0C8 +sub_807C0C8: @ 807C0C8 + push {lr} + bl sub_8089668 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r0, _0807C0E8 + ldr r1, _0807C0EC + ldrh r1, [r1] + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0807C0E8: .4byte REG_BG1VOFS +_0807C0EC: .4byte gUnknown_030041B4 + thumb_func_end sub_807C0C8 + + thumb_func_start CB2_InitTitleScreen +CB2_InitTitleScreen: @ 807C0F0 + push {r4,r5,lr} + sub sp, 0x14 + ldr r0, _0807C10C + ldr r1, _0807C110 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x5 + bhi _0807C130 + lsls r0, 2 + ldr r1, _0807C114 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807C10C: .4byte gMain +_0807C110: .4byte 0x0000043c +_0807C114: .4byte _0807C118 + .align 2, 0 +_0807C118: + .4byte _0807C130 + .4byte _0807C1E4 + .4byte _0807C2B8 + .4byte _0807C308 + .4byte _0807C33C + .4byte _0807C418 +_0807C130: + movs r0, 0 + bl SetVBlankCallback + ldr r0, _0807C1C0 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + movs r2, 0xA0 + lsls r2, 19 + ldr r3, _0807C1C4 + adds r0, r3, 0 + strh r0, [r2] + movs r0, 0x80 + lsls r0, 19 + strh r1, [r0] + adds r0, 0xC + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x10 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + add r0, sp, 0xC + strh r1, [r0] + ldr r1, _0807C1C8 + str r0, [r1] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _0807C1CC + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r2, 0 + str r2, [sp, 0x10] + add r0, sp, 0x10 + str r0, [r1] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _0807C1D0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0xC + strh r2, [r0] + str r0, [r1] + ldr r0, _0807C1D4 + str r0, [r1, 0x4] + ldr r0, _0807C1D8 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetPaletteFade + ldr r0, _0807C1DC + ldr r1, _0807C1E0 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + b _0807C446 + .align 2, 0 +_0807C1C0: .4byte REG_BLDCNT +_0807C1C4: .4byte 0x00007fff +_0807C1C8: .4byte 0x040000d4 +_0807C1CC: .4byte 0x8100c000 +_0807C1D0: .4byte 0x85000100 +_0807C1D4: .4byte 0x05000002 +_0807C1D8: .4byte 0x810001ff +_0807C1DC: .4byte gMain +_0807C1E0: .4byte 0x0000043c +_0807C1E4: + ldr r0, _0807C270 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _0807C274 + ldr r1, _0807C278 + bl LZ77UnCompVram + ldr r4, _0807C27C + movs r5, 0xE0 + lsls r5, 1 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl LoadPalette + ldr r0, _0807C280 + ldr r1, _0807C284 + bl LZ77UnCompVram + ldr r0, _0807C288 + ldr r1, _0807C28C + bl LZ77UnCompVram + ldr r0, _0807C290 + ldr r1, _0807C294 + bl LZ77UnCompVram + ldr r0, _0807C298 + movs r1, 0xE0 + movs r2, 0x40 + bl LoadPalette + bl remove_some_task + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _0807C29C + movs r0, 0xE + strb r0, [r1] + ldr r0, _0807C2A0 + bl LoadCompressedObjectPic + ldr r0, _0807C2A4 + bl LoadCompressedObjectPic + ldr r0, _0807C2A8 + bl LoadCompressedObjectPic + movs r1, 0x80 + lsls r1, 1 + adds r0, r4, 0 + adds r2, r5, 0 + bl LoadPalette + ldr r0, _0807C2AC + bl LoadSpritePalette + ldr r0, _0807C2B0 + ldr r2, _0807C2B4 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0] + b _0807C446 + .align 2, 0 +_0807C270: .4byte gUnknown_08E9D8CC +_0807C274: .4byte gUnknown_08E9F7E4 +_0807C278: .4byte 0x06004800 +_0807C27C: .4byte gUnknown_08E9F624 +_0807C280: .4byte gUnknown_08393250 +_0807C284: .4byte 0x06008000 +_0807C288: .4byte gUnknown_083939EC +_0807C28C: .4byte 0x0600c000 +_0807C290: .4byte gUnknown_08393BF8 +_0807C294: .4byte 0x0600c800 +_0807C298: .4byte gUnknown_08393210 +_0807C29C: .4byte gReservedSpritePaletteCount +_0807C2A0: .4byte gUnknown_08393EFC +_0807C2A4: .4byte gUnknown_08393F8C +_0807C2A8: .4byte gUnknown_08393FD8 +_0807C2AC: .4byte gUnknown_08393F9C +_0807C2B0: .4byte gMain +_0807C2B4: .4byte 0x0000043c +_0807C2B8: + ldr r0, _0807C2F0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0807C2F4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r3, 0 + movs r2, 0x80 + lsls r2, 1 + strh r2, [r1, 0x8] + strh r3, [r1, 0xA] + ldr r2, _0807C2F8 + strh r2, [r1, 0xC] + subs r2, 0x10 + strh r2, [r1, 0xE] + ldr r1, _0807C2FC + strb r0, [r1] + ldr r0, _0807C300 + ldr r3, _0807C304 + adds r0, r3 + movs r1, 0x3 + strb r1, [r0] + b _0807C446 + .align 2, 0 +_0807C2F0: .4byte sub_807C46C +_0807C2F4: .4byte gTasks +_0807C2F8: .4byte 0x0000fff0 +_0807C2FC: .4byte gUnknown_0202F7E4 +_0807C300: .4byte gMain +_0807C304: .4byte 0x0000043c +_0807C308: + movs r0, 0x1 + negs r0, r0 + ldr r1, _0807C32C + str r1, [sp] + movs r1, 0x1 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _0807C330 + bl SetVBlankCallback + ldr r0, _0807C334 + ldr r1, _0807C338 + adds r0, r1 + movs r1, 0x4 + strb r1, [r0] + b _0807C446 + .align 2, 0 +_0807C32C: .4byte 0x0000ffff +_0807C330: .4byte sub_807C0C8 +_0807C334: .4byte gMain +_0807C338: .4byte 0x0000043c +_0807C33C: + movs r2, 0x80 + lsls r2, 1 + movs r0, 0x78 + movs r1, 0x50 + movs r3, 0 + bl sub_813CE30 + ldr r1, _0807C3D4 + ldr r0, _0807C3D8 + str r0, [r1] + adds r1, 0x4 + ldr r0, _0807C3DC + str r0, [r1] + ldr r0, _0807C3E0 + movs r4, 0 + strh r4, [r0] + adds r0, 0x4 + strh r4, [r0] + subs r0, 0x2 + strh r4, [r0] + adds r0, 0x4 + strh r4, [r0] + adds r1, 0x1C + ldr r2, _0807C3E4 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _0807C3E8 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x6 + movs r0, 0x84 + strh r0, [r1] + ldr r0, _0807C3EC + strh r4, [r0] + adds r0, 0x2 + movs r5, 0x8 + strh r5, [r0] + subs r1, 0x48 + ldr r2, _0807C3F0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r3, _0807C3F4 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0807C3F8 + adds r0, r2, 0 + strh r0, [r1] + ldr r3, _0807C3FC + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _0807C400 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r1, _0807C404 + ldrh r0, [r1] + orrs r0, r5 + strh r0, [r1] + subs r1, 0x4 + ldr r3, _0807C408 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _0807C40C + bl m4aSongNumStart + ldr r0, _0807C410 + ldr r1, _0807C414 + adds r0, r1 + movs r1, 0x5 + strb r1, [r0] + b _0807C446 + .align 2, 0 +_0807C3D4: .4byte REG_BG2X_L +_0807C3D8: .4byte 0xffffe300 +_0807C3DC: .4byte 0xffffdf00 +_0807C3E0: .4byte REG_WIN0H +_0807C3E4: .4byte 0x00001f1f +_0807C3E8: .4byte 0x00003f1f +_0807C3EC: .4byte REG_BLDALPHA +_0807C3F0: .4byte 0x0000180b +_0807C3F4: .4byte 0x0000190a +_0807C3F8: .4byte 0x00004981 +_0807C3FC: .4byte 0x04000208 +_0807C400: .4byte 0x04000200 +_0807C404: .4byte REG_DISPSTAT +_0807C408: .4byte 0x0000b441 +_0807C40C: .4byte 0x0000019d +_0807C410: .4byte gMain +_0807C414: .4byte 0x0000043c +_0807C418: + bl UpdatePaletteFade + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0807C446 + movs r0, 0 + bl sub_807C088 + str r4, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0 + movs r1, 0xA0 + movs r2, 0x4 + movs r3, 0x4 + bl sub_8089944 + ldr r0, _0807C450 + bl SetMainCallback2 +_0807C446: + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0807C450: .4byte sub_807C454 + thumb_func_end CB2_InitTitleScreen + + thumb_func_start sub_807C454 +sub_807C454: @ 807C454 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_807C454 + + thumb_func_start sub_807C46C +sub_807C46C: @ 807C46C + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _0807C4D4 + ldrh r1, [r0, 0x2E] + movs r0, 0xF + ands r0, r1 + ldr r5, _0807C4D8 + cmp r0, 0 + bne _0807C492 + lsls r0, r6, 2 + adds r1, r0, r6 + lsls r1, 3 + adds r1, r5 + movs r2, 0xA + ldrsh r1, [r1, r2] + adds r4, r0, 0 + cmp r1, 0 + beq _0807C4A4 +_0807C492: + lsls r3, r6, 2 + adds r0, r3, r6 + lsls r0, 3 + adds r0, r5 + movs r2, 0 + movs r1, 0x1 + strh r1, [r0, 0xA] + strh r2, [r0, 0x8] + adds r4, r3, 0 +_0807C4A4: + adds r0, r4, r6 + lsls r0, 3 + adds r7, r0, r5 + movs r3, 0x8 + ldrsh r2, [r7, r3] + cmp r2, 0 + beq _0807C4DC + ldrh r0, [r7, 0x8] + cmp r0, 0xA0 + beq _0807C4BC + cmp r0, 0x40 + bne _0807C4C2 +_0807C4BC: + movs r0, 0x1 + bl sub_807C088 +_0807C4C2: + ldr r0, _0807C4D8 + adds r1, r4, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + subs r0, 0x1 + strh r0, [r1, 0x8] + b _0807C558 + .align 2, 0 +_0807C4D4: .4byte gMain +_0807C4D8: .4byte gTasks +_0807C4DC: + movs r1, 0x80 + lsls r1, 19 + ldr r3, _0807C560 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _0807C564 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r1, 0x50 + ldr r3, _0807C568 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1F + strh r0, [r1] + ldr r0, _0807C56C + strh r2, [r0] + ldr r0, _0807C570 + movs r1, 0x62 + movs r2, 0x1A + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r5, _0807C574 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r2, r1, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r4, 0x4 + orrs r0, r4 + strb r0, [r2] + strh r6, [r1, 0x30] + ldr r0, _0807C578 + movs r1, 0xA2 + movs r2, 0x1A + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r2, r1, 0 + adds r2, 0x3E + ldrb r0, [r2] + orrs r0, r4 + strb r0, [r2] + strh r6, [r1, 0x30] + movs r0, 0x58 + strh r0, [r7, 0x12] + movs r0, 0x90 + strh r0, [r7, 0x8] + ldr r0, _0807C57C + str r0, [r7] +_0807C558: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807C560: .4byte 0x00001441 +_0807C564: .4byte REG_WININ +_0807C568: .4byte 0x00003f50 +_0807C56C: .4byte REG_BLDY +_0807C570: .4byte gSpriteTemplate_8393ECC +_0807C574: .4byte gSprites +_0807C578: .4byte gSpriteTemplate_8393EE4 +_0807C57C: .4byte sub_807C580 + thumb_func_end sub_807C46C + + thumb_func_start sub_807C580 +sub_807C580: @ 807C580 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0807C5D0 + ldrh r1, [r0, 0x2E] + movs r0, 0xF + ands r0, r1 + ldr r2, _0807C5D4 + cmp r0, 0 + bne _0807C5A6 + lsls r0, r5, 2 + adds r1, r0, r5 + lsls r1, 3 + adds r1, r2 + movs r3, 0xA + ldrsh r1, [r1, r3] + adds r7, r0, 0 + cmp r1, 0 + beq _0807C5B8 +_0807C5A6: + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + adds r0, r2 + movs r2, 0 + movs r1, 0x1 + strh r1, [r0, 0xA] + strh r2, [r0, 0x8] + adds r7, r3, 0 +_0807C5B8: + ldr r1, _0807C5D4 + adds r0, r7, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x8] + movs r1, 0x8 + ldrsh r6, [r4, r1] + cmp r6, 0 + beq _0807C5D8 + subs r0, 0x1 + strh r0, [r4, 0x8] + b _0807C5FC + .align 2, 0 +_0807C5D0: .4byte gMain +_0807C5D4: .4byte gTasks +_0807C5D8: + movs r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0x80 + lsls r1, 19 + ldr r2, _0807C634 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0x78 + movs r1, 0x6C + bl sub_807BF28 + movs r0, 0x78 + movs r1, 0x94 + bl sub_807BF84 + strh r6, [r4, 0x10] + ldr r0, _0807C638 + str r0, [r4] +_0807C5FC: + ldr r2, _0807C63C + adds r0, r7, r5 + lsls r0, 3 + adds r3, r0, r2 + ldrh r1, [r3, 0x8] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0807C61C + ldrh r1, [r3, 0xE] + movs r4, 0xE + ldrsh r0, [r3, r4] + cmp r0, 0 + beq _0807C61C + adds r0, r1, 0x1 + strh r0, [r3, 0xE] +_0807C61C: + ldr r0, _0807C640 + adds r1, r7, r5 + lsls r1, 3 + adds r1, r2 + movs r2, 0xE + ldrsh r1, [r1, r2] + lsls r1, 8 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807C634: .4byte 0x00001741 +_0807C638: .4byte sub_807C644 +_0807C63C: .4byte gTasks +_0807C640: .4byte REG_BG2Y_L + thumb_func_end sub_807C580 + + thumb_func_start sub_807C644 +sub_807C644: @ 807C644 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _0807C69C + ldr r2, _0807C6A0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0807C6A4 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0 + strh r0, [r1] + ldr r4, _0807C6A8 + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0807C67A + movs r0, 0x8 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _0807C6B4 +_0807C67A: + movs r0, 0x4 + bl FadeOutBGM + movs r0, 0x1 + negs r0, r0 + ldr r1, _0807C6AC + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _0807C6B0 + bl SetMainCallback2 + b _0807C74E + .align 2, 0 +_0807C69C: .4byte REG_BLDCNT +_0807C6A0: .4byte 0x00002142 +_0807C6A4: .4byte 0x00001f0f +_0807C6A8: .4byte gMain +_0807C6AC: .4byte 0x0000ffff +_0807C6B0: .4byte sub_807C774 +_0807C6B4: + ldrh r1, [r4, 0x2C] + movs r0, 0x46 + ands r0, r1 + cmp r0, 0x46 + bne _0807C6C4 + ldr r0, _0807C6F4 + bl SetMainCallback2 +_0807C6C4: + ldrh r1, [r4, 0x2C] + movs r0, 0x26 + ands r0, r1 + cmp r0, 0x26 + bne _0807C6FC + bl sub_80691DC + cmp r0, 0x1 + bne _0807C6FC + movs r0, 0x4 + bl FadeOutBGM + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _0807C6F8 + bl SetMainCallback2 + b _0807C74E + .align 2, 0 +_0807C6F4: .4byte sub_807C7AC +_0807C6F8: .4byte sub_807C7C8 +_0807C6FC: + ldr r0, _0807C758 + movs r3, 0 + str r3, [r0] + ldr r1, _0807C75C + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0807C728 + ldrh r0, [r2, 0x10] + adds r0, 0x1 + strh r0, [r2, 0x10] + ldr r1, _0807C760 + strh r0, [r1] + ldr r0, _0807C764 + strh r3, [r0] +_0807C728: + ldrb r0, [r2, 0x8] + bl sub_807C7E4 + ldr r0, _0807C768 + ldr r1, _0807C76C + ldrh r0, [r0, 0x4] + cmp r0, 0 + bne _0807C74E + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _0807C770 + bl SetMainCallback2 +_0807C74E: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0807C758: .4byte REG_BG2Y_L +_0807C75C: .4byte gTasks +_0807C760: .4byte gUnknown_030041B4 +_0807C764: .4byte gUnknown_030042C0 +_0807C768: .4byte gMPlay_BGM +_0807C76C: .4byte 0x0000ffff +_0807C770: .4byte sub_807C790 + thumb_func_end sub_807C644 + + thumb_func_start sub_807C774 +sub_807C774: @ 807C774 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _0807C786 + ldr r0, _0807C78C + bl SetMainCallback2 +_0807C786: + pop {r0} + bx r0 + .align 2, 0 +_0807C78C: .4byte CB2_InitMainMenu + thumb_func_end sub_807C774 + + thumb_func_start sub_807C790 +sub_807C790: @ 807C790 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _0807C7A2 + ldr r0, _0807C7A8 + bl SetMainCallback2 +_0807C7A2: + pop {r0} + bx r0 + .align 2, 0 +_0807C7A8: .4byte sub_813BA88 + thumb_func_end sub_807C790 + + thumb_func_start sub_807C7AC +sub_807C7AC: @ 807C7AC + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _0807C7BE + ldr r0, _0807C7C4 + bl SetMainCallback2 +_0807C7BE: + pop {r0} + bx r0 + .align 2, 0 +_0807C7C4: .4byte c2_clear_save_data_screen_2 + thumb_func_end sub_807C7AC + + thumb_func_start sub_807C7C8 +sub_807C7C8: @ 807C7C8 + push {lr} + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _0807C7DA + ldr r0, _0807C7E0 + bl SetMainCallback2 +_0807C7DA: + pop {r0} + bx r0 + .align 2, 0 +_0807C7E0: .4byte sub_806AAD8 + thumb_func_end sub_807C7C8 + + thumb_func_start sub_807C7E4 +sub_807C7E4: @ 807C7E4 + push {lr} + sub sp, 0x4 + lsls r1, r0, 24 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r1 + cmp r0, 0 + bne _0807C820 + lsrs r0, r1, 26 + movs r1, 0x1F + adds r2, r0, 0 + ands r2, r1 + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0807C80C + .ifdef SAPPHIRE + mov r0, sp + strh r2, [r0] + .else + lsls r1, r2, 10 + mov r0, sp + strh r1, [r0] + .endif + b _0807C816 +_0807C80C: + movs r0, 0x1F + subs r0, r2 + .ifndef SAPPHIRE + lsls r0, 10 + .endif + mov r1, sp + strh r0, [r1] +_0807C816: + mov r0, sp + movs r1, 0xEF + movs r2, 0x2 + bl LoadPalette +_0807C820: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_807C7E4 + + .align 2, 0 @ Don't pad with nop. |