1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-28 15:56:51 +00:00

Match two functions in z_eff_blure (#764)

* new matches

* format

* .s

Co-authored-by: petrie911 <pmontag@DESKTOP-LG8A167.localdomain>
This commit is contained in:
petrie911 2021-04-07 19:13:32 -05:00 committed by GitHub
parent 03882c9214
commit 792056699d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 990 deletions

View file

@ -1,698 +0,0 @@
.rdata
glabel D_8013520C
.asciz "../z_eff_blure.c"
.balign 4
glabel D_80135220
.asciz "index - 1 >= 0"
.balign 4
glabel D_80135230
.asciz "../z_eff_blure.c"
.balign 4
glabel D_80135244
.asciz "index + 2 < this2->now_edge_num"
.balign 4
glabel D_80135264
.asciz "../z_eff_blure.c"
.balign 4
glabel D_80135278
.asciz "z_eff_blure.c::SQ_HermiteInterpolate_disp() \n"
# EUC-JP: | The vertex cannot be secured.
.balign 4
glabel D_801352B8
.asciz "../z_eff_blure.c"
.balign 4
.text
glabel EffectBlure_DrawElemHermiteInterpolation
/* A98670 800214D0 27BDFE08 */ addiu $sp, $sp, -0x1f8
/* A98674 800214D4 AFB40060 */ sw $s4, 0x60($sp)
/* A98678 800214D8 00A0A025 */ move $s4, $a1
/* A9867C 800214DC AFB10054 */ sw $s1, 0x54($sp)
/* A98680 800214E0 AFA60200 */ sw $a2, 0x200($sp)
/* A98684 800214E4 00808825 */ move $s1, $a0
/* A98688 800214E8 AFBF0064 */ sw $ra, 0x64($sp)
/* A9868C 800214EC AFA70204 */ sw $a3, 0x204($sp)
/* A98690 800214F0 3C068013 */ lui $a2, %hi(D_8013520C) # $a2, 0x8013
/* A98694 800214F4 00E02825 */ move $a1, $a3
/* A98698 800214F8 AFB3005C */ sw $s3, 0x5c($sp)
/* A9869C 800214FC AFB20058 */ sw $s2, 0x58($sp)
/* A986A0 80021500 AFB00050 */ sw $s0, 0x50($sp)
/* A986A4 80021504 F7BC0048 */ sdc1 $f28, 0x48($sp)
/* A986A8 80021508 F7BA0040 */ sdc1 $f26, 0x40($sp)
/* A986AC 8002150C F7B80038 */ sdc1 $f24, 0x38($sp)
/* A986B0 80021510 F7B60030 */ sdc1 $f22, 0x30($sp)
/* A986B4 80021514 F7B40028 */ sdc1 $f20, 0x28($sp)
/* A986B8 80021518 240703CB */ li $a3, 971
/* A986BC 8002151C 24C6520C */ addiu $a2, %lo(D_8013520C) # addiu $a2, $a2, 0x520c
/* A986C0 80021520 0C031AB1 */ jal Graph_OpenDisps
/* A986C4 80021524 27A40124 */ addiu $a0, $sp, 0x124
/* A986C8 80021528 27A40138 */ addiu $a0, $sp, 0x138
/* A986CC 8002152C 0C01DF97 */ jal Math_Vec3s_ToVec3f
/* A986D0 80021530 2625000E */ addiu $a1, $s1, 0xe
/* A986D4 80021534 8E8E0004 */ lw $t6, 4($s4)
/* A986D8 80021538 922F019F */ lbu $t7, 0x19f($s1)
/* A986DC 8002153C 27B201EC */ addiu $s2, $sp, 0x1ec
/* A986E0 80021540 448E2000 */ mtc1 $t6, $f4
/* A986E4 80021544 448F4000 */ mtc1 $t7, $f8
/* A986E8 80021548 27B301E4 */ addiu $s3, $sp, 0x1e4
/* A986EC 8002154C 468021A0 */ cvt.s.w $f6, $f4
/* A986F0 80021550 05E10005 */ bgez $t7, .L80021568
/* A986F4 80021554 468042A0 */ cvt.s.w $f10, $f8
/* A986F8 80021558 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* A986FC 8002155C 44818000 */ mtc1 $at, $f16
/* A98700 80021560 00000000 */ nop
/* A98704 80021564 46105280 */ add.s $f10, $f10, $f16
.L80021568:
/* A98708 80021568 460A3003 */ div.s $f0, $f6, $f10
/* A9870C 8002156C 27B801A4 */ addiu $t8, $sp, 0x1a4
/* A98710 80021570 27B901A0 */ addiu $t9, $sp, 0x1a0
/* A98714 80021574 AFB90018 */ sw $t9, 0x18($sp)
/* A98718 80021578 AFB80014 */ sw $t8, 0x14($sp)
/* A9871C 8002157C 02202025 */ move $a0, $s1
/* A98720 80021580 8FA50200 */ lw $a1, 0x200($sp)
/* A98724 80021584 02403825 */ move $a3, $s2
/* A98728 80021588 AFB30010 */ sw $s3, 0x10($sp)
/* A9872C 8002158C 44060000 */ mfc1 $a2, $f0
/* A98730 80021590 0C008294 */ jal EffectBlure_GetComputedValues
/* A98734 80021594 00000000 */ nop
/* A98738 80021598 27A401CC */ addiu $a0, $sp, 0x1cc
/* A9873C 8002159C 0C01DF97 */ jal Math_Vec3s_ToVec3f
/* A98740 800215A0 02402825 */ move $a1, $s2
/* A98744 800215A4 27A401C0 */ addiu $a0, $sp, 0x1c0
/* A98748 800215A8 0C01DF97 */ jal Math_Vec3s_ToVec3f
/* A9874C 800215AC 02602825 */ move $a1, $s3
/* A98750 800215B0 8E88001C */ lw $t0, 0x1c($s4)
/* A98754 800215B4 9229019F */ lbu $t1, 0x19f($s1)
/* A98758 800215B8 44889000 */ mtc1 $t0, $f18
/* A9875C 800215BC 44894000 */ mtc1 $t1, $f8
/* A98760 800215C0 46809120 */ cvt.s.w $f4, $f18
/* A98764 800215C4 05210005 */ bgez $t1, .L800215DC
/* A98768 800215C8 46804420 */ cvt.s.w $f16, $f8
/* A9876C 800215CC 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* A98770 800215D0 44813000 */ mtc1 $at, $f6
/* A98774 800215D4 00000000 */ nop
/* A98778 800215D8 46068400 */ add.s $f16, $f16, $f6
.L800215DC:
/* A9877C 800215DC 46102003 */ div.s $f0, $f4, $f16
/* A98780 800215E0 8FA50200 */ lw $a1, 0x200($sp)
/* A98784 800215E4 27AA019C */ addiu $t2, $sp, 0x19c
/* A98788 800215E8 27AB0198 */ addiu $t3, $sp, 0x198
/* A9878C 800215EC AFAB0018 */ sw $t3, 0x18($sp)
/* A98790 800215F0 AFAA0014 */ sw $t2, 0x14($sp)
/* A98794 800215F4 02202025 */ move $a0, $s1
/* A98798 800215F8 02403825 */ move $a3, $s2
/* A9879C 800215FC AFB30010 */ sw $s3, 0x10($sp)
/* A987A0 80021600 24A50001 */ addiu $a1, $a1, 1
/* A987A4 80021604 44060000 */ mfc1 $a2, $f0
/* A987A8 80021608 0C008294 */ jal EffectBlure_GetComputedValues
/* A987AC 8002160C 00000000 */ nop
/* A987B0 80021610 27A4018C */ addiu $a0, $sp, 0x18c
/* A987B4 80021614 0C01DF97 */ jal Math_Vec3s_ToVec3f
/* A987B8 80021618 02402825 */ move $a1, $s2
/* A987BC 8002161C 27A40180 */ addiu $a0, $sp, 0x180
/* A987C0 80021620 0C01DF97 */ jal Math_Vec3s_ToVec3f
/* A987C4 80021624 02602825 */ move $a1, $s3
/* A987C8 80021628 968C0014 */ lhu $t4, 0x14($s4)
/* A987CC 8002162C 8FB00200 */ lw $s0, 0x200($sp)
/* A987D0 80021630 24010002 */ li $at, 2
/* A987D4 80021634 318D0003 */ andi $t5, $t4, 3
/* A987D8 80021638 15A1000C */ bne $t5, $at, .L8002166C
/* A987DC 8002163C 2610FFFF */ addiu $s0, $s0, -1
/* A987E0 80021640 27A4018C */ addiu $a0, $sp, 0x18c
/* A987E4 80021644 27A501CC */ addiu $a1, $sp, 0x1cc
/* A987E8 80021648 0C01DFB4 */ jal Math_Vec3f_Diff
/* A987EC 8002164C 27A601B4 */ addiu $a2, $sp, 0x1b4
/* A987F0 80021650 27B001A8 */ addiu $s0, $sp, 0x1a8
/* A987F4 80021654 02003025 */ move $a2, $s0
/* A987F8 80021658 27A40180 */ addiu $a0, $sp, 0x180
/* A987FC 8002165C 0C01DFB4 */ jal Math_Vec3f_Diff
/* A98800 80021660 27A501C0 */ addiu $a1, $sp, 0x1c0
/* A98804 80021664 10000030 */ b .L80021728
/* A98808 80021668 3C013F00 */ lui $at, 0x3f00
.L8002166C:
/* A9880C 8002166C 06010006 */ bgez $s0, .L80021688
/* A98810 80021670 3C048013 */ lui $a0, %hi(D_80135220) # $a0, 0x8013
/* A98814 80021674 3C058013 */ lui $a1, %hi(D_80135230)
/* A98818 80021678 24A55230 */ addiu $a1, %lo(D_80135230) # addiu $a1, $a1, 0x5230
/* A9881C 8002167C 24845220 */ addiu $a0, %lo(D_80135220) # addiu $a0, $a0, 0x5220
/* A98820 80021680 0C0007FC */ jal __assert
/* A98824 80021684 240603ED */ li $a2, 1005
.L80021688:
/* A98828 80021688 8E8EFFEC */ lw $t6, -0x14($s4)
/* A9882C 8002168C 922F019F */ lbu $t7, 0x19f($s1)
/* A98830 80021690 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* A98834 80021694 448E5000 */ mtc1 $t6, $f10
/* A98838 80021698 448F4000 */ mtc1 $t7, $f8
/* A9883C 8002169C 468054A0 */ cvt.s.w $f18, $f10
/* A98840 800216A0 05E10004 */ bgez $t7, .L800216B4
/* A98844 800216A4 468041A0 */ cvt.s.w $f6, $f8
/* A98848 800216A8 44812000 */ mtc1 $at, $f4
/* A9884C 800216AC 00000000 */ nop
/* A98850 800216B0 46043180 */ add.s $f6, $f6, $f4
.L800216B4:
/* A98854 800216B4 46069003 */ div.s $f0, $f18, $f6
/* A98858 800216B8 27B801DC */ addiu $t8, $sp, 0x1dc
/* A9885C 800216BC 27B901D8 */ addiu $t9, $sp, 0x1d8
/* A98860 800216C0 AFB90018 */ sw $t9, 0x18($sp)
/* A98864 800216C4 AFB80014 */ sw $t8, 0x14($sp)
/* A98868 800216C8 02202025 */ move $a0, $s1
/* A9886C 800216CC 02002825 */ move $a1, $s0
/* A98870 800216D0 02403825 */ move $a3, $s2
/* A98874 800216D4 AFB30010 */ sw $s3, 0x10($sp)
/* A98878 800216D8 44060000 */ mfc1 $a2, $f0
/* A9887C 800216DC 0C008294 */ jal EffectBlure_GetComputedValues
/* A98880 800216E0 00000000 */ nop
/* A98884 800216E4 27B00118 */ addiu $s0, $sp, 0x118
/* A98888 800216E8 02002025 */ move $a0, $s0
/* A9888C 800216EC 0C01DF97 */ jal Math_Vec3s_ToVec3f
/* A98890 800216F0 02402825 */ move $a1, $s2
/* A98894 800216F4 27A4010C */ addiu $a0, $sp, 0x10c
/* A98898 800216F8 0C01DF97 */ jal Math_Vec3s_ToVec3f
/* A9889C 800216FC 02602825 */ move $a1, $s3
/* A988A0 80021700 27A4018C */ addiu $a0, $sp, 0x18c
/* A988A4 80021704 02002825 */ move $a1, $s0
/* A988A8 80021708 0C01DFB4 */ jal Math_Vec3f_Diff
/* A988AC 8002170C 27A601B4 */ addiu $a2, $sp, 0x1b4
/* A988B0 80021710 27B001A8 */ addiu $s0, $sp, 0x1a8
/* A988B4 80021714 02003025 */ move $a2, $s0
/* A988B8 80021718 27A40180 */ addiu $a0, $sp, 0x180
/* A988BC 8002171C 0C01DFB4 */ jal Math_Vec3f_Diff
/* A988C0 80021720 27A5010C */ addiu $a1, $sp, 0x10c
/* A988C4 80021724 3C013F00 */ li $at, 0x3F000000 # 0.000000
.L80021728:
/* A988C8 80021728 4481A000 */ mtc1 $at, $f20
/* A988CC 8002172C 27A401B4 */ addiu $a0, $sp, 0x1b4
/* A988D0 80021730 4405A000 */ mfc1 $a1, $f20
/* A988D4 80021734 0C01DFD7 */ jal Math_Vec3f_Scale
/* A988D8 80021738 00000000 */ nop
/* A988DC 8002173C 4405A000 */ mfc1 $a1, $f20
/* A988E0 80021740 0C01DFD7 */ jal Math_Vec3f_Scale
/* A988E4 80021744 02002025 */ move $a0, $s0
/* A988E8 80021748 9688002C */ lhu $t0, 0x2c($s4)
/* A988EC 8002174C 24010002 */ li $at, 2
/* A988F0 80021750 8FB00200 */ lw $s0, 0x200($sp)
/* A988F4 80021754 31090003 */ andi $t1, $t0, 3
/* A988F8 80021758 5521000E */ bnel $t1, $at, .L80021794
/* A988FC 8002175C 922A019E */ lbu $t2, 0x19e($s1)
/* A98900 80021760 27B20174 */ addiu $s2, $sp, 0x174
/* A98904 80021764 02403025 */ move $a2, $s2
/* A98908 80021768 27A4018C */ addiu $a0, $sp, 0x18c
/* A9890C 8002176C 0C01DFB4 */ jal Math_Vec3f_Diff
/* A98910 80021770 27A501CC */ addiu $a1, $sp, 0x1cc
/* A98914 80021774 27B00168 */ addiu $s0, $sp, 0x168
/* A98918 80021778 02003025 */ move $a2, $s0
/* A9891C 8002177C 27A40180 */ addiu $a0, $sp, 0x180
/* A98920 80021780 0C01DFB4 */ jal Math_Vec3f_Diff
/* A98924 80021784 27A501C0 */ addiu $a1, $sp, 0x1c0
/* A98928 80021788 10000035 */ b .L80021860
/* A9892C 8002178C 4405A000 */ mfc1 $a1, $f20
/* A98930 80021790 922A019E */ lbu $t2, 0x19e($s1)
.L80021794:
/* A98934 80021794 26100002 */ addiu $s0, $s0, 2
/* A98938 80021798 3C048013 */ lui $a0, %hi(D_80135244) # $a0, 0x8013
/* A9893C 8002179C 020A082A */ slt $at, $s0, $t2
/* A98940 800217A0 14200005 */ bnez $at, .L800217B8
/* A98944 800217A4 24845244 */ addiu $a0, %lo(D_80135244) # addiu $a0, $a0, 0x5244
/* A98948 800217A8 3C058013 */ lui $a1, %hi(D_80135264)
/* A9894C 800217AC 24A55264 */ addiu $a1, %lo(D_80135264) # addiu $a1, $a1, 0x5264
/* A98950 800217B0 0C0007FC */ jal __assert
/* A98954 800217B4 24060408 */ li $a2, 1032
.L800217B8:
/* A98958 800217B8 8E8B0034 */ lw $t3, 0x34($s4)
/* A9895C 800217BC 922C019F */ lbu $t4, 0x19f($s1)
/* A98960 800217C0 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* A98964 800217C4 448B8000 */ mtc1 $t3, $f16
/* A98968 800217C8 448C4000 */ mtc1 $t4, $f8
/* A9896C 800217CC 468082A0 */ cvt.s.w $f10, $f16
/* A98970 800217D0 05810004 */ bgez $t4, .L800217E4
/* A98974 800217D4 46804120 */ cvt.s.w $f4, $f8
/* A98978 800217D8 44819000 */ mtc1 $at, $f18
/* A9897C 800217DC 00000000 */ nop
/* A98980 800217E0 46122100 */ add.s $f4, $f4, $f18
.L800217E4:
/* A98984 800217E4 46045003 */ div.s $f0, $f10, $f4
/* A98988 800217E8 27AD01DC */ addiu $t5, $sp, 0x1dc
/* A9898C 800217EC 27AE01D8 */ addiu $t6, $sp, 0x1d8
/* A98990 800217F0 AFAE0018 */ sw $t6, 0x18($sp)
/* A98994 800217F4 AFAD0014 */ sw $t5, 0x14($sp)
/* A98998 800217F8 02202025 */ move $a0, $s1
/* A9899C 800217FC 02002825 */ move $a1, $s0
/* A989A0 80021800 02403825 */ move $a3, $s2
/* A989A4 80021804 AFB30010 */ sw $s3, 0x10($sp)
/* A989A8 80021808 44060000 */ mfc1 $a2, $f0
/* A989AC 8002180C 0C008294 */ jal EffectBlure_GetComputedValues
/* A989B0 80021810 00000000 */ nop
/* A989B4 80021814 27B00100 */ addiu $s0, $sp, 0x100
/* A989B8 80021818 02002025 */ move $a0, $s0
/* A989BC 8002181C 0C01DF97 */ jal Math_Vec3s_ToVec3f
/* A989C0 80021820 02402825 */ move $a1, $s2
/* A989C4 80021824 27B100F4 */ addiu $s1, $sp, 0xf4
/* A989C8 80021828 02202025 */ move $a0, $s1
/* A989CC 8002182C 0C01DF97 */ jal Math_Vec3s_ToVec3f
/* A989D0 80021830 02602825 */ move $a1, $s3
/* A989D4 80021834 27B20174 */ addiu $s2, $sp, 0x174
/* A989D8 80021838 02403025 */ move $a2, $s2
/* A989DC 8002183C 02002025 */ move $a0, $s0
/* A989E0 80021840 0C01DFB4 */ jal Math_Vec3f_Diff
/* A989E4 80021844 27A501CC */ addiu $a1, $sp, 0x1cc
/* A989E8 80021848 27B00168 */ addiu $s0, $sp, 0x168
/* A989EC 8002184C 02003025 */ move $a2, $s0
/* A989F0 80021850 02202025 */ move $a0, $s1
/* A989F4 80021854 0C01DFB4 */ jal Math_Vec3f_Diff
/* A989F8 80021858 27A501C0 */ addiu $a1, $sp, 0x1c0
/* A989FC 8002185C 4405A000 */ mfc1 $a1, $f20
.L80021860:
/* A98A00 80021860 0C01DFD7 */ jal Math_Vec3f_Scale
/* A98A04 80021864 02402025 */ move $a0, $s2
/* A98A08 80021868 4405A000 */ mfc1 $a1, $f20
/* A98A0C 8002186C 0C01DFD7 */ jal Math_Vec3f_Scale
/* A98A10 80021870 02002025 */ move $a0, $s0
/* A98A14 80021874 8FA40204 */ lw $a0, 0x204($sp)
/* A98A18 80021878 0C031A73 */ jal Graph_Alloc
/* A98A1C 8002187C 24050100 */ li $a1, 256
/* A98A20 80021880 14400006 */ bnez $v0, .L8002189C
/* A98A24 80021884 0040A025 */ move $s4, $v0
/* A98A28 80021888 3C048013 */ lui $a0, %hi(D_80135278) # $a0, 0x8013
/* A98A2C 8002188C 0C00084C */ jal osSyncPrintf
/* A98A30 80021890 24845278 */ addiu $a0, %lo(D_80135278) # addiu $a0, $a0, 0x5278
/* A98A34 80021894 10000187 */ b .L80021EB4
/* A98A38 80021898 00000000 */ nop
.L8002189C:
/* A98A3C 8002189C 27A401CC */ addiu $a0, $sp, 0x1cc
/* A98A40 800218A0 27A50138 */ addiu $a1, $sp, 0x138
/* A98A44 800218A4 0C01DFB4 */ jal Math_Vec3f_Diff
/* A98A48 800218A8 27A60158 */ addiu $a2, $sp, 0x158
/* A98A4C 800218AC 27A40158 */ addiu $a0, $sp, 0x158
/* A98A50 800218B0 0C01DFD7 */ jal Math_Vec3f_Scale
/* A98A54 800218B4 3C054120 */ lui $a1, 0x4120
/* A98A58 800218B8 27A401C0 */ addiu $a0, $sp, 0x1c0
/* A98A5C 800218BC 27A50138 */ addiu $a1, $sp, 0x138
/* A98A60 800218C0 0C01DFB4 */ jal Math_Vec3f_Diff
/* A98A64 800218C4 27A6014C */ addiu $a2, $sp, 0x14c
/* A98A68 800218C8 27A4014C */ addiu $a0, $sp, 0x14c
/* A98A6C 800218CC 0C01DFD7 */ jal Math_Vec3f_Scale
/* A98A70 800218D0 3C054120 */ lui $a1, 0x4120
/* A98A74 800218D4 27A40148 */ addiu $a0, $sp, 0x148
/* A98A78 800218D8 0C01E218 */ jal Color_RGBA8_Copy
/* A98A7C 800218DC 27A501A4 */ addiu $a1, $sp, 0x1a4
/* A98A80 800218E0 27A40144 */ addiu $a0, $sp, 0x144
/* A98A84 800218E4 0C01E218 */ jal Color_RGBA8_Copy
/* A98A88 800218E8 27A501A0 */ addiu $a1, $sp, 0x1a0
/* A98A8C 800218EC 3C028011 */ lui $v0, %hi(D_80115770) # 0.000000
/* A98A90 800218F0 24425770 */ addiu $v0, %lo(D_80115770) # addiu $v0, $v0, 0x5770
/* A98A94 800218F4 8C580000 */ lw $t8, ($v0)
/* A98A98 800218F8 AA980000 */ swl $t8, ($s4)
/* A98A9C 800218FC BA980003 */ swr $t8, 3($s4)
/* A98AA0 80021900 8C4F0004 */ lw $t7, 4($v0)
/* A98AA4 80021904 AA8F0004 */ swl $t7, 4($s4)
/* A98AA8 80021908 BA8F0007 */ swr $t7, 7($s4)
/* A98AAC 8002190C 8C580008 */ lw $t8, 8($v0)
/* A98AB0 80021910 AA980008 */ swl $t8, 8($s4)
/* A98AB4 80021914 BA98000B */ swr $t8, 0xb($s4)
/* A98AB8 80021918 8C4F000C */ lw $t7, 0xc($v0)
/* A98ABC 8002191C AA8F000C */ swl $t7, 0xc($s4)
/* A98AC0 80021920 BA8F000F */ swr $t7, 0xf($s4)
/* A98AC4 80021924 8C480000 */ lw $t0, ($v0)
/* A98AC8 80021928 AA880010 */ swl $t0, 0x10($s4)
/* A98ACC 8002192C BA880013 */ swr $t0, 0x13($s4)
/* A98AD0 80021930 8C590004 */ lw $t9, 4($v0)
/* A98AD4 80021934 AA990014 */ swl $t9, 0x14($s4)
/* A98AD8 80021938 BA990017 */ swr $t9, 0x17($s4)
/* A98ADC 8002193C 8C480008 */ lw $t0, 8($v0)
/* A98AE0 80021940 AA880018 */ swl $t0, 0x18($s4)
/* A98AE4 80021944 BA88001B */ swr $t0, 0x1b($s4)
/* A98AE8 80021948 8C59000C */ lw $t9, 0xc($v0)
/* A98AEC 8002194C AA99001C */ swl $t9, 0x1c($s4)
/* A98AF0 80021950 BA99001F */ swr $t9, 0x1f($s4)
/* A98AF4 80021954 0C03F3CD */ jal Math_FNearbyIntF
/* A98AF8 80021958 C7AC0158 */ lwc1 $f12, 0x158($sp)
/* A98AFC 8002195C 4600018D */ trunc.w.s $f6, $f0
/* A98B00 80021960 440A3000 */ mfc1 $t2, $f6
/* A98B04 80021964 00000000 */ nop
/* A98B08 80021968 A68A0000 */ sh $t2, ($s4)
/* A98B0C 8002196C 0C03F3CD */ jal Math_FNearbyIntF
/* A98B10 80021970 C7AC015C */ lwc1 $f12, 0x15c($sp)
/* A98B14 80021974 4600040D */ trunc.w.s $f16, $f0
/* A98B18 80021978 440C8000 */ mfc1 $t4, $f16
/* A98B1C 8002197C 00000000 */ nop
/* A98B20 80021980 A68C0002 */ sh $t4, 2($s4)
/* A98B24 80021984 0C03F3CD */ jal Math_FNearbyIntF
/* A98B28 80021988 C7AC0160 */ lwc1 $f12, 0x160($sp)
/* A98B2C 8002198C 4600020D */ trunc.w.s $f8, $f0
/* A98B30 80021990 440E4000 */ mfc1 $t6, $f8
/* A98B34 80021994 00000000 */ nop
/* A98B38 80021998 A68E0004 */ sh $t6, 4($s4)
/* A98B3C 8002199C 93AF0148 */ lbu $t7, 0x148($sp)
/* A98B40 800219A0 A28F000C */ sb $t7, 0xc($s4)
/* A98B44 800219A4 93B80149 */ lbu $t8, 0x149($sp)
/* A98B48 800219A8 A298000D */ sb $t8, 0xd($s4)
/* A98B4C 800219AC 93B9014A */ lbu $t9, 0x14a($sp)
/* A98B50 800219B0 A299000E */ sb $t9, 0xe($s4)
/* A98B54 800219B4 93A8014B */ lbu $t0, 0x14b($sp)
/* A98B58 800219B8 A288000F */ sb $t0, 0xf($s4)
/* A98B5C 800219BC 0C03F3CD */ jal Math_FNearbyIntF
/* A98B60 800219C0 C7AC014C */ lwc1 $f12, 0x14c($sp)
/* A98B64 800219C4 4600048D */ trunc.w.s $f18, $f0
/* A98B68 800219C8 440A9000 */ mfc1 $t2, $f18
/* A98B6C 800219CC 00000000 */ nop
/* A98B70 800219D0 A68A0010 */ sh $t2, 0x10($s4)
/* A98B74 800219D4 0C03F3CD */ jal Math_FNearbyIntF
/* A98B78 800219D8 C7AC0150 */ lwc1 $f12, 0x150($sp)
/* A98B7C 800219DC 4600028D */ trunc.w.s $f10, $f0
/* A98B80 800219E0 440C5000 */ mfc1 $t4, $f10
/* A98B84 800219E4 00000000 */ nop
/* A98B88 800219E8 A68C0012 */ sh $t4, 0x12($s4)
/* A98B8C 800219EC 0C03F3CD */ jal Math_FNearbyIntF
/* A98B90 800219F0 C7AC0154 */ lwc1 $f12, 0x154($sp)
/* A98B94 800219F4 4600010D */ trunc.w.s $f4, $f0
/* A98B98 800219F8 24120001 */ li $s2, 1
/* A98B9C 800219FC 24130003 */ li $s3, 3
/* A98BA0 80021A00 26910030 */ addiu $s1, $s4, 0x30
/* A98BA4 80021A04 440E2000 */ mfc1 $t6, $f4
/* A98BA8 80021A08 26900020 */ addiu $s0, $s4, 0x20
/* A98BAC 80021A0C A68E0014 */ sh $t6, 0x14($s4)
/* A98BB0 80021A10 93AF0144 */ lbu $t7, 0x144($sp)
/* A98BB4 80021A14 A28F001C */ sb $t7, 0x1c($s4)
/* A98BB8 80021A18 93B80145 */ lbu $t8, 0x145($sp)
/* A98BBC 80021A1C A298001D */ sb $t8, 0x1d($s4)
/* A98BC0 80021A20 93B90146 */ lbu $t9, 0x146($sp)
/* A98BC4 80021A24 A299001E */ sb $t9, 0x1e($s4)
/* A98BC8 80021A28 93A80147 */ lbu $t0, 0x147($sp)
/* A98BCC 80021A2C A288001F */ sb $t0, 0x1f($s4)
.L80021A30:
/* A98BD0 80021A30 44923000 */ mtc1 $s2, $f6
/* A98BD4 80021A34 3C0140E0 */ li $at, 0x40E00000 # 0.000000
/* A98BD8 80021A38 44814000 */ mtc1 $at, $f8
/* A98BDC 80021A3C 46803420 */ cvt.s.w $f16, $f6
/* A98BE0 80021A40 3C014040 */ li $at, 0x40400000 # 0.000000
/* A98BE4 80021A44 44819000 */ mtc1 $at, $f18
/* A98BE8 80021A48 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* A98BEC 80021A4C 44812000 */ mtc1 $at, $f4
/* A98BF0 80021A50 AFB300EC */ sw $s3, 0xec($sp)
/* A98BF4 80021A54 46088703 */ div.s $f28, $f16, $f8
/* A98BF8 80021A58 C7A801CC */ lwc1 $f8, 0x1cc($sp)
/* A98BFC 80021A5C 27A400E0 */ addiu $a0, $sp, 0xe0
/* A98C00 80021A60 27A50138 */ addiu $a1, $sp, 0x138
/* A98C04 80021A64 27A60158 */ addiu $a2, $sp, 0x158
/* A98C08 80021A68 461CE002 */ mul.s $f0, $f28, $f28
/* A98C0C 80021A6C 00000000 */ nop
/* A98C10 80021A70 461C0082 */ mul.s $f2, $f0, $f28
/* A98C14 80021A74 46000180 */ add.s $f6, $f0, $f0
/* A98C18 80021A78 46120382 */ mul.s $f14, $f0, $f18
/* A98C1C 80021A7C 46021300 */ add.s $f12, $f2, $f2
/* A98C20 80021A80 46061401 */ sub.s $f16, $f2, $f6
/* A98C24 80021A84 460E6281 */ sub.s $f10, $f12, $f14
/* A98C28 80021A88 460C7681 */ sub.s $f26, $f14, $f12
/* A98C2C 80021A8C 46045600 */ add.s $f24, $f10, $f4
/* A98C30 80021A90 C7AA018C */ lwc1 $f10, 0x18c($sp)
/* A98C34 80021A94 461C8580 */ add.s $f22, $f16, $f28
/* A98C38 80021A98 4608C482 */ mul.s $f18, $f24, $f8
/* A98C3C 80021A9C C7B001B4 */ lwc1 $f16, 0x1b4($sp)
/* A98C40 80021AA0 46001501 */ sub.s $f20, $f2, $f0
/* A98C44 80021AA4 460AD102 */ mul.s $f4, $f26, $f10
/* A98C48 80021AA8 46049180 */ add.s $f6, $f18, $f4
/* A98C4C 80021AAC 4610B202 */ mul.s $f8, $f22, $f16
/* A98C50 80021AB0 C7B20174 */ lwc1 $f18, 0x174($sp)
/* A98C54 80021AB4 4612A102 */ mul.s $f4, $f20, $f18
/* A98C58 80021AB8 C7B20190 */ lwc1 $f18, 0x190($sp)
/* A98C5C 80021ABC 46083280 */ add.s $f10, $f6, $f8
/* A98C60 80021AC0 C7A601D0 */ lwc1 $f6, 0x1d0($sp)
/* A98C64 80021AC4 4606C202 */ mul.s $f8, $f24, $f6
/* A98C68 80021AC8 46045400 */ add.s $f16, $f10, $f4
/* A98C6C 80021ACC 4612D282 */ mul.s $f10, $f26, $f18
/* A98C70 80021AD0 E7B000E0 */ swc1 $f16, 0xe0($sp)
/* A98C74 80021AD4 C7B001B8 */ lwc1 $f16, 0x1b8($sp)
/* A98C78 80021AD8 4610B182 */ mul.s $f6, $f22, $f16
/* A98C7C 80021ADC 460A4100 */ add.s $f4, $f8, $f10
/* A98C80 80021AE0 C7A80178 */ lwc1 $f8, 0x178($sp)
/* A98C84 80021AE4 4608A282 */ mul.s $f10, $f20, $f8
/* A98C88 80021AE8 C7A80194 */ lwc1 $f8, 0x194($sp)
/* A98C8C 80021AEC 46062480 */ add.s $f18, $f4, $f6
/* A98C90 80021AF0 C7A401D4 */ lwc1 $f4, 0x1d4($sp)
/* A98C94 80021AF4 4604C182 */ mul.s $f6, $f24, $f4
/* A98C98 80021AF8 460A9400 */ add.s $f16, $f18, $f10
/* A98C9C 80021AFC 4608D482 */ mul.s $f18, $f26, $f8
/* A98CA0 80021B00 E7B000E4 */ swc1 $f16, 0xe4($sp)
/* A98CA4 80021B04 C7B001BC */ lwc1 $f16, 0x1bc($sp)
/* A98CA8 80021B08 4610B102 */ mul.s $f4, $f22, $f16
/* A98CAC 80021B0C 46123280 */ add.s $f10, $f6, $f18
/* A98CB0 80021B10 C7A6017C */ lwc1 $f6, 0x17c($sp)
/* A98CB4 80021B14 4606A482 */ mul.s $f18, $f20, $f6
/* A98CB8 80021B18 46045200 */ add.s $f8, $f10, $f4
/* A98CBC 80021B1C 46124400 */ add.s $f16, $f8, $f18
/* A98CC0 80021B20 0C01DFB4 */ jal Math_Vec3f_Diff
/* A98CC4 80021B24 E7B000E8 */ swc1 $f16, 0xe8($sp)
/* A98CC8 80021B28 27A40158 */ addiu $a0, $sp, 0x158
/* A98CCC 80021B2C 0C01DFD7 */ jal Math_Vec3f_Scale
/* A98CD0 80021B30 3C054120 */ lui $a1, 0x4120
/* A98CD4 80021B34 C7AA01C0 */ lwc1 $f10, 0x1c0($sp)
/* A98CD8 80021B38 C7A60180 */ lwc1 $f6, 0x180($sp)
/* A98CDC 80021B3C C7B001A8 */ lwc1 $f16, 0x1a8($sp)
/* A98CE0 80021B40 460AC102 */ mul.s $f4, $f24, $f10
/* A98CE4 80021B44 27A400E0 */ addiu $a0, $sp, 0xe0
/* A98CE8 80021B48 27A50138 */ addiu $a1, $sp, 0x138
/* A98CEC 80021B4C 4606D202 */ mul.s $f8, $f26, $f6
/* A98CF0 80021B50 27A6014C */ addiu $a2, $sp, 0x14c
/* A98CF4 80021B54 4610B282 */ mul.s $f10, $f22, $f16
/* A98CF8 80021B58 46082480 */ add.s $f18, $f4, $f8
/* A98CFC 80021B5C C7A40168 */ lwc1 $f4, 0x168($sp)
/* A98D00 80021B60 4604A202 */ mul.s $f8, $f20, $f4
/* A98D04 80021B64 460A9180 */ add.s $f6, $f18, $f10
/* A98D08 80021B68 C7B201C4 */ lwc1 $f18, 0x1c4($sp)
/* A98D0C 80021B6C C7A40184 */ lwc1 $f4, 0x184($sp)
/* A98D10 80021B70 4612C282 */ mul.s $f10, $f24, $f18
/* A98D14 80021B74 46083400 */ add.s $f16, $f6, $f8
/* A98D18 80021B78 4604D182 */ mul.s $f6, $f26, $f4
/* A98D1C 80021B7C E7B000E0 */ swc1 $f16, 0xe0($sp)
/* A98D20 80021B80 C7B001AC */ lwc1 $f16, 0x1ac($sp)
/* A98D24 80021B84 4610B482 */ mul.s $f18, $f22, $f16
/* A98D28 80021B88 46065200 */ add.s $f8, $f10, $f6
/* A98D2C 80021B8C C7AA016C */ lwc1 $f10, 0x16c($sp)
/* A98D30 80021B90 460AA182 */ mul.s $f6, $f20, $f10
/* A98D34 80021B94 C7AA0188 */ lwc1 $f10, 0x188($sp)
/* A98D38 80021B98 46124100 */ add.s $f4, $f8, $f18
/* A98D3C 80021B9C C7A801C8 */ lwc1 $f8, 0x1c8($sp)
/* A98D40 80021BA0 4608C482 */ mul.s $f18, $f24, $f8
/* A98D44 80021BA4 46062400 */ add.s $f16, $f4, $f6
/* A98D48 80021BA8 460AD102 */ mul.s $f4, $f26, $f10
/* A98D4C 80021BAC E7B000E4 */ swc1 $f16, 0xe4($sp)
/* A98D50 80021BB0 C7B001B0 */ lwc1 $f16, 0x1b0($sp)
/* A98D54 80021BB4 4610B202 */ mul.s $f8, $f22, $f16
/* A98D58 80021BB8 46049180 */ add.s $f6, $f18, $f4
/* A98D5C 80021BBC C7B20170 */ lwc1 $f18, 0x170($sp)
/* A98D60 80021BC0 4612A102 */ mul.s $f4, $f20, $f18
/* A98D64 80021BC4 46083280 */ add.s $f10, $f6, $f8
/* A98D68 80021BC8 46045400 */ add.s $f16, $f10, $f4
/* A98D6C 80021BCC 0C01DFB4 */ jal Math_Vec3f_Diff
/* A98D70 80021BD0 E7B000E8 */ swc1 $f16, 0xe8($sp)
/* A98D74 80021BD4 27A4014C */ addiu $a0, $sp, 0x14c
/* A98D78 80021BD8 0C01DFD7 */ jal Math_Vec3f_Scale
/* A98D7C 80021BDC 3C054120 */ lui $a1, 0x4120
/* A98D80 80021BE0 3C028011 */ lui $v0, %hi(D_80115770) # $v0, 0x8011
/* A98D84 80021BE4 24425770 */ addiu $v0, %lo(D_80115770) # addiu $v0, $v0, 0x5770
/* A98D88 80021BE8 8C4A0000 */ lw $t2, ($v0)
/* A98D8C 80021BEC AA0A0000 */ swl $t2, ($s0)
/* A98D90 80021BF0 BA0A0003 */ swr $t2, 3($s0)
/* A98D94 80021BF4 8C490004 */ lw $t1, 4($v0)
/* A98D98 80021BF8 AA090004 */ swl $t1, 4($s0)
/* A98D9C 80021BFC BA090007 */ swr $t1, 7($s0)
/* A98DA0 80021C00 8C4A0008 */ lw $t2, 8($v0)
/* A98DA4 80021C04 AA0A0008 */ swl $t2, 8($s0)
/* A98DA8 80021C08 BA0A000B */ swr $t2, 0xb($s0)
/* A98DAC 80021C0C 8C49000C */ lw $t1, 0xc($v0)
/* A98DB0 80021C10 AA09000C */ swl $t1, 0xc($s0)
/* A98DB4 80021C14 BA09000F */ swr $t1, 0xf($s0)
/* A98DB8 80021C18 8C4C0000 */ lw $t4, ($v0)
/* A98DBC 80021C1C AA2C0000 */ swl $t4, ($s1)
/* A98DC0 80021C20 BA2C0003 */ swr $t4, 3($s1)
/* A98DC4 80021C24 8C4B0004 */ lw $t3, 4($v0)
/* A98DC8 80021C28 AA2B0004 */ swl $t3, 4($s1)
/* A98DCC 80021C2C BA2B0007 */ swr $t3, 7($s1)
/* A98DD0 80021C30 8C4C0008 */ lw $t4, 8($v0)
/* A98DD4 80021C34 AA2C0008 */ swl $t4, 8($s1)
/* A98DD8 80021C38 BA2C000B */ swr $t4, 0xb($s1)
/* A98DDC 80021C3C 8C4B000C */ lw $t3, 0xc($v0)
/* A98DE0 80021C40 AA2B000C */ swl $t3, 0xc($s1)
/* A98DE4 80021C44 BA2B000F */ swr $t3, 0xf($s1)
/* A98DE8 80021C48 0C03F3CD */ jal Math_FNearbyIntF
/* A98DEC 80021C4C C7AC0158 */ lwc1 $f12, 0x158($sp)
/* A98DF0 80021C50 4600018D */ trunc.w.s $f6, $f0
/* A98DF4 80021C54 440E3000 */ mfc1 $t6, $f6
/* A98DF8 80021C58 00000000 */ nop
/* A98DFC 80021C5C A60E0000 */ sh $t6, ($s0)
/* A98E00 80021C60 0C03F3CD */ jal Math_FNearbyIntF
/* A98E04 80021C64 C7AC015C */ lwc1 $f12, 0x15c($sp)
/* A98E08 80021C68 4600020D */ trunc.w.s $f8, $f0
/* A98E0C 80021C6C 44184000 */ mfc1 $t8, $f8
/* A98E10 80021C70 00000000 */ nop
/* A98E14 80021C74 A6180002 */ sh $t8, 2($s0)
/* A98E18 80021C78 0C03F3CD */ jal Math_FNearbyIntF
/* A98E1C 80021C7C C7AC0160 */ lwc1 $f12, 0x160($sp)
/* A98E20 80021C80 4600048D */ trunc.w.s $f18, $f0
/* A98E24 80021C84 4406E000 */ mfc1 $a2, $f28
/* A98E28 80021C88 44089000 */ mfc1 $t0, $f18
/* A98E2C 80021C8C 00000000 */ nop
/* A98E30 80021C90 A6080004 */ sh $t0, 4($s0)
/* A98E34 80021C94 93A5019C */ lbu $a1, 0x19c($sp)
/* A98E38 80021C98 0C009FA1 */ jal func_80027E84
/* A98E3C 80021C9C 93A401A4 */ lbu $a0, 0x1a4($sp)
/* A98E40 80021CA0 A202000C */ sb $v0, 0xc($s0)
/* A98E44 80021CA4 4406E000 */ mfc1 $a2, $f28
/* A98E48 80021CA8 93A5019D */ lbu $a1, 0x19d($sp)
/* A98E4C 80021CAC 0C009FA1 */ jal func_80027E84
/* A98E50 80021CB0 93A401A5 */ lbu $a0, 0x1a5($sp)
/* A98E54 80021CB4 A202000D */ sb $v0, 0xd($s0)
/* A98E58 80021CB8 4406E000 */ mfc1 $a2, $f28
/* A98E5C 80021CBC 93A5019E */ lbu $a1, 0x19e($sp)
/* A98E60 80021CC0 0C009FA1 */ jal func_80027E84
/* A98E64 80021CC4 93A401A6 */ lbu $a0, 0x1a6($sp)
/* A98E68 80021CC8 A202000E */ sb $v0, 0xe($s0)
/* A98E6C 80021CCC 4406E000 */ mfc1 $a2, $f28
/* A98E70 80021CD0 93A5019F */ lbu $a1, 0x19f($sp)
/* A98E74 80021CD4 0C009FA1 */ jal func_80027E84
/* A98E78 80021CD8 93A401A7 */ lbu $a0, 0x1a7($sp)
/* A98E7C 80021CDC A202000F */ sb $v0, 0xf($s0)
/* A98E80 80021CE0 0C03F3CD */ jal Math_FNearbyIntF
/* A98E84 80021CE4 C7AC014C */ lwc1 $f12, 0x14c($sp)
/* A98E88 80021CE8 4600028D */ trunc.w.s $f10, $f0
/* A98E8C 80021CEC 440A5000 */ mfc1 $t2, $f10
/* A98E90 80021CF0 00000000 */ nop
/* A98E94 80021CF4 A62A0000 */ sh $t2, ($s1)
/* A98E98 80021CF8 0C03F3CD */ jal Math_FNearbyIntF
/* A98E9C 80021CFC C7AC0150 */ lwc1 $f12, 0x150($sp)
/* A98EA0 80021D00 4600010D */ trunc.w.s $f4, $f0
/* A98EA4 80021D04 440C2000 */ mfc1 $t4, $f4
/* A98EA8 80021D08 00000000 */ nop
/* A98EAC 80021D0C A62C0002 */ sh $t4, 2($s1)
/* A98EB0 80021D10 0C03F3CD */ jal Math_FNearbyIntF
/* A98EB4 80021D14 C7AC0154 */ lwc1 $f12, 0x154($sp)
/* A98EB8 80021D18 4600040D */ trunc.w.s $f16, $f0
/* A98EBC 80021D1C 4406E000 */ mfc1 $a2, $f28
/* A98EC0 80021D20 440E8000 */ mfc1 $t6, $f16
/* A98EC4 80021D24 00000000 */ nop
/* A98EC8 80021D28 A62E0004 */ sh $t6, 4($s1)
/* A98ECC 80021D2C 93A50198 */ lbu $a1, 0x198($sp)
/* A98ED0 80021D30 0C009FA1 */ jal func_80027E84
/* A98ED4 80021D34 93A401A0 */ lbu $a0, 0x1a0($sp)
/* A98ED8 80021D38 A222000C */ sb $v0, 0xc($s1)
/* A98EDC 80021D3C 4406E000 */ mfc1 $a2, $f28
/* A98EE0 80021D40 93A50199 */ lbu $a1, 0x199($sp)
/* A98EE4 80021D44 0C009FA1 */ jal func_80027E84
/* A98EE8 80021D48 93A401A1 */ lbu $a0, 0x1a1($sp)
/* A98EEC 80021D4C A222000D */ sb $v0, 0xd($s1)
/* A98EF0 80021D50 4406E000 */ mfc1 $a2, $f28
/* A98EF4 80021D54 93A5019A */ lbu $a1, 0x19a($sp)
/* A98EF8 80021D58 0C009FA1 */ jal func_80027E84
/* A98EFC 80021D5C 93A401A2 */ lbu $a0, 0x1a2($sp)
/* A98F00 80021D60 A222000E */ sb $v0, 0xe($s1)
/* A98F04 80021D64 4406E000 */ mfc1 $a2, $f28
/* A98F08 80021D68 93A5019B */ lbu $a1, 0x19b($sp)
/* A98F0C 80021D6C 0C009FA1 */ jal func_80027E84
/* A98F10 80021D70 93A401A3 */ lbu $a0, 0x1a3($sp)
/* A98F14 80021D74 8FAF00EC */ lw $t7, 0xec($sp)
/* A98F18 80021D78 26520001 */ addiu $s2, $s2, 1
/* A98F1C 80021D7C 24010008 */ li $at, 8
/* A98F20 80021D80 000FC100 */ sll $t8, $t7, 4
/* A98F24 80021D84 0298C821 */ addu $t9, $s4, $t8
/* A98F28 80021D88 26730002 */ addiu $s3, $s3, 2
/* A98F2C 80021D8C 26310020 */ addiu $s1, $s1, 0x20
/* A98F30 80021D90 26100020 */ addiu $s0, $s0, 0x20
/* A98F34 80021D94 1641FF26 */ bne $s2, $at, .L80021A30
/* A98F38 80021D98 A322000F */ sb $v0, 0xf($t9)
/* A98F3C 80021D9C 8FA40204 */ lw $a0, 0x204($sp)
/* A98F40 80021DA0 3C090101 */ lui $t1, (0x01010020 >> 16) # lui $t1, 0x101
/* A98F44 80021DA4 35290020 */ ori $t1, (0x01010020 & 0xFFFF) # ori $t1, $t1, 0x20
/* A98F48 80021DA8 8C8202D0 */ lw $v0, 0x2d0($a0)
/* A98F4C 80021DAC 3C0B0600 */ lui $t3, (0x06000206 >> 16) # lui $t3, 0x600
/* A98F50 80021DB0 356B0206 */ ori $t3, (0x06000206 & 0xFFFF) # ori $t3, $t3, 0x206
/* A98F54 80021DB4 24480008 */ addiu $t0, $v0, 8
/* A98F58 80021DB8 AC8802D0 */ sw $t0, 0x2d0($a0)
/* A98F5C 80021DBC AC540004 */ sw $s4, 4($v0)
/* A98F60 80021DC0 AC490000 */ sw $t1, ($v0)
/* A98F64 80021DC4 8C8202D0 */ lw $v0, 0x2d0($a0)
/* A98F68 80021DC8 240C0604 */ li $t4, 1540
/* A98F6C 80021DCC 3C0E0604 */ lui $t6, (0x0604060A >> 16) # lui $t6, 0x604
/* A98F70 80021DD0 244A0008 */ addiu $t2, $v0, 8
/* A98F74 80021DD4 AC8A02D0 */ sw $t2, 0x2d0($a0)
/* A98F78 80021DD8 AC4C0004 */ sw $t4, 4($v0)
/* A98F7C 80021DDC AC4B0000 */ sw $t3, ($v0)
/* A98F80 80021DE0 8C8202D0 */ lw $v0, 0x2d0($a0)
/* A98F84 80021DE4 3C0F0004 */ lui $t7, (0x00040A08 >> 16) # lui $t7, 4
/* A98F88 80021DE8 35EF0A08 */ ori $t7, (0x00040A08 & 0xFFFF) # ori $t7, $t7, 0xa08
/* A98F8C 80021DEC 244D0008 */ addiu $t5, $v0, 8
/* A98F90 80021DF0 AC8D02D0 */ sw $t5, 0x2d0($a0)
/* A98F94 80021DF4 35CE060A */ ori $t6, (0x0604060A & 0xFFFF) # ori $t6, $t6, 0x60a
/* A98F98 80021DF8 AC4E0000 */ sw $t6, ($v0)
/* A98F9C 80021DFC AC4F0004 */ sw $t7, 4($v0)
/* A98FA0 80021E00 8C8202D0 */ lw $v0, 0x2d0($a0)
/* A98FA4 80021E04 3C080008 */ lui $t0, (0x00080E0C >> 16) # lui $t0, 8
/* A98FA8 80021E08 3C190608 */ lui $t9, (0x06080A0E >> 16) # lui $t9, 0x608
/* A98FAC 80021E0C 24580008 */ addiu $t8, $v0, 8
/* A98FB0 80021E10 AC9802D0 */ sw $t8, 0x2d0($a0)
/* A98FB4 80021E14 37390A0E */ ori $t9, (0x06080A0E & 0xFFFF) # ori $t9, $t9, 0xa0e
/* A98FB8 80021E18 35080E0C */ ori $t0, (0x00080E0C & 0xFFFF) # ori $t0, $t0, 0xe0c
/* A98FBC 80021E1C AC480004 */ sw $t0, 4($v0)
/* A98FC0 80021E20 AC590000 */ sw $t9, ($v0)
/* A98FC4 80021E24 8C8202D0 */ lw $v0, 0x2d0($a0)
/* A98FC8 80021E28 3C0B000C */ lui $t3, (0x000C1210 >> 16) # lui $t3, 0xc
/* A98FCC 80021E2C 3C0A060C */ lui $t2, (0x060C0E12 >> 16) # lui $t2, 0x60c
/* A98FD0 80021E30 24490008 */ addiu $t1, $v0, 8
/* A98FD4 80021E34 AC8902D0 */ sw $t1, 0x2d0($a0)
/* A98FD8 80021E38 354A0E12 */ ori $t2, (0x060C0E12 & 0xFFFF) # ori $t2, $t2, 0xe12
/* A98FDC 80021E3C 356B1210 */ ori $t3, (0x000C1210 & 0xFFFF) # ori $t3, $t3, 0x1210
/* A98FE0 80021E40 AC4B0004 */ sw $t3, 4($v0)
/* A98FE4 80021E44 AC4A0000 */ sw $t2, ($v0)
/* A98FE8 80021E48 8C8202D0 */ lw $v0, 0x2d0($a0)
/* A98FEC 80021E4C 3C0E0010 */ lui $t6, (0x00101614 >> 16) # lui $t6, 0x10
/* A98FF0 80021E50 3C0D0610 */ lui $t5, (0x06101216 >> 16) # lui $t5, 0x610
/* A98FF4 80021E54 244C0008 */ addiu $t4, $v0, 8
/* A98FF8 80021E58 AC8C02D0 */ sw $t4, 0x2d0($a0)
/* A98FFC 80021E5C 35AD1216 */ ori $t5, (0x06101216 & 0xFFFF) # ori $t5, $t5, 0x1216
/* A99000 80021E60 35CE1614 */ ori $t6, (0x00101614 & 0xFFFF) # ori $t6, $t6, 0x1614
/* A99004 80021E64 AC4E0004 */ sw $t6, 4($v0)
/* A99008 80021E68 AC4D0000 */ sw $t5, ($v0)
/* A9900C 80021E6C 8C8202D0 */ lw $v0, 0x2d0($a0)
/* A99010 80021E70 3C190014 */ lui $t9, (0x00141A18 >> 16) # lui $t9, 0x14
/* A99014 80021E74 3C180614 */ lui $t8, (0x0614161A >> 16) # lui $t8, 0x614
/* A99018 80021E78 244F0008 */ addiu $t7, $v0, 8
/* A9901C 80021E7C AC8F02D0 */ sw $t7, 0x2d0($a0)
/* A99020 80021E80 3718161A */ ori $t8, (0x0614161A & 0xFFFF) # ori $t8, $t8, 0x161a
/* A99024 80021E84 37391A18 */ ori $t9, (0x00141A18 & 0xFFFF) # ori $t9, $t9, 0x1a18
/* A99028 80021E88 AC590004 */ sw $t9, 4($v0)
/* A9902C 80021E8C AC580000 */ sw $t8, ($v0)
/* A99030 80021E90 8C8202D0 */ lw $v0, 0x2d0($a0)
/* A99034 80021E94 3C0A0018 */ lui $t2, (0x00181E1C >> 16) # lui $t2, 0x18
/* A99038 80021E98 3C090618 */ lui $t1, (0x06181A1E >> 16) # lui $t1, 0x618
/* A9903C 80021E9C 24480008 */ addiu $t0, $v0, 8
/* A99040 80021EA0 AC8802D0 */ sw $t0, 0x2d0($a0)
/* A99044 80021EA4 35291A1E */ ori $t1, (0x06181A1E & 0xFFFF) # ori $t1, $t1, 0x1a1e
/* A99048 80021EA8 354A1E1C */ ori $t2, (0x00181E1C & 0xFFFF) # ori $t2, $t2, 0x1e1c
/* A9904C 80021EAC AC4A0004 */ sw $t2, 4($v0)
/* A99050 80021EB0 AC490000 */ sw $t1, ($v0)
.L80021EB4:
/* A99054 80021EB4 3C068013 */ lui $a2, %hi(D_801352B8) # $a2, 0x8013
/* A99058 80021EB8 24C652B8 */ addiu $a2, %lo(D_801352B8) # addiu $a2, $a2, 0x52b8
/* A9905C 80021EBC 27A40124 */ addiu $a0, $sp, 0x124
/* A99060 80021EC0 8FA50204 */ lw $a1, 0x204($sp)
/* A99064 80021EC4 0C031AD5 */ jal Graph_CloseDisps
/* A99068 80021EC8 240704A0 */ li $a3, 1184
/* A9906C 80021ECC 8FBF0064 */ lw $ra, 0x64($sp)
/* A99070 80021ED0 D7B40028 */ ldc1 $f20, 0x28($sp)
/* A99074 80021ED4 D7B60030 */ ldc1 $f22, 0x30($sp)
/* A99078 80021ED8 D7B80038 */ ldc1 $f24, 0x38($sp)
/* A9907C 80021EDC D7BA0040 */ ldc1 $f26, 0x40($sp)
/* A99080 80021EE0 D7BC0048 */ ldc1 $f28, 0x48($sp)
/* A99084 80021EE4 8FB00050 */ lw $s0, 0x50($sp)
/* A99088 80021EE8 8FB10054 */ lw $s1, 0x54($sp)
/* A9908C 80021EEC 8FB20058 */ lw $s2, 0x58($sp)
/* A99090 80021EF0 8FB3005C */ lw $s3, 0x5c($sp)
/* A99094 80021EF4 8FB40060 */ lw $s4, 0x60($sp)
/* A99098 80021EF8 03E00008 */ jr $ra
/* A9909C 80021EFC 27BD01F8 */ addiu $sp, $sp, 0x1f8

View file

@ -1,223 +0,0 @@
.rdata
glabel D_801352CC
.asciz "../z_eff_blure.c"
.balign 4
glabel D_801352E0
.asciz "../z_eff_blure.c"
.balign 4
.late_rodata
glabel D_80135448
.float 0.1
.text
glabel EffectBlure_DrawSmooth
/* A990A0 80021F00 27BDFED8 */ addiu $sp, $sp, -0x128
/* A990A4 80021F04 AFB40024 */ sw $s4, 0x24($sp)
/* A990A8 80021F08 AFB30020 */ sw $s3, 0x20($sp)
/* A990AC 80021F0C 0080A025 */ move $s4, $a0
/* A990B0 80021F10 AFBF002C */ sw $ra, 0x2c($sp)
/* A990B4 80021F14 AFB50028 */ sw $s5, 0x28($sp)
/* A990B8 80021F18 00809825 */ move $s3, $a0
/* A990BC 80021F1C 3C068013 */ lui $a2, %hi(D_801352CC) # $a2, 0x8013
/* A990C0 80021F20 00A0A825 */ move $s5, $a1
/* A990C4 80021F24 AFB2001C */ sw $s2, 0x1c($sp)
/* A990C8 80021F28 AFB10018 */ sw $s1, 0x18($sp)
/* A990CC 80021F2C AFB00014 */ sw $s0, 0x14($sp)
/* A990D0 80021F30 24C652CC */ addiu $a2, %lo(D_801352CC) # addiu $a2, $a2, 0x52cc
/* A990D4 80021F34 27A40044 */ addiu $a0, $sp, 0x44
/* A990D8 80021F38 0C031AB1 */ jal Graph_OpenDisps
/* A990DC 80021F3C 240704B1 */ li $a3, 1201
/* A990E0 80021F40 9284019E */ lbu $a0, 0x19e($s4)
/* A990E4 80021F44 24120018 */ li $s2, 24
/* A990E8 80021F48 28810002 */ slti $at, $a0, 2
/* A990EC 80021F4C 142000A2 */ bnez $at, .L800221D8
/* A990F0 80021F50 00801825 */ move $v1, $a0
/* A990F4 80021F54 00920019 */ multu $a0, $s2
/* A990F8 80021F58 968E0014 */ lhu $t6, 0x14($s4)
/* A990FC 80021F5C 26900018 */ addiu $s0, $s4, 0x18
/* A99100 80021F60 2411FFFC */ li $s1, -4
/* A99104 80021F64 31D8FFFC */ andi $t8, $t6, 0xfffc
/* A99108 80021F68 A6980014 */ sh $t8, 0x14($s4)
/* A9910C 80021F6C 37190002 */ ori $t9, $t8, 2
/* A99110 80021F70 A6990014 */ sh $t9, 0x14($s4)
/* A99114 80021F74 00004012 */ mflo $t0
/* A99118 80021F78 02884821 */ addu $t1, $s4, $t0
/* A9911C 80021F7C 252AFFE8 */ addiu $t2, $t1, -0x18
/* A99120 80021F80 020A082B */ sltu $at, $s0, $t2
/* A99124 80021F84 5020000E */ beql $at, $zero, .L80021FC0
/* A99128 80021F88 24060018 */ li $a2, 24
.L80021F8C:
/* A9912C 80021F8C 0C008238 */ jal EffectBlure_UpdateFlags
/* A99130 80021F90 02002025 */ move $a0, $s0
/* A99134 80021F94 926B019E */ lbu $t3, 0x19e($s3)
/* A99138 80021F98 26100018 */ addiu $s0, $s0, 0x18
/* A9913C 80021F9C 01720019 */ multu $t3, $s2
/* A99140 80021FA0 00006012 */ mflo $t4
/* A99144 80021FA4 026C6821 */ addu $t5, $s3, $t4
/* A99148 80021FA8 25AEFFE8 */ addiu $t6, $t5, -0x18
/* A9914C 80021FAC 020E082B */ sltu $at, $s0, $t6
/* A99150 80021FB0 1420FFF6 */ bnez $at, .L80021F8C
/* A99154 80021FB4 00000000 */ nop
/* A99158 80021FB8 9283019E */ lbu $v1, 0x19e($s4)
/* A9915C 80021FBC 24060018 */ li $a2, 24
.L80021FC0:
/* A99160 80021FC0 00660019 */ multu $v1, $a2
/* A99164 80021FC4 02802025 */ move $a0, $s4
/* A99168 80021FC8 02A02825 */ move $a1, $s5
/* A9916C 80021FCC 00007812 */ mflo $t7
/* A99170 80021FD0 028F1021 */ addu $v0, $s4, $t7
/* A99174 80021FD4 9458FFFC */ lhu $t8, -4($v0)
/* A99178 80021FD8 0311C824 */ and $t9, $t8, $s1
/* A9917C 80021FDC A459FFFC */ sh $t9, -4($v0)
/* A99180 80021FE0 9288019E */ lbu $t0, 0x19e($s4)
/* A99184 80021FE4 01060019 */ multu $t0, $a2
/* A99188 80021FE8 00004812 */ mflo $t1
/* A9918C 80021FEC 02891021 */ addu $v0, $s4, $t1
/* A99190 80021FF0 944AFFFC */ lhu $t2, -4($v0)
/* A99194 80021FF4 354B0002 */ ori $t3, $t2, 2
/* A99198 80021FF8 0C0083D8 */ jal EffectBlure_SetupSmooth
/* A9919C 80021FFC A44BFFFC */ sh $t3, -4($v0)
/* A991A0 80022000 868C000E */ lh $t4, 0xe($s4)
/* A991A4 80022004 868D0010 */ lh $t5, 0x10($s4)
/* A991A8 80022008 868E0012 */ lh $t6, 0x12($s4)
/* A991AC 8002200C 448C2000 */ mtc1 $t4, $f4
/* A991B0 80022010 448D3000 */ mtc1 $t5, $f6
/* A991B4 80022014 448E4000 */ mtc1 $t6, $f8
/* A991B8 80022018 46802120 */ cvt.s.w $f4, $f4
/* A991BC 8002201C 27B000DC */ addiu $s0, $sp, 0xdc
/* A991C0 80022020 02002025 */ move $a0, $s0
/* A991C4 80022024 468031A0 */ cvt.s.w $f6, $f6
/* A991C8 80022028 44052000 */ mfc1 $a1, $f4
/* A991CC 8002202C 46804220 */ cvt.s.w $f8, $f8
/* A991D0 80022030 44063000 */ mfc1 $a2, $f6
/* A991D4 80022034 44074000 */ mfc1 $a3, $f8
/* A991D8 80022038 0C029E89 */ jal SkinMatrix_SetTranslate
/* A991DC 8002203C 00000000 */ nop
/* A991E0 80022040 3C018013 */ lui $at, %hi(D_80135448)
/* A991E4 80022044 C4205448 */ lwc1 $f0, %lo(D_80135448)($at)
/* A991E8 80022048 27B1009C */ addiu $s1, $sp, 0x9c
/* A991EC 8002204C 02202025 */ move $a0, $s1
/* A991F0 80022050 44050000 */ mfc1 $a1, $f0
/* A991F4 80022054 44060000 */ mfc1 $a2, $f0
/* A991F8 80022058 44070000 */ mfc1 $a3, $f0
/* A991FC 8002205C 0C029DA9 */ jal SkinMatrix_SetScale
/* A99200 80022060 00000000 */ nop
/* A99204 80022064 02002025 */ move $a0, $s0
/* A99208 80022068 02202825 */ move $a1, $s1
/* A9920C 8002206C 0C029BE8 */ jal SkinMatrix_MtxFMtxFMult
/* A99210 80022070 27A6005C */ addiu $a2, $sp, 0x5c
/* A99214 80022074 02A02025 */ move $a0, $s5
/* A99218 80022078 0C029F9C */ jal SkinMatrix_MtxFToNewMtx
/* A9921C 8002207C 27A5005C */ addiu $a1, $sp, 0x5c
/* A99220 80022080 50400056 */ beql $v0, $zero, .L800221DC
/* A99224 80022084 8FBF002C */ lw $ra, 0x2c($sp)
/* A99228 80022088 8EA402D0 */ lw $a0, 0x2d0($s5)
/* A9922C 8002208C 3C18DA38 */ lui $t8, (0xDA380003 >> 16) # lui $t8, 0xda38
/* A99230 80022090 37180003 */ ori $t8, (0xDA380003 & 0xFFFF) # ori $t8, $t8, 3
/* A99234 80022094 248F0008 */ addiu $t7, $a0, 8
/* A99238 80022098 AEAF02D0 */ sw $t7, 0x2d0($s5)
/* A9923C 8002209C AC820004 */ sw $v0, 4($a0)
/* A99240 800220A0 AC980000 */ sw $t8, ($a0)
/* A99244 800220A4 9299019E */ lbu $t9, 0x19e($s4)
/* A99248 800220A8 00008825 */ move $s1, $zero
/* A9924C 800220AC 02808025 */ move $s0, $s4
/* A99250 800220B0 03320019 */ multu $t9, $s2
/* A99254 800220B4 24120002 */ li $s2, 2
/* A99258 800220B8 00004012 */ mflo $t0
/* A9925C 800220BC 02884821 */ addu $t1, $s4, $t0
/* A99260 800220C0 252AFFE8 */ addiu $t2, $t1, -0x18
/* A99264 800220C4 028A082B */ sltu $at, $s4, $t2
/* A99268 800220C8 1020003D */ beqz $at, .L800221C0
/* A9926C 800220CC 00000000 */ nop
.L800220D0:
/* A99270 800220D0 8E0B0000 */ lw $t3, ($s0)
/* A99274 800220D4 51600005 */ beql $t3, $zero, .L800220EC
/* A99278 800220D8 926D019E */ lbu $t5, 0x19e($s3)
/* A9927C 800220DC 8E0C0018 */ lw $t4, 0x18($s0)
/* A99280 800220E0 55800009 */ bnezl $t4, .L80022108
/* A99284 800220E4 96020014 */ lhu $v0, 0x14($s0)
/* A99288 800220E8 926D019E */ lbu $t5, 0x19e($s3)
.L800220EC:
/* A9928C 800220EC 000D7080 */ sll $t6, $t5, 2
/* A99290 800220F0 01CD7023 */ subu $t6, $t6, $t5
/* A99294 800220F4 000E70C0 */ sll $t6, $t6, 3
/* A99298 800220F8 026E1021 */ addu $v0, $s3, $t6
/* A9929C 800220FC 1000002C */ b .L800221B0
/* A992A0 80022100 2442FFE8 */ addiu $v0, $v0, -0x18
/* A992A4 80022104 96020014 */ lhu $v0, 0x14($s0)
.L80022108:
/* A992A8 80022108 30420003 */ andi $v0, $v0, 3
/* A992AC 8002210C 14400005 */ bnez $v0, .L80022124
/* A992B0 80022110 00000000 */ nop
/* A992B4 80022114 960F002C */ lhu $t7, 0x2c($s0)
/* A992B8 80022118 31F80003 */ andi $t8, $t7, 3
/* A992BC 8002211C 53000014 */ beql $t8, $zero, .L80022170
/* A992C0 80022120 02802025 */ move $a0, $s4
.L80022124:
/* A992C4 80022124 16420005 */ bne $s2, $v0, .L8002213C
/* A992C8 80022128 00000000 */ nop
/* A992CC 8002212C 9619002C */ lhu $t9, 0x2c($s0)
/* A992D0 80022130 33280003 */ andi $t0, $t9, 3
/* A992D4 80022134 5100000E */ beql $t0, $zero, .L80022170
/* A992D8 80022138 02802025 */ move $a0, $s4
.L8002213C:
/* A992DC 8002213C 14400005 */ bnez $v0, .L80022154
/* A992E0 80022140 00000000 */ nop
/* A992E4 80022144 9609002C */ lhu $t1, 0x2c($s0)
/* A992E8 80022148 312A0003 */ andi $t2, $t1, 3
/* A992EC 8002214C 524A0008 */ beql $s2, $t2, .L80022170
/* A992F0 80022150 02802025 */ move $a0, $s4
.L80022154:
/* A992F4 80022154 1642000C */ bne $s2, $v0, .L80022188
/* A992F8 80022158 02802025 */ move $a0, $s4
/* A992FC 8002215C 960B002C */ lhu $t3, 0x2c($s0)
/* A99300 80022160 316C0003 */ andi $t4, $t3, 3
/* A99304 80022164 564C0009 */ bnel $s2, $t4, .L8002218C
/* A99308 80022168 02002825 */ move $a1, $s0
/* A9930C 8002216C 02802025 */ move $a0, $s4
.L80022170:
/* A99310 80022170 02002825 */ move $a1, $s0
/* A99314 80022174 02203025 */ move $a2, $s1
/* A99318 80022178 0C0083F0 */ jal EffectBlure_DrawElemNoInterpolation
/* A9931C 8002217C 02A03825 */ move $a3, $s5
/* A99320 80022180 10000006 */ b .L8002219C
/* A99324 80022184 926D019E */ lbu $t5, 0x19e($s3)
.L80022188:
/* A99328 80022188 02002825 */ move $a1, $s0
.L8002218C:
/* A9932C 8002218C 02203025 */ move $a2, $s1
/* A99330 80022190 0C008534 */ jal EffectBlure_DrawElemHermiteInterpolation
/* A99334 80022194 02A03825 */ move $a3, $s5
/* A99338 80022198 926D019E */ lbu $t5, 0x19e($s3)
.L8002219C:
/* A9933C 8002219C 000D7080 */ sll $t6, $t5, 2
/* A99340 800221A0 01CD7023 */ subu $t6, $t6, $t5
/* A99344 800221A4 000E70C0 */ sll $t6, $t6, 3
/* A99348 800221A8 026E1021 */ addu $v0, $s3, $t6
/* A9934C 800221AC 2442FFE8 */ addiu $v0, $v0, -0x18
.L800221B0:
/* A99350 800221B0 26100018 */ addiu $s0, $s0, 0x18
/* A99354 800221B4 0202082B */ sltu $at, $s0, $v0
/* A99358 800221B8 1420FFC5 */ bnez $at, .L800220D0
/* A9935C 800221BC 26310001 */ addiu $s1, $s1, 1
.L800221C0:
/* A99360 800221C0 3C068013 */ lui $a2, %hi(D_801352E0) # $a2, 0x8013
/* A99364 800221C4 24C652E0 */ addiu $a2, %lo(D_801352E0) # addiu $a2, $a2, 0x52e0
/* A99368 800221C8 27A40044 */ addiu $a0, $sp, 0x44
/* A9936C 800221CC 02A02825 */ move $a1, $s5
/* A99370 800221D0 0C031AD5 */ jal Graph_CloseDisps
/* A99374 800221D4 240704EF */ li $a3, 1263
.L800221D8:
/* A99378 800221D8 8FBF002C */ lw $ra, 0x2c($sp)
.L800221DC:
/* A9937C 800221DC 8FB00014 */ lw $s0, 0x14($sp)
/* A99380 800221E0 8FB10018 */ lw $s1, 0x18($sp)
/* A99384 800221E4 8FB2001C */ lw $s2, 0x1c($sp)
/* A99388 800221E8 8FB30020 */ lw $s3, 0x20($sp)
/* A9938C 800221EC 8FB40024 */ lw $s4, 0x24($sp)
/* A99390 800221F0 8FB50028 */ lw $s5, 0x28($sp)
/* A99394 800221F4 03E00008 */ jr $ra
/* A99398 800221F8 27BD0128 */ addiu $sp, $sp, 0x128

View file

@ -309,11 +309,8 @@ void EffectBlure_UpdateFlags(EffectBlureElement* elem) {
void EffectBlure_GetComputedValues(EffectBlure* this, s32 index, f32 ratio, Vec3s* vec1, Vec3s* vec2,
Color_RGBA8* color1, Color_RGBA8* color2) {
Vec3s sp30;
s32 pad;
EffectBlureElement* elem;
f32 mode4Param;
elem = &this->elements[index];
EffectBlureElement* elem = &this->elements[index];
switch (this->calcMode) {
case 1:
@ -335,7 +332,7 @@ void EffectBlure_GetComputedValues(EffectBlure* this, s32 index, f32 ratio, Vec3
break;
case 3:
ratio /= 2.0f;
ratio *= 0.5f;
vec1->x = func_80027E34(elem->p1.x, elem->p2.x, ratio);
vec1->y = func_80027E34(elem->p1.y, elem->p2.y, ratio);
vec1->z = func_80027E34(elem->p1.z, elem->p2.z, ratio);
@ -349,14 +346,15 @@ void EffectBlure_GetComputedValues(EffectBlure* this, s32 index, f32 ratio, Vec3
sp30.x = elem->p1.x - elem->p2.x;
sp30.y = elem->p1.y - elem->p2.y;
sp30.z = elem->p1.z - elem->p2.z;
mode4Param = this->mode4Param;
vec1->x = (sp30.x * 0.5f * (mode4Param - 1.0f) * ratio) + elem->p1.x;
vec1->y = (sp30.y * 0.5f * (mode4Param - 1.0f) * ratio) + elem->p1.y;
vec1->z = (sp30.z * 0.5f * (mode4Param - 1.0f) * ratio) + elem->p1.z;
vec2->x = elem->p2.x - (sp30.x * 0.5f * (mode4Param - 1.0f) * ratio);
vec2->y = elem->p2.y - (sp30.y * 0.5f * (mode4Param - 1.0f) * ratio);
vec2->z = elem->p2.z - (sp30.z * 0.5f * (mode4Param - 1.0f) * ratio);
mode4Param = this->mode4Param - 1.0f;
vec1->x = (sp30.x * 0.5f * mode4Param * ratio) + elem->p1.x;
vec1->y = (sp30.y * 0.5f * mode4Param * ratio) + elem->p1.y;
vec1->z = (sp30.z * 0.5f * mode4Param * ratio) + elem->p1.z;
vec2->x = elem->p2.x - (sp30.x * 0.5f * mode4Param * ratio);
vec2->y = elem->p2.y - (sp30.y * 0.5f * mode4Param * ratio);
vec2->z = elem->p2.z - (sp30.z * 0.5f * mode4Param * ratio);
break;
case 0:
@ -401,7 +399,7 @@ void EffectBlure_SetupSmooth(EffectBlure* this, GraphicsContext* gfxCtx) {
// original name: "SQ_NoInterpolate_disp"
void EffectBlure_DrawElemNoInterpolation(EffectBlure* this, EffectBlureElement* elem, s32 index,
GraphicsContext* gfxCtx) {
static Vtx_t baseVtx = VTX_T(0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF);
static Vtx_t baseVtx = VTX_T(0, 0, 0, 0, 0, 255, 255, 255, 255);
Vtx* vtx;
Vec3s sp8C;
Vec3s sp84;
@ -495,8 +493,6 @@ void EffectBlure_DrawElemNoInterpolation(EffectBlure* this, EffectBlureElement*
CLOSE_DISPS(gfxCtx, "../z_eff_blure.c", 932);
}
// original name: "SQ_HermiteInterpolate_disp"
#ifdef NON_MATCHING
void EffectBlure_DrawElemHermiteInterpolation(EffectBlure* this, EffectBlureElement* elem, s32 index,
GraphicsContext* gfxCtx) {
static Vtx_t baseVtx = VTX_T(0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF);
@ -518,6 +514,7 @@ void EffectBlure_DrawElemHermiteInterpolation(EffectBlure* this, EffectBlureElem
Vec3f sp180;
Vec3f sp174;
Vec3f sp168;
s32 i;
Vec3f sp158;
Vec3f sp14C;
Color_RGBA8 sp148;
@ -545,9 +542,7 @@ void EffectBlure_DrawElemHermiteInterpolation(EffectBlure* this, EffectBlureElem
Vec3f sp118;
Vec3f sp10C;
if (index - 1 < 0) {
__assert("index - 1 >= 0", "../z_eff_blure.c", 1005);
}
(index - 1 >= 0) ? (void)0 : __assert("index - 1 >= 0", "../z_eff_blure.c", 1005);
ratio = (f32)(elem - 1)->timer / (f32)this->elemDuration;
EffectBlure_GetComputedValues(this, index - 1, ratio, &sp1EC, &sp1E4, &sp1DC, &sp1D8);
@ -567,9 +562,8 @@ void EffectBlure_DrawElemHermiteInterpolation(EffectBlure* this, EffectBlureElem
Vec3f sp100;
Vec3f spF4;
if (index + 2 >= this->numElements) {
__assert("index + 2 < this2->now_edge_num", "../z_eff_blure.c", 1032);
}
(index + 2 < this->numElements) ? (void)0
: __assert("index + 2 < this2->now_edge_num", "../z_eff_blure.c", 1032);
ratio = (f32)(elem + 2)->timer / (f32)this->elemDuration;
EffectBlure_GetComputedValues(this, index + 2, ratio, &sp1EC, &sp1E4, &sp1DC, &sp1D8);
@ -587,11 +581,6 @@ void EffectBlure_DrawElemHermiteInterpolation(EffectBlure* this, EffectBlureElem
// Translates to: "Vertices cannot be secured."
osSyncPrintf("z_eff_blure.c::SQ_HermiteInterpolate_disp() 頂点確保できず。\n");
} else {
s32 j1;
s32 j2;
Vec3f spE0;
s32 i;
Math_Vec3f_Diff(&sp1CC, &sp138, &sp158);
Math_Vec3f_Scale(&sp158, 10.0f);
Math_Vec3f_Diff(&sp1C0, &sp138, &sp14C);
@ -618,16 +607,19 @@ void EffectBlure_DrawElemHermiteInterpolation(EffectBlure* this, EffectBlureElem
vtx[1].v.cn[2] = sp144.b;
vtx[1].v.cn[3] = sp144.a;
for (i = 1, j1 = 2, j2 = 3; i < 8; i++, j1 += 2, j2 += 2) {
f32 temp_f28 = i / 7.0f; // t
f32 temp_f0 = temp_f28 * temp_f28; // t^2
f32 temp_f2 = temp_f0 * temp_f28; // t^3
f32 temp_f14 = temp_f0 * 3.0f; // 3t^2
f32 temp_f12 = temp_f2 + temp_f2; // 2t^3
f32 temp_f26 = temp_f14 - temp_f12; // 3t^2 - 2t^3
f32 temp_f24 = temp_f12 - temp_f14 + 1.0f; // 2t^3 - 3t^2 + 1
f32 temp_f22 = temp_f2 - (temp_f0 + temp_f0) + temp_f28; // t^3 - 2t^2 + t
f32 temp_f20 = temp_f2 - temp_f0; // t^3 - t^2
for (i = 1; i < 8; i++) {
s32 j1 = 2 * i;
s32 j2 = 2 * i + 1;
Vec3f spE0;
f32 temp_f28 = i / 7.0f; // t
f32 temp_f0 = temp_f28 * temp_f28; // t^2
f32 temp_f2 = temp_f0 * temp_f28; // t^3
f32 temp_f20 = temp_f2 - temp_f0; // t^3 - t^2
f32 temp_f22 = temp_f2 - 2.0f * temp_f0 + temp_f28; // t^3 - 2t^2 + t
f32 temp_f24 = 2.0f * temp_f2 - temp_f0 * 3.0f + 1.0f; // 2t^3 - 3t^2 + 1
f32 temp_f26 = temp_f0 * 3.0f - 2.0f * temp_f2; // 3t^2 - 2t^3
s32 pad1;
s32 pad2;
// p = (2t^3 - 3t^2 + 1)p0 + (3t^2 - 2t^3)p1 + (t^3 - 2t^2 + t)m0 + (t^3 - t^2)m1
spE0.x = (temp_f24 * sp1CC.x) + (temp_f26 * sp18C.x) + (temp_f22 * sp1B4.x) + (temp_f20 * sp174.x);
@ -674,14 +666,9 @@ void EffectBlure_DrawElemHermiteInterpolation(EffectBlure* this, EffectBlureElem
CLOSE_DISPS(gfxCtx, "../z_eff_blure.c", 1184);
}
#else
Vtx D_80115770 = VTX(0, 0, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF);
#pragma GLOBAL_ASM("asm/non_matchings/code/z_eff_blure/EffectBlure_DrawElemHermiteInterpolation.s")
#endif
#ifdef NON_MATCHING
// missing extra load instructions and saved register/stack usage differences
void EffectBlure_DrawSmooth(EffectBlure* this, GraphicsContext* gfxCtx) {
void EffectBlure_DrawSmooth(EffectBlure* this2, GraphicsContext* gfxCtx) {
EffectBlure* this = this2;
EffectBlureElement* elem;
s32 i;
MtxF spDC;
@ -698,7 +685,7 @@ void EffectBlure_DrawSmooth(EffectBlure* this, GraphicsContext* gfxCtx) {
this->elements[0].flags &= ~3;
this->elements[0].flags |= 2;
for (elem = &this->elements[1]; elem < &this->elements[this->numElements - 1]; elem++) {
for (elem = &this->elements[1]; elem < this->elements + this->numElements - 1; elem++) {
EffectBlure_UpdateFlags(elem);
}
@ -717,11 +704,10 @@ void EffectBlure_DrawSmooth(EffectBlure* this, GraphicsContext* gfxCtx) {
gSPMatrix(POLY_XLU_DISP++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
for (i = 0, elem = &this->elements[0]; elem < &this->elements[this->numElements - 1]; elem++, i++) {
for (i = 0, elem = &this->elements[0]; elem < this->elements + this->numElements - 1; i++, elem++) {
if ((elem->state == 0) || ((elem + 1)->state == 0)) {
continue;
}
if ((((elem->flags & 3) == 0) && (((elem + 1)->flags & 3) == 0)) ||
(((elem->flags & 3) == 2) && (((elem + 1)->flags & 3) == 0)) ||
(((elem->flags & 3) == 0) && (((elem + 1)->flags & 3) == 2)) ||
@ -734,9 +720,6 @@ void EffectBlure_DrawSmooth(EffectBlure* this, GraphicsContext* gfxCtx) {
CLOSE_DISPS(gfxCtx, "../z_eff_blure.c", 1263);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_eff_blure/EffectBlure_DrawSmooth.s")
#endif
void EffectBlure_SetupSimple(GraphicsContext* gfxCtx, EffectBlure* this, Vtx* vtx) {
OPEN_DISPS(gfxCtx, "../z_eff_blure.c", 1280);
@ -872,7 +855,8 @@ Vtx_t D_801157CC[] = {
};
#ifdef NON_MATCHING
void EffectBlure_DrawSimple(EffectBlure* this, GraphicsContext* gfxCtx) {
void EffectBlure_DrawSimple(EffectBlure* this2, GraphicsContext* gfxCtx) {
EffectBlure* this = this2;
Vtx* vtx;
Vtx* vtxIter;
EffectBlureElement* elem;
@ -902,34 +886,32 @@ void EffectBlure_DrawSimple(EffectBlure* this, GraphicsContext* gfxCtx) {
vtxIter[1].v = D_8011578C[1];
vtxIter[2].v = D_8011578C[2];
vtxIter[3].v = D_8011578C[3];
vtxIter = vtx + 4;
vtxIter += 4;
if (this->numElements >= 2) {
for (elem = &this->elements[1]; elem < &this->elements[this->numElements - 2]; elem++) {
for (elem = &this->elements[0]; elem < this->elements + this->numElements - 2; elem++, vtxIter += 4) {
vtxIter[0].v = D_801157CC[0];
vtxIter[1].v = D_801157CC[1];
vtxIter[2].v = D_801157CC[2];
vtxIter[3].v = D_801157CC[3];
vtxIter += 4;
}
}
j1 = -2;
j2 = -1;
for (i = 0; i < this->numElements; i++) {
for (j1 = -2, j2 = -1, i = 0; i < this->numElements; j1 += 4, j2 += 4, i++) {
elem = &this->elements[i];
ratio = (f32)elem->timer / (f32)this->elemDuration;
EffectBlure_GetComputedValues(this, i, ratio, &sp74, &sp6C, &sp64, &sp60);
if (j1 >= 0) {
vtx[j1].v.ob[0] = sp74.x;
vtx[j1].v.ob[1] = sp74.y;
vtx[j1].v.ob[2] = sp74.z;
vtx[j1].v.cn[0] = sp64.r;
vtx[j1].v.cn[1] = sp64.g;
vtx[j1].v.cn[2] = sp64.b;
vtx[j1].v.cn[3] = sp64.a;
j3 = j1;
if (j3 >= 0) {
vtx[j3].v.ob[0] = sp74.x;
vtx[j3].v.ob[1] = sp74.y;
vtx[j3].v.ob[2] = sp74.z;
vtx[j3].v.cn[0] = sp64.r;
vtx[j3].v.cn[1] = sp64.g;
vtx[j3].v.cn[2] = sp64.b;
vtx[j3].v.cn[3] = sp64.a;
}
j3 = j2;
@ -964,9 +946,6 @@ void EffectBlure_DrawSimple(EffectBlure* this, GraphicsContext* gfxCtx) {
vtx[j3].v.cn[2] = sp60.b;
vtx[j3].v.cn[3] = sp60.a;
}
j1 += 4;
j2 += 4;
}
EffectBlure_DrawSimpleVertices(gfxCtx, this, vtx);