core2/code_BE2C0.c done

This commit is contained in:
Banjo Kazooie
2022-08-06 14:00:16 -05:00
parent cb8527ec59
commit bae0a1150e
12 changed files with 152 additions and 49 deletions

View File

@@ -1,8 +1,8 @@
#ifndef VARIABLES_H
#define VARIABLES_H
#define RARE_PI 3.141592654
#define BAD_PI 3.141592654
#define BAD_DTOR (BAD_PI/ 180.0)
#define M_TAU (2*M_PI)

View File

@@ -9,7 +9,7 @@
</mask>
<g mask="url(#anybadge_1)">
<path fill="#555" d="M0 0h44v20H0z"/>
<path fill="#64e000" d="M44 0h67v20H44z"/>
<path fill="#63e000" d="M44 0h67v20H44z"/>
<path fill="url(#b)" d="M0 0h111v20H0z"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
@@ -17,7 +17,7 @@
<text x="22.0" y="14">core2</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">77.7638%</text>
<text x="77.5" y="14">77.7638%</text>
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">77.9469%</text>
<text x="77.5" y="14">77.9469%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -17,7 +17,7 @@
<text x="75.0" y="14">Banjo-Kazooie (us.v10)</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">82.0338%</text>
<text x="183.5" y="14">82.0338%</text>
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">82.1388%</text>
<text x="183.5" y="14">82.1388%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -186,9 +186,9 @@ void func_8038FD9C(Actor *this){
}
this->marker->unk3E_1 = 0;
local->unk18[1] = 10 * sinf((((this->unk60 * local->unk6C) / 180.0) * RARE_PI));
this->unk1C[0] = 4.5 * cosf((((this->unk60 * local->unk6C) / 180.0) * RARE_PI));
this->unk1C[1] = 2*sinf((((this->unk60 * local->unk6C) / 180.0) * RARE_PI));
local->unk18[1] = 10 * sinf((((this->unk60 * local->unk6C) / 180.0) * BAD_PI));
this->unk1C[0] = 4.5 * cosf((((this->unk60 * local->unk6C) / 180.0) * BAD_PI));
this->unk1C[1] = 2*sinf((((this->unk60 * local->unk6C) / 180.0) * BAD_PI));
sp64[0] = local->unk3C[0] + local->unk24[0];
sp64[1] = local->unk3C[1] + local->unk24[1];
sp64[2] = local->unk3C[2] + local->unk24[2];

View File

