From 87dc56469e9f4c4d7b4f88b8bdb986059dddf06d Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 6 Nov 2021 13:40:14 +1000 Subject: [PATCH] Decompile mtx00017588 --- src/include/lib/mtx.h | 2 +- src/lib/mtx.c | 57 ++++++++++++------------------------------- 2 files changed, 17 insertions(+), 42 deletions(-) diff --git a/src/include/lib/mtx.h b/src/include/lib/mtx.h index cc4c236a6..250b1a1ff 100644 --- a/src/include/lib/mtx.h +++ b/src/include/lib/mtx.h @@ -58,7 +58,7 @@ void mtx4LoadRotationFrom(f32 src[4][4], f32 dst[4][4]); u32 mtx000170e4(void); u32 mtx0001719c(void); u32 mtx000172f0(void); -u32 mtx00017588(void); +void mtx00017588(f32 arg0[4][4], f32 arg1[4][4]); void mtx00017614(f32 arg0[4][4], f32 arg1[4][4]); f32 mtx00017a78(f32 arg0[4][4]); f32 mtx00017c2c(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8); diff --git a/src/lib/mtx.c b/src/lib/mtx.c index 4d8d42b44..00dcce033 100644 --- a/src/lib/mtx.c +++ b/src/lib/mtx.c @@ -1172,47 +1172,22 @@ glabel mtx000172f0 /* 17584: e4a60038 */ swc1 $f6,0x38($a1) ); -GLOBAL_ASM( -glabel mtx00017588 -/* 17588: 27bdffe8 */ addiu $sp,$sp,-24 -/* 1758c: afbf0014 */ sw $ra,0x14($sp) -/* 17590: afa40018 */ sw $a0,0x18($sp) -/* 17594: 0c005d85 */ jal mtx00017614 -/* 17598: afa5001c */ sw $a1,0x1c($sp) -/* 1759c: 0c005e9e */ jal mtx00017a78 -/* 175a0: 8fa40018 */ lw $a0,0x18($sp) -/* 175a4: 3c013f80 */ lui $at,0x3f80 -/* 175a8: 44812000 */ mtc1 $at,$f4 -/* 175ac: 00002825 */ or $a1,$zero,$zero -/* 175b0: 8fa6001c */ lw $a2,0x1c($sp) -/* 175b4: 24040004 */ addiu $a0,$zero,0x4 -/* 175b8: 46002083 */ div.s $f2,$f4,$f0 -.L000175bc: -/* 175bc: 00001825 */ or $v1,$zero,$zero -/* 175c0: 00c01025 */ or $v0,$a2,$zero -/* 175c4: c4500000 */ lwc1 $f16,0x0($v0) -/* 175c8: 24630001 */ addiu $v1,$v1,0x1 -/* 175cc: 46028482 */ mul.s $f18,$f16,$f2 -/* 175d0: 50640008 */ beql $v1,$a0,.L000175f4 -/* 175d4: 24420004 */ addiu $v0,$v0,0x4 -.L000175d8: -/* 175d8: c4500004 */ lwc1 $f16,0x4($v0) -/* 175dc: 24630001 */ addiu $v1,$v1,0x1 -/* 175e0: e4520000 */ swc1 $f18,0x0($v0) -/* 175e4: 46028482 */ mul.s $f18,$f16,$f2 -/* 175e8: 1464fffb */ bne $v1,$a0,.L000175d8 -/* 175ec: 24420004 */ addiu $v0,$v0,0x4 -/* 175f0: 24420004 */ addiu $v0,$v0,0x4 -.L000175f4: -/* 175f4: e452fffc */ swc1 $f18,-0x4($v0) -/* 175f8: 24a50001 */ addiu $a1,$a1,0x1 -/* 175fc: 14a4ffef */ bne $a1,$a0,.L000175bc -/* 17600: 24c60010 */ addiu $a2,$a2,0x10 -/* 17604: 8fbf0014 */ lw $ra,0x14($sp) -/* 17608: 27bd0018 */ addiu $sp,$sp,0x18 -/* 1760c: 03e00008 */ jr $ra -/* 17610: 00000000 */ nop -); +void mtx00017588(f32 arg0[4][4], f32 arg1[4][4]) +{ + s32 i; + s32 j; + f32 tmp; + + mtx00017614(arg0, arg1); + + tmp = 1.0f / mtx00017a78(arg0); + + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + arg1[i][j] *= tmp; + } + } +} void mtx00017614(f32 arg0[4][4], f32 arg1[4][4]) {