diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-07-04 10:42:22 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-07-04 10:42:22 -0400 |
commit | 2f671f9bd2b1785d1e6be135ddd638daadac62c4 (patch) | |
tree | 89212157d56aca044223f670a6af6e0d94ea3613 | |
parent | 168109aa9e04b2384a0b70214d2a834cb967def6 (diff) |
intro: sub_80EDC40
-rw-r--r-- | asm/intro.s | 575 | ||||
-rw-r--r-- | src/intro.c | 285 | ||||
-rw-r--r-- | sym_ewram.txt | 58 |
3 files changed, 282 insertions, 636 deletions
diff --git a/asm/intro.s b/asm/intro.s index 8e908cebe..87afc0815 100644 --- a/asm/intro.s +++ b/asm/intro.s @@ -5,581 +5,6 @@ .text - thumb_func_start sub_80ED898 -sub_80ED898: @ 80ED898 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldrb r0, [r4, 0x4] - cmp r0, 0xF - bls _080ED8A6 - b _080EDA98 -_080ED8A6: - lsls r0, 2 - ldr r1, _080ED8B0 @ =_080ED8B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080ED8B0: .4byte _080ED8B4 - .align 2, 0 -_080ED8B4: - .4byte _080ED8F4 - .4byte _080ED8F8 - .4byte _080ED910 - .4byte _080ED918 - .4byte _080ED936 - .4byte _080ED946 - .4byte _080ED95E - .4byte _080ED97C - .4byte _080ED998 - .4byte _080ED9A0 - .4byte _080ED9BA - .4byte _080ED9D2 - .4byte _080ED9DC - .4byte _080EDA1C - .4byte _080EDA5C - .4byte _080EDA7C -_080ED8F4: - movs r0, 0 - b _080EDA6C -_080ED8F8: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bhi _080ED908 - b _080EDAC4 -_080ED908: - adds r0, r4, 0 - bl sub_80EE5E4 - b _080EDA6E -_080ED910: - adds r0, r4, 0 - bl sub_80EE850 - b _080EDA64 -_080ED918: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bhi _080ED928 - b _080EDAC4 -_080ED928: - bl sub_80ED760 - adds r0, r4, 0 - bl sub_80EDF94 - movs r0, 0 - b _080EDA6C -_080ED936: - ldrb r0, [r4, 0x6] - cmp r0, 0 - bne _080ED93E - b _080EDAC4 -_080ED93E: - adds r0, r4, 0 - bl sub_80EE6A4 - b _080EDA6E -_080ED946: - adds r0, r4, 0 - bl sub_80EE850 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080ED956 - b _080EDAC4 -_080ED956: - bl sub_80ED788 - strh r5, [r4, 0x12] - b _080EDA6E -_080ED95E: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x10 - bhi _080ED96E - b _080EDAC4 -_080ED96E: - ldr r0, [r4, 0x18] - movs r1, 0x8 - movs r2, 0xC - movs r3, 0x5 - bl sub_80EE970 - b _080EDA6E -_080ED97C: - adds r0, r4, 0 - bl sub_80EE850 - lsls r0, 24 - cmp r0, 0 - beq _080ED98A - b _080EDAC4 -_080ED98A: - ldr r0, [r4, 0x18] - movs r1, 0x8 - movs r2, 0xC - movs r3, 0x5 - bl sub_80EE970 - b _080EDA6E -_080ED998: - adds r0, r4, 0 - bl sub_80EE850 - b _080EDA64 -_080ED9A0: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x14 - bhi _080ED9B0 - b _080EDAC4 -_080ED9B0: - adds r0, r4, 0 - bl sub_80EEA94 - movs r0, 0 - b _080EDA6C -_080ED9BA: - bl sub_80ED7B0 - lsls r0, 24 - cmp r0, 0 - beq _080ED9C6 - b _080EDAC4 -_080ED9C6: - bl sub_80ED760 - adds r0, r4, 0 - bl sub_80EDAF0 - b _080EDA6E -_080ED9D2: - movs r0, 0 - bl HideBg - movs r0, 0 - b _080EDA6C -_080ED9DC: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x30 - bne _080ED9FA - ldr r0, _080EDA18 @ =0x00007fff - str r0, [sp] - movs r0, 0x6 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_080ED9FA: - ldrh r0, [r4, 0x12] - cmp r0, 0x78 - bls _080EDAC4 - adds r0, r4, 0 - bl sub_80EDB70 - adds r0, r4, 0 - bl sub_80EDBAC - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - movs r0, 0 - b _080EDAC2 - .align 2, 0 -_080EDA18: .4byte 0x00007fff -_080EDA1C: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - bls _080EDAC4 - add r1, sp, 0x4 - ldr r2, _080EDA50 @ =0x00007fff - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080EDA54 @ =gPlttBufferUnfaded + 0x20 - ldr r2, _080EDA58 @ =0x01000020 - add r0, sp, 0x4 - bl CpuSet - movs r1, 0x2 - negs r1, r1 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080EDA6E - .align 2, 0 -_080EDA50: .4byte 0x00007fff -_080EDA54: .4byte gPlttBufferUnfaded + 0x20 -_080EDA58: .4byte 0x01000020 -_080EDA5C: - ldr r0, _080EDA78 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 -_080EDA64: - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080EDAC4 -_080EDA6C: - strh r0, [r4, 0x12] -_080EDA6E: - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _080EDAC4 - .align 2, 0 -_080EDA78: .4byte gPaletteFade -_080EDA7C: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3C - bls _080EDAC4 - ldr r1, _080EDA94 @ =sub_80EDBE8 - adds r0, r4, 0 - bl sub_80ECAA8 - b _080EDAC4 - .align 2, 0 -_080EDA94: .4byte sub_80EDBE8 -_080EDA98: - ldr r0, _080EDACC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080EDAC4 - ldr r0, _080EDAD0 @ =0xffff0064 - ldr r2, _080EDAD4 @ =0x00007fff - movs r1, 0 - bl BlendPalettes - ldr r1, [r4, 0x18] - movs r0, 0 - strh r0, [r1, 0x24] - ldr r1, [r4, 0x18] - movs r0, 0xB4 - strh r0, [r1, 0x20] - movs r0, 0x1 - strb r0, [r4, 0x4] - movs r0, 0x1E -_080EDAC2: - strh r0, [r4, 0x12] -_080EDAC4: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EDACC: .4byte gMain -_080EDAD0: .4byte 0xffff0064 -_080EDAD4: .4byte 0x00007fff - thumb_func_end sub_80ED898 - - thumb_func_start sub_80EDAD8 -sub_80EDAD8: @ 80EDAD8 - push {lr} - ldrb r3, [r0, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r0, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - bl CalcCenterToCornerVec - pop {r0} - bx r0 - thumb_func_end sub_80EDAD8 - - thumb_func_start sub_80EDAF0 -sub_80EDAF0: @ 80EDAF0 - push {r4-r7,lr} - adds r7, r0, 0 - movs r5, 0 -_080EDAF6: - movs r6, 0x1 - ands r6, r5 - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 20 - lsrs r2, r5, 31 - adds r2, r5, r2 - asrs r2, 1 - lsls r2, 22 - movs r0, 0xC4 - lsls r0, 14 - adds r1, r0 - asrs r1, 16 - movs r0, 0x90 - lsls r0, 15 - adds r2, r0 - asrs r2, 16 - ldr r0, _080EDB68 @ =gUnknown_840BE4C - movs r3, 0x8 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080EDB5C - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080EDB6C @ =gSprites - adds r4, r0, r1 - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - lsls r1, r5, 2 - adds r0, r7, 0 - adds r0, 0x28 - adds r2, r0, r1 - str r4, [r2] - cmp r6, 0 - beq _080EDB56 - ldrb r0, [r4, 0x1] - movs r1, 0x3F - ands r1, r0 - movs r0, 0x80 - orrs r1, r0 - strb r1, [r4, 0x1] -_080EDB56: - ldr r0, [r2] - bl sub_80EDAD8 -_080EDB5C: - adds r5, 0x1 - cmp r5, 0x3 - ble _080EDAF6 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EDB68: .4byte gUnknown_840BE4C -_080EDB6C: .4byte gSprites - thumb_func_end sub_80EDAF0 - - thumb_func_start sub_80EDB70 -sub_80EDB70: @ 80EDB70 - push {r4,lr} - adds r4, r0, 0 - ldr r1, [r4, 0x18] - ldrh r0, [r1, 0x24] - ldrh r2, [r1, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldr r1, [r4, 0x18] - ldrh r0, [r1, 0x26] - ldrh r2, [r1, 0x22] - adds r0, r2 - strh r0, [r1, 0x22] - ldr r0, [r4, 0x18] - movs r1, 0 - movs r2, 0x2A - bl sub_8007FFC - ldr r0, [r4, 0x18] - ldr r1, _080EDBA4 @ =SpriteCallbackDummy - str r1, [r0, 0x1C] - movs r1, 0x1 - bl StartSpriteAffineAnim - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EDBA4: .4byte SpriteCallbackDummy - thumb_func_end sub_80EDB70 - - thumb_func_start nullsub_83 -nullsub_83: @ 80EDBA8 - bx lr - thumb_func_end nullsub_83 - - thumb_func_start sub_80EDBAC -sub_80EDBAC: @ 80EDBAC - push {r4-r7,lr} - adds r7, r0, 0 - movs r6, 0 - ldr r5, _080EDBE0 @ =gUnknown_840BBB8 -_080EDBB4: - lsls r0, r6, 2 - adds r4, r7, 0 - adds r4, 0x28 - adds r4, r0 - ldr r0, [r4] - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, [r4] - ldr r1, _080EDBE4 @ =nullsub_83 - str r1, [r0, 0x1C] - ldrb r1, [r5] - ldrb r2, [r5, 0x1] - bl sub_8007FFC - adds r5, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080EDBB4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EDBE0: .4byte gUnknown_840BBB8 -_080EDBE4: .4byte nullsub_83 - thumb_func_end sub_80EDBAC - - thumb_func_start sub_80EDBE8 -sub_80EDBE8: @ 80EDBE8 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080EDBF8 - cmp r0, 0x1 - beq _080EDC0C - b _080EDC34 -_080EDBF8: - movs r2, 0x80 - lsls r2, 3 - movs r0, 0 - movs r1, 0 - bl FillPalette - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _080EDC34 -_080EDC0C: - bl FreeTempTileDataBuffersIfPossible - lsls r0, 24 - cmp r0, 0 - bne _080EDC34 - ldrb r0, [r4, 0x5] - bl DestroyTask - adds r0, r4, 0 - bl Free - movs r0, 0x2 - bl DisableInterrupts - movs r0, 0 - bl SetHBlankCallback - ldr r0, _080EDC3C @ =CB2_InitTitleScreen - bl SetMainCallback2 -_080EDC34: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080EDC3C: .4byte CB2_InitTitleScreen - thumb_func_end sub_80EDBE8 - - thumb_func_start sub_80EDC40 -sub_80EDC40: @ 80EDC40 - push {r4-r6,lr} - movs r5, 0 - ldr r4, _080EDCE4 @ =gUnknown_840BBC0 -_080EDC46: - adds r0, r4, 0 - bl LoadCompressedSpriteSheet - adds r4, 0x8 - adds r5, 0x1 - cmp r5, 0x4 - bls _080EDC46 - ldr r0, _080EDCE8 @ =gUnknown_840BBE8 - bl LoadSpritePalettes - ldr r6, _080EDCEC @ =gUnknown_203AB0E - movs r0, 0x60 - strh r0, [r6] - ldr r5, _080EDCF0 @ =gUnknown_203AB10 - movs r0, 0x10 - strh r0, [r5] - ldr r1, _080EDCF4 @ =gUnknown_203AB12 - movs r0, 0x7 - strh r0, [r1] - ldr r0, _080EDCF8 @ =gUnknown_203AB14 - movs r2, 0x5 - strh r2, [r0] - ldr r1, _080EDCFC @ =gUnknown_203AB16 - movs r0, 0x8 - strh r0, [r1] - ldr r1, _080EDD00 @ =gUnknown_203AB18 - movs r0, 0x5A - strh r0, [r1] - ldr r1, _080EDD04 @ =gUnknown_203AB1A - movs r0, 0x78 - strh r0, [r1] - ldr r0, _080EDD08 @ =gUnknown_203AB1E - movs r1, 0x1 - strh r1, [r0] - ldr r0, _080EDD0C @ =gUnknown_203AB20 - strh r1, [r0] - ldr r0, _080EDD10 @ =gUnknown_203AB22 - strh r2, [r0] - ldr r0, _080EDD14 @ =gUnknown_203AB24 - strh r2, [r0] - ldr r4, _080EDD18 @ =gUnknown_203AB28 - ldr r0, [r4] - cmp r0, 0 - bne _080EDCA2 - ldr r0, _080EDD1C @ =0x151b9245 - str r0, [r4] -_080EDCA2: - ldr r0, _080EDD20 @ =gUnknown_840BC6C - movs r1, 0xF8 - movs r2, 0x37 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080EDCDE - ldr r0, _080EDD24 @ =gSprites - lsls r3, r1, 4 - adds r3, r1 - lsls r3, 2 - adds r2, r3, r0 - movs r1, 0xF8 - lsls r1, 4 - strh r1, [r2, 0x2E] - movs r1, 0xDC - lsls r1, 2 - strh r1, [r2, 0x30] - ldrh r1, [r6] - strh r1, [r2, 0x32] - ldrh r1, [r5] - strh r1, [r2, 0x34] - adds r0, r3 - adds r0, 0x3A - ldr r1, [r4] - bl StoreWordInTwoHalfwords -_080EDCDE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EDCE4: .4byte gUnknown_840BBC0 -_080EDCE8: .4byte gUnknown_840BBE8 -_080EDCEC: .4byte gUnknown_203AB0E -_080EDCF0: .4byte gUnknown_203AB10 -_080EDCF4: .4byte gUnknown_203AB12 -_080EDCF8: .4byte gUnknown_203AB14 -_080EDCFC: .4byte gUnknown_203AB16 -_080EDD00: .4byte gUnknown_203AB18 -_080EDD04: .4byte gUnknown_203AB1A -_080EDD08: .4byte gUnknown_203AB1E -_080EDD0C: .4byte gUnknown_203AB20 -_080EDD10: .4byte gUnknown_203AB22 -_080EDD14: .4byte gUnknown_203AB24 -_080EDD18: .4byte gUnknown_203AB28 -_080EDD1C: .4byte 0x151b9245 -_080EDD20: .4byte gUnknown_840BC6C -_080EDD24: .4byte gSprites - thumb_func_end sub_80EDC40 - thumb_func_start sub_80EDD28 sub_80EDD28: @ 80EDD28 push {r4-r7,lr} diff --git a/src/intro.c b/src/intro.c index 944f661dc..19e59401f 100644 --- a/src/intro.c +++ b/src/intro.c @@ -14,6 +14,9 @@ #include "save.h" #include "sound.h" #include "new_game.h" +#include "title_screen.h" +#include "decompress.h" +#include "util.h" #include "constants/songs.h" struct IntroSequenceData @@ -21,17 +24,18 @@ struct IntroSequenceData void (*field_0000)(struct IntroSequenceData *); u8 field_0004; u8 field_0005; - u8 filler_0006[2]; + u8 field_0006; u16 field_0008; u16 field_000A; - u8 field_000C[6]; + u8 filler_000C[6]; u16 field_0012; struct Sprite * field_0014; struct Sprite * field_0018; struct Sprite * field_001C; struct Sprite * field_0020; struct Sprite * field_0024; - u8 filler_0028[0x14]; + struct Sprite * field_0028[4]; + u8 filler_0038[0x4]; u8 field_003C[0x400]; u8 field_043C[0x400]; u8 filler_083C[0x2080]; @@ -40,6 +44,27 @@ struct IntroSequenceData EWRAM_DATA struct GcmbStruct gUnknown_203AAD4 = {0}; EWRAM_DATA u16 gUnknown_203AB00 = 0; EWRAM_DATA u16 gUnknown_203AB02 = 0; +EWRAM_DATA u16 gUnknown_203AB04 = 0; +EWRAM_DATA u16 gUnknown_203AB06 = 0; +EWRAM_DATA u16 gUnknown_203AB08 = 0; +EWRAM_DATA u16 gUnknown_203AB0A = 0; +EWRAM_DATA u16 gUnknown_203AB0C = 0; +EWRAM_DATA u16 gUnknown_203AB0E = 0; +EWRAM_DATA u16 gUnknown_203AB10 = 0; +EWRAM_DATA u16 gUnknown_203AB12 = 0; +EWRAM_DATA u16 gUnknown_203AB14 = 0; +EWRAM_DATA u16 gUnknown_203AB16 = 0; +EWRAM_DATA u16 gUnknown_203AB18 = 0; +EWRAM_DATA u16 gUnknown_203AB1A = 0; +EWRAM_DATA u16 gUnknown_203AB1C = 0; +EWRAM_DATA u16 gUnknown_203AB1E = 0; +EWRAM_DATA u16 gUnknown_203AB20 = 0; +EWRAM_DATA u16 gUnknown_203AB22 = 0; +EWRAM_DATA u16 gUnknown_203AB24 = 0; +EWRAM_DATA u16 gUnknown_203AB26 = 0; +EWRAM_DATA u32 gUnknown_203AB28 = 0; +EWRAM_DATA u16 gUnknown_203AB2C = 0; +EWRAM_DATA u16 gUnknown_203AB2E = 0; void sub_80EC870(void); void sub_80EC9D4(void); @@ -68,12 +93,15 @@ void sub_80ED714(u8 taskId); void sub_80ED7D4(struct IntroSequenceData * ptr); void sub_80ED818(struct Sprite * sprite); void sub_80ED898(struct IntroSequenceData * ptr); +void sub_80EDAF0(struct IntroSequenceData * ptr); +void sub_80EDB70(struct IntroSequenceData * ptr); +void sub_80EDBAC(struct IntroSequenceData * ptr); void sub_80EDBE8(struct IntroSequenceData * ptr); -void sub_80ED40C(u8 taskId); void sub_80EDC40(void); void sub_80EDDF0(void); void sub_80EDED8(void); struct Sprite * sub_80EDF68(void); +void sub_80EDF94(struct IntroSequenceData * ptr); void sub_80EE1C4(struct Sprite * sprite); void sub_80EE200(u8 taskId); void sub_80EE29C(struct Sprite * sprite); @@ -82,7 +110,12 @@ void sub_80EE4DC(struct Sprite * sprite); void sub_80EE4F8(struct IntroSequenceData * ptr); void sub_80EE528(struct Sprite * sprite, u16 a1, u16 a2, u16 a3); bool32 sub_80EE5C8(struct IntroSequenceData * ptr); +void sub_80EE5E4(struct IntroSequenceData * ptr); +void sub_80EE6A4(struct IntroSequenceData * ptr); +bool8 sub_80EE850(struct IntroSequenceData * ptr); void sub_80EE8E4(struct Sprite * sprite); +void sub_80EE970(struct Sprite * sprite, s16 a1, u16 a2, u8 a3); +void sub_80EEA94(struct IntroSequenceData * ptr); void sub_80EEBE4(void); extern const u32 gMultiBootProgram_PokemonColosseum_Start[]; @@ -1205,3 +1238,247 @@ void sub_80ED818(struct Sprite * sprite) break; } } + +void sub_80ED898(struct IntroSequenceData * this) +{ + switch (this->field_0004) + { + case 0: + this->field_0012 = 0; + this->field_0004++; + break; + case 1: + this->field_0012++; + if (this->field_0012 > 30) + { + sub_80EE5E4(this); + this->field_0004++; + } + break; + case 2: + if (!sub_80EE850(this)) + { + this->field_0012 = 0; + this->field_0004++; + } + break; + case 3: + this->field_0012++; + if (this->field_0012 > 30) + { + sub_80ED760(); + sub_80EDF94(this); + this->field_0012 = 0; + this->field_0004++; + } + break; + case 4: + if (this->field_0006) + { + sub_80EE6A4(this); + this->field_0004++; + } + break; + case 5: + if (!sub_80EE850(this)) + { + sub_80ED788(); + this->field_0012 = 0; + this->field_0004++; + } + break; + case 6: + this->field_0012++; + if (this->field_0012 > 16) + { + sub_80EE970(this->field_0018, 8, 12, 5); + this->field_0004++; + } + break; + case 7: + if (!sub_80EE850(this)) + { + sub_80EE970(this->field_0018, 8, 12, 5); + this->field_0004++; + } + break; + case 8: + if (!sub_80EE850(this)) + { + this->field_0012 = 0; + this->field_0004++; + } + break; + case 9: + this->field_0012++; + if (this->field_0012 > 20) + { + sub_80EEA94(this); + this->field_0012 = 0; + this->field_0004++; + } + break; + case 10: + if (!sub_80ED7B0()) + { + sub_80ED760(); + sub_80EDAF0(this); + this->field_0004++; + } + break; + case 11: + HideBg(0); + this->field_0012 = 0; + this->field_0004++; + break; + case 12: + this->field_0012++; + if (this->field_0012 == 48) + BeginNormalPaletteFade(0x00000006, 2, 0, 16, RGB_WHITE); + if (this->field_0012 > 120) + { + sub_80EDB70(this); + sub_80EDBAC(this); + this->field_0004++; + this->field_0012 = 0; + } + break; + case 13: + this->field_0012++; + if (this->field_0012 > 8) + { + CpuFill16(RGB_WHITE, gPlttBufferUnfaded + 16, 64); + BeginNormalPaletteFade(0xFFFFFFFE, -2, 0, 16, RGB_BLACK); + this->field_0004++; + } + break; + case 14: + if (!gPaletteFade.active) + { + this->field_0012 = 0; + this->field_0004++; + } + break; + case 15: + this->field_0012++; + if (this->field_0012 > 60) + sub_80ECAA8(this, sub_80EDBE8); + break; + default: + if (JOY_NEW(R_BUTTON)) + { + BlendPalettes(0xFFFF0064, 0, RGB_WHITE); + this->field_0018->pos2.x = 0; + this->field_0018->pos1.x = 0xB4; + this->field_0004 = 1; + this->field_0012 = 30; + } + break; + } +} + +void sub_80EDAD8(struct Sprite * sprite) +{ + CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); +} + +void sub_80EDAF0(struct IntroSequenceData * this) +{ + int i; + + for (i = 0; i < 4; i++) + { + int x = (i & 1) * 48 + 49; + int y = (i / 2) * 64 + 72; + u8 spriteId = CreateSprite(&gUnknown_840BE4C, x, y, 8); + if (spriteId != MAX_SPRITES) + { + StartSpriteAnim(&gSprites[spriteId], i); + this->field_0028[i] = &gSprites[spriteId]; + if (i & 1) + this->field_0028[i]->oam.shape = ST_OAM_V_RECTANGLE; + sub_80EDAD8(this->field_0028[i]); + } + } +} + +void sub_80EDB70(struct IntroSequenceData * this) +{ + this->field_0018->pos1.x += this->field_0018->pos2.x; + this->field_0018->pos1.y += this->field_0018->pos2.y; + sub_8007FFC(this->field_0018, 0, 0x2A); + this->field_0018->callback = SpriteCallbackDummy; + StartSpriteAffineAnim(this->field_0018, 1); +} + +void nullsub_83(struct Sprite * sprite) +{ + +} + +void sub_80EDBAC(struct IntroSequenceData * this) +{ + int i; + + for (i = 0; i < 4; i++) + { + StartSpriteAffineAnim(this->field_0028[i], 1); + this->field_0028[i]->callback = nullsub_83; + sub_8007FFC(this->field_0028[i], gUnknown_840BBB8[i][0], gUnknown_840BBB8[i][1]); + } +} + +void sub_80EDBE8(struct IntroSequenceData * this) +{ + switch (this->field_0004) + { + case 0: + FillPalette(RGB_BLACK, 0, 0x400); + this->field_0004++; + break; + case 1: + if (!FreeTempTileDataBuffersIfPossible()) + { + DestroyTask(this->field_0005); + Free(this); + DisableInterrupts(INTR_FLAG_HBLANK); + SetHBlankCallback(NULL); + SetMainCallback2(CB2_InitTitleScreen); + } + break; + } +} + +void sub_80EDC40(void) +{ + int i; + u8 spriteId; + + for (i = 0; i < NELEMS(gUnknown_840BBC0); i++) + { + LoadCompressedSpriteSheet(&gUnknown_840BBC0[i]); + } + LoadSpritePalettes(gUnknown_840BBE8); + gUnknown_203AB0E = 0x60; + gUnknown_203AB10 = 0x10; + gUnknown_203AB12 = 0x07; + gUnknown_203AB14 = 0x05; + gUnknown_203AB16 = 0x08; + gUnknown_203AB18 = 0x5A; + gUnknown_203AB1A = 0x78; + gUnknown_203AB1E = 0x01; + gUnknown_203AB20 = 0x01; + gUnknown_203AB22 = 0x05; + gUnknown_203AB24 = 0x05; + if (gUnknown_203AB28 == 0) + gUnknown_203AB28 = 0x151B9245; + spriteId = CreateSprite(&gUnknown_840BC6C, 0xF8, 0x37, 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[0] = 0xF80; + gSprites[spriteId].data[1] = 0x370; + gSprites[spriteId].data[2] = gUnknown_203AB0E; + gSprites[spriteId].data[3] = gUnknown_203AB10; + StoreWordInTwoHalfwords(&gSprites[spriteId].data[6], gUnknown_203AB28); + } +} diff --git a/sym_ewram.txt b/sym_ewram.txt index ec2d2149d..58be99913 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1114,63 +1114,7 @@ gUnknown_203AAC6: @ 203AAC6 .include "src/intro.o" -gUnknown_203AB04: @ 203AB04 - .space 0x2 - -gUnknown_203AB06: @ 203AB06 - .space 0x2 - -gUnknown_203AB08: @ 203AB08 - .space 0x2 - -gUnknown_203AB0A: @ 203AB0A - .space 0x2 - -gUnknown_203AB0C: @ 203AB0C - .space 0x2 - -gUnknown_203AB0E: @ 203AB0E - .space 0x2 - -gUnknown_203AB10: @ 203AB10 - .space 0x2 - -gUnknown_203AB12: @ 203AB12 - .space 0x2 - -gUnknown_203AB14: @ 203AB14 - .space 0x2 - -gUnknown_203AB16: @ 203AB16 - .space 0x2 - -gUnknown_203AB18: @ 203AB18 - .space 0x2 - -gUnknown_203AB1A: @ 203AB1A - .space 0x2 - -gUnknown_203AB1C: @ 203AB1C - .space 0x2 - -gUnknown_203AB1E: @ 203AB1E - .space 0x2 - -gUnknown_203AB20: @ 203AB20 - .space 0x2 - -gUnknown_203AB22: @ 203AB22 - .space 0x2 - -gUnknown_203AB24: @ 203AB24 - .space 0x4 - -gUnknown_203AB28: @ 203AB28 - .space 0x4 - -gUnknown_203AB2C: @ 203AB2C - .space 0x4 - + .align 2 gUnknown_203AB30: @ 203AB30 .space 0x4 |