From 80fbf0175ee19aadd8579fd1a719827fba31a37f Mon Sep 17 00:00:00 2001 From: gijs Date: Fri, 29 Sep 2023 13:09:57 +0200 Subject: [PATCH] Cleaned up `overlay_table.c` a bit --- include/common.h | 4 +- include/segment_symbols.h | 12 ++ splat.yaml | 2 - src/bk_ob_overconfident_mother.c | 1 - src/data/overlay_table.c | 211 +++++++++++-------------------- 5 files changed, 87 insertions(+), 143 deletions(-) diff --git a/include/common.h b/include/common.h index 870ffac..4596a13 100644 --- a/include/common.h +++ b/include/common.h @@ -226,8 +226,8 @@ extern void func_8008350C(); extern void func_8008B1D0(u8*); typedef struct { - /* 0x00 */ u32 dst; - /* 0x04 */ u32 field_0x4; + /* 0x00 */ u32 vram_start; + /* 0x04 */ u32 vram_end; /* 0x08 */ u32 src_start; /* 0x0c */ u32 src_end; /* 0x10 */ u32 bss_start; diff --git a/include/segment_symbols.h b/include/segment_symbols.h index aa04b60..f01ffcc 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -71,6 +71,18 @@ DECLARE_ROM_SEGMENT(n64_wave_table_00); DECLARE_ROM_SEGMENT(n64_wave_table_01); DECLARE_SEGMENT(overlay_66E10); +DECLARE_SEGMENT(overlay_6E660); + +DECLARE_SEGMENT(overlay_E48F0); +DECLARE_SEGMENT(overlay_EBBB0); +DECLARE_SEGMENT(overlay_F9FF0); +DECLARE_SEGMENT(overlay_FA5D0); +DECLARE_SEGMENT(overlay_FA5E0); + +DECLARE_SEGMENT(overlay_145210); +DECLARE_SEGMENT(overlay_14EBE0); + + DECLARE_SEGMENT(overlay_71280); DECLARE_SEGMENT(overlay_79730); DECLARE_SEGMENT(overlay_87200); diff --git a/splat.yaml b/splat.yaml index 5ab8a5e..722f18b 100644 --- a/splat.yaml +++ b/splat.yaml @@ -504,8 +504,6 @@ segments: - { start: 0x6E660, type: bss, vram: 0x8019C8D0 } - - [0x6E660, bin] - # __SOME_OVERLAY_TABLE[1] - type: code name: overlay_6E660 diff --git a/src/bk_ob_overconfident_mother.c b/src/bk_ob_overconfident_mother.c index 21955b6..fc658da 100644 --- a/src/bk_ob_overconfident_mother.c +++ b/src/bk_ob_overconfident_mother.c @@ -19,7 +19,6 @@ void func_800761A4(void) { func_80073164(0, 1, 1, 0x80, 1, 0x100, 0x2000); } - INCLUDE_ASM(const s32, "_ob_overconfident_mother", __loads_overlay_array); INCLUDE_ASM(const s32, "_ob_overconfident_mother", func_80076324); diff --git a/src/data/overlay_table.c b/src/data/overlay_table.c index 1052fb6..34a82dd 100644 --- a/src/data/overlay_table.c +++ b/src/data/overlay_table.c @@ -1,94 +1,43 @@ #include "common.h" +#include "segment_symbols.h" + +#define DECLARE_OVERLAY_ENTRY(segment) \ + { \ + (u32)SEGMENT_VRAM_START(segment),\ + (u32)SEGMENT_VRAM_END(segment),\ + (u32)SEGMENT_ROM_START(segment),\ + (u32)SEGMENT_ROM_END(segment),\ + (u32)SEGMENT_BSS_START(segment),\ + (u32)SEGMENT_BSS_END(segment),\ + (u32)SEGMENT_TEXT_START(segment),\ + (u32)SEGMENT_TEXT_END(segment),\ + (u32)SEGMENT_DATA_START(segment),\ + (u32)SEGMENT_RODATA_END(segment) \ + } /* 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 - }, + DECLARE_OVERLAY_ENTRY(overlay_66E10), { /* __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 + .vram_start = 0x80197B70, + .vram_end = 0x801F1510, + (u32)SEGMENT_ROM_START(overlay_6E660), + (u32)SEGMENT_ROM_END(overlay_6E660), + (u32)SEGMENT_BSS_START(overlay_6E660), + (u32)SEGMENT_BSS_END(overlay_6E660), + (u32)SEGMENT_TEXT_START(overlay_6E660), + (u32)SEGMENT_TEXT_END(overlay_6E660), + (u32)SEGMENT_DATA_START(overlay_6E660), + (u32)SEGMENT_RODATA_END(overlay_6E660) }, + DECLARE_OVERLAY_ENTRY(overlay_E48F0), + DECLARE_OVERLAY_ENTRY(overlay_EBBB0), + DECLARE_OVERLAY_ENTRY(overlay_F9FF0), + DECLARE_OVERLAY_ENTRY(overlay_FA5D0), + DECLARE_OVERLAY_ENTRY(overlay_FA5E0), { /* __SOME_OVERLAY_TABLE[7] */ - .dst = 0x801AD5A0, - .field_0x4 = 0x801F4030, + .vram_start = 0x801AD5A0, + .vram_end = 0x801F4030, .src_start = 0x101CE0, .src_end = 0x145210, .bss_start = 0x801F0AD0, @@ -98,33 +47,22 @@ OverlayEntry __SOME_OVERLAY_TABLE[] = { .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 - }, + DECLARE_OVERLAY_ENTRY(overlay_145210), { /* __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 + .vram_start = 0x801FDA70, + .vram_end = 0x80220F40, + (u32)SEGMENT_ROM_START(overlay_14EBE0), + (u32)SEGMENT_ROM_END(overlay_14EBE0), + (u32)SEGMENT_BSS_START(overlay_14EBE0), + (u32)SEGMENT_BSS_END(overlay_14EBE0), + (u32)SEGMENT_TEXT_START(overlay_14EBE0), + (u32)SEGMENT_TEXT_END(overlay_14EBE0), + (u32)SEGMENT_DATA_START(overlay_14EBE0), + (u32)SEGMENT_RODATA_END(overlay_14EBE0) }, { /* __SOME_OVERLAY_TABLE[10] */ - .dst = 0x801AD5A0, - .field_0x4 = 0x801F70E0, + .vram_start = 0x801AD5A0, + .vram_end = 0x801F70E0, .src_start = 0x1F0A30, .src_end = 0x213B10, .bss_start = 0x801D0680, @@ -135,8 +73,8 @@ OverlayEntry __SOME_OVERLAY_TABLE[] = { .data_end = 0x801D0680 }, { /* __SOME_OVERLAY_TABLE[11] */ - .dst = 0x801F70E0, - .field_0x4 = 0x8020A2E0, + .vram_start = 0x801F70E0, + .vram_end = 0x8020A2E0, .src_start = 0x24BCA0, .src_end = 0x25EE90, .bss_start = 0x8020A2D0, @@ -147,8 +85,8 @@ OverlayEntry __SOME_OVERLAY_TABLE[] = { .data_end = 0x8020A2D0 }, { /* __SOME_OVERLAY_TABLE[12] */ - .dst = 0x8020A2E0, - .field_0x4 = 0x802210C0, + .vram_start = 0x8020A2E0, + .vram_end = 0x802210C0, .src_start = 0x0025EE90, .src_end = 0x00275850, .bss_start = 0x80220CA0, @@ -159,8 +97,8 @@ OverlayEntry __SOME_OVERLAY_TABLE[] = { .data_end = 0x80220CA0 }, { /* __SOME_OVERLAY_TABLE[13] */ - .dst = 0x802210C0, - .field_0x4 = 0x80225890, + .vram_start = 0x802210C0, + .vram_end = 0x80225890, .src_start = 0x00275850, .src_end = 0x0027A020, .bss_start = 0x80225890, @@ -171,8 +109,8 @@ OverlayEntry __SOME_OVERLAY_TABLE[] = { .data_end = 0x80225890 }, { /* __SOME_OVERLAY_TABLE[14] */ - .dst = 0x80225890, - .field_0x4 = 0x80243DB0, + .vram_start = 0x80225890, + .vram_end = 0x80243DB0, .src_start = 0x00281860, .src_end = 0x00286BD0, .bss_start = 0x8022AC00, @@ -183,8 +121,8 @@ OverlayEntry __SOME_OVERLAY_TABLE[] = { .data_end = 0x8022AC00 }, { /* __SOME_OVERLAY_TABLE[15] */ - .dst = 0x80197B70, - .field_0x4 = 0x801BA710, + .vram_start = 0x80197B70, + .vram_end = 0x801BA710, .src_start = 0x001CE070, .src_end = 0x001F0A30, .bss_start = 0x801BA530, @@ -195,8 +133,8 @@ OverlayEntry __SOME_OVERLAY_TABLE[] = { .data_end = 0x801BA530 }, { /* __SOME_OVERLAY_TABLE[16] */ - .dst = 0x80225890, - .field_0x4 = 0x8022D170, + .vram_start = 0x80225890, + .vram_end = 0x8022D170, .src_start = 0x0027A020, .src_end = 0x00281860, .bss_start = 0x8022D0D0, @@ -207,8 +145,8 @@ OverlayEntry __SOME_OVERLAY_TABLE[] = { .data_end = 0x8022D0D0 }, { /* __SOME_OVERLAY_TABLE[17] */ - .dst = 0x80197B70, - .field_0x4 = 0x8019C930, + .vram_start = 0x80197B70, + .vram_end = 0x8019C930, .src_start = 0x69900, .src_end = 0x6E660, .bss_start = 0x8019C8D0, @@ -219,8 +157,8 @@ OverlayEntry __SOME_OVERLAY_TABLE[] = { .data_end = 0x8019C8D0 }, { /* __SOME_OVERLAY_TABLE[18] */ - .dst = 0x80220F40, - .field_0x4 = 0x802305E0, + .vram_start = 0x80220F40, + .vram_end = 0x802305E0, .src_start = 0x1BA050, .src_end = 0x1C3300, .bss_start = 0x8022A1F0, @@ -233,40 +171,37 @@ OverlayEntry __SOME_OVERLAY_TABLE[] = { }; /* 38AB8 800A86B8 */ -u8 D_800A86B8[] = {0x02, 0x01, 0xFF}; +u8 D_800A86B8[] = {2, 1, -1}; /* 38ABC 800A86BC */ -u8 D_800A86BC[] = {0x02, 0x03, 0x07, 0x08, 0x09, 0xFF}; +u8 D_800A86BC[] = {2, 3, 7, 8, 9, -1}; /* 38AC4 800A86C4 */ -u8 D_800A86C4[] = {0x02, 0x04, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0xFF}; +u8 D_800A86C4[] = {2, 4, 10, 11, 12, 13, 14, -1}; /* 38ACC 800A86CC */ -u8 D_800A86CC[] = {0x00, 0x0E, 0xFF}; +u8 D_800A86CC[] = {0, 14, -1}; /* 38AD0 800A86D0 */ -u8 D_800A86D0[] = {0x02, 0x03, 0x06, 0xFF}; +u8 D_800A86D0[] = {2, 3, 6, -1}; /* 38AD4 800A86D4 */ -u8 D_800A86D4[] = {0x0F, 0xFF}; +u8 D_800A86D4[] = {15, -1}; /* 38AD8 800A86D8 */ -u8 D_800A86D8[] = { - 0x00, 0x01, 0x02, 0x07, 0x08, 0x09, - 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0xFF -}; +u8 D_800A86D8[] = {0, 1, 2, 7, 8, 9, 10, 11, 12, 13, 14, -1}; /* 38AE4 800A86E4 */ -u8 D_800A86E4[] = {0x02, 0x04, 0x0A, 0x0B, 0x0C, 0x0D, 0x10, 0xFF}; +u8 D_800A86E4[] = {2, 4, 10, 11, 12, 13, 16, -1}; /* 38AEC 800A86EC */ -u8 D_800A86EC[] = {0x11, 0x12, 0xFF}; +u8 D_800A86EC[] = {17, 18, -1}; /* 38AF0 800A86F0 */ -u8 D_800A86F0[] = {0x02, 0x03, 0x07, 0x08, 0x09, 0x12, 0xFF}; +u8 D_800A86F0[] = {2, 3, 7, 8, 9, 18, -1}; /* 38AF8 800A86F8 */ -u8 D_800A86F8[] = {0x02, 0x01, 0x12, 0xFF}; +u8 D_800A86F8[] = {2, 1, 18, -1}; /* 38AFC 800A86FC */ u8* __SOME_OVERLAY_ID_ARRAY[] = {