diff --git a/config/rel_slices.yml b/config/rel_slices.yml index f9387886..93c6421f 100644 --- a/config/rel_slices.yml +++ b/config/rel_slices.yml @@ -1,59 +1,62 @@ -sys_vimgr.c: - .text: [0x803703F8, 0x80370418] -m_debug_hayakawa.c: - .text: [0x803965E4, 0x803973E8] - .rodata: [0x80641D50, 0x80641D90] - .data: [0x80651328, 0x80651358] -#m_malloc.c: #can't find zelda_arena -# .text: [0x803BC510, 0x803BC70C] -# .bss: [0x81297CA0, 0x81297CD0] -m_room_type/mRmTp_FtrItemNo2FtrIdx.c: - .text: [0x803E7878, 0x803E78BC] -#m_time.c: # unlinked until function callers that reorder local static variables are implemented. -# .text: [0x803F33DC, 0x803F3E58] -# .rodata: [0x806433B0, 0x806433D8] -# .data: [0x8065E378, 0x8065E438] -# .bss: [0x8129F410, 0x8129F420] -#m_skin_matrix.c: -# .text: [0x803f1528, 0x803f1bb4] -# .rodata: [0x80643310, 0x80643318] -sys_stacks.c: - .bss: [0x812F5670, 0x812F9670] -m_olib.c: - .text: [0x803D88E8, 0x803D8A34] - .rodata: [0x80642A00, 0x80642A10] -THA_GA.c: - .text: [0x80404AE0, 0x80404B40] -TwoHeadArena.c: - .text: [0x80404B40, 0x80404C68] -gfxalloc.c: - .text: [0x804054b0, 0x80405518] -graph.c: - .text: [0x80405518, 0x80405EC8] - .data: [0x8065ECA8, 0x8065ECB0] - .bss: [0x812F31E8, 0x812F3560] -lb_rtc.c: - .text: [0x80406480, 0x8040752C] - .rodata: [0x806436F8, 0x806437A0] - .data: [0x8065ECD0, 0x8065ECD8] - .bss: [0x812F4CB0, 0x812F4CC0] -lb_reki.c: - .text: [0x8040752C, 0x80407AE8] - .rodata: [0x806437A0, 0x806437C0] - .data: [0x8065ECD8, 0x8065F110] -zurumode.c: - .text: [0x8040eb38, 0x8040f008] - .bss: [0x812f9670, 0x812f9680] - .data: [0x8065F9F0, 0x8065FA30] -sys_ucode.c: - .text: [0x8040F008, 0x8040F048] - .data: [0x8065FA30, 0x8065FA40] -m_random_field/mRF_MakePerfectBit.c: - .text: [0x8050B1AC, 0x8050B1D4] -m_random_field/mRF_GetRandomStepMode.c: - .text: [0x8050B284, 0x8050B2C0] -sys_dynamic.c: - .bss: [0x813413F8, 0x81361820] -# ac_aprilfool_control/aPC_actor_dt.c: common_data is pure bs, - # .text: [0x805153f0, 0x8051542C] - +sys_vimgr.c: + .text: [0x803703F8, 0x80370418] +m_debug_hayakawa.c: + .text: [0x803965E4, 0x803973E8] + .rodata: [0x80641D50, 0x80641D90] + .data: [0x80651328, 0x80651358] +m_malloc.c: + .text: [0x803BC510, 0x803BC70C] + .bss: [0x81297CA0, 0x81297CD0] +#m_lib.c: #sqrtf statics +# .text: [0x803BAB0C, 0x803BB960] +# .rodata: [0x80642640, 0x80642680] +m_room_type/mRmTp_FtrItemNo2FtrIdx.c: + .text: [0x803E7878, 0x803E78BC] +#m_time.c: # unlinked until function callers that reorder local static variables are implemented. +# .text: [0x803F33DC, 0x803F3E58] +# .rodata: [0x806433B0, 0x806433D8] +# .data: [0x8065E378, 0x8065E438] +# .bss: [0x8129F410, 0x8129F420] +#m_skin_matrix.c: +# .text: [0x803f1528, 0x803f1bb4] +# .rodata: [0x80643310, 0x80643318] +sys_stacks.c: + .bss: [0x812F5670, 0x812F9670] +m_olib.c: + .text: [0x803D88E8, 0x803D8A34] + .rodata: [0x80642A00, 0x80642A10] +THA_GA.c: + .text: [0x80404AE0, 0x80404B40] +TwoHeadArena.c: + .text: [0x80404B40, 0x80404C68] +gfxalloc.c: + .text: [0x804054b0, 0x80405518] +graph.c: + .text: [0x80405518, 0x80405EC8] + .data: [0x8065ECA8, 0x8065ECB0] + .bss: [0x812F31E8, 0x812F3560] +lb_rtc.c: + .text: [0x80406480, 0x8040752C] + .rodata: [0x806436F8, 0x806437A0] + .data: [0x8065ECD0, 0x8065ECD8] + .bss: [0x812F4CB0, 0x812F4CC0] +lb_reki.c: + .text: [0x8040752C, 0x80407AE8] + .rodata: [0x806437A0, 0x806437C0] + .data: [0x8065ECD8, 0x8065F110] +zurumode.c: + .text: [0x8040eb38, 0x8040f008] + .bss: [0x812f9670, 0x812f9680] + .data: [0x8065F9F0, 0x8065FA30] +sys_ucode.c: + .text: [0x8040F008, 0x8040F048] + .data: [0x8065FA30, 0x8065FA40] +m_random_field/mRF_MakePerfectBit.c: + .text: [0x8050B1AC, 0x8050B1D4] +m_random_field/mRF_GetRandomStepMode.c: + .text: [0x8050B284, 0x8050B2C0] +sys_dynamic.c: + .bss: [0x813413F8, 0x81361820] +# ac_aprilfool_control/aPC_actor_dt.c: common_data is pure bs, + # .text: [0x805153f0, 0x8051542C] + diff --git a/include/libc64/__osMalloc.h b/include/libc64/__osMalloc.h index d1d711f8..68a3c720 100644 --- a/include/libc64/__osMalloc.h +++ b/include/libc64/__osMalloc.h @@ -16,7 +16,8 @@ typedef struct Arena { /* 0x20 */ u8 unk_20; /* 0x21 */ u8 isInit; /* 0x22 */ u8 flag; -} Arena; // size = 0x24 + /* 0x24 */ u8 pad[0x2C-0x24]; +} Arena; // size = 0x2C typedef struct ArenaNode { /* 0x00 */ s16 magic; diff --git a/rel/m_lib.c b/rel/m_lib.c index bc605aa1..df15d90d 100644 --- a/rel/m_lib.c +++ b/rel/m_lib.c @@ -47,6 +47,7 @@ #include "m_actor.h" #include "m_play.h" #include "main.h" +#include "MSL_C/w_math.h" /** * @brief Copy memory from the source buffer to the destination buffer. diff --git a/rel/m_malloc.c b/rel/m_malloc.c index a6c12aef..7cd3d4f3 100644 --- a/rel/m_malloc.c +++ b/rel/m_malloc.c @@ -1,6 +1,6 @@ #include "m_malloc.h" -Arena zelda_arena; +Arena zelda_arena; void zelda_malloc_align(u32 size, u32 align){ __osMallocAlign(&zelda_arena, size, align); @@ -43,4 +43,4 @@ void zelda_CleanupArena() { extern int zelda_MallocIsInitalized() { return __osMallocIsInitalized(&zelda_arena); -} \ No newline at end of file +}