From a2940dde6b06975a59af15242e9b6063469a5ad9 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 21 Feb 2022 17:51:29 +1000 Subject: [PATCH] Decompile quaternion0f096ca0 --- src/game/bondbike.c | 28 +++++----- src/game/bondmove.c | 14 +++-- src/game/game_096ca0.c | 99 ++++++++-------------------------- src/game/menu.c | 20 +++---- src/game/player.c | 31 +++++------ src/game/propobj.c | 4 +- src/include/game/game_096ca0.h | 8 +-- src/lib/model.c | 26 +++++---- 8 files changed, 81 insertions(+), 149 deletions(-) diff --git a/src/game/bondbike.c b/src/game/bondbike.c index f1d6f9d3a..abb5105f4 100644 --- a/src/game/bondbike.c +++ b/src/game/bondbike.c @@ -1565,15 +1565,11 @@ void bbikeTick(void) Mtxf sp164; Mtxf sp124; Mtxf spe4; - u32 stack3; - struct coord spd4; - u32 stack4; - struct coord spc4; + f32 spd4[4]; + f32 spc4[4]; f32 spb4[4]; - u32 stack5; - struct coord spa4; - u32 stack6; - struct coord sp94; + f32 spa4[4]; + f32 sp94[4]; f32 sp84[4]; struct coord pos; f32 breathing; @@ -1700,10 +1696,10 @@ void bbikeTick(void) mtx3ToMtx4(obj->realrot, &sp124); mtx00015f04(1.0f / obj->model->scale, &sp124); mtx4LoadYRotation(hoverpropGetTurnAngle(obj), &spe4); - func0f097044(&spe4, &spd4); - func0f097044(&sp124, &spc4); - func0f0976c0(&spc4, &spd4); - func0f0972b8(&spd4, &spc4, 0.8f, spb4); + func0f097044(&spe4, spd4); + func0f097044(&sp124, spc4); + func0f0976c0(spc4, spd4); + func0f0972b8(spd4, spc4, 0.8f, spb4); func0f096ed4(spb4, &sp124); mtx4MultMtx4InPlace(&sp124, &sp164); @@ -1731,10 +1727,10 @@ void bbikeTick(void) -1, 0, 0, 0, NULL, -1, NULL, -1, -1, -1, -1); } - func0f097044(&g_Vars.currentplayer->bondentermtx, &spa4); - func0f097044(&sp164, &sp94); - func0f0976c0(&sp94, &spa4); - func0f0972b8(&spa4, &sp94, 1.0f - g_Vars.currentplayer->bondentert2, sp84); + func0f097044(&g_Vars.currentplayer->bondentermtx, spa4); + func0f097044(&sp164, sp94); + func0f0976c0(sp94, spa4); + func0f0972b8(spa4, sp94, 1.0f - g_Vars.currentplayer->bondentert2, sp84); func0f096ed4(sp84, &sp164); } diff --git a/src/game/bondmove.c b/src/game/bondmove.c index e2c658b64..26bd2f604 100644 --- a/src/game/bondmove.c +++ b/src/game/bondmove.c @@ -2067,10 +2067,8 @@ void bmoveUpdateHead(f32 arg0, f32 arg1, f32 arg2, Mtxf *arg3, f32 arg4) f32 sp244 = 0; Mtxf sp180; Mtxf sp116; - u32 stack; - struct coord sp100; - u32 stack2; - struct coord sp84; + f32 sp100[4]; + f32 sp84[4]; f32 sp68[4]; if (g_Vars.currentplayer->isdead == false) { @@ -2106,10 +2104,10 @@ void bmoveUpdateHead(f32 arg0, f32 arg1, f32 arg2, Mtxf *arg3, f32 arg4) mtx4MultMtx4InPlace(&sp116, &sp180); if (arg3) { - func0f097044(&sp180, &sp100); - func0f097044(arg3, &sp84); - func0f0976c0(&sp100, &sp84); - func0f0972b8(&sp100, &sp84, arg4, sp68); + func0f097044(&sp180, sp100); + func0f097044(arg3, sp84); + func0f0976c0(sp100, sp84); + func0f0972b8(sp100, sp84, arg4, sp68); func0f096ed4(sp68, &sp180); } diff --git a/src/game/game_096ca0.c b/src/game/game_096ca0.c index 0537f4a27..09176c6ed 100644 --- a/src/game/game_096ca0.c +++ b/src/game/game_096ca0.c @@ -19,85 +19,28 @@ const u32 var7f1ab88c[] = {0x00000000}; u32 var8006afa0 = 0x00000001; u32 var8006afa4 = 0x00000002; +void quaternion0f096ca0(struct coord *angle, f32 quat[4]) +{ + f32 cosx = cosf(angle->f[0] * 0.5f); + f32 sinx = sinf(angle->f[0] * 0.5f); + f32 cosy = cosf(angle->f[1] * 0.5f); + f32 siny = sinf(angle->f[1] * 0.5f); + f32 cosz = cosf(angle->f[2] * 0.5f); + f32 sinz = sinf(angle->f[2] * 0.5f); + + f32 cosx_cosy = cosx * cosy; + f32 cosx_siny = cosx * siny; + f32 sinx_cosy = sinx * cosy; + f32 sinx_siny = sinx * siny; + + quat[0] = cosx_cosy * cosz + sinx_siny * sinz; + quat[1] = sinx_cosy * cosz - cosx_siny * sinz; + quat[2] = cosx_siny * cosz + sinx_cosy * sinz; + quat[3] = cosx_cosy * sinz - sinx_siny * cosz; +} + GLOBAL_ASM( -glabel func0f096ca0 -/* f096ca0: 27bdffc0 */ addiu $sp,$sp,-64 -/* f096ca4: f7b40018 */ sdc1 $f20,0x18($sp) -/* f096ca8: afbf0024 */ sw $ra,0x24($sp) -/* f096cac: afb00020 */ sw $s0,0x20($sp) -/* f096cb0: afa50044 */ sw $a1,0x44($sp) -/* f096cb4: 3c013f00 */ lui $at,0x3f00 -/* f096cb8: 4481a000 */ mtc1 $at,$f20 -/* f096cbc: c4840000 */ lwc1 $f4,0x0($a0) -/* f096cc0: 00808025 */ or $s0,$a0,$zero -/* f096cc4: 46142302 */ mul.s $f12,$f4,$f20 -/* f096cc8: 0c0068f4 */ jal cosf -/* f096ccc: 00000000 */ nop -/* f096cd0: e7a0003c */ swc1 $f0,0x3c($sp) -/* f096cd4: c6060000 */ lwc1 $f6,0x0($s0) -/* f096cd8: 46143302 */ mul.s $f12,$f6,$f20 -/* f096cdc: 0c0068f7 */ jal sinf -/* f096ce0: 00000000 */ nop -/* f096ce4: e7a00038 */ swc1 $f0,0x38($sp) -/* f096ce8: c6080004 */ lwc1 $f8,0x4($s0) -/* f096cec: 46144302 */ mul.s $f12,$f8,$f20 -/* f096cf0: 0c0068f4 */ jal cosf -/* f096cf4: 00000000 */ nop -/* f096cf8: e7a00034 */ swc1 $f0,0x34($sp) -/* f096cfc: c60a0004 */ lwc1 $f10,0x4($s0) -/* f096d00: 46145302 */ mul.s $f12,$f10,$f20 -/* f096d04: 0c0068f7 */ jal sinf -/* f096d08: 00000000 */ nop -/* f096d0c: e7a00030 */ swc1 $f0,0x30($sp) -/* f096d10: c6040008 */ lwc1 $f4,0x8($s0) -/* f096d14: 46142302 */ mul.s $f12,$f4,$f20 -/* f096d18: 0c0068f4 */ jal cosf -/* f096d1c: 00000000 */ nop -/* f096d20: c6060008 */ lwc1 $f6,0x8($s0) -/* f096d24: e7a0002c */ swc1 $f0,0x2c($sp) -/* f096d28: 46143302 */ mul.s $f12,$f6,$f20 -/* f096d2c: 0c0068f7 */ jal sinf -/* f096d30: 00000000 */ nop -/* f096d34: c7a8003c */ lwc1 $f8,0x3c($sp) -/* f096d38: c7aa0034 */ lwc1 $f10,0x34($sp) -/* f096d3c: c7b40038 */ lwc1 $f20,0x38($sp) -/* f096d40: c7a40030 */ lwc1 $f4,0x30($sp) -/* f096d44: 460a4082 */ mul.s $f2,$f8,$f10 -/* f096d48: c7b2002c */ lwc1 $f18,0x2c($sp) -/* f096d4c: 8fa20044 */ lw $v0,0x44($sp) -/* f096d50: 4604a402 */ mul.s $f16,$f20,$f4 -/* f096d54: 00000000 */ nop -/* f096d58: 46121182 */ mul.s $f6,$f2,$f18 -/* f096d5c: 00000000 */ nop -/* f096d60: 46008202 */ mul.s $f8,$f16,$f0 -/* f096d64: 46083280 */ add.s $f10,$f6,$f8 -/* f096d68: e44a0000 */ swc1 $f10,0x0($v0) -/* f096d6c: c7a40034 */ lwc1 $f4,0x34($sp) -/* f096d70: c7a80030 */ lwc1 $f8,0x30($sp) -/* f096d74: c7a6003c */ lwc1 $f6,0x3c($sp) -/* f096d78: 4604a382 */ mul.s $f14,$f20,$f4 -/* f096d7c: 00000000 */ nop -/* f096d80: 46083302 */ mul.s $f12,$f6,$f8 -/* f096d84: 00000000 */ nop -/* f096d88: 46127282 */ mul.s $f10,$f14,$f18 -/* f096d8c: 00000000 */ nop -/* f096d90: 46006102 */ mul.s $f4,$f12,$f0 -/* f096d94: 46045181 */ sub.s $f6,$f10,$f4 -/* f096d98: 46126202 */ mul.s $f8,$f12,$f18 -/* f096d9c: 00000000 */ nop -/* f096da0: 46007282 */ mul.s $f10,$f14,$f0 -/* f096da4: e4460004 */ swc1 $f6,0x4($v0) -/* f096da8: 46001182 */ mul.s $f6,$f2,$f0 -/* f096dac: 460a4100 */ add.s $f4,$f8,$f10 -/* f096db0: 46128202 */ mul.s $f8,$f16,$f18 -/* f096db4: e4440008 */ swc1 $f4,0x8($v0) -/* f096db8: 46083281 */ sub.s $f10,$f6,$f8 -/* f096dbc: e44a000c */ swc1 $f10,0xc($v0) -/* f096dc0: 8fbf0024 */ lw $ra,0x24($sp) -/* f096dc4: 8fb00020 */ lw $s0,0x20($sp) -/* f096dc8: d7b40018 */ ldc1 $f20,0x18($sp) -/* f096dcc: 03e00008 */ jr $ra -/* f096dd0: 27bd0040 */ addiu $sp,$sp,0x40 +glabel func0f096dd4 /* f096dd4: 3c013f00 */ lui $at,0x3f00 /* f096dd8: 44812000 */ mtc1 $at,$f4 /* f096ddc: 27bdffe0 */ addiu $sp,$sp,-32 diff --git a/src/game/menu.c b/src/game/menu.c index 0d86f83c6..ae1a44bc6 100644 --- a/src/game/menu.c +++ b/src/game/menu.c @@ -3866,7 +3866,7 @@ glabel var7f1b3c40pf /* f0f4a80: e7b00294 */ swc1 $f16,0x294($sp) /* f0f4a84: c6060528 */ lwc1 $f6,0x528($s0) /* f0f4a88: e7ae02d0 */ swc1 $f14,0x2d0($sp) -/* f0f4a8c: 0fc25af0 */ jal func0f096ca0 +/* f0f4a8c: 0fc25af0 */ jal quaternion0f096ca0 /* f0f4a90: e7a60298 */ swc1 $f6,0x298($sp) /* f0f4a94: c6040548 */ lwc1 $f4,0x548($s0) /* f0f4a98: 02202025 */ move $a0,$s1 @@ -3875,7 +3875,7 @@ glabel var7f1b3c40pf /* f0f4aa4: c612054c */ lwc1 $f18,0x54c($s0) /* f0f4aa8: e7b20294 */ swc1 $f18,0x294($sp) /* f0f4aac: c6080550 */ lwc1 $f8,0x550($s0) -/* f0f4ab0: 0fc25af0 */ jal func0f096ca0 +/* f0f4ab0: 0fc25af0 */ jal quaternion0f096ca0 /* f0f4ab4: e7a80298 */ swc1 $f8,0x298($sp) /* f0f4ab8: c7ae02d0 */ lwc1 $f14,0x2d0($sp) /* f0f4abc: 27b1029c */ addiu $s1,$sp,0x29c @@ -5475,7 +5475,7 @@ glabel var7f1b2948 /* f0f4344: e7aa0294 */ swc1 $f10,0x294($sp) /* f0f4348: c6060528 */ lwc1 $f6,0x528($s0) /* f0f434c: e7ae02d0 */ swc1 $f14,0x2d0($sp) -/* f0f4350: 0fc25b28 */ jal func0f096ca0 +/* f0f4350: 0fc25b28 */ jal quaternion0f096ca0 /* f0f4354: e7a60298 */ swc1 $f6,0x298($sp) /* f0f4358: c6080548 */ lwc1 $f8,0x548($s0) /* f0f435c: 02202025 */ or $a0,$s1,$zero @@ -5484,7 +5484,7 @@ glabel var7f1b2948 /* f0f4368: c604054c */ lwc1 $f4,0x54c($s0) /* f0f436c: e7a40294 */ swc1 $f4,0x294($sp) /* f0f4370: c60a0550 */ lwc1 $f10,0x550($s0) -/* f0f4374: 0fc25b28 */ jal func0f096ca0 +/* f0f4374: 0fc25b28 */ jal quaternion0f096ca0 /* f0f4378: e7aa0298 */ swc1 $f10,0x298($sp) /* f0f437c: c7ae02d0 */ lwc1 $f14,0x2d0($sp) /* f0f4380: 27b1029c */ addiu $s1,$sp,0x29c @@ -7084,7 +7084,7 @@ glabel var7f1b2948 /* f0f0e88: e7aa02bc */ swc1 $f10,0x2bc($sp) /* f0f0e8c: c6260528 */ lwc1 $f6,0x528($s1) /* f0f0e90: e7ae02f8 */ swc1 $f14,0x2f8($sp) -/* f0f0e94: 0fc2530c */ jal func0f096ca0 +/* f0f0e94: 0fc2530c */ jal quaternion0f096ca0 /* f0f0e98: e7a602c0 */ swc1 $f6,0x2c0($sp) /* f0f0e9c: c6280548 */ lwc1 $f8,0x548($s1) /* f0f0ea0: 02002025 */ or $a0,$s0,$zero @@ -7093,7 +7093,7 @@ glabel var7f1b2948 /* f0f0eac: c624054c */ lwc1 $f4,0x54c($s1) /* f0f0eb0: e7a402bc */ swc1 $f4,0x2bc($sp) /* f0f0eb4: c62a0550 */ lwc1 $f10,0x550($s1) -/* f0f0eb8: 0fc2530c */ jal func0f096ca0 +/* f0f0eb8: 0fc2530c */ jal quaternion0f096ca0 /* f0f0ebc: e7aa02c0 */ swc1 $f10,0x2c0($sp) /* f0f0ec0: c7ae02f8 */ lwc1 $f14,0x2f8($sp) /* f0f0ec4: 27b002c4 */ addiu $s0,$sp,0x2c4 @@ -8005,7 +8005,7 @@ glabel var7f1b2948 // f32 sp2f8; // s32 sp2f4; // f32 sp2d0; -// struct coord sp2bc; +// f32 sp2bc[4]; // struct coord sp2ac; // f32 sp29c; // struct coord sp290; @@ -8280,14 +8280,14 @@ glabel var7f1b2948 // sp290.y = thing->unk524; // sp290.z = thing->unk528; // -// func0f096ca0(&sp290, &sp2bc); +// quaternion0f096ca0(&sp290, sp2bc); // // sp290.x = thing->unk548; // sp290.y = thing->unk54c; // sp290.z = thing->unk550; // -// func0f096ca0(&sp290, &sp2ac); -// func0f0972b8(&sp2bc, &sp2ac, sp2d0, &sp29c); +// quaternion0f096ca0(&sp290, &sp2ac); +// func0f0972b8(sp2bc, &sp2ac, sp2d0, &sp29c); // func0f096ed4(&sp29c, &sp350); // } else { // sp398.x = thing->unk520 = thing->unk548; diff --git a/src/game/player.c b/src/game/player.c index 3ba23a5cc..c710d497f 100644 --- a/src/game/player.c +++ b/src/game/player.c @@ -2114,10 +2114,8 @@ void playerTickCutscene(bool arg0) f32 sp104; Mtxf spc4; Mtxf sp84; - u32 stack1; - struct coord sp74; - u32 stack2; - struct coord sp64; + f32 sp74[4]; + f32 sp64[4]; f32 sp54[4]; if (arg0) { @@ -2209,10 +2207,10 @@ void playerTickCutscene(bool arg0) mtx00016d58(&sp84, 0, 0, 0, -g_Vars.bond->bond2.unk1c.x, -g_Vars.bond->bond2.unk1c.y, -g_Vars.bond->bond2.unk1c.z, g_Vars.bond->bond2.unk28.x, g_Vars.bond->bond2.unk28.y, g_Vars.bond->bond2.unk28.z); - func0f097044(&spc4, &sp74); - func0f097044(&sp84, &sp64); - func0f0976c0(&sp64, &sp74); - func0f0972b8(&sp74, &sp64, sp104, sp54); + func0f097044(&spc4, sp74); + func0f097044(&sp84, sp64); + func0f0976c0(sp64, sp74); + func0f0972b8(sp74, sp64, sp104, sp54); func0f096ed4(sp54, &sp11c); up.x = sp11c.m[1][0]; @@ -3977,13 +3975,12 @@ void playerTick(bool arg0) Mtxf sp1fc; Mtxf sp1bc; Mtxf sp17c; - f32 fVar20; + f32 targetspeed; f32 sp174; f32 sp15c[6]; f32 sp14c[4]; f32 sp13c[4]; - f32 targetspeed; - struct coord sp12c; + f32 sp12c[4]; f32 prevspeed; f32 sp11c[3]; bool explode = false; @@ -4078,10 +4075,10 @@ void playerTick(bool arg0) sp174 = -stickx * g_Vars.lvupdate240f * 0.00025f; #endif - fVar20 = sqrtf(sp2ac.f[0] * sp2ac.f[0] + sp2ac.f[2] * sp2ac.f[2]); + f20 = sqrtf(sp2ac.f[0] * sp2ac.f[0] + sp2ac.f[2] * sp2ac.f[2]); - sp2ac.x /= fVar20; - sp2ac.z /= fVar20; + sp2ac.x /= f20; + sp2ac.z /= f20; f20 = sinf(fVar22); @@ -4155,8 +4152,8 @@ void playerTick(bool arg0) projectile->speed.z = (projectile->speed.z * newspeed) / prevspeed; mtx3ToMtx4(sp2b8, &sp1bc); - func0f097044(&sp1bc, &sp12c); - func0f097738(sp13c, sp12c.f, sp11c); + func0f097044(&sp1bc, sp12c); + func0f097738(sp13c, sp12c, sp11c); func0f096ed4(sp11c, &sp17c); mtx4ToMtx3(&sp17c, sp2b8); @@ -4617,7 +4614,7 @@ void playerTick(bool arg0) if (var8007074c) { s8 contpad1 = optionsGetContpadNum1(g_Vars.currentplayerstats->mpindex); - if (lvIsPaused() == false + if (!lvIsPaused() && arg0 && joyGetButtonsPressedThisFrame(contpad1, A_BUTTON | B_BUTTON | Z_TRIG | START_BUTTON | L_TRIG | R_TRIG)) { var8007074c = 2; diff --git a/src/game/propobj.c b/src/game/propobj.c index 24ff0be0d..b7f988ab9 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -10691,7 +10691,7 @@ glabel var7f1aa298 /* f06dc78: 8fa50068 */ lw $a1,0x68($sp) /* f06dc7c: 27a40188 */ addiu $a0,$sp,0x188 /* f06dc80: 24a50068 */ addiu $a1,$a1,0x68 -/* f06dc84: 0fc25b28 */ jal func0f096ca0 +/* f06dc84: 0fc25b28 */ jal quaternion0f096ca0 /* f06dc88: afa50038 */ sw $a1,0x38($sp) /* f06dc8c: 27a40108 */ addiu $a0,$sp,0x108 /* f06dc90: 0c005c1c */ jal mtx4LoadRotationFrom @@ -11391,7 +11391,7 @@ glabel var7f1aa298 /* f06e648: 8fa50068 */ lw $a1,0x68($sp) /* f06e64c: 27a40188 */ addiu $a0,$sp,0x188 /* f06e650: 24a50078 */ addiu $a1,$a1,0x78 -/* f06e654: 0fc25b28 */ jal func0f096ca0 +/* f06e654: 0fc25b28 */ jal quaternion0f096ca0 /* f06e658: afa50024 */ sw $a1,0x24($sp) /* f06e65c: 8fa50024 */ lw $a1,0x24($sp) /* f06e660: 0fc25db0 */ jal func0f0976c0 diff --git a/src/include/game/game_096ca0.h b/src/include/game/game_096ca0.h index c9a19e926..650661af5 100644 --- a/src/include/game/game_096ca0.h +++ b/src/include/game/game_096ca0.h @@ -4,13 +4,13 @@ #include "data.h" #include "types.h" -void func0f096ca0(struct coord *arg0, struct coord *arg1); +void quaternion0f096ca0(struct coord *arg0, f32 quat[4]); void func0f096ed4(f32 *arg0, Mtxf *arg1); -void func0f097044(Mtxf *matrix, struct coord *arg1); +void func0f097044(Mtxf *matrix, f32 arg1[4]); u32 func0f097264(void); -void func0f0972b8(struct coord *arg0, struct coord *arg1, f32 arg2, f32 *arg3); +void func0f0972b8(f32 arg0[4], f32 arg1[4], f32 arg2, f32 *arg3); u32 func0f097518(void); -void func0f0976c0(struct coord *arg0, struct coord *arg1); +void func0f0976c0(f32 arg0[4], f32 arg1[4]); void func0f097738(f32 *arg0, f32 *arg1, f32 *arg2); #endif diff --git a/src/lib/model.c b/src/lib/model.c index 4636255f1..33034e8ea 100644 --- a/src/lib/model.c +++ b/src/lib/model.c @@ -681,10 +681,8 @@ void model0001b400(struct modelrenderdata *arg0, struct model *model, struct mod struct coord sp124; struct coord sp118; struct coord sp10c; - u8 stack2[0x4]; - struct coord spfc; - u8 stack3[0x4]; - struct coord spec; + f32 spfc[4]; + f32 spec[4]; u8 stack4[0xc]; f32 spdc; struct coord spd0; @@ -730,14 +728,14 @@ void model0001b400(struct modelrenderdata *arg0, struct model *model, struct mod mtx4LoadYRotation(rwdata->chrinfo.unk14, &sp78); mtx4LoadRotation(&sp124, &sp38); mtx00015be0(&sp78, &sp38); - func0f097044(&sp38, &spec); + func0f097044(&sp38, spec); } else { - func0f096ca0(&sp124, &spec); + quaternion0f096ca0(&sp124, spec); } - func0f096ca0(&sp230, &spfc); - func0f0976c0(&spfc, &spec); - func0f0972b8(&spfc, &spec, anim->fracmerge, &spdc); + quaternion0f096ca0(&sp230, spfc); + func0f0976c0(spfc, spec); + func0f0972b8(spfc, spec, anim->fracmerge, &spdc); func0f096ed4(&spdc, &sp1d8); } else { mtx4LoadRotation(&sp230, &sp1d8); @@ -943,7 +941,7 @@ glabel var70054308 /* 1ba58: 310b0100 */ andi $t3,$t0,0x100 /* 1ba5c: 5160001d */ beqzl $t3,.L0001bad4 /* 1ba60: 8faa00b4 */ lw $t2,0xb4($sp) -/* 1ba64: 0fc25b28 */ jal func0f096ca0 +/* 1ba64: 0fc25b28 */ jal quaternion0f096ca0 /* 1ba68: 27a5003c */ addiu $a1,$sp,0x3c /* 1ba6c: 27a4003c */ addiu $a0,$sp,0x3c /* 1ba70: 3c053f00 */ lui $a1,0x3f00 @@ -1507,10 +1505,10 @@ glabel var70053fc0pf /* 1bfc8: 8e060034 */ lw $a2,0x34($s0) /* 1bfcc: 27a40144 */ addiu $a0,$sp,0x144 .PF0001bfd0: -/* 1bfd0: 0fc25af0 */ jal func0f096ca0 +/* 1bfd0: 0fc25af0 */ jal quaternion0f096ca0 /* 1bfd4: 27a50088 */ addiu $a1,$sp,0x88 /* 1bfd8: 27a400b0 */ addiu $a0,$sp,0xb0 -/* 1bfdc: 0fc25af0 */ jal func0f096ca0 +/* 1bfdc: 0fc25af0 */ jal quaternion0f096ca0 /* 1bfe0: 27a50078 */ addiu $a1,$sp,0x78 /* 1bfe4: 27a40088 */ addiu $a0,$sp,0x88 /* 1bfe8: 0fc25d78 */ jal func0f0976c0 @@ -1922,10 +1920,10 @@ glabel model0001bfa8 /* 1c20c: 8e060034 */ lw $a2,0x34($s0) /* 1c210: 27a40144 */ addiu $a0,$sp,0x144 .L0001c214: -/* 1c214: 0fc25b28 */ jal func0f096ca0 +/* 1c214: 0fc25b28 */ jal quaternion0f096ca0 /* 1c218: 27a50088 */ addiu $a1,$sp,0x88 /* 1c21c: 27a400b0 */ addiu $a0,$sp,0xb0 -/* 1c220: 0fc25b28 */ jal func0f096ca0 +/* 1c220: 0fc25b28 */ jal quaternion0f096ca0 /* 1c224: 27a50078 */ addiu $a1,$sp,0x78 /* 1c228: 27a40088 */ addiu $a0,$sp,0x88 /* 1c22c: 0fc25db0 */ jal func0f0976c0