From 162c30fedb013e7b91e629a952c2736f873bc1ca Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 28 Jan 2021 22:57:42 +1000 Subject: [PATCH] Decompile guLookAt --- src/game/game_015470.c | 2 +- src/game/game_0b69d0.c | 8 +++---- src/gvars/gvars.c | 2 +- src/include/lib/lib_03fb0.h | 9 ++++++-- src/include/lib/lib_4a360.h | 1 - src/lib/lib_03fb0.c | 46 +++++++++---------------------------- src/lib/lib_04320.c | 2 +- src/lib/lib_04840.c | 2 +- src/lib/lib_04a80.c | 2 +- src/lib/lib_09660.c | 12 +++++----- src/lib/lib_4a360.c | 4 ++-- src/lib/lib_4f5e0.c | 4 ++-- src/lib/lib_4fe20.c | 2 +- src/lib/lib_4fff0.c | 2 +- src/lib/lib_50090.c | 2 +- 15 files changed, 40 insertions(+), 60 deletions(-) diff --git a/src/game/game_015470.c b/src/game/game_015470.c index 0ddefc11b..931c5e3c0 100644 --- a/src/game/game_015470.c +++ b/src/game/game_015470.c @@ -190,7 +190,7 @@ glabel func0f0155f0 /* f01582c: 01cf2021 */ addu $a0,$t6,$t7 /* f015830: e7a40020 */ swc1 $f4,0x20($sp) /* f015834: e7a60024 */ swc1 $f6,0x24($sp) -/* f015838: 0c0010a9 */ jal func000042a4 +/* f015838: 0c0010a9 */ jal guLookAt /* f01583c: e7b2001c */ swc1 $f18,0x1c($sp) /* f015840: 3c180102 */ lui $t8,0x102 /* f015844: 37180040 */ ori $t8,$t8,0x40 diff --git a/src/game/game_0b69d0.c b/src/game/game_0b69d0.c index 9910b0167..60bfad8f5 100644 --- a/src/game/game_0b69d0.c +++ b/src/game/game_0b69d0.c @@ -8750,7 +8750,7 @@ glabel func0f0bfc7c /* f0bff24: 0fc2d3ee */ jal currentPlayerSetUnk006c /* f0bff28: 02002025 */ or $a0,$s0,$zero /* f0bff2c: 02002025 */ or $a0,$s0,$zero -/* f0bff30: 0c0128d8 */ jal func0004a360 +/* f0bff30: 0c0128d8 */ jal guMtxF2L /* f0bff34: 02202825 */ or $a1,$s1,$zero /* f0bff38: 0fc2d3fe */ jal currentPlayerSetUnk1758 /* f0bff3c: 02202025 */ or $a0,$s1,$zero @@ -8759,7 +8759,7 @@ glabel func0f0bfc7c /* f0bff48: 27a5008c */ addiu $a1,$sp,0x8c /* f0bff4c: 8e4d0284 */ lw $t5,0x284($s2) /* f0bff50: 27a4008c */ addiu $a0,$sp,0x8c -/* f0bff54: 0c0128d8 */ jal func0004a360 +/* f0bff54: 0c0128d8 */ jal guMtxF2L /* f0bff58: 8da5005c */ lw $a1,0x5c($t5) /* f0bff5c: 8e430284 */ lw $v1,0x284($s2) /* f0bff60: 8c64005c */ lw $a0,0x5c($v1) @@ -8861,10 +8861,10 @@ glabel func0f0bfc7c // } // // currentPlayerSetUnk006c(s0); -// func0004a360(s0, s1); +// guMtxF2L(s0, s1); // currentPlayerSetUnk1758(s1); // func00015f04(scale, &sp8c); -// func0004a360(&sp8c, g_Vars.currentplayer->matrix5c); +// guMtxF2L(&sp8c, g_Vars.currentplayer->matrix5c); // func00016820(g_Vars.currentplayer->matrix5c, g_Vars.currentplayer->matrix60); // currentPlayerSetUnk173c(g_Vars.currentplayer->matrix5c); // currentPlayerSetUnk1738(g_Vars.currentplayer->matrix60); diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 99e0b618f..5c32c6353 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -4081,7 +4081,7 @@ u32 var800918e4 = 0; s32 var800918e8 = 0; u32 var800918ec = 0; void *g_AudioSp = NULL; -u32 g_AmgrCurrentCmdList = 0; +OSScTask *g_AmgrCurrentCmdList = NULL; u32 var800918f8 = 0; u32 var800918fc = 0; u32 var80091900 = 0; diff --git a/src/include/lib/lib_03fb0.h b/src/include/lib/lib_03fb0.h index 94a01c06f..5534a98b0 100644 --- a/src/include/lib/lib_03fb0.h +++ b/src/include/lib/lib_03fb0.h @@ -3,7 +3,12 @@ #include #include "types.h" -u32 func00003fb0(void); -u32 func000042a4(void); +void guLookAtF(float mf[4][4], float xEye, float yEye, float zEye, + float xAt, float yAt, float zAt, + float xUp, float yUp, float zUp); + +void guLookAt(Mtx *m, float xEye, float yEye, float zEye, + float xAt, float yAt, float zAt, + float xUp, float yUp, float zUp); #endif diff --git a/src/include/lib/lib_4a360.h b/src/include/lib/lib_4a360.h index 5ecfa3133..23ef3295d 100644 --- a/src/include/lib/lib_4a360.h +++ b/src/include/lib/lib_4a360.h @@ -3,7 +3,6 @@ #include #include "types.h" -void func0004a360(Mtxf *arg0, Mtx *arg1); u32 func0004a460(void); f32 sqrtf(f32 value); diff --git a/src/lib/lib_03fb0.c b/src/lib/lib_03fb0.c index 1976b87e7..1f88eb507 100644 --- a/src/lib/lib_03fb0.c +++ b/src/lib/lib_03fb0.c @@ -13,7 +13,7 @@ #include "types.h" GLOBAL_ASM( -glabel func00003fb0 +glabel guLookAtF /* 3fb0: 27bdffb0 */ addiu $sp,$sp,-80 /* 3fb4: afbf004c */ sw $ra,0x4c($sp) /* 3fb8: afb00048 */ sw $s0,0x48($sp) @@ -208,37 +208,13 @@ glabel func00003fb0 /* 42a0: 27bd0050 */ addiu $sp,$sp,0x50 ); -GLOBAL_ASM( -glabel func000042a4 -/* 42a4: 27bdff90 */ addiu $sp,$sp,-112 -/* 42a8: 44856000 */ mtc1 $a1,$f12 -/* 42ac: 44867000 */ mtc1 $a2,$f14 -/* 42b0: c7a40080 */ lwc1 $f4,0x80($sp) -/* 42b4: c7a60084 */ lwc1 $f6,0x84($sp) -/* 42b8: c7a80088 */ lwc1 $f8,0x88($sp) -/* 42bc: c7aa008c */ lwc1 $f10,0x8c($sp) -/* 42c0: c7b00090 */ lwc1 $f16,0x90($sp) -/* 42c4: c7b20094 */ lwc1 $f18,0x94($sp) -/* 42c8: afbf002c */ sw $ra,0x2c($sp) -/* 42cc: afa40070 */ sw $a0,0x70($sp) -/* 42d0: 44056000 */ mfc1 $a1,$f12 -/* 42d4: 44067000 */ mfc1 $a2,$f14 -/* 42d8: afa7007c */ sw $a3,0x7c($sp) -/* 42dc: 27a40030 */ addiu $a0,$sp,0x30 -/* 42e0: e7a40010 */ swc1 $f4,0x10($sp) -/* 42e4: e7a60014 */ swc1 $f6,0x14($sp) -/* 42e8: e7a80018 */ swc1 $f8,0x18($sp) -/* 42ec: e7aa001c */ swc1 $f10,0x1c($sp) -/* 42f0: e7b00020 */ swc1 $f16,0x20($sp) -/* 42f4: 0c000fec */ jal func00003fb0 -/* 42f8: e7b20024 */ swc1 $f18,0x24($sp) -/* 42fc: 27a40030 */ addiu $a0,$sp,0x30 -/* 4300: 0c0128d8 */ jal func0004a360 -/* 4304: 8fa50070 */ lw $a1,0x70($sp) -/* 4308: 8fbf002c */ lw $ra,0x2c($sp) -/* 430c: 27bd0070 */ addiu $sp,$sp,0x70 -/* 4310: 03e00008 */ jr $ra -/* 4314: 00000000 */ nop -/* 4318: 00000000 */ nop -/* 431c: 00000000 */ nop -); +void guLookAt(Mtx *m, float xEye, float yEye, float zEye, + float xAt, float yAt, float zAt, + float xUp, float yUp, float zUp) +{ + float mf[4][4]; + + guLookAtF(mf, xEye, yEye, zEye, xAt, yAt, zAt, xUp, yUp, zUp); + + guMtxF2L(mf, m); +} diff --git a/src/lib/lib_04320.c b/src/lib/lib_04320.c index e76e68f5e..8cb9432f7 100644 --- a/src/lib/lib_04320.c +++ b/src/lib/lib_04320.c @@ -301,7 +301,7 @@ glabel func0000470c /* 4760: 0c0010c8 */ jal func00004320 /* 4764: e7b20024 */ swc1 $f18,0x24($sp) /* 4768: 27a40038 */ addiu $a0,$sp,0x38 -/* 476c: 0c0128d8 */ jal func0004a360 +/* 476c: 0c0128d8 */ jal guMtxF2L /* 4770: 8fa50078 */ lw $a1,0x78($sp) /* 4774: 8fbf0034 */ lw $ra,0x34($sp) /* 4778: 27bd0078 */ addiu $sp,$sp,0x78 diff --git a/src/lib/lib_04840.c b/src/lib/lib_04840.c index c8903410c..f10caee6c 100644 --- a/src/lib/lib_04840.c +++ b/src/lib/lib_04840.c @@ -169,7 +169,7 @@ glabel func00004a24 /* 4a58: 0c001210 */ jal func00004840 /* 4a5c: e7a80018 */ swc1 $f8,0x18($sp) /* 4a60: 27a40028 */ addiu $a0,$sp,0x28 -/* 4a64: 0c0128d8 */ jal func0004a360 +/* 4a64: 0c0128d8 */ jal guMtxF2L /* 4a68: 8fa50068 */ lw $a1,0x68($sp) /* 4a6c: 8fbf0024 */ lw $ra,0x24($sp) /* 4a70: 27bd0068 */ addiu $sp,$sp,0x68 diff --git a/src/lib/lib_04a80.c b/src/lib/lib_04a80.c index 55813bfa3..5a6fd1023 100644 --- a/src/lib/lib_04a80.c +++ b/src/lib/lib_04a80.c @@ -187,7 +187,7 @@ glabel func00004c04 /* 4c2c: 0c0012a0 */ jal func00004a80 /* 4c30: e7a40010 */ swc1 $f4,0x10($sp) /* 4c34: 27a40020 */ addiu $a0,$sp,0x20 -/* 4c38: 0c0128d8 */ jal func0004a360 +/* 4c38: 0c0128d8 */ jal guMtxF2L /* 4c3c: 8fa50060 */ lw $a1,0x60($sp) /* 4c40: 8fbf001c */ lw $ra,0x1c($sp) /* 4c44: 27bd0060 */ addiu $sp,$sp,0x60 diff --git a/src/lib/lib_09660.c b/src/lib/lib_09660.c index a1f3e74bd..137598773 100644 --- a/src/lib/lib_09660.c +++ b/src/lib/lib_09660.c @@ -1655,7 +1655,7 @@ glabel func0000ab78 /* abfc: 00000000 */ nop /* ac00: afa2004c */ sw $v0,0x4c($sp) /* ac04: 27a400d0 */ addiu $a0,$sp,0xd0 -/* ac08: 0c0128d8 */ jal func0004a360 +/* ac08: 0c0128d8 */ jal guMtxF2L /* ac0c: 00402825 */ or $a1,$v0,$zero /* ac10: 0c00566c */ jal func000159b0 /* ac14: 27a40050 */ addiu $a0,$sp,0x50 @@ -1663,7 +1663,7 @@ glabel func0000ab78 /* ac1c: 00000000 */ nop /* ac20: afa20048 */ sw $v0,0x48($sp) /* ac24: 27a40050 */ addiu $a0,$sp,0x50 -/* ac28: 0c0128d8 */ jal func0004a360 +/* ac28: 0c0128d8 */ jal guMtxF2L /* ac2c: 00402825 */ or $a1,$v0,$zero /* ac30: 3c0e0103 */ lui $t6,0x103 /* ac34: 35ce0040 */ ori $t6,$t6,0x40 @@ -1721,7 +1721,7 @@ glabel func0000aca4 /* acf4: 0c001210 */ jal func00004840 /* acf8: e7a60014 */ swc1 $f6,0x14($sp) /* acfc: 27a40044 */ addiu $a0,$sp,0x44 -/* ad00: 0c0128d8 */ jal func0004a360 +/* ad00: 0c0128d8 */ jal guMtxF2L /* ad04: 8fa50040 */ lw $a1,0x40($sp) /* ad08: 3c0e0103 */ lui $t6,0x103 /* ad0c: 35ce0040 */ ori $t6,$t6,0x40 @@ -1822,7 +1822,7 @@ glabel func0000ad5c /* ae78: 3c048009 */ lui $a0,%hi(var80092830) /* ae7c: 3c058009 */ lui $a1,%hi(var80092870) /* ae80: 8ca52870 */ lw $a1,%lo(var80092870)($a1) -/* ae84: 0c0128d8 */ jal func0004a360 +/* ae84: 0c0128d8 */ jal guMtxF2L /* ae88: 24842830 */ addiu $a0,$a0,%lo(var80092830) /* ae8c: 3c0c0103 */ lui $t4,0x103 /* ae90: 3c058009 */ lui $a1,%hi(var80092870) @@ -1948,7 +1948,7 @@ glabel func0000af00 /* b060: 3c048009 */ lui $a0,%hi(var80092830) /* b064: 3c058009 */ lui $a1,%hi(var80092870) /* b068: 8ca52870 */ lw $a1,%lo(var80092870)($a1) -/* b06c: 0c0128d8 */ jal func0004a360 +/* b06c: 0c0128d8 */ jal guMtxF2L /* b070: 24842830 */ addiu $a0,$a0,%lo(var80092830) /* b074: 3c0d0103 */ lui $t5,0x103 /* b078: 3c058009 */ lui $a1,%hi(var80092870) @@ -2007,7 +2007,7 @@ glabel func0000b0e8 /* b13c: 0c001210 */ jal func00004840 /* b140: e7a60014 */ swc1 $f6,0x14($sp) /* b144: 27a40040 */ addiu $a0,$sp,0x40 -/* b148: 0c0128d8 */ jal func0004a360 +/* b148: 0c0128d8 */ jal guMtxF2L /* b14c: 8fa5003c */ lw $a1,0x3c($sp) /* b150: 3c0e0103 */ lui $t6,0x103 /* b154: 35ce0040 */ ori $t6,$t6,0x40 diff --git a/src/lib/lib_4a360.c b/src/lib/lib_4a360.c index 6e5316450..b4096664c 100644 --- a/src/lib/lib_4a360.c +++ b/src/lib/lib_4a360.c @@ -12,7 +12,7 @@ #include "types.h" GLOBAL_ASM( -glabel func0004a360 +glabel guMtxF2L /* 4a360: 3c014780 */ lui $at,0x4780 /* 4a364: 44810000 */ mtc1 $at,$f0 /* 4a368: 00a01025 */ or $v0,$a1,$zero @@ -129,7 +129,7 @@ glabel func0004a460 /* 4a4f4: 0c012918 */ jal func0004a460 /* 4a4f8: 27a40018 */ addiu $a0,$sp,0x18 /* 4a4fc: 27a40018 */ addiu $a0,$sp,0x18 -/* 4a500: 0c0128d8 */ jal func0004a360 +/* 4a500: 0c0128d8 */ jal guMtxF2L /* 4a504: 8fa50058 */ lw $a1,0x58($sp) /* 4a508: 8fbf0014 */ lw $ra,0x14($sp) /* 4a50c: 27bd0058 */ addiu $sp,$sp,0x58 diff --git a/src/lib/lib_4f5e0.c b/src/lib/lib_4f5e0.c index 5676792dd..d0c1b6ddc 100644 --- a/src/lib/lib_4f5e0.c +++ b/src/lib/lib_4f5e0.c @@ -422,7 +422,7 @@ glabel func0004f9b0 /* 4fb9c: 0c013e6c */ jal func0004f9b0 /* 4fba0: e7a40010 */ swc1 $f4,0x10($sp) /* 4fba4: 27a40020 */ addiu $a0,$sp,0x20 -/* 4fba8: 0c0128d8 */ jal func0004a360 +/* 4fba8: 0c0128d8 */ jal guMtxF2L /* 4fbac: 8fa50060 */ lw $a1,0x60($sp) /* 4fbb0: 8fbf001c */ lw $ra,0x1c($sp) /* 4fbb4: 27bd0060 */ addiu $sp,$sp,0x60 @@ -590,7 +590,7 @@ glabel func0004fc60 /* 4fdf8: 0c013f18 */ jal func0004fc60 /* 4fdfc: e7aa001c */ swc1 $f10,0x1c($sp) /* 4fe00: 27a40028 */ addiu $a0,$sp,0x28 -/* 4fe04: 0c0128d8 */ jal func0004a360 +/* 4fe04: 0c0128d8 */ jal guMtxF2L /* 4fe08: 8fa50068 */ lw $a1,0x68($sp) /* 4fe0c: 8fbf0024 */ lw $ra,0x24($sp) /* 4fe10: 27bd0068 */ addiu $sp,$sp,0x68 diff --git a/src/lib/lib_4fe20.c b/src/lib/lib_4fe20.c index 43fbb805b..a9feaf10b 100644 --- a/src/lib/lib_4fe20.c +++ b/src/lib/lib_4fe20.c @@ -124,7 +124,7 @@ glabel func0004fe20 /* 4ffc4: 0c013f88 */ jal func0004fe20 /* 4ffc8: e7aa001c */ swc1 $f10,0x1c($sp) /* 4ffcc: 27a40028 */ addiu $a0,$sp,0x28 -/* 4ffd0: 0c0128d8 */ jal func0004a360 +/* 4ffd0: 0c0128d8 */ jal guMtxF2L /* 4ffd4: 8fa50068 */ lw $a1,0x68($sp) /* 4ffd8: 8fbf0024 */ lw $ra,0x24($sp) /* 4ffdc: 27bd0068 */ addiu $sp,$sp,0x68 diff --git a/src/lib/lib_4fff0.c b/src/lib/lib_4fff0.c index dec2b9f3e..874e62492 100644 --- a/src/lib/lib_4fff0.c +++ b/src/lib/lib_4fff0.c @@ -46,7 +46,7 @@ glabel func0004fff0 /* 50068: 8fa50068 */ lw $a1,0x68($sp) /* 5006c: e7a40058 */ swc1 $f4,0x58($sp) /* 50070: e7a6005c */ swc1 $f6,0x5c($sp) -/* 50074: 0c0128d8 */ jal func0004a360 +/* 50074: 0c0128d8 */ jal guMtxF2L /* 50078: e7a80060 */ swc1 $f8,0x60($sp) /* 5007c: 8fbf0014 */ lw $ra,0x14($sp) /* 50080: 27bd0068 */ addiu $sp,$sp,0x68 diff --git a/src/lib/lib_50090.c b/src/lib/lib_50090.c index 1bf27b64a..b83f56685 100644 --- a/src/lib/lib_50090.c +++ b/src/lib/lib_50090.c @@ -51,7 +51,7 @@ glabel func000500e4 /* 50108: 0c014024 */ jal func00050090 /* 5010c: 27a40018 */ addiu $a0,$sp,0x18 /* 50110: 27a40018 */ addiu $a0,$sp,0x18 -/* 50114: 0c0128d8 */ jal func0004a360 +/* 50114: 0c0128d8 */ jal guMtxF2L /* 50118: 8fa50058 */ lw $a1,0x58($sp) /* 5011c: 8fbf0014 */ lw $ra,0x14($sp) /* 50120: 27bd0058 */ addiu $sp,$sp,0x58