summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgarak <garakmon@gmail.com>2019-07-19 19:36:17 -0400
committergarak <garakmon@gmail.com>2019-07-19 19:36:17 -0400
commit690a0c4390788aede68c30328f06ab5575bf0f9d (patch)
tree0f42b16e041a1a10b69475c07001b14c4df1f6bc
parentc400d1dc7fe70c167f8270692544919332dc6efb (diff)
decompile pokenav_unk_4 rodata
-rw-r--r--data/pokenav.s97
-rw-r--r--include/strings.h5
-rw-r--r--ld_script.txt1
-rwxr-xr-xsrc/pokenav_unk_4.c198
4 files changed, 187 insertions, 114 deletions
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);
}