diff --git a/src/code_2e230_len_2190.c b/src/code_2e230_len_2190.c index c711636896..d525c8367a 100644 --- a/src/code_2e230_len_2190.c +++ b/src/code_2e230_len_2190.c @@ -21,9 +21,9 @@ typedef struct UnkAl48 { /* 0x00 */ s32 unk_00; /* 0x04 */ s32 unk_04; /* 0x08 */ char unk_08[4]; - /* 0x0C */ u16 unk_0C; - /* 0x0E */ s8 unk_0E; - /* 0x0F */ s8 unk_0F; + /* 0x0C */ s16 unk_0C; + /* 0x0E */ u8 unk_0E; + /* 0x0F */ u8 unk_0F; /* 0x10 */ s8 unk_10; /* 0x11 */ char unk_11[0x31]; /* 0x42 */ s8 unk_42; @@ -34,11 +34,17 @@ typedef struct UnkAl48 { } UnkAl48; // size = 0x48 typedef struct UnkAl19E0Sub { - /* 0x0 */ s16 unk_0; - /* 0x2 */ s16 unk_2; - /* 0x4 */ s16 unk_4; + /* 0x0 */ u16 unk_0; + /* 0x2 */ u16 unk_2; + /* 0x4 */ u16 unk_4; } UnkAl19E0Sub; +typedef struct UnkAl19E0Sub2 { + /* 0x0 */ u8 unk_00; + /* 0x1 */ u8 unk_01; + /* 0x2 */ char unk_02[2]; +} UnkAl19E0Sub2; + typedef struct UnkAl19E0 { /* 0x0000 */ f32 unk_00; /* 0x0004 */ s32* unk_04; @@ -47,7 +53,7 @@ typedef struct UnkAl19E0 { /* 0x0014 */ alUnk2* unk_14; /* 0x0018 */ char unk_18[0x24]; /* 0x003C */ UnkAl19E0Sub* unk_3C; - /* 0x0040 */ s8 unk_40[16]; + /* 0x0040 */ UnkAl19E0Sub2 unk_40[4]; /* 0x0050 */ s8 unk_50; /* 0x0051 */ s8 unk_51; /* 0x0052 */ s8 unk_52; @@ -90,8 +96,8 @@ typedef struct UnkAl19E0 { /* 0x1304 */ s32* unk_1304; /* 0x1308 */ s32* unk_1308; /* 0x130C */ char unk_130C[0x4]; - /* 0x1310 */ s32** unk_1310; - /* 0x1314 */ char unk_1314[0xC]; + /* 0x1310 */ s32* unk_1310[3]; + /* 0x131C */ char unk_131C[4]; /* 0x1320 */ UnkAl48 unk_1320[24]; } UnkAl19E0; // size = 0x19E0 @@ -114,123 +120,148 @@ void func_800532F4(s32); void func_80053370(s32); void func_800533A8(alUnk2*); void al_LoadINIT(UnkAl19E0*, s32, ALHeap*); -s32 al_CopyFileTableEntry(s16 arg0, s32 arg1, s32* arg2); +s32 al_CopyFileTableEntry(u16 arg0, s32 arg1, s32* arg2); void al_LoadPER(UnkAl19E0*, s32*); void al_LoadPRG(UnkAl19E0*, s32*); void al_DmaCopy(s32*, s32*, s32); s32* alHeapAlloc(ALHeap*, s32, s32); -INCLUDE_ASM(s32, "code_2e230_len_2190", func_80052E5C); -/*void func_80052E5C(s32 arg0) { - UnkAl19E0* temp_s4; +//INCLUDE_ASM(s32, "code_2e230_len_2190", func_80052E5C); +void func_80052E5C(s32 arg0) { + UnkAl19E0** temp_s4 = &D_8009A5C0; + UnkAl19E0* temp4; s32* temp_v0_2; ALHeap* alHeap; - s32 i; + u32 i; s32* subroutine_arg6; s32* subroutine_arg7; s32* subroutine_arg8; + UnkAlA9C** temp1 = &D_8009A664; + UnkAlA9C** temp1_1; + UnkAl6CC** temp2 = &D_8009A640; + UnkAl6CC** temp2_1; + UnkAlA9C** temp3; + UnkAl48* temp5; + u8 temp6[4]; + u8* temp7; + s32** temp8; + alHeap = D_80078E54->unk_18; - D_8009A5C0 = alHeapAlloc(alHeap, 1, 0x19E0); - temp_s4 = D_8009A5C0; + *temp_s4 = alHeapAlloc(alHeap, 1, 0x19E0); - D_8009A664 = alHeapAlloc(alHeap, 1, 0xA9C); + (*temp1) = alHeapAlloc(alHeap, 1, 0xA9C); D_8009A5FC = alHeapAlloc(alHeap, 1, 0xA9C); D_8009A5CC = alHeapAlloc(alHeap, 1, 0xA9C); - D_8009A640 = alHeapAlloc(alHeap, 1, 0x6CC); + (*temp2) = alHeapAlloc(alHeap, 1, 0x6CC); D_8009A628 = alHeapAlloc(alHeap, 1, 0x834); - D_8009A628->unk_00 = D_8009A5C0; - D_8009A664->unk_04 = D_8009A640; + D_8009A628->unk_00 = *(temp_s4); + (*temp1)->unk_04 = (*temp2); + temp_v0_2 = alHeapAlloc(alHeap, 1, 0x8000); - temp_s4->unk_5C = temp_v0_2[0]; - temp_s4->unk_60 = temp_v0_2[0x1400]; - temp_s4->unk_64 = temp_v0_2[0x1C00]; - temp_s4->unk_68 = temp_v0_2[0x1400]; + temp4 = *temp_s4; + temp4->unk_5C = &temp_v0_2[0]; + temp4->unk_60 = &temp_v0_2[0x1400]; + temp4->unk_64 = &temp_v0_2[0x1C00]; + temp4->unk_68 = &temp_v0_2[0x1400]; for (i = 0; i < 1; i++) { - temp_s4->unk_6C = alHeapAlloc(alHeap, 1, 0xA9C); + temp4->unk_6C = alHeapAlloc(alHeap, 1, 0xA9C); } - temp_s4->unk_A0 = alHeapAlloc(alHeap, 1, 0x5200); - temp_s4->unk_04 = alHeapAlloc(alHeap, 1, 0x30); - temp_s4->unk_54 = alHeapAlloc(alHeap, 1, 0x360); - temp_s4->unk_58 = alHeapAlloc(alHeap, 1, 0x200); - temp_s4->unk_94 = alHeapAlloc(alHeap, 1, 0x40); - temp_s4->unk_00 = arg0; - func_800532F4(temp_s4->unk_04); - func_80053370(temp_s4->unk_08); - func_800533A8(temp_s4->unk_14); + temp4->unk_A0 = alHeapAlloc(alHeap, 1, 0x5200); + temp4->unk_04 = alHeapAlloc(alHeap, 1, 0x30); + temp4->unk_54 = alHeapAlloc(alHeap, 1, 0x360); + temp4->unk_58 = alHeapAlloc(alHeap, 1, 0x200); + temp4->unk_94 = alHeapAlloc(alHeap, 1, 0x40); + temp4->unk_00 = arg0; + func_800532F4(temp4->unk_04); + func_80053370(temp4->unk_08); + func_800533A8(temp4->unk_14); func_8005610C(); - temp_s4->unk_A4 = 0; - temp_s4->unk_A8 = 0; + temp4->unk_A4 = 0; + temp4->unk_A8 = 0; for (i = 0; i < 1; i++) { - temp_s4->unk_70 = 0; - temp_s4->unk_71 = 0; + temp4->unk_70 = 0; + temp4->unk_71 = 0; } for (i = 0; i < 4; i++) { - temp_s4->unk_40[i * 4 + 0] = 0; - temp_s4->unk_40[i * 4 + 1] = 0; + temp4->unk_40[i].unk_00 = 0; + temp4->unk_40[i].unk_01 = 0; } for (i = 0; i < 24; i++) { - func_80056EC0(i, 0); - func_80057224(i, temp_s4->unk_04); - temp_s4->unk_1320[i].unk_00 = 0; - temp_s4->unk_1320[i].unk_04 = 0; - temp_s4->unk_1320[i].unk_0C = -1; - temp_s4->unk_1320[i].unk_0E = 0xFF; - temp_s4->unk_1320[i].unk_0F = 0xFF; - temp_s4->unk_1320[i].unk_10 = 0; - temp_s4->unk_1320[i].unk_42 = 0; - temp_s4->unk_1320[i].unk_43 = 0; - temp_s4->unk_1320[i].unk_44 = 0; - temp_s4->unk_1320[i].unk_45 = 0; + func_80056EC0((u8)i, 0); + func_80057224((u8)i, temp4->unk_04); + temp5 = &temp4->unk_1320[i]; + temp5->unk_00 = 0; + temp5->unk_04 = 0; + temp5->unk_0C = -1; + temp5->unk_0E = 0xFF; + temp5->unk_0F = 0xFF; + temp5->unk_10 = 0; + temp5->unk_42 = 0; + temp5->unk_43 = 0; + temp5->unk_44 = 0; + temp5->unk_45 = 0; } - al_LoadINIT(temp_s4, 0xF00000, alHeap); + al_LoadINIT(temp4, 0xF00000, alHeap); for (i = 0; i < 3; i++) { - temp_s4->unk_1310[i] = alHeapAlloc(alHeap, 1, 0x840); + temp4->unk_1310[i] = alHeapAlloc(alHeap, 1, 0x840); } - func_8004E158(D_8009A664, 1, 0, temp_s4); - func_8004E344(D_8009A664, &subroutine_arg8, 0, 3, 0xFF, 0xFF); - func_8004E158(D_8009A5FC, 2, 2, temp_s4); - func_8004E344(D_8009A5FC, &subroutine_arg8, 2, 0xFF, 0xFF, 0xFF); - func_8004B440(D_8009A640, 4, 1, temp_s4, 0x10); - func_80050B90(D_8009A628, 6, 1, temp_s4); - func_80052614(temp_s4); - al_LoadBKHeaders(temp_s4, alHeap); - if (al_CopyFileTableEntry(temp_s4->unk_3C->unk_0, 0x20, &subroutine_arg6) == 0) { - al_DmaCopy(subroutine_arg6, temp_s4->unk_A0, *subroutine_arg7 & 0xFFFFFF); + temp2_1 = &D_8009A640; + temp3 = &D_8009A5FC; + temp1_1 = &D_8009A664; + func_8004E158((*temp1_1), 1, 0, temp4); + temp6[0] = 0; + temp6[1] = 3; + temp6[2] = 0xff; + temp6[3] = 0xff; + temp7 = &temp6[0]; + func_8004E344((*temp1_1), temp7); + func_8004E158((*temp3), 2, 2, temp4); + temp6[0] = 2; + temp6[1] = 0xff; + temp6[2] = 0xff; + temp6[3] = 0xff; + func_8004E344((*temp3), temp7); + func_8004B440((*temp2_1), 4, 1, temp4, 0x10); + func_80050B90(D_8009A628, 6, 1, temp4); + func_80052614(temp4); + al_LoadBKHeaders(temp4, alHeap); + if (al_CopyFileTableEntry(temp4->unk_3C->unk_0, 0x20, &subroutine_arg7) == 0) { + al_DmaCopy(&subroutine_arg6, temp4->unk_A0, ((s32)&subroutine_arg8 & 0xFFFFFF)); } - func_8004B62C(D_8009A640); - if (al_CopyFileTableEntry(temp_s4->unk_3C->unk_2, 0x40, &subroutine_arg6) == 0) { - al_LoadPER(temp_s4, subroutine_arg6); + func_8004B62C((*temp2_1)); + if (al_CopyFileTableEntry(temp4->unk_3C->unk_2, 0x40, &subroutine_arg6) == 0) { + al_LoadPER(temp4, subroutine_arg6); } - if (al_CopyFileTableEntry(temp_s4->unk_3C->unk_4, 0x40, &subroutine_arg6) == 0) { - al_LoadPRG(temp_s4, subroutine_arg6); + if (al_CopyFileTableEntry(temp4->unk_3C->unk_4, 0x40, &subroutine_arg6) == 0) { + al_LoadPRG(temp4, subroutine_arg6); } - temp_s4->unk_12F0 = temp_s4->unk_5EC; - temp_s4->unk_12F4 = temp_s4->unk_AC; - temp_s4->unk_12F8 = temp_s4->unk_EC; - temp_s4->unk_12FC = temp_s4->unk_9EC; - temp_s4->unk_1300 = temp_s4->unk_DEC; - temp_s4->unk_12EC = temp_s4->unk_4EC; - temp_s4->unk_1304 = temp_s4->unk_11EC; - temp_s4->unk_1308 = temp_s4->unk_4EC; - temp_s4->unk_53 = 0; - temp_s4->unk_52 = 0; - temp_s4->unk_51 = 0; - temp_s4->unk_50 = 0; + temp4->unk_12EC = &temp4->unk_4EC; + temp4->unk_12F0 = &temp4->unk_5EC; + temp4->unk_12F4 = &temp4->unk_AC; + temp4->unk_12F8 = &temp4->unk_EC; + temp4->unk_12FC = &temp4->unk_9EC; + temp4->unk_1300 = &temp4->unk_DEC; + temp4->unk_1304 = &temp4->unk_11EC; + temp4->unk_1308 = &temp4->unk_4EC; + temp4->unk_53 = 0; + temp4->unk_52 = 0; + temp4->unk_51 = 0; + temp4->unk_50 = 0; func_80057ED0(0); func_80055050(alHeap); -}*/ +} INCLUDE_ASM(void, "code_2e230_len_2190", func_800532F4, s32 arg0); @@ -312,7 +343,7 @@ INCLUDE_ASM(s32, "code_2e230_len_2190", func_80054248); INCLUDE_ASM(void, "code_2e230_len_2190", al_LoadINIT, UnkAl19E0* arg0, s32 arg1, ALHeap* arg2); -INCLUDE_ASM(s32, "code_2e230_len_2190", al_CopyFileTableEntry, s16 arg0, s32 arg1, s32* arg2); +INCLUDE_ASM(s32, "code_2e230_len_2190", al_CopyFileTableEntry, u16 arg0, s32 arg1, s32* arg2); INCLUDE_ASM(void, "code_2e230_len_2190", al_LoadPER, UnkAl19E0* arg0, s32* arg1);