@@ -92,7 +92,7 @@ void func_8038C7A8(Actor *this) {
local->unk18 += 3.3333333333333333 * sp44;
local->unk18 = (local->unk18 > 1.0) ? 1.0 : local->unk18;
func_80255FE4(this->position, local->unk0, local->unkC, local->unk18);
this->position[1] += 50.0f * sinf(local->unk18 * RARE_PI);
this->position[1] += 50.0f * sinf(local->unk18 * BAD_PI);
if (local->unk18 == 1.0) {
func_8038C6A0(this, 4);
}

View File

@@ -2,7 +2,7 @@
#include "functions.h"
#include "variables.h"
#define RARE_DTOR (RARE_PI/180.0)
#define BAD_DTOR (BAD_PI/180.0)
/* .data*/
extern u16 *D_80276CB8; //! ml_acosPrecValTblPtr
@@ -301,7 +301,7 @@ void ml_vec3f_pitch_rotate_copy(f32 dst[3], f32 src[3], f32 pitch)
f32 cos, sin;
f32 val;
pitch *= RARE_DTOR; // M_DTOR
pitch *= BAD_DTOR; // M_DTOR
cos = cosf(pitch);
sin = sinf(pitch);
@@ -318,7 +318,7 @@ void ml_vec3f_yaw_rotate_copy(f32 dst[3], f32 src[3], f32 yaw)
f32 cos, sin;
f32 val;
yaw *= RARE_DTOR; // M_DTOR
yaw *= BAD_DTOR; // M_DTOR
cos = cosf(yaw);
sin = sinf(yaw);
@@ -335,7 +335,7 @@ void ml_vec3f_roll_rotate_copy(f32 dst[3], f32 src[3], f32 roll)
f32 cos, sin;
f32 val;
roll *= RARE_DTOR; // M_DTOR
roll *= BAD_DTOR; // M_DTOR
cos = cosf(roll);
sin = sinf(roll);
@@ -403,8 +403,8 @@ void func_80256D0C(f32 val1, f32 val2, f32 x, f32 y, f32 z, f32 *dstX, f32 *dstY
{
f32 tmp;
val1 *= RARE_DTOR; // M_DTOR
val2 *= RARE_DTOR;
val1 *= BAD_DTOR; // M_DTOR
val2 *= BAD_DTOR;
tmp = y * sinf(val1) + cosf(val1) * z;
@@ -417,8 +417,8 @@ void func_80256E24(f32 dst[3], f32 theta, f32 phi, f32 x, f32 y, f32 z)
{
f32 tmp;
theta *= RARE_DTOR; // M_DTOR
phi *= RARE_DTOR;
theta *= BAD_DTOR; // M_DTOR
phi *= BAD_DTOR;
tmp = y * sinf(theta) + cosf(theta) * z;
@@ -571,12 +571,12 @@ void func_80257594(void)
f32 func_802575BC(f32 val)
{
return (sinf(val * RARE_PI + -RARE_PI/2) + 1) / 2.0;
return (sinf(val * BAD_PI + -BAD_PI/2) + 1) / 2.0;
}
f32 func_80257618(f32 val)
{
return sinf(val * RARE_PI / 2);
return sinf(val * BAD_PI / 2);
}
f32 func_80257658(f32 val)
@@ -699,12 +699,12 @@ f32 func_80257A6C(f32 val1, f32 val2)
{
f32 tmp = func_802588B0(val1, val2) / val2;
return (sinf(tmp * (2*RARE_PI)) + 1.0) / 2.0;
return (sinf(tmp * (2*BAD_PI)) + 1.0) / 2.0;
}
f32 func_80257AD4(f32 val1, f32 val2)
{
return sinf((func_802588B0(val1, val2) / val2) * (2*RARE_PI));
return sinf((func_802588B0(val1, val2) / val2) * (2*BAD_PI));
}
f32 ml_f_map(f32 a, f32 b, f32 c, f32 d, f32 e)
@@ -1019,12 +1019,12 @@ f32 func_80258780(f32 vec1[3], f32 vec2[3])
f32 ml_sin_deg(f32 angle_deg)
{
return sinf(angle_deg * RARE_DTOR);
return sinf(angle_deg * BAD_DTOR);
}
f32 ml_cos_deg(f32 angle_deg)
{
return cosf(angle_deg * RARE_DTOR);
return cosf(angle_deg * BAD_DTOR);
}
f32 mlNormalizeAngle(f32 angle)
@@ -1086,7 +1086,7 @@ int ml_abs_w(int arg0)
void func_802589E4(f32 dst[3], f32 yaw, f32 length)
{
yaw *= RARE_DTOR;
yaw *= BAD_DTOR;
dst[0] = sinf(yaw) * length;
dst[2] = cosf(yaw) * length;

View File

@@ -212,7 +212,7 @@ void func_802DD484(f32 dst[3], f32 arg1, f32 avg, f32 range) {
s32 i;
for(i = 0; i < 3; i++){
dst[i] = avg + range * (0.5 + 0.5 * sinf( (2.0*RARE_PI) * func_80257A44((arg1 + 2.0 * ((f32)i / 3.0)), 2.0f)));
dst[i] = avg + range * (0.5 + 0.5 * sinf( (2.0*BAD_PI) * func_80257A44((arg1 + 2.0 * ((f32)i / 3.0)), 2.0f)));
}
}

View File

@@ -2,31 +2,134 @@
#include "functions.h"
#include "variables.h"
extern f32 func_80255D70(f32);
#define LENGTH_SQ_VEC4F(v) (v[0]*v[0] + v[1]*v[1] + v[2]*v[2] + v[3]*v[3])
/* public */
/* .data */
extern s32 D_80371ED0[3];
/* .code */
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BE2C0/func_80345250.s")
//vec4f_copy
void func_80345250(f32 dst[4], f32 src[4]){
dst[0] = src[0];
dst[1] = src[1];
dst[2] = src[2];
dst[3] = src[3];
}
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BE2C0/func_80345274.s")
void func_80345274(f32 arg0[4], f32 arg1[3][3]) {
f32 var_f18;
f32 sp40;
f32 sp3C;
f32 sp38;
f32 temp_f12;
f32 temp_f2;
f32 temp_f20;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 temp_f0_2;
f32 temp_f12_2;
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BE2C0/func_80345434.s")
if ((arg0[0] == 0.0f) && (arg0[1] == 0.0f) && (arg0[2] == 0.0f) && (arg0[3] == 0.0f)) {
var_f18 = 2.0f;
} else {
var_f18 = 2.0 / LENGTH_SQ_VEC4F(arg0);
}
temp_f12 = arg0[0] * var_f18;
temp_f2 = arg0[1] * var_f18;
temp_f20 = arg0[2] * var_f18;
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BE2C0/func_803454D0.s")
sp40 = temp_f12 * arg0[3];
sp3C = temp_f2 * arg0[3];
sp38 = temp_f20 * arg0[3];
sp28 = temp_f12 * arg0[0];
sp24 = temp_f2 * arg0[0];
sp20 = temp_f20 * arg0[0];
sp1C = temp_f2 * arg0[1];
temp_f12_2 = temp_f20 * arg0[1];
temp_f0_2 = temp_f20 * arg0[2];
arg1[0][0] = 1.0 - (sp1C + temp_f0_2);
arg1[0][1] = sp24 + sp38;
arg1[0][2] = sp20 - sp3C;
arg1[1][0] = sp24 - sp38;
arg1[1][1] = 1.0 - (sp28 + temp_f0_2);
arg1[1][2] = temp_f12_2 + sp40;
arg1[2][0] = sp20 + sp3C;
arg1[2][1] = temp_f12_2 - sp40;
arg1[2][2] = 1.0 - (sp28 + sp1C);
}
bool func_80345434(f32 arg0[4]){
return ((arg0[0] == 0.0f)
&& (arg0[1] == 0.0f)
&& (arg0[2] == 0.0f)
&& (arg0[3] == 1.0f));
}
bool func_803454D0(f32 arg0[4]) {
return (((0.0f <= arg0[0]) ? arg0[0] : - arg0[0]) < 0.01)
&& (((0.0f <= arg0[1]) ? arg0[1] : - arg0[1]) < 0.01)
&& (((0.0f <= arg0[1]) ? arg0[1] : - arg0[1]) < 0.01)
&& (((0.0f <= arg0[3]) ? arg0[3] : - arg0[3]) < 1.01)
&& (((0.0f <= arg0[3]) ? arg0[3] : - arg0[3]) > 0.99);
}
void func_80345630(f32 arg0[4]){
arg0[0] = arg0[1] = arg0[2] = 0.0f;
arg0[3] = 1.0f;
}
void func_80345650(f32[4], f32[4], f32[4], f32);
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_BE2C0/func_80345650.s")
void func_80345650(f32 arg0[4], f32 arg1[4], f32 arg2[4], f32 arg3) {
f32 temp_f12;
f32 sp48;
f32 sp44;
f32 sp40;
f32 sp3C;
temp_f12 = (arg1[0]*arg2[0]) + (arg1[1]*arg2[1]) + (arg1[2]*arg2[2]) + (arg1[3]*arg2[3]);
if (0.00001 < (1.0 + temp_f12)) {
if (0.00001 < (1.0 - temp_f12)) {
sp3C = (BAD_PI/180.0) * func_80255D70(temp_f12);
sp40 = sinf(sp3C);
if (0.0f != sp40) {
sp48 = sinf((1.0 - arg3) * sp3C) / sp40;
sp48 = sp48;
sp44 = sinf(arg3 * sp3C) / sp40;
} else {
sp44 = arg3;
sp48 = 1.0 - arg3;
}
} else {
sp44 = arg3;
sp48 = 1.0 - arg3;
}
arg0[0] = sp48*arg1[0] + sp44*arg2[0];
arg0[1] = sp48*arg1[1] + sp44*arg2[1];
arg0[2] = sp48*arg1[2] + sp44*arg2[2];
arg0[3] = sp48*arg1[3] + sp44*arg2[3];
}
else{
arg0[0] = -arg1[1];
arg0[1] = arg1[0];
arg0[2] = -arg1[3];
arg0[3] = arg1[2];
sp48 = sinf((1.0 - arg3) * (BAD_PI/2.0f));
sp44 = sinf(arg3 * (BAD_PI/2.0f));
arg0[0] = sp48*arg1[0] + sp44*arg0[0];
arg0[1] = sp48*arg1[1] + sp44*arg0[1];
arg0[2] = sp48*arg1[2] + sp44*arg0[2];
}
}
void func_803458E4(f32 arg0[4], f32 arg1[4], f32 arg2[4], f32 arg3) {
f32 var_f0;
@@ -57,7 +160,6 @@ void func_803458E4(f32 arg0[4], f32 arg1[4], f32 arg2[4], f32 arg3) {
}
void func_80345A44(f32 arg0[4], f32 arg1[4][4]) {
f32 temp_f0;
f32 temp_f2;
@@ -95,7 +197,6 @@ void func_80345A44(f32 arg0[4], f32 arg1[4][4]) {
}
}
void func_80345C78(s32 arg0, f32 arg1[3]) {
mlMtxIdent();
mlMtxRotYaw(arg1[1]);
@@ -104,7 +205,6 @@ void func_80345C78(s32 arg0, f32 arg1[3]) {
func_80345A44(arg0, func_80251488());
}
void func_80345CD4(f32 arg0[4], f32 arg1[4]){
mlMtxIdent();
mlMtxRotRoll(arg1[2]);

View File

@@ -92,20 +92,20 @@ void func_8034E8E4(Struct73s *arg0, BKModel *arg1, s32 arg2) {
sp38 = time_getDelta();
arg0->unk4 += sp38;
cos = cosf(arg0->unk4 * 0.2 * RARE_PI);
sin = sinf(arg0->unk4 * 0.08 * RARE_PI);
cos = cosf(arg0->unk4 * 0.2 * BAD_PI);
sin = sinf(arg0->unk4 * 0.08 * BAD_PI);
sp30[0] = (sin*100.0f + 150.0f*cos)*0.8;
sin = sinf(arg0->unk4 * 0.5 * RARE_PI);
cos = cosf(arg0->unk4 * 0.22 * RARE_PI);
sin = sinf(arg0->unk4 * 0.5 * BAD_PI);
cos = cosf(arg0->unk4 * 0.22 * BAD_PI);
sp30[1] = (cos* 100.0f + 50.0f*sin)*0.8;
arg0->d_tc[0] = (sp30[0] >= 0.0) ? sp30[0] + 0.5 : sp30[0] - 0.5;
arg0->d_tc[1] = (sp30[1] >= 0.0) ? sp30[1] + 0.5 : sp30[1] - 0.5;
cos = cosf(arg0->unk4 * 0.5 * RARE_PI);
sin = sinf(arg0->unk4 * 0.11 * RARE_PI);
cos = cosf(arg0->unk4 * 0.5 * BAD_PI);
sin = sinf(arg0->unk4 * 0.11 * BAD_PI);
sp28 = sin*(arg0->unk8 * 0.25) + (arg0->unk8* 0.75)*cos;
if (arg0->unk14 < arg0->unk1C) {

View File

@@ -95,9 +95,9 @@ void func_80352114(Struct_core2_CB050_0 *arg0, s32 arg1, f32 arg2) {
}
arg0->unk6C = FALSE;
}
arg0->unk28[1] = sinf(((arg0->unk64 * arg0->unk0) / 180.0) * RARE_PI) * 10.0f;
arg0->unk4[0] = cosf(((arg0->unk64 * arg0->unk0) / 180.0) * RARE_PI) * 4.5;
arg0->unk4[1] = sinf(((arg0->unk64 * arg0->unk0) / 180.0) * RARE_PI) * 2;
arg0->unk28[1] = sinf(((arg0->unk64 * arg0->unk0) / 180.0) * BAD_PI) * 10.0f;
arg0->unk4[0] = cosf(((arg0->unk64 * arg0->unk0) / 180.0) * BAD_PI) * 4.5;
arg0->unk4[1] = sinf(((arg0->unk64 * arg0->unk0) / 180.0) * BAD_PI) * 2;
if (map_get() == MAP_22_CC_INSIDE_CLANKER) {
sp40[0] = arg0->unk4C[0];
sp40[1] = arg0->unk4C[1] + 1000.0f;

View File

@@ -349,7 +349,7 @@ segments:
- [0xB9770, c, code_B9770]
- [0xBD100, c, code_BD100]
- [0xBDCC0, c, code_BDCC0] #DONE
- [0xBE2C0, c, code_BE2C0]
- [0xBE2C0, c, code_BE2C0] #DONE
- [0xBEF20, c, code_BEF20]
- [0xC0B80, c, code_C0B80] #DONE
- [0xC0CF0, c, code_C0CF0] #DONE
@@ -767,7 +767,7 @@ segments:
- [0xF2000, .rodata, code_B6CE0]
- [0xF2030, bin, data_F2030]
- [0xF2110, .rodata, code_BDCC0]
- [0xF2130, bin, data_F2130]
- [0xF2130, .rodata, code_BE2C0]
- [0xF2170, .rodata, code_BEF20]
- [0xF21B0, bin, data_F21B0]
- [0xF21C0, .rodata, rand]

View File

@@ -454,6 +454,9 @@ D_80378F64 = 0x80378F64;
D_80378F68 = 0x80378F68;
D_80379080 = 0x80379080;
D_80379084 = 0x80379084;
D_803790C0 = 0x803790C0;
D_803790C8 = 0x803790C8;
D_803790D0 = 0x803790D0;
D_80379308 = 0x80379308;
D_80379318 = 0x80379318;
D_80379328 = 0x80379328;