0.2% that i was sitting on

This commit is contained in:
farisawan-2000 2021-02-25 09:35:28 -05:00
parent d7864015e1
commit eab666c7a9
7 changed files with 131 additions and 142 deletions

View File

@ -374,7 +374,7 @@ SECTIONS
END_NOLOAD(ovl1)
/* 0x800F61A0 07EC10-0AC900 [2DCF0] */
BEGIN_SEG(ovl2, 0x800F61A0) {
BEGIN_SEG(ovl2, 0x800F61A0) SUBALIGN(16) {
BUILD_DIR/src/ovl2/ovl2.o(.text);
BUILD_DIR/src/ovl2/ovl2_2.o(.text);
BUILD_DIR/src/ovl2/ovl2_3.o(.text);

View File

@ -1086,7 +1086,7 @@ void func_800A9864(u32 listIndex, u32 arg1, u32 arg2) {
// u32 *temp_v0 = D_800D00C4[listIndex >> 0x10 * 4 + ((listIndex & 0xFFFF) * 4)];
D_800E02D0[D_8004A7C4->objId] = listIndex;
temp_v0 = D_800D00C4[listIndex >> 0x10 * 4 + ((listIndex & 0xFFFF) * 4)];
temp_v0 = D_800D00C4[listIndex >> 0x10][listIndex & 0xFFFF];
// temp_v0 = *(D_800D00C4 + ((listIndex >> 0x10) * 4)) + ((listIndex & 0xFFFF) * 4);
if (temp_v0 != 0) {
gSegment4StartArray[D_8004A7C4->objId] = temp_v0;
@ -1108,6 +1108,7 @@ void func_800A9864(u32 listIndex, u32 arg1, u32 arg2) {
func_800A9648(temp_v0);
}
#else
void func_800A9864(u32 listIndex, u32 arg1, u32 arg2);
GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9864.s")
#endif
@ -1455,8 +1456,8 @@ void func_800AA2A0(void) {
func_800AA174();
}
void func_800AA2C8(void) {
func_800A9864();
void func_800AA2C8(s32 arg0, s32 arg1, s32 arg2) {
func_800A9864(arg0, arg1, arg2);
func_800AA174();
}

View File

@ -87,25 +87,22 @@ extern struct UNK_D_800D478C D_800D478C[];
// Almost matching
#ifdef MIPS_TO_C
void func_800FF64C(s32 arg0) {
u16 temp_a1;
struct UNK_D_800D478C *temp_a3;
struct UNK_D_8012BBF8_unk0 *temp_v1;
u16 temp_a1;
u32 phi_v0;
for (phi_v0 = 0; phi_v0 < D_8012B9B0; phi_v0++)
{
for (phi_v0 = 0; phi_v0 < D_8012B9B0; phi_v0++) {
temp_a1 = D_8012B9B8[phi_v0].unk8;
if (((temp_a1 & 0xC0) != 0) && (arg0 == D_8012B9B8[phi_v0].unkA)) {
if ((D_8012B9B8[phi_v0].unk8 & 0xC0) && (arg0 == D_8012B9B8[phi_v0].unkA)) {
temp_v1 = D_8012BBF8[phi_v0].unk0;
if (temp_v1 != 0) {
temp_a3 = &D_800D478C[arg0];
temp_v1->unk14 = temp_a3->unk0;
temp_v1->unk15 = temp_a3->unk1;
temp_v1->unk16 = temp_a3->unk2;
if ((temp_a1 & 0x40) != 0) {
temp_v1->unk18 = temp_a3->unk3;
temp_v1->unk19 = temp_a3->unk4;
temp_v1->unk1A = temp_a3->unk5;
temp_v1->unk14 = D_800D478C[arg0].unk0;
temp_v1->unk15 = D_800D478C[arg0].unk1;
temp_v1->unk16 = D_800D478C[arg0].unk2;
if (temp_a1 & 0x40) {
temp_v1->unk18 = D_800D478C[arg0].unk3;
temp_v1->unk19 = D_800D478C[arg0].unk4;
temp_v1->unk1A = D_800D478C[arg0].unk5;
}
}
}
@ -178,10 +175,10 @@ void func_800FF71C(struct SomeColorThing *arg0, u8 arg1, u8 arg2) {
#ifdef MIPS_TO_C
Failed to decompile function func_800FF9B4:
Unable to determine jump table for jr instruction.
Unable to determine jump table for jr instruction at ../kirby_decomp/asm/non_matchings/ovl2_6/func_800FF9B4.s line 327.
There must be a read of a variable in the same block as
the instruction, which has a name starting with "jtbl".
the instruction, which has a name starting with "jtbl"/"jpt_".
#else
GLOBAL_ASM("asm/non_matchings/ovl2_6/func_800FF9B4.s")
#endif
@ -206,18 +203,18 @@ void func_80100790(void *arg0) {
s32 temp_lo_2;
s32 temp_s6;
s32 temp_s6_2;
struct SomeColorThing *temp_s0;
u16 temp_t0;
u16 temp_t1;
u16 temp_v0;
u32 temp_s0_2;
u8 temp_t0_2;
u8 temp_t4;
void *temp_s0;
void *temp_s0_2;
void *temp_s1;
void *temp_s1_2;
void *temp_s3;
void *temp_v1;
void *phi_s0;
struct SomeColorThing *phi_s0;
f32 phi_f8;
f32 phi_f18;
s32 phi_s6;
@ -323,22 +320,21 @@ void *func_80100AC8(void *arg0) {
f32 temp_f12;
f32 temp_f14;
f32 temp_f2;
f32 temp_f6;
s16 temp_s1;
s32 temp_s6;
s32 temp_s7;
struct UNK_D_800D478C *temp_v1_2;
struct UNK_D_8012BBF8 *temp_s2;
struct UNK_D_8012BBF8_unk0 *temp_ret;
struct UNK_D_8012BBF8_unk0 *temp_v0_3;
u16 temp_a0;
u32 temp_s3;
u32 temp_v1;
u8 temp_t1;
u8 temp_t7;
void *temp_ret;
void *temp_s2;
u8 *temp_v1_3;
void *temp_s4;
void *temp_v0;
void *temp_v0_2;
void *temp_v1_2;
void *phi_s0;
struct UNK_D_8012B9B8 *phi_s0;
u32 phi_s3;
s16 phi_s1;
u32 phi_v1;
@ -355,10 +351,9 @@ void *func_80100AC8(void *arg0) {
temp_f0 = temp_v0->unk10 * 0.25f;
temp_s4 = (temp_s7 * 0x18) + &D_8012BB98;
temp_f2 = temp_v0->unk12 * 0.25f;
temp_f6 = temp_v0->unk8;
temp_v0 = temp_v0 + 8;
temp_s4->unk0 = temp_f6 * 0.5f;
temp_s4->unk4 = temp_v0->unk2 * 0.5f;
temp_v0_2 = temp_v0 + 8;
temp_s4->unk0 = temp_v0->unk8 * 0.5f;
temp_s4->unk4 = temp_v0_2->unk2 * 0.5f;
temp_f12 = temp_s4->unk0 * 0.5f;
temp_f14 = temp_s4->unk4 * 0.5f;
temp_s4->unk8 = temp_f0 - temp_f12;
@ -366,41 +361,38 @@ void *func_80100AC8(void *arg0) {
temp_s4->unk10 = temp_f0 + temp_f12;
temp_s4->unk14 = temp_f2 + temp_f14;
temp_v1 = D_8012B9B0;
phi_return = temp_v0;
phi_return = temp_v0_2;
if (temp_v1 != 0) {
phi_s0 = &D_8012B9B8;
phi_s0 = D_8012B9B8;
phi_s3 = 0;
phi_v1 = temp_v1;
phi_return_2 = temp_v0;
phi_return_2 = temp_v0_2;
loop_2:
if (temp_s6 == phi_s0->unk4) {
temp_s2 = (phi_s3 * 0x10) + &D_8012BBF8;
temp_s2 = &D_8012BBF8[phi_s3];
temp_ret = func_800AC954(arg0, 1, func_800A8C40(phi_s0->unk0));
temp_v0_2 = temp_ret;
temp_v0_3 = temp_ret;
temp_a0 = phi_s0->unk8;
temp_v0_2->unk20 = phi_s0->unkC + temp_s4->unk8;
temp_v0_2->unk24 = phi_s0->unkE + temp_s4->unkC;
temp_v0_2->unk28 = phi_s0->unk10;
temp_v0_2->unk2C = phi_s0->unk14;
temp_v0_3->unk20 = phi_s0->unkC + temp_s4->unk8;
temp_v0_3->unk24 = phi_s0->unkE + temp_s4->unkC;
temp_v0_3->unk28 = phi_s0->unk10;
temp_v0_3->unk2C = phi_s0->unk14;
if ((temp_a0 & 0x20) != 0) {
temp_v0_2->unk13 = temp_v0_2->unk13 | 2;
temp_v0_3->unk13 = temp_v0_3->unk13 | 2;
}
phi_s1_3 = 0;
if ((temp_a0 & 0xC0) != 0) {
temp_v1_2 = &D_800D478C + (phi_s0->unkA * 0xC);
temp_t7 = *temp_v1_2;
temp_v1_2 = temp_v1_2 + 2;
temp_v0_2->unk14 = temp_t7;
temp_v0_2->unk15 = temp_v1_2->unk-1;
temp_v0_2->unk17 = 0xFF;
temp_v0_2->unk16 = temp_v1_2->unk0;
temp_v1_2 = &D_800D478C[phi_s0->unkA];
temp_v1_3 = &temp_v1_2->unk2;
temp_v0_3->unk14 = temp_v1_2->unk0;
temp_v0_3->unk15 = temp_v1_3[-1];
temp_v0_3->unk17 = 0xFF;
temp_v0_3->unk16 = temp_v1_3->unk0;
if ((temp_a0 & 0x40) != 0) {
temp_t1 = temp_v1_2->unk1;
temp_v1_2 = temp_v1_2 + 3;
temp_v0_2->unk18 = temp_t1;
temp_v0_2->unk19 = temp_v1_2->unk-1;
temp_v0_2->unk1B = 0xFF;
temp_v0_2->unk1A = temp_v1_2->unk0;
temp_v0_3->unk18 = temp_v1_3[1];
temp_v0_3->unk19 = temp_v1_3[3].unk-1;
temp_v0_3->unk1B = 0xFF;
temp_v0_3->unk1A = temp_v1_3[3];
phi_s1_3 = 1;
} else {
phi_s1_3 = 0;
@ -409,24 +401,24 @@ loop_2:
}
}
}
if (((temp_a0 & 0x105) != 0) || (phi_s1_2 = phi_s1_3, (0.0f != phi_s0->unk18))) {
if (((temp_a0 & 0x105) != 0) || (phi_s1_2 = phi_s1_3, (phi_s0->unk18 != 0.0f))) {
temp_s1 = (phi_s1_3 | 4) & 0xFFFF;
phi_s1_2 = temp_s1;
if ((temp_a0 & 0x400) != 0) {
temp_v0_2->unkBA = 1;
temp_v0_2->unk5A = 1;
temp_v0_3->unkBA = 1;
temp_v0_3->unk5A = 1;
phi_s1_2 = (temp_s1 | 0x10) & 0xFFFF;
}
}
if (((temp_a0 & 0x200) != 0) || (phi_s1 = phi_s1_2, (0.0f != phi_s0->unk1C))) {
if (((temp_a0 & 0x200) != 0) || (phi_s1 = phi_s1_2, (phi_s0->unk1C != 0.0f))) {
phi_s1 = (phi_s1_2 | 8) & 0xFFFF;
}
temp_s2->unk0 = temp_v0_2;
temp_s2->unk0 = temp_v0_3;
temp_s2->unkC = temp_s7;
temp_s2->unkE = phi_s1;
temp_s2->unk8 = 0.0f;
temp_s2->unk4 = temp_v0_2->unk24;
temp_v0_2->unk3C = temp_s2;
temp_s2->unk4 = temp_v0_3->unk24;
temp_v0_3->unk3C = temp_s2;
phi_v1 = D_8012B9B0;
phi_return_2 = temp_ret;
}
@ -452,8 +444,7 @@ u32 func_80100DF8(s32 arg0) {
u32 i;
phi_v0 = D_80124740[arg0];
for (i = 0; i < D_8012B9B0; i++)
{
for (i = 0; i < D_8012B9B0; i++) {
if (phi_v0 == D_8012B9B8[i].unk4) {
return 1;
}
@ -490,34 +481,34 @@ f32 func_80100EE4(s32 arg0) {
f32 sp2C;
f32 sp28;
f32 sp24;
s32 sp1C;
u32 sp1C;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f0_5;
f32 temp_f0_6;
f32 temp_f0_7;
f32 temp_f12;
f32 temp_f12_2;
f32 temp_f14;
f32 temp_f16;
f32 temp_f18;
f32 temp_f18_2;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f8;
f32 temp_ret;
s32 temp_v0;
s32 temp_v1_2;
struct UNK_D_8012B9B8 *temp_v1;
u16 temp_a1;
u16 temp_a3;
u16 temp_t8;
u16 temp_v1_2;
u32 temp_t2;
u32 temp_v0;
void *temp_a2;
void *temp_v0_2;
void *temp_v1;
f32 phi_f14;
void *phi_a0;
struct UNK_D_8012BBF8 *phi_a0;
u32 phi_t2;
f32 phi_f2;
f32 phi_f2_2;
@ -535,11 +526,10 @@ f32 func_80100EE4(s32 arg0) {
f32 phi_return_3;
temp_f18 = D_800D7B20.unkC;
temp_f16 = D_800D7B20.unk0 - temp_f18;
temp_f0 = D_800D7B38.unkC;
sp40 = temp_f0 - temp_f18;
sp3C = D_800D7B38.unk10;
sp28 = temp_f16;
sp28 = D_800D7B20.unk0 - temp_f18;
sp24 = D_800D7B20.unk8 - D_800D7B20.unk14;
sp30 = atan2f(D_800D7B38.unk8 - D_800D7B38.unk14, D_800D7B38.unk0 - temp_f0);
sp2C = atan2f(sp24, sp28);
@ -559,11 +549,11 @@ f32 func_80100EE4(s32 arg0) {
temp_v0_2 = D_800D799C->unk3C;
temp_f18_2 = (sp30 - phi_f14) / (((temp_v0_2->unk20 * D_80128A3C) / 180.0f) * temp_v0_2->unk24);
sp38 = temp_f18_2;
temp_ret = atan2f(D_800D7B20.unk4 - D_800D7B20.unk10, sqrtf((sp28 * sp28) + (sp24 * sp24), phi_f14, 1));
temp_ret = atan2f(D_800D7B20.unk4 - D_800D7B20.unk10, sqrtf((sp28 * sp28) + (sp24 * sp24)));
sp34 = temp_ret / ((D_800D799C->unk3C->unk20 * D_80128A40) / 180.0f);
phi_return = temp_ret;
if (D_8012B9B0 != 0) {
phi_a0 = &D_8012BBF8;
phi_a0 = D_8012BBF8;
phi_t2 = 0;
phi_return_3 = temp_ret;
loop_8:
@ -571,15 +561,15 @@ loop_8:
phi_return_2 = phi_return_3;
if (temp_a2 != 0) {
temp_a3 = phi_a0->unkC;
temp_v1 = &D_8012B9B8 + (phi_t2 * 0x30);
temp_v1 = &D_8012B9B8[phi_t2];
temp_a1 = temp_v1->unk8;
if (((temp_a1 & 0xA) != 0) || (phi_return_2 = phi_return_3, (0.0f != temp_v1->unk1C))) {
temp_f12 = temp_v1->unk1C;
if (((temp_a1 & 0xA) != 0) || (phi_return_2 = phi_return_3, ((bitwise f32) temp_v1->unk1C != 0.0f))) {
temp_f12 = (bitwise f32) temp_v1->unk1C;
temp_f2 = phi_a0->unk4;
temp_f14 = (temp_a2->unk1E - 1) * temp_a2->unk2C;
phi_f2_4 = temp_f2;
phi_return_2 = phi_return_3;
if (0.0f != temp_f12) {
if (temp_f12 != 0.0f) {
phi_a0->unk8 = phi_a0->unk8 + temp_f12;
temp_f0_2 = phi_a0->unk8;
phi_a0->unk8 = temp_f0_2 - ((temp_f0_2 / temp_f14) * temp_f14);
@ -588,18 +578,18 @@ loop_8:
}
phi_f2_3 = phi_f2_4;
if ((temp_a1 & 8) != 0) {
phi_f2_3 = phi_f2_4 + ((&D_8012BB98 + (temp_a3 * 0x18))->unk4 * sp34 * temp_v1->unk2C);
phi_f2_3 = phi_f2_4 + ((&D_8012BB98 + (temp_a3 * 0x18))->unk4 * sp34 * (bitwise f32) temp_v1->unk2C);
}
phi_f2 = phi_f2_3;
if ((temp_a1 & 2) != 0) {
phi_f2 = phi_f2_3 + (sp3C * temp_v1->unk24);
phi_f2 = phi_f2_3 + (sp3C * (bitwise f32) temp_v1->unk24);
}
phi_f2_2 = phi_f2;
if ((phi_a0->unkE & 8) != 0) {
temp_f0_3 = phi_f2 - (&D_8012BB98 + (temp_a3 * 0x18))->unkC;
phi_v0_2 = 0;
phi_return_2 = temp_f0_3;
if (0.0f < temp_f0_3) {
if (temp_f0_3 > 0.0f) {
phi_v0_2 = 1;
phi_return_2 = (bitwise f32) 1;
}
@ -607,7 +597,7 @@ loop_8:
}
temp_a2->unk24 = phi_f2_2;
}
if (((temp_a1 & 5) != 0) || (0.0f != temp_v1->unk18)) {
if (((temp_a1 & 5) != 0) || ((bitwise f32) temp_v1->unk18 != 0.0f)) {
temp_t8 = temp_a2->unk1C;
temp_f8 = temp_t8;
phi_f8 = temp_f8;
@ -615,25 +605,25 @@ loop_8:
phi_f8 = temp_f8 + 4294967296.0f;
}
temp_f12_2 = phi_f8 * temp_a2->unk28;
temp_f0_4 = temp_a2->unk20 + temp_v1->unk18;
temp_f0_4 = temp_a2->unk20 + (bitwise f32) temp_v1->unk18;
phi_f0_3 = temp_f0_4;
phi_return_2 = temp_f0_4;
if ((temp_a1 & 1) != 0) {
temp_f0_4 = temp_f0_4 + (sp40 * temp_v1->unk20);
phi_f0_3 = temp_f0_4;
phi_return_2 = temp_f0_4;
temp_f0_5 = temp_f0_4 + (sp40 * (bitwise f32) temp_v1->unk20);
phi_f0_3 = temp_f0_5;
phi_return_2 = temp_f0_5;
}
phi_f0 = phi_f0_3;
if ((temp_a1 & 4) != 0) {
temp_f0_5 = phi_f0_3 + (*(&D_8012BB98 + (temp_a3 * 0x18)) * temp_f18_2 * temp_v1->unk28);
phi_f0 = temp_f0_5;
phi_return_2 = temp_f0_5;
temp_f0_6 = phi_f0_3 + (*(&D_8012BB98 + (temp_a3 * 0x18)) * temp_f18_2 * (bitwise f32) temp_v1->unk28);
phi_f0 = temp_f0_6;
phi_return_2 = temp_f0_6;
}
temp_v1_2 = phi_a0->unkE & 4;
phi_f0_2 = phi_f0;
if (temp_v1_2 != 0) {
temp_f2_2 = phi_f0 - (&D_8012BB98 + (temp_a3 * 0x18))->unk8;
if (0.0f < temp_f2_2) {
if (temp_f2_2 > 0.0f) {
phi_v0 = (temp_f2_2 / temp_f12_2) + 1;
} else {
phi_v0 = temp_f2_2 / temp_f12_2;
@ -645,9 +635,9 @@ loop_8:
phi_v0_3 = phi_v0 + 1;
}
}
temp_f0_6 = phi_f0 - (phi_v0_3 * temp_f12_2);
phi_f0_2 = temp_f0_6;
phi_return_2 = temp_f0_6;
temp_f0_7 = phi_f0 - (phi_v0_3 * temp_f12_2);
phi_f0_2 = temp_f0_7;
phi_return_2 = temp_f0_7;
}
temp_a2->unk20 = phi_f0_2;
}
@ -670,8 +660,7 @@ GLOBAL_ASM("asm/non_matchings/ovl2_6/func_80100EE4.s")
void func_8010133C(void) {
u32 i;
for (i = 0; i < 10; i++)
{
for (i = 0; i < 10; i++) {
D_8012BBF8[i].unk0 = NULL;
}
}

View File

@ -9525,3 +9525,4 @@ void func_80111ECC(void *arg0) {
#else
GLOBAL_ASM("asm/non_matchings/ovl2_6/func_80111ECC.s")
#endif

View File

@ -2644,7 +2644,7 @@ GLOBAL_ASM("asm/non_matchings/ovl2_7/func_801164D4.s")
extern const f32 D_80128D1C, D_80128D20, D_80128D24,D_80128D28;
s32 random_soft_s32_range(s32);
// i think the code is correct, but it needs shuffling (esp. that loop)
// loop doesnt pad enough bytes
#ifdef NON_MATCHING
void func_80116508(s32 *arg0) {
f32 temp_f0_2;
@ -2655,8 +2655,10 @@ void func_80116508(s32 *arg0) {
f32 temp_f2_3;
f32 temp_f30;
D_800E98E0[*arg0] = 0;
D_800EA6E0[*arg0] = gEntitiesPosYArray[*arg0];
u32 tmp = *arg0;
D_800EA6E0[tmp] = gEntitiesPosYArray[tmp];
D_800E98E0[tmp] = 0;
temp_f30 = D_80128D1C;
while (TRUE) {
if (random_soft_s32_range(2) != 0) {
@ -2664,19 +2666,19 @@ void func_80116508(s32 *arg0) {
} else {
D_800E3210[D_8004A7C4->objId] = -0.25f;
}
loop_4:
// temp_v0 = D_800E98E0[*arg0];
if (D_800E98E0[*arg0] == 0) {
f32 temp_f0 = gEntitiesPosYArray[*arg0] - D_800EA6E0[*arg0];
if (temp_f0 >= 15.0f) {
D_800E3210[D_8004A7C4->objId] = -0.25f;
} else if (temp_f0 <= -10.0f) {
while (TRUE) {
if (D_800E98E0[tmp] == 0) {
f32 temp_f0 = gEntitiesPosYArray[tmp] - D_800EA6E0[tmp];
if (temp_f0 >= 15.0f) {
D_800E3210[D_8004A7C4->objId] = -0.25f;
} else if (temp_f0 <= -10.0f) {
D_800E3210[D_8004A7C4->objId] = 0.25f;
}
func_8000B6BC(1);
goto loop_4;
}
func_8000B6BC(1);
continue;
} else break;
}
if (D_800E98E0[*arg0] == 1) {
if (D_800E98E0[tmp] == 1) {
D_800E3590[D_8004A7C4->objId] = 0.0f;
D_800E3050[D_8004A7C4->objId] = D_800E3590[D_8004A7C4->objId];
D_800E3AD0[D_8004A7C4->objId] = temp_f30;
@ -2718,10 +2720,10 @@ void func_80116508(s32 *arg0) {
temp_f2_2 = D_800E3E50[D_8004A7C4->objId];
D_800E3C90[D_8004A7C4->objId] = temp_f2_2;
D_800E3AD0[D_8004A7C4->objId] = temp_f2_2;
D_800E98E0[*arg0] = 0;
D_800E98E0[tmp] = 0;
continue;
}
if (D_800E98E0[*arg0] != 2) {
if (D_800E98E0[tmp] != 2) {
continue;
}
D_800E3590[D_8004A7C4->objId] = 0.0f;
@ -4045,24 +4047,20 @@ void func_80119168(void) {
#ifdef MIPS_TO_C
void func_80119188(void *arg0) {
u32 temp_v0;
if (D_800D6E20[D_800BE508] != 0) {
func_80118A60(0x3C);
} else {
func_80118A60(0x1E);
if (D_800D6E18 == 0) {
loop_3:
while (D_800D6E18 == 0) {
func_8000B6BC(1);
if (D_800D6E18 == 0) {
goto loop_3;
}
}
arg0->unk48 = &D_80114E80;
func_800AECC0(D_800D6B10);
func_800AED20(D_800D6B10);
temp_v0 = D_8004A7C4->objId;
func_800FD754(1, (bitwise f32) (bitwise s32) gEntitiesPosXArray[temp_v0], (bitwise f32) (bitwise s32) gEntitiesPosYArray[temp_v0], (bitwise f32) (bitwise s32) gEntitiesPosZArray[temp_v0]);
func_800FD754(1,
gEntitiesPosXArray[D_8004A7C4->objId],
gEntitiesPosYArray[D_8004A7C4->objId],
gEntitiesPosZArray[D_8004A7C4->objId]);
}
func_80008DA8(NULL);
}

View File

@ -16,6 +16,25 @@ extern f32 D_800E17D0[];
extern f32 D_800E6A10[];
extern u32 D_800E1D10[];
extern u32 gSegment4StartArray[];
extern Gfx* gDisplayListHeads[4];
extern u32 D_800DD8D0[];
extern u32 D_800E0650[];
extern Lights1 D_800BE548;
#define gSPDoubleLights1(pkt, lt)\
{\
gSPNumLights(pkt[0]++,NUMLIGHTS_1); \
gSPNumLights(pkt[1]++,NUMLIGHTS_1); \
gSPLight(pkt[0]++,&(lt).l[0],1); \
gSPLight(pkt[1]++,&(lt).l[0],1); \
gSPLight(pkt[0]++,&(lt).a,2); \
gSPLight(pkt[1]++,&(lt).a,2); \
}
extern f32 gEntitiesAngleXArray[];
extern f32 gEntitiesAngleYArray[];
extern f32 gEntitiesAngleZArray[];
@ -231,25 +250,6 @@ s32 func_801BC794_ovl7(s32 arg0) {
return idx;
}
extern u32 gSegment4StartArray[];
extern Gfx* gDisplayListHeads[4];
extern u32 D_800DD8D0[];
extern u32 D_800E0650[];
extern Lights1 D_800BE548;
#define gSPDoubleLights1(pkt, lt)\
{\
gSPNumLights(pkt[0]++,NUMLIGHTS_1); \
gSPNumLights(pkt[1]++,NUMLIGHTS_1); \
gSPLight(pkt[0]++,&(lt).l[0],1); \
gSPLight(pkt[1]++,&(lt).l[0],1); \
gSPLight(pkt[0]++,&(lt).a,2); \
gSPLight(pkt[1]++,&(lt).a,2); \
}
/**
* Full explanation of the non-matching cause in this function:
* - Some cases in this function do 2 gSPSetLights1's on D_800BE548.
@ -302,7 +302,7 @@ void func_801BC978_ovl7(s32 *arg0) {
gSPSetLights1(gDisplayListHeads[0]++, (*temp_a2));
}
func_800AB3A0(arg0);
goto fum1; fum1:;
// goto fum1; fum1:;
gSPSetLights1(gDisplayListHeads[0]++, D_800BE548);
break;
case 14:

View File

@ -3,7 +3,7 @@ import sys, os,binascii, struct
addrEnd = int(sys.argv[3], 16)
addrStart = int(sys.argv[2], 16)
specificOvl = "_ovl3"
specificOvl = "_ovl7"
bssLimit = 0