diff options
author | scnorton <scnorton@biociphers.org> | 2017-12-18 14:55:28 -0500 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2017-12-18 14:55:28 -0500 |
commit | 408f3cf295e76b61f2c1a442c80d1036bbaa9d28 (patch) | |
tree | 1038a42b98763c14dc47cafa3144b0675ad6e780 | |
parent | 16935c054850b4c8a339aba68ce6d7acec73a96a (diff) |
Decompile data: intro_credits_graphics
-rw-r--r-- | data/intro_credits_graphics.s | 416 | ||||
-rw-r--r-- | data/trainer_see.s | 4 | ||||
-rw-r--r-- | include/intro_credits_graphics.h | 14 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/scene/credits.c | 12 | ||||
-rw-r--r-- | src/scene/intro.c | 10 | ||||
-rwxr-xr-x | src/scene/intro_credits_graphics.c | 392 |
7 files changed, 328 insertions, 522 deletions
diff --git a/data/intro_credits_graphics.s b/data/intro_credits_graphics.s deleted file mode 100644 index 8c096e1cd..000000000 --- a/data/intro_credits_graphics.s +++ /dev/null @@ -1,416 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_084121FC:: @ 84121FC - .incbin "graphics/intro/intro2_grass.gbapal" - -gUnknown_0841221C:: @ 841221C - .incbin "graphics/intro/intro2_grass_afternoon.gbapal" - -gUnknown_0841223C:: @ 841223C - .incbin "graphics/intro/intro2_grass_night.gbapal" - - .align 2 -gUnknown_0841225C:: @ 841225C - .incbin "graphics/intro/intro2_grass.4bpp.lz" - - .align 2 -gUnknown_084126DC:: @ 84126DC - .incbin "graphics/intro/intro2_grass_map.bin.lz" - -gUnknown_08412818:: @ 8412818 - .incbin "graphics/intro/8412818.gbapal" - -gUnknown_08412878:: @ 8412878 - .incbin "graphics/intro/8412878.gbapal" - - .align 2 -gUnknown_084128D8:: @ 84128D8 - .incbin "graphics/intro/intro2_bgclouds.4bpp.lz" - - .align 2 -gUnknown_08412EB4:: @ 8412EB4 - .incbin "graphics/intro/intro2_bgclouds_map.bin.lz" - -gUnknown_08413184:: @ 8413184 - .incbin "graphics/intro/intro2_bgclouds.gbapal" - -gUnknown_084131A4:: @ 84131A4 - .incbin "graphics/intro/intro2_bgclouds_afternoon.gbapal" - -gUnknown_084131C4:: @ 84131C4 - .incbin "graphics/intro/intro2_bgclouds2.4bpp.lz" - -gUnknown_08413300:: @ 8413300 - .incbin "graphics/intro/intro2_bgtrees2.gbapal" - -gUnknown_08413320:: @ 8413320 - .incbin "graphics/intro/intro2_bgtrees2_afternoon.gbapal" - - .align 2 -gUnknown_08413340:: @ 8413340 - .incbin "graphics/intro/intro2_bgtrees.4bpp.lz" - - .align 2 -gUnknown_084139C8:: @ 84139C8 - .incbin "graphics/intro/intro2_bgtrees_map.bin.lz" - - .align 2 -gUnknown_08413CCC:: @ 8413CCC - .incbin "graphics/intro/intro2_bgtrees.gbapal" - - .align 2 -gIntro2TreeTiles:: @ 8413CEC - .incbin "graphics/intro/intro2_bgtreessmall.4bpp.lz" - -gUnknown_08413E38:: @ 8413E38 - .incbin "graphics/intro/8413E38.gbapal" - - .align 2 -gUnknown_08413E78:: @ 8413E78 - .incbin "graphics/intro/intro2_bgnight.4bpp.lz" @ only used in credits, coupled with intro because bicycle sequence - - .align 2 -gUnknown_08414064:: @ 8414064 - .incbin "graphics/intro/intro2_bgnight.gbapal" - - .align 2 -gUnknown_08414084:: @ 8414084 - .incbin "graphics/intro/intro2_bgnight_map.bin.lz" - - .align 2 -gIntro2NightTiles:: @ 8414330 - .incbin "graphics/intro/intro2_night.4bpp.lz" - - .align 1 -gIntro2BrendanPalette:: @ 84143B4 - .incbin "graphics/intro/intro2_brendan.gbapal" - - .align 2 -gIntro2BrendanTiles:: @ 84143D4 - .incbin "graphics/intro/intro2_brendan.4bpp.lz" - - .align 1 -gIntro2MayPalette:: @ 8414F70 - .incbin "graphics/intro/intro2_may.gbapal" - - .align 2 -gUnknown_08414F90:: @ 8414F90 - .space 0x1E0 - - .align 2 -gIntro2MayTiles:: @ 8415170 - .incbin "graphics/intro/intro2_may.4bpp.lz" - - .align 2 -gIntro2BicycleTiles:: @ 8415E08 - .incbin "graphics/intro/intro2_bicycle.4bpp.lz" - - .align 1 -gIntro2LatiosPalette:: @ 8416234 - .incbin "graphics/intro/intro2_latios.gbapal" - - .align 2 -gIntro2LatiosTiles:: @ 8416254 - .incbin "graphics/intro/intro2_latios.4bpp.lz" - - .align 1 -gIntro2LatiasPalette:: @ 84166F8 - .incbin "graphics/intro/intro2_latias.gbapal" - - .align 2 -gIntro2LatiasTiles:: @ 8416718 - .incbin "graphics/intro/intro2_latias.4bpp.lz" - - .align 2 -gSpriteTemplate_8416B3C:: @ 8416B3C - spr_template 2000, 0xFFFF, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_814910C - - .align 2 -gUnknown_08416B54:: @ 8416B54 - obj_tiles gUnknown_084131C4, 0x400, 2000 - null_obj_tiles - - .align 2 -gSpriteAnim_8416B64:: @ 8416B64 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_8416B6C:: @ 8416B6C - obj_image_anim_frame 16, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_8416B74:: @ 8416B74 - obj_image_anim_frame 20, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_8416B7C:: @ 8416B7C - obj_image_anim_frame 22, 30 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_8416B84:: @ 8416B84 - .4byte gSpriteAnim_8416B64 - .4byte gSpriteAnim_8416B6C - .4byte gSpriteAnim_8416B74 - .4byte gSpriteAnim_8416B7C - -@ array of 8-byte structs - .align 2 -gUnknown_08416B94:: @ 8416B94 - .byte -128, 72, 32, 100 - .2byte 0xC00 - .space 2 - .byte -128, -98, 32, 100 - .2byte 0xC00 - .space 2 - .byte 65, -64, 40, 101 - .2byte 0x800 - .space 2 - .byte 65, 56, 40, 101 - .2byte 0x800 - .space 2 - .byte 18, 100, 44, 102 - .2byte 0x400 - .space 2 - .byte 18, -104, 44, 102 - .2byte 0x400 - .space 2 - .byte 19, 8, 46, 103 - .2byte 0x100 - .space 2 - .byte 19, 56, 46, 103 - .2byte 0x100 - .space 2 - .byte 19, -16, 46, 103 - .2byte 0x100 - .space 2 - - .align 2 -gUnknown_08416BDC:: @ 8416BDC - obj_tiles gIntro2TreeTiles, 0x400, 2000 - null_obj_tiles - - .align 2 -gSpriteAnim_8416BEC:: @ 8416BEC - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_8416BF4:: @ 8416BF4 - obj_image_anim_frame 16, 30 - obj_image_anim_end - - .align 2 -gSpriteAnim_8416BFC:: @ 8416BFC - obj_image_anim_frame 24, 30 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_8416C04:: @ 8416C04 - .4byte gSpriteAnim_8416BEC - .4byte gSpriteAnim_8416BF4 - .4byte gSpriteAnim_8416BFC - -@ array of 8-byte structs - .align 2 -gUnknown_08416C10:: @ 8416C10 - .byte -128, 16, 88, 100 - .2byte 0x2000 - .space 2 - .byte -128, 80, 88, 100 - .2byte 0x2000 - .space 2 - .byte -128, -112, 88, 100 - .2byte 0x2000 - .space 2 - .byte -128, -48, 88, 100 - .2byte 0x2000 - .space 2 - .byte -95, 40, 88, 101 - .2byte 0x1000 - .space 2 - .byte -95, 104, 88, 101 - .2byte 0x1000 - .space 2 - .byte -95, -88, 88, 101 - .2byte 0x1000 - .space 2 - .byte -95, -24, 88, 101 - .2byte 0x1000 - .space 2 - .byte -94, 56, 88, 102 - .2byte 0x800 - .space 2 - .byte -94, 120, 88, 102 - .2byte 0x800 - .space 2 - .byte -94, -72, 88, 102 - .2byte 0x800 - .space 2 - .byte -94, -8, 88, 102 - .2byte 0x800 - .space 2 - - .align 2 -gUnknown_08416C70:: @ 8416C70 - obj_tiles gIntro2NightTiles, 0x400, 2000 - null_obj_tiles - - .align 2 -gSpriteAnim_8416C80:: @ 8416C80 - obj_image_anim_frame 0, 30 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_8416C88:: @ 8416C88 - .4byte gSpriteAnim_8416C80 - -@ array of 8-byte structs - .align 2 -gUnknown_08416C8C:: @ 8416C8C - .byte -128, 24, 88, 100 - .2byte 0x1000 - .space 2 - .byte -128, 64, 88, 100 - .2byte 0x1000 - .space 2 - .byte -128, 104, 88, 100 - .2byte 0x1000 - .space 2 - .byte -128, -112, 88, 100 - .2byte 0x1000 - .space 2 - .byte -128, -72, 88, 100 - .2byte 0x1000 - .space 2 - .byte -128, -32, 88, 100 - .2byte 0x1000 - .space 2 - - .align 2 -gOamData_8416CBC:: @ 8416CBC - .2byte 0x00A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_8416CC4:: @ 8416CC4 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 64, 8 - obj_image_anim_frame 128, 8 - obj_image_anim_frame 192, 8 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_8416CD8:: @ 8416CD8 - .4byte gSpriteAnim_8416CC4 - - .align 2 -gSpriteTemplate_8416CDC:: @ 8416CDC - spr_template 1002, 1002, gOamData_8416CBC, gSpriteAnimTable_8416CD8, NULL, gDummySpriteAffineAnimTable, nullsub_82 - - .align 2 -gSpriteTemplate_8416CF4:: @ 8416CF4 - spr_template 1003, 1003, gOamData_8416CBC, gSpriteAnimTable_8416CD8, NULL, gDummySpriteAffineAnimTable, nullsub_82 - - .align 2 -gOamData_8416D0C:: @ 8416D0C - .2byte 0x40A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_8416D14:: @ 8416D14 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 32, 8 - obj_image_anim_frame 64, 8 - obj_image_anim_frame 96, 8 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_8416D28:: @ 8416D28 - .4byte gSpriteAnim_8416D14 - - .align 2 -gSpriteTemplate_Brendan:: @ 8416D2C - spr_template 1001, 1002, gOamData_8416D0C, gSpriteAnimTable_8416D28, NULL, gDummySpriteAffineAnimTable, sub_81492A0 - - .align 2 -gSpriteTemplate_May:: @ 8416D44 - spr_template 1001, 1003, gOamData_8416D0C, gSpriteAnimTable_8416D28, NULL, gDummySpriteAffineAnimTable, sub_81492A0 - - .align 2 -gOamData_8416D5C:: @ 8416D5C - .2byte 0x00A0 - .2byte 0xC000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_8416D64:: @ 8416D64 - obj_image_anim_frame 0, 16 - obj_image_anim_end - - .align 2 -gSpriteAnim_8416D6C:: @ 8416D6C - obj_image_anim_frame 64, 16 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_8416D74:: @ 8416D74 - .4byte gSpriteAnim_8416D64 - .4byte gSpriteAnim_8416D6C - - .align 2 -gSpriteTemplate_8416D7C:: @ 8416D7C - spr_template 1004, 1004, gOamData_8416D5C, gSpriteAnimTable_8416D74, NULL, gDummySpriteAffineAnimTable, nullsub_83 - - .align 2 -gSpriteTemplate_8416D94:: @ 8416D94 - spr_template 1005, 1005, gOamData_8416D5C, gSpriteAnimTable_8416D74, NULL, gDummySpriteAffineAnimTable, nullsub_83 - - .align 2 -gIntro2BrendanSpriteSheet:: @ 8416DAC - obj_tiles gIntro2BrendanTiles, 0x3800, 1002 - .space 8 - - .align 2 -gIntro2MaySpriteSheet:: @ 8416DBC - obj_tiles gIntro2MayTiles, 0x3800, 1003 - .space 8 - - .align 2 -gIntro2BicycleSpriteSheet:: @ 8416DCC - obj_tiles gIntro2BicycleTiles, 0x1000, 1001 - .space 8 - - .align 2 -gIntro2LatiosSpriteSheet:: @ 8416DDC - obj_tiles gIntro2LatiosTiles, 0x1000, 1004 - .space 8 - - .align 2 -gIntro2LatiasSpriteSheet:: @ 8416DEC - obj_tiles gIntro2LatiasTiles, 0x1000, 1005 - .space 8 - - .align 2 -gIntro2SpritePalettes:: @ 8416DFC - obj_pal gIntro2BrendanPalette, 1002 - obj_pal gIntro2MayPalette, 1003 - obj_pal gIntro2LatiosPalette, 1004 - obj_pal gIntro2LatiasPalette, 1005 - .space 8 - -gUnknown_08416E24:: @ 8416E24 - obj_tiles gIntro2BrendanTiles, 0x2000, 1002 - .space 8 - -gUnknown_08416E34:: @ 8416E34 - obj_tiles gIntro2MayTiles, 0x2000, 1003 - .space 8 diff --git a/data/trainer_see.s b/data/trainer_see.s deleted file mode 100644 index 7935c693e..000000000 --- a/data/trainer_see.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata diff --git a/include/intro_credits_graphics.h b/include/intro_credits_graphics.h index 2718d2f9f..303f50095 100644 --- a/include/intro_credits_graphics.h +++ b/include/intro_credits_graphics.h @@ -1,14 +1,14 @@ #ifndef GUARD_INTRO_CREDITS_GRAPHICS_H #define GUARD_INTRO_CREDITS_GRAPHICS_H -extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet; -extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet; -extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet; -extern const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet; -extern const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet; +extern const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2MaySpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet[]; +extern const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet[]; extern const struct SpritePalette gIntro2SpritePalettes[]; -extern const struct CompressedSpriteSheet gUnknown_08416E24; -extern const struct CompressedSpriteSheet gUnknown_08416E34; +extern const struct CompressedSpriteSheet gUnknown_08416E24[]; +extern const struct CompressedSpriteSheet gUnknown_08416E34[]; void load_intro_part2_graphics(u8 a); void sub_8148C78(u8 a); diff --git a/ld_script.txt b/ld_script.txt index 40bd06f54..f502d1097 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -594,7 +594,7 @@ SECTIONS { src/field/berry_tag_screen.o(.rodata); src/engine/save_failed_screen.o(.rodata); src/pokemon/pokeblock_feed.o(.rodata); - data/intro_credits_graphics.o(.rodata); + src/scene/intro_credits_graphics.o(.rodata); src/scene/evolution_graphics.o(.rodata); src/field/bard_music.o(.rodata); src/debug/unknown_debug_menu.o(.rodata); diff --git a/src/scene/credits.c b/src/scene/credits.c index 81be60c9f..40dc5488f 100644 --- a/src/scene/credits.c +++ b/src/scene/credits.c @@ -1228,9 +1228,9 @@ static bool8 sub_8144ECC(u8 data, u8 taskIdA) case 2: if (gSaveBlock2.playerGender == MALE) { - LoadCompressedObjectPic(&gIntro2BrendanSpriteSheet); - LoadCompressedObjectPic(&gUnknown_08416E34); - LoadCompressedObjectPic(&gIntro2BicycleSpriteSheet); + LoadCompressedObjectPic(gIntro2BrendanSpriteSheet); + LoadCompressedObjectPic(gUnknown_08416E34); + LoadCompressedObjectPic(gIntro2BicycleSpriteSheet); LoadSpritePalettes(gIntro2SpritePalettes); spriteId = intro_create_brendan_sprite(120, 46); @@ -1245,9 +1245,9 @@ static bool8 sub_8144ECC(u8 data, u8 taskIdA) } else { - LoadCompressedObjectPic(&gIntro2MaySpriteSheet); - LoadCompressedObjectPic(&gUnknown_08416E24); - LoadCompressedObjectPic(&gIntro2BicycleSpriteSheet); + LoadCompressedObjectPic(gIntro2MaySpriteSheet); + LoadCompressedObjectPic(gUnknown_08416E24); + LoadCompressedObjectPic(gIntro2BicycleSpriteSheet); LoadSpritePalettes(gIntro2SpritePalettes); spriteId = intro_create_may_sprite(120, 46); diff --git a/src/scene/intro.c b/src/scene/intro.c index 9e334d06b..4dc6cc91c 100644 --- a/src/scene/intro.c +++ b/src/scene/intro.c @@ -1087,14 +1087,14 @@ static void Task_IntroStartBikeRide(u8 taskId) u8 spriteId; if (gUnknown_02039318 == 0) - LoadCompressedObjectPic(&gIntro2BrendanSpriteSheet); + LoadCompressedObjectPic(gIntro2BrendanSpriteSheet); else - LoadCompressedObjectPic(&gIntro2MaySpriteSheet); - LoadCompressedObjectPic(&gIntro2BicycleSpriteSheet); + LoadCompressedObjectPic(gIntro2MaySpriteSheet); + LoadCompressedObjectPic(gIntro2BicycleSpriteSheet); #ifdef SAPPHIRE - LoadCompressedObjectPic(&gIntro2LatiasSpriteSheet); + LoadCompressedObjectPic(gIntro2LatiasSpriteSheet); #else - LoadCompressedObjectPic(&gIntro2LatiosSpriteSheet); + LoadCompressedObjectPic(gIntro2LatiosSpriteSheet); #endif LoadSpritePalettes(gIntro2SpritePalettes); if (gUnknown_02039318 == 0) diff --git a/src/scene/intro_credits_graphics.c b/src/scene/intro_credits_graphics.c index 05c67696a..6cee74cce 100755 --- a/src/scene/intro_credits_graphics.c +++ b/src/scene/intro_credits_graphics.c @@ -24,32 +24,282 @@ // define register constants for the inline asm asm(".include \"constants/gba_constants.inc\"\n"); -struct UnknownStruct1 +struct IntroCreditsSpriteMetadata { - u8 var0_0:4; - u8 var0_4:2; - u8 var0_6:2; - u8 var1; - u8 var2; - u8 var3; - u16 var4; -}; - -extern u8 gUnknown_0841225C; -extern u8 gUnknown_084126DC; -extern u8 gUnknown_084121FC; -extern u8 gUnknown_084128D8; -extern u8 gUnknown_08412EB4; -extern u8 gUnknown_08412818; -extern u8 gUnknown_08413184; -extern u8 gUnknown_08413340; -extern u8 gUnknown_084139C8; -extern u8 gUnknown_08413300; -extern u8 gUnknown_08413CCC; - -extern const struct SpriteTemplate gSpriteTemplate_8416B3C; -const extern struct CompressedSpriteSheet gUnknown_08416B54; -const extern struct CompressedSpriteSheet gUnknown_08416BDC; + u8 animNum:4; + u8 shape:2; + u8 size:2; + u8 x; + u8 y; + u8 subpriority; + u16 xOff; +}; + +const u16 gUnknown_084121FC[] = INCBIN_U16("graphics/intro/intro2_grass.gbapal"); +const u16 gUnknown_0841221C[] = INCBIN_U16("graphics/intro/intro2_grass_afternoon.gbapal"); +const u16 gUnknown_0841223C[] = INCBIN_U16("graphics/intro/intro2_grass_night.gbapal"); +const u8 gUnknown_0841225C[] = INCBIN_U8("graphics/intro/intro2_grass.4bpp.lz"); +const u8 gUnknown_084126DC[] = INCBIN_U8("graphics/intro/intro2_grass_map.bin.lz"); +const u16 gUnknown_08412818[] = INCBIN_U16("graphics/intro/8412818.gbapal"); +const u16 gUnknown_08412878[] = INCBIN_U16("graphics/intro/8412878.gbapal"); +const u8 gUnknown_084128D8[] = INCBIN_U8("graphics/intro/intro2_bgclouds.4bpp.lz"); +const u8 gUnknown_08412EB4[] = INCBIN_U8("graphics/intro/intro2_bgclouds_map.bin.lz"); +const u16 gUnknown_08413184[] = INCBIN_U16("graphics/intro/intro2_bgclouds.gbapal"); +const u16 gUnknown_084131A4[] = INCBIN_U16("graphics/intro/intro2_bgclouds_afternoon.gbapal"); +const u8 gUnknown_084131C4[] = INCBIN_U8("graphics/intro/intro2_bgclouds2.4bpp.lz"); +const u16 gUnknown_08413300[] = INCBIN_U16("graphics/intro/intro2_bgtrees2.gbapal"); +const u16 gUnknown_08413320[] = INCBIN_U16("graphics/intro/intro2_bgtrees2_afternoon.gbapal"); +const u8 gUnknown_08413340[] = INCBIN_U8("graphics/intro/intro2_bgtrees.4bpp.lz"); +const u8 gUnknown_084139C8[] = INCBIN_U8("graphics/intro/intro2_bgtrees_map.bin.lz"); +const u16 gUnknown_08413CCC[] = INCBIN_U16("graphics/intro/intro2_bgtrees.gbapal"); +const u8 gIntro2TreeTiles[] = INCBIN_U8("graphics/intro/intro2_bgtreessmall.4bpp.lz"); +const u16 gUnknown_08413E38[] = INCBIN_U16("graphics/intro/8413E38.gbapal"); +const u8 gUnknown_08413E78[] = INCBIN_U8("graphics/intro/intro2_bgnight.4bpp.lz"); // only used in credits, coupled with intro because bicycle sequence +const u16 gUnknown_08414064[] = INCBIN_U16("graphics/intro/intro2_bgnight.gbapal"); +const u8 gUnknown_08414084[] = INCBIN_U8("graphics/intro/intro2_bgnight_map.bin.lz"); +const u8 gIntro2NightTiles[] = INCBIN_U8("graphics/intro/intro2_night.4bpp.lz"); +const u16 gIntro2BrendanPalette[] = INCBIN_U16("graphics/intro/intro2_brendan.gbapal"); +const u8 gIntro2BrendanTiles[] = INCBIN_U8("graphics/intro/intro2_brendan.4bpp.lz"); +const u16 gIntro2MayPalette[] = INCBIN_U16("graphics/intro/intro2_may.gbapal"); +const u16 gUnknown_08414F90[0xF0] = {0}; +const u8 gIntro2MayTiles[] = INCBIN_U8("graphics/intro/intro2_may.4bpp.lz"); +const u8 gIntro2BicycleTiles[] = INCBIN_U8("graphics/intro/intro2_bicycle.4bpp.lz"); +const u16 gIntro2LatiosPalette[] = INCBIN_U16("graphics/intro/intro2_latios.gbapal"); +const u8 gIntro2LatiosTiles[] = INCBIN_U8("graphics/intro/intro2_latios.4bpp.lz"); +const u16 gIntro2LatiasPalette[] = INCBIN_U16("graphics/intro/intro2_latias.gbapal"); +const u8 gIntro2LatiasTiles[] = INCBIN_U8("graphics/intro/intro2_latias.4bpp.lz"); + +void sub_814910C(struct Sprite *sprite); +void nullsub_82(struct Sprite *sprite); +void sub_81492A0(struct Sprite *sprite); +void nullsub_83(struct Sprite *sprite); + +const struct SpriteTemplate gSpriteTemplate_8416B3C = { + 2000, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_814910C +}; + +const struct CompressedSpriteSheet gUnknown_08416B54[] = { + { gUnknown_084131C4, 0x400, 2000 }, + {} +}; + +const union AnimCmd gSpriteAnim_8416B64[] = { + ANIMCMD_FRAME( 0, 30), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_8416B6C[] = { + ANIMCMD_FRAME(16, 30), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_8416B74[] = { + ANIMCMD_FRAME(20, 30), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_8416B7C[] = { + ANIMCMD_FRAME(22, 30), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_8416B84[] = { + gSpriteAnim_8416B64, + gSpriteAnim_8416B6C, + gSpriteAnim_8416B74, + gSpriteAnim_8416B7C +}; + +const struct IntroCreditsSpriteMetadata gUnknown_08416B94[] = { + { 0, ST_OAM_SQUARE, 2, 72, 32, 100, 0xc00 }, + { 0, ST_OAM_SQUARE, 2, 158, 32, 100, 0xc00 }, + { 1, ST_OAM_SQUARE, 1, 192, 40, 101, 0x800 }, + { 1, ST_OAM_SQUARE, 1, 56, 40, 101, 0x800 }, + { 2, ST_OAM_H_RECTANGLE, 0, 100, 44, 102, 0x400 }, + { 2, ST_OAM_H_RECTANGLE, 0, 152, 44, 102, 0x400 }, + { 3, ST_OAM_H_RECTANGLE, 0, 8, 46, 103, 0x100 }, + { 3, ST_OAM_H_RECTANGLE, 0, 56, 46, 103, 0x100 }, + { 3, ST_OAM_H_RECTANGLE, 0, 240, 46, 103, 0x100 }, +}; + +const struct CompressedSpriteSheet gUnknown_08416BDC[] = { + { gIntro2TreeTiles, 0x400, 2000 }, + {} +}; + +const union AnimCmd gSpriteAnim_8416BEC[] = { + ANIMCMD_FRAME( 0, 30), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_8416BF4[] = { + ANIMCMD_FRAME(16, 30), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_8416BFC[] = { + ANIMCMD_FRAME(24, 30), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_8416C04[] = { + gSpriteAnim_8416BEC, + gSpriteAnim_8416BF4, + gSpriteAnim_8416BFC +}; + +const struct IntroCreditsSpriteMetadata gUnknown_08416C10[] = { + { 0, ST_OAM_SQUARE, 2, 16, 88, 100, 0x2000 }, + { 0, ST_OAM_SQUARE, 2, 80, 88, 100, 0x2000 }, + { 0, ST_OAM_SQUARE, 2, 144, 88, 100, 0x2000 }, + { 0, ST_OAM_SQUARE, 2, 208, 88, 100, 0x2000 }, + { 1, ST_OAM_V_RECTANGLE, 2, 40, 88, 101, 0x1000 }, + { 1, ST_OAM_V_RECTANGLE, 2, 104, 88, 101, 0x1000 }, + { 1, ST_OAM_V_RECTANGLE, 2, 168, 88, 101, 0x1000 }, + { 1, ST_OAM_V_RECTANGLE, 2, 232, 88, 101, 0x1000 }, + { 2, ST_OAM_V_RECTANGLE, 2, 56, 88, 102, 0x800 }, + { 2, ST_OAM_V_RECTANGLE, 2, 120, 88, 102, 0x800 }, + { 2, ST_OAM_V_RECTANGLE, 2, 184, 88, 102, 0x800 }, + { 2, ST_OAM_V_RECTANGLE, 2, 248, 88, 102, 0x800 }, +}; + +const struct CompressedSpriteSheet gUnknown_08416C70[] = { + { gIntro2NightTiles, 0x400, 2000 }, + {} +}; + +const union AnimCmd gSpriteAnim_8416C80[] = { + ANIMCMD_FRAME(0, 30), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_8416C88[] = { + gSpriteAnim_8416C80 +}; + +const struct IntroCreditsSpriteMetadata gUnknown_08416C8C[] = { + { 0, ST_OAM_SQUARE, 2, 24, 88, 100, 0x1000 }, + { 0, ST_OAM_SQUARE, 2, 64, 88, 100, 0x1000 }, + { 0, ST_OAM_SQUARE, 2, 104, 88, 100, 0x1000 }, + { 0, ST_OAM_SQUARE, 2, 144, 88, 100, 0x1000 }, + { 0, ST_OAM_SQUARE, 2, 184, 88, 100, 0x1000 }, + { 0, ST_OAM_SQUARE, 2, 224, 88, 100, 0x1000 }, +}; + +const struct OamData gOamData_8416CBC = { + .y = 160, .shape = ST_OAM_SQUARE, .size = 3, .priority = 1 +}; + +const union AnimCmd gSpriteAnim_8416CC4[] = { + ANIMCMD_FRAME( 0, 8), + ANIMCMD_FRAME( 64, 8), + ANIMCMD_FRAME(128, 8), + ANIMCMD_FRAME(192, 8), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd *const gSpriteAnimTable_8416CD8[] = { + gSpriteAnim_8416CC4 +}; + +const struct SpriteTemplate gSpriteTemplate_8416CDC = { + 1002, 1002, &gOamData_8416CBC, gSpriteAnimTable_8416CD8, NULL, gDummySpriteAffineAnimTable, nullsub_82 +}; + +const struct SpriteTemplate gSpriteTemplate_8416CF4 = { + 1003, 1003, &gOamData_8416CBC, gSpriteAnimTable_8416CD8, NULL, gDummySpriteAffineAnimTable, nullsub_82 +}; + +const struct OamData gOamData_8416D0C = { + .y = 160, .shape = ST_OAM_H_RECTANGLE, .size = 3, .priority = 1 +}; + +const union AnimCmd gSpriteAnim_8416D14[] = { + ANIMCMD_FRAME( 0, 8), + ANIMCMD_FRAME( 32, 8), + ANIMCMD_FRAME( 64, 8), + ANIMCMD_FRAME( 96, 8), + ANIMCMD_JUMP(0) +}; + +const union AnimCmd *const gSpriteAnimTable_8416D28[] = { + gSpriteAnim_8416D14 +}; + +const struct SpriteTemplate gSpriteTemplate_Brendan = { + 1001, 1002, &gOamData_8416D0C, gSpriteAnimTable_8416D28, NULL, gDummySpriteAffineAnimTable, sub_81492A0 +}; + +const struct SpriteTemplate gSpriteTemplate_May = { + 1001, 1003, &gOamData_8416D0C, gSpriteAnimTable_8416D28, NULL, gDummySpriteAffineAnimTable, sub_81492A0 +}; + +const struct OamData gOamData_8416D5C = { + .y = 160, .shape = ST_OAM_SQUARE, .size = 3, .priority = 1 +}; + +const union AnimCmd gSpriteAnim_8416D64[] = { + ANIMCMD_FRAME( 0, 16), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_8416D6C[] = { + ANIMCMD_FRAME( 64, 16), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_8416D74[] = { + gSpriteAnim_8416D64, + gSpriteAnim_8416D6C +}; + +const struct SpriteTemplate gSpriteTemplate_8416D7C = { + 1004, 1004, &gOamData_8416D5C, gSpriteAnimTable_8416D74, NULL, gDummySpriteAffineAnimTable, nullsub_83 +}; + +const struct SpriteTemplate gSpriteTemplate_8416D94 = { + 1005, 1005, &gOamData_8416D5C, gSpriteAnimTable_8416D74, NULL, gDummySpriteAffineAnimTable, nullsub_83 +}; + +const struct CompressedSpriteSheet gIntro2BrendanSpriteSheet[] = { + { gIntro2BrendanTiles, 0x3800, 1002 }, + {} +}; +const struct CompressedSpriteSheet gIntro2MaySpriteSheet[] = { + { gIntro2MayTiles, 0x3800, 1003 }, + {} +}; +const struct CompressedSpriteSheet gIntro2BicycleSpriteSheet[] = { + { gIntro2BicycleTiles, 0x1000, 1001 }, + {} +}; +const struct CompressedSpriteSheet gIntro2LatiosSpriteSheet[] = { + { gIntro2LatiosTiles, 0x1000, 1004 }, + {} +}; +const struct CompressedSpriteSheet gIntro2LatiasSpriteSheet[] = { + { gIntro2LatiasTiles, 0x1000, 1005 }, + {} +}; + +const struct SpritePalette gIntro2SpritePalettes[] = { + {gIntro2BrendanPalette, 1002}, + {gIntro2MayPalette, 1003}, + {gIntro2LatiosPalette, 1004}, + {gIntro2LatiasPalette, 1005}, + {} +}; + +const struct CompressedSpriteSheet gUnknown_08416E24[] = { + { gIntro2BrendanTiles, 0x2000, 1002}, + {} +}; + +const struct CompressedSpriteSheet gUnknown_08416E34[] = { + { gIntro2MayTiles, 0x2000, 1003}, + {} +}; + extern u16 gUnknown_02039358; extern s16 gUnknown_0203935A; @@ -71,7 +321,7 @@ void load_intro_part2_graphics(u8 a) LZ77UnCompVram(&gUnknown_084128D8, (void *)(VRAM)); LZ77UnCompVram(&gUnknown_08412EB4, (void *)(VRAM + 0x3000)); LoadPalette(&gUnknown_08412818, 0, 96); - LoadCompressedObjectPic(&gUnknown_08416B54); + LoadCompressedObjectPic(gUnknown_08416B54); LoadPalette(&gUnknown_08413184, 256, 32); sub_8149248(); break; @@ -79,7 +329,7 @@ void load_intro_part2_graphics(u8 a) LZ77UnCompVram(&gUnknown_08413340, (void *)(VRAM)); LZ77UnCompVram(&gUnknown_084139C8, (void *)(VRAM + 0x3000)); LoadPalette(&gUnknown_08413300, 0, 32); - LoadCompressedObjectPic(&gUnknown_08416BDC); + LoadCompressedObjectPic(gUnknown_08416BDC); LoadPalette(&gUnknown_08413CCC, 256, 32); sub_8149264(); break; @@ -106,30 +356,6 @@ void sub_8148C78(u8 a) } } -extern u8 gUnknown_084131C4; -extern u8 gUnknown_084131A4; -extern u8 gUnknown_0841221C; -extern u8 gUnknown_08412878; -extern u8 gUnknown_08413320; -extern u8 gUnknown_0841223C; -extern u8 gUnknown_08413E78; -extern u8 gUnknown_08414084; -extern u8 gUnknown_08413E38; -const extern struct CompressedSpriteSheet gUnknown_08416C70; -extern u8 gUnknown_08414064; -extern struct UnknownStruct1 gUnknown_08416B94; -extern struct UnknownStruct1 gUnknown_08416C10; -extern struct UnknownStruct1 gUnknown_08416C8C; -const extern union AnimCmd *const gSpriteAnimTable_8416B84; -const extern union AnimCmd *const gSpriteAnimTable_8416C04; -const extern union AnimCmd *const gSpriteAnimTable_8416C88; -const extern struct SpriteTemplate gSpriteTemplate_8416CDC; -const extern struct SpriteTemplate gSpriteTemplate_Brendan; -const extern struct SpriteTemplate gSpriteTemplate_8416CF4; -const extern struct SpriteTemplate gSpriteTemplate_May; -const extern struct SpriteTemplate gSpriteTemplate_8416D7C; -const extern struct SpriteTemplate gSpriteTemplate_8416D94; - void sub_8149280(); void sub_8148CB0(u8 a) @@ -144,7 +370,7 @@ void sub_8148CB0(u8 a) LZ77UnCompVram(&gUnknown_084128D8, (void *)(VRAM)); LZ77UnCompVram(&gUnknown_08412EB4, (void *)(VRAM + 0x3000)); LoadPalette(&gUnknown_08412818, 0, 96); - LoadCompressedObjectPic(&gUnknown_08416B54); + LoadCompressedObjectPic(gUnknown_08416B54); LZ77UnCompVram(&gUnknown_084131C4, (void *)(VRAM + 0x10000)); LoadPalette(&gUnknown_08413184, 256, 32); sub_8149248(); @@ -154,7 +380,7 @@ void sub_8148CB0(u8 a) LZ77UnCompVram(&gUnknown_084128D8, (void *)(VRAM)); LZ77UnCompVram(&gUnknown_08412EB4, (void *)(VRAM + 0x3000)); LoadPalette(&gUnknown_08412878, 0, 96); - LoadCompressedObjectPic(&gUnknown_08416B54); + LoadCompressedObjectPic(gUnknown_08416B54); LZ77UnCompVram(&gUnknown_084131C4, (void *)(VRAM + 0x10000)); LoadPalette(&gUnknown_084131A4, 256, 32); sub_8149248(); @@ -165,7 +391,7 @@ void sub_8148CB0(u8 a) LZ77UnCompVram(&gUnknown_08413340, (void *)(VRAM)); LZ77UnCompVram(&gUnknown_084139C8, (void *)(VRAM + 0x3000)); LoadPalette(&gUnknown_08413320, 0, 32); - LoadCompressedObjectPic(&gUnknown_08416BDC); + LoadCompressedObjectPic(gUnknown_08416BDC); LoadPalette(&gUnknown_08413320, 256, 32); sub_8149264(); break; @@ -174,7 +400,7 @@ void sub_8148CB0(u8 a) LZ77UnCompVram(&gUnknown_08413E78, (void *)(VRAM)); LZ77UnCompVram(&gUnknown_08414084, (void *)(VRAM + 0x3000)); LoadPalette(&gUnknown_08413E38, 0, 64); - LoadCompressedObjectPic(&gUnknown_08416C70); + LoadCompressedObjectPic(gUnknown_08416C70); LoadPalette(&gUnknown_08414064, 256, 32); sub_8149280(); break; @@ -367,43 +593,43 @@ _0814901C: .4byte REG_BG3VOFS\n\ void sub_8149020(u8 mode) { - u16 var1; - u16 var2; + u16 x; + u16 y; switch (mode) { case 0: default: /* stuff */ - if (gMain.vblankCounter1 & 3 || gPaletteFade.active) + if (gMain.vblankCounter1 & 3 || gPaletteFade.active) break; if (gMain.vblankCounter1 & 4) { - var1 = gPlttBufferUnfaded[9]; - var2 = gPlttBufferUnfaded[10]; + x = gPlttBufferUnfaded[9]; + y = gPlttBufferUnfaded[10]; } else { - var1 = gPlttBufferUnfaded[10]; - var2 = gPlttBufferUnfaded[9]; + x = gPlttBufferUnfaded[10]; + y = gPlttBufferUnfaded[9]; } - LoadPalette(&var1, 9, 2); - LoadPalette(&var2, 10, 2); + LoadPalette(&x, 9, 2); + LoadPalette(&y, 10, 2); break; case 2: - if (gMain.vblankCounter1 & 3 || gPaletteFade.active) + if (gMain.vblankCounter1 & 3 || gPaletteFade.active) break; if (gMain.vblankCounter1 & 4) { - var1 = 0x3D27; - var2 = 0x295; + x = 0x3D27; + y = 0x295; } else { - var1 = 0x31C; - var2 = 0x3D27; + x = 0x31C; + y = 0x3D27; } - LoadPalette(&var1, 12, 2); - LoadPalette(&var2, 13, 2); + LoadPalette(&x, 12, 2); + LoadPalette(&y, 13, 2); break; case 1: break; @@ -433,42 +659,42 @@ void sub_814910C(struct Sprite *sprite) } } -void sub_8149174(u8 a, struct UnknownStruct1 *b, const union AnimCmd *const *c, u8 d) +void sub_8149174(u8 a, const struct IntroCreditsSpriteMetadata *b, const union AnimCmd *const *c, u8 d) { u8 i; for(i = 0; i < d; i++) { - u8 sprite = CreateSprite(&gSpriteTemplate_8416B3C, b[i].var1, b[i].var2, b[i].var3); - CalcCenterToCornerVec(&gSprites[sprite], b[i].var0_4, b[i].var0_6, 0); + u8 sprite = CreateSprite(&gSpriteTemplate_8416B3C, b[i].x, b[i].y, b[i].subpriority); + CalcCenterToCornerVec(&gSprites[sprite], b[i].shape, b[i].size, 0); gSprites[sprite].oam.priority = 3; - gSprites[sprite].oam.shape = b[i].var0_4; - gSprites[sprite].oam.size = b[i].var0_6; + gSprites[sprite].oam.shape = b[i].shape; + gSprites[sprite].oam.size = b[i].size; gSprites[sprite].oam.paletteNum = 0; gSprites[sprite].anims = c; - StartSpriteAnim(&gSprites[sprite], b[i].var0_0); + StartSpriteAnim(&gSprites[sprite], b[i].animNum); gSprites[sprite].data[0] = a; - gSprites[sprite].data[1] = b[i].var4; + gSprites[sprite].data[1] = b[i].xOff; gSprites[sprite].data[2] = 0; } } void sub_8149248() { - sub_8149174(0, &gUnknown_08416B94, &gSpriteAnimTable_8416B84, 9); + sub_8149174(0, gUnknown_08416B94, gSpriteAnimTable_8416B84, 9); } void sub_8149264() { - sub_8149174(1, &gUnknown_08416C10, &gSpriteAnimTable_8416C04, 12); + sub_8149174(1, gUnknown_08416C10, gSpriteAnimTable_8416C04, 12); } void sub_8149280() { - sub_8149174(1, &gUnknown_08416C8C, &gSpriteAnimTable_8416C88, 6); + sub_8149174(1, gUnknown_08416C8C, gSpriteAnimTable_8416C88, 6); } -void nullsub_82() +void nullsub_82(struct Sprite *sprite) { } @@ -499,7 +725,7 @@ u8 intro_create_may_sprite(s16 a, s16 b) return sprite; } -void nullsub_83() +void nullsub_83(struct Sprite *sprite) { } |