diff --git a/src/fragments/62/fragment62.h b/src/fragments/62/fragment62.h index c1be9e2..2b0de2b 100644 --- a/src/fragments/62/fragment62.h +++ b/src/fragments/62/fragment62.h @@ -545,6 +545,33 @@ typedef struct unk_D_843A22C0 { /* 0x038 */ unk_D_843A22C0_038 unk_038[10]; } unk_D_843A22C0; // size = 0x358 +typedef struct unk_D_843AA880_034 { + /* 0x00 */ u8 unk_00; + /* 0x04 */ f32 unk_04; + /* 0x08 */ f32 unk_08; + /* 0x0C */ Vec3f unk_0C; + /* 0x18 */ Vec3f unk_18; + /* 0x24 */ f32 unk_24; + /* 0x28 */ f32 unk_28; + /* 0x2C */ Vec3f unk_2C; + /* 0x38 */ Vec3f unk_38; +} unk_D_843AA880_034; // size = 0x44 + +typedef struct unk_D_843AA880 { + /* 0x000 */ s16 unk_000; + /* 0x002 */ s16 unk_002; + /* 0x004 */ s16 unk_004; + /* 0x006 */ s16 unk_006; + /* 0x008 */ Color_RGB8 unk_008; + /* 0x00C */ f32 unk_00C; + /* 0x010 */ f32 unk_010; + /* 0x014 */ f32 unk_014; + /* 0x018 */ Vtx* unk_018; + /* 0x01C */ Vec3f unk_01C; + /* 0x028 */ char unk028[0xC]; + /* 0x034 */ unk_D_843AA880_034 unk_034[15]; +} unk_D_843AA880; // size = 0x430 + extern unk_D_8438E7B0* D_84384570[]; extern unk_D_8438FF70* D_84384578[]; extern unk_D_8438FF70* D_84384580[]; @@ -2565,10 +2592,15 @@ Gfx* func_843670C8(Gfx* arg0); Gfx* func_84367660(Gfx* arg0, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, f32 arg4, u8 arg5, u8 arg6, u8 arg7, u8 arg8); + void func_84367CB0(void); -void func_84367E2C(f32, f32, f32, f32, f32, f32, s32, s32, s32, s32, f32, f32, f32, s32); +void func_84367E2C(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9, f32 argA, f32 argB, f32 argC, s16 argD); +void func_84368080(f32 arg0, Vec3f* arg1, f32 arg2, f32 arg3); +void func_84368140(unk_D_843AA880* arg0); s32 func_843684CC(void); -Gfx* func_84368560(Gfx*); +Gfx* func_84368560(Gfx* arg0); + + void func_84368AB0(void); void func_84368C04(f32, f32, f32, f32, f32, f32, s32, s32, s32, s32, f32, f32, f32, s32); s32 func_843692E8(void); diff --git a/src/fragments/62/fragment62_34A420.c b/src/fragments/62/fragment62_34A420.c index e4629a1..70a0052 100644 --- a/src/fragments/62/fragment62_34A420.c +++ b/src/fragments/62/fragment62_34A420.c @@ -552,7 +552,6 @@ void func_84360EFC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s } } -#ifdef NON_MATCHING void func_843612F8(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s16 arg6, u8 arg7, u8 arg8, u8 arg9, u8 argA, f32 argB, f32 argC, f32 argD, s16 argE) { unk_D_84398F50* var_v0; @@ -562,13 +561,9 @@ void func_843612F8(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s Vec3f spBC; Vec3f spB0; s32 temp_fp; - s32 temp_s2; - s32 temp_s3; s32 temp_s5; s32 temp_s6; s32 temp_s7; - f32 idx1; - f32 idx2; spBC.x = arg0; spBC.y = arg1; @@ -598,33 +593,27 @@ void func_843612F8(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s temp_s6 = RAND(20) + 2; temp_fp = RAND(10) + 4; - for (j = 0, temp_s2 = temp_s6, temp_s3 = temp_s5; j < 20; j++) { + for (j = 0; j < 20; j++) { var_s0->unk_00 = j; var_s0->unk_04 = argA; var_s0->unk_08 = argC; var_s0->unk_0C = 0.0f; var_s0->unk_10 = spBC; - idx1 = ((temp_s2 % (temp_fp + 20)) * TWO_PI) / (temp_fp + 20); - idx2 = ((temp_s3 % temp_s7) * TWO_PI) / temp_s7; - - var_s0->unk_10.y += 5.0 * __sinf(idx2) * __sinf(idx1); - var_s0->unk_10.z += 5.0 * __cosf(idx2) * __cosf(idx1); + var_s0->unk_10.y += 5.0 * __sinf((((temp_s5 + j) % temp_s7) * TWO_PI) / temp_s7) * + __sinf((((temp_s6 + j) % (temp_fp + 20)) * TWO_PI) / (temp_fp + 20)); + var_s0->unk_10.z += 5.0 * __cosf((((temp_s5 + j) % temp_s7) * TWO_PI) / temp_s7) * + __cosf((((temp_s6 + j) % (temp_fp + 20)) * TWO_PI) / (temp_fp + 20)); var_s0->unk_1C = spB0; var_s0->unk_10.x += var_s0->unk_1C.x * ((j * 0.5) - (s32)(j * 0.5)); - temp_s2++; - temp_s3++; var_s0++; } break; } } } -#else -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_34A420/func_843612F8.s") -#endif void func_843616B0(f32 arg0, UNUSED Vec3f* arg1, Vec3f* arg2, f32 arg3, UNUSED f32 arg4, UNUSED f32 arg5, UNUSED f32 arg6) { diff --git a/src/fragments/62/fragment62_351F20.c b/src/fragments/62/fragment62_351F20.c index 23edda3..282b8b0 100644 --- a/src/fragments/62/fragment62_351F20.c +++ b/src/fragments/62/fragment62_351F20.c @@ -93,38 +93,42 @@ Gfx* func_84367660(Gfx* arg0, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, f32 arg4, u gDPPipeSync(arg0++); gDPSetEnvColor(arg0++, arg5, arg6, arg7, arg8); + a3_x = arg4 * sp130; + a3_y = arg4 * sp12C; + a3_z = arg4 * sp128; + temp_v1 = sp1E8; - tmp1 = arg4 * sp130; - tmp2 = arg4 * sp12C; - tmp3 = arg4 * sp128; + if (a3_z) {} - temp_v1->v.ob[0] = tmp1 * 2.0f + a1_x; - temp_v1->v.ob[1] = tmp2 * 2.0f + a1_y; - temp_v1->v.ob[2] = tmp3 * 2.0f + a1_z; + tmp1 = a2_y - a3_y * 2.0f; + + temp_v1->v.ob[0] = a3_x * 2.0f + a1_x; + temp_v1->v.ob[1] = a3_y * 2.0f + a1_y; + temp_v1->v.ob[2] = a3_z * 2.0f + a1_z; temp_v1++; - temp_v1->v.ob[0] = tmp1 * 2.0f + a2_x; - temp_v1->v.ob[1] = tmp2 * 2.0f + a2_y; - temp_v1->v.ob[2] = tmp3 * 2.0f + a2_z; + temp_v1->v.ob[0] = a3_x * 2.0f + a2_x; + temp_v1->v.ob[1] = a3_y * 2.0f + a2_y; + temp_v1->v.ob[2] = a3_z * 2.0f + a2_z; temp_v1++; - sp8C = (a1_x * 1.2f) + (-a2_x * 0.2f); - sp88 = (a1_y * 1.2f) + (-a2_y * 0.2f); - sp84 = (a1_z * 1.2f) + (-a2_z * 0.2f); + sp8C = (-a2_x * 0.2f) + (a1_x * 1.2f); + sp88 = (-a2_y * 0.2f) + (a1_y * 1.2f); + sp84 = (-a2_z * 0.2f) + (a1_z * 1.2f); sp80 = (a2_x * 1.2f) - (a1_x * 0.2f); sp7C = (a2_y * 1.2f) - (a1_y * 0.2f); sp78 = (a2_z * 1.2f) - (a1_z * 0.2f); - temp_v1->v.ob[0] = tmp1 + sp8C; - temp_v1->v.ob[1] = tmp2 + sp88; - temp_v1->v.ob[2] = tmp3 + sp84; + temp_v1->v.ob[0] = a3_x + sp8C; + temp_v1->v.ob[1] = a3_y + sp88; + temp_v1->v.ob[2] = a3_z + sp84; temp_v1++; - temp_v1->v.ob[0] = tmp1 + sp80; - temp_v1->v.ob[1] = tmp2 + sp7C; - temp_v1->v.ob[2] = tmp3 + sp78; + temp_v1->v.ob[0] = a3_x + sp80; + temp_v1->v.ob[1] = a3_y + sp7C; + temp_v1->v.ob[2] = a3_z + sp78; temp_v1++; temp_v1->v.ob[0] = a1_x; @@ -137,24 +141,24 @@ Gfx* func_84367660(Gfx* arg0, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3, f32 arg4, u temp_v1->v.ob[2] = a2_z; temp_v1++; - temp_v1->v.ob[0] = sp8C - tmp1; - temp_v1->v.ob[1] = sp88 - tmp2; - temp_v1->v.ob[2] = sp84 - tmp3; + temp_v1->v.ob[0] = sp8C - a3_x; + temp_v1->v.ob[1] = sp88 - a3_y; + temp_v1->v.ob[2] = sp84 - a3_z; temp_v1++; - temp_v1->v.ob[0] = sp80 - tmp1; - temp_v1->v.ob[1] = sp7C - tmp2; - temp_v1->v.ob[2] = sp78 - tmp3; + temp_v1->v.ob[0] = sp80 - a3_x; + temp_v1->v.ob[1] = sp7C - a3_y; + temp_v1->v.ob[2] = sp78 - a3_z; temp_v1++; - temp_v1->v.ob[0] = a1_x - tmp1 * 2.0f; - temp_v1->v.ob[1] = a1_y - tmp2 * 2.0f; - temp_v1->v.ob[2] = a1_z - tmp3 * 2.0f; + temp_v1->v.ob[0] = a1_x - a3_x * 2.0f; + temp_v1->v.ob[1] = a1_y - a3_y * 2.0f; + temp_v1->v.ob[2] = a1_z - a3_z * 2.0f; temp_v1++; - temp_v1->v.ob[0] = a2_x - tmp1 * 2.0f; - temp_v1->v.ob[1] = a2_y - tmp2 * 2.0f; - temp_v1->v.ob[2] = a2_z - tmp3 * 2.0f; + temp_v1->v.ob[0] = a2_x - a3_x * 2.0f; + temp_v1->v.ob[1] = tmp1; + temp_v1->v.ob[2] = a2_z - a3_z * 2.0f; temp_v1++; guTranslate(sp1DC, 0.0f, 0.0f, 0.0f); diff --git a/src/fragments/62/fragment62_352570.c b/src/fragments/62/fragment62_352570.c index 4a5b197..e7ac491 100644 --- a/src/fragments/62/fragment62_352570.c +++ b/src/fragments/62/fragment62_352570.c @@ -1,13 +1,301 @@ -#include "global.h" +#include "fragment62.h" +#include "src/6A40.h" -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84367CB0.s") +static unk_D_843AA880 D_843AA880[4]; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84367E2C.s") +static Vtx D_843898B0[] = { + VTX(-30, 0, -20, 2048, 0, 0xFF, 0xFF, 0xFF, 0xC8), + VTX(10, 0, -20, 0, 0, 0xFF, 0xFF, 0xFF, 0xC8), + VTX(-30, 0, 20, 2048, 2048, 0xFF, 0xFF, 0xFF, 0xC8), + VTX(10, 0, 20, 0, 2048, 0xFF, 0xFF, 0xFF, 0xC8), +}; +static Gfx D_843898F0[] = { + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | + G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH | G_CLIPPING | 0x0040F9FA), + gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_ON), + gsDPPipeSync(), + gsDPSetRenderMode(G_RM_ZB_XLU_SURF, G_RM_ZB_XLU_SURF2), + gsDPSetCombineMode(G_CC_BLENDIA, G_CC_BLENDIA), + gsDPSetPrimColor(0, 0, 255, 255, 255, 255), + gsDPSetEnvColor(255, 255, 255, 255), + gsSPVertex(0x843898B0, 4, 0), + gsSP2Triangles(0, 2, 1, 0, 2, 3, 1, 0), + gsSPEndDisplayList(), +}; +static Gfx D_84389958[] = { + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsSPClearGeometryMode(G_ZBUFFER | G_SHADE | G_CULL_BOTH | G_FOG | G_LIGHTING | G_TEXTURE_GEN | + G_TEXTURE_GEN_LINEAR | G_LOD | G_SHADING_SMOOTH | G_CLIPPING | 0x0040F9FA), + gsSPSetGeometryMode(G_ZBUFFER | G_SHADE | G_SHADING_SMOOTH), + gsSPTexture(0x8000, 0x8000, 0, G_TX_RENDERTILE, G_OFF), + gsDPPipeSync(), + gsDPSetRenderMode(G_RM_ZB_XLU_SURF, G_RM_ZB_XLU_SURF2), + gsDPSetCombineMode(G_CC_SHADE, G_CC_SHADE), + gsDPSetColorDither(G_CD_NOISE), + gsSPEndDisplayList(), +}; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84368080.s") +void func_84367CB0(void) { + s32 i; + s32 j; + f32 temp_fa0; + unk_D_843AA880* var_a2; + unk_D_843AA880_034* var_v0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84368140.s") + temp_fa0 = func_8432FCD4() * 0.75f; + var_a2 = &D_843AA880[0]; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_843684CC.s") + for (i = 0; i < 4; i++, var_a2++) { + var_a2->unk_000 = 0; + var_a2->unk_002 = 0; + var_a2->unk_004 = 0; + var_a2->unk_00C = temp_fa0; -#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/62/fragment62_352570/func_84368560.s") + var_v0 = &var_a2->unk_034[0]; + for (j = 0; j < 15; j++, var_v0++) { + var_v0->unk_00 = 0; + var_v0->unk_04 = 1.0f; + var_v0->unk_08 = 0.0f; + var_v0->unk_0C.z = var_v0->unk_0C.y = var_v0->unk_0C.x = 0.0f; + var_v0->unk_18.z = var_v0->unk_18.y = var_v0->unk_18.x = 0.0f; + } + } +} + +void func_84367E2C(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, u8 arg6, u8 arg7, u8 arg8, u8 arg9, + f32 argA, f32 argB, f32 argC, s16 argD) { + unk_D_843AA880* var_v1; + unk_D_843AA880_034* var_s0; + s32 i; + s32 j; + Vec3f sp64; + Vec3f sp58; + + sp64.x = arg0; + sp64.y = arg1; + sp64.z = arg2; + var_v1 = &D_843AA880[0]; + + for (i = 0; i < 4; i++, var_v1++) { + if (var_v1->unk_000 == 0) { + f32 tmp = var_v1->unk_00C; + + var_v1->unk_000 = 1; + var_v1->unk_002 = 0; + + var_v1->unk_004 = argD; + var_v1->unk_008.r = arg6; + var_v1->unk_008.g = arg7; + var_v1->unk_008.b = arg8; + var_v1->unk_01C = sp64; + var_v1->unk_010 = argC; + var_v1->unk_014 = argA; + + sp58.x = arg3; + sp58.y = arg4 * tmp; + sp58.z = arg5 * tmp; + + if (arg3 < 0.0) { + var_v1->unk_006 = -1; + } else { + var_v1->unk_006 = 1; + } + + var_s0 = &var_v1->unk_034[0]; + for (j = 0; j < 15; j++, var_s0++) { + var_s0->unk_00 = (arg9 * (0xE - j)) / 15; + var_s0->unk_04 = argB; + var_s0->unk_08 = (RAND(120) * 6.2831855f) / 120.0; + var_s0->unk_0C = sp64; + var_s0->unk_18 = sp58; + } + break; + } + } +} + +void func_84368080(f32 arg0, Vec3f* arg1, f32 arg2, f32 arg3) { + MtxF spB0; + MtxF sp70; + MtxF sp30; + UNUSED s32 pad; + + guScaleF(sp30.mf, arg3, arg3, arg3); + guRotateF(sp70.mf, (arg0 * 360.0) / 6.2831854820251465, 1.0f, 0.0f, 0.0f); + guMtxCatF(sp30.mf, sp70.mf, spB0.mf); + guMtxXFMF(spB0.mf, 0.0f, 0.0f, arg2, &arg1->x, &arg1->y, &arg1->z); +} + +void func_84368140(unk_D_843AA880* arg0) { + unk_D_843AA880_034* var_v0 = &arg0->unk_034[0]; + s32 i; + f32 temp_fa0; + f32 temp_fa1; + + for (i = 0; i < 15; i++, var_v0++) { + if (i == 0) { + var_v0->unk_24 = var_v0->unk_04; + var_v0->unk_28 = var_v0->unk_08; + var_v0->unk_2C = var_v0->unk_0C; + var_v0->unk_38 = var_v0->unk_18; + + var_v0->unk_0C.x += var_v0->unk_18.x; + var_v0->unk_0C.y += var_v0->unk_18.y; + var_v0->unk_0C.z += var_v0->unk_18.z; + + var_v0->unk_08 += arg0->unk_014; + if (arg0->unk_006 < 0) { + var_v0->unk_18.x += 1.5; + if (var_v0->unk_18.x > 20.0) { + var_v0->unk_18.x = 20.0f; + } + } else { + var_v0->unk_18.x -= 1.5; + if (var_v0->unk_18.x < -20.0) { + var_v0->unk_18.x = -20.0f; + } + } + + if (arg0->unk_002 < 0xF) { + temp_fa0 = ((0xF - arg0->unk_002) * 0.03) / 15.0; + temp_fa1 = (arg0->unk_002 * 0.15) / 15.0; + var_v0->unk_18.y += (arg0->unk_01C.y - var_v0->unk_0C.y) * temp_fa0; + var_v0->unk_18.z += (arg0->unk_01C.z - var_v0->unk_0C.z) * temp_fa0; + var_v0->unk_0C.y += (arg0->unk_01C.y - var_v0->unk_0C.y) * temp_fa1; + var_v0->unk_0C.z += (arg0->unk_01C.z - var_v0->unk_0C.z) * temp_fa1; + } else { + var_v0->unk_18.y += (arg0->unk_01C.y - var_v0->unk_0C.y) * 0.03; + var_v0->unk_18.z += (arg0->unk_01C.z - var_v0->unk_0C.z) * 0.03; + var_v0->unk_0C.y += (arg0->unk_01C.y - var_v0->unk_0C.y) * 0.15; + var_v0->unk_0C.z += (arg0->unk_01C.z - var_v0->unk_0C.z) * 0.15; + } + + var_v0->unk_04 += 2.0; + if (arg0->unk_010 < var_v0->unk_04) { + var_v0->unk_04 = arg0->unk_010; + } + } else { + var_v0->unk_24 = var_v0->unk_04; + var_v0->unk_28 = var_v0->unk_08; + + var_v0->unk_2C = var_v0->unk_0C; + var_v0->unk_38 = var_v0->unk_18; + + var_v0->unk_0C = var_v0[-1].unk_2C; + var_v0->unk_08 = var_v0[-1].unk_28; + var_v0->unk_18 = var_v0[-1].unk_38; + var_v0->unk_04 = var_v0[-1].unk_24; + } + } +} + +s32 func_843684CC(void) { + s32 i; + unk_D_843AA880* var_s0 = &D_843AA880[0]; + + for (i = 0; i < 4; i++, var_s0++) { + if (var_s0->unk_000 == 1) { + var_s0->unk_002 += 1; + if (var_s0->unk_004 < var_s0->unk_002) { + var_s0->unk_000 = 0; + } else { + func_84368140(var_s0); + } + } + } + + return 0; +} + +Gfx* func_84368560(Gfx* arg0) { + s32 i; + s32 j; + s32 k; + unk_D_843AA880* var_s4; + unk_D_843AA880_034* temp_s0; + Mtx* temp_v0; + Vec3f sp134; + Vtx* var_s0; + Mtx spF0; + Mtx spB0; + s16 var_s3; + UNUSED s32 pad; + + gDPPipeSync(arg0++); + gDPLoadTextureBlock_4b(arg0++, D_843920C0[0x49], G_IM_FMT_I, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD); + + var_s4 = &D_843AA880[0]; + for (i = 0; i < 4; i++, var_s4++) { + if (var_s4->unk_000 == 1) { + guScale(&spB0, var_s4->unk_00C, var_s4->unk_00C, var_s4->unk_00C); + temp_s0 = &var_s4->unk_034[0]; + + if (temp_s0->unk_0C.y > 0.0f) { + temp_v0 = func_80005F5C(sizeof(Mtx) * 1); + guTranslate(temp_v0, temp_s0->unk_0C.x, temp_s0->unk_0C.y, temp_s0->unk_0C.z); + guRotateRPY(&spF0, (temp_s0->unk_08 * -360.0f * var_s4->unk_006) / 6.2831854820251465, + (var_s4->unk_006 * 0x5A) + 0x5A, 0.0f); + guMtxCatL(&spF0, temp_v0, temp_v0); + guMtxCatL(&spB0, temp_v0, temp_v0); + + gSPMatrix(arg0++, temp_v0, G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPDisplayList(arg0++, D_843898F0); + gSPPopMatrix(arg0++, G_MTX_MODELVIEW); + } + + var_s4->unk_018 = func_80005F5C(sizeof(Vtx) * 30); + var_s0 = var_s4->unk_018; + + for (j = 0; j < 15; j++) { + func_84368080(temp_s0->unk_08, &sp134, temp_s0->unk_04, var_s4->unk_00C); + var_s3 = temp_s0->unk_0C.y + sp134.y; + if (var_s3 < 0) { + var_s3 = 0; + } + + var_s0->v.ob[0] = temp_s0->unk_0C.x + sp134.x; + var_s0->v.ob[1] = var_s3; + var_s0->v.ob[2] = temp_s0->unk_0C.z + sp134.z; + var_s0->v.cn[0] = var_s4->unk_008.r; + var_s0->v.cn[1] = var_s4->unk_008.g; + var_s0->v.cn[2] = var_s4->unk_008.b; + var_s0->v.cn[3] = temp_s0->unk_00; + var_s0++; + + func_84368080(temp_s0->unk_08 + M_PI_F, &sp134, temp_s0->unk_04, var_s4->unk_00C); + + var_s3 = temp_s0->unk_0C.y + sp134.y; + if (var_s3 < 0) { + var_s3 = 0; + } + var_s0->v.ob[0] = temp_s0->unk_0C.x + sp134.x; + var_s0->v.ob[1] = var_s3; + var_s0->v.ob[2] = temp_s0->unk_0C.z + sp134.z; + var_s0->v.cn[0] = var_s4->unk_008.r; + var_s0->v.cn[1] = var_s4->unk_008.g; + var_s0->v.cn[2] = var_s4->unk_008.b; + var_s0->v.cn[3] = temp_s0->unk_00; + var_s0++; + + temp_s0++; + } + + var_s0 = var_s4->unk_018; + + gSPDisplayList(arg0++, D_84389958); + + for (k = 0; k < 14; k++) { + gSPVertex(arg0++, var_s0, 4, 0); + gSP2Triangles(arg0++, 0, 2, 1, 0, 2, 3, 1, 0); + var_s0 += 2; + } + } + } + + return arg0; +} diff --git a/yamls/us/rom.yaml b/yamls/us/rom.yaml index 710f6b6..5797f1a 100644 --- a/yamls/us/rom.yaml +++ b/yamls/us/rom.yaml @@ -2207,7 +2207,8 @@ - [0x373E20, .data, fragments/62/fragment62_3502D0] - [0x373F50, .data, fragments/62/fragment62_3512D0] - [0x374040, .data, fragments/62/fragment62_351F20] - - [0x374170, data, fragments/62/fragment62_data] + - [0x374170, .data, fragments/62/fragment62_352570] + - [0x374270, data, fragments/62/fragment62_data] - [0x3759C0, .rodata, fragments/62/fragment62_2EC3C0] - [0x375A60, .rodata, fragments/62/fragment62_2F3CB0] @@ -2238,7 +2239,7 @@ - [0x377FE0, .rodata, fragments/62/fragment62_3502D0] - [0x378000, .rodata, fragments/62/fragment62_3512D0] - [0x378040, rodata, fragments/62/fragment62_rodata_378040] - - [0x378070, rodata, fragments/62/fragment62_rodata_378070] + - [0x378070, .rodata, fragments/62/fragment62_352570] - [0x3780B0, rodata, fragments/62/fragment62_rodata_3780B0] - [0x378140, rodata, fragments/62/fragment62_rodata_378140] - [0x378170, rodata, fragments/62/fragment62_rodata_378170] @@ -2267,7 +2268,8 @@ - {vram: 0x8439E680, type: .bss, name: fragments/62/fragment62_34F1A0} - {vram: 0x843A06A0, type: .bss, name: fragments/62/fragment62_3502D0} - {vram: 0x843A22C0, type: .bss, name: fragments/62/fragment62_3512D0} - - {vram: 0x843AA880, type: bss, name: fragments/62/fragment62_bss2} + - {vram: 0x843AA880, type: .bss, name: fragments/62/fragment62_352570} + - {vram: 0x843AB940, type: bss, name: fragments/62/fragment62_bss2} - name: fragment62_relocs type: code