From 26f00605e92788866f0e6a0d4661065c00163c7f Mon Sep 17 00:00:00 2001 From: gijs Date: Fri, 29 Sep 2023 01:51:49 +0200 Subject: [PATCH] Decompiled `__setup_overlay_79730` --- include/segment_symbols.h | 1 + src/segment_obdata/_ob_squeamish_mask.c | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/include/segment_symbols.h b/include/segment_symbols.h index d3dd750..5b77a06 100644 --- a/include/segment_symbols.h +++ b/include/segment_symbols.h @@ -71,6 +71,7 @@ DECLARE_ROM_SEGMENT(n64_wave_table_00); DECLARE_ROM_SEGMENT(n64_wave_table_01); DECLARE_SEGMENT(overlay_71280); +DECLARE_SEGMENT(overlay_79730); DECLARE_SEGMENT(overlay_87200); diff --git a/src/segment_obdata/_ob_squeamish_mask.c b/src/segment_obdata/_ob_squeamish_mask.c index 4f771e4..c27be44 100644 --- a/src/segment_obdata/_ob_squeamish_mask.c +++ b/src/segment_obdata/_ob_squeamish_mask.c @@ -1,6 +1,7 @@ #include "common.h" extern void func_801C1990(); +extern void func_8019A7A0(); extern u32 D_801977C8; INCLUDE_ASM(const s32, "segment_obdata/_ob_squeamish_mask", func_8017B5B0); @@ -12,8 +13,28 @@ OverlaySomething *__get_overlay_info_71280_65C8C(void) { return &__OVERLAY_INFO_71280_65C8C; } +/* 514EC 8017B5EC */ +void __setup_overlay_79730(void) { + osInvalICache(SEGMENT_TEXT_START(overlay_79730), SEGMENT_TEXT_SIZE(overlay_79730)); + osInvalDCache( + SEGMENT_DATA_START(overlay_79730), + SEGMENT_RODATA_END(overlay_79730) - SEGMENT_DATA_START(overlay_79730) + ); + + __calls_romCopy_8009DA50( + SEGMENT_ROM_START(overlay_79730), + SEGMENT_VRAM_START(overlay_79730), + SEGMENT_ROM_SIZE(overlay_79730) + ); + + if (SEGMENT_BSS_START(overlay_79730) != SEGMENT_BSS_END(overlay_79730)) { + bzero(SEGMENT_BSS_START(overlay_79730), SEGMENT_BSS_SIZE(overlay_79730)); + } -INCLUDE_ASM(const s32, "segment_obdata/_ob_squeamish_mask", __setup_overlay_79730); + func_80073164(0, 8, 2, 0x40, 0x40, 0x100, 0x1800); + func_8019A7A0(); + D_801977C8 = 1; +} /* 515B0 8017B6B0 */ void __setup_overlay_87200(void) { @@ -33,7 +54,7 @@ void __setup_overlay_87200(void) { bzero(SEGMENT_BSS_START(overlay_87200), SEGMENT_BSS_SIZE(overlay_87200)); } - func_80073164(0U, 1, 1, 0x40, (s16) 1, (s16) 0x600, (s16) 0x2200); + func_80073164(0, 1, 1, 0x40, 1, 0x600, 0x2200); func_801C1990(); D_801977C8 = 2; }