diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-07-31 16:11:20 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-07-31 16:11:20 -0400 |
commit | e2c552f1df045719652e1d91fb6a6ad67d00a045 (patch) | |
tree | 7690d186247a1586e4073688e1a3043b489f5948 | |
parent | 11dd5fa23f44a6666a43b1f8ad5a2cb264117460 (diff) |
Static decl/def; gfx dump
20 files changed, 513 insertions, 173 deletions
diff --git a/asm/clear_save_data_screen.s b/asm/clear_save_data_screen.s index f6cd11410..5d9d2ac03 100644 --- a/asm/clear_save_data_screen.s +++ b/asm/clear_save_data_screen.s @@ -26,8 +26,8 @@ sub_80F558C: @ 80F558C bx r0 thumb_func_end sub_80F558C - thumb_func_start sub_80F55A0 -sub_80F55A0: @ 80F55A0 + thumb_func_start CB2_SaveClearScreen_Init +CB2_SaveClearScreen_Init: @ 80F55A0 push {r4,lr} ldr r4, _080F55D0 @ =gUnknown_203AB54 movs r0, 0x4 @@ -52,7 +52,7 @@ sub_80F55A0: @ 80F55A0 _080F55D0: .4byte gUnknown_203AB54 _080F55D4: .4byte sub_80F55DC _080F55D8: .4byte sub_80F5574 - thumb_func_end sub_80F55A0 + thumb_func_end CB2_SaveClearScreen_Init thumb_func_start sub_80F55DC sub_80F55DC: @ 80F55DC diff --git a/data/graphics.s b/data/graphics.s index f62234529..189826238 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -16352,34 +16352,34 @@ gUnknown_8EAAB98:: @ 8EAAB98 gUnknown_8EAB30C:: @ 8EAB30C .incbin "baserom.gba", 0xEAB30C, 0x3B8 + @ title_screen gUnknown_8EAB6C4:: @ 8EAB6C4 - .incbin "baserom.gba", 0xEAB6C4, 0x200 @UNKNOWN + .incbin "graphics/title_screen/unk_8eab6c4.gbapal" gUnknown_8EAB8C4:: @ 8EAB8C4 - .incbin "baserom.gba", 0xEAB8C4, 0x1ACC + .incbin "graphics/title_screen/unk_8eab8c4.8bpp.lz" gUnknown_8EAD390:: @ 8EAD390 - .incbin "baserom.gba", 0xEAD390, 0x258 + .incbin "graphics/title_screen/unk_8ead390.bin.lz" gUnknown_8EAD5E8:: @ 8EAD5E8 - .incbin "baserom.gba", 0xEAD5E8, 0x20 @UNKNOWN + .incbin "graphics/title_screen/unk_8ead5e8.gbapal" gUnknown_8EAD608:: @ 8EAD608 - .incbin "baserom.gba", 0xEAD608, 0x8DC + .incbin "graphics/title_screen/unk_8ead608.4bpp.lz" gUnknown_8EADEE4:: @ 8EADEE4 - .incbin "baserom.gba", 0xEADEE4, 0x1B0 + .incbin "graphics/title_screen/unk_8eadee4.bin.lz" gUnknown_8EAE094:: @ 8EAE094 - .incbin "baserom.gba", 0xEAE094, 0x20 @UNKNOWN + .incbin "graphics/title_screen/unk_8eae094.gbapal" gUnknown_8EAE0B4:: @ 8EAE0B4 - .incbin "baserom.gba", 0xEAE0B4, 0x2C0 + .incbin "graphics/title_screen/unk_8eae0b4.4bpp.lz" gUnknown_8EAE374:: @ 8EAE374 - .incbin "baserom.gba", 0xEAE374, 0x114 + .incbin "graphics/title_screen/unk_8eae374.bin.lz" - @ title_screen gUnknown_8EAE488:: @ 8EAE488 .incbin "graphics/title_screen/unk_8eae488.gbapal" diff --git a/data/graphics/title_screen/unk_83bf64c.png b/data/graphics/title_screen/unk_83bf64c.png Binary files differindex 3c9b7630d..260e00a01 100644 --- a/data/graphics/title_screen/unk_83bf64c.png +++ b/data/graphics/title_screen/unk_83bf64c.png diff --git a/data/graphics/title_screen/unk_83bf77c.pal b/data/graphics/title_screen/unk_83bf77c.pal new file mode 100644 index 000000000..815547f37 --- /dev/null +++ b/data/graphics/title_screen/unk_83bf77c.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +82 205 180 +0 0 0 +255 255 189 +255 246 139 +255 213 65 +255 172 0 +197 164 49 +115 180 139 +98 189 156 +90 197 164 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +82 205 180 diff --git a/data/graphics/title_screen/unk_83bf79c.png b/data/graphics/title_screen/unk_83bf79c.png Binary files differindex 246252bed..66a57a899 100644 --- a/data/graphics/title_screen/unk_83bf79c.png +++ b/data/graphics/title_screen/unk_83bf79c.png diff --git a/graphics/title_screen/unk_8eab6c4.pal b/graphics/title_screen/unk_8eab6c4.pal new file mode 100644 index 000000000..48c794761 --- /dev/null +++ b/graphics/title_screen/unk_8eab6c4.pal @@ -0,0 +1,259 @@ +JASC-PAL +0100 +256 +0 255 41 +0 0 0 +255 238 16 +246 222 41 +246 238 246 +255 246 24 +246 246 41 +246 246 246 +246 255 255 +255 246 255 +32 0 255 +106 65 156 +32 0 238 +246 222 24 +246 222 32 +255 238 41 +255 238 49 +255 255 16 +255 255 24 +255 255 246 +255 255 255 +123 106 156 +24 41 32 +32 32 74 +32 0 230 +115 82 164 +16 0 246 +106 82 172 +246 238 32 +255 230 24 +246 230 41 +246 238 41 +246 230 49 +246 238 49 +255 246 32 +255 246 41 +255 255 32 +255 255 41 +32 24 32 +32 32 41 +197 156 41 +197 164 41 +156 156 156 +164 164 156 +172 172 172 +180 189 180 +41 0 230 +189 189 189 +197 189 189 +197 197 197 +205 205 213 +8 8 197 +246 230 24 +246 230 32 +255 238 24 +255 238 32 +32 32 32 +32 41 32 +41 32 32 +41 41 32 +49 32 32 +49 41 32 +41 32 41 +49 32 41 +24 41 41 +32 32 90 +16 24 106 +24 32 98 +41 32 82 +41 32 98 +41 41 82 +41 41 98 +0 0 115 +8 8 131 +32 24 115 +32 24 131 +32 41 115 +41 41 115 +32 41 131 +41 41 131 +57 41 41 +57 41 49 +57 49 41 +57 57 57 +65 41 41 +74 41 41 +65 57 57 +74 57 57 +57 74 74 +65 65 74 +82 74 82 +82 57 131 +82 90 82 +90 90 90 +90 98 98 +98 98 106 +115 106 106 +131 98 115 +139 98 106 +139 115 98 +180 139 57 +172 131 65 +156 115 90 +156 131 82 +115 82 139 +123 82 131 +115 98 131 +131 98 123 +115 123 123 +123 123 131 +139 131 139 +148 123 131 +205 172 24 +213 172 16 +205 164 32 +213 172 32 +222 189 24 +230 189 16 +213 189 32 +222 189 32 +230 205 24 +230 205 32 +230 213 32 +238 222 32 +180 148 57 +189 156 49 +180 148 74 +180 172 90 +156 148 123 +139 148 139 +164 148 115 +172 156 106 +197 156 49 +205 180 49 +197 172 90 +205 189 82 +222 205 49 +230 222 49 +205 205 74 +222 213 65 +49 0 230 +213 213 213 +222 230 230 +222 230 230 +255 0 246 +255 0 255 +16 8 197 +16 16 189 +32 16 164 +41 16 164 +32 16 180 +41 16 189 +8 8 205 +8 16 205 +24 8 213 +24 16 205 +41 8 213 +41 16 213 +49 8 213 +57 16 213 +16 8 230 +24 8 230 +24 16 230 +24 24 230 +8 8 246 +8 16 246 +16 8 246 +16 16 246 +32 8 230 +32 16 230 +32 8 238 +32 8 246 +41 8 230 +41 16 230 +49 16 230 +49 8 238 +32 32 156 +24 32 172 +41 41 156 +41 32 164 +74 49 180 +82 49 172 +82 65 164 +90 74 164 +24 32 189 +57 41 189 +41 32 213 +57 32 213 +74 41 189 +90 57 189 +74 49 197 +74 41 205 +49 49 49 +197 197 197 +189 189 189 +156 156 156 +172 172 172 +139 139 139 +115 115 115 +255 255 255 +16 16 16 +98 98 98 +246 246 246 +82 82 82 +230 230 230 +213 213 213 +0 0 0 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/title_screen/unk_8eab8c4.png b/graphics/title_screen/unk_8eab8c4.png Binary files differnew file mode 100644 index 000000000..9d9cd68f1 --- /dev/null +++ b/graphics/title_screen/unk_8eab8c4.png diff --git a/graphics/title_screen/unk_8ead390.bin b/graphics/title_screen/unk_8ead390.bin Binary files differnew file mode 100644 index 000000000..2987c5cfa --- /dev/null +++ b/graphics/title_screen/unk_8ead390.bin diff --git a/graphics/title_screen/unk_8ead5e8.pal b/graphics/title_screen/unk_8ead5e8.pal new file mode 100644 index 000000000..0832e8306 --- /dev/null +++ b/graphics/title_screen/unk_8ead5e8.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 255 +0 0 0 +82 205 180 +255 0 255 +255 0 255 +255 0 255 +32 0 0 +49 0 0 +65 0 0 +90 0 0 +123 32 0 +156 32 0 +180 49 0 +205 65 0 +222 90 0 +230 123 0 diff --git a/graphics/title_screen/unk_8ead608.png b/graphics/title_screen/unk_8ead608.png Binary files differnew file mode 100644 index 000000000..a0baa966c --- /dev/null +++ b/graphics/title_screen/unk_8ead608.png diff --git a/graphics/title_screen/unk_8eadee4.bin b/graphics/title_screen/unk_8eadee4.bin Binary files differnew file mode 100644 index 000000000..0c309689e --- /dev/null +++ b/graphics/title_screen/unk_8eadee4.bin diff --git a/graphics/title_screen/unk_8eae094.pal b/graphics/title_screen/unk_8eae094.pal new file mode 100644 index 000000000..f7f14d45d --- /dev/null +++ b/graphics/title_screen/unk_8eae094.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 139 +0 0 0 +123 123 123 +197 197 197 +222 222 222 +255 255 255 +0 0 0 +123 123 123 +197 197 197 +222 222 222 +255 255 255 +65 180 164 +139 0 0 +172 24 0 +213 57 0 +255 90 0 diff --git a/graphics/title_screen/unk_8eae0b4.png b/graphics/title_screen/unk_8eae0b4.png Binary files differnew file mode 100644 index 000000000..0b4e69015 --- /dev/null +++ b/graphics/title_screen/unk_8eae0b4.png diff --git a/graphics/title_screen/unk_8eae374.bin b/graphics/title_screen/unk_8eae374.bin Binary files differnew file mode 100644 index 000000000..9bab57cc0 --- /dev/null +++ b/graphics/title_screen/unk_8eae374.bin diff --git a/graphics/title_screen/unk_8eae488.pal b/graphics/title_screen/unk_8eae488.pal new file mode 100644 index 000000000..7a29ab72c --- /dev/null +++ b/graphics/title_screen/unk_8eae488.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +82 205 180 +189 197 205 +164 164 172 +123 131 131 +213 213 222 +255 246 74 +255 213 32 +164 131 24 +246 164 24 +131 90 16 +106 98 90 +65 57 41 +230 82 16 +205 41 0 +139 8 8 +246 246 246 diff --git a/graphics/title_screen/unk_8eae4a8.png b/graphics/title_screen/unk_8eae4a8.png Binary files differindex d98563aef..682c22432 100644 --- a/graphics/title_screen/unk_8eae4a8.png +++ b/graphics/title_screen/unk_8eae4a8.png diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index dfe15881a..df3a46c59 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -22,6 +22,7 @@ TEXTWINDOWGFXDIR := graphics/text_window TEACHYTVGFXDIR := graphics/teachy_tv SSANNEGFXDIR := graphics/ss_anne ITEMPCGFXDIR := graphics/item_pc +TITLESCREENGFXDIR := graphics/title_screen types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark contest_types := cool beauty cute smart tough @@ -486,3 +487,6 @@ $(SSANNEGFXDIR)/unk_8479A38.4bpp: %.4bpp: %.png $(ITEMPCGFXDIR)/unk_8E85090.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 82 + +$(TITLESCREENGFXDIR)/unk_8ead608.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 135 diff --git a/include/clear_save_data_screen.h b/include/clear_save_data_screen.h index 7edf7d03e..d5d2665ae 100644 --- a/include/clear_save_data_screen.h +++ b/include/clear_save_data_screen.h @@ -1,6 +1,6 @@ #ifndef GUARD_CLEAR_SAVE_DATA_SCREEN_H #define GUARD_CLEAR_SAVE_DATA_SCREEN_H -void sub_80F55A0(void); +void CB2_SaveClearScreen_Init(void); #endif //GUARD_CLEAR_SAVE_DATA_SCREEN_H diff --git a/src/title_screen.c b/src/title_screen.c index 492f0e378..3e801c72f 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -38,51 +38,51 @@ enum TitleScreenScene #define TITLE_SPECIES SPECIES_VENUSAUR #endif -EWRAM_DATA u8 gUnknown_2037F30 = 0; - -void sub_8078B34(void); -void sub_8078B9C(void); -void sub_8078BB4(void); -void sub_8078BEC(u8 taskId); -void sub_8078C24(u8 taskId); -void sub_8078C90(s16 * data, u8 a1); -void sub_8078C9C(s16 * data); -void sub_8078D24(s16 * data); -void sub_8078DA4(s16 * data); -void sub_8078FC4(s16 * data); -void sub_80790A0(void); -void sub_80790CC(s16 * data); -void sub_80791C0(s16 * data); -void sub_80792C8(u8 taskId); -void sub_807941C(u8 taskId); -void sub_8079528(void); -void sub_8079550(s16 a0); -void sub_8079620(void); -void sub_8079648(void); -void sub_80796CC(void); -void sub_80796E8(void); -void sub_8079708(void); -void sub_8079840(u8 taskId); -void sub_807999C(u8 taskId, u8 field, u16 seed); -u16 sub_80799B4(u8 taskId, u8 field); -u32 sub_80799F0(void); -void sub_8079A10(bool32 a0); -u8 sub_8079A40(void); -void sub_8079A88(u8 spriteId); -bool32 sub_8079AA8(u8 spriteId); -void sub_8079AD8(struct Sprite * sprite); +static EWRAM_DATA u8 sTitleScreenTimerTaskId = 0; + +static void ResetGpuRegs(void); +static void CB2_TitleScreenRun(void); +static void VBlankCB(void); +static void Task_TitleScreenTimer(u8 taskId); +static void Task_TitleScreenMain(u8 taskId); +static void SetTitleScreenScene(s16 * data, u8 a1); +static void SetTitleScreenScene_Init(s16 * data); +static void SetTitleScreenScene_FlashSprite(s16 * data); +static void SetTitleScreenScene_FadeIn(s16 * data); +static void SetTitleScreenScene_Run(s16 * data); +static void SetGpuRegsForTitleScreenRun(void); +static void SetTitleScreenScene_Restart(s16 * data); +static void SetTitleScreenScene_Cry(s16 * data); +static void Task_TitleScreen_SlideWin0(u8 taskId); +static void Task_TitleScreen_PaletteSomething(u8 taskId); +static void SignalEndTitleScreenPaletteSomethingTask(void); +static void UpdateScanlineEffectRegBuffer(s16 a0); +static void ScheduleStopScanlineEffect(void); +static void LoadMainTitleScreenPalsAndResetBgs(void); +static void CB2_FadeOutTransitionToSaveClearScreen(void); +static void CB2_FadeOutTransitionToBerryFix(void); +static void LoadSpriteGfxAndPals(void); +static void Task_FlameOrLeafSpawner(u8 taskId); +static void TitleScreen_srand(u8 taskId, u8 field, u16 seed); +static u16 TitleScreen_rand(u8 taskId, u8 field); +static u32 CreateBlankSprite(void); +static void sub_8079A10(bool32 a0); +static u8 CreateSlashSprite(void); +static void ScheduleHideSlashSprite(u8 spriteId); +static bool32 IsSlashSpriteHidden(u8 spriteId); +static void SpriteCallback_Slash(struct Sprite * sprite); // bg3 -const u8 gUnknown_83BF58C[] = INCBIN_U8("data/graphics/title_screen/unk_83BF58C.4bpp.lz"); -const u8 gUnknown_83BF5A8[] = INCBIN_U8("data/graphics/title_screen/unk_83BF5A8.bin.lz"); +static const u8 gUnknown_83BF58C[] = INCBIN_U8("data/graphics/title_screen/unk_83BF58C.4bpp.lz"); +static const u8 gUnknown_83BF5A8[] = INCBIN_U8("data/graphics/title_screen/unk_83BF5A8.bin.lz"); //sprites -const u8 gUnknown_83BF64C[] = INCBIN_U8("data/graphics/title_screen/unk_83bf64c.4bpp.lz"); -const u16 gUnknown_83BF77C[] = INCBIN_U16("data/graphics/title_screen/unk_83bf77c.gbapal"); -const u8 gUnknown_83BF79C[] = INCBIN_U8("data/graphics/title_screen/unk_83bf79c.4bpp.lz"); -const u8 gUnknown_83BFA14[] = INCBIN_U8("data/graphics/title_screen/unk_83bfa14.4bpp.lz"); +static const u8 gUnknown_83BF64C[] = INCBIN_U8("data/graphics/title_screen/unk_83bf64c.4bpp.lz"); +static const u16 gUnknown_83BF77C[] = INCBIN_U16("data/graphics/title_screen/unk_83bf77c.gbapal"); +static const u8 gUnknown_83BF79C[] = INCBIN_U8("data/graphics/title_screen/unk_83bf79c.4bpp.lz"); +static const u8 gUnknown_83BFA14[] = INCBIN_U8("data/graphics/title_screen/unk_83bfa14.4bpp.lz"); -const struct OamData gOamData_83BFAB4 = { +static const struct OamData gOamData_83BFAB4 = { .objMode = ST_OAM_OBJ_NORMAL, .shape = ST_OAM_SQUARE, .size = ST_OAM_SIZE_1, @@ -91,7 +91,7 @@ const struct OamData gOamData_83BFAB4 = { .paletteNum = 0 }; -const union AnimCmd gSpriteAnims_83BFABC[] = { +static const union AnimCmd gSpriteAnims_83BFABC[] = { ANIMCMD_FRAME(0x00, 3), ANIMCMD_FRAME(0x04, 6), ANIMCMD_FRAME(0x08, 6), @@ -105,7 +105,7 @@ const union AnimCmd gSpriteAnims_83BFABC[] = { ANIMCMD_END }; -const union AnimCmd gSpriteAnims_83BFAE8[] = { +static const union AnimCmd gSpriteAnims_83BFAE8[] = { ANIMCMD_FRAME(0x18, 6), ANIMCMD_FRAME(0x1c, 6), ANIMCMD_FRAME(0x20, 6), @@ -113,12 +113,12 @@ const union AnimCmd gSpriteAnims_83BFAE8[] = { ANIMCMD_END }; -const union AnimCmd *const gSpriteAnimTable_83BFAFC[] = { +static const union AnimCmd *const gSpriteAnimTable_83BFAFC[] = { gSpriteAnims_83BFABC, gSpriteAnims_83BFAE8 }; -const struct SpriteTemplate gUnknown_83BFB04 = { +static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State1 = { .tileTag = 0, .paletteTag = 0, .oam = &gOamData_83BFAB4, @@ -128,7 +128,7 @@ const struct SpriteTemplate gUnknown_83BFB04 = { .callback = SpriteCallbackDummy }; -const struct SpriteTemplate gUnknown_83BFB1C = { +static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State0 = { .tileTag = 1, .paletteTag = 0, .oam = &gOamData_83BFAB4, @@ -138,7 +138,7 @@ const struct SpriteTemplate gUnknown_83BFB1C = { .callback = SpriteCallbackDummy }; -const struct OamData gOamData_83BFB34 = { +static const struct OamData gOamData_83BFB34 = { .objMode = ST_OAM_OBJ_NORMAL, .shape = ST_OAM_V_RECTANGLE, .size = ST_OAM_SIZE_3, @@ -147,7 +147,7 @@ const struct OamData gOamData_83BFB34 = { .paletteNum = 0 }; -const struct SpriteTemplate gUnknown_83BFB3C = { +static const struct SpriteTemplate sUnknownEmptySprite = { .tileTag = 2, .paletteTag = 2, .oam = &gOamData_83BFB34, @@ -157,7 +157,7 @@ const struct SpriteTemplate gUnknown_83BFB3C = { .callback = SpriteCallbackDummy }; -const struct OamData gOamData_83BFB54 = { +static const struct OamData gOamData_83BFB54 = { .objMode = ST_OAM_OBJ_WINDOW, .shape = ST_OAM_SQUARE, .size = ST_OAM_SIZE_3, @@ -166,7 +166,7 @@ const struct OamData gOamData_83BFB54 = { .paletteNum = 0 }; -const struct SpriteTemplate gUnknown_83BFB5C = { +static const struct SpriteTemplate sSlashSpriteTemplate = { .tileTag = 3, .paletteTag = 2, .oam = &gOamData_83BFB54, @@ -176,7 +176,7 @@ const struct SpriteTemplate gUnknown_83BFB5C = { .callback = SpriteCallbackDummy }; -const struct BgTemplate gUnknown_83BFB74[] = { +static const struct BgTemplate gUnknown_83BFB74[] = { { .bg = 0, .charBaseIndex = 0, @@ -212,29 +212,29 @@ const struct BgTemplate gUnknown_83BFB74[] = { } }; -void (*const gUnknown_83BFB84[])(s16 * data) = { - sub_8078C9C, - sub_8078D24, - sub_8078DA4, - sub_8078FC4, - sub_80790CC, - sub_80791C0 +static void (*const gUnknown_83BFB84[])(s16 * data) = { + SetTitleScreenScene_Init, + SetTitleScreenScene_FlashSprite, + SetTitleScreenScene_FadeIn, + SetTitleScreenScene_Run, + SetTitleScreenScene_Restart, + SetTitleScreenScene_Cry }; -const struct CompressedSpriteSheet gUnknown_83BFB9C[] = { +static const struct CompressedSpriteSheet gUnknown_83BFB9C[] = { {(const void *)gUnknown_83BF79C, 0x500, 0}, {(const void *)gUnknown_83BFA14, 0x500, 1}, {(const void *)gUnknown_8EAE4A8, 0x400, 2}, {(const void *)gUnknown_83BF64C, 0x800, 3} }; -const struct SpritePalette gUnknown_83BFBBC[] = { +static const struct SpritePalette gUnknown_83BFBBC[] = { {gUnknown_83BF77C, 0}, {gUnknown_8EAE488, 2}, {} }; -const u8 gUnknown_83BFBD4[] = { +static const u8 gUnknown_83BFBD4[] = { 0x04, 0x10, 0x1a, 0x20, 0x30, 0xc8, 0xd8, 0xe0, 0xe8, 0x3c, 0x4c, 0x5c, 0x6c, 0x80, 0x90 }; @@ -253,14 +253,14 @@ void CB2_InitTitleScreen(void) ResetSpriteData(); FreeAllSpritePalettes(); ResetPaletteFade(); - sub_8078B34(); + ResetGpuRegs(); DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE); DmaFill32(3, 0, (void *)OAM, OAM_SIZE); DmaFill16(3, 0, (void *)PLTT, PLTT_SIZE); ResetBgsAndClearDma3BusyFlags(FALSE); InitBgsFromTemplates(0, gUnknown_83BFB74, NELEMS(gUnknown_83BFB74)); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); - gUnknown_2037F30 = 0xFF; + sTitleScreenTimerTaskId = 0xFF; break; case 1: LoadPalette(gUnknown_8EAB6C4, 0, 0x1A0); @@ -275,16 +275,16 @@ void CB2_InitTitleScreen(void) LoadPalette(gUnknown_8EAE094, 0xE0, 0x20); DecompressAndCopyTileDataToVram(3, gUnknown_83BF58C, 0, 0, 0); DecompressAndCopyTileDataToVram(3, gUnknown_83BF5A8, 0, 0, 1); - sub_8079708(); + LoadSpriteGfxAndPals(); break; case 2: if (!FreeTempTileDataBuffersIfPossible()) { BlendPalettes(0x0000FFFF, 0x10, RGB_BLACK); - CreateTask(sub_8078C24, 4); - gUnknown_2037F30 = CreateTask(sub_8078BEC, 2); - SetVBlankCallback(sub_8078BB4); - SetMainCallback2(sub_8078B9C); + CreateTask(Task_TitleScreenMain, 4); + sTitleScreenTimerTaskId = CreateTask(Task_TitleScreenTimer, 2); + SetVBlankCallback(VBlankCB); + SetMainCallback2(CB2_TitleScreenRun); m4aSongNumStart(BGM_FRLG_TITLE); } return; @@ -292,7 +292,7 @@ void CB2_InitTitleScreen(void) gMain.state++; } -void sub_8078B34(void) +static void ResetGpuRegs(void) { SetGpuReg(REG_OFFSET_DISPCNT, 0); SetGpuReg(REG_OFFSET_BLDCNT, 0); @@ -308,7 +308,7 @@ void sub_8078B34(void) SetGpuReg(REG_OFFSET_BG3VOFS, 0); } -void sub_8078B9C(void) +static void CB2_TitleScreenRun(void) { RunTasks(); AnimateSprites(); @@ -316,39 +316,39 @@ void sub_8078B9C(void) UpdatePaletteFade(); } -void sub_8078BB4(void) +static void VBlankCB(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); ScanlineEffect_InitHBlankDmaTransfer(); - if (gUnknown_2037F30 != 0xFF) - gTasks[gUnknown_2037F30].data[0]++; + if (sTitleScreenTimerTaskId != 0xFF) + gTasks[sTitleScreenTimerTaskId].data[0]++; } -void sub_8078BEC(u8 taskId) +static void Task_TitleScreenTimer(u8 taskId) { s16 * data = gTasks[taskId].data; if (data[0] >= 2700) { - gUnknown_2037F30 = 0xFF; + sTitleScreenTimerTaskId = 0xFF; DestroyTask(taskId); } } -void sub_8078C24(u8 taskId) +static void Task_TitleScreenMain(u8 taskId) { s16 * data = gTasks[taskId].data; if (JOY_NEW(A_BUTTON | B_BUTTON | START_BUTTON) && data[0] != 3 && data[0] != 4 && data[0] != 5) { - sub_8079620(); - sub_8079648(); + ScheduleStopScanlineEffect(); + LoadMainTitleScreenPalsAndResetBgs(); sub_8079A10(data[5]); - sub_8078C90(data, TITLESCREENSCENE_RUN); + SetTitleScreenScene(data, TITLESCREENSCENE_RUN); } else { @@ -356,13 +356,13 @@ void sub_8078C24(u8 taskId) } } -void sub_8078C90(s16 * data, u8 a1) +static void SetTitleScreenScene(s16 * data, u8 a1) { data[1] = 0; data[0] = a1; } -void sub_8078C9C(s16 * data) +static void SetTitleScreenScene_Init(s16 * data) { struct ScanlineEffectParams params; @@ -381,10 +381,10 @@ void sub_8078C9C(s16 * data) ScanlineEffect_SetParams(params); - sub_8078C90(data, TITLESCREENSCENE_FLASHSPRITE); + SetTitleScreenScene(data, TITLESCREENSCENE_FLASHSPRITE); } -void sub_8078D24(s16 * data) +static void SetTitleScreenScene_FlashSprite(s16 * data) { switch (data[1]) { @@ -392,12 +392,12 @@ void sub_8078D24(s16 * data) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_LIGHTEN); SetGpuReg(REG_OFFSET_BLDY, 0); data[2] = 0x80; - sub_8079550(0x80); + UpdateScanlineEffectRegBuffer(data[2]); data[1]++; break; case 1: data[2] -= 4; - sub_8079550(data[2]); + UpdateScanlineEffectRegBuffer(data[2]); if (data[2] < 0) { gScanlineEffect.state = 3; @@ -407,11 +407,11 @@ void sub_8078D24(s16 * data) case 2: SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDY, 0); - sub_8078C90(data, TITLESCREENSCENE_FADEIN); + SetTitleScreenScene(data, TITLESCREENSCENE_FADEIN); } } -void sub_8078DA4(s16 * data) +static void SetTitleScreenScene_FadeIn(s16 * data) { u32 r4; switch (data[1]) @@ -440,7 +440,7 @@ void sub_8078DA4(s16 * data) data[2]++; if (data[2] > 36) { - CreateTask(sub_80792C8, 3); + CreateTask(Task_TitleScreen_SlideWin0, 3); sub_80717A8(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); data[2] = 0; data[1]++; @@ -482,7 +482,7 @@ void sub_8078DA4(s16 * data) if (!sub_807185C(0)) { data[5] = 1; - r4 = (0x10000 << sub_80799F0()) | 0x00001FFF; + r4 = (0x10000 << CreateBlankSprite()) | 0x00001FFF; BlendPalettes(r4, 0x10, RGB(30, 30, 31)); BeginNormalPaletteFade(r4, 1, 0x10, 0x00, RGB(30, 30, 31)); ShowBg(0); @@ -494,7 +494,7 @@ void sub_8078DA4(s16 * data) case 9: if (!sub_807185C(0) && !gPaletteFade.active) { - sub_8078C90(data, TITLESCREENSCENE_RUN); + SetTitleScreenScene(data, TITLESCREENSCENE_RUN); } break; } @@ -503,45 +503,45 @@ void sub_8078DA4(s16 * data) #define KEYSTROKE_DELSAVE (B_BUTTON | SELECT_BUTTON | DPAD_UP) #define KEYSTROKE_BERRY_FIX (B_BUTTON | SELECT_BUTTON) -void sub_8078FC4(s16 * data) +static void SetTitleScreenScene_Run(s16 * data) { switch (data[1]) { case 0: HelpSystem_SetSomeVariable2(1); - CreateTask(sub_807941C, 0); - CreateTask(sub_8079840, 5); - sub_80790A0(); - data[6] = sub_8079A40(); + CreateTask(Task_TitleScreen_PaletteSomething, 0); + CreateTask(Task_FlameOrLeafSpawner, 5); + SetGpuRegsForTitleScreenRun(); + data[6] = CreateSlashSprite(); sub_812B484(); data[1]++; // fallthrough case 1: if (JOY_HELD(KEYSTROKE_DELSAVE) == KEYSTROKE_DELSAVE) { - sub_8079A88(data[6]); - DestroyTask(FindTaskIdByFunc(sub_8078C24)); - SetMainCallback2(sub_80796CC); + ScheduleHideSlashSprite(data[6]); + DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); + SetMainCallback2(CB2_FadeOutTransitionToSaveClearScreen); } else if (JOY_HELD(KEYSTROKE_BERRY_FIX) == KEYSTROKE_BERRY_FIX) { - sub_8079A88(data[6]); - DestroyTask(FindTaskIdByFunc(sub_8078C24)); - SetMainCallback2(sub_80796E8); + ScheduleHideSlashSprite(data[6]); + DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); + SetMainCallback2(CB2_FadeOutTransitionToBerryFix); } else if (JOY_NEW(A_BUTTON | START_BUTTON)) { - sub_8078C90(data, TITLESCREENSCENE_CRY); + SetTitleScreenScene(data, TITLESCREENSCENE_CRY); } - else if (!FuncIsActiveTask(sub_8078BEC)) + else if (!FuncIsActiveTask(Task_TitleScreenTimer)) { - sub_8078C90(data, TITLESCREENSCEEN_RESTART); + SetTitleScreenScene(data, TITLESCREENSCEEN_RESTART); } break; } } -void sub_80790A0(void) +static void SetGpuRegsForTitleScreenRun(void) { SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0x3F, 0x1F)); @@ -549,27 +549,27 @@ void sub_80790A0(void) SetGpuReg(REG_OFFSET_BLDY, 13); } -void sub_80790CC(s16 * data) +static void SetTitleScreenScene_Restart(s16 * data) { switch (data[1]) { case 0: - sub_8079A88(data[6]); + ScheduleHideSlashSprite(data[6]); data[1]++; break; case 1: - if (!gPaletteFade.active && !sub_8079AA8(data[6])) + if (!gPaletteFade.active && !IsSlashSpriteHidden(data[6])) { FadeOutMapMusic(10); BeginNormalPaletteFade(0xFFFFFFFF, 3, 0, 0x10, RGB_BLACK); - sub_8079528(); + SignalEndTitleScreenPaletteSomethingTask(); data[1]++; } break; case 2: if (IsNotWaitingForBGMStop() && !gPaletteFade.active) { - DestroyTask(FindTaskIdByFunc(sub_807941C)); + DestroyTask(FindTaskIdByFunc(Task_TitleScreen_PaletteSomething)); data[2] = 0; data[1]++; } @@ -578,19 +578,19 @@ void sub_80790CC(s16 * data) data[2]++; if (data[2] >= 20) { - DestroyTask(FindTaskIdByFunc(sub_807941C)); + DestroyTask(FindTaskIdByFunc(Task_TitleScreen_PaletteSomething)); data[1]++; } break; case 4: sub_812B478(); - DestroyTask(FindTaskIdByFunc(sub_8078C24)); + DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); SetMainCallback2(sub_80EC864); break; } } -void sub_80791C0(s16 * data) +static void SetTitleScreenScene_Cry(s16 * data) { switch (data[1]) { @@ -598,7 +598,7 @@ void sub_80791C0(s16 * data) if (!gPaletteFade.active) { PlayCry1(TITLE_SPECIES, 0); - sub_8079A88(data[6]); + ScheduleHideSlashSprite(data[6]); data[2] = 0; data[1]++; } @@ -606,10 +606,10 @@ void sub_80791C0(s16 * data) case 1: if (data[2] < 90) data[2]++; - else if (!sub_8079AA8(data[6])) + else if (!IsSlashSpriteHidden(data[6])) { BeginNormalPaletteFade(0x0FFFFFFF, 0, 0, 0x10, RGB_WHITE); - sub_8079528(); + SignalEndTitleScreenPaletteSomethingTask(); FadeOutBGM(4); data[1]++; } @@ -627,13 +627,13 @@ void sub_80791C0(s16 * data) SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); InitHeap(gHeap, HEAP_SIZE); SetMainCallback2(sub_800C300); - DestroyTask(FindTaskIdByFunc(sub_8078C24)); + DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); } break; } } -void sub_80792C8(u8 taskId) +static void Task_TitleScreen_SlideWin0(u8 taskId) { s16 * data = gTasks[taskId].data; @@ -692,7 +692,7 @@ void sub_80792C8(u8 taskId) } } -void sub_807941C(u8 taskId) +static void Task_TitleScreen_PaletteSomething(u8 taskId) { s16 * data = gTasks[taskId].data; s32 i; @@ -736,13 +736,13 @@ void sub_807941C(u8 taskId) } } -void sub_8079528(void) +static void SignalEndTitleScreenPaletteSomethingTask(void) { - u8 taskId = FindTaskIdByFunc(sub_807941C); + u8 taskId = FindTaskIdByFunc(Task_TitleScreen_PaletteSomething); gTasks[taskId].data[15] = TRUE; } -void sub_8079550(s16 a0) +static void UpdateScanlineEffectRegBuffer(s16 a0) { s32 i; @@ -778,7 +778,7 @@ void sub_8079550(s16 a0) } } -void sub_8079620(void) +static void ScheduleStopScanlineEffect(void) { if (gScanlineEffect.state) gScanlineEffect.state = 3; @@ -786,11 +786,11 @@ void sub_8079620(void) SetGpuReg(REG_OFFSET_BLDY, 0); } -void sub_8079648(void) +static void LoadMainTitleScreenPalsAndResetBgs(void) { u8 taskId; - taskId = FindTaskIdByFunc(sub_80792C8); + taskId = FindTaskIdByFunc(Task_TitleScreen_SlideWin0); if (taskId != 0xFF) DestroyTask(taskId); @@ -808,13 +808,13 @@ void sub_8079648(void) ShowBg(3); } -void sub_80796CC(void) +static void CB2_FadeOutTransitionToSaveClearScreen(void) { if (!UpdatePaletteFade()) - SetMainCallback2(sub_80F55A0); + SetMainCallback2(CB2_SaveClearScreen_Init); } -void sub_80796E8(void) +static void CB2_FadeOutTransitionToBerryFix(void) { if (!UpdatePaletteFade()) { @@ -823,7 +823,7 @@ void sub_80796E8(void) } } -void sub_8079708(void) +static void LoadSpriteGfxAndPals(void) { s32 i; @@ -832,7 +832,7 @@ void sub_8079708(void) LoadSpritePalettes(gUnknown_83BFBBC); } -void sub_8079730(struct Sprite * sprite) +static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite) { s16 * data = sprite->data; sprite->data[0] -= data[1]; @@ -876,16 +876,16 @@ void sub_8079730(struct Sprite * sprite) #endif } -bool32 sub_80797AC(s32 x, s32 y, s32 xspeed, s32 yspeed, bool32 templateId) +static bool32 CreateFlameOrLeafSprite(s32 x, s32 y, s32 xspeed, s32 yspeed, bool32 templateId) { u8 spriteId; if (templateId) { - spriteId = CreateSprite(&gUnknown_83BFB04, x, y, 0); + spriteId = CreateSprite(&sSpriteTemplate_FlameOrLeaf_State1, x, y, 0); } else { - spriteId = CreateSprite(&gUnknown_83BFB1C, x, y, 0); + spriteId = CreateSprite(&sSpriteTemplate_FlameOrLeaf_State0, x, y, 0); } if (spriteId != MAX_SPRITES) { @@ -896,13 +896,13 @@ bool32 sub_80797AC(s32 x, s32 y, s32 xspeed, s32 yspeed, bool32 templateId) gSprites[spriteId].data[4] = 0; gSprites[spriteId].data[5] = (xspeed * yspeed) % 16; gSprites[spriteId].data[6] = templateId; - gSprites[spriteId].callback = sub_8079730; + gSprites[spriteId].callback = SpriteCallback_TitleScreenFlameOrLeaf; return TRUE; } return FALSE; } -void sub_8079840(u8 taskId) +static void Task_FlameOrLeafSpawner(u8 taskId) { s16 * data = gTasks[taskId].data; s32 x, y, xspeed, yspeed, templateId; @@ -911,7 +911,7 @@ void sub_8079840(u8 taskId) switch (data[0]) { case 0: - sub_807999C(taskId, 3, 0x7878); + TitleScreen_srand(taskId, 3, 30840); data[0]++; break; case 1: @@ -919,30 +919,30 @@ void sub_8079840(u8 taskId) if (data[1] >= data[2]) { data[1] = 0; - sub_80799B4(taskId, 3); + TitleScreen_rand(taskId, 3); data[2] = 18; - xspeed = (sub_80799B4(taskId, 3) % 4) - 2; - yspeed = (sub_80799B4(taskId, 3) % 8) - 16; - y = (sub_80799B4(taskId, 3) % 3) + 0x74; - x = sub_80799B4(taskId, 3) % 240; - sub_80797AC( + xspeed = (TitleScreen_rand(taskId, 3) % 4) - 2; + yspeed = (TitleScreen_rand(taskId, 3) % 8) - 16; + y = (TitleScreen_rand(taskId, 3) % 3) + 0x74; + x = TitleScreen_rand(taskId, 3) % 240; + CreateFlameOrLeafSprite( x, y, xspeed, yspeed, - (sub_80799B4(taskId, 3) % 16) < 8 ? 0 : 1 + (TitleScreen_rand(taskId, 3) % 16) < 8 ? 0 : 1 ); for (i = 0; i < 15; i++) { - sub_80797AC( + CreateFlameOrLeafSprite( data[5] + gUnknown_83BFBD4[i], y, xspeed, yspeed, 1 ); - xspeed = (sub_80799B4(taskId, 3) % 4) - 2; - yspeed = (sub_80799B4(taskId, 3) % 8) - 16; + xspeed = (TitleScreen_rand(taskId, 3) % 4) - 2; + yspeed = (TitleScreen_rand(taskId, 3) % 8) - 16; } data[5]++; if (data[5] > 3) @@ -951,12 +951,12 @@ void sub_8079840(u8 taskId) } } -void sub_807999C(u8 taskId, u8 field, u16 seed) +static void TitleScreen_srand(u8 taskId, u8 field, u16 seed) { SetWordTaskArg(taskId, field, seed); } -u16 sub_80799B4(u8 taskId, u8 field) +static u16 TitleScreen_rand(u8 taskId, u8 field) { u32 rngval; @@ -966,13 +966,13 @@ u16 sub_80799B4(u8 taskId, u8 field) return rngval >> 16; } -u32 sub_80799F0(void) +static u32 CreateBlankSprite(void) { - CreateSprite(&gUnknown_83BFB3C, 0x18, 0x90, 0); + CreateSprite(&sUnknownEmptySprite, 0x18, 0x90, 0); return IndexOfSpritePaletteTag(2); } -void sub_8079A10(bool32 mode) +static void sub_8079A10(bool32 mode) { u32 palIdx; @@ -982,27 +982,27 @@ void sub_8079A10(bool32 mode) LoadPalette(gUnknown_8EAE488, palIdx * 16 + 0x100, 0x20); } else - sub_80799F0(); + CreateBlankSprite(); } -u8 sub_8079A40(void) +static u8 CreateSlashSprite(void) { - u8 spriteId = CreateSprite(&gUnknown_83BFB5C, -0x20, 0x1B, 1); + u8 spriteId = CreateSprite(&sSlashSpriteTemplate, -0x20, 0x1B, 1); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].callback = sub_8079AD8; + gSprites[spriteId].callback = SpriteCallback_Slash; gSprites[spriteId].data[1] = 540; } return spriteId; } -void sub_8079A88(u8 spriteId) +static void ScheduleHideSlashSprite(u8 spriteId) { if (spriteId != MAX_SPRITES) gSprites[spriteId].data[2] = TRUE; } -bool32 sub_8079AA8(u8 spriteId) +static bool32 IsSlashSpriteHidden(u8 spriteId) { if (spriteId != MAX_SPRITES) return gSprites[spriteId].data[0] ^ 2 ? TRUE : FALSE; @@ -1010,7 +1010,7 @@ bool32 sub_8079AA8(u8 spriteId) return FALSE; } -void sub_8079AD8(struct Sprite * sprite) +static void SpriteCallback_Slash(struct Sprite * sprite) { switch (sprite->data[0]) { diff --git a/sym_ewram.txt b/sym_ewram.txt index 3797720d5..c859d8eb9 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -769,9 +769,10 @@ gUnknown_2037F24: @ 2037F24 gUnknown_2037F28: @ 2037F28 .space 0x8 -gUnknown_2037F30: @ 2037F30 - .space 0x4 + .align 2 + .include "src/title_screen.o" + .align 2 gUnknown_2037F34: @ 2037F34 .space 0x200 |