From ea8f529f2d5bb520b83d5b7721dc47ba1b489d45 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 30 Jul 2019 22:07:15 -0400 Subject: title_screen: data and code thru sub_8078C9C --- src/title_screen.c | 192 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 src/title_screen.c (limited to 'src') diff --git a/src/title_screen.c b/src/title_screen.c new file mode 100644 index 000000000..9e779bb7b --- /dev/null +++ b/src/title_screen.c @@ -0,0 +1,192 @@ +#include "global.h" +#include "malloc.h" +#include "palette.h" +#include "gpu_regs.h" +#include "bg.h" +#include "task.h" +#include "main.h" +#include "new_menu_helpers.h" +#include "m4a.h" +#include "scanline_effect.h" +#include "constants/songs.h" + +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_80790CC(s16 * data); +void sub_80791C0(s16 * data); +void sub_8079708(void); +void sub_8079620(void); +void sub_8079648(void); +void sub_8079A10(s16 a0); + +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"); +extern const struct BgTemplate gUnknown_83BFB74[4]; +extern const void (*const gUnknown_83BFB84[])(s16 * data); + +/*graphics.h*/ +extern const u16 gUnknown_8EAB6C4[]; +extern const u8 gUnknown_8EAB8C4[]; +extern const u8 gUnknown_8EAD390[]; +extern const u16 gUnknown_8EAD5E8[]; +extern const u8 gUnknown_8EAD608[]; +extern const u8 gUnknown_8EADEE4[]; +extern const u16 gUnknown_8EAE094[]; +extern const u8 gUnknown_8EAE0B4[]; +extern const u8 gUnknown_8EAE374[]; + +void CB2_InitTitleScreen(void) +{ + switch (gMain.state) + { + default: + gMain.state = 0; + // fallthrough + case 0: + SetVBlankCallback(NULL); + StartTimer1(); + InitHeap(gHeap, HEAP_SIZE); + ResetTasks(); + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetPaletteFade(); + sub_8078B34(); + 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; + break; + case 1: + LoadPalette(gUnknown_8EAB6C4, 0, 0x1A0); + DecompressAndCopyTileDataToVram(0, gUnknown_8EAB8C4, 0, 0, 0); + DecompressAndCopyTileDataToVram(0, gUnknown_8EAD390, 0, 0, 1); + LoadPalette(gUnknown_8EAD5E8, 0xD0, 0x20); + DecompressAndCopyTileDataToVram(1, gUnknown_8EAD608, 0, 0, 0); + DecompressAndCopyTileDataToVram(1, gUnknown_8EADEE4, 0, 0, 1); + LoadPalette(gUnknown_8EAE094, 0xF0, 0x20); + DecompressAndCopyTileDataToVram(2, gUnknown_8EAE0B4, 0, 0, 0); + DecompressAndCopyTileDataToVram(2, gUnknown_8EAE374, 0, 0, 1); + LoadPalette(gUnknown_8EAE094, 0xE0, 0x20); + DecompressAndCopyTileDataToVram(3, gUnknown_83BF58C, 0, 0, 0); + DecompressAndCopyTileDataToVram(3, gUnknown_83BF5A8, 0, 0, 1); + sub_8079708(); + 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); + m4aSongNumStart(BGM_FRLG_TITLE); + } + return; + } + gMain.state++; +} + +void sub_8078B34(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, 0); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDALPHA, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); +} + +void sub_8078B9C(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} + +void sub_8078BB4(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + ScanlineEffect_InitHBlankDmaTransfer(); + + if (gUnknown_2037F30 != 0xFF) + gTasks[gUnknown_2037F30].data[0]++; +} + +void sub_8078BEC(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (data[0] >= 2700) + { + gUnknown_2037F30 = 0xFF; + DestroyTask(taskId); + } +} + +void sub_8078C24(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(); + sub_8079A10(data[5]); + sub_8078C90(data, 3); + } + else + { + gUnknown_83BFB84[data[0]](data); + } +} + +void sub_8078C90(s16 * data, u8 a1) +{ + data[1] = 0; + data[0] = a1; +} + +void sub_8078C9C(s16 * data) +{ + struct ScanlineEffectParams params; + + HideBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + + params.dmaDest = (volatile void *)REG_ADDR_BLDY; + params.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; + params.initState = 1; + params.unused9 = 0; + + CpuFill16(0, gScanlineEffectRegBuffers[0], 0x140); + CpuFill16(0, gScanlineEffectRegBuffers[1], 0x140); + + ScanlineEffect_SetParams(params); + + sub_8078C90(data, 1); +} -- cgit v1.2.3 From e96ecee460c5cd0c3139432ebbb191a36ad31912 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 31 Jul 2019 12:32:57 -0400 Subject: title_screen through sub_80791C0 --- src/title_screen.c | 468 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 452 insertions(+), 16 deletions(-) (limited to 'src') diff --git a/src/title_screen.c b/src/title_screen.c index 9e779bb7b..32324ec7a 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -8,7 +8,32 @@ #include "new_menu_helpers.h" #include "m4a.h" #include "scanline_effect.h" +#include "graphics.h" +#include "help_system.h" +#include "intro.h" +#include "load_save.h" +#include "sound.h" +#include "new_game.h" +#include "save.h" +#include "main_menu.h" #include "constants/songs.h" +#include "constants/species.h" + +enum TitleScreenScene +{ + TITLESCREENSCENE_INIT = 0, + TITLESCREENSCENE_FLASHSPRITE, + TITLESCREENSCENE_FADEIN, + TITLESCREENSCENE_RUN, + TITLESCREENSCEEN_RESTART, + TITLESCREENSCENE_CRY +}; + +#if defined(FIRERED) +#define TITLE_SPECIES SPECIES_CHARIZARD +#elif defined(LEAFGREEN) +#define TITLE_SPECIES SPECIES_VENUSAUR +#endif EWRAM_DATA u8 gUnknown_2037F30 = 0; @@ -22,28 +47,190 @@ 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_8079708(void); +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); +u32 sub_80799F0(void); void sub_8079A10(s16 a0); +u8 sub_8079A40(void); +void sub_8079A88(u8 spriteId); +bool32 sub_8079AA8(u8 spriteId); +// 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"); -extern const struct BgTemplate gUnknown_83BFB74[4]; -extern const void (*const gUnknown_83BFB84[])(s16 * data); - -/*graphics.h*/ -extern const u16 gUnknown_8EAB6C4[]; -extern const u8 gUnknown_8EAB8C4[]; -extern const u8 gUnknown_8EAD390[]; -extern const u16 gUnknown_8EAD5E8[]; -extern const u8 gUnknown_8EAD608[]; -extern const u8 gUnknown_8EADEE4[]; -extern const u16 gUnknown_8EAE094[]; -extern const u8 gUnknown_8EAE0B4[]; -extern const u8 gUnknown_8EAE374[]; + +//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"); + +const struct OamData gOamData_83BFAB4 = { + .objMode = ST_OAM_OBJ_NORMAL, + .shape = ST_OAM_SQUARE, + .size = ST_OAM_SIZE_1, + .tileNum = 0, + .priority = 3, + .paletteNum = 0 +}; + +const union AnimCmd gSpriteAnims_83BFABC[] = { + ANIMCMD_FRAME(0x00, 3), + ANIMCMD_FRAME(0x04, 6), + ANIMCMD_FRAME(0x08, 6), + ANIMCMD_FRAME(0x0c, 6), + ANIMCMD_FRAME(0x10, 6), + ANIMCMD_FRAME(0x14, 6), + ANIMCMD_FRAME(0x18, 6), + ANIMCMD_FRAME(0x1c, 6), + ANIMCMD_FRAME(0x20, 6), + ANIMCMD_FRAME(0x24, 6), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnims_83BFAE8[] = { + ANIMCMD_FRAME(0x18, 6), + ANIMCMD_FRAME(0x1c, 6), + ANIMCMD_FRAME(0x20, 6), + ANIMCMD_FRAME(0x24, 6), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_83BFAFC[] = { + gSpriteAnims_83BFABC, + gSpriteAnims_83BFAE8 +}; + +const struct SpriteTemplate gUnknown_83BFB04 = { + .tileTag = 0, + .paletteTag = 0, + .oam = &gOamData_83BFAB4, + .anims = gSpriteAnimTable_83BFAFC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct SpriteTemplate gUnknown_83BFB1C = { + .tileTag = 1, + .paletteTag = 0, + .oam = &gOamData_83BFAB4, + .anims = gSpriteAnimTable_83BFAFC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct OamData gOamData_83BFB34 = { + .objMode = ST_OAM_OBJ_NORMAL, + .shape = ST_OAM_V_RECTANGLE, + .size = ST_OAM_SIZE_3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0 +}; + +const struct SpriteTemplate gUnknown_83BFB3C = { + .tileTag = 2, + .paletteTag = 2, + .oam = &gOamData_83BFB34, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct OamData gOamData_83BFB54 = { + .objMode = ST_OAM_OBJ_WINDOW, + .shape = ST_OAM_SQUARE, + .size = ST_OAM_SIZE_3, + .tileNum = 0, + .priority = 0, + .paletteNum = 0 +}; + +const struct SpriteTemplate gUnknown_83BFB5C = { + .tileTag = 3, + .paletteTag = 2, + .oam = &gOamData_83BFB54, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +const struct BgTemplate gUnknown_83BFB74[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 1, // 8bpp + .priority = 0, + .baseTile = 0 + }, { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, // 4bpp + .priority = 1, + .baseTile = 0 + }, { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, // 4bpp + .priority = 2, + .baseTile = 0 + }, { + .bg = 3, + .charBaseIndex = 3, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, // 4bpp + .priority = 3, + .baseTile = 0 + } +}; + +void (*const gUnknown_83BFB84[])(s16 * data) = { + sub_8078C9C, + sub_8078D24, + sub_8078DA4, + sub_8078FC4, + sub_80790CC, + sub_80791C0 +}; + +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[] = { + {gUnknown_83BF77C, 0}, + {gUnknown_8EAE488, 2}, + {} +}; + +const u8 gUnknown_83BFBD4[] = { + 0x04, 0x10, 0x1a, 0x20, 0x30, 0xc8, 0xd8, 0xe0, 0xe8, 0x3c, 0x4c, 0x5c, 0x6c, 0x80, 0x90 +}; void CB2_InitTitleScreen(void) { @@ -155,7 +342,7 @@ void sub_8078C24(u8 taskId) sub_8079620(); sub_8079648(); sub_8079A10(data[5]); - sub_8078C90(data, 3); + sub_8078C90(data, TITLESCREENSCENE_RUN); } else { @@ -188,5 +375,254 @@ void sub_8078C9C(s16 * data) ScanlineEffect_SetParams(params); - sub_8078C90(data, 1); + sub_8078C90(data, TITLESCREENSCENE_FLASHSPRITE); +} + +void sub_8078D24(s16 * data) +{ + switch (data[1]) + { + case 0: + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_LIGHTEN); + SetGpuReg(REG_OFFSET_BLDY, 0); + data[2] = 0x80; + sub_8079550(0x80); + data[1]++; + break; + case 1: + data[2] -= 4; + sub_8079550(data[2]); + if (data[2] < 0) + { + gScanlineEffect.state = 3; + data[1]++; + } + break; + case 2: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); + sub_8078C90(data, TITLESCREENSCENE_FADEIN); + } +} + +void sub_8078DA4(s16 * data) +{ + u32 r4; + switch (data[1]) + { + case 0: + data[2] = 0; + data[1]++; + break; + case 1: + data[2]++; + if (data[2] > 10) + { + TintPalette_GrayScale2(gPlttBufferUnfaded + 0xD0, 0x10); + BeginNormalPaletteFade(0x00002000, 9, 0x10, 0, RGB_BLACK); + data[1]++; + } + break; + case 2: + if (!gPaletteFade.active) + { + data[2] = 0; + data[1]++; + } + break; + case 3: + data[2]++; + if (data[2] > 36) + { + CreateTask(sub_80792C8, 3); + sub_80717A8(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); + data[2] = 0; + data[1]++; + } + break; + case 4: + if (!sub_807185C(0)) + { + sub_80717A8(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); + data[1]++; + } + break; + case 5: + data[2]++; + if (data[2] > 20) + { + data[2] = 0; + sub_80717A8(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); + data[1]++; + } + break; + case 6: + if (!sub_807185C(0)) + { + sub_80717A8(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); + data[1]++; + } + break; + case 7: + data[2]++; + if (data[2] > 20) + { + data[2] = 0; + sub_80717A8(0x2000, -3, 0x00, 0x10, RGB(30, 30, 31), 0, 0); + data[1]++; + } + break; + case 8: + if (!sub_807185C(0)) + { + data[5] = 1; + r4 = (0x10000 << sub_80799F0()) | 0x00001FFF; + BlendPalettes(r4, 0x10, RGB(30, 30, 31)); + BeginNormalPaletteFade(r4, 1, 0x10, 0x00, RGB(30, 30, 31)); + ShowBg(0); + CpuCopy16(gUnknown_8EAD5E8, gPlttBufferUnfaded + 0xD0, 0x20); + sub_80717A8(0x2000, 1, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); + data[1]++; + } + break; + case 9: + if (!sub_807185C(0) && !gPaletteFade.active) + { + sub_8078C90(data, TITLESCREENSCENE_RUN); + } + break; + } +} + +#define KEYSTROKE_DELSAVE (B_BUTTON | SELECT_BUTTON | DPAD_UP) +#define KEYSTROKE_BERRY_FIX (B_BUTTON | SELECT_BUTTON) + +void sub_8078FC4(s16 * data) +{ + switch (data[1]) + { + case 0: + HelpSystem_SetSomeVariable2(1); + CreateTask(sub_807941C, 0); + CreateTask(sub_8079840, 5); + sub_80790A0(); + data[6] = sub_8079A40(); + 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); + } + else if (JOY_HELD(KEYSTROKE_BERRY_FIX) == KEYSTROKE_BERRY_FIX) + { + sub_8079A88(data[6]); + DestroyTask(FindTaskIdByFunc(sub_8078C24)); + SetMainCallback2(sub_80796E8); + } + else if (JOY_NEW(A_BUTTON | START_BUTTON)) + { + sub_8078C90(data, TITLESCREENSCENE_CRY); + } + else if (!FuncIsActiveTask(sub_8078BEC)) + { + sub_8078C90(data, TITLESCREENSCEEN_RESTART); + } + break; + } +} + +void sub_80790A0(void) +{ + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); + SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0x3F, 0x1F)); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_LIGHTEN); + SetGpuReg(REG_OFFSET_BLDY, 13); +} + +void sub_80790CC(s16 * data) +{ + switch (data[1]) + { + case 0: + sub_8079A88(data[6]); + data[1]++; + break; + case 1: + if (!gPaletteFade.active && !sub_8079AA8(data[6])) + { + FadeOutMapMusic(10); + BeginNormalPaletteFade(0xFFFFFFFF, 3, 0, 0x10, RGB_BLACK); + sub_8079528(); + data[1]++; + } + break; + case 2: + if (IsNotWaitingForBGMStop() && !gPaletteFade.active) + { + DestroyTask(FindTaskIdByFunc(sub_807941C)); + data[2] = 0; + data[1]++; + } + break; + case 3: + data[2]++; + if (data[2] >= 20) + { + DestroyTask(FindTaskIdByFunc(sub_807941C)); + data[1]++; + } + break; + case 4: + sub_812B478(); + DestroyTask(FindTaskIdByFunc(sub_8078C24)); + SetMainCallback2(sub_80EC864); + break; + } +} + +void sub_80791C0(s16 * data) +{ + switch (data[1]) + { + case 0: + if (!gPaletteFade.active) + { + PlayCry1(TITLE_SPECIES, 0); + sub_8079A88(data[6]); + data[2] = 0; + data[1]++; + } + break; + case 1: + if (data[2] < 90) + data[2]++; + else if (!sub_8079AA8(data[6])) + { + BeginNormalPaletteFade(0x0FFFFFFF, 0, 0, 0x10, RGB_WHITE); + sub_8079528(); + FadeOutBGM(4); + data[1]++; + } + break; + case 2: + if (!gPaletteFade.active) + { + SeedRngAndSetTrainerId(); + SetSaveBlocksPointers(); + ResetMenuAndMonGlobals(); + Save_ResetSaveCounters(); + Save_LoadGameData(0); + if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_INVALID) + Sav2_ClearSetDefault(); + SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound); + InitHeap(gHeap, HEAP_SIZE); + SetMainCallback2(sub_800C300); + DestroyTask(FindTaskIdByFunc(sub_8078C24)); + } + break; + } } -- cgit v1.2.3 From c3f95c1cbb7827c09d86fa0a6b481ae0fa3c37d5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 31 Jul 2019 13:50:47 -0400 Subject: title_screen: through sub_8079730 --- src/title_screen.c | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) (limited to 'src') diff --git a/src/title_screen.c b/src/title_screen.c index 32324ec7a..d4c861841 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -16,6 +16,9 @@ #include "new_game.h" #include "save.h" #include "main_menu.h" +#include "clear_save_data_screen.h" +#include "berry_fix_program.h" +#include "decompress.h" #include "constants/songs.h" #include "constants/species.h" @@ -626,3 +629,231 @@ void sub_80791C0(s16 * data) break; } } + +void sub_80792C8(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + SetGpuReg(REG_OFFSET_WININ, WIN_RANGE(0x00, 0x3F)); + SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0x00, 0x37)); + SetGpuReg(REG_OFFSET_WIN0V, 0xA0); + SetGpuReg(REG_OFFSET_WIN0H, 0x00); + BlendPalettes(0x00004000, 0, RGB_BLACK); + data[0]++; + break; + case 1: + data[1] += 0x180; + data[2] = data[1] >> 4; + if (data[2] >= 0xF0) + { + data[2] = 0xF0; + data[0]++; + } + SetGpuReg(REG_OFFSET_WIN0H, data[2]); + break; + case 2: + data[3]++; + if (data[3] >= 10) + { + data[3] = 0; + data[0]++; + } + break; + case 3: + SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0, 0x3B)); + SetGpuReg(REG_OFFSET_WIN0H, 0xF0F0); + ChangeBgX(2, -0xF000, 0); + BlendPalettes(0x00008000, 0, RGB_BLACK); + data[1] = 0xF00; + data[0]++; + break; + case 4: + data[1] -= 0x180; + data[2] = data[1] >> 4; + if (data[2] <= 0) + { + data[2] = 0; + data[0]++; + } + ChangeBgX(2, -data[2] << 8, 0); + SetGpuReg(REG_OFFSET_WIN0H, (data[2] << 8) | 0xF0); + break; + case 5: + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + DestroyTask(taskId); + break; + } +} + +void sub_807941C(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + s32 i; + + if (data[15] && gPaletteFade.active) + data[14] = 1; + if (data[14] && !gPaletteFade.active) + DestroyTask(taskId); + else + { + if (!data[1]) + data[2] = 60; + else + data[2] = 30; + data[0]++; + if (data[0] >= data[2]) + { + data[0] = 0; + data[1] ^= 1; + if (data[1]) + { + for (i = 0; i < 5; i++) + { + gPlttBufferUnfaded[0xF1 + i] = gUnknown_8EAE094[6]; + gPlttBufferFaded[0xF1 + i] = gUnknown_8EAE094[6]; + } + } + else + { + for (i = 0; i < 5; i++) + { + gPlttBufferUnfaded[0xF1 + i] = gUnknown_8EAE094[1 + i]; + gPlttBufferFaded[0xF1 + i] = gUnknown_8EAE094[1 + i]; + } + } + if (data[14]) + { + BlendPalettes(0x00008000, gPaletteFade.y, gPaletteFade.blendColor); + } + } + } +} + +void sub_8079528(void) +{ + u8 taskId = FindTaskIdByFunc(sub_807941C); + gTasks[taskId].data[15] = TRUE; +} + +void sub_8079550(s16 a0) +{ + s32 i; + + if (a0 >= 0) + { + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][a0] = 16; + } + + for (i = 0; i < 16; i++) + { + if (a0 + i >= 0) + { + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][a0 + i] = 15 - i; + } + if (a0 - i >= 0) + { + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][a0 - i] = 15 - i; + } + } + for (i = a0 + 16; i < 160; i++) + { + if (i >= 0) + { + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = 0; + } + } + for (i = a0 - 16; i >= 0; i--) + { + if (i >= 0) + { + gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer][i] = 0; + } + } +} + +void sub_8079620(void) +{ + if (gScanlineEffect.state) + gScanlineEffect.state = 3; + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BLDY, 0); +} + +void sub_8079648(void) +{ + u8 taskId; + + taskId = FindTaskIdByFunc(sub_80792C8); + if (taskId != 0xFF) + DestroyTask(taskId); + + sub_8071898(); + ResetPaletteFadeControl(); + LoadPalette(gUnknown_8EAB6C4, 0x00, 0x1A0); + LoadPalette(gUnknown_8EAD5E8, 0xD0, 0x20); + LoadPalette(gUnknown_8EAE094, 0xF0, 0x20); + LoadPalette(gUnknown_8EAE094, 0xE0, 0x20); + ResetBgPositions(); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); + ShowBg(1); + ShowBg(2); + ShowBg(0); + ShowBg(3); +} + +void sub_80796CC(void) +{ + if (!UpdatePaletteFade()) + SetMainCallback2(sub_80F55A0); +} + +void sub_80796E8(void) +{ + if (!UpdatePaletteFade()) + { + m4aMPlayAllStop(); + SetMainCallback2(mb_berry_fix_serve); + } +} + +void sub_8079708(void) +{ + s32 i; + + for (i = 0; i < NELEMS(gUnknown_83BFB9C); i++) + LoadCompressedSpriteSheet(&gUnknown_83BFB9C[i]); + LoadSpritePalettes(gUnknown_83BFBBC); +} + +void sub_8079730(struct Sprite * sprite) +{ + s16 * data = sprite->data; + sprite->data[0] -= data[1]; + sprite->pos1.x = sprite->data[0] >> 4; + if (sprite->pos1.x < -8) + { + DestroySprite(sprite); + return; + } + data[2] += data[3]; + sprite->pos1.y = data[2] >> 4; + if (sprite->pos1.y < 0x10 || sprite->pos1.y > 0xc8) + { + DestroySprite(sprite); + return; + } + if (sprite->animEnded) + { + DestroySprite(sprite); + return; + } + if (data[7] != 0 && --data[7] == 0) + { + StartSpriteAnim(sprite, 0); + sprite->invisible = FALSE; + } +} -- cgit v1.2.3 From 11dd5fa23f44a6666a43b1f8ad5a2cb264117460 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 31 Jul 2019 15:08:46 -0400 Subject: finish title_screen; frlg split in sub_8079730 --- src/title_screen.c | 199 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 198 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/title_screen.c b/src/title_screen.c index d4c861841..492f0e378 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -63,11 +63,14 @@ 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(s16 a0); +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); // bg3 const u8 gUnknown_83BF58C[] = INCBIN_U8("data/graphics/title_screen/unk_83BF58C.4bpp.lz"); @@ -846,6 +849,7 @@ void sub_8079730(struct Sprite * sprite) DestroySprite(sprite); return; } +#if defined(FIRERED) if (sprite->animEnded) { DestroySprite(sprite); @@ -856,4 +860,197 @@ void sub_8079730(struct Sprite * sprite) StartSpriteAnim(sprite, 0); sprite->invisible = FALSE; } +#elif defined(LEAFGREEN) + if (!data[5]) + { + s32 r2; + s32 r1; + data[6]++; + r2 = data[1] * data[6]; + r1 = data[6] * data[3]; + r2 = (r2 * r2) >> 4; + r1 = (r1 * r1) >> 4; + if (r2 + r1 >= 0x510) + data[5] = TRUE; + } +#endif +} + +bool32 sub_80797AC(s32 x, s32 y, s32 xspeed, s32 yspeed, bool32 templateId) +{ + u8 spriteId; + if (templateId) + { + spriteId = CreateSprite(&gUnknown_83BFB04, x, y, 0); + } + else + { + spriteId = CreateSprite(&gUnknown_83BFB1C, x, y, 0); + } + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[0] = x << 4; + gSprites[spriteId].data[1] = xspeed; + gSprites[spriteId].data[2] = y << 4; + gSprites[spriteId].data[3] = yspeed; + gSprites[spriteId].data[4] = 0; + gSprites[spriteId].data[5] = (xspeed * yspeed) % 16; + gSprites[spriteId].data[6] = templateId; + gSprites[spriteId].callback = sub_8079730; + return TRUE; + } + return FALSE; +} + +void sub_8079840(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + s32 x, y, xspeed, yspeed, templateId; + s32 i; + + switch (data[0]) + { + case 0: + sub_807999C(taskId, 3, 0x7878); + data[0]++; + break; + case 1: + data[1]++; + if (data[1] >= data[2]) + { + data[1] = 0; + sub_80799B4(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( + x, + y, + xspeed, + yspeed, + (sub_80799B4(taskId, 3) % 16) < 8 ? 0 : 1 + ); + for (i = 0; i < 15; i++) + { + sub_80797AC( + data[5] + gUnknown_83BFBD4[i], + y, + xspeed, + yspeed, + 1 + ); + xspeed = (sub_80799B4(taskId, 3) % 4) - 2; + yspeed = (sub_80799B4(taskId, 3) % 8) - 16; + } + data[5]++; + if (data[5] > 3) + data[5] = 0; + } + } +} + +void sub_807999C(u8 taskId, u8 field, u16 seed) +{ + SetWordTaskArg(taskId, field, seed); +} + +u16 sub_80799B4(u8 taskId, u8 field) +{ + u32 rngval; + + rngval = GetWordTaskArg(taskId, field); + rngval = rngval * 1103515245 + 24691; + SetWordTaskArg(taskId, field, rngval); + return rngval >> 16; +} + +u32 sub_80799F0(void) +{ + CreateSprite(&gUnknown_83BFB3C, 0x18, 0x90, 0); + return IndexOfSpritePaletteTag(2); +} + +void sub_8079A10(bool32 mode) +{ + u32 palIdx; + + if (mode) + { + palIdx = IndexOfSpritePaletteTag(2); + LoadPalette(gUnknown_8EAE488, palIdx * 16 + 0x100, 0x20); + } + else + sub_80799F0(); +} + +u8 sub_8079A40(void) +{ + u8 spriteId = CreateSprite(&gUnknown_83BFB5C, -0x20, 0x1B, 1); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].callback = sub_8079AD8; + gSprites[spriteId].data[1] = 540; + } + return spriteId; +} + +void sub_8079A88(u8 spriteId) +{ + if (spriteId != MAX_SPRITES) + gSprites[spriteId].data[2] = TRUE; +} + +bool32 sub_8079AA8(u8 spriteId) +{ + if (spriteId != MAX_SPRITES) + return gSprites[spriteId].data[0] ^ 2 ? TRUE : FALSE; + else + return FALSE; +} + +void sub_8079AD8(struct Sprite * sprite) +{ + switch (sprite->data[0]) + { + case 0: + if (sprite->data[2]) + { + sprite->invisible = TRUE; + sprite->data[0] = 2; + } + sprite->data[1]--; + if (sprite->data[1] == 0) + { + sprite->invisible = FALSE; + sprite->data[0] = 1; + } + break; + case 1: + sprite->pos1.x += 9; + if (sprite->pos1.x == 67) + { + sprite->pos1.y -= 7; + } + if (sprite->pos1.x == 148) + { + sprite->pos1.y += 7; + } + if (sprite->pos1.x > 272) + { + sprite->invisible = TRUE; + if (sprite->data[2]) + sprite->data[0] = 2; + else + { + sprite->pos1.x = -0x20; + sprite->data[1] = 540; + sprite->data[0] = 0; + } + } + break; + case 2: + break; + } } -- cgit v1.2.3 From e2c552f1df045719652e1d91fb6a6ad67d00a045 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 31 Jul 2019 16:11:20 -0400 Subject: Static decl/def; gfx dump --- src/title_screen.c | 314 ++++++++++++++++++++++++++--------------------------- 1 file changed, 157 insertions(+), 157 deletions(-) (limited to 'src') 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]) { -- cgit v1.2.3 From 6032159d1bc099d4ed112e5e387ebba1d35fe6a9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 31 Jul 2019 17:15:57 -0400 Subject: Name stuff --- src/title_screen.c | 120 ++++++++++++++++++++++++++--------------------------- 1 file changed, 60 insertions(+), 60 deletions(-) (limited to 'src') diff --git a/src/title_screen.c b/src/title_screen.c index 3e801c72f..f4086b2ff 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -66,23 +66,23 @@ 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 void SetPalOnOrCreateBlankSprite(bool32 a0); static u8 CreateSlashSprite(void); static void ScheduleHideSlashSprite(u8 spriteId); static bool32 IsSlashSpriteHidden(u8 spriteId); static void SpriteCallback_Slash(struct Sprite * sprite); // bg3 -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"); +static const u8 sBorderBgTiles[] = INCBIN_U8("data/graphics/title_screen/unk_83BF58C.4bpp.lz"); +static const u8 sBorderBgMap[] = INCBIN_U8("data/graphics/title_screen/unk_83BF5A8.bin.lz"); //sprites -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"); +static const u8 sSlashSpriteTiles[] = INCBIN_U8("data/graphics/title_screen/unk_83bf64c.4bpp.lz"); +static const u16 sSlashSpritePals[] = INCBIN_U16("data/graphics/title_screen/unk_83bf77c.gbapal"); +static const u8 sFireSpriteTiles[] = INCBIN_U8("data/graphics/title_screen/unk_83bf79c.4bpp.lz"); +static const u8 sBlankFireSpriteTiles[] = INCBIN_U8("data/graphics/title_screen/unk_83bfa14.4bpp.lz"); -static const struct OamData gOamData_83BFAB4 = { +static const struct OamData sOamData_FlameOrLeaf = { .objMode = ST_OAM_OBJ_NORMAL, .shape = ST_OAM_SQUARE, .size = ST_OAM_SIZE_1, @@ -91,7 +91,7 @@ static const struct OamData gOamData_83BFAB4 = { .paletteNum = 0 }; -static const union AnimCmd gSpriteAnims_83BFABC[] = { +static const union AnimCmd sSpriteAnims_FlameOrLeaf_0[] = { ANIMCMD_FRAME(0x00, 3), ANIMCMD_FRAME(0x04, 6), ANIMCMD_FRAME(0x08, 6), @@ -105,7 +105,7 @@ static const union AnimCmd gSpriteAnims_83BFABC[] = { ANIMCMD_END }; -static const union AnimCmd gSpriteAnims_83BFAE8[] = { +static const union AnimCmd sSpriteAnims_FlameOrLeaf_1[] = { ANIMCMD_FRAME(0x18, 6), ANIMCMD_FRAME(0x1c, 6), ANIMCMD_FRAME(0x20, 6), @@ -113,16 +113,16 @@ static const union AnimCmd gSpriteAnims_83BFAE8[] = { ANIMCMD_END }; -static const union AnimCmd *const gSpriteAnimTable_83BFAFC[] = { - gSpriteAnims_83BFABC, - gSpriteAnims_83BFAE8 +static const union AnimCmd *const sSpriteAnimTable_FlameOrLeaf[] = { + sSpriteAnims_FlameOrLeaf_0, + sSpriteAnims_FlameOrLeaf_1 }; static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State1 = { .tileTag = 0, .paletteTag = 0, - .oam = &gOamData_83BFAB4, - .anims = gSpriteAnimTable_83BFAFC, + .oam = &sOamData_FlameOrLeaf, + .anims = sSpriteAnimTable_FlameOrLeaf, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy @@ -131,14 +131,14 @@ static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State1 = { static const struct SpriteTemplate sSpriteTemplate_FlameOrLeaf_State0 = { .tileTag = 1, .paletteTag = 0, - .oam = &gOamData_83BFAB4, - .anims = gSpriteAnimTable_83BFAFC, + .oam = &sOamData_FlameOrLeaf, + .anims = sSpriteAnimTable_FlameOrLeaf, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_83BFB34 = { +static const struct OamData sOamData_UnknownTemptySprite = { .objMode = ST_OAM_OBJ_NORMAL, .shape = ST_OAM_V_RECTANGLE, .size = ST_OAM_SIZE_3, @@ -150,14 +150,14 @@ static const struct OamData gOamData_83BFB34 = { static const struct SpriteTemplate sUnknownEmptySprite = { .tileTag = 2, .paletteTag = 2, - .oam = &gOamData_83BFB34, + .oam = &sOamData_UnknownTemptySprite, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_83BFB54 = { +static const struct OamData sOamData_SlashSprite = { .objMode = ST_OAM_OBJ_WINDOW, .shape = ST_OAM_SQUARE, .size = ST_OAM_SIZE_3, @@ -169,14 +169,14 @@ static const struct OamData gOamData_83BFB54 = { static const struct SpriteTemplate sSlashSpriteTemplate = { .tileTag = 3, .paletteTag = 2, - .oam = &gOamData_83BFB54, + .oam = &sOamData_SlashSprite, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct BgTemplate gUnknown_83BFB74[] = { +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, .charBaseIndex = 0, @@ -212,7 +212,7 @@ static const struct BgTemplate gUnknown_83BFB74[] = { } }; -static void (*const gUnknown_83BFB84[])(s16 * data) = { +static void (*const sSceneFuncs[])(s16 * data) = { SetTitleScreenScene_Init, SetTitleScreenScene_FlashSprite, SetTitleScreenScene_FadeIn, @@ -221,16 +221,16 @@ static void (*const gUnknown_83BFB84[])(s16 * data) = { SetTitleScreenScene_Cry }; -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} +static const struct CompressedSpriteSheet sSpriteSheets[] = { + {(const void *)sFireSpriteTiles, 0x500, 0}, + {(const void *)sBlankFireSpriteTiles, 0x500, 1}, + {(const void *)gGraphics_TitleScreen_BlankObjTiles, 0x400, 2}, + {(const void *)sSlashSpriteTiles, 0x800, 3} }; -static const struct SpritePalette gUnknown_83BFBBC[] = { - {gUnknown_83BF77C, 0}, - {gUnknown_8EAE488, 2}, +static const struct SpritePalette sSpritePals[] = { + {sSlashSpritePals, 0}, + {gGraphics_TitleScreen_FirePals, 2}, {} }; @@ -258,23 +258,23 @@ void CB2_InitTitleScreen(void) DmaFill32(3, 0, (void *)OAM, OAM_SIZE); DmaFill16(3, 0, (void *)PLTT, PLTT_SIZE); ResetBgsAndClearDma3BusyFlags(FALSE); - InitBgsFromTemplates(0, gUnknown_83BFB74, NELEMS(gUnknown_83BFB74)); + InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates)); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); sTitleScreenTimerTaskId = 0xFF; break; case 1: - LoadPalette(gUnknown_8EAB6C4, 0, 0x1A0); - DecompressAndCopyTileDataToVram(0, gUnknown_8EAB8C4, 0, 0, 0); - DecompressAndCopyTileDataToVram(0, gUnknown_8EAD390, 0, 0, 1); - LoadPalette(gUnknown_8EAD5E8, 0xD0, 0x20); - DecompressAndCopyTileDataToVram(1, gUnknown_8EAD608, 0, 0, 0); - DecompressAndCopyTileDataToVram(1, gUnknown_8EADEE4, 0, 0, 1); - LoadPalette(gUnknown_8EAE094, 0xF0, 0x20); - DecompressAndCopyTileDataToVram(2, gUnknown_8EAE0B4, 0, 0, 0); - DecompressAndCopyTileDataToVram(2, gUnknown_8EAE374, 0, 0, 1); - LoadPalette(gUnknown_8EAE094, 0xE0, 0x20); - DecompressAndCopyTileDataToVram(3, gUnknown_83BF58C, 0, 0, 0); - DecompressAndCopyTileDataToVram(3, gUnknown_83BF5A8, 0, 0, 1); + LoadPalette(gGraphics_TitleScreen_PokemonFireRedLogoPals, 0, 0x1A0); + DecompressAndCopyTileDataToVram(0, gGraphics_TitleScreen_PokemonFireRedLogoTiles, 0, 0, 0); + DecompressAndCopyTileDataToVram(0, gGraphics_TitleScreen_PokemonFireRedLogoMap, 0, 0, 1); + LoadPalette(gGraphics_TitleScreen_CharizardPals, 0xD0, 0x20); + DecompressAndCopyTileDataToVram(1, gGraphics_TitleScreen_CharizardTiles, 0, 0, 0); + DecompressAndCopyTileDataToVram(1, gGraphics_TitleScreen_CharizardMap, 0, 0, 1); + LoadPalette(gGraphics_TitleScreen_BackgroundPals, 0xF0, 0x20); + DecompressAndCopyTileDataToVram(2, gGraphics_TitleScreen_CopyrightPressStartTiles, 0, 0, 0); + DecompressAndCopyTileDataToVram(2, gGraphics_TitleScreen_CopyrightPressStartMap, 0, 0, 1); + LoadPalette(gGraphics_TitleScreen_BackgroundPals, 0xE0, 0x20); + DecompressAndCopyTileDataToVram(3, sBorderBgTiles, 0, 0, 0); + DecompressAndCopyTileDataToVram(3, sBorderBgMap, 0, 0, 1); LoadSpriteGfxAndPals(); break; case 2: @@ -347,12 +347,12 @@ static void Task_TitleScreenMain(u8 taskId) { ScheduleStopScanlineEffect(); LoadMainTitleScreenPalsAndResetBgs(); - sub_8079A10(data[5]); + SetPalOnOrCreateBlankSprite(data[5]); SetTitleScreenScene(data, TITLESCREENSCENE_RUN); } else { - gUnknown_83BFB84[data[0]](data); + sSceneFuncs[data[0]](data); } } @@ -486,7 +486,7 @@ static void SetTitleScreenScene_FadeIn(s16 * data) BlendPalettes(r4, 0x10, RGB(30, 30, 31)); BeginNormalPaletteFade(r4, 1, 0x10, 0x00, RGB(30, 30, 31)); ShowBg(0); - CpuCopy16(gUnknown_8EAD5E8, gPlttBufferUnfaded + 0xD0, 0x20); + CpuCopy16(gGraphics_TitleScreen_CharizardPals, gPlttBufferUnfaded + 0xD0, 0x20); sub_80717A8(0x2000, 1, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); data[1]++; } @@ -716,16 +716,16 @@ static void Task_TitleScreen_PaletteSomething(u8 taskId) { for (i = 0; i < 5; i++) { - gPlttBufferUnfaded[0xF1 + i] = gUnknown_8EAE094[6]; - gPlttBufferFaded[0xF1 + i] = gUnknown_8EAE094[6]; + gPlttBufferUnfaded[0xF1 + i] = gGraphics_TitleScreen_BackgroundPals[6]; + gPlttBufferFaded[0xF1 + i] = gGraphics_TitleScreen_BackgroundPals[6]; } } else { for (i = 0; i < 5; i++) { - gPlttBufferUnfaded[0xF1 + i] = gUnknown_8EAE094[1 + i]; - gPlttBufferFaded[0xF1 + i] = gUnknown_8EAE094[1 + i]; + gPlttBufferUnfaded[0xF1 + i] = gGraphics_TitleScreen_BackgroundPals[1 + i]; + gPlttBufferFaded[0xF1 + i] = gGraphics_TitleScreen_BackgroundPals[1 + i]; } } if (data[14]) @@ -796,10 +796,10 @@ static void LoadMainTitleScreenPalsAndResetBgs(void) sub_8071898(); ResetPaletteFadeControl(); - LoadPalette(gUnknown_8EAB6C4, 0x00, 0x1A0); - LoadPalette(gUnknown_8EAD5E8, 0xD0, 0x20); - LoadPalette(gUnknown_8EAE094, 0xF0, 0x20); - LoadPalette(gUnknown_8EAE094, 0xE0, 0x20); + LoadPalette(gGraphics_TitleScreen_PokemonFireRedLogoPals, 0x00, 0x1A0); + LoadPalette(gGraphics_TitleScreen_CharizardPals, 0xD0, 0x20); + LoadPalette(gGraphics_TitleScreen_BackgroundPals, 0xF0, 0x20); + LoadPalette(gGraphics_TitleScreen_BackgroundPals, 0xE0, 0x20); ResetBgPositions(); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); ShowBg(1); @@ -827,9 +827,9 @@ static void LoadSpriteGfxAndPals(void) { s32 i; - for (i = 0; i < NELEMS(gUnknown_83BFB9C); i++) - LoadCompressedSpriteSheet(&gUnknown_83BFB9C[i]); - LoadSpritePalettes(gUnknown_83BFBBC); + for (i = 0; i < NELEMS(sSpriteSheets); i++) + LoadCompressedSpriteSheet(&sSpriteSheets[i]); + LoadSpritePalettes(sSpritePals); } static void SpriteCallback_TitleScreenFlameOrLeaf(struct Sprite * sprite) @@ -972,14 +972,14 @@ static u32 CreateBlankSprite(void) return IndexOfSpritePaletteTag(2); } -static void sub_8079A10(bool32 mode) +static void SetPalOnOrCreateBlankSprite(bool32 mode) { u32 palIdx; if (mode) { palIdx = IndexOfSpritePaletteTag(2); - LoadPalette(gUnknown_8EAE488, palIdx * 16 + 0x100, 0x20); + LoadPalette(gGraphics_TitleScreen_FirePals, palIdx * 16 + 0x100, 0x20); } else CreateBlankSprite(); -- cgit v1.2.3