diff --git a/graphics/credits/blastoise_1.png b/graphics/credits/blastoise_1.png new file mode 100644 index 000000000..b212fbcc1 Binary files /dev/null and b/graphics/credits/blastoise_1.png differ diff --git a/graphics/credits/blastoise_2.png b/graphics/credits/blastoise_2.png new file mode 100644 index 000000000..33e581341 Binary files /dev/null and b/graphics/credits/blastoise_2.png differ diff --git a/graphics/credits/charizard_1.png b/graphics/credits/charizard_1.png new file mode 100644 index 000000000..3208cb111 Binary files /dev/null and b/graphics/credits/charizard_1.png differ diff --git a/graphics/credits/charizard_2.png b/graphics/credits/charizard_2.png new file mode 100644 index 000000000..749b4c542 Binary files /dev/null and b/graphics/credits/charizard_2.png differ diff --git a/graphics/credits/unk_8EAE548.bin b/graphics/credits/copyright.bin similarity index 100% rename from graphics/credits/unk_8EAE548.bin rename to graphics/credits/copyright.bin diff --git a/graphics/credits/copyright.png b/graphics/credits/copyright.png new file mode 100644 index 000000000..3e5f0fac3 Binary files /dev/null and b/graphics/credits/copyright.png differ diff --git a/graphics/credits/unk_8413DB8.png b/graphics/credits/ground_city.png similarity index 100% rename from graphics/credits/unk_8413DB8.png rename to graphics/credits/ground_city.png diff --git a/graphics/credits/unk_8413874.png b/graphics/credits/ground_dirt.png similarity index 100% rename from graphics/credits/unk_8413874.png rename to graphics/credits/ground_dirt.png diff --git a/graphics/credits/unk_8413338.png b/graphics/credits/ground_grass.png similarity index 100% rename from graphics/credits/unk_8413338.png rename to graphics/credits/ground_grass.png diff --git a/graphics/credits/pikachu_1.png b/graphics/credits/pikachu_1.png new file mode 100644 index 000000000..8ea65cd49 Binary files /dev/null and b/graphics/credits/pikachu_1.png differ diff --git a/graphics/credits/pikachu_2.png b/graphics/credits/pikachu_2.png new file mode 100644 index 000000000..f31020c90 Binary files /dev/null and b/graphics/credits/pikachu_2.png differ diff --git a/graphics/credits/unk_8411C18.png b/graphics/credits/player_female.png similarity index 100% rename from graphics/credits/unk_8411C18.png rename to graphics/credits/player_female.png diff --git a/graphics/credits/unk_8410E30.png b/graphics/credits/player_male.png similarity index 100% rename from graphics/credits/unk_8410E30.png rename to graphics/credits/player_male.png diff --git a/graphics/credits/unk_8EAB30C.bin b/graphics/credits/pokeball.bin similarity index 100% rename from graphics/credits/unk_8EAB30C.bin rename to graphics/credits/pokeball.bin diff --git a/graphics/credits/unk_8EAAB98.png b/graphics/credits/pokeball.png similarity index 100% rename from graphics/credits/unk_8EAAB98.png rename to graphics/credits/pokeball.png diff --git a/graphics/credits/blastoise.pal b/graphics/credits/pokeball_blastoise.pal similarity index 100% rename from graphics/credits/blastoise.pal rename to graphics/credits/pokeball_blastoise.pal diff --git a/graphics/credits/charizard.pal b/graphics/credits/pokeball_charizard.pal similarity index 100% rename from graphics/credits/charizard.pal rename to graphics/credits/pokeball_charizard.pal diff --git a/graphics/credits/pikachu.pal b/graphics/credits/pokeball_pikachu.pal similarity index 100% rename from graphics/credits/pikachu.pal rename to graphics/credits/pokeball_pikachu.pal diff --git a/graphics/credits/venusaur.pal b/graphics/credits/pokeball_venusaur.pal similarity index 100% rename from graphics/credits/venusaur.pal rename to graphics/credits/pokeball_venusaur.pal diff --git a/graphics/credits/unk_84129C0.png b/graphics/credits/rival.png similarity index 100% rename from graphics/credits/unk_84129C0.png rename to graphics/credits/rival.png diff --git a/graphics/credits/unk_8410B20.bin b/graphics/credits/the_end.bin similarity index 100% rename from graphics/credits/unk_8410B20.bin rename to graphics/credits/the_end.bin diff --git a/graphics/credits/unk_8410B20.png b/graphics/credits/the_end.png similarity index 100% rename from graphics/credits/unk_8410B20.png rename to graphics/credits/the_end.png diff --git a/graphics/credits/unk_840CB8C.bin b/graphics/credits/unk_840CB8C.bin deleted file mode 100644 index 3dd1c74a0..000000000 Binary files a/graphics/credits/unk_840CB8C.bin and /dev/null differ diff --git a/graphics/credits/unk_840D228.bin b/graphics/credits/unk_840D228.bin deleted file mode 100644 index f6c336c01..000000000 Binary files a/graphics/credits/unk_840D228.bin and /dev/null differ diff --git a/graphics/credits/unk_840DC0C.bin b/graphics/credits/unk_840DC0C.bin deleted file mode 100644 index a52ea8056..000000000 Binary files a/graphics/credits/unk_840DC0C.bin and /dev/null differ diff --git a/graphics/credits/unk_840E158.bin b/graphics/credits/unk_840E158.bin deleted file mode 100644 index 2d9128634..000000000 Binary files a/graphics/credits/unk_840E158.bin and /dev/null differ diff --git a/graphics/credits/unk_840E904.bin b/graphics/credits/unk_840E904.bin deleted file mode 100644 index 4887c1e7e..000000000 Binary files a/graphics/credits/unk_840E904.bin and /dev/null differ diff --git a/graphics/credits/unk_840F240.bin b/graphics/credits/unk_840F240.bin deleted file mode 100644 index 285a468b6..000000000 Binary files a/graphics/credits/unk_840F240.bin and /dev/null differ diff --git a/graphics/credits/unk_840F944.bin b/graphics/credits/unk_840F944.bin deleted file mode 100644 index ba2cdab77..000000000 Binary files a/graphics/credits/unk_840F944.bin and /dev/null differ diff --git a/graphics/credits/unk_8410198.bin b/graphics/credits/unk_8410198.bin deleted file mode 100644 index f7b3a02a5..000000000 Binary files a/graphics/credits/unk_8410198.bin and /dev/null differ diff --git a/graphics/credits/unk_84105B4.bin b/graphics/credits/unk_84105B4.bin deleted file mode 100644 index d173e611e..000000000 Binary files a/graphics/credits/unk_84105B4.bin and /dev/null differ diff --git a/graphics/credits/unk_8410E10.pal b/graphics/credits/unk_8410E10.pal deleted file mode 100644 index 5667181bd..000000000 --- a/graphics/credits/unk_8410E10.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -57 57 123 -172 123 65 -255 197 148 -222 148 115 -123 65 65 -82 106 156 -57 57 123 -115 164 197 -123 123 131 -238 238 255 -180 180 213 -255 106 74 -197 57 57 -255 222 90 -213 180 74 -0 0 0 diff --git a/graphics/credits/unk_8411BF8.pal b/graphics/credits/unk_8411BF8.pal deleted file mode 100644 index 5667181bd..000000000 --- a/graphics/credits/unk_8411BF8.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -57 57 123 -172 123 65 -255 197 148 -222 148 115 -123 65 65 -82 106 156 -57 57 123 -115 164 197 -123 123 131 -238 238 255 -180 180 213 -255 106 74 -197 57 57 -255 222 90 -213 180 74 -0 0 0 diff --git a/graphics/credits/unk_84129A0.pal b/graphics/credits/unk_84129A0.pal deleted file mode 100644 index ac601cddf..000000000 --- a/graphics/credits/unk_84129A0.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -49 49 49 -255 222 205 -238 180 148 -197 139 106 -106 74 74 -222 164 74 -197 123 8 -49 65 82 -205 139 255 -115 82 131 -156 106 172 -106 123 131 -197 205 180 -238 74 24 -255 255 255 -0 0 0 diff --git a/graphics/credits/unk_8413318.pal b/graphics/credits/unk_8413318.pal deleted file mode 100644 index 284b70b77..000000000 --- a/graphics/credits/unk_8413318.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -131 197 0 -74 139 0 -32 115 0 -0 82 0 -106 172 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/credits/unk_8413854.pal b/graphics/credits/unk_8413854.pal deleted file mode 100644 index 46d4f48dd..000000000 --- a/graphics/credits/unk_8413854.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -189 180 98 -172 164 74 -156 148 49 -123 115 24 -222 213 131 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 0 255 diff --git a/graphics/credits/unk_8413D98.pal b/graphics/credits/unk_8413D98.pal deleted file mode 100644 index a3476d0d4..000000000 --- a/graphics/credits/unk_8413D98.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -131 197 0 -74 139 0 -32 115 0 -0 82 0 -106 172 0 -189 180 98 -172 164 74 -156 148 49 -123 115 24 -222 213 131 -222 222 222 -205 205 205 -189 189 189 -238 238 238 -131 131 131 diff --git a/graphics/credits/unk_8EAE548.png b/graphics/credits/unk_8EAE548.png deleted file mode 100644 index 297827436..000000000 Binary files a/graphics/credits/unk_8EAE548.png and /dev/null differ diff --git a/graphics/credits/venusaur_1.png b/graphics/credits/venusaur_1.png new file mode 100644 index 000000000..7bfb3e703 Binary files /dev/null and b/graphics/credits/venusaur_1.png differ diff --git a/graphics/credits/venusaur_2.png b/graphics/credits/venusaur_2.png new file mode 100644 index 000000000..22b78305c Binary files /dev/null and b/graphics/credits/venusaur_2.png differ diff --git a/graphics/credits/venusaur_unused.png b/graphics/credits/venusaur_unused.png new file mode 100644 index 000000000..3b1b8ea14 Binary files /dev/null and b/graphics/credits/venusaur_unused.png differ diff --git a/graphics/credits/unk_840CA54.bin b/graphics/credits/white_circle.bin similarity index 100% rename from graphics/credits/unk_840CA54.bin rename to graphics/credits/white_circle.bin diff --git a/graphics/credits/unk_840C630.pal b/graphics/credits/white_circle.pal similarity index 100% rename from graphics/credits/unk_840C630.pal rename to graphics/credits/white_circle.pal diff --git a/graphics/credits/unk_840C650.png b/graphics/credits/white_circle.png similarity index 100% rename from graphics/credits/unk_840C650.png rename to graphics/credits/white_circle.png diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 591847f43..e59b615b2 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -483,9 +483,6 @@ $(TITLESCREENGFXDIR)/firered/box_art_mon.4bpp: %.4bpp: %.png $(TITLESCREENGFXDIR)/leafgreen/box_art_mon.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 123 -Wnum_tiles -$(CREDITSGFXDIR)/unk_8EAE548.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 77 -Wnum_tiles - POKEDEXAREAMARKERSDATADIR := graphics/pokedex/area_markers POKEDEXAREAMARKERFILES := \ diff --git a/include/graphics.h b/include/graphics.h index e81098e0c..3fe55401c 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4343,12 +4343,12 @@ extern const u32 gPartyMenuBg_Tilemap[]; extern const u32 gPartyMenuBg_Pal[]; // credits -extern const u32 gCreditsPokeballBgGfxTiles[]; -extern const u32 gCreditsPokeballBgGfxMap[]; -extern const u16 gCreditsMonBackdropPals[][16]; -extern const u16 gCreditsAllRightsReservedGfxPal[]; -extern const u8 gCreditsAllRightsReservedGfxTiles[]; -extern const u8 gCreditsAllRightsReservedGfxMap[]; +extern const u32 gCreditsMonPokeball_Tiles[]; +extern const u32 gCreditsMonPokeball_Tilemap[]; +extern const u16 gCreditsMonPokeball_Pals[][16]; +extern const u16 gCreditsCopyright_Pal[]; +extern const u8 gCreditsCopyright_Tiles[]; +extern const u8 gCreditsCopyright_Tilemap[]; // berry_pouch extern const u32 gBerryPouchSpriteTiles[]; diff --git a/src/credits.c b/src/credits.c index 6b76be688..dda43e691 100644 --- a/src/credits.c +++ b/src/credits.c @@ -133,6 +133,11 @@ enum CreditsMap CREDITS_MAP_ROUTE21_NORTH }; +enum { + GFXTAG_CHARACTER = 0x2000, // Player/Rival + GFXTAG_GROUND, +}; + struct CreditsResources { u8 mainseqno; @@ -160,9 +165,9 @@ struct CreditsScrcmd struct CreditsTextHeader { - const u8 * unk_0; - const u8 * unk_4; - bool8 unk_8; + const u8 * title; + const u8 * names; + bool8 unused; }; struct CompressedGraphicsHeader @@ -175,12 +180,12 @@ struct CompressedGraphicsHeader struct CreditsTaskData { u8 spriteMoveCmd; - u8 playerSpriteId; - u16 playerTilesTag; - u16 field_04; + u8 characterSpriteId; // Player or rival + u16 characterTilesTag; + u16 characterPalTag; u8 groundSpriteId; u16 groundTilesTag; - u16 field_0A; + u16 groundPalTag; }; static EWRAM_DATA struct CreditsResources * sCreditsMgr = NULL; @@ -223,144 +228,148 @@ static const struct BgTemplate sBgTemplates_MonSceneOrTheEnd[] = { static const struct WindowTemplate sWindowTemplates_Charizard[] = { { - .bg = 0x00, - .tilemapLeft = 0x0b, - .tilemapTop = 0x06, - .width = 0x08, - .height = 0x08, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 11, + .tilemapTop = 6, + .width = 8, + .height = 8, + .paletteNum = 10, .baseBlock = 0x0008 }, { - .bg = 0x00, - .tilemapLeft = 0x0a, - .tilemapTop = 0x05, - .width = 0x0a, - .height = 0x0a, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 10, + .tilemapTop = 5, + .width = 10, + .height = 10, + .paletteNum = 10, .baseBlock = 0x0048 }, { - .bg = 0x00, - .tilemapLeft = 0x09, - .tilemapTop = 0x03, - .width = 0x0c, - .height = 0x0d, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 9, + .tilemapTop = 3, + .width = 12, + .height = 13, + .paletteNum = 10, .baseBlock = 0x00ac }, DUMMY_WIN_TEMPLATE }; static const struct WindowTemplate sWindowTemplates_Venusaur[] = { { - .bg = 0x00, - .tilemapLeft = 0x0b, - .tilemapTop = 0x06, - .width = 0x08, - .height = 0x08, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 11, + .tilemapTop = 6, + .width = 8, + .height = 8, + .paletteNum = 10, .baseBlock = 0x0008 }, { - .bg = 0x00, - .tilemapLeft = 0x0a, - .tilemapTop = 0x05, - .width = 0x0a, - .height = 0x0a, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 10, + .tilemapTop = 5, + .width = 10, + .height = 10, + .paletteNum = 10, .baseBlock = 0x0048 }, { - .bg = 0x00, - .tilemapLeft = 0x09, - .tilemapTop = 0x05, - .width = 0x0c, - .height = 0x0a, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 9, + .tilemapTop = 5, + .width = 12, + .height = 10, + .paletteNum = 10, .baseBlock = 0x00ac }, DUMMY_WIN_TEMPLATE }; static const struct WindowTemplate sWindowTemplates_Blastoise[] = { { - .bg = 0x00, - .tilemapLeft = 0x0b, - .tilemapTop = 0x06, - .width = 0x08, - .height = 0x08, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 11, + .tilemapTop = 6, + .width = 8, + .height = 8, + .paletteNum = 10, .baseBlock = 0x0008 }, { - .bg = 0x00, - .tilemapLeft = 0x0a, - .tilemapTop = 0x05, - .width = 0x0a, - .height = 0x0a, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 10, + .tilemapTop = 5, + .width = 10, + .height = 10, + .paletteNum = 10, .baseBlock = 0x0048 }, { - .bg = 0x00, - .tilemapLeft = 0x0a, - .tilemapTop = 0x04, - .width = 0x0a, - .height = 0x0c, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 10, + .tilemapTop = 4, + .width = 10, + .height = 12, + .paletteNum = 10, .baseBlock = 0x00ac }, DUMMY_WIN_TEMPLATE }; static const struct WindowTemplate sWindowTemplates_Pikachu[] = { { - .bg = 0x00, - .tilemapLeft = 0x0b, - .tilemapTop = 0x06, - .width = 0x08, - .height = 0x08, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 11, + .tilemapTop = 6, + .width = 8, + .height = 8, + .paletteNum = 10, .baseBlock = 0x0008 }, { - .bg = 0x00, - .tilemapLeft = 0x0a, - .tilemapTop = 0x05, - .width = 0x0a, - .height = 0x0a, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 10, + .tilemapTop = 5, + .width = 10, + .height = 10, + .paletteNum = 10, .baseBlock = 0x0048 }, { - .bg = 0x00, - .tilemapLeft = 0x09, - .tilemapTop = 0x04, - .width = 0x0c, - .height = 0x0c, - .paletteNum = 0x0a, + .bg = 0, + .tilemapLeft = 9, + .tilemapTop = 4, + .width = 12, + .height = 12, + .paletteNum = 10, .baseBlock = 0x00ac }, DUMMY_WIN_TEMPLATE }; -static const u16 sPalette_OneBlackThenAllWhite[] = INCBIN_U16("graphics/credits/unk_840C630.gbapal"); -static const u32 sAffineCircleGfx[] = INCBIN_U32("graphics/credits/unk_840C650.8bpp.lz"); -static const u32 sAffineCircleMap[] = INCBIN_U32("graphics/credits/unk_840CA54.bin.lz"); -static const u32 sWindow1Map_Charizard[] = INCBIN_U32("graphics/credits/unk_840CB8C.bin.lz"); -static const u32 sWindow2Map_Charizard[] = INCBIN_U32("graphics/credits/unk_840D228.bin.lz"); -static const u32 sUnusedTilemap[] = INCBIN_U32("graphics/credits/unk_840DC0C.bin.lz"); -static const u32 sWindow1Map_Venusaur[] = INCBIN_U32("graphics/credits/unk_840E158.bin.lz"); -static const u32 sWindow2Map_Venusaur[] = INCBIN_U32("graphics/credits/unk_840E904.bin.lz"); -static const u32 sWindow1Map_Blastoise[] = INCBIN_U32("graphics/credits/unk_840F240.bin.lz"); -static const u32 sWindow2Map_Blastoise[] = INCBIN_U32("graphics/credits/unk_840F944.bin.lz"); -static const u32 sWindow1Map_Pikachu[] = INCBIN_U32("graphics/credits/unk_8410198.bin.lz"); -static const u32 sWindow2Map_Pikachu[] = INCBIN_U32("graphics/credits/unk_84105B4.bin.lz"); +static const u16 sCreditsMonCircle_Pal[] = INCBIN_U16("graphics/credits/white_circle.gbapal"); +static const u32 sCreditsMonCircle_Tiles[] = INCBIN_U32("graphics/credits/white_circle.8bpp.lz"); +static const u32 sCreditsMonCircle_Tilemap[] = INCBIN_U32("graphics/credits/white_circle.bin.lz"); + +static const u32 sCharizard1_Tiles[] = INCBIN_U32("graphics/credits/charizard_1.4bpp.lz"); +static const u32 sCharizard2_Tiles[] = INCBIN_U32("graphics/credits/charizard_2.4bpp.lz"); + +static const u32 sVenusaurUnused_Tiles[] = INCBIN_U32("graphics/credits/venusaur_unused.4bpp.lz"); +static const u32 sVenusaur1_Tiles[] = INCBIN_U32("graphics/credits/venusaur_1.4bpp.lz"); +static const u32 sVenusaur2_Tiles[] = INCBIN_U32("graphics/credits/venusaur_2.4bpp.lz"); + +static const u32 sBlastoise1_Tiles[] = INCBIN_U32("graphics/credits/blastoise_1.4bpp.lz"); +static const u32 sBlastoise2_Tiles[] = INCBIN_U32("graphics/credits/blastoise_2.4bpp.lz"); + +static const u32 sPikachu1_Tiles[] = INCBIN_U32("graphics/credits/pikachu_1.4bpp.lz"); +static const u32 sPikachu2_Tiles[] = INCBIN_U32("graphics/credits/pikachu_2.4bpp.lz"); static const u32 sUnused = 0xF0; -static const u16 sTheEndGfxPal[] = INCBIN_U16("graphics/credits/unk_8410B20.gbapal"); -static const u8 sTheEndGfxTiles[] = INCBIN_U8("graphics/credits/unk_8410B20.4bpp.lz"); -static const u8 sTheEndGfxMap[] = INCBIN_U8("graphics/credits/unk_8410B20.bin.lz"); +static const u16 sTheEnd_Pal[] = INCBIN_U16("graphics/credits/the_end.gbapal"); +static const u8 sTheEnd_Tiles[] = INCBIN_U8("graphics/credits/the_end.4bpp.lz"); +static const u8 sTheEnd_Tilemap[] = INCBIN_U8("graphics/credits/the_end.bin.lz"); static const struct CompressedGraphicsHeader sCopyrightOrTheEndGfxHeaders[] = { { - .tiles = gCreditsAllRightsReservedGfxTiles, - .map = gCreditsAllRightsReservedGfxMap, - .palette = gCreditsAllRightsReservedGfxPal + .tiles = gCreditsCopyright_Tiles, + .map = gCreditsCopyright_Tilemap, + .palette = gCreditsCopyright_Pal }, { - .tiles = sTheEndGfxTiles, - .map = sTheEndGfxMap, - .palette = sTheEndGfxPal + .tiles = sTheEnd_Tiles, + .map = sTheEnd_Tilemap, + .palette = sTheEnd_Pal } }; @@ -454,18 +463,18 @@ static const struct WindowTemplate sCreditsWindowTemplate = { .baseBlock = 0x008 }; -static const u16 sMalePlayerSpritePal[] = INCBIN_U16("graphics/credits/unk_8410E10.gbapal"); -static const u32 sMalePlayerSpriteGfx[] = INCBIN_U32("graphics/credits/unk_8410E30.4bpp.lz"); -static const u16 sFemalePlayerSpritePal[] = INCBIN_U16("graphics/credits/unk_8411BF8.gbapal"); -static const u32 sFemalePlayerSpriteGfx[] = INCBIN_U32("graphics/credits/unk_8411C18.4bpp.lz"); -static const u16 sRivalSpritePal[] = INCBIN_U16("graphics/credits/unk_84129A0.gbapal"); -static const u32 sRivalSpriteGfx[] = INCBIN_U32("graphics/credits/unk_84129C0.4bpp.lz"); -static const u16 sGroundSpritePal_Grass[] = INCBIN_U16("graphics/credits/unk_8413318.gbapal"); -static const u32 sGroundSpriteGfx_Grass[] = INCBIN_U32("graphics/credits/unk_8413338.4bpp.lz"); -static const u16 sGroundSpritePal_Dirt[] = INCBIN_U16("graphics/credits/unk_8413854.gbapal"); -static const u32 sGroundSpriteGfx_Dirt[] = INCBIN_U32("graphics/credits/unk_8413874.4bpp.lz"); -static const u16 sGroundSpritePal_City[] = INCBIN_U16("graphics/credits/unk_8413D98.gbapal"); -static const u32 sGroundSpriteGfx_City[] = INCBIN_U32("graphics/credits/unk_8413DB8.4bpp.lz"); +static const u16 sPlayerMale_Pal[] = INCBIN_U16("graphics/credits/player_male.gbapal"); +static const u32 sPlayerMale_Tiles[] = INCBIN_U32("graphics/credits/player_male.4bpp.lz"); +static const u16 sPlayerFemale_Pal[] = INCBIN_U16("graphics/credits/player_female.gbapal"); +static const u32 sPlayerFemale_Tiles[] = INCBIN_U32("graphics/credits/player_female.4bpp.lz"); +static const u16 sRival_Pal[] = INCBIN_U16("graphics/credits/rival.gbapal"); +static const u32 sRival_Tiles[] = INCBIN_U32("graphics/credits/rival.4bpp.lz"); +static const u16 sGround_Grass_Pal[] = INCBIN_U16("graphics/credits/ground_grass.gbapal"); +static const u32 sGround_Grass_Tiles[] = INCBIN_U32("graphics/credits/ground_grass.4bpp.lz"); +static const u16 sGround_Dirt_Pal[] = INCBIN_U16("graphics/credits/ground_dirt.gbapal"); +static const u32 sGround_Dirt_Tiles[] = INCBIN_U32("graphics/credits/ground_dirt.4bpp.lz"); +static const u16 sGround_City_Pal[] = INCBIN_U16("graphics/credits/ground_city.gbapal"); +static const u32 sGround_City_Tiles[] = INCBIN_U32("graphics/credits/ground_city.4bpp.lz"); static const u16 sPlayerRivalSpriteParams[][3] = { { 0, 3, 1 }, @@ -703,7 +712,7 @@ void DoCredits(void) { sCreditsMgr = AllocZeroed(sizeof(*sCreditsMgr)); ResetTasks(); - sCreditsMgr->taskId = 0xFF; + sCreditsMgr->taskId = TASK_NONE; sCreditsMgr->unk_1D = 0; ResetSpriteData(); SetMainCallback2(CB2_Credits); @@ -790,8 +799,8 @@ static bool32 DoOverworldMapScrollScene(u8 whichMon) if (!Overworld_DoScrollSceneForCredits(&sCreditsMgr->ovwldseqno, sOverworldMapScenes[sCreditsMgr->whichMon], QL_TINT_NONE)) return FALSE; CreateCreditsWindow(); - SetGpuReg(REG_OFFSET_WIN0H, 0xF0); - SetGpuReg(REG_OFFSET_WIN0V, 0x247C); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(36, DISPLAY_HEIGHT - 36)); SwitchWin1OffWin0On(); InitBgDarkenEffect(); Menu_LoadStdPalAt(0xF0); @@ -811,8 +820,8 @@ static s32 RollCredits(void) { case CREDITSSCENE_INIT_WIN0: SwitchWin1OffWin0On(); - SetGpuReg(REG_OFFSET_WIN0H, 0xF0); - SetGpuReg(REG_OFFSET_WIN0V, 0x4F51); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(DISPLAY_HEIGHT / 2 - 1, DISPLAY_HEIGHT / 2 + 1)); sCreditsMgr->mainseqno = CREDITSSCENE_SETUP_DARKEN_EFFECT; return 0; case CREDITSSCENE_SETUP_DARKEN_EFFECT: @@ -912,13 +921,13 @@ static s32 RollCredits(void) case CREDITSSCENE_PRINT_ADDPRINTER1: if (gPaletteFade.active) return sCreditsMgr->canSpeedThrough; - win0v[0] = sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].param].unk_8; // unused - AddTextPrinterParameterized4(sCreditsMgr->windowId, FONT_NORMAL_COPY_1, 2, 6, 0, 0, sTextColor_Header, -1, sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].param].unk_0); + win0v[0] = sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].param].unused; + AddTextPrinterParameterized4(sCreditsMgr->windowId, FONT_NORMAL_COPY_1, 2, 6, 0, 0, sTextColor_Header, -1, sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].param].title); sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_ADDPRINTER2; return sCreditsMgr->canSpeedThrough; case CREDITSSCENE_PRINT_ADDPRINTER2: - win0v[0] = sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].param].unk_8; - AddTextPrinterParameterized4(sCreditsMgr->windowId, FONT_NORMAL, 8, 6, 0, 0, sTextColor_Regular, -1, sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].param].unk_4); + win0v[0] = sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].param].unused; + AddTextPrinterParameterized4(sCreditsMgr->windowId, FONT_NORMAL, 8, 6, 0, 0, sTextColor_Regular, -1, sCreditsTexts[sCreditsScript[sCreditsMgr->scrcmdidx].param].names); sCreditsMgr->mainseqno = CREDITSSCENE_PRINT_DELAY; return sCreditsMgr->canSpeedThrough; case CREDITSSCENE_PRINT_DELAY: @@ -1042,29 +1051,29 @@ static void LoadCreditsMonPic(u8 whichMon) InitWindows(sWindowTemplates_Charizard); FillWindowPixelBuffer(0, PIXEL_FILL(0)); LoadMonPicInWindow(SPECIES_CHARIZARD, SHINY_ODDS, 0, TRUE, 10, 0); - CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Charizard, 0, 0); - CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Charizard, 0, 0); + CopyToWindowPixelBuffer(1, (const void *)sCharizard1_Tiles, 0, 0); + CopyToWindowPixelBuffer(2, (const void *)sCharizard2_Tiles, 0, 0); break; case CREDITSMON_VENUSAUR: InitWindows(sWindowTemplates_Venusaur); FillWindowPixelBuffer(0, PIXEL_FILL(0)); LoadMonPicInWindow(SPECIES_VENUSAUR, SHINY_ODDS, 0, TRUE, 10, 0); - CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Venusaur, 0, 0); - CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Venusaur, 0, 0); + CopyToWindowPixelBuffer(1, (const void *)sVenusaur1_Tiles, 0, 0); + CopyToWindowPixelBuffer(2, (const void *)sVenusaur2_Tiles, 0, 0); break; case CREDITSMON_BLASTOISE: InitWindows(sWindowTemplates_Blastoise); FillWindowPixelBuffer(0, PIXEL_FILL(0)); LoadMonPicInWindow(SPECIES_BLASTOISE, SHINY_ODDS, 0, TRUE, 10, 0); - CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Blastoise, 0, 0); - CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Blastoise, 0, 0); + CopyToWindowPixelBuffer(1, (const void *)sBlastoise1_Tiles, 0, 0); + CopyToWindowPixelBuffer(2, (const void *)sBlastoise2_Tiles, 0, 0); break; case CREDITSMON_PIKACHU: InitWindows(sWindowTemplates_Pikachu); FillWindowPixelBuffer(0, PIXEL_FILL(0)); LoadMonPicInWindow(SPECIES_PIKACHU, SHINY_ODDS, 0, TRUE, 10, 0); - CopyToWindowPixelBuffer(1, (const void *)sWindow1Map_Pikachu, 0, 0); - CopyToWindowPixelBuffer(2, (const void *)sWindow2Map_Pikachu, 0, 0); + CopyToWindowPixelBuffer(1, (const void *)sPikachu1_Tiles, 0, 0); + CopyToWindowPixelBuffer(2, (const void *)sPikachu2_Tiles, 0, 0); break; } CopyWindowToVram(0, COPYWIN_GFX); @@ -1108,19 +1117,19 @@ static bool32 DoCreditsMonScene(void) ResetBgsAndClearDma3BusyFlags(1); InitBgsFromTemplates(1, sBgTemplates_MonSceneOrTheEnd, NELEMS(sBgTemplates_MonSceneOrTheEnd)); SetBgTilemapBuffer(0, Alloc(BG_SCREEN_SIZE)); - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - ChangeBgX(1, 0, 0); - ChangeBgY(1, 0, 0); + ChangeBgX(0, 0, BG_COORD_SET); + ChangeBgY(0, 0, BG_COORD_SET); + ChangeBgX(1, 0, BG_COORD_SET); + ChangeBgY(1, 0, BG_COORD_SET); sCreditsMgr->creditsMonTimer = 0; sCreditsMgr->unk_0E = 0; SetBgAffine(2, 0x8000, 0x8000, 0x78, 0x50, sCreditsMgr->creditsMonTimer, sCreditsMgr->creditsMonTimer, 0); - DecompressAndLoadBgGfxUsingHeap(1, gCreditsPokeballBgGfxTiles, 0x2000, 0, 0); - DecompressAndLoadBgGfxUsingHeap(2, sAffineCircleGfx, 0x2000, 0, 0); - DecompressAndLoadBgGfxUsingHeap(1, gCreditsPokeballBgGfxMap, 0x500, 0, 1); - DecompressAndLoadBgGfxUsingHeap(2, sAffineCircleMap, 0x400, 0, 1); - LoadPalette(gCreditsMonBackdropPals[sCreditsMgr->whichMon], 0, 0x20); - LoadPalette(sPalette_OneBlackThenAllWhite, 0xF0, 0x20); + DecompressAndLoadBgGfxUsingHeap(1, gCreditsMonPokeball_Tiles, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(2, sCreditsMonCircle_Tiles, 0x2000, 0, 0); + DecompressAndLoadBgGfxUsingHeap(1, gCreditsMonPokeball_Tilemap, 0x500, 0, 1); + DecompressAndLoadBgGfxUsingHeap(2, sCreditsMonCircle_Tilemap, 0x400, 0, 1); + LoadPalette(gCreditsMonPokeball_Pals[sCreditsMgr->whichMon], 0, 0x20); + LoadPalette(sCreditsMonCircle_Pal, 0xF0, 0x20); LoadCreditsMonPic(sCreditsMgr->whichMon); SetVBlankCallback(VBlankCB); EnableInterrupts(INTR_FLAG_VBLANK); @@ -1236,8 +1245,8 @@ static bool32 DoCopyrightOrTheEndGfxScene(void) ResetTasks(); ResetBgsAndClearDma3BusyFlags(1); InitBgsFromTemplates(0, sBgTemplates_MonSceneOrTheEnd, 1); - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); + ChangeBgX(0, 0, BG_COORD_SET); + ChangeBgY(0, 0, BG_COORD_SET); DecompressAndLoadBgGfxUsingHeap(0, sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].tiles, 0x2000, 0, 0); DecompressAndLoadBgGfxUsingHeap(0, sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].map, 0x800, 0, 1); LoadPalette(sCopyrightOrTheEndGfxHeaders[sCreditsMgr->whichMon].palette, 0x00, 0x200); @@ -1276,9 +1285,9 @@ static void Task_MovePlayerAndGroundSprites(u8 taskId) case 0: break; case 1: - if (gSprites[data->playerSpriteId].x != 0xD0) + if (gSprites[data->characterSpriteId].x != 0xD0) { - gSprites[data->playerSpriteId].x--; + gSprites[data->characterSpriteId].x--; gSprites[data->groundSpriteId].x--; } else @@ -1289,9 +1298,9 @@ static void Task_MovePlayerAndGroundSprites(u8 taskId) case 2: if (sCreditsMgr->unk_1D & 1) { - if (gSprites[data->playerSpriteId].y != 0x50) + if (gSprites[data->characterSpriteId].y != 0x50) { - gSprites[data->playerSpriteId].y--; + gSprites[data->characterSpriteId].y--; gSprites[data->groundSpriteId].y--; } else @@ -1303,7 +1312,7 @@ static void Task_MovePlayerAndGroundSprites(u8 taskId) case 3: if (sCreditsMgr->mainseqno == 15) { - gSprites[data->playerSpriteId].x--; + gSprites[data->characterSpriteId].x--; gSprites[data->groundSpriteId].x--; } break; @@ -1312,15 +1321,15 @@ static void Task_MovePlayerAndGroundSprites(u8 taskId) static void DestroyPlayerOrRivalSprite(void) { - if (sCreditsMgr->taskId != 0xFF) + if (sCreditsMgr->taskId != TASK_NONE) { struct CreditsTaskData * data = (void *)gTasks[sCreditsMgr->taskId].data; - FreeSpriteTilesByTag(data->playerTilesTag); - DestroySprite(&gSprites[data->playerSpriteId]); + FreeSpriteTilesByTag(data->characterTilesTag); + DestroySprite(&gSprites[data->characterSpriteId]); FreeSpriteTilesByTag(data->groundTilesTag); DestroySprite(&gSprites[data->groundSpriteId]); DestroyTask(sCreditsMgr->taskId); - sCreditsMgr->taskId = 0xFF; + sCreditsMgr->taskId = TASK_NONE; } } @@ -1332,7 +1341,7 @@ static void LoadPlayerOrRivalSprite(u8 whichScene) struct SpriteTemplate sprTemplate; struct CompressedSpriteSheet sprSheet; - if (sCreditsMgr->taskId == 0xFF) + if (sCreditsMgr->taskId == TASK_NONE) { taskId = CreateTask(Task_MovePlayerAndGroundSprites, 0); data = (void *)gTasks[taskId].data; @@ -1341,97 +1350,97 @@ static void LoadPlayerOrRivalSprite(u8 whichScene) { default: case 0: - x = 0xd0; - y = 0x50; + x = DISPLAY_WIDTH - 32; + y = DISPLAY_HEIGHT / 2; break; case 1: - x = 0x110; - y = 0x50; + x = DISPLAY_WIDTH + 32; + y = DISPLAY_HEIGHT / 2; break; case 2: - x = 0xd0; - y = 0xa0; + x = DISPLAY_WIDTH - 32; + y = DISPLAY_HEIGHT; break; } data->spriteMoveCmd = sPlayerRivalSpriteParams[whichScene][2]; - data->playerTilesTag = 0x2000; - data->field_04 = 0xFFFF; + data->characterTilesTag = GFXTAG_CHARACTER; + data->characterPalTag = TAG_NONE; switch (sPlayerRivalSpriteParams[whichScene][0]) { case 0: // Player if (gSaveBlock2Ptr->playerGender == MALE) { - sprSheet.data = sMalePlayerSpriteGfx; + sprSheet.data = sPlayerMale_Tiles; sprSheet.size = 0x3000; - sprSheet.tag = data->playerTilesTag; + sprSheet.tag = data->characterTilesTag; LoadCompressedSpriteSheet(&sprSheet); - LoadPalette(sMalePlayerSpritePal, 0x1F0, 0x20); + LoadPalette(sPlayerMale_Pal, 0x1F0, sizeof(sPlayerMale_Pal)); } else { - sprSheet.data = sFemalePlayerSpriteGfx; + sprSheet.data = sPlayerFemale_Tiles; sprSheet.size = 0x3000; - sprSheet.tag = data->playerTilesTag; + sprSheet.tag = data->characterTilesTag; LoadCompressedSpriteSheet(&sprSheet); - LoadPalette(sFemalePlayerSpritePal, 0x1F0, 0x20); + LoadPalette(sPlayerFemale_Pal, 0x1F0, sizeof(sPlayerFemale_Pal)); } break; case 1: // Rival - sprSheet.data = sRivalSpriteGfx; + sprSheet.data = sRival_Tiles; sprSheet.size = 0x3000; - sprSheet.tag = data->playerTilesTag; + sprSheet.tag = data->characterTilesTag; LoadCompressedSpriteSheet(&sprSheet); - LoadPalette(sRivalSpritePal, 0x1F0, 0x20); + LoadPalette(sRival_Pal, 0x1F0, sizeof(sRival_Pal)); break; } sprTemplate = sPlayerOrRivalSpriteTemplate; - sprTemplate.tileTag = data->playerTilesTag; - data->playerSpriteId = CreateSprite(&sprTemplate, x, y, 0); - gSprites[data->playerSpriteId].oam.paletteNum = 0xF; - gSprites[data->playerSpriteId].subpriority = 0; + sprTemplate.tileTag = data->characterTilesTag; + data->characterSpriteId = CreateSprite(&sprTemplate, x, y, 0); + gSprites[data->characterSpriteId].oam.paletteNum = 15; + gSprites[data->characterSpriteId].subpriority = 0; - data->groundTilesTag = 0x2001; - data->field_0A = 0xFFFF; + data->groundTilesTag = GFXTAG_GROUND; + data->groundPalTag = TAG_NONE; switch (sPlayerRivalSpriteParams[whichScene][1]) { case 0: - sprSheet.data = sGroundSpriteGfx_Grass; + sprSheet.data = sGround_Grass_Tiles; sprSheet.size = 0x3000; sprSheet.tag = data->groundTilesTag; LoadCompressedSpriteSheet(&sprSheet); - LoadPalette(sGroundSpritePal_Grass, 0x1E0, 0x20); + LoadPalette(sGround_Grass_Pal, 0x1E0, sizeof(sGround_Grass_Pal)); sprTemplate = sGroundSpriteTemplate_Running; break; case 1: - sprSheet.data = sGroundSpriteGfx_Grass; + sprSheet.data = sGround_Grass_Tiles; sprSheet.size = 0x3000; sprSheet.tag = data->groundTilesTag; LoadCompressedSpriteSheet(&sprSheet); - LoadPalette(sGroundSpritePal_Grass, 0x1E0, 0x20); + LoadPalette(sGround_Grass_Pal, 0x1E0, sizeof(sGround_Grass_Pal)); sprTemplate = sGroundSpriteTemplate_Static; break; case 2: - sprSheet.data = sGroundSpriteGfx_Dirt; + sprSheet.data = sGround_Dirt_Tiles; sprSheet.size = 0x3000; sprSheet.tag = data->groundTilesTag; LoadCompressedSpriteSheet(&sprSheet); - LoadPalette(sGroundSpritePal_Dirt, 0x1E0, 0x20); + LoadPalette(sGround_Dirt_Pal, 0x1E0, sizeof(sGround_Dirt_Pal)); sprTemplate = sGroundSpriteTemplate_Running; break; case 3: - sprSheet.data = sGroundSpriteGfx_City; + sprSheet.data = sGround_City_Tiles; sprSheet.size = 0x3000; sprSheet.tag = data->groundTilesTag; LoadCompressedSpriteSheet(&sprSheet); - LoadPalette(sGroundSpritePal_City, 0x1E0, 0x20); + LoadPalette(sGround_City_Pal, 0x1E0, sizeof(sGround_City_Pal)); sprTemplate = sGroundSpriteTemplate_Running; break; } sprTemplate.tileTag = data->groundTilesTag; - data->groundSpriteId = CreateSprite(&sprTemplate, x, y + 0x26, 0); - gSprites[data->groundSpriteId].oam.paletteNum = 0xE; + data->groundSpriteId = CreateSprite(&sprTemplate, x, y + 38, 0); + gSprites[data->groundSpriteId].oam.paletteNum = 14; gSprites[data->groundSpriteId].subpriority = 1; } } diff --git a/src/graphics.c b/src/graphics.c index 8a11d58a5..79f97f127 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1343,16 +1343,16 @@ const u16 gUnionRoomChatPanelBgPal_7[] = INCBIN_U16("graphics/interface/union_ro const u32 gUnionRoomChatPanelBgTiles[] = INCBIN_U32("graphics/interface/union_room_chat_panel.4bpp.lz"); const u32 gUnionRoomChatPanelBgMap[] = INCBIN_U32("graphics/interface/union_room_chat_panel.bin.lz"); -const u16 gCreditsMonBackdropPals[][16] = +const u16 gCreditsMonPokeball_Pals[][16] = { - INCBIN_U16("graphics/credits/charizard.gbapal"), - INCBIN_U16("graphics/credits/venusaur.gbapal"), - INCBIN_U16("graphics/credits/blastoise.gbapal"), - INCBIN_U16("graphics/credits/pikachu.gbapal"), + INCBIN_U16("graphics/credits/pokeball_charizard.gbapal"), + INCBIN_U16("graphics/credits/pokeball_venusaur.gbapal"), + INCBIN_U16("graphics/credits/pokeball_blastoise.gbapal"), + INCBIN_U16("graphics/credits/pokeball_pikachu.gbapal"), }; -const u32 gCreditsPokeballBgGfxTiles[] = INCBIN_U32("graphics/credits/unk_8EAAB98.4bpp.lz"); -const u32 gCreditsPokeballBgGfxMap[] = INCBIN_U32("graphics/credits/unk_8EAB30C.bin.lz"); +const u32 gCreditsMonPokeball_Tiles[] = INCBIN_U32("graphics/credits/pokeball.4bpp.lz"); +const u32 gCreditsMonPokeball_Tilemap[] = INCBIN_U32("graphics/credits/pokeball.bin.lz"); #ifdef FIRERED const u16 gGraphics_TitleScreen_GameTitleLogoPals[] = INCBIN_U16("graphics/title_screen/firered/game_title_logo.gbapal"); @@ -1382,9 +1382,9 @@ const u16 gTitleScreen_Slash_Pal[] = INCBIN_U16("graphics/title_screen/leafgreen const u32 gTitleScreen_BlankSprite_Tiles[] = INCBIN_U32("graphics/title_screen/blank_sprite.4bpp.lz"); -const u16 gCreditsAllRightsReservedGfxPal[] = INCBIN_U16("graphics/credits/unk_8EAE548.gbapal"); -const u8 gCreditsAllRightsReservedGfxTiles[] = INCBIN_U8("graphics/credits/unk_8EAE548.4bpp.lz"); -const u8 gCreditsAllRightsReservedGfxMap[] = INCBIN_U8("graphics/credits/unk_8EAE548.bin.lz"); +const u16 gCreditsCopyright_Pal[] = INCBIN_U16("graphics/credits/copyright.gbapal"); +const u8 gCreditsCopyright_Tiles[] = INCBIN_U8("graphics/credits/copyright.4bpp.lz"); +const u8 gCreditsCopyright_Tilemap[] = INCBIN_U8("graphics/credits/copyright.bin.lz"); const u32 gUnknown_8EAEA00[] = INCBIN_U32("graphics/link/gba.gbapal"); const u32 gTradeGba2_Pal[] = INCBIN_U32("graphics/link/gba_pal2.gbapal");