Decompile hudRenderSlayerRocketLens

This commit is contained in:
Ryan Dwyer 2020-12-13 12:36:18 +10:00
parent 2f59959fe5
commit c496db2ec8
2 changed files with 51 additions and 157 deletions

View File

@ -33,10 +33,6 @@ const char var7f1b5d80[] = "envcol";
const char var7f1b5d88[] = "primcol";
const char var7f1b5d90[] = "sfxxx";
const char var7f1b5d98[] = "sfyyy";
const char var7f1b5da0[] = "interlaceGfx";
const char var7f1b5db0[] = "BlueInterlaceGfx";
const char var7f1b5dc4[] = "stretchBlurGfx";
const char var7f1b5dd4[] = "blurGfxFisheye";
GLOBAL_ASM(
glabel func0f141820
@ -1014,157 +1010,55 @@ Gfx *hudRenderStatic(Gfx *gdl, u32 arg1, s32 arg2)
return gdl;
}
GLOBAL_ASM(
glabel hudRenderSlayerRocketLens
.late_rodata
glabel var7f1b5f2c
.word 0x3f060a92
glabel var7f1b5f30
.word 0x40278d36
.text
/* f142774: 27bdff80 */ addiu $sp,$sp,-128
/* f142778: afbf0064 */ sw $ra,0x64($sp)
/* f14277c: afb40050 */ sw $s4,0x50($sp)
/* f142780: afb20048 */ sw $s2,0x48($sp)
/* f142784: afb00040 */ sw $s0,0x40($sp)
/* f142788: 00a08025 */ or $s0,$a1,$zero
/* f14278c: 00809025 */ or $s2,$a0,$zero
/* f142790: 00c0a025 */ or $s4,$a2,$zero
/* f142794: afbe0060 */ sw $s8,0x60($sp)
/* f142798: afb7005c */ sw $s7,0x5c($sp)
/* f14279c: afb60058 */ sw $s6,0x58($sp)
/* f1427a0: afb50054 */ sw $s5,0x54($sp)
/* f1427a4: afb3004c */ sw $s3,0x4c($sp)
/* f1427a8: afb10044 */ sw $s1,0x44($sp)
/* f1427ac: f7b80038 */ sdc1 $f24,0x38($sp)
/* f1427b0: f7b60030 */ sdc1 $f22,0x30($sp)
/* f1427b4: 0c002ac7 */ jal viGetUnk28
/* f1427b8: f7b40028 */ sdc1 $f20,0x28($sp)
/* f1427bc: 0c002f44 */ jal viGetViewTop
/* f1427c0: afa2007c */ sw $v0,0x7c($sp)
/* f1427c4: 0c002f26 */ jal viGetViewY
/* f1427c8: 0040b825 */ or $s7,$v0,$zero
/* f1427cc: 0c002f22 */ jal viGetViewX
/* f1427d0: 00408825 */ or $s1,$v0,$zero
/* f1427d4: 0c002f40 */ jal viGetViewLeft
/* f1427d8: 0040f025 */ or $s8,$v0,$zero
/* f1427dc: 3c017f1b */ lui $at,%hi(var7f1b5f2c)
/* f1427e0: c4365f2c */ lwc1 $f22,%lo(var7f1b5f2c)($at)
/* f1427e4: 3c018006 */ lui $at,%hi(var80061630)
/* f1427e8: c4241630 */ lwc1 $f4,%lo(var80061630)($at)
/* f1427ec: 3c014416 */ lui $at,0x4416
/* f1427f0: 44813000 */ mtc1 $at,$f6
/* f1427f4: 2401000c */ addiu $at,$zero,0xc
/* f1427f8: 3c038008 */ lui $v1,%hi(var8007f840)
/* f1427fc: 46062202 */ mul.s $f8,$f4,$f6
/* f142800: 2463f840 */ addiu $v1,$v1,%lo(var8007f840)
/* f142804: 8c780000 */ lw $t8,0x0($v1)
/* f142808: 3c04800a */ lui $a0,%hi(var800a41c0)
/* f14280c: afa20068 */ sw $v0,0x68($sp)
/* f142810: 27190001 */ addiu $t9,$t8,0x1
/* f142814: ac790000 */ sw $t9,0x0($v1)
/* f142818: 4600428d */ trunc.w.s $f10,$f8
/* f14281c: 248441c0 */ addiu $a0,$a0,%lo(var800a41c0)
/* f142820: 3c057f1b */ lui $a1,%hi(var7f1b5da0)
/* f142824: 4600b506 */ mov.s $f20,$f22
/* f142828: 44135000 */ mfc1 $s3,$f10
/* f14282c: 00000000 */ nop
/* f142830: 0261001a */ div $zero,$s3,$at
/* f142834: 00009810 */ mfhi $s3
/* f142838: 2b210002 */ slti $at,$t9,0x2
/* f14283c: 14200003 */ bnez $at,.L0f14284c
/* f142840: 00000000 */ nop
/* f142844: 10000042 */ b .L0f142950
/* f142848: 02401025 */ or $v0,$s2,$zero
.L0f14284c:
/* f14284c: 0c004c4c */ jal strcpy
/* f142850: 24a55da0 */ addiu $a1,$a1,%lo(var7f1b5da0)
/* f142854: 44912000 */ mtc1 $s1,$f4
/* f142858: 3c09e700 */ lui $t1,0xe700
/* f14285c: ae490000 */ sw $t1,0x0($s2)
/* f142860: ae400004 */ sw $zero,0x4($s2)
/* f142864: 3c017f1b */ lui $at,%hi(var7f1b5f30)
/* f142868: c4305f30 */ lwc1 $f16,%lo(var7f1b5f30)($at)
/* f14286c: 468021a0 */ cvt.s.w $f6,$f4
/* f142870: 26440008 */ addiu $a0,$s2,0x8
/* f142874: 02002825 */ or $a1,$s0,$zero
/* f142878: 02803025 */ or $a2,$s4,$zero
/* f14287c: 46168481 */ sub.s $f18,$f16,$f22
/* f142880: 0fc5082c */ jal func0f1420b0
/* f142884: 46069603 */ div.s $f24,$f18,$f6
/* f142888: 02f1b021 */ addu $s6,$s7,$s1
/* f14288c: 02f6082a */ slt $at,$s7,$s6
/* f142890: 00409025 */ or $s2,$v0,$zero
/* f142894: 1020002d */ beqz $at,.L0f14294c
/* f142898: 02e08025 */ or $s0,$s7,$zero
/* f14289c: 3c014000 */ lui $at,0x4000
/* f1428a0: 02f38823 */ subu $s1,$s7,$s3
/* f1428a4: 3c14ffff */ lui $s4,0xffff
/* f1428a8: 4481b000 */ mtc1 $at,$f22
/* f1428ac: 369400ff */ ori $s4,$s4,0xff
/* f1428b0: 3c13fb00 */ lui $s3,0xfb00
/* f1428b4: 2415bfff */ addiu $s5,$zero,-16385
.L0f1428b8:
/* f1428b8: 322a0007 */ andi $t2,$s1,0x7
/* f1428bc: 11400003 */ beqz $t2,.L0f1428cc
/* f1428c0: 00000000 */ nop
/* f1428c4: 1617000f */ bne $s0,$s7,.L0f142904
/* f1428c8: 00000000 */ nop
.L0f1428cc:
/* f1428cc: 06210004 */ bgez $s1,.L0f1428e0
/* f1428d0: 322b000f */ andi $t3,$s1,0xf
/* f1428d4: 11600002 */ beqz $t3,.L0f1428e0
/* f1428d8: 00000000 */ nop
/* f1428dc: 256bfff0 */ addiu $t3,$t3,-16
.L0f1428e0:
/* f1428e0: 29610008 */ slti $at,$t3,0x8
/* f1428e4: 10200005 */ beqz $at,.L0f1428fc
/* f1428e8: 24520008 */ addiu $s2,$v0,0x8
/* f1428ec: 24520008 */ addiu $s2,$v0,0x8
/* f1428f0: ac530000 */ sw $s3,0x0($v0)
/* f1428f4: 10000003 */ b .L0f142904
/* f1428f8: ac540004 */ sw $s4,0x4($v0)
.L0f1428fc:
/* f1428fc: ac530000 */ sw $s3,0x0($v0)
/* f142900: ac550004 */ sw $s5,0x4($v0)
.L0f142904:
/* f142904: 0c0068f7 */ jal sinf
/* f142908: 4600a306 */ mov.s $f12,$f20
/* f14290c: 4600b201 */ sub.s $f8,$f22,$f0
/* f142910: 8fac0068 */ lw $t4,0x68($sp)
/* f142914: 02402025 */ or $a0,$s2,$zero
/* f142918: 8fa5007c */ lw $a1,0x7c($sp)
/* f14291c: e7a80014 */ swc1 $f8,0x14($sp)
/* f142920: 02003025 */ or $a2,$s0,$zero
/* f142924: 24070005 */ addiu $a3,$zero,0x5
/* f142928: afb00010 */ sw $s0,0x10($sp)
/* f14292c: afbe001c */ sw $s8,0x1c($sp)
/* f142930: 0fc506ac */ jal func0f141ab0
/* f142934: afac0018 */ sw $t4,0x18($sp)
/* f142938: 26100001 */ addiu $s0,$s0,0x1
/* f14293c: 26310001 */ addiu $s1,$s1,0x1
/* f142940: 00409025 */ or $s2,$v0,$zero
/* f142944: 1616ffdc */ bne $s0,$s6,.L0f1428b8
/* f142948: 4618a500 */ add.s $f20,$f20,$f24
.L0f14294c:
/* f14294c: 02401025 */ or $v0,$s2,$zero
.L0f142950:
/* f142950: 8fbf0064 */ lw $ra,0x64($sp)
/* f142954: d7b40028 */ ldc1 $f20,0x28($sp)
/* f142958: d7b60030 */ ldc1 $f22,0x30($sp)
/* f14295c: d7b80038 */ ldc1 $f24,0x38($sp)
/* f142960: 8fb00040 */ lw $s0,0x40($sp)
/* f142964: 8fb10044 */ lw $s1,0x44($sp)
/* f142968: 8fb20048 */ lw $s2,0x48($sp)
/* f14296c: 8fb3004c */ lw $s3,0x4c($sp)
/* f142970: 8fb40050 */ lw $s4,0x50($sp)
/* f142974: 8fb50054 */ lw $s5,0x54($sp)
/* f142978: 8fb60058 */ lw $s6,0x58($sp)
/* f14297c: 8fb7005c */ lw $s7,0x5c($sp)
/* f142980: 8fbe0060 */ lw $s8,0x60($sp)
/* f142984: 03e00008 */ jr $ra
/* f142988: 27bd0080 */ addiu $sp,$sp,0x80
);
Gfx *hudRenderSlayerRocketLens(Gfx *gdl, u32 colour, u32 alpha)
{
s32 sp7c = viGetUnk28();
s32 viewtop = viGetViewTop();
s32 viewheight = viGetViewY();
s32 viewwidth = viGetViewX();
s32 y;
s32 viewleft = viGetViewLeft();
f32 angle = 0.52359879016876f;
s32 offset = (s32)(var80061630 * 600.0f) % 12;
f32 increment;
s32 offsety;
var8007f840++;
if (var8007f840 >= 2) {
return gdl;
}
strcpy(var800a41c0, "interlaceGfx");
gDPPipeSync(gdl++);
increment = (2.6179938316345f - angle) / viewheight;
gdl = func0f1420b0(gdl, colour, alpha);
for (y = viewtop; y < viewtop + viewheight; y++) {
offsety = y - offset;
if ((offsety % 8) == 0 || y == viewtop) {
if ((offsety % 16) < 8) {
gDPSetEnvColor(gdl++, 0xff, 0xff, 0x00, 0xff);
} else {
gDPSetEnvColor(gdl++, 0xff, 0xff, 0xbf, 0xff);
}
}
gdl = func0f141ab0(gdl, sp7c, y, 5, y, 2.0f - sinf(angle), viewleft, viewwidth);
angle += increment;
}
return gdl;
}
const char var7f1b5db0[] = "BlueInterlaceGfx";
const char var7f1b5dc4[] = "stretchBlurGfx";
const char var7f1b5dd4[] = "blurGfxFisheye";
GLOBAL_ASM(
glabel func0f14298c

View File

@ -4,9 +4,9 @@
#include "types.h"
u32 func0f141820(void);
Gfx *func0f141ab0(Gfx *gdl, u32 arg1, s32 top, u32 arg3, s32 arg4, f32 arg5, s32 arg6, s32 arg7);
Gfx *func0f141ab0(Gfx *gdl, u32 arg1, s32 top, u32 arg3, s32 arg4, f32 arg5, s32 left, s32 width);
u32 func0f141ed4(void);
Gfx *func0f1420b0(Gfx *gdl, u32 colour, u32 arg2);
Gfx *func0f1420b0(Gfx *gdl, u32 colour, u32 alpha);
Gfx *func0f142274(Gfx *gdl, u32 colour, u32 arg2);
Gfx *hudRenderMotionBlur(Gfx *gdl, u32 arg1, s32 arg2);
Gfx *hudRenderStatic(Gfx *gdl, u32 arg1, s32 arg2);