From 075ff177e4ac4ce241c2e8620ba3896233612319 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Thu, 25 Mar 2021 20:49:57 +1000 Subject: [PATCH] Decompile guTranslate and guTranslateF --- ld/libfiles.ntsc-beta.inc | 2 +- ld/libfiles.ntsc-final.inc | 2 +- ld/libfiles.pal-final.inc | 2 +- src/include/lib/lib_4fff0.h | 9 ------- src/lib/lib_4fff0.c | 48 ------------------------------------ src/lib/ultra/gu/translate.c | 28 +++++++++++++++++++++ 6 files changed, 31 insertions(+), 60 deletions(-) delete mode 100644 src/include/lib/lib_4fff0.h delete mode 100644 src/lib/lib_4fff0.c create mode 100644 src/lib/ultra/gu/translate.c diff --git a/ld/libfiles.ntsc-beta.inc b/ld/libfiles.ntsc-beta.inc index 787ef1c9d..d04d24228 100644 --- a/ld/libfiles.ntsc-beta.inc +++ b/ld/libfiles.ntsc-beta.inc @@ -190,7 +190,7 @@ build/ROMID/lib/ultra/gu/sins.o (section); \ build/ROMID/lib/ultra/gu/ortho.o (section); \ build/ROMID/lib/ultra/gu/frustum.o (section); \ - build/ROMID/lib/lib_4fff0.o (section); \ + build/ROMID/lib/ultra/gu/translate.o (section); \ build/ROMID/lib/ultra/gu/scale.o (section); \ build/ROMID/lib/ultra/io/conteepprobe.o (section); \ build/ROMID/lib/ultra/io/conteepread.o (section); \ diff --git a/ld/libfiles.ntsc-final.inc b/ld/libfiles.ntsc-final.inc index 283785d35..4c3e27d74 100644 --- a/ld/libfiles.ntsc-final.inc +++ b/ld/libfiles.ntsc-final.inc @@ -186,7 +186,7 @@ build/ROMID/lib/ultra/gu/sins.o (section); \ build/ROMID/lib/ultra/gu/ortho.o (section); \ build/ROMID/lib/ultra/gu/frustum.o (section); \ - build/ROMID/lib/lib_4fff0.o (section); \ + build/ROMID/lib/ultra/gu/translate.o (section); \ build/ROMID/lib/ultra/gu/scale.o (section); \ build/ROMID/lib/ultra/io/conteepprobe.o (section); \ build/ROMID/lib/ultra/io/conteepread.o (section); \ diff --git a/ld/libfiles.pal-final.inc b/ld/libfiles.pal-final.inc index eb20dffec..db6f6f8ae 100644 --- a/ld/libfiles.pal-final.inc +++ b/ld/libfiles.pal-final.inc @@ -186,7 +186,7 @@ build/ROMID/lib/ultra/gu/sins.o (section); \ build/ROMID/lib/ultra/gu/ortho.o (section); \ build/ROMID/lib/ultra/gu/frustum.o (section); \ - build/ROMID/lib/lib_4fff0.o (section); \ + build/ROMID/lib/ultra/gu/translate.o (section); \ build/ROMID/lib/ultra/gu/scale.o (section); \ build/ROMID/lib/ultra/io/conteepprobe.o (section); \ build/ROMID/lib/ultra/io/conteepread.o (section); \ diff --git a/src/include/lib/lib_4fff0.h b/src/include/lib/lib_4fff0.h deleted file mode 100644 index ea1cd7d52..000000000 --- a/src/include/lib/lib_4fff0.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _IN_LIB_LIB_4FFF0_H -#define _IN_LIB_LIB_4FFF0_H -#include -#include "data.h" -#include "types.h" - -u32 func0004fff0(void); - -#endif diff --git a/src/lib/lib_4fff0.c b/src/lib/lib_4fff0.c deleted file mode 100644 index 26e82c848..000000000 --- a/src/lib/lib_4fff0.c +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include "constants.h" -#include "bss.h" -#include "data.h" -#include "types.h" - -GLOBAL_ASM( -glabel func0004fff0 -/* 4fff0: 27bdffe8 */ addiu $sp,$sp,-24 -/* 4fff4: afbf0014 */ sw $ra,0x14($sp) -/* 4fff8: afa5001c */ sw $a1,0x1c($sp) -/* 4fffc: afa60020 */ sw $a2,0x20($sp) -/* 50000: afa70024 */ sw $a3,0x24($sp) -/* 50004: 0c012918 */ jal guMtxIdentF -/* 50008: afa40018 */ sw $a0,0x18($sp) -/* 5000c: 8fa40018 */ lw $a0,0x18($sp) -/* 50010: c7a4001c */ lwc1 $f4,0x1c($sp) -/* 50014: e4840030 */ swc1 $f4,0x30($a0) -/* 50018: c7a60020 */ lwc1 $f6,0x20($sp) -/* 5001c: e4860034 */ swc1 $f6,0x34($a0) -/* 50020: c7a80024 */ lwc1 $f8,0x24($sp) -/* 50024: e4880038 */ swc1 $f8,0x38($a0) -/* 50028: 8fbf0014 */ lw $ra,0x14($sp) -/* 5002c: 27bd0018 */ addiu $sp,$sp,0x18 -/* 50030: 03e00008 */ jr $ra -/* 50034: 00000000 */ nop -/* 50038: 27bdff98 */ addiu $sp,$sp,-104 -/* 5003c: afbf0014 */ sw $ra,0x14($sp) -/* 50040: afa40068 */ sw $a0,0x68($sp) -/* 50044: afa5006c */ sw $a1,0x6c($sp) -/* 50048: afa60070 */ sw $a2,0x70($sp) -/* 5004c: afa70074 */ sw $a3,0x74($sp) -/* 50050: 0c012918 */ jal guMtxIdentF -/* 50054: 27a40028 */ addiu $a0,$sp,0x28 -/* 50058: c7a4006c */ lwc1 $f4,0x6c($sp) -/* 5005c: c7a60070 */ lwc1 $f6,0x70($sp) -/* 50060: c7a80074 */ lwc1 $f8,0x74($sp) -/* 50064: 27a40028 */ addiu $a0,$sp,0x28 -/* 50068: 8fa50068 */ lw $a1,0x68($sp) -/* 5006c: e7a40058 */ swc1 $f4,0x58($sp) -/* 50070: e7a6005c */ swc1 $f6,0x5c($sp) -/* 50074: 0c0128d8 */ jal guMtxF2L -/* 50078: e7a80060 */ swc1 $f8,0x60($sp) -/* 5007c: 8fbf0014 */ lw $ra,0x14($sp) -/* 50080: 27bd0068 */ addiu $sp,$sp,0x68 -/* 50084: 03e00008 */ jr $ra -/* 50088: 00000000 */ nop -); diff --git a/src/lib/ultra/gu/translate.c b/src/lib/ultra/gu/translate.c new file mode 100644 index 000000000..e895f7b06 --- /dev/null +++ b/src/lib/ultra/gu/translate.c @@ -0,0 +1,28 @@ +#include +#include "constants.h" +#include "bss.h" +#include "data.h" +#include "types.h" + +void guTranslateF(float mf[4][4], float x, float y, float z) +{ + guMtxIdentF(mf); + + mf[3][0] = x; + mf[3][1] = y; + mf[3][2] = z; +} + +void guTranslate(Mtx *m, float x, float y, float z) +{ + f32 mf[4][4]; + u32 stack[4]; + + guMtxIdentF(mf); + + mf[3][0] = x; + mf[3][1] = y; + mf[3][2] = z; + + guMtxF2L(mf, m); +}