diff --git a/config/GMPE01_00/symbols.txt b/config/GMPE01_00/symbols.txt index fb9dc720..7aeba886 100644 --- a/config/GMPE01_00/symbols.txt +++ b/config/GMPE01_00/symbols.txt @@ -747,7 +747,7 @@ fn_800436DC = .text:0x800436DC; // type:function size:0xF4 fn_800437D0 = .text:0x800437D0; // type:function size:0x106C fn_8004483C = .text:0x8004483C; // type:function size:0x54 fn_80044890 = .text:0x80044890; // type:function size:0x90 -fn_80044920 = .text:0x80044920; // type:function size:0xA4 +HuWinKill = .text:0x80044920; // type:function size:0xA4 fn_800449C4 = .text:0x800449C4; // type:function size:0x88 fn_80044A4C = .text:0x80044A4C; // type:function size:0x10C fn_80044B58 = .text:0x80044B58; // type:function size:0x1A4 @@ -771,7 +771,7 @@ fn_80045DD4 = .text:0x80045DD4; // type:function size:0x50 fn_80045E24 = .text:0x80045E24; // type:function size:0x60 fn_80045E84 = .text:0x80045E84; // type:function size:0x2C fn_80045EB0 = .text:0x80045EB0; // type:function size:0xC4 -fn_80045F74 = .text:0x80045F74; // type:function size:0x398 +HuWinMesSet = .text:0x80045F74; // type:function size:0x398 fn_8004630C = .text:0x8004630C; // type:function size:0xD8 fn_800463E4 = .text:0x800463E4; // type:function size:0x27C fn_80046660 = .text:0x80046660; // type:function size:0x2C @@ -945,7 +945,7 @@ fn_8005786C = .text:0x8005786C; // type:function size:0xC fn_80057878 = .text:0x80057878; // type:function size:0xC fn_80057884 = .text:0x80057884; // type:function size:0xC fn_80057890 = .text:0x80057890; // type:function size:0x54 -fn_800578E4 = .text:0x800578E4; // type:function size:0x8 +HuTHPFrameGet = .text:0x800578E4; // type:function size:0x8 fn_800578EC = .text:0x800578EC; // type:function size:0x20 fn_8005790C = .text:0x8005790C; // type:function size:0x30 fn_8005793C = .text:0x8005793C; // type:function size:0x27C @@ -4831,7 +4831,7 @@ lbl_8011F77C = .data:0x8011F77C; // type:object size:0x13 data:string lbl_8011F78F = .data:0x8011F78F; // type:object size:0x13 data:string lbl_8011F7A2 = .data:0x8011F7A2; // type:object size:0x12 data:string lbl_8011F7B4 = .data:0x8011F7B4; // type:object size:0x10 -lbl_8011F7C4 = .data:0x8011F7C4; // type:object size:0x468 data:4byte +DataDirStat = .data:0x8011F7C4; // type:object size:0x468 data:4byte lbl_8011FC2C = .data:0x8011FC2C; // type:object size:0x1D data:string lbl_8011FC49 = .data:0x8011FC49; // type:object size:0x1F data:string lbl_8011FC68 = .data:0x8011FC68; // type:object size:0x3C diff --git a/include/common_structs.h b/include/common_structs.h index 19a73ff0..29d3ada6 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -9,4 +9,10 @@ typedef struct UnkOvl { s32 unk8; } UnkOvl; +typedef struct Vec3f { + f32 x; + f32 y; + f32 z; +} Vec3f; + #endif \ No newline at end of file diff --git a/include/functions.h b/include/functions.h index 4f81af72..6d8168d0 100644 --- a/include/functions.h +++ b/include/functions.h @@ -5,13 +5,17 @@ #include "common_structs.h" void OSReport(const char * format, ...); -void *HuPrcCreate(void (*), s32, s32, s32); +void* HuPrcCreate(void (*), s32, s32, s32); void Hu3DBGColorSet(u8, u8, u8); void Hu3DCameraCreate(s16); void Hu3DCameraPerspectiveSet(s16, f32, f32, f32, f32); void Hu3DCameraViewportSet(s16, f32, f32, f32, f32, f32, f32); void omOvlHisChg(s32, s32, s32, s32); UnkOvl* omOvlHisGet(s32); -void * omInitObjMan(s32, s32); +void* omInitObjMan(s32, s32); +void fn_80044920(s16); +void fn_80045F74(s16, s32); +s32 fn_800578E4(void); +void fn_1_26C(void); #endif \ No newline at end of file diff --git a/src/REL/_minigameDLL/_minigameDLL.c b/src/REL/_minigameDLL/_minigameDLL.c index 3da424c8..2a62228c 100644 --- a/src/REL/_minigameDLL/_minigameDLL.c +++ b/src/REL/_minigameDLL/_minigameDLL.c @@ -1,5 +1,5 @@ -#include "REL/executor.h" #include "common.h" +#include "REL/executor.h" void ModuleProlog(void) { OSReport("minigame dll setup\n"); diff --git a/src/REL/bootDll/bootDll.c b/src/REL/bootDll/bootDll.c new file mode 100644 index 00000000..cf634f71 --- /dev/null +++ b/src/REL/bootDll/bootDll.c @@ -0,0 +1,140 @@ +#include "common.h" +#include "REL/executor.h" + +extern s16 lbl_1_bss_E; +extern s16 lbl_1_data_38[]; + +//TODO: fill these in correctly +Vec3f lbl_1_rodata_10 = {0.0f, 0.0f, 0.0f}; +Vec3f lbl_1_rodata_1C = {0.0f, 0.0f, 0.0f}; + +extern f32 lbl_1_bss_1C; +extern Vec3f lbl_1_bss_24; +extern Vec3f lbl_1_bss_3C; +f32 lbl_1_rodata_28; +s32 lbl_1_bss_54; + + +void fn_1_A0(void) { + UnkOvl* temp_r3; + + OSReport("******* Boot ObjectSetup *********\n"); + lbl_1_bss_54 = omInitObjMan(0x32, 0x2000); + lbl_1_bss_3C.x = 0.0f; + lbl_1_bss_3C.y = 0.0f; + lbl_1_bss_3C.z = 0.0f; + lbl_1_bss_24.x = 0.0f; + lbl_1_bss_24.y = 0.0f; + lbl_1_bss_24.z = 0.0f; + lbl_1_bss_1C = 0.0f; + Hu3DCameraCreate(1); + Hu3DCameraPerspectiveSet(1, 0.0f, 0.0f, 0.0f, 0.0f); + Hu3DCameraViewportSet(1, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + HuPrcCreate(fn_1_26C, 0x64, 0x3000, 0); + Hu3DBGColorSet(0, 0, 0); + temp_r3 = omOvlHisGet(0); + omOvlHisChg(0, temp_r3->unk0, 1, temp_r3->unk8); +} + +//void fn_1_26C(void) + +void fn_1_9F8(void) { + s32 temp_r30; + s32 i; + + temp_r30 = fn_800578E4(); + for (i = 0; lbl_1_data_38[i*2] != -1; i++) { + if (temp_r30 == lbl_1_data_38[i*2]) { + fn_80045F74(lbl_1_bss_E, i + 0x360000); + } + if (temp_r30 == lbl_1_data_38[i*2+1]) { + fn_80044920(lbl_1_bss_E); + } + } +} + +//fn_1_AC0 + +//fn_1_1178 + +//fn_1_152C + +typedef struct temp2 { + s16 unk0; + s16 unk2; + s16 unk4; +} temp2; + +void fn_80008364(s32, s32, s32); +s32 fn_8000DD24(void); +s32 fn_8000DE48(s32, s32, s32); +s16 fn_8000E0F8(s32); +void fn_8000E520(s16, s32, s32); +void fn_8000E808(s16, s32, s32); +s32 fn_8000E960(s16, s32, f32, f32); +void fn_8000F038(s16, s32, s32); +s16 fn_800204D0(void); +void fn_80021228(s16, s32); +void fn_80022420(s16, s32); +void fn_80023828(s16, s32); +extern s16 lbl_1_bss_6; +extern temp2 lbl_1_bss_8; +extern f32 lbl_1_rodata_48; +extern f32 lbl_1_rodata_4C; +extern f32 lbl_1_rodata_98; +extern f32 lbl_1_rodata_9C; +extern f32 lbl_1_rodata_A0; + +void fn_1_2100(void) { + s32 temp_r3_2; + s32 temp_r3; + s16 temp_r3_3; + + fn_80008364(0x74000B, 0x10000000, 2); + temp_r3_3 = fn_800204D0(); + lbl_1_bss_8.unk0 = temp_r3_3; + fn_80021228(temp_r3_3, 1); + fn_80021228(temp_r3_3, 0x40000001); + fn_80008364(0x74000C, 0x10000000, 2); + temp_r3_3 = fn_800204D0(); + lbl_1_bss_8.unk2 = temp_r3_3; + fn_80021228(temp_r3_3, 1); + fn_80021228(temp_r3_3, 0x40000001); + fn_80008364(0x74000D, 0x10000000, 2); + temp_r3_3 = fn_800204D0(); + lbl_1_bss_8.unk4 = temp_r3_3; + fn_80021228(temp_r3_3, 1); + fn_80021228(temp_r3_3, 0x40000001); + fn_80022420(temp_r3_3, 1); + fn_80023828(temp_r3_3, 1); + lbl_1_bss_6 = fn_8000E0F8(4); + fn_80008364(0x740008, 0x10000000, 2); + temp_r3 = fn_8000DD24(); + temp_r3_2 = fn_8000DE48(temp_r3, 0, 0); + fn_8000E520(lbl_1_bss_6, 0, temp_r3_2); + fn_8000E808(lbl_1_bss_6, 0, 4); + fn_8000F038(lbl_1_bss_6, 0, 0x7F); + fn_8000E960(lbl_1_bss_6, 0, lbl_1_rodata_48, lbl_1_rodata_4C); + fn_80008364(0x74000A, 0x10000000, 2); + temp_r3 = fn_8000DD24(); + temp_r3_2 = fn_8000DE48(temp_r3, 1, 0); + fn_8000E520(lbl_1_bss_6, 1, temp_r3_2); + fn_8000E808(lbl_1_bss_6, 1, 4); + fn_8000E960(lbl_1_bss_6, 1, lbl_1_rodata_48, lbl_1_rodata_98); + fn_80008364(0x740002, 0x10000000, 2); + temp_r3 = fn_8000DD24(); + temp_r3_2 = fn_8000DE48(temp_r3, 2, 0); + fn_8000E520(lbl_1_bss_6, 2, temp_r3_2); + fn_8000E808(lbl_1_bss_6, 2, 0xC); + fn_8000E960(lbl_1_bss_6, 2, lbl_1_rodata_48, lbl_1_rodata_9C); + fn_80008364(0x740009, 0x10000000, 2); + temp_r3 = fn_8000DD24(); + temp_r3_2 = fn_8000DE48(temp_r3, 0, 0); + fn_8000E520(lbl_1_bss_6, 3, temp_r3_2); + fn_8000E808(lbl_1_bss_6, 3, 0xC); + fn_8000E960(lbl_1_bss_6, 3, lbl_1_rodata_48, lbl_1_rodata_A0); +} + +//fn_1_2474 + +//fn_1_2944 \ No newline at end of file