summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-12-18 14:55:28 -0500
committerscnorton <scnorton@biociphers.org>2017-12-18 14:55:28 -0500
commit408f3cf295e76b61f2c1a442c80d1036bbaa9d28 (patch)
tree1038a42b98763c14dc47cafa3144b0675ad6e780
parent16935c054850b4c8a339aba68ce6d7acec73a96a (diff)
Decompile data: intro_credits_graphics
-rw-r--r--data/intro_credits_graphics.s416
-rw-r--r--data/trainer_see.s4
-rw-r--r--include/intro_credits_graphics.h14
-rw-r--r--ld_script.txt2
-rw-r--r--src/scene/credits.c12
-rw-r--r--src/scene/intro.c10
-rwxr-xr-xsrc/scene/intro_credits_graphics.c392
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)
{
}