diff --git a/data/pokenav.s b/data/pokenav.s index 42262bfa1..a8d6ee2f1 100644 --- a/data/pokenav.s +++ b/data/pokenav.s @@ -3,103 +3,6 @@ .section .rodata -// pokenav_unk_4.s -gUnknown_08622510:: @ 8622510 - .incbin "graphics/pokenav/ui_matchcall.gbapal" - -gUnknown_08622530:: @ 8622530 - .incbin "graphics/pokenav/ui_matchcall.4bpp.lz" - -gUnknown_086225D4:: @ 86225D4 - .incbin "graphics/pokenav/ui_matchcall.bin.lz" - -gUnknown_08622698:: @ 8622698 - .incbin "graphics/pokenav/arrow2.gbapal" - -gUnknown_086226B8:: @ 86226B8 - .incbin "graphics/pokenav/arrow2.4bpp.lz" - -gUnknown_086226E0:: @ 86226E0 - .incbin "graphics/pokenav/86226E0.gbapal" - -gUnknown_08622700:: @ 8622700 - .incbin "graphics/pokenav/8622700.gbapal" - -gUnknown_08622720:: @ 8622720 - .incbin "graphics/pokenav/pokeball_matchcall.gbapal" - -gUnknown_08622760:: @ 8622760 - .incbin "graphics/pokenav/pokeball_matchcall.4bpp.lz" - -gUnknown_0862278C:: @ 862278C - .4byte 0x11FD - .4byte 0x20206A - -gUnknown_08622794:: @ 8622794 - .4byte 0x00003077 - -gUnknown_08622798:: @ 8622798 - .4byte NULL - .4byte sub_81CB510 - .4byte sub_81CB588 - .4byte sub_81CB600 - .4byte sub_81CB678 - .4byte sub_81CB6F0 - .4byte sub_81CB734 - .4byte sub_81CB75C - .4byte sub_81CB7A0 - .4byte sub_81CB824 - .4byte sub_81CB888 - .4byte sub_81CB93C - .4byte sub_81CBAD4 - .4byte sub_81CB9C8 - .4byte sub_81CBA68 - .4byte sub_81CBB74 - -gUnknown_086227D8:: @ 86227D8 - window_template 2, 0, 5, 11, 2, 2, 16 - -gUnknown_086227E0:: @ 86227E0 - window_template 2, 0, 9, 11, 8, 2, 0x26 - -gUnknown_086227E8:: @ 86227E8 - .4byte gUnknown_085EC017 - .4byte gUnknown_085EC01C - .4byte gUnknown_085EC022 - -gUnknown_086227F4:: @ 86227F4 - .string "·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·\p" - .string "$" - .align 2 - -gUnknown_08622808:: @ 8622808 - window_template 1, 1, 12, 0x1C, 4, 1, 10 - -gUnknown_08622810:: @ 8622810 - obj_tiles gUnknown_086226B8, 0x40, 7 - -gUnknown_08622818:: @ 8622818 - obj_pal gUnknown_08622698, 12 - null_obj_pal - -gUnknown_08622828:: @ 8622828 - .2byte 0x8000 - .2byte 0x0 - .2byte 0x400 - .2byte 0x0 - -gUnknown_08622830:: @ 8622830 - spr_template 7, 12, gUnknown_08622828, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81CC34C - -gUnknown_08622848:: @ 8622848 - .2byte 0x0 - .2byte 0xC000 - .2byte 0x400 - .2byte 0x0 - -gUnknown_08622850:: @ 8622850 - spr_template 8, 13, gUnknown_08622848, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - // pokenav_unk_5.s gUnknown_08622868:: @ 8622868 .incbin "graphics/pokenav/8622868.gbapal" diff --git a/include/strings.h b/include/strings.h index 3dd86f60a..d8cdebec6 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2739,4 +2739,9 @@ extern const u8 gUnknown_085EBE19[]; extern const u8 gUnknown_085EBE2D[]; extern const u8 gUnknown_085EBE41[]; +// pokenav_unk_4 +extern const u8 gUnknown_085EC017[]; +extern const u8 gUnknown_085EC01C[]; +extern const u8 gUnknown_085EC022[]; + #endif // GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 2c745600e..b1884a5c8 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -645,6 +645,7 @@ SECTIONS { src/pokenav_unk_1.o(.rodata); src/pokenav_unk_2.o(.rodata); src/pokenav_unk_3.o(.rodata); + src/pokenav_unk_4.o(.rodata); data/pokenav.o(.rodata); src/pokenav_unk_10.o(.rodata); src/pokenav_match_call_data.o(.rodata); diff --git a/src/pokenav_unk_4.c b/src/pokenav_unk_4.c index 6fa76daf2..d935c9d28 100755 --- a/src/pokenav_unk_4.c +++ b/src/pokenav_unk_4.c @@ -93,27 +93,191 @@ static void sub_81CC330(struct Pokenav4Struct *); static struct Sprite *sub_81CC370(void); static void sub_81CC440(struct Sprite *sprite); static void sub_81CC4A4(struct Sprite *sprite); +void sub_81CC34C(struct Sprite *sprite); +u32 sub_81CB510(int); +u32 sub_81CB588(int); +u32 sub_81CB600(int); +u32 sub_81CB678(int); +u32 sub_81CB6F0(int); +u32 sub_81CB734(int); +u32 sub_81CB75C(int); +u32 sub_81CB7A0(int); +u32 sub_81CB824(int); +u32 sub_81CB888(int); +u32 sub_81CB93C(int); +u32 sub_81CBAD4(int); +u32 sub_81CB9C8(int); +u32 sub_81CBA68(int); +u32 sub_81CBB74(int); -extern const LoopedTask gUnknown_08622798[]; -extern const struct BgTemplate gUnknown_0862278C[3]; -extern const u16 gUnknown_08622510[]; -extern const u32 gUnknown_08622530[]; -extern const u32 gUnknown_08622760[]; -extern const u16 gUnknown_08622700[]; -extern const u16 gUnknown_08622720[]; -extern const u8 gUnknown_086225D4[]; -extern const u16 gUnknown_086226E0[]; -extern const struct BgTemplate gUnknown_08622794; -extern const struct WindowTemplate gUnknown_086227D8; -extern const struct WindowTemplate gUnknown_086227E0; -extern const u8 *const gUnknown_086227E8[]; extern const struct WindowTemplate gUnknown_08622808; -extern const u8 gUnknown_086227F4[]; -extern const struct CompressedSpriteSheet gUnknown_08622810[1]; -extern const struct SpritePalette gUnknown_08622818[]; extern const struct SpriteTemplate gUnknown_08622830; extern const struct SpriteTemplate gUnknown_08622850; +const u16 gUnknown_08622510[] = INCBIN_U16("graphics/pokenav/ui_matchcall.gbapal"); +const u32 gUnknown_08622530[] = INCBIN_U32("graphics/pokenav/ui_matchcall.4bpp.lz"); +const u32 gUnknown_086225D4[] = INCBIN_U32("graphics/pokenav/ui_matchcall.bin.lz"); +const u16 gUnknown_08622698[] = INCBIN_U16("graphics/pokenav/arrow2.gbapal"); +const u32 gUnknown_086226B8[] = INCBIN_U32("graphics/pokenav/arrow2.4bpp.lz"); +const u16 gUnknown_086226E0[] = INCBIN_U16("graphics/pokenav/86226E0.gbapal"); +const u16 gUnknown_08622700[] = INCBIN_U16("graphics/pokenav/8622700.gbapal"); +const u16 gUnknown_08622720[] = INCBIN_U16("graphics/pokenav/pokeball_matchcall.gbapal"); +const u32 gUnknown_08622760[] = INCBIN_U32("graphics/pokenav/pokeball_matchcall.4bpp.lz"); + +const struct BgTemplate gUnknown_0862278C[3] = +{ + { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 0x1F, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 0x06, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x80 + }, + { + .bg = 3, + .charBaseIndex = 1, + .mapBaseIndex = 0x07, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +const LoopedTask gUnknown_08622798[] = +{ + NULL, + sub_81CB510, + sub_81CB588, + sub_81CB600, + sub_81CB678, + sub_81CB6F0, + sub_81CB734, + sub_81CB75C, + sub_81CB7A0, + sub_81CB824, + sub_81CB888, + sub_81CB93C, + sub_81CBAD4, + sub_81CB9C8, + sub_81CBA68, + sub_81CBB74 +}; + +const struct WindowTemplate gUnknown_086227D8 = +{ + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 5, + .width = 11, + .height = 2, + .paletteNum = 2, + .baseBlock = 16 +}; + +const struct WindowTemplate gUnknown_086227E0 = +{ + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 9, + .width = 11, + .height = 8, + .paletteNum = 2, + .baseBlock = 38 +}; + +const u8 *const gUnknown_086227E8[] = +{ + gUnknown_085EC017, + gUnknown_085EC01C, + gUnknown_085EC022 +}; + +const u8 gUnknown_086227F4[] = _("·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·\p"); + +const struct WindowTemplate gUnknown_08622808 = +{ + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 12, + .width = 0x1C, + .height = 0x04, + .paletteNum = 1, + .baseBlock = 10 +}; + +const struct CompressedSpriteSheet gUnknown_08622810[1] = +{ + {gUnknown_086226B8, 0x40, 7} +}; + +const struct SpritePalette gUnknown_08622818[] = +{ + {gUnknown_08622698, 12}, + {} +}; + +const struct OamData gUnknown_08622828 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .bpp = 0, + .shape = 2,//SPRITE_SHAPE(32x16), + .x = 0, + .size = 0,//SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, +}; + +const struct SpriteTemplate gUnknown_08622830 = +{ + .tileTag = 7, + .paletteTag = 12, + .oam = &gUnknown_08622828, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81CC34C, +}; + +const struct OamData gUnknown_08622848 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .bpp = 0, + .shape = 0,//SPRITE_SHAPE(32x16), + .x = 0, + .size = 3,//SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, +}; + +const struct SpriteTemplate gUnknown_08622850 = +{ + .tileTag = 8, + .paletteTag = 13, + .oam = &gUnknown_08622848, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + bool32 sub_81CB260(void) { struct Pokenav4Struct *state = AllocSubstruct(6, sizeof(struct Pokenav4Struct)); @@ -718,7 +882,7 @@ static void sub_81CBBB8(void) template.unkE = 7; template.unk10 = sub_81CB050; template.unk14 = sub_81CBCEC; - sub_81C81D4(&gUnknown_08622794, &template, 2); + sub_81C81D4(&gUnknown_0862278C[2], &template, 2); CreateTask(sub_81CBC64, 7); }