Decompile func0f14d2c8
This commit is contained in:
parent
9f149a80f6
commit
012325fec9
|
|
@ -2071,209 +2071,46 @@ void func0f14d064(s32 index, u8 *arg1)
|
|||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f14d2c8
|
||||
/* f14d2c8: 27bdff70 */ addiu $sp,$sp,-144
|
||||
/* f14d2cc: 3c02800a */ lui $v0,%hi(var800a45a0)
|
||||
/* f14d2d0: 8c4245a0 */ lw $v0,%lo(var800a45a0)($v0)
|
||||
/* f14d2d4: afb20028 */ sw $s2,0x28($sp)
|
||||
/* f14d2d8: afbf002c */ sw $ra,0x2c($sp)
|
||||
/* f14d2dc: afb10024 */ sw $s1,0x24($sp)
|
||||
/* f14d2e0: afb00020 */ sw $s0,0x20($sp)
|
||||
/* f14d2e4: afa50094 */ sw $a1,0x94($sp)
|
||||
/* f14d2e8: 3c0f8008 */ lui $t7,%hi(var8007f9d8)
|
||||
/* f14d2ec: 25eff9d8 */ addiu $t7,$t7,%lo(var8007f9d8)
|
||||
/* f14d2f0: 00809025 */ or $s2,$a0,$zero
|
||||
/* f14d2f4: 24080080 */ addiu $t0,$zero,0x80
|
||||
/* f14d2f8: 25ea0024 */ addiu $t2,$t7,0x24
|
||||
/* f14d2fc: 27ae0050 */ addiu $t6,$sp,0x50
|
||||
/* f14d300: 8c510474 */ lw $s1,0x474($v0)
|
||||
/* f14d304: 8c500478 */ lw $s0,0x478($v0)
|
||||
.L0f14d308:
|
||||
/* f14d308: 8de10000 */ lw $at,0x0($t7)
|
||||
/* f14d30c: 25ef000c */ addiu $t7,$t7,0xc
|
||||
/* f14d310: 25ce000c */ addiu $t6,$t6,0xc
|
||||
/* f14d314: adc1fff4 */ sw $at,-0xc($t6)
|
||||
/* f14d318: 8de1fff8 */ lw $at,-0x8($t7)
|
||||
/* f14d31c: adc1fff8 */ sw $at,-0x8($t6)
|
||||
/* f14d320: 8de1fffc */ lw $at,-0x4($t7)
|
||||
/* f14d324: 15eafff8 */ bne $t7,$t2,.L0f14d308
|
||||
/* f14d328: adc1fffc */ sw $at,-0x4($t6)
|
||||
/* f14d32c: 00003825 */ or $a3,$zero,$zero
|
||||
/* f14d330: 24050080 */ addiu $a1,$zero,0x80
|
||||
/* f14d334: 000731c0 */ sll $a2,$a3,0x7
|
||||
.L0f14d338:
|
||||
/* f14d338: 00065880 */ sll $t3,$a2,0x2
|
||||
/* f14d33c: 022b1821 */ addu $v1,$s1,$t3
|
||||
/* f14d340: 02462021 */ addu $a0,$s2,$a2
|
||||
/* f14d344: 00001025 */ or $v0,$zero,$zero
|
||||
.L0f14d348:
|
||||
/* f14d348: 908c0000 */ lbu $t4,0x0($a0)
|
||||
/* f14d34c: 24420001 */ addiu $v0,$v0,0x1
|
||||
/* f14d350: 24840001 */ addiu $a0,$a0,0x1
|
||||
/* f14d354: 448c2000 */ mtc1 $t4,$f4
|
||||
/* f14d358: 3c014f80 */ lui $at,0x4f80
|
||||
/* f14d35c: 05810004 */ bgez $t4,.L0f14d370
|
||||
/* f14d360: 468021a0 */ cvt.s.w $f6,$f4
|
||||
/* f14d364: 44814000 */ mtc1 $at,$f8
|
||||
/* f14d368: 00000000 */ nop
|
||||
/* f14d36c: 46083180 */ add.s $f6,$f6,$f8
|
||||
.L0f14d370:
|
||||
/* f14d370: 24630004 */ addiu $v1,$v1,0x4
|
||||
/* f14d374: 1445fff4 */ bne $v0,$a1,.L0f14d348
|
||||
/* f14d378: e466fffc */ swc1 $f6,-0x4($v1)
|
||||
/* f14d37c: 24e70001 */ addiu $a3,$a3,0x1
|
||||
/* f14d380: 00e8082a */ slt $at,$a3,$t0
|
||||
/* f14d384: 5420ffec */ bnezl $at,.L0f14d338
|
||||
/* f14d388: 000731c0 */ sll $a2,$a3,0x7
|
||||
/* f14d38c: 27a40050 */ addiu $a0,$sp,0x50
|
||||
/* f14d390: 0fc53613 */ jal func0f14d84c
|
||||
/* f14d394: 24050003 */ addiu $a1,$zero,0x3
|
||||
/* f14d398: 240d0003 */ addiu $t5,$zero,0x3
|
||||
/* f14d39c: afad0010 */ sw $t5,0x10($sp)
|
||||
/* f14d3a0: 02202025 */ or $a0,$s1,$zero
|
||||
/* f14d3a4: 02002825 */ or $a1,$s0,$zero
|
||||
/* f14d3a8: 24060080 */ addiu $a2,$zero,0x80
|
||||
/* f14d3ac: 0fc53636 */ jal func0f14d8d8
|
||||
/* f14d3b0: 27a70050 */ addiu $a3,$sp,0x50
|
||||
/* f14d3b4: 3c013e80 */ lui $at,0x3e80
|
||||
/* f14d3b8: 44817000 */ mtc1 $at,$f14
|
||||
/* f14d3bc: 3c01437f */ lui $at,0x437f
|
||||
/* f14d3c0: 44816000 */ mtc1 $at,$f12
|
||||
/* f14d3c4: 44801000 */ mtc1 $zero,$f2
|
||||
/* f14d3c8: 8fa80094 */ lw $t0,0x94($sp)
|
||||
/* f14d3cc: 00003825 */ or $a3,$zero,$zero
|
||||
/* f14d3d0: 24093f00 */ addiu $t1,$zero,0x3f00
|
||||
/* f14d3d4: 2406007e */ addiu $a2,$zero,0x7e
|
||||
.L0f14d3d8:
|
||||
/* f14d3d8: 00001825 */ or $v1,$zero,$zero
|
||||
/* f14d3dc: 01002025 */ or $a0,$t0,$zero
|
||||
/* f14d3e0: 00e02825 */ or $a1,$a3,$zero
|
||||
.L0f14d3e4:
|
||||
/* f14d3e4: 0005c880 */ sll $t9,$a1,0x2
|
||||
/* f14d3e8: 03301021 */ addu $v0,$t9,$s0
|
||||
/* f14d3ec: c44a0000 */ lwc1 $f10,0x0($v0)
|
||||
/* f14d3f0: c4500004 */ lwc1 $f16,0x4($v0)
|
||||
/* f14d3f4: c4440200 */ lwc1 $f4,0x200($v0)
|
||||
/* f14d3f8: c4460204 */ lwc1 $f6,0x204($v0)
|
||||
/* f14d3fc: 46105480 */ add.s $f18,$f10,$f16
|
||||
/* f14d400: 24a50002 */ addiu $a1,$a1,0x2
|
||||
/* f14d404: 24630002 */ addiu $v1,$v1,0x2
|
||||
/* f14d408: 240a0001 */ addiu $t2,$zero,0x1
|
||||
/* f14d40c: 46049200 */ add.s $f8,$f18,$f4
|
||||
/* f14d410: 3c014f00 */ lui $at,0x4f00
|
||||
/* f14d414: 46083280 */ add.s $f10,$f6,$f8
|
||||
/* f14d418: 460e5002 */ mul.s $f0,$f10,$f14
|
||||
/* f14d41c: 4602003c */ c.lt.s $f0,$f2
|
||||
/* f14d420: 00000000 */ nop
|
||||
/* f14d424: 45020003 */ bc1fl .L0f14d434
|
||||
/* f14d428: 4600603c */ c.lt.s $f12,$f0
|
||||
/* f14d42c: 46001006 */ mov.s $f0,$f2
|
||||
/* f14d430: 4600603c */ c.lt.s $f12,$f0
|
||||
.L0f14d434:
|
||||
/* f14d434: 00000000 */ nop
|
||||
/* f14d438: 45020003 */ bc1fl .L0f14d448
|
||||
/* f14d43c: 4458f800 */ cfc1 $t8,$31
|
||||
/* f14d440: 46006006 */ mov.s $f0,$f12
|
||||
/* f14d444: 4458f800 */ cfc1 $t8,$31
|
||||
.L0f14d448:
|
||||
/* f14d448: 44caf800 */ ctc1 $t2,$31
|
||||
/* f14d44c: 00000000 */ nop
|
||||
/* f14d450: 46000424 */ cvt.w.s $f16,$f0
|
||||
/* f14d454: 444af800 */ cfc1 $t2,$31
|
||||
/* f14d458: 00000000 */ nop
|
||||
/* f14d45c: 314a0078 */ andi $t2,$t2,0x78
|
||||
/* f14d460: 51400013 */ beqzl $t2,.L0f14d4b0
|
||||
/* f14d464: 440a8000 */ mfc1 $t2,$f16
|
||||
/* f14d468: 44818000 */ mtc1 $at,$f16
|
||||
/* f14d46c: 240a0001 */ addiu $t2,$zero,0x1
|
||||
/* f14d470: 46100401 */ sub.s $f16,$f0,$f16
|
||||
/* f14d474: 44caf800 */ ctc1 $t2,$31
|
||||
/* f14d478: 00000000 */ nop
|
||||
/* f14d47c: 46008424 */ cvt.w.s $f16,$f16
|
||||
/* f14d480: 444af800 */ cfc1 $t2,$31
|
||||
/* f14d484: 00000000 */ nop
|
||||
/* f14d488: 314a0078 */ andi $t2,$t2,0x78
|
||||
/* f14d48c: 15400005 */ bnez $t2,.L0f14d4a4
|
||||
/* f14d490: 00000000 */ nop
|
||||
/* f14d494: 440a8000 */ mfc1 $t2,$f16
|
||||
/* f14d498: 3c018000 */ lui $at,0x8000
|
||||
/* f14d49c: 10000007 */ b .L0f14d4bc
|
||||
/* f14d4a0: 01415025 */ or $t2,$t2,$at
|
||||
.L0f14d4a4:
|
||||
/* f14d4a4: 10000005 */ b .L0f14d4bc
|
||||
/* f14d4a8: 240affff */ addiu $t2,$zero,-1
|
||||
/* f14d4ac: 440a8000 */ mfc1 $t2,$f16
|
||||
.L0f14d4b0:
|
||||
/* f14d4b0: 00000000 */ nop
|
||||
/* f14d4b4: 0540fffb */ bltz $t2,.L0f14d4a4
|
||||
/* f14d4b8: 00000000 */ nop
|
||||
.L0f14d4bc:
|
||||
/* f14d4bc: 44d8f800 */ ctc1 $t8,$31
|
||||
/* f14d4c0: 24840001 */ addiu $a0,$a0,0x1
|
||||
/* f14d4c4: 1466ffc7 */ bne $v1,$a2,.L0f14d3e4
|
||||
/* f14d4c8: a08affff */ sb $t2,-0x1($a0)
|
||||
/* f14d4cc: 24e70100 */ addiu $a3,$a3,0x100
|
||||
/* f14d4d0: 14e9ffc1 */ bne $a3,$t1,.L0f14d3d8
|
||||
/* f14d4d4: 25080040 */ addiu $t0,$t0,0x40
|
||||
/* f14d4d8: 8fbf002c */ lw $ra,0x2c($sp)
|
||||
/* f14d4dc: 8fb00020 */ lw $s0,0x20($sp)
|
||||
/* f14d4e0: 8fb10024 */ lw $s1,0x24($sp)
|
||||
/* f14d4e4: 8fb20028 */ lw $s2,0x28($sp)
|
||||
/* f14d4e8: 03e00008 */ jr $ra
|
||||
/* f14d4ec: 27bd0090 */ addiu $sp,$sp,0x90
|
||||
);
|
||||
void func0f14d2c8(u8 *arg0, u8 *arg1)
|
||||
{
|
||||
f32 *s1 = (f32 *)var800a45a0->unk474;
|
||||
f32 *s0 = (f32 *)var800a45a0->unk478;
|
||||
s32 size = 128;
|
||||
s32 i;
|
||||
s32 j;
|
||||
s32 k;
|
||||
s32 l;
|
||||
f32 sp50[] = {1, 1, 1, 1, 1, 1, 1, 1, 1};
|
||||
s32 four = 4;
|
||||
|
||||
f32 var8007f9d8 = 1;
|
||||
f32 var8007f9dc = 1;
|
||||
f32 var8007f9e0 = 1;
|
||||
f32 var8007f9e4 = 1;
|
||||
f32 var8007f9e8 = 1;
|
||||
f32 var8007f9ec = 1;
|
||||
f32 var8007f9f0 = 1;
|
||||
f32 var8007f9f4 = 1;
|
||||
f32 var8007f9f8 = 1;
|
||||
for (i = 0; i < size; i++) {
|
||||
for (j = 0; j < size; j++) {
|
||||
s1[i * size + j] = *(j + arg0 + i * size);
|
||||
}
|
||||
}
|
||||
|
||||
// Mismatch: Regalloc and some swapped instructions
|
||||
//void func0f14d2c8(u8 *arg0, u8 *arg1)
|
||||
//{
|
||||
// f32 *s1 = (f32 *)var800a45a0->unk474;
|
||||
// f32 *s0 = (f32 *)var800a45a0->unk478;
|
||||
// s32 size = 128;
|
||||
// s32 i;
|
||||
// s32 j;
|
||||
// s32 k;
|
||||
// s32 l;
|
||||
// f32 sp50[] = {1, 1, 1, 1, 1, 1, 1, 1, 1};
|
||||
//
|
||||
// for (i = 0; i < size; i++) {
|
||||
// for (j = 0; j < size; j++) {
|
||||
// s1[i * size + j] = *(j + arg0 + i * size);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// func0f14d84c(sp50, 3);
|
||||
// func0f14d8d8(s1, s0, 128, sp50, 3);
|
||||
//
|
||||
// for (k = 0; k < 63 * 64; k += 64) {
|
||||
// for (l = 0; l < 63; l++) {
|
||||
// f32 *ptr = &s0[k * 4 + l * 2];
|
||||
// f32 f0;
|
||||
//
|
||||
// f0 = (ptr[0] + ptr[1] + ptr[128] + ptr[129]) / 4.0f;
|
||||
//
|
||||
// if (f0 < 0.0f) {
|
||||
// f0 = 0.0f;
|
||||
// }
|
||||
//
|
||||
// if (f0 > 255.0f) {
|
||||
// f0 = 255.0f;
|
||||
// }
|
||||
//
|
||||
// arg1[k + l] = f0;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
func0f14d84c(sp50, 3);
|
||||
func0f14d8d8(s1, s0, 128, sp50, 3);
|
||||
|
||||
for (k = 0; k < 63 * 64; k += 64) {
|
||||
for (l = 0; l < 63; l++) {
|
||||
f32 *ptr = &s0[k * four + l * 2];
|
||||
f32 f0;
|
||||
|
||||
f0 = (ptr[0] + ptr[1] + ptr[128] + ptr[129]) / 4.0f;
|
||||
|
||||
if (f0 < 0.0f) {
|
||||
f0 = 0.0f;
|
||||
}
|
||||
|
||||
if (f0 > 255.0f) {
|
||||
f0 = 255.0f;
|
||||
}
|
||||
|
||||
arg1[k + l] = f0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GLOBAL_ASM(
|
||||
glabel func0f14d4f0
|
||||
|
|
|
|||
Loading…
Reference in New Issue