Decompile guOrthoF
This commit is contained in:
parent
4d969f500e
commit
01620c4ede
3
Makefile
3
Makefile
|
|
@ -61,8 +61,9 @@ MIPSISET := -mips2 -32
|
|||
OPT_LVL := -O2
|
||||
LOOPUNROLL := -Wo,-loopunroll,0
|
||||
|
||||
$(B_DIR)/lib/ultra/gu/mtxutil.o: LOOPUNROLL :=
|
||||
$(B_DIR)/lib/ultra/gu/frustum.o: LOOPUNROLL :=
|
||||
$(B_DIR)/lib/ultra/gu/mtxutil.o: LOOPUNROLL :=
|
||||
$(B_DIR)/lib/ultra/gu/ortho.o: LOOPUNROLL :=
|
||||
|
||||
$(B_DIR)/lib/ultra/libc/ll.o: MIPSISET := -mips3 -o32
|
||||
$(B_DIR)/lib/ultra/libc/llcvt.o: MIPSISET := -mips3 -o32
|
||||
|
|
|
|||
|
|
@ -166,6 +166,7 @@
|
|||
build/ROMID/lib/ultra/io/contquery.o (section); \
|
||||
build/ROMID/lib/ultra/io/contreaddata.o (section); \
|
||||
build/ROMID/lib/lib_4f5e0.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/scale.o (section); \
|
||||
|
|
|
|||
|
|
@ -9,6 +9,5 @@ bool func0004f854(OSMesgQueue *mq, struct var800a3180 *arg1, s32 arg2);
|
|||
u32 func0004f9b0(void);
|
||||
u32 func0004fbc0(void);
|
||||
u32 func0004fbf0(void);
|
||||
u32 func0004fc60(void);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -478,121 +478,3 @@ glabel func0004fbf0
|
|||
/* 4fc58: 03e00008 */ jr $ra
|
||||
/* 4fc5c: 00000000 */ nop
|
||||
);
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0004fc60
|
||||
/* 4fc60: 27bdffe8 */ addiu $sp,$sp,-24
|
||||
/* 4fc64: afbf0014 */ sw $ra,0x14($sp)
|
||||
/* 4fc68: afa5001c */ sw $a1,0x1c($sp)
|
||||
/* 4fc6c: afa60020 */ sw $a2,0x20($sp)
|
||||
/* 4fc70: afa70024 */ sw $a3,0x24($sp)
|
||||
/* 4fc74: 0c012918 */ jal guMtxIdentF
|
||||
/* 4fc78: afa40018 */ sw $a0,0x18($sp)
|
||||
/* 4fc7c: c7a40020 */ lwc1 $f4,0x20($sp)
|
||||
/* 4fc80: c7a6001c */ lwc1 $f6,0x1c($sp)
|
||||
/* 4fc84: 3c014000 */ lui $at,0x4000
|
||||
/* 4fc88: 44814000 */ mtc1 $at,$f8
|
||||
/* 4fc8c: 46062001 */ sub.s $f0,$f4,$f6
|
||||
/* 4fc90: 8fa20018 */ lw $v0,0x18($sp)
|
||||
/* 4fc94: c7ae0028 */ lwc1 $f14,0x28($sp)
|
||||
/* 4fc98: c7b00030 */ lwc1 $f16,0x30($sp)
|
||||
/* 4fc9c: 46004283 */ div.s $f10,$f8,$f0
|
||||
/* 4fca0: c7b2002c */ lwc1 $f18,0x2c($sp)
|
||||
/* 4fca4: 44813000 */ mtc1 $at,$f6
|
||||
/* 4fca8: 3c01c000 */ lui $at,0xc000
|
||||
/* 4fcac: 46128301 */ sub.s $f12,$f16,$f18
|
||||
/* 4fcb0: 00001825 */ or $v1,$zero,$zero
|
||||
/* 4fcb4: 24040004 */ addiu $a0,$zero,0x4
|
||||
/* 4fcb8: e44a0000 */ swc1 $f10,0x0($v0)
|
||||
/* 4fcbc: c7a40024 */ lwc1 $f4,0x24($sp)
|
||||
/* 4fcc0: 44815000 */ mtc1 $at,$f10
|
||||
/* 4fcc4: 3c013f80 */ lui $at,0x3f80
|
||||
/* 4fcc8: 46047081 */ sub.s $f2,$f14,$f4
|
||||
/* 4fccc: 460c5103 */ div.s $f4,$f10,$f12
|
||||
/* 4fcd0: 46023203 */ div.s $f8,$f6,$f2
|
||||
/* 4fcd4: e4440028 */ swc1 $f4,0x28($v0)
|
||||
/* 4fcd8: e4480014 */ swc1 $f8,0x14($v0)
|
||||
/* 4fcdc: c7a8001c */ lwc1 $f8,0x1c($sp)
|
||||
/* 4fce0: c7a60020 */ lwc1 $f6,0x20($sp)
|
||||
/* 4fce4: 46083280 */ add.s $f10,$f6,$f8
|
||||
/* 4fce8: 46005107 */ neg.s $f4,$f10
|
||||
/* 4fcec: 46002183 */ div.s $f6,$f4,$f0
|
||||
/* 4fcf0: e4460030 */ swc1 $f6,0x30($v0)
|
||||
/* 4fcf4: c7a80024 */ lwc1 $f8,0x24($sp)
|
||||
/* 4fcf8: 46087280 */ add.s $f10,$f14,$f8
|
||||
/* 4fcfc: 46128200 */ add.s $f8,$f16,$f18
|
||||
/* 4fd00: 46005107 */ neg.s $f4,$f10
|
||||
/* 4fd04: 46004287 */ neg.s $f10,$f8
|
||||
/* 4fd08: 46022183 */ div.s $f6,$f4,$f2
|
||||
/* 4fd0c: 460c5103 */ div.s $f4,$f10,$f12
|
||||
/* 4fd10: e4460034 */ swc1 $f6,0x34($v0)
|
||||
/* 4fd14: 44813000 */ mtc1 $at,$f6
|
||||
/* 4fd18: 00000000 */ nop
|
||||
/* 4fd1c: e446003c */ swc1 $f6,0x3c($v0)
|
||||
/* 4fd20: e4440038 */ swc1 $f4,0x38($v0)
|
||||
/* 4fd24: c7a00034 */ lwc1 $f0,0x34($sp)
|
||||
/* 4fd28: c4480000 */ lwc1 $f8,0x0($v0)
|
||||
/* 4fd2c: 24630001 */ addiu $v1,$v1,0x1
|
||||
/* 4fd30: c4520004 */ lwc1 $f18,0x4($v0)
|
||||
/* 4fd34: 46004302 */ mul.s $f12,$f8,$f0
|
||||
/* 4fd38: c44e0008 */ lwc1 $f14,0x8($v0)
|
||||
/* 4fd3c: 10640010 */ beq $v1,$a0,.L0004fd80
|
||||
/* 4fd40: c450000c */ lwc1 $f16,0xc($v0)
|
||||
.L0004fd44:
|
||||
/* 4fd44: 46009282 */ mul.s $f10,$f18,$f0
|
||||
/* 4fd48: c4480010 */ lwc1 $f8,0x10($v0)
|
||||
/* 4fd4c: c4520014 */ lwc1 $f18,0x14($v0)
|
||||
/* 4fd50: 46007182 */ mul.s $f6,$f14,$f0
|
||||
/* 4fd54: c44e0018 */ lwc1 $f14,0x18($v0)
|
||||
/* 4fd58: 24630001 */ addiu $v1,$v1,0x1
|
||||
/* 4fd5c: 46008102 */ mul.s $f4,$f16,$f0
|
||||
/* 4fd60: c450001c */ lwc1 $f16,0x1c($v0)
|
||||
/* 4fd64: e44c0000 */ swc1 $f12,0x0($v0)
|
||||
/* 4fd68: 46004302 */ mul.s $f12,$f8,$f0
|
||||
/* 4fd6c: e44a0004 */ swc1 $f10,0x4($v0)
|
||||
/* 4fd70: e4460008 */ swc1 $f6,0x8($v0)
|
||||
/* 4fd74: 24420010 */ addiu $v0,$v0,0x10
|
||||
/* 4fd78: 1464fff2 */ bne $v1,$a0,.L0004fd44
|
||||
/* 4fd7c: e444fffc */ swc1 $f4,-0x4($v0)
|
||||
.L0004fd80:
|
||||
/* 4fd80: 46009282 */ mul.s $f10,$f18,$f0
|
||||
/* 4fd84: 24420010 */ addiu $v0,$v0,0x10
|
||||
/* 4fd88: e44cfff0 */ swc1 $f12,-0x10($v0)
|
||||
/* 4fd8c: 46007182 */ mul.s $f6,$f14,$f0
|
||||
/* 4fd90: 00000000 */ nop
|
||||
/* 4fd94: 46008102 */ mul.s $f4,$f16,$f0
|
||||
/* 4fd98: e44afff4 */ swc1 $f10,-0xc($v0)
|
||||
/* 4fd9c: e446fff8 */ swc1 $f6,-0x8($v0)
|
||||
/* 4fda0: e444fffc */ swc1 $f4,-0x4($v0)
|
||||
/* 4fda4: 8fbf0014 */ lw $ra,0x14($sp)
|
||||
/* 4fda8: 27bd0018 */ addiu $sp,$sp,0x18
|
||||
/* 4fdac: 03e00008 */ jr $ra
|
||||
/* 4fdb0: 00000000 */ nop
|
||||
/* 4fdb4: 27bdff98 */ addiu $sp,$sp,-104
|
||||
/* 4fdb8: 44856000 */ mtc1 $a1,$f12
|
||||
/* 4fdbc: 44867000 */ mtc1 $a2,$f14
|
||||
/* 4fdc0: 44878000 */ mtc1 $a3,$f16
|
||||
/* 4fdc4: c7a40078 */ lwc1 $f4,0x78($sp)
|
||||
/* 4fdc8: c7a6007c */ lwc1 $f6,0x7c($sp)
|
||||
/* 4fdcc: c7a80080 */ lwc1 $f8,0x80($sp)
|
||||
/* 4fdd0: c7aa0084 */ lwc1 $f10,0x84($sp)
|
||||
/* 4fdd4: afbf0024 */ sw $ra,0x24($sp)
|
||||
/* 4fdd8: afa40068 */ sw $a0,0x68($sp)
|
||||
/* 4fddc: 44056000 */ mfc1 $a1,$f12
|
||||
/* 4fde0: 44067000 */ mfc1 $a2,$f14
|
||||
/* 4fde4: 44078000 */ mfc1 $a3,$f16
|
||||
/* 4fde8: 27a40028 */ addiu $a0,$sp,0x28
|
||||
/* 4fdec: e7a40010 */ swc1 $f4,0x10($sp)
|
||||
/* 4fdf0: e7a60014 */ swc1 $f6,0x14($sp)
|
||||
/* 4fdf4: e7a80018 */ swc1 $f8,0x18($sp)
|
||||
/* 4fdf8: 0c013f18 */ jal func0004fc60
|
||||
/* 4fdfc: e7aa001c */ swc1 $f10,0x1c($sp)
|
||||
/* 4fe00: 27a40028 */ addiu $a0,$sp,0x28
|
||||
/* 4fe04: 0c0128d8 */ jal guMtxF2L
|
||||
/* 4fe08: 8fa50068 */ lw $a1,0x68($sp)
|
||||
/* 4fe0c: 8fbf0024 */ lw $ra,0x24($sp)
|
||||
/* 4fe10: 27bd0068 */ addiu $sp,$sp,0x68
|
||||
/* 4fe14: 03e00008 */ jr $ra
|
||||
/* 4fe18: 00000000 */ nop
|
||||
/* 4fe1c: 00000000 */ nop
|
||||
);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,53 @@
|
|||
#include <ultra64.h>
|
||||
|
||||
void guOrthoF(float mf[4][4], float l, float r, float b, float t, float n, float f, float scale)
|
||||
{
|
||||
int i, j;
|
||||
|
||||
guMtxIdentF(mf);
|
||||
|
||||
mf[0][0] = 2.0f / (r - l);
|
||||
mf[1][1] = 2.0f / (t - b);
|
||||
mf[2][2] = -2.0f / (f - n);
|
||||
mf[3][0] = -(r + l) / (r - l);
|
||||
mf[3][1] = -(t + b) / (t - b);
|
||||
mf[3][2] = -(f + n) / (f - n);
|
||||
mf[3][3] = 1;
|
||||
|
||||
for (i = 0; i < 4; i++) {
|
||||
for (j = 0; j < 4; j++) {
|
||||
mf[i][j] *= scale;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0004fdb4
|
||||
/* 4fdb4: 27bdff98 */ addiu $sp,$sp,-104
|
||||
/* 4fdb8: 44856000 */ mtc1 $a1,$f12
|
||||
/* 4fdbc: 44867000 */ mtc1 $a2,$f14
|
||||
/* 4fdc0: 44878000 */ mtc1 $a3,$f16
|
||||
/* 4fdc4: c7a40078 */ lwc1 $f4,0x78($sp)
|
||||
/* 4fdc8: c7a6007c */ lwc1 $f6,0x7c($sp)
|
||||
/* 4fdcc: c7a80080 */ lwc1 $f8,0x80($sp)
|
||||
/* 4fdd0: c7aa0084 */ lwc1 $f10,0x84($sp)
|
||||
/* 4fdd4: afbf0024 */ sw $ra,0x24($sp)
|
||||
/* 4fdd8: afa40068 */ sw $a0,0x68($sp)
|
||||
/* 4fddc: 44056000 */ mfc1 $a1,$f12
|
||||
/* 4fde0: 44067000 */ mfc1 $a2,$f14
|
||||
/* 4fde4: 44078000 */ mfc1 $a3,$f16
|
||||
/* 4fde8: 27a40028 */ addiu $a0,$sp,0x28
|
||||
/* 4fdec: e7a40010 */ swc1 $f4,0x10($sp)
|
||||
/* 4fdf0: e7a60014 */ swc1 $f6,0x14($sp)
|
||||
/* 4fdf4: e7a80018 */ swc1 $f8,0x18($sp)
|
||||
/* 4fdf8: 0c013f18 */ jal guOrthoF
|
||||
/* 4fdfc: e7aa001c */ swc1 $f10,0x1c($sp)
|
||||
/* 4fe00: 27a40028 */ addiu $a0,$sp,0x28
|
||||
/* 4fe04: 0c0128d8 */ jal guMtxF2L
|
||||
/* 4fe08: 8fa50068 */ lw $a1,0x68($sp)
|
||||
/* 4fe0c: 8fbf0024 */ lw $ra,0x24($sp)
|
||||
/* 4fe10: 27bd0068 */ addiu $sp,$sp,0x68
|
||||
/* 4fe14: 03e00008 */ jr $ra
|
||||
/* 4fe18: 00000000 */ nop
|
||||
/* 4fe1c: 00000000 */ nop
|
||||
);
|
||||
Loading…
Reference in New Issue