diff --git a/include/common.h b/include/common.h index 4e10c36..870ffac 100644 --- a/include/common.h +++ b/include/common.h @@ -226,22 +226,22 @@ extern void func_8008350C(); extern void func_8008B1D0(u8*); typedef struct { - /* 0x00 */ u8* dst; - /* 0x04 */ u8* field_0x4; - /* 0x08 */ u8* src_start; - /* 0x0c */ u8* src_end; - /* 0x10 */ u8* bss_start; - /* 0x14 */ u8* bss_end; - /* 0x18 */ u8* text_start; - /* 0x1c */ u8* text_end; - /* 0x20 */ u8* data_start; - /* 0x24 */ u8* data_end; + /* 0x00 */ u32 dst; + /* 0x04 */ u32 field_0x4; + /* 0x08 */ u32 src_start; + /* 0x0c */ u32 src_end; + /* 0x10 */ u32 bss_start; + /* 0x14 */ u32 bss_end; + /* 0x18 */ u32 text_start; + /* 0x1c */ u32 text_end; + /* 0x20 */ u32 data_start; + /* 0x24 */ u32 data_end; } OverlayEntry; // size:0x28 ASSERT_SIZE(OverlayEntry, 0x28); -extern u8* __SOME_OVERLAY_ID_ARRAY[11]; -extern OverlayEntry __SOME_OVERLAY_TABLE[11]; +extern u8* __SOME_OVERLAY_ID_ARRAY[]; +extern OverlayEntry __SOME_OVERLAY_TABLE[]; typedef struct { /* 0x00 */ void (*setup)(void); @@ -270,7 +270,7 @@ extern void __setup_overlay_87200(void); extern void __setup_overlay_71280_51674(void); extern void __setup_overlay_71280_51940(void); -extern u8* func_80076188(void); +extern u32* func_80076188(void); extern void func_80076194(void); extern void func_800761A4(void); extern void __loads_overlay_array(s32 arg0); @@ -388,7 +388,7 @@ extern void func_801C889C(s32 arg0); extern void func_8007337C(void); extern void func_801C8864(void); -extern u8 D_800A872C; +extern u32 D_800A872C[]; extern CharacterSlot CHARACTER_SLOT[0x64]; diff --git a/include/segment_symbols.h b/include/segment_symbols.h index 5b77a06..aa04b60 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -70,6 +70,7 @@ DECLARE_ROM_SEGMENT(n64_wave_data); DECLARE_ROM_SEGMENT(n64_wave_table_00); DECLARE_ROM_SEGMENT(n64_wave_table_01); +DECLARE_SEGMENT(overlay_66E10); DECLARE_SEGMENT(overlay_71280); DECLARE_SEGMENT(overlay_79730); DECLARE_SEGMENT(overlay_87200); diff --git a/splat.yaml b/splat.yaml index a106d2f..5ab8a5e 100644 --- a/splat.yaml +++ b/splat.yaml @@ -317,7 +317,7 @@ segments: - [0x2DE10, c, "_ob_prized_room"] - [0x2E450, data] - - [0x387C0, data, "data/overlay_table"] + - [0x387C0, .data, "data/overlay_table"] - [0x38B50, data] - [0x39900, data, "gfx/_ob_star_skate"] - [0x39B90, data] @@ -462,8 +462,6 @@ segments: - { start: 0x66E10, type: bss, vram: 0x80190F10 } - - [0x66E10, bin] - # __SOME_OVERLAY_TABLE[0] - type: code dir: overlay_66E10 @@ -484,8 +482,6 @@ segments: - { start: 0x69900, type: bss, vram: 0x8019A660 } - - [0x69900, bin] - # __SOME_OVERLAY_TABLE[17] - type: code name: overlay_69900 diff --git a/src/bk_ob_overconfident_mother.c b/src/bk_ob_overconfident_mother.c index 3eb900c..21955b6 100644 --- a/src/bk_ob_overconfident_mother.c +++ b/src/bk_ob_overconfident_mother.c @@ -5,7 +5,7 @@ INCLUDE_ASM(const s32, "_ob_overconfident_mother", __calls_loads_overlay_array); INCLUDE_ASM(const s32, "_ob_overconfident_mother", func_80076150); /* 6588 80076188 */ -u8* func_80076188(void) { +u32* func_80076188(void) { return &D_800A872C; } diff --git a/src/data/overlay_table.c b/src/data/overlay_table.c new file mode 100644 index 0000000..1052fb6 --- /dev/null +++ b/src/data/overlay_table.c @@ -0,0 +1,304 @@ +#include "common.h" + +/* 387C0 800A83C0 */ +OverlayEntry __SOME_OVERLAY_TABLE[] = { + { /* __SOME_OVERLAY_TABLE[0] */ + .dst = 0x80197B70, + .field_0x4 = 0x8019A670, + .src_start = 0x66E10, + .src_end = 0x69900, + .bss_start = 0x8019A660, + .bss_end = 0x8019A670, + .text_start = 0x80197B70, + .text_end = 0x8019A210, + .data_start = 0x8019A210, + .data_end = 0x8019A660 + }, + { /* __SOME_OVERLAY_TABLE[1] */ + .dst = 0x80197B70, + .field_0x4 = 0x801F1510, + .src_start = 0x6E660, + .src_end = 0x71280, + .bss_start = 0x8019A790, + .bss_end = 0x8019A7A0, + .text_start = 0x80197B70, + .text_end = 0x8019A380, + .data_start = 0x8019A380, + .data_end = 0x8019A790 + }, + { /* __SOME_OVERLAY_TABLE[2] */ + .dst = 0x80197B70, + .field_0x4 = 0x8019EE50, + .src_start = 0xE48F0, + .src_end = 0xEBBB0, + .bss_start = 0x8019EE30, + .bss_end = 0x8019EE50, + .text_start = 0x80197B70, + .text_end = 0x8019E180, + .data_start = 0x8019E180, + .data_end = 0x8019EE30 + }, + { /* __SOME_OVERLAY_TABLE[3] */ + .dst = 0x8019EE50, + .field_0x4 = 0x801AD5A0, + .src_start = 0xEBBB0, + .src_end = 0xF9FF0, + .bss_start = 0x801AD290, + .bss_end = 0x801AD5A0, + .text_start = 0x8019EE50, + .text_end = 0x801AB7F0, + .data_start = 0x801AB7F0, + .data_end = 0x801AD290 + }, + { /* __SOME_OVERLAY_TABLE[4] */ + .dst = 0x8019EE50, + .field_0x4 = 0x8019F430, + .src_start = 0x000F9FF0, + .src_end = 0x000FA5D0, + .bss_start = 0x8019F430, + .bss_end = 0x8019F430, + .text_start = 0x8019EE50, + .text_end = 0x8019F430, + .data_start = 0x8019F430, + .data_end = 0x8019F430 + }, + { /* __SOME_OVERLAY_TABLE[5] */ + .dst = 0x8019EE50, + .field_0x4 = 0x8019EE60, + .src_start = 0xFA5D0, + .src_end = 0xFA5E0, + .bss_start = 0x8019EE60, + .bss_end = 0x8019EE60, + .text_start = 0x8019EE50, + .text_end = 0x8019EE60, + .data_start = 0x8019EE60, + .data_end = 0x8019EE60 + }, + { /* __SOME_OVERLAY_TABLE[6] */ + .dst = 0x801AD5A0, + .field_0x4 = 0x801B4D40, + .src_start = 0xFA5E0, + .src_end = 0x101CE0, + .bss_start = 0x801B4CA0, + .bss_end = 0x801B4D40, + .text_start = 0x801AD5A0, + .text_end = 0x801B3390, + .data_start = 0x801B3390, + .data_end = 0x801B4CA0 + }, + { /* __SOME_OVERLAY_TABLE[7] */ + .dst = 0x801AD5A0, + .field_0x4 = 0x801F4030, + .src_start = 0x101CE0, + .src_end = 0x145210, + .bss_start = 0x801F0AD0, + .bss_end = 0x801F4030, + .text_start = 0x801AD5A0, + .text_end = 0x801E7D60, + .data_start = 0x801E7D60, + .data_end = 0x801F0AD0 + }, + { /* __SOME_OVERLAY_TABLE[8] */ + .dst = 0x801F4030, + .field_0x4 = 0x801FDA70, + .src_start = 0x00145210, + .src_end = 0x0014EBE0, + .bss_start = 0x801FDA00, + .bss_end = 0x801FDA70, + .text_start = 0x801F4030, + .text_end = 0x801FCCB0, + .data_start = 0x801FCCB0, + .data_end = 0x801FDA00 + }, + { /* __SOME_OVERLAY_TABLE[9] */ + .dst = 0x801FDA70, + .field_0x4 = 0x80220F40, + .src_start = 0x0014EBE0, + .src_end = 0x00165FC0, + .bss_start = 0x80214E50, + .bss_end = 0x80214F80, + .text_start = 0x801FDA70, + .text_end = 0x8020EA80, + .data_start = 0x8020EA80, + .data_end = 0x80214E50 + }, + { /* __SOME_OVERLAY_TABLE[10] */ + .dst = 0x801AD5A0, + .field_0x4 = 0x801F70E0, + .src_start = 0x1F0A30, + .src_end = 0x213B10, + .bss_start = 0x801D0680, + .bss_end = 0x801D0840, + .text_start = 0x801AD5A0, + .text_end = 0x801CE890, + .data_start = 0x801CE890, + .data_end = 0x801D0680 + }, + { /* __SOME_OVERLAY_TABLE[11] */ + .dst = 0x801F70E0, + .field_0x4 = 0x8020A2E0, + .src_start = 0x24BCA0, + .src_end = 0x25EE90, + .bss_start = 0x8020A2D0, + .bss_end = 0x8020A2E0, + .text_start = 0x801F70E0, + .text_end = 0x80209700, + .data_start = 0x80209700, + .data_end = 0x8020A2D0 + }, + { /* __SOME_OVERLAY_TABLE[12] */ + .dst = 0x8020A2E0, + .field_0x4 = 0x802210C0, + .src_start = 0x0025EE90, + .src_end = 0x00275850, + .bss_start = 0x80220CA0, + .bss_end = 0x802210C0, + .text_start = 0x8020A2E0, + .text_end = 0x8021F450, + .data_start = 0x8021F450, + .data_end = 0x80220CA0 + }, + { /* __SOME_OVERLAY_TABLE[13] */ + .dst = 0x802210C0, + .field_0x4 = 0x80225890, + .src_start = 0x00275850, + .src_end = 0x0027A020, + .bss_start = 0x80225890, + .bss_end = 0x80225890, + .text_start = 0x802210C0, + .text_end = 0x80225620, + .data_start = 0x80225620, + .data_end = 0x80225890 + }, + { /* __SOME_OVERLAY_TABLE[14] */ + .dst = 0x80225890, + .field_0x4 = 0x80243DB0, + .src_start = 0x00281860, + .src_end = 0x00286BD0, + .bss_start = 0x8022AC00, + .bss_end = 0x8022AC90, + .text_start = 0x80225890, + .text_end = 0x8022A720, + .data_start = 0x8022A720, + .data_end = 0x8022AC00 + }, + { /* __SOME_OVERLAY_TABLE[15] */ + .dst = 0x80197B70, + .field_0x4 = 0x801BA710, + .src_start = 0x001CE070, + .src_end = 0x001F0A30, + .bss_start = 0x801BA530, + .bss_end = 0x801BA710, + .text_start = 0x80197B70, + .text_end = 0x801B8080, + .data_start = 0x801B8080, + .data_end = 0x801BA530 + }, + { /* __SOME_OVERLAY_TABLE[16] */ + .dst = 0x80225890, + .field_0x4 = 0x8022D170, + .src_start = 0x0027A020, + .src_end = 0x00281860, + .bss_start = 0x8022D0D0, + .bss_end = 0x8022D170, + .text_start = 0x80225890, + .text_end = 0x8022C5C0, + .data_start = 0x8022C5C0, + .data_end = 0x8022D0D0 + }, + { /* __SOME_OVERLAY_TABLE[17] */ + .dst = 0x80197B70, + .field_0x4 = 0x8019C930, + .src_start = 0x69900, + .src_end = 0x6E660, + .bss_start = 0x8019C8D0, + .bss_end = 0x8019C930, + .text_start = 0x80197B70, + .text_end = 0x8019C1F0, + .data_start = 0x8019C1F0, + .data_end = 0x8019C8D0 + }, + { /* __SOME_OVERLAY_TABLE[18] */ + .dst = 0x80220F40, + .field_0x4 = 0x802305E0, + .src_start = 0x1BA050, + .src_end = 0x1C3300, + .bss_start = 0x8022A1F0, + .bss_end = 0x8022A840, + .text_start = 0x80220F40, + .text_end = 0x80229CB0, + .data_start = 0x80229CB0, + .data_end = 0x8022A1F0 + } +}; + +/* 38AB8 800A86B8 */ +u8 D_800A86B8[] = {0x02, 0x01, 0xFF}; + +/* 38ABC 800A86BC */ +u8 D_800A86BC[] = {0x02, 0x03, 0x07, 0x08, 0x09, 0xFF}; + +/* 38AC4 800A86C4 */ +u8 D_800A86C4[] = {0x02, 0x04, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0xFF}; + +/* 38ACC 800A86CC */ +u8 D_800A86CC[] = {0x00, 0x0E, 0xFF}; + +/* 38AD0 800A86D0 */ +u8 D_800A86D0[] = {0x02, 0x03, 0x06, 0xFF}; + +/* 38AD4 800A86D4 */ +u8 D_800A86D4[] = {0x0F, 0xFF}; + +/* 38AD8 800A86D8 */ +u8 D_800A86D8[] = { + 0x00, 0x01, 0x02, 0x07, 0x08, 0x09, + 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0xFF +}; + +/* 38AE4 800A86E4 */ +u8 D_800A86E4[] = {0x02, 0x04, 0x0A, 0x0B, 0x0C, 0x0D, 0x10, 0xFF}; + +/* 38AEC 800A86EC */ +u8 D_800A86EC[] = {0x11, 0x12, 0xFF}; + +/* 38AF0 800A86F0 */ +u8 D_800A86F0[] = {0x02, 0x03, 0x07, 0x08, 0x09, 0x12, 0xFF}; + +/* 38AF8 800A86F8 */ +u8 D_800A86F8[] = {0x02, 0x01, 0x12, 0xFF}; + +/* 38AFC 800A86FC */ +u8* __SOME_OVERLAY_ID_ARRAY[] = { + D_800A86B8, + D_800A86BC, + D_800A86C4, + D_800A86CC, + D_800A86D0, + D_800A86D4, + D_800A86D8, + D_800A86E4, + D_800A86EC, + D_800A86F0, + D_800A86F8 +}; + +/* 38B28 800A8728 */ +u32 D_800A8728 = NULL; + +/* 38B2C 800A872C */ +u32 D_800A872C[] = { + 0x800761A4, + 0x00000000, + 0x00000000, + 0x00000000, + 0x0000000C +}; + +/* 38B40 800A8740 */ +u32 D_800A8740[] = { + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000 +}; \ No newline at end of file