1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-28 19:25:27 +00:00

ovl_Magic_Dark (#495)

* merge upstream

* Merge upstream

* Small formatting

* Data section

* MagicDark_Draw

* Gross match of func_80B874E4

* Add func_8005A9CC to functions.h

* Work on func_80B87A18

* func_80B8772C

* Remove comment

* Work on func_80B87A18

* Correct fp constant

* Add regalloc comment ;(

* Move negatives to numbers

* Stupid casts >:(

* Use this->actor when possible

* It's so close

* Use cast + 0xFF

* func_80B87A18

* Delete asm and replace globalCtx2

* Update spec

* static everything

* Name scale

* Use decimal for alpha

* Name some stuff

* Delete reloc

* Name orbOffset

* Name some functions

* Make unused data colors (because it probably is)

* Change >= to >

* Use clamps

* Name MagicDark_DimLighting

* Name gfx

* Rename prototype params

* Cleanup

* Funny cast

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
This commit is contained in:
Sirius902 2020-12-01 18:36:39 -08:00 committed by GitHub
parent 1bb13b8c70
commit 09fe32e198
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 328 additions and 858 deletions

View file

@ -1,295 +0,0 @@
.rdata
glabel D_80B88B5C
.asciz "../z_magic_dark.c"
.balign 4
glabel D_80B88B70
.asciz "../z_magic_dark.c"
.balign 4
glabel D_80B88B84
.asciz "../z_magic_dark.c"
.balign 4
glabel D_80B88B98
.asciz "../z_magic_dark.c"
.balign 4
.late_rodata
glabel D_80B88BFC
.float 1.4
glabel D_80B88C00
.word 0x3DC90FDB
glabel D_80B88C04
.word 0x3DC90FDB, 0x00000000, 0x00000000
.text
glabel MagicDark_Draw
/* 008EC 80B87CBC 27BDFF78 */ addiu $sp, $sp, 0xFF78 ## $sp = FFFFFF78
/* 008F0 80B87CC0 AFBF0024 */ sw $ra, 0x0024($sp)
/* 008F4 80B87CC4 AFB20020 */ sw $s2, 0x0020($sp)
/* 008F8 80B87CC8 AFB1001C */ sw $s1, 0x001C($sp)
/* 008FC 80B87CCC AFB00018 */ sw $s0, 0x0018($sp)
/* 00900 80B87CD0 8CAE009C */ lw $t6, 0x009C($a1) ## 0000009C
/* 00904 80B87CD4 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 00908 80B87CD8 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000
/* 0090C 80B87CDC 31CF001F */ andi $t7, $t6, 0x001F ## $t7 = 00000000
/* 00910 80B87CE0 448F2000 */ mtc1 $t7, $f4 ## $f4 = 0.00
/* 00914 80B87CE4 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00918 80B87CE8 05E10005 */ bgez $t7, .L80B87D00
/* 0091C 80B87CEC 468021A0 */ cvt.s.w $f6, $f4
/* 00920 80B87CF0 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 00924 80B87CF4 44814000 */ mtc1 $at, $f8 ## $f8 = 4294967296.00
/* 00928 80B87CF8 00000000 */ nop
/* 0092C 80B87CFC 46083180 */ add.s $f6, $f6, $f8
.L80B87D00:
/* 00930 80B87D00 E7A6006C */ swc1 $f6, 0x006C($sp)
/* 00934 80B87D04 8623014C */ lh $v1, 0x014C($s1) ## 0000014C
/* 00938 80B87D08 28610020 */ slti $at, $v1, 0x0020
/* 0093C 80B87D0C 50200026 */ beql $at, $zero, .L80B87DA8
/* 00940 80B87D10 28610082 */ slti $at, $v1, 0x0082
/* 00944 80B87D14 C44A09BC */ lwc1 $f10, 0x09BC($v0) ## 000009BC
/* 00948 80B87D18 C4500998 */ lwc1 $f16, 0x0998($v0) ## 00000998
/* 0094C 80B87D1C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 00950 80B87D20 44810000 */ mtc1 $at, $f0 ## $f0 = 0.50
/* 00954 80B87D24 46105480 */ add.s $f18, $f10, $f16
/* 00958 80B87D28 27B90078 */ addiu $t9, $sp, 0x0078 ## $t9 = FFFFFFF0
/* 0095C 80B87D2C 46009102 */ mul.s $f4, $f18, $f0
/* 00960 80B87D30 E7A40078 */ swc1 $f4, 0x0078($sp)
/* 00964 80B87D34 C446099C */ lwc1 $f6, 0x099C($v0) ## 0000099C
/* 00968 80B87D38 C44809C0 */ lwc1 $f8, 0x09C0($v0) ## 000009C0
/* 0096C 80B87D3C 46064280 */ add.s $f10, $f8, $f6
/* 00970 80B87D40 46005402 */ mul.s $f16, $f10, $f0
/* 00974 80B87D44 E7B0007C */ swc1 $f16, 0x007C($sp)
/* 00978 80B87D48 C44409A0 */ lwc1 $f4, 0x09A0($v0) ## 000009A0
/* 0097C 80B87D4C C45209C4 */ lwc1 $f18, 0x09C4($v0) ## 000009C4
/* 00980 80B87D50 46049200 */ add.s $f8, $f18, $f4
/* 00984 80B87D54 46004182 */ mul.s $f6, $f8, $f0
/* 00988 80B87D58 E7A60080 */ swc1 $f6, 0x0080($sp)
/* 0098C 80B87D5C 8623014C */ lh $v1, 0x014C($s1) ## 0000014C
/* 00990 80B87D60 28610015 */ slti $at, $v1, 0x0015
/* 00994 80B87D64 14200008 */ bne $at, $zero, .L80B87D88
/* 00998 80B87D68 2478FFEC */ addiu $t8, $v1, 0xFFEC ## $t8 = FFFFFFEC
/* 0099C 80B87D6C 44985000 */ mtc1 $t8, $f10 ## $f10 = NaN
/* 009A0 80B87D70 3C0180B9 */ lui $at, %hi(D_80B88BFC) ## $at = 80B90000
/* 009A4 80B87D74 C4248BFC */ lwc1 $f4, %lo(D_80B88BFC)($at)
/* 009A8 80B87D78 468054A0 */ cvt.s.w $f18, $f10
/* 009AC 80B87D7C 46049202 */ mul.s $f8, $f18, $f4
/* 009B0 80B87D80 46088180 */ add.s $f6, $f16, $f8
/* 009B4 80B87D84 E7A6007C */ swc1 $f6, 0x007C($sp)
.L80B87D88:
/* 009B8 80B87D88 8F290000 */ lw $t1, 0x0000($t9) ## FFFFFFF0
/* 009BC 80B87D8C AE290150 */ sw $t1, 0x0150($s1) ## 00000150
/* 009C0 80B87D90 8F280004 */ lw $t0, 0x0004($t9) ## FFFFFFF4
/* 009C4 80B87D94 AE280154 */ sw $t0, 0x0154($s1) ## 00000154
/* 009C8 80B87D98 8F290008 */ lw $t1, 0x0008($t9) ## FFFFFFF8
/* 009CC 80B87D9C 1000000B */ beq $zero, $zero, .L80B87DCC
/* 009D0 80B87DA0 AE290158 */ sw $t1, 0x0158($s1) ## 00000158
/* 009D4 80B87DA4 28610082 */ slti $at, $v1, 0x0082
.L80B87DA8:
/* 009D8 80B87DA8 502000BD */ beql $at, $zero, .L80B880A0
/* 009DC 80B87DAC 8FBF0024 */ lw $ra, 0x0024($sp)
/* 009E0 80B87DB0 8E2C0150 */ lw $t4, 0x0150($s1) ## 00000150
/* 009E4 80B87DB4 27AA0078 */ addiu $t2, $sp, 0x0078 ## $t2 = FFFFFFF0
/* 009E8 80B87DB8 AD4C0000 */ sw $t4, 0x0000($t2) ## FFFFFFF0
/* 009EC 80B87DBC 8E2B0154 */ lw $t3, 0x0154($s1) ## 00000154
/* 009F0 80B87DC0 AD4B0004 */ sw $t3, 0x0004($t2) ## FFFFFFF4
/* 009F4 80B87DC4 8E2C0158 */ lw $t4, 0x0158($s1) ## 00000158
/* 009F8 80B87DC8 AD4C0008 */ sw $t4, 0x0008($t2) ## FFFFFFF8
.L80B87DCC:
/* 009FC 80B87DCC 864D07A0 */ lh $t5, 0x07A0($s2) ## 000007A0
/* 00A00 80B87DD0 000D7080 */ sll $t6, $t5, 2
/* 00A04 80B87DD4 024E7821 */ addu $t7, $s2, $t6
/* 00A08 80B87DD8 0C016A73 */ jal func_8005A9CC
/* 00A0C 80B87DDC 8DE40790 */ lw $a0, 0x0790($t7) ## 00000790
/* 00A10 80B87DE0 00022400 */ sll $a0, $v0, 16
/* 00A14 80B87DE4 0C01DE0D */ jal Math_Coss
## coss?
/* 00A18 80B87DE8 00042403 */ sra $a0, $a0, 16
/* 00A1C 80B87DEC E7A00034 */ swc1 $f0, 0x0034($sp)
/* 00A20 80B87DF0 865807A0 */ lh $t8, 0x07A0($s2) ## 000007A0
/* 00A24 80B87DF4 0018C880 */ sll $t9, $t8, 2
/* 00A28 80B87DF8 02594021 */ addu $t0, $s2, $t9
/* 00A2C 80B87DFC 0C016A7D */ jal func_8005A9F4
/* 00A30 80B87E00 8D040790 */ lw $a0, 0x0790($t0) ## 00000790
/* 00A34 80B87E04 00022400 */ sll $a0, $v0, 16
/* 00A38 80B87E08 0C01DE1C */ jal Math_Sins
## sins?
/* 00A3C 80B87E0C 00042403 */ sra $a0, $a0, 16
/* 00A40 80B87E10 3C014396 */ lui $at, 0x4396 ## $at = 43960000
/* 00A44 80B87E14 44819000 */ mtc1 $at, $f18 ## $f18 = 300.00
/* 00A48 80B87E18 C62A0050 */ lwc1 $f10, 0x0050($s1) ## 00000050
/* 00A4C 80B87E1C C7A80034 */ lwc1 $f8, 0x0034($sp)
/* 00A50 80B87E20 46125102 */ mul.s $f4, $f10, $f18
/* 00A54 80B87E24 C7AA0078 */ lwc1 $f10, 0x0078($sp)
/* 00A58 80B87E28 46002402 */ mul.s $f16, $f4, $f0
/* 00A5C 80B87E2C 00000000 */ nop
/* 00A60 80B87E30 46088182 */ mul.s $f6, $f16, $f8
/* 00A64 80B87E34 46065481 */ sub.s $f18, $f10, $f6
/* 00A68 80B87E38 E7B20078 */ swc1 $f18, 0x0078($sp)
/* 00A6C 80B87E3C 864907A0 */ lh $t1, 0x07A0($s2) ## 000007A0
/* 00A70 80B87E40 00095080 */ sll $t2, $t1, 2
/* 00A74 80B87E44 024A5821 */ addu $t3, $s2, $t2
/* 00A78 80B87E48 0C016A73 */ jal func_8005A9CC
/* 00A7C 80B87E4C 8D640790 */ lw $a0, 0x0790($t3) ## 00000790
/* 00A80 80B87E50 00022400 */ sll $a0, $v0, 16
/* 00A84 80B87E54 0C01DE1C */ jal Math_Sins
## sins?
/* 00A88 80B87E58 00042403 */ sra $a0, $a0, 16
/* 00A8C 80B87E5C 3C014396 */ lui $at, 0x4396 ## $at = 43960000
/* 00A90 80B87E60 44818000 */ mtc1 $at, $f16 ## $f16 = 300.00
/* 00A94 80B87E64 C6240050 */ lwc1 $f4, 0x0050($s1) ## 00000050
/* 00A98 80B87E68 C7A6007C */ lwc1 $f6, 0x007C($sp)
/* 00A9C 80B87E6C 46102202 */ mul.s $f8, $f4, $f16
/* 00AA0 80B87E70 00000000 */ nop
/* 00AA4 80B87E74 46004282 */ mul.s $f10, $f8, $f0
/* 00AA8 80B87E78 460A3481 */ sub.s $f18, $f6, $f10
/* 00AAC 80B87E7C E7B2007C */ swc1 $f18, 0x007C($sp)
/* 00AB0 80B87E80 864C07A0 */ lh $t4, 0x07A0($s2) ## 000007A0
/* 00AB4 80B87E84 000C6880 */ sll $t5, $t4, 2
/* 00AB8 80B87E88 024D7021 */ addu $t6, $s2, $t5
/* 00ABC 80B87E8C 0C016A73 */ jal func_8005A9CC
/* 00AC0 80B87E90 8DC40790 */ lw $a0, 0x0790($t6) ## 00000790
/* 00AC4 80B87E94 00022400 */ sll $a0, $v0, 16
/* 00AC8 80B87E98 0C01DE0D */ jal Math_Coss
## coss?
/* 00ACC 80B87E9C 00042403 */ sra $a0, $a0, 16
/* 00AD0 80B87EA0 E7A00034 */ swc1 $f0, 0x0034($sp)
/* 00AD4 80B87EA4 864F07A0 */ lh $t7, 0x07A0($s2) ## 000007A0
/* 00AD8 80B87EA8 000FC080 */ sll $t8, $t7, 2
/* 00ADC 80B87EAC 0258C821 */ addu $t9, $s2, $t8
/* 00AE0 80B87EB0 0C016A7D */ jal func_8005A9F4
/* 00AE4 80B87EB4 8F240790 */ lw $a0, 0x0790($t9) ## 00000790
/* 00AE8 80B87EB8 00022400 */ sll $a0, $v0, 16
/* 00AEC 80B87EBC 0C01DE0D */ jal Math_Coss
## coss?
/* 00AF0 80B87EC0 00042403 */ sra $a0, $a0, 16
/* 00AF4 80B87EC4 3C014396 */ lui $at, 0x4396 ## $at = 43960000
/* 00AF8 80B87EC8 44818000 */ mtc1 $at, $f16 ## $f16 = 300.00
/* 00AFC 80B87ECC C6240050 */ lwc1 $f4, 0x0050($s1) ## 00000050
/* 00B00 80B87ED0 C7AA0034 */ lwc1 $f10, 0x0034($sp)
/* 00B04 80B87ED4 3C0680B9 */ lui $a2, %hi(D_80B88B5C) ## $a2 = 80B90000
/* 00B08 80B87ED8 46102202 */ mul.s $f8, $f4, $f16
/* 00B0C 80B87EDC C7A40080 */ lwc1 $f4, 0x0080($sp)
/* 00B10 80B87EE0 24C68B5C */ addiu $a2, $a2, %lo(D_80B88B5C) ## $a2 = 80B88B5C
/* 00B14 80B87EE4 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFD0
/* 00B18 80B87EE8 2407026B */ addiu $a3, $zero, 0x026B ## $a3 = 0000026B
/* 00B1C 80B87EEC 46004182 */ mul.s $f6, $f8, $f0
/* 00B20 80B87EF0 00000000 */ nop
/* 00B24 80B87EF4 460A3482 */ mul.s $f18, $f6, $f10
/* 00B28 80B87EF8 46122401 */ sub.s $f16, $f4, $f18
/* 00B2C 80B87EFC E7B00080 */ swc1 $f16, 0x0080($sp)
/* 00B30 80B87F00 8E450000 */ lw $a1, 0x0000($s2) ## 00000000
/* 00B34 80B87F04 0C031AB1 */ jal Graph_OpenDisps
/* 00B38 80B87F08 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00B3C 80B87F0C 0C024F61 */ jal func_80093D84
/* 00B40 80B87F10 8E440000 */ lw $a0, 0x0000($s2) ## 00000000
/* 00B44 80B87F14 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00B48 80B87F18 3C09FA00 */ lui $t1, 0xFA00 ## $t1 = FA000000
/* 00B4C 80B87F1C 3C0AAAFF */ lui $t2, 0xAAFF ## $t2 = AAFF0000
/* 00B50 80B87F20 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
/* 00B54 80B87F24 AE0802D0 */ sw $t0, 0x02D0($s0) ## 000002D0
/* 00B58 80B87F28 354AFFFF */ ori $t2, $t2, 0xFFFF ## $t2 = AAFFFFFF
/* 00B5C 80B87F2C 35290080 */ ori $t1, $t1, 0x0080 ## $t1 = FA000080
/* 00B60 80B87F30 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00B64 80B87F34 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 00B68 80B87F38 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00B6C 80B87F3C 3C0D0096 */ lui $t5, 0x0096 ## $t5 = 00960000
/* 00B70 80B87F40 35ADFFFF */ ori $t5, $t5, 0xFFFF ## $t5 = 0096FFFF
/* 00B74 80B87F44 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 00B78 80B87F48 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 00B7C 80B87F4C 3C0CFB00 */ lui $t4, 0xFB00 ## $t4 = FB000000
/* 00B80 80B87F50 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 00B84 80B87F54 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 00B88 80B87F58 8FA60080 */ lw $a2, 0x0080($sp)
/* 00B8C 80B87F5C C7AE007C */ lwc1 $f14, 0x007C($sp)
/* 00B90 80B87F60 C7AC0078 */ lwc1 $f12, 0x0078($sp)
/* 00B94 80B87F64 0C034261 */ jal Matrix_Translate
/* 00B98 80B87F68 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00B9C 80B87F6C C62C0050 */ lwc1 $f12, 0x0050($s1) ## 00000050
/* 00BA0 80B87F70 C62E0054 */ lwc1 $f14, 0x0054($s1) ## 00000054
/* 00BA4 80B87F74 8E260058 */ lw $a2, 0x0058($s1) ## 00000058
/* 00BA8 80B87F78 0C0342A3 */ jal Matrix_Scale
/* 00BAC 80B87F7C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00BB0 80B87F80 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00BB4 80B87F84 34211DA0 */ ori $at, $at, 0x1DA0 ## $at = 00011DA0
/* 00BB8 80B87F88 02412021 */ addu $a0, $s2, $at
/* 00BBC 80B87F8C 0C03424C */ jal Matrix_Mult
/* 00BC0 80B87F90 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00BC4 80B87F94 0C034213 */ jal Matrix_Push
/* 00BC8 80B87F98 00000000 */ nop
/* 00BCC 80B87F9C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00BD0 80B87FA0 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
/* 00BD4 80B87FA4 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
/* 00BD8 80B87FA8 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00BDC 80B87FAC AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 00BE0 80B87FB0 3C0580B9 */ lui $a1, %hi(D_80B88B70) ## $a1 = 80B90000
/* 00BE4 80B87FB4 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00BE8 80B87FB8 8E440000 */ lw $a0, 0x0000($s2) ## 00000000
/* 00BEC 80B87FBC 24A58B70 */ addiu $a1, $a1, %lo(D_80B88B70) ## $a1 = 80B88B70
/* 00BF0 80B87FC0 24060278 */ addiu $a2, $zero, 0x0278 ## $a2 = 00000278
/* 00BF4 80B87FC4 0C0346A2 */ jal Matrix_NewMtx
/* 00BF8 80B87FC8 00408825 */ or $s1, $v0, $zero ## $s1 = 00000000
/* 00BFC 80B87FCC AE220004 */ sw $v0, 0x0004($s1) ## 00000004
/* 00C00 80B87FD0 3C0180B9 */ lui $at, %hi(D_80B88C00) ## $at = 80B90000
/* 00C04 80B87FD4 C4268C00 */ lwc1 $f6, %lo(D_80B88C00)($at)
/* 00C08 80B87FD8 C7A8006C */ lwc1 $f8, 0x006C($sp)
/* 00C0C 80B87FDC 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00C10 80B87FE0 46064302 */ mul.s $f12, $f8, $f6
/* 00C14 80B87FE4 0C0343B5 */ jal Matrix_RotateZ
/* 00C18 80B87FE8 00000000 */ nop
/* 00C1C 80B87FEC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00C20 80B87FF0 3C040401 */ lui $a0, 0x0401 ## $a0 = 04010000
/* 00C24 80B87FF4 24840130 */ addiu $a0, $a0, 0x0130 ## $a0 = 04010130
/* 00C28 80B87FF8 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00C2C 80B87FFC AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 00C30 80B88000 3C19DE00 */ lui $t9, 0xDE00 ## $t9 = DE000000
/* 00C34 80B88004 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00C38 80B88008 AC440004 */ sw $a0, 0x0004($v0) ## 00000004
/* 00C3C 80B8800C 0C034221 */ jal Matrix_Pull
/* 00C40 80B88010 AFA4002C */ sw $a0, 0x002C($sp)
/* 00C44 80B88014 C7AA006C */ lwc1 $f10, 0x006C($sp)
/* 00C48 80B88018 3C0180B9 */ lui $at, %hi(D_80B88C04) ## $at = 80B90000
/* 00C4C 80B8801C C4328C04 */ lwc1 $f18, %lo(D_80B88C04)($at)
/* 00C50 80B88020 46005107 */ neg.s $f4, $f10
/* 00C54 80B88024 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00C58 80B88028 46122302 */ mul.s $f12, $f4, $f18
/* 00C5C 80B8802C 0C0343B5 */ jal Matrix_RotateZ
/* 00C60 80B88030 00000000 */ nop
/* 00C64 80B88034 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00C68 80B88038 3C09DA38 */ lui $t1, 0xDA38 ## $t1 = DA380000
/* 00C6C 80B8803C 35290003 */ ori $t1, $t1, 0x0003 ## $t1 = DA380003
/* 00C70 80B88040 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008
/* 00C74 80B88044 AE0802D0 */ sw $t0, 0x02D0($s0) ## 000002D0
/* 00C78 80B88048 3C0580B9 */ lui $a1, %hi(D_80B88B84) ## $a1 = 80B90000
/* 00C7C 80B8804C AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00C80 80B88050 8E440000 */ lw $a0, 0x0000($s2) ## 00000000
/* 00C84 80B88054 24A58B84 */ addiu $a1, $a1, %lo(D_80B88B84) ## $a1 = 80B88B84
/* 00C88 80B88058 2406027F */ addiu $a2, $zero, 0x027F ## $a2 = 0000027F
/* 00C8C 80B8805C 0C0346A2 */ jal Matrix_NewMtx
/* 00C90 80B88060 00408825 */ or $s1, $v0, $zero ## $s1 = 00000000
/* 00C94 80B88064 AE220004 */ sw $v0, 0x0004($s1) ## 00000004
/* 00C98 80B88068 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00C9C 80B8806C 3C0BDE00 */ lui $t3, 0xDE00 ## $t3 = DE000000
/* 00CA0 80B88070 3C0680B9 */ lui $a2, %hi(D_80B88B98) ## $a2 = 80B90000
/* 00CA4 80B88074 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 00CA8 80B88078 AE0A02D0 */ sw $t2, 0x02D0($s0) ## 000002D0
/* 00CAC 80B8807C AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 00CB0 80B88080 8FAC002C */ lw $t4, 0x002C($sp)
/* 00CB4 80B88084 24C68B98 */ addiu $a2, $a2, %lo(D_80B88B98) ## $a2 = 80B88B98
/* 00CB8 80B88088 27A40058 */ addiu $a0, $sp, 0x0058 ## $a0 = FFFFFFD0
/* 00CBC 80B8808C AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 00CC0 80B88090 8E450000 */ lw $a1, 0x0000($s2) ## 00000000
/* 00CC4 80B88094 0C031AD5 */ jal Graph_CloseDisps
/* 00CC8 80B88098 24070283 */ addiu $a3, $zero, 0x0283 ## $a3 = 00000283
/* 00CCC 80B8809C 8FBF0024 */ lw $ra, 0x0024($sp)
.L80B880A0:
/* 00CD0 80B880A0 8FB00018 */ lw $s0, 0x0018($sp)
/* 00CD4 80B880A4 8FB1001C */ lw $s1, 0x001C($sp)
/* 00CD8 80B880A8 8FB20020 */ lw $s2, 0x0020($sp)
/* 00CDC 80B880AC 03E00008 */ jr $ra
/* 00CE0 80B880B0 27BD0088 */ addiu $sp, $sp, 0x0088 ## $sp = 00000000
/* 00CE4 80B880B4 00000000 */ nop
/* 00CE8 80B880B8 00000000 */ nop
/* 00CEC 80B880BC 00000000 */ nop

View file

@ -1,178 +0,0 @@
.late_rodata
glabel D_80B88BBC
.float 0.03
glabel D_80B88BC0
.float 1.6
glabel D_80B88BC4
.float 0.01
glabel D_80B88BC8
.float 0.8
glabel D_80B88BCC
.float 1.3
.text
glabel func_80B874E4
/* 00114 80B874E4 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00118 80B874E8 3C020001 */ lui $v0, 0x0001 ## $v0 = 00010000
/* 0011C 80B874EC AFBF0014 */ sw $ra, 0x0014($sp)
/* 00120 80B874F0 00451021 */ addu $v0, $v0, $a1
/* 00124 80B874F4 904203DC */ lbu $v0, 0x03DC($v0) ## 000103DC
/* 00128 80B874F8 3C088016 */ lui $t0, %hi(gSaveContext)
/* 0012C 80B874FC 2508E660 */ addiu $t0, %lo(gSaveContext)
/* 00130 80B87500 2409000D */ addiu $t1, $zero, 0x000D ## $t1 = 0000000D
/* 00134 80B87504 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00138 80B87508 8CA71C44 */ lw $a3, 0x1C44($a1) ## 00001C44
/* 0013C 80B8750C 10490004 */ beq $v0, $t1, .L80B87520
/* 00140 80B87510 850313C8 */ lh $v1, 0x13C8($t0) ## 8015FA28
/* 00144 80B87514 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011
/* 00148 80B87518 54410006 */ bnel $v0, $at, .L80B87534
/* 0014C 80B8751C 286104B0 */ slti $at, $v1, 0x04B0
.L80B87520:
/* 00150 80B87520 0C00B55C */ jal Actor_Kill
/* 00154 80B87524 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00158 80B87528 1000007D */ beq $zero, $zero, .L80B87720
/* 0015C 80B8752C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00160 80B87530 286104B0 */ slti $at, $v1, 0x04B0
.L80B87534:
/* 00164 80B87534 14200007 */ bne $at, $zero, .L80B87554
/* 00168 80B87538 240EFF9C */ addiu $t6, $zero, 0xFF9C ## $t6 = FFFFFF9C
/* 0016C 80B8753C A0E00A78 */ sb $zero, 0x0A78($a3) ## 00000A78
/* 00170 80B87540 A50013C8 */ sh $zero, 0x13C8($t0) ## 000013C8
/* 00174 80B87544 0C00B55C */ jal Actor_Kill
/* 00178 80B87548 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0017C 80B8754C 10000074 */ beq $zero, $zero, .L80B87720
/* 00180 80B87550 8FBF0014 */ lw $ra, 0x0014($sp)
.L80B87554:
/* 00184 80B87554 A0EE0A78 */ sb $t6, 0x0A78($a3) ## 00000A78
/* 00188 80B87558 84C2014C */ lh $v0, 0x014C($a2) ## 0000014C
/* 0018C 80B8755C C4C0015C */ lwc1 $f0, 0x015C($a2) ## 0000015C
/* 00190 80B87560 240400FF */ addiu $a0, $zero, 0x00FF ## $a0 = 000000FF
/* 00194 80B87564 28410014 */ slti $at, $v0, 0x0014
/* 00198 80B87568 E4C00058 */ swc1 $f0, 0x0058($a2) ## 00000058
/* 0019C 80B8756C 1020001B */ beq $at, $zero, .L80B875DC
/* 001A0 80B87570 E4C00050 */ swc1 $f0, 0x0050($a2) ## 00000050
/* 001A4 80B87574 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 001A8 80B87578 3C0180B9 */ lui $at, %hi(D_80B88BBC) ## $at = 80B90000
/* 001AC 80B8757C C4288BBC */ lwc1 $f8, %lo(D_80B88BBC)($at)
/* 001B0 80B87580 468021A0 */ cvt.s.w $f6, $f4
/* 001B4 80B87584 3C0180B9 */ lui $at, %hi(D_80B88BC0) ## $at = 80B90000
/* 001B8 80B87588 C4308BC0 */ lwc1 $f16, %lo(D_80B88BC0)($at)
/* 001BC 80B8758C C4C4015C */ lwc1 $f4, 0x015C($a2) ## 0000015C
/* 001C0 80B87590 84CF014C */ lh $t7, 0x014C($a2) ## 0000014C
/* 001C4 80B87594 3C0180B9 */ lui $at, %hi(D_80B88BC4) ## $at = 80B90000
/* 001C8 80B87598 46083282 */ mul.s $f10, $f6, $f8
/* 001CC 80B8759C 448F3000 */ mtc1 $t7, $f6 ## $f6 = 0.00
/* 001D0 80B875A0 00000000 */ nop
/* 001D4 80B875A4 46803220 */ cvt.s.w $f8, $f6
/* 001D8 80B875A8 C4C6015C */ lwc1 $f6, 0x015C($a2) ## 0000015C
/* 001DC 80B875AC 460A8481 */ sub.s $f18, $f16, $f10
/* 001E0 80B875B0 46049002 */ mul.s $f0, $f18, $f4
/* 001E4 80B875B4 E4C00058 */ swc1 $f0, 0x0058($a2) ## 00000058
/* 001E8 80B875B8 E4C00050 */ swc1 $f0, 0x0050($a2) ## 00000050
/* 001EC 80B875BC C4308BC4 */ lwc1 $f16, %lo(D_80B88BC4)($at)
/* 001F0 80B875C0 3C0180B9 */ lui $at, %hi(D_80B88BC8) ## $at = 80B90000
/* 001F4 80B875C4 C4328BC8 */ lwc1 $f18, %lo(D_80B88BC8)($at)
/* 001F8 80B875C8 46104282 */ mul.s $f10, $f8, $f16
/* 001FC 80B875CC 46125100 */ add.s $f4, $f10, $f18
/* 00200 80B875D0 46062202 */ mul.s $f8, $f4, $f6
/* 00204 80B875D4 10000006 */ beq $zero, $zero, .L80B875F0
/* 00208 80B875D8 E4C80054 */ swc1 $f8, 0x0054($a2) ## 00000054
.L80B875DC:
/* 0020C 80B875DC C4C0015C */ lwc1 $f0, 0x015C($a2) ## 0000015C
/* 00210 80B875E0 C4D0015C */ lwc1 $f16, 0x015C($a2) ## 0000015C
/* 00214 80B875E4 E4C00058 */ swc1 $f0, 0x0058($a2) ## 00000058
/* 00218 80B875E8 E4C00050 */ swc1 $f0, 0x0050($a2) ## 00000050
/* 0021C 80B875EC E4D00054 */ swc1 $f16, 0x0054($a2) ## 00000054
.L80B875F0:
/* 00220 80B875F0 3C0180B9 */ lui $at, %hi(D_80B88BCC) ## $at = 80B90000
/* 00224 80B875F4 C4208BCC */ lwc1 $f0, %lo(D_80B88BCC)($at)
/* 00228 80B875F8 C4CA0050 */ lwc1 $f10, 0x0050($a2) ## 00000050
/* 0022C 80B875FC C4C40058 */ lwc1 $f4, 0x0058($a2) ## 00000058
/* 00230 80B87600 84C2014C */ lh $v0, 0x014C($a2) ## 0000014C
/* 00234 80B87604 46005482 */ mul.s $f18, $f10, $f0
/* 00238 80B87608 28410014 */ slti $at, $v0, 0x0014
/* 0023C 80B8760C 46002182 */ mul.s $f6, $f4, $f0
/* 00240 80B87610 E4D20050 */ swc1 $f18, 0x0050($a2) ## 00000050
/* 00244 80B87614 10200006 */ beq $at, $zero, .L80B87630
/* 00248 80B87618 E4C60058 */ swc1 $f6, 0x0058($a2) ## 00000058
/* 0024C 80B8761C 00022080 */ sll $a0, $v0, 2
/* 00250 80B87620 00822023 */ subu $a0, $a0, $v0
/* 00254 80B87624 00042080 */ sll $a0, $a0, 2
/* 00258 80B87628 10000001 */ beq $zero, $zero, .L80B87630
/* 0025C 80B8762C 308400FF */ andi $a0, $a0, 0x00FF ## $a0 = 000000FF
.L80B87630:
/* 00260 80B87630 2861049C */ slti $at, $v1, 0x049C
/* 00264 80B87634 5420000D */ bnel $at, $zero, .L80B8766C
/* 00268 80B87638 2861044C */ slti $at, $v1, 0x044C
/* 0026C 80B8763C 00690019 */ multu $v1, $t1
/* 00270 80B87640 24193CEB */ addiu $t9, $zero, 0x3CEB ## $t9 = 00003CEB
/* 00274 80B87644 306B0001 */ andi $t3, $v1, 0x0001 ## $t3 = 00000000
/* 00278 80B87648 0000C012 */ mflo $t8
/* 0027C 80B8764C 03385023 */ subu $t2, $t9, $t8
/* 00280 80B87650 1160000D */ beq $t3, $zero, .L80B87688
/* 00284 80B87654 A0CA014E */ sb $t2, 0x014E($a2) ## 0000014E
/* 00288 80B87658 314C00FF */ andi $t4, $t2, 0x00FF ## $t4 = 00000000
/* 0028C 80B8765C 000C6843 */ sra $t5, $t4, 1
/* 00290 80B87660 10000009 */ beq $zero, $zero, .L80B87688
/* 00294 80B87664 A0CD014E */ sb $t5, 0x014E($a2) ## 0000014E
/* 00298 80B87668 2861044C */ slti $at, $v1, 0x044C
.L80B8766C:
/* 0029C 80B8766C 14200005 */ bne $at, $zero, .L80B87684
/* 002A0 80B87670 241800FF */ addiu $t8, $zero, 0x00FF ## $t8 = 000000FF
/* 002A4 80B87674 000379C0 */ sll $t7, $v1, 7
/* 002A8 80B87678 25F9007F */ addiu $t9, $t7, 0x007F ## $t9 = 0000007F
/* 002AC 80B8767C 10000002 */ beq $zero, $zero, .L80B87688
/* 002B0 80B87680 A0D9014E */ sb $t9, 0x014E($a2) ## 0000014E
.L80B87684:
/* 002B4 80B87684 A0D8014E */ sb $t8, 0x014E($a2) ## 0000014E
.L80B87688:
/* 002B8 80B87688 90CA014E */ lbu $t2, 0x014E($a2) ## 0000014E
/* 002BC 80B8768C 008A082A */ slt $at, $a0, $t2
/* 002C0 80B87690 50200003 */ beql $at, $zero, .L80B876A0
/* 002C4 80B87694 84CB0032 */ lh $t3, 0x0032($a2) ## 00000032
/* 002C8 80B87698 A0C4014E */ sb $a0, 0x014E($a2) ## 0000014E
/* 002CC 80B8769C 84CB0032 */ lh $t3, 0x0032($a2) ## 00000032
.L80B876A0:
/* 002D0 80B876A0 256C03E8 */ addiu $t4, $t3, 0x03E8 ## $t4 = 000003E8
/* 002D4 80B876A4 A4CC0032 */ sh $t4, 0x0032($a2) ## 00000032
/* 002D8 80B876A8 84AD07A0 */ lh $t5, 0x07A0($a1) ## 000007A0
/* 002DC 80B876AC 000D7080 */ sll $t6, $t5, 2
/* 002E0 80B876B0 00AE7821 */ addu $t7, $a1, $t6
/* 002E4 80B876B4 8DE40790 */ lw $a0, 0x0790($t7) ## 00000790
/* 002E8 80B876B8 AFA60028 */ sw $a2, 0x0028($sp)
/* 002EC 80B876BC 0C016A7D */ jal func_8005A9F4
/* 002F0 80B876C0 A7A30018 */ sh $v1, 0x0018($sp)
/* 002F4 80B876C4 8FA60028 */ lw $a2, 0x0028($sp)
/* 002F8 80B876C8 87A30018 */ lh $v1, 0x0018($sp)
/* 002FC 80B876CC 3C088016 */ lui $t0, %hi(gSaveContext)
/* 00300 80B876D0 84D90032 */ lh $t9, 0x0032($a2) ## 00000032
/* 00304 80B876D4 84CA014C */ lh $t2, 0x014C($a2) ## 0000014C
/* 00308 80B876D8 2508E660 */ addiu $t0, %lo(gSaveContext)
/* 0030C 80B876DC 0059C021 */ addu $t8, $v0, $t9
/* 00310 80B876E0 254B0001 */ addiu $t3, $t2, 0x0001 ## $t3 = 00000001
/* 00314 80B876E4 A4D800B6 */ sh $t8, 0x00B6($a2) ## 000000B6
/* 00318 80B876E8 A4CB014C */ sh $t3, 0x014C($a2) ## 0000014C
/* 0031C 80B876EC 246C0001 */ addiu $t4, $v1, 0x0001 ## $t4 = 00000001
/* 00320 80B876F0 2861044C */ slti $at, $v1, 0x044C
/* 00324 80B876F4 10200006 */ beq $at, $zero, .L80B87710
/* 00328 80B876F8 A50C13C8 */ sh $t4, 0x13C8($t0) ## 8015FA28
/* 0032C 80B876FC 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00330 80B87700 0C00BE5D */ jal func_8002F974
/* 00334 80B87704 2405007C */ addiu $a1, $zero, 0x007C ## $a1 = 0000007C
/* 00338 80B87708 10000005 */ beq $zero, $zero, .L80B87720
/* 0033C 80B8770C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80B87710:
/* 00340 80B87710 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00344 80B87714 0C00BE5D */ jal func_8002F974
/* 00348 80B87718 240500C0 */ addiu $a1, $zero, 0x00C0 ## $a1 = 000000C0
/* 0034C 80B8771C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80B87720:
/* 00350 80B87720 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00354 80B87724 03E00008 */ jr $ra
/* 00358 80B87728 00000000 */ nop

View file

@ -1,100 +0,0 @@
.late_rodata
glabel D_80B88BD0
.float 0.2
glabel D_80B88BD4
.word 0x44548000
.text
glabel func_80B8772C
/* 0035C 80B8772C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00360 80B87730 00811021 */ addu $v0, $a0, $at
/* 00364 80B87734 904E1CBF */ lbu $t6, 0x1CBF($v0) ## 00001CBF
/* 00368 80B87738 44856000 */ mtc1 $a1, $f12 ## $f12 = 0.00
/* 0036C 80B8773C 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00370 80B87740 11C1004B */ beq $t6, $at, .L80B87870
/* 00374 80B87744 00000000 */ nop
/* 00378 80B87748 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
/* 0037C 80B8774C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00380 80B87750 44817000 */ mtc1 $at, $f14 ## $f14 = 1.00
/* 00384 80B87754 4602603C */ c.lt.s $f12, $f2
/* 00388 80B87758 3C0180B9 */ lui $at, %hi(D_80B88BD0) ## $at = 80B90000
/* 0038C 80B8775C 45020003 */ bc1fl .L80B8776C
/* 00390 80B87760 460C703C */ c.lt.s $f14, $f12
/* 00394 80B87764 46001306 */ mov.s $f12, $f2
/* 00398 80B87768 460C703C */ c.lt.s $f14, $f12
.L80B8776C:
/* 0039C 80B8776C 00000000 */ nop
/* 003A0 80B87770 45000002 */ bc1f .L80B8777C
/* 003A4 80B87774 00000000 */ nop
/* 003A8 80B87778 46007306 */ mov.s $f12, $f14
.L80B8777C:
/* 003AC 80B8777C C4308BD0 */ lwc1 $f16, %lo(D_80B88BD0)($at)
/* 003B0 80B87780 4610603C */ c.lt.s $f12, $f16
/* 003B4 80B87784 46106001 */ sub.s $f0, $f12, $f16
/* 003B8 80B87788 45020003 */ bc1fl .L80B87798
/* 003BC 80B8778C 844F0AF6 */ lh $t7, 0x0AF6($v0) ## 00000AF6
/* 003C0 80B87790 46001006 */ mov.s $f0, $f2
/* 003C4 80B87794 844F0AF6 */ lh $t7, 0x0AF6($v0) ## 00000AF6
.L80B87798:
/* 003C8 80B87798 3C0180B9 */ lui $at, %hi(D_80B88BD4) ## $at = 80B90000
/* 003CC 80B8779C C4248BD4 */ lwc1 $f4, %lo(D_80B88BD4)($at)
/* 003D0 80B877A0 448F3000 */ mtc1 $t7, $f6 ## $f6 = 0.00
/* 003D4 80B877A4 46026032 */ c.eq.s $f12, $f2
/* 003D8 80B877A8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 003DC 80B877AC 46803220 */ cvt.s.w $f8, $f6
/* 003E0 80B877B0 00240821 */ addu $at, $at, $a0
/* 003E4 80B877B4 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 003E8 80B877B8 46082281 */ sub.s $f10, $f4, $f8
/* 003EC 80B877BC 46005482 */ mul.s $f18, $f10, $f0
/* 003F0 80B877C0 4600918D */ trunc.w.s $f6, $f18
/* 003F4 80B877C4 44193000 */ mfc1 $t9, $f6
/* 003F8 80B877C8 4500000B */ bc1f .L80B877F8
/* 003FC 80B877CC A4390AC2 */ sh $t9, 0x0AC2($at) ## 00010AC2
/* 00400 80B877D0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00404 80B877D4 00811821 */ addu $v1, $a0, $at
/* 00408 80B877D8 24040003 */ addiu $a0, $zero, 0x0003 ## $a0 = 00000003
/* 0040C 80B877DC 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80B877E0:
/* 00410 80B877E0 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
/* 00414 80B877E4 24630002 */ addiu $v1, $v1, 0x0002 ## $v1 = 00000002
/* 00418 80B877E8 1444FFFD */ bne $v0, $a0, .L80B877E0
/* 0041C 80B877EC A4600ABA */ sh $zero, 0x0ABA($v1) ## 00000ABC
/* 00420 80B877F0 03E00008 */ jr $ra
/* 00424 80B877F4 00000000 */ nop
.L80B877F8:
/* 00428 80B877F8 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 0042C 80B877FC 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 00430 80B87800 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00434 80B87804 00811821 */ addu $v1, $a0, $at
/* 00438 80B87808 46046002 */ mul.s $f0, $f12, $f4
/* 0043C 80B8780C 00812821 */ addu $a1, $a0, $at
/* 00440 80B87810 24040003 */ addiu $a0, $zero, 0x0003 ## $a0 = 00000003
/* 00444 80B87814 4600703C */ c.lt.s $f14, $f0
/* 00448 80B87818 00000000 */ nop
/* 0044C 80B8781C 45000002 */ bc1f .L80B87828
/* 00450 80B87820 00000000 */ nop
/* 00454 80B87824 46007006 */ mov.s $f0, $f14
.L80B87828:
/* 00458 80B87828 90A80AF3 */ lbu $t0, 0x0AF3($a1) ## 00000AF3
/* 0045C 80B8782C 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 00460 80B87830 44884000 */ mtc1 $t0, $f8 ## $f8 = 0.00
/* 00464 80B87834 05010004 */ bgez $t0, .L80B87848
/* 00468 80B87838 468042A0 */ cvt.s.w $f10, $f8
/* 0046C 80B8783C 44819000 */ mtc1 $at, $f18 ## $f18 = 4294967296.00
/* 00470 80B87840 00000000 */ nop
/* 00474 80B87844 46125280 */ add.s $f10, $f10, $f18
.L80B87848:
/* 00478 80B87848 46005182 */ mul.s $f6, $f10, $f0
/* 0047C 80B8784C 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000002
/* 00480 80B87850 24630002 */ addiu $v1, $v1, 0x0002 ## $v1 = 00000004
/* 00484 80B87854 24A50001 */ addiu $a1, $a1, 0x0001 ## $a1 = 00000001
/* 00488 80B87858 4600310D */ trunc.w.s $f4, $f6
/* 0048C 80B8785C 440C2000 */ mfc1 $t4, $f4
/* 00490 80B87860 00000000 */ nop
/* 00494 80B87864 000C6823 */ subu $t5, $zero, $t4
/* 00498 80B87868 1444FFEF */ bne $v0, $a0, .L80B87828
/* 0049C 80B8786C A46D0ABA */ sh $t5, 0x0ABA($v1) ## 00000ABE
.L80B87870:
/* 004A0 80B87870 03E00008 */ jr $ra
/* 004A4 80B87874 00000000 */ nop

View file

@ -1,195 +0,0 @@
.rdata
glabel D_80B88B20
.asciz "../z_magic_dark.c"
.balign 4
glabel D_80B88B34
.asciz "../z_magic_dark.c"
.balign 4
glabel D_80B88B48
.asciz "../z_magic_dark.c"
.balign 4
.late_rodata
glabel D_80B88BF4
.float 9.58738019108e-05
glabel D_80B88BF8
.float 0.6
.text
glabel func_80B87A18
/* 00648 80B87A18 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
/* 0064C 80B87A1C 3C0E0001 */ lui $t6, 0x0001 ## $t6 = 00010000
/* 00650 80B87A20 AFBF0044 */ sw $ra, 0x0044($sp)
/* 00654 80B87A24 AFB20040 */ sw $s2, 0x0040($sp)
/* 00658 80B87A28 AFB1003C */ sw $s1, 0x003C($sp)
/* 0065C 80B87A2C AFB00038 */ sw $s0, 0x0038($sp)
/* 00660 80B87A30 01C57021 */ addu $t6, $t6, $a1
/* 00664 80B87A34 8DCE1DE4 */ lw $t6, 0x1DE4($t6) ## 00011DE4
/* 00668 80B87A38 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000
/* 0066C 80B87A3C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00670 80B87A40 A7AE0086 */ sh $t6, 0x0086($sp)
/* 00674 80B87A44 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00678 80B87A48 3C0680B9 */ lui $a2, %hi(D_80B88B20) ## $a2 = 80B90000
/* 0067C 80B87A4C 24C68B20 */ addiu $a2, $a2, %lo(D_80B88B20) ## $a2 = 80B88B20
/* 00680 80B87A50 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0
/* 00684 80B87A54 2407020D */ addiu $a3, $zero, 0x020D ## $a3 = 0000020D
/* 00688 80B87A58 0C031AB1 */ jal Graph_OpenDisps
/* 0068C 80B87A5C 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00690 80B87A60 0C024F61 */ jal func_80093D84
/* 00694 80B87A64 8E440000 */ lw $a0, 0x0000($s2) ## 00000000
/* 00698 80B87A68 8E421C44 */ lw $v0, 0x1C44($s2) ## 00001C44
/* 0069C 80B87A6C C60E0028 */ lwc1 $f14, 0x0028($s0) ## 00000028
/* 006A0 80B87A70 3C01C000 */ lui $at, 0xC000 ## $at = C0000000
/* 006A4 80B87A74 C4440908 */ lwc1 $f4, 0x0908($v0) ## 00000908
/* 006A8 80B87A78 44814000 */ mtc1 $at, $f8 ## $f8 = -2.00
/* 006AC 80B87A7C 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 006B0 80B87A80 E6040024 */ swc1 $f4, 0x0024($s0) ## 00000024
/* 006B4 80B87A84 C4460910 */ lwc1 $f6, 0x0910($v0) ## 00000910
/* 006B8 80B87A88 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 006BC 80B87A8C E606002C */ swc1 $f6, 0x002C($s0) ## 0000002C
/* 006C0 80B87A90 C440090C */ lwc1 $f0, 0x090C($v0) ## 0000090C
/* 006C4 80B87A94 460E0081 */ sub.s $f2, $f0, $f14
/* 006C8 80B87A98 4608103C */ c.lt.s $f2, $f8
/* 006CC 80B87A9C 00000000 */ nop
/* 006D0 80B87AA0 45020009 */ bc1fl .L80B87AC8
/* 006D4 80B87AA4 44816000 */ mtc1 $at, $f12 ## $f12 = 2.00
/* 006D8 80B87AA8 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 006DC 80B87AAC 44816000 */ mtc1 $at, $f12 ## $f12 = 2.00
/* 006E0 80B87AB0 00000000 */ nop
/* 006E4 80B87AB4 460C0280 */ add.s $f10, $f0, $f12
/* 006E8 80B87AB8 E60A0028 */ swc1 $f10, 0x0028($s0) ## 00000028
/* 006EC 80B87ABC 1000000A */ beq $zero, $zero, .L80B87AE8
/* 006F0 80B87AC0 C60E0028 */ lwc1 $f14, 0x0028($s0) ## 00000028
/* 006F4 80B87AC4 44816000 */ mtc1 $at, $f12 ## $f12 = 2.00
.L80B87AC8:
/* 006F8 80B87AC8 00000000 */ nop
/* 006FC 80B87ACC 4602603C */ c.lt.s $f12, $f2
/* 00700 80B87AD0 00000000 */ nop
/* 00704 80B87AD4 45020005 */ bc1fl .L80B87AEC
/* 00708 80B87AD8 C60C0024 */ lwc1 $f12, 0x0024($s0) ## 00000024
/* 0070C 80B87ADC 460C0401 */ sub.s $f16, $f0, $f12
/* 00710 80B87AE0 E6100028 */ swc1 $f16, 0x0028($s0) ## 00000028
/* 00714 80B87AE4 C60E0028 */ lwc1 $f14, 0x0028($s0) ## 00000028
.L80B87AE8:
/* 00718 80B87AE8 C60C0024 */ lwc1 $f12, 0x0024($s0) ## 00000024
.L80B87AEC:
/* 0071C 80B87AEC 0C034261 */ jal Matrix_Translate
/* 00720 80B87AF0 8E06002C */ lw $a2, 0x002C($s0) ## 0000002C
/* 00724 80B87AF4 C60C0050 */ lwc1 $f12, 0x0050($s0) ## 00000050
/* 00728 80B87AF8 C60E0054 */ lwc1 $f14, 0x0054($s0) ## 00000054
/* 0072C 80B87AFC 8E060058 */ lw $a2, 0x0058($s0) ## 00000058
/* 00730 80B87B00 0C0342A3 */ jal Matrix_Scale
/* 00734 80B87B04 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00738 80B87B08 860F00B6 */ lh $t7, 0x00B6($s0) ## 000000B6
/* 0073C 80B87B0C 3C0180B9 */ lui $at, %hi(D_80B88BF4) ## $at = 80B90000
/* 00740 80B87B10 C4268BF4 */ lwc1 $f6, %lo(D_80B88BF4)($at)
/* 00744 80B87B14 448F9000 */ mtc1 $t7, $f18 ## $f18 = 0.00
/* 00748 80B87B18 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 0074C 80B87B1C 46809120 */ cvt.s.w $f4, $f18
/* 00750 80B87B20 46062302 */ mul.s $f12, $f4, $f6
/* 00754 80B87B24 0C034348 */ jal Matrix_RotateY
/* 00758 80B87B28 00000000 */ nop
/* 0075C 80B87B2C 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 00760 80B87B30 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000
/* 00764 80B87B34 37390003 */ ori $t9, $t9, 0x0003 ## $t9 = DA380003
/* 00768 80B87B38 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 0076C 80B87B3C AE3802D0 */ sw $t8, 0x02D0($s1) ## 000002D0
/* 00770 80B87B40 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00774 80B87B44 8E440000 */ lw $a0, 0x0000($s2) ## 00000000
/* 00778 80B87B48 3C0580B9 */ lui $a1, %hi(D_80B88B34) ## $a1 = 80B90000
/* 0077C 80B87B4C 24A58B34 */ addiu $a1, $a1, %lo(D_80B88B34) ## $a1 = 80B88B34
/* 00780 80B87B50 24060229 */ addiu $a2, $zero, 0x0229 ## $a2 = 00000229
/* 00784 80B87B54 0C0346A2 */ jal Matrix_NewMtx
/* 00788 80B87B58 AFA20064 */ sw $v0, 0x0064($sp)
/* 0078C 80B87B5C 8FA30064 */ lw $v1, 0x0064($sp)
/* 00790 80B87B60 3C0AFA00 */ lui $t2, 0xFA00 ## $t2 = FA000000
/* 00794 80B87B64 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 00798 80B87B68 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 0079C 80B87B6C 8E2302D0 */ lw $v1, 0x02D0($s1) ## 000002D0
/* 007A0 80B87B70 24690008 */ addiu $t1, $v1, 0x0008 ## $t1 = 00000008
/* 007A4 80B87B74 AE2902D0 */ sw $t1, 0x02D0($s1) ## 000002D0
/* 007A8 80B87B78 AC6A0000 */ sw $t2, 0x0000($v1) ## 00000000
/* 007AC 80B87B7C 920B014E */ lbu $t3, 0x014E($s0) ## 0000014E
/* 007B0 80B87B80 448B4000 */ mtc1 $t3, $f8 ## $f8 = 0.00
/* 007B4 80B87B84 05610004 */ bgez $t3, .L80B87B98
/* 007B8 80B87B88 468042A0 */ cvt.s.w $f10, $f8
/* 007BC 80B87B8C 44818000 */ mtc1 $at, $f16 ## $f16 = 4294967296.00
/* 007C0 80B87B90 00000000 */ nop
/* 007C4 80B87B94 46105280 */ add.s $f10, $f10, $f16
.L80B87B98:
/* 007C8 80B87B98 3C0180B9 */ lui $at, %hi(D_80B88BF8) ## $at = 80B90000
/* 007CC 80B87B9C C4328BF8 */ lwc1 $f18, %lo(D_80B88BF8)($at)
/* 007D0 80B87BA0 3C01AAFF */ lui $at, 0xAAFF ## $at = AAFF0000
/* 007D4 80B87BA4 3421FF00 */ ori $at, $at, 0xFF00 ## $at = AAFFFF00
/* 007D8 80B87BA8 46125102 */ mul.s $f4, $f10, $f18
/* 007DC 80B87BAC 3C0A0064 */ lui $t2, 0x0064 ## $t2 = 00640000
/* 007E0 80B87BB0 354AFF80 */ ori $t2, $t2, 0xFF80 ## $t2 = 0064FF80
/* 007E4 80B87BB4 3C09FB00 */ lui $t1, 0xFB00 ## $t1 = FB000000
/* 007E8 80B87BB8 3C0C80B9 */ lui $t4, %hi(D_80B88A20) ## $t4 = 80B90000
/* 007EC 80B87BBC 258C8A20 */ addiu $t4, $t4, %lo(D_80B88A20) ## $t4 = 80B88A20
/* 007F0 80B87BC0 3C08DE00 */ lui $t0, 0xDE00 ## $t0 = DE000000
/* 007F4 80B87BC4 4600218D */ trunc.w.s $f6, $f4
/* 007F8 80B87BC8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 007FC 80B87BCC 440E3000 */ mfc1 $t6, $f6
/* 00800 80B87BD0 00000000 */ nop
/* 00804 80B87BD4 31CF00FF */ andi $t7, $t6, 0x00FF ## $t7 = 00000000
/* 00808 80B87BD8 01E1C025 */ or $t8, $t7, $at ## $t8 = AAFFFF00
/* 0080C 80B87BDC AC780004 */ sw $t8, 0x0004($v1) ## 00000004
/* 00810 80B87BE0 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 00814 80B87BE4 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00818 80B87BE8 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020
/* 0081C 80B87BEC 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 00820 80B87BF0 AE3902D0 */ sw $t9, 0x02D0($s1) ## 000002D0
/* 00824 80B87BF4 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00828 80B87BF8 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 0082C 80B87BFC 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 00830 80B87C00 240A0020 */ addiu $t2, $zero, 0x0020 ## $t2 = 00000020
/* 00834 80B87C04 24090040 */ addiu $t1, $zero, 0x0040 ## $t1 = 00000040
/* 00838 80B87C08 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 0083C 80B87C0C AE2B02D0 */ sw $t3, 0x02D0($s1) ## 000002D0
/* 00840 80B87C10 AC480000 */ sw $t0, 0x0000($v0) ## 00000000
/* 00844 80B87C14 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 00848 80B87C18 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 0084C 80B87C1C 240E0020 */ addiu $t6, $zero, 0x0020 ## $t6 = 00000020
/* 00850 80B87C20 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 00854 80B87C24 AE2D02D0 */ sw $t5, 0x02D0($s1) ## 000002D0
/* 00858 80B87C28 AC480000 */ sw $t0, 0x0000($v0) ## 00000000
/* 0085C 80B87C2C 8E440000 */ lw $a0, 0x0000($s2) ## 00000000
/* 00860 80B87C30 97A30086 */ lhu $v1, 0x0086($sp)
/* 00864 80B87C34 AFAA0028 */ sw $t2, 0x0028($sp)
/* 00868 80B87C38 AFA90024 */ sw $t1, 0x0024($sp)
/* 0086C 80B87C3C 00030823 */ subu $at, $zero, $v1
/* 00870 80B87C40 0001C900 */ sll $t9, $at, 4
/* 00874 80B87C44 AFB90020 */ sw $t9, 0x0020($sp)
/* 00878 80B87C48 00013880 */ sll $a3, $at, 2
/* 0087C 80B87C4C AFA0001C */ sw $zero, 0x001C($sp)
/* 00880 80B87C50 AFB80018 */ sw $t8, 0x0018($sp)
/* 00884 80B87C54 AFAF0014 */ sw $t7, 0x0014($sp)
/* 00888 80B87C58 AFAE0010 */ sw $t6, 0x0010($sp)
/* 0088C 80B87C5C 00408025 */ or $s0, $v0, $zero ## $s0 = 00000000
/* 00890 80B87C60 0C0253D0 */ jal Gfx_TwoTexScroll
/* 00894 80B87C64 00033040 */ sll $a2, $v1, 1
/* 00898 80B87C68 AE020004 */ sw $v0, 0x0004($s0) ## 00000004
/* 0089C 80B87C6C 8E2202D0 */ lw $v0, 0x02D0($s1) ## 000002D0
/* 008A0 80B87C70 3C0D80B9 */ lui $t5, %hi(D_80B88AD0) ## $t5 = 80B90000
/* 008A4 80B87C74 25AD8AD0 */ addiu $t5, $t5, %lo(D_80B88AD0) ## $t5 = 80B88AD0
/* 008A8 80B87C78 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 008AC 80B87C7C AE2B02D0 */ sw $t3, 0x02D0($s1) ## 000002D0
/* 008B0 80B87C80 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
/* 008B4 80B87C84 3C0680B9 */ lui $a2, %hi(D_80B88B48) ## $a2 = 80B90000
/* 008B8 80B87C88 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 008BC 80B87C8C AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 008C0 80B87C90 8E450000 */ lw $a1, 0x0000($s2) ## 00000000
/* 008C4 80B87C94 24C68B48 */ addiu $a2, $a2, %lo(D_80B88B48) ## $a2 = 80B88B48
/* 008C8 80B87C98 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0
/* 008CC 80B87C9C 0C031AD5 */ jal Graph_CloseDisps
/* 008D0 80B87CA0 2407023A */ addiu $a3, $zero, 0x023A ## $a3 = 0000023A
/* 008D4 80B87CA4 8FBF0044 */ lw $ra, 0x0044($sp)
/* 008D8 80B87CA8 8FB00038 */ lw $s0, 0x0038($sp)
/* 008DC 80B87CAC 8FB1003C */ lw $s1, 0x003C($sp)
/* 008E0 80B87CB0 8FB20040 */ lw $s2, 0x0040($sp)
/* 008E4 80B87CB4 03E00008 */ jr $ra
/* 008E8 80B87CB8 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000

File diff suppressed because one or more lines are too long

View file

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_80B88C10
.incbin "baserom/ovl_Magic_Dark", 0x1840, 0x00000160

View file

@ -768,6 +768,7 @@ s32 func_8005A77C(Camera* camera, s16 button);
// ? func_8005A8C4(?);
s16 func_8005A948(Camera* camera);
Vec3s* func_8005A970(Vec3s*, Camera*);
s16 func_8005A9CC(s32 arg0);
s16 func_8005A9F4(Camera* camera);
s32 func_8005AA1C(Camera* camera, s32, s16, s32);
s32 Camera_SetParam(Camera*, s32, void*);

View file

@ -37,7 +37,7 @@ extern u32 D_04004298;
extern u8 D_04006020[];
extern Gfx D_0400C820[];
extern u32 D_0400CB70;
extern u32 D_04010130;
extern Gfx D_04010130[];
extern Gfx D_04015720[];
extern Gfx D_04015760[];
//extern ? D_0401A0B0;

View file

@ -725,7 +725,10 @@ typedef struct {
/* 0xB8 */ UNK_PTR lightSettingsList;
/* 0xBC */ char unk_BC[0x03];
/* 0xBF */ u8 unk_BF;
/* 0xC0 */ char unk_C0[0x16];
/* 0xC0 */ char unk_C0[0x0F];
/* 0xCF */ u8 unk_CF[3];
/* 0xD2 */ s16 unk_D2;
/* 0xD4 */ char unk_D4[0x02];
/* 0xD6 */ s16 unk_D6;
/* 0xD8 */ f32 unk_D8;
/* 0xDC */ u8 unk_DC;

3
spec
View file

@ -3367,8 +3367,7 @@ endseg
beginseg
name "ovl_Magic_Dark"
include "build/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.o"
include "build/data/overlays/actors/z_magic_dark.data.o"
include "build/data/overlays/actors/z_magic_dark.reloc.o"
include "build/src/overlays/actors/ovl_Magic_Dark/ovl_Magic_Dark_reloc.o"
endseg
beginseg

View file

@ -12,14 +12,13 @@
void MagicDark_Init(Actor* thisx, GlobalContext* globalCtx);
void MagicDark_Destroy(Actor* thisx, GlobalContext* globalCtx);
void MagicDark_Update(Actor* thisx, GlobalContext* globalCtx);
void MagicDark_Draw(Actor* thisx, GlobalContext* globalCtx);
void MagicDark_OrbUpdate(Actor* thisx, GlobalContext* globalCtx);
void MagicDark_OrbDraw(Actor* thisx, GlobalContext* globalCtx);
void MagicDark_DiamondUpdate(Actor* thisx, GlobalContext* globalCtx);
void MagicDark_DiamondDraw(Actor* thisx, GlobalContext* globalCtx);
void func_80B874E4(Actor* thisx, GlobalContext* globalCtx);
void func_80B8772C(GlobalContext* globalCtx, f32 a1);
void func_80B87A18(Actor* thisx, GlobalContext* globalCtx);
void MagicDark_DimLighting(GlobalContext* globalCtx, f32 intensity);
/*
const ActorInit Magic_Dark_InitVars = {
ACTOR_MAGIC_DARK,
ACTORTYPE_ITEMACTION,
@ -28,19 +27,23 @@ const ActorInit Magic_Dark_InitVars = {
sizeof(MagicDark),
(ActorFunc)MagicDark_Init,
(ActorFunc)MagicDark_Destroy,
(ActorFunc)MagicDark_Update,
(ActorFunc)MagicDark_Draw,
(ActorFunc)MagicDark_OrbUpdate,
(ActorFunc)MagicDark_OrbDraw,
};
*/
#include "z_magic_dark_gfx.c"
// unused
static Color_RGBA8 D_80B88B10[] = { { 50, 100, 150, 200 }, { 255, 200, 150, 100 } };
void MagicDark_Init(Actor* thisx, GlobalContext* globalCtx) {
MagicDark* this = THIS;
Player* player = PLAYER;
if (LINK_IS_CHILD) {
this->unk_15C = 0.4f;
this->scale = 0.4f;
} else {
this->unk_15C = 0.6f;
this->scale = 0.6f;
}
thisx->posRot.pos = player->actor.posRot.pos;
@ -48,14 +51,14 @@ void MagicDark_Init(Actor* thisx, GlobalContext* globalCtx) {
thisx->room = -1;
if (gSaveContext.nayrusLoveTimer != 0) {
thisx->update = func_80B874E4;
thisx->draw = func_80B87A18;
thisx->scale.x = thisx->scale.z = this->unk_15C * 1.6f;
thisx->scale.y = this->unk_15C * 0.8f;
this->unk_14C = 0;
this->unk_14E = 0;
thisx->update = MagicDark_DiamondUpdate;
thisx->draw = MagicDark_DiamondDraw;
thisx->scale.x = thisx->scale.z = this->scale * 1.6f;
thisx->scale.y = this->scale * 0.8f;
this->timer = 0;
this->primAlpha = 0;
} else {
this->unk_14C = 0;
this->timer = 0;
gSaveContext.nayrusLoveTimer = 0;
}
}
@ -66,37 +69,212 @@ void MagicDark_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Magic_Dark/func_80B874E4.s")
void MagicDark_DiamondUpdate(Actor* thisx, GlobalContext* globalCtx) {
MagicDark* this = THIS;
u8 phi_a0;
Player* player = PLAYER;
s16 pad;
s16 nayrusLoveTimer = gSaveContext.nayrusLoveTimer;
s32 msgMode = globalCtx->msgCtx.msgMode;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Magic_Dark/func_80B8772C.s")
if (1) {}
void MagicDark_Update(Actor* thisx, GlobalContext* globalCtx) {
if ((msgMode == 0xD) || (msgMode == 0x11)) {
Actor_Kill(thisx);
return;
}
if (nayrusLoveTimer >= 1200) {
player->invincibilityTimer = 0;
gSaveContext.nayrusLoveTimer = 0;
Actor_Kill(thisx);
return;
}
player->invincibilityTimer = -100;
thisx->scale.x = thisx->scale.z = this->scale;
if (this->timer < 20) {
thisx->scale.x = thisx->scale.z = (1.6f - (this->timer * 0.03f)) * this->scale;
thisx->scale.y = ((this->timer * 0.01f) + 0.8f) * this->scale;
} else {
thisx->scale.x = thisx->scale.z = this->scale;
thisx->scale.y = this->scale;
}
thisx->scale.x *= 1.3f;
thisx->scale.z *= 1.3f;
phi_a0 = (this->timer < 20) ? (this->timer * 12) : 255;
if (nayrusLoveTimer >= 1180) {
this->primAlpha = 15595 - (nayrusLoveTimer * 13);
if (nayrusLoveTimer & 1) {
this->primAlpha = (u8)(this->primAlpha >> 1);
}
} else if (nayrusLoveTimer >= 1100) {
this->primAlpha = (u8)(nayrusLoveTimer << 7) + 127;
} else {
this->primAlpha = 255;
}
if (this->primAlpha > phi_a0) {
this->primAlpha = phi_a0;
}
thisx->posRot.rot.y += 0x3E8;
thisx->shape.rot.y = thisx->posRot.rot.y + func_8005A9F4(ACTIVE_CAM);
this->timer++;
gSaveContext.nayrusLoveTimer = nayrusLoveTimer + 1;
if (nayrusLoveTimer < 1100) {
func_8002F974(thisx, NA_SE_PL_MAGIC_SOUL_NORMAL - SFX_FLAG);
} else {
func_8002F974(thisx, NA_SE_PL_MAGIC_SOUL_FLASH - SFX_FLAG);
}
}
void MagicDark_DimLighting(GlobalContext* globalCtx, f32 intensity) {
s32 i;
f32 temp_f0;
f32 phi_f0;
if (globalCtx->roomCtx.curRoom.unk_03 != 5) {
intensity = CLAMP_MIN(intensity, 0.0f);
intensity = CLAMP_MAX(intensity, 1.0f);
phi_f0 = intensity - 0.2f;
if (intensity < 0.2f) {
phi_f0 = 0.0f;
}
globalCtx->envCtx.unk_9E = (850.0f - globalCtx->envCtx.unk_D2) * phi_f0;
if (intensity == 0.0f) {
for (i = 0; i < ARRAY_COUNT(globalCtx->envCtx.unk_8C[2]); i++) {
globalCtx->envCtx.unk_8C[2][i] = 0;
}
} else {
temp_f0 = intensity * 5.0f;
if (temp_f0 > 1.0f) {
temp_f0 = 1.0f;
}
for (i = 0; i < ARRAY_COUNT(globalCtx->envCtx.unk_8C[2]); i++) {
globalCtx->envCtx.unk_8C[2][i] = -(s16)(globalCtx->envCtx.unk_CF[i] * temp_f0);
}
}
}
}
void MagicDark_OrbUpdate(Actor* thisx, GlobalContext* globalCtx) {
MagicDark* this = THIS;
s32 pad;
Player* player = PLAYER;
func_8002F974(&this->actor, NA_SE_PL_MAGIC_SOUL_BALL - SFX_FLAG);
if (this->unk_14C < 35) {
func_80B8772C(globalCtx, this->unk_14C * (1 / 45.0f));
Math_SmoothScaleMaxMinF(&thisx->scale.x, this->unk_15C * (1 / 12.000001f), 0.05f, 0.01f, 0.0001f);
if (this->timer < 35) {
MagicDark_DimLighting(globalCtx, this->timer * (1 / 45.0f));
Math_SmoothScaleMaxMinF(&thisx->scale.x, this->scale * (1 / 12.000001f), 0.05f, 0.01f, 0.0001f);
Actor_SetScale(&this->actor, thisx->scale.x);
} else if (this->unk_14C < 55) {
} else if (this->timer < 55) {
Actor_SetScale(&this->actor, thisx->scale.x * 0.9f);
Math_SmoothScaleMaxMinF(&this->unk_154, player->bodyPartsPos[0].y, 0.5f, 3.0f, 1.0f);
if (this->unk_14C >= 49) {
func_80B8772C(globalCtx, (54 - this->unk_14C) * 0.2f);
Math_SmoothScaleMaxMinF(&this->orbOffset.y, player->bodyPartsPos[0].y, 0.5f, 3.0f, 1.0f);
if (this->timer > 48) {
MagicDark_DimLighting(globalCtx, (54 - this->timer) * 0.2f);
}
} else {
thisx->update = func_80B874E4;
thisx->draw = func_80B87A18;
thisx->scale.x = thisx->scale.z = this->unk_15C * 1.6f;
thisx->scale.y = this->unk_15C * 0.8f;
this->unk_14C = 0;
this->unk_14E = 0;
thisx->update = MagicDark_DiamondUpdate;
thisx->draw = MagicDark_DiamondDraw;
thisx->scale.x = thisx->scale.z = this->scale * 1.6f;
thisx->scale.y = this->scale * 0.8f;
this->timer = 0;
this->primAlpha = 0;
}
this->unk_14C += 1;
this->timer++;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Magic_Dark/func_80B87A18.s")
void MagicDark_DiamondDraw(Actor* thisx, GlobalContext* globalCtx) {
MagicDark* this = THIS;
s32 pad;
u16 gameplayFrames = globalCtx->gameplayFrames;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Magic_Dark/MagicDark_Draw.s")
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_magic_dark.c", 525);
func_80093D84(globalCtx->state.gfxCtx);
{
Player* player = PLAYER;
f32 heightDiff;
this->actor.posRot.pos.x = player->bodyPartsPos[0].x;
this->actor.posRot.pos.z = player->bodyPartsPos[0].z;
heightDiff = player->bodyPartsPos[0].y - this->actor.posRot.pos.y;
if (heightDiff < -2.0f) {
this->actor.posRot.pos.y = player->bodyPartsPos[0].y + 2.0f;
} else if (heightDiff > 2.0f) {
this->actor.posRot.pos.y = player->bodyPartsPos[0].y - 2.0f;
}
Matrix_Translate(this->actor.posRot.pos.x, this->actor.posRot.pos.y, this->actor.posRot.pos.z, MTXMODE_NEW);
Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY);
Matrix_RotateY(this->actor.shape.rot.y * (M_PI / 0x8000), MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_magic_dark.c", 553),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 170, 255, 255, (s32)(this->primAlpha * 0.6f) & 0xFF);
gDPSetEnvColor(POLY_XLU_DISP++, 0, 100, 255, 128);
gSPDisplayList(POLY_XLU_DISP++, sDiamondTextureDList);
gSPDisplayList(POLY_XLU_DISP++,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, gameplayFrames * 2, gameplayFrames * -4, 32, 32, 1,
0, gameplayFrames * -16, 64, 32));
gSPDisplayList(POLY_XLU_DISP++, sDiamondVertsDList);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_magic_dark.c", 570);
}
void MagicDark_OrbDraw(Actor* thisx, GlobalContext* globalCtx) {
MagicDark* this = THIS;
Vec3f pos;
Player* player = PLAYER;
s32 pad;
f32 sp6C = globalCtx->state.frames & 0x1F;
if (this->timer < 32) {
pos.x = (player->bodyPartsPos[12].x + player->bodyPartsPos[15].x) * 0.5f;
pos.y = (player->bodyPartsPos[12].y + player->bodyPartsPos[15].y) * 0.5f;
pos.z = (player->bodyPartsPos[12].z + player->bodyPartsPos[15].z) * 0.5f;
if (this->timer > 20) {
pos.y += (this->timer - 20) * 1.4f;
}
this->orbOffset = pos;
} else if (this->timer < 130) {
pos = this->orbOffset;
} else {
return;
}
pos.x -=
(this->actor.scale.x * 300.0f * Math_Sins(func_8005A9F4(ACTIVE_CAM)) * Math_Coss(func_8005A9CC(ACTIVE_CAM)));
pos.y -= (this->actor.scale.x * 300.0f * Math_Sins(func_8005A9CC(ACTIVE_CAM)));
pos.z -=
(this->actor.scale.x * 300.0f * Math_Coss(func_8005A9F4(ACTIVE_CAM)) * Math_Coss(func_8005A9CC(ACTIVE_CAM)));
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_magic_dark.c", 619);
func_80093D84(globalCtx->state.gfxCtx);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0x80, 170, 255, 255, 255);
gDPSetEnvColor(POLY_XLU_DISP++, 0, 150, 255, 255);
Matrix_Translate(pos.x, pos.y, pos.z, MTXMODE_NEW);
Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY);
Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY);
Matrix_Push();
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_magic_dark.c", 632),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
Matrix_RotateZ(sp6C * (M_PI / 32), MTXMODE_APPLY);
gSPDisplayList(POLY_XLU_DISP++, D_04010130);
Matrix_Pull();
Matrix_RotateZ(-sp6C * (M_PI / 32), MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_magic_dark.c", 639),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_04010130);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_magic_dark.c", 643);
}

View file

@ -8,12 +8,10 @@ struct MagicDark;
typedef struct MagicDark {
/* 0x0000 */ Actor actor;
/* 0x014C */ s16 unk_14C;
/* 0x014E */ u8 unk_14E;
/* 0x014F */ char unk_14F[0x5];
/* 0x0154 */ f32 unk_154;
/* 0x0158 */ char unk_158[0x4];
/* 0x015C */ f32 unk_15C;
/* 0x014C */ s16 timer;
/* 0x014E */ u8 primAlpha;
/* 0x0150 */ Vec3f orbOffset;
/* 0x015C */ f32 scale;
/* 0x0160 */ char unk_160[0x4];
} MagicDark; // size = 0x0164

View file

@ -0,0 +1,99 @@
#include "z_magic_dark.h"
extern UNK_TYPE D_04032490[];
static UNK_TYPE sDiamondTexture[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000001, 0x00000000, 0x00000102, 0x01000001, 0x00000000, 0x00000000, 0x00010000, 0x00000000,
0x00000001, 0x00000000, 0x00000204, 0x02000101, 0x00000000, 0x00000000, 0x00010101, 0x00000001, 0x00000001,
0x00000000, 0x00000307, 0x03010102, 0x00000000, 0x00000000, 0x01010102, 0x00000002, 0x01010001, 0x00000000,
0x00010509, 0x04010103, 0x01000000, 0x00000000, 0x01020202, 0x00000104, 0x03020101, 0x00000000, 0x0001060C,
0x06010103, 0x01000000, 0x00000000, 0x02020202, 0x00000206, 0x05040101, 0x00000000, 0x0001080F, 0x07010103,
0x01000001, 0x00000000, 0x03030202, 0x00010408, 0x07060201, 0x00000000, 0x00010911, 0x08010103, 0x01000001,
0x00000001, 0x04040303, 0x0101050B, 0x0A080301, 0x00000000, 0x00020B14, 0x0A010103, 0x01000001, 0x00010102,
0x06060403, 0x0203070D, 0x0C0A0401, 0x00000000, 0x00030D17, 0x0B020103, 0x01010001, 0x00010205, 0x09080503,
0x0205090E, 0x0E0D0501, 0x00000000, 0x01050F18, 0x0C020102, 0x01010001, 0x00010408, 0x0D0B0502, 0x03070B0F,
0x0F0F0601, 0x00000000, 0x02081219, 0x0D030102, 0x00010001, 0x0001050B, 0x130F0702, 0x04080B0F, 0x10110801,
0x00000000, 0x030C1419, 0x0E040101, 0x00010001, 0x0001070F, 0x19140A03, 0x05090B0E, 0x10130A02, 0x00000001,
0x05121719, 0x0E040100, 0x00010102, 0x01020A13, 0x1F1A0F06, 0x06090A0C, 0x10150B03, 0x01000001, 0x08181B19,
0x0F050201, 0x01020102, 0x02040D18, 0x2721140A, 0x080A0A0C, 0x11160D04, 0x02020001, 0x0B1E1E19, 0x10070403,
0x02030202, 0x0408111D, 0x2F2A1B0F, 0x0A0B0B0D, 0x12180F06, 0x04040101, 0x0E242119, 0x11090606, 0x04040304,
0x070C1623, 0x38322214, 0x0E0D0E10, 0x141A1108, 0x06060102, 0x112A241A, 0x120B0909, 0x06050507, 0x0B111C29,
0x413B291B, 0x13101216, 0x181B1209, 0x08080304, 0x152F271B, 0x140E0C0C, 0x0907080B, 0x10172230, 0x4A433223,
0x1813161D, 0x1D1E140B, 0x0A0A0608, 0x1A342B1E, 0x17110F0F, 0x0C0B0D11, 0x171F2A38, 0x534C3B2B, 0x1E161C25,
0x2221160D, 0x0B0C0A0E, 0x21393023, 0x1B151211, 0x0F0F1217, 0x1E273240, 0x5C564534, 0x251B242F, 0x2924190F,
0x0E0E0F17, 0x293E372B, 0x21181513, 0x1113181E, 0x26303B48, 0x655F4E3E, 0x2D222D3A, 0x30271C13, 0x11111520,
0x32453F35, 0x281D1714, 0x14181E25, 0x2F3A4551, 0x6F695746, 0x362B3744, 0x372A1F17, 0x15151D2A, 0x3D4D483F,
0x31231A14, 0x171E252E, 0x38444F5B, 0x7974614F, 0x4036404C, 0x3C2D231D, 0x1A1A2637, 0x4957524A, 0x3A2A1D15,
0x1A252E37, 0x43505B66, 0x837F6C59, 0x4A414750, 0x3F2E2723, 0x21213245, 0x57625D54, 0x43312216, 0x1F2D3741,
0x4D5B6671, 0x8E8B7662, 0x544B4D51, 0x3F302C2C, 0x2B2D4054, 0x656D675E, 0x4C3A281A, 0x2536414B, 0x5867717B,
0x9896816C, 0x5E545150, 0x3F323337, 0x383C5063, 0x71777168, 0x56432F21, 0x2C3F4B56, 0x63727C86, 0xA2A08B76,
0x685D5651, 0x3F343A43, 0x484D5F70, 0x7D827B71, 0x5F4C3829, 0x34465462, 0x6F7C8690, 0xACA99581, 0x72655B53,
0x42394450, 0x585E6D7C, 0x878C8479, 0x68574334, 0x3D4E5E6E, 0x7B88919A, 0xB4B09E8C, 0x7C6E6155, 0x46414F5F,
0x676E7B87, 0x92958C80, 0x71625041, 0x4857697A, 0x86929BA3, 0xBBB7A796, 0x86776658, 0x4D4B5C6E, 0x777D8791,
0x9C9F9487, 0x7A6D5C4F, 0x54617486, 0x919CA4AB, 0xC2BBAFA1, 0x907F6C5D, 0x55576A7E, 0x8589929A, 0xA5A99D90,
0x8478695E, 0x5F697F93, 0x9DA6ACB2, 0xC8BFB6AC, 0x9A877465, 0x6064788D, 0x92949BA1, 0xADB2A89C, 0x8F83766C,
0x6A718AA1, 0xA9AFB2B8, 0xCEC3BDB6, 0xA4907E70, 0x6C72879B, 0x9C9CA2A8, 0xB5BBB3A9, 0x9B8E8279, 0x737693AE,
0xB4B6B9BE, 0xD5C9C5BF, 0xAF9C8B7E, 0x7A8094A5, 0xA4A0A7B0, 0xBDC5C0B7, 0xA8998E85, 0x7B7B9AB7, 0xBDBEC0C5,
0xDBCFCCC8, 0xBAA9998E, 0x898E9FAD, 0xA8A1ACB8, 0xC6CECCC5, 0xB6A4988F, 0x8381A0BE, 0xC4C6C8CD, 0xE0D4D3D1,
0xC5B7A89D, 0x989CA8B3, 0xABA2B0C0, 0xCED8D8D2, 0xC2AEA298, 0x8C89A6C3, 0xCACED1D5, 0xE5DBDAD8, 0xD0C4B6AB,
0xA6A8B1B8, 0xAEA4B5C7, 0xD6E0E3DE, 0xCDB7ABA2, 0x9590ACC9, 0xD0D5D9DC, 0xEBE1E0DE, 0xDAD1C4B9, 0xB2B2B8BC,
0xB1A7B9CE, 0xDEE8ECE8, 0xD6BDB3AC, 0x9E98B3CE, 0xD6DBE0E3, 0xF0E9E6E3, 0xE3DDD2C6, 0xBCBABEC0, 0xB4AABED5,
0xE5EFF3F0, 0xDDC2BBB6, 0xA79FB9D4, 0xDCE2E7E9, 0xF5F0ECE7, 0xEAE8DED2, 0xC6C1C2C3, 0xB7ADC4DD, 0xEBF3F8F5,
0xE1C6C2C1, 0xB1A7BFD8, 0xE1E7EDF0, 0xF9F5F1EB, 0xF0F0E9DD, 0xCFC7C7C6, 0xBBB1CBE5, 0xF0F5FBF7, 0xE3CACACC,
0xBBB0C5DC, 0xE5ECF4F6, 0xFCF9F5EE, 0xF5F7F0E7, 0xD7CDCCCB, 0xBFB7D2EB, 0xF4F7FBF6, 0xE4CDD2D6, 0xC6B9CBE0,
0xE9F1F9FB, 0xFDFCF8F2, 0xF9FAF6EE, 0xDFD5D3D0, 0xC5BDD9F0, 0xF7F9FBF4, 0xE5D0D9E0, 0xD1C2D2E4, 0xEDF5FCFE,
0xFEFDFAF4, 0xFBFCF9F3, 0xE6DDDAD7, 0xCBC3DEF4, 0xFAFBFCF3, 0xE5D3DEE8, 0xDBCDDAE9, 0xF2F8FEFF, 0xFEFDFCF6,
0xFCFDFCF7, 0xECE4E2DF, 0xD2C9E3F7, 0xFCFDFBF3, 0xE5D6E4EF, 0xE3D6E1EE, 0xF6FAFEFF, 0xFEFDFDF8, 0xFCFDFDFA,
0xF1EAE9E7, 0xD9CFE7F9, 0xFEFEFBF3, 0xE7DBE9F4, 0xEBDFE8F3, 0xF9FCFFFF, 0xFEFDFDFA, 0xFDFDFEFC, 0xF5EFEFEE,
0xE0D5ECFB, 0xFFFEFBF3, 0xE9E1EEF8, 0xF0E6EEF6, 0xFCFDFFFF, 0xFEFDFEFC, 0xFEFDFEFE, 0xF8F4F4F3, 0xE7DDF1FD,
0xFFFEFBF3, 0xECE7F3FC, 0xF5ECF2F9, 0xFDFEFFFF, 0xFEFDFFFE, 0xFFFDFEFE, 0xFAF7F8F7, 0xEDE5F5FE, 0xFFFEFBF5,
0xF0EDF7FD, 0xF9F1F5FA, 0xFEFFFFFF, 0xFEFDFFFF, 0xFFFEFEFF, 0xFCFAFAFA, 0xF2ECF8FE, 0xFFFEFCF7, 0xF4F3FAFE,
0xFBF6F8FB, 0xFEFFFFFF, 0xFEFDFFFF, 0xFFFEFEFF, 0xFDFCFCFC, 0xF7F2FBFF, 0xFFFEFCFA, 0xF8F7FCFF, 0xFEFAFBFC,
0xFFFFFFFF, 0xFEFEFFFF, 0xFFFFFFFF, 0xFEFDFEFD, 0xFAF7FCFF, 0xFFFEFDFC, 0xFCFBFDFF, 0xFFFDFDFD, 0xFFFFFFFF,
0xFFFEFFFF, 0xFFFFFFFF, 0xFFFEFEFE, 0xFCFAFDFF, 0xFFFEFEFE, 0xFEFDFEFF, 0xFFFFFEFD, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFDFCFEFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFEFEFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
};
static Vtx sDiamondVerts[] = {
VTX(0, 0, 64, 1024, 512, 0x00, 0x00, 0x78, 0xFF), VTX(55, 0, 32, 1707, 512, 0x67, 0x00, 0x3C, 0xFF),
VTX(0, 108, 0, 1365, 0, 0x00, 0x78, 0x00, 0xFF), VTX(55, 0, -32, 2389, 512, 0x67, 0x00, 0xC4, 0xFF),
VTX(0, 108, 0, 2048, 0, 0x00, 0x78, 0x00, 0xFF), VTX(0, 0, -64, 3072, 512, 0x00, 0x00, 0x88, 0xFF),
VTX(0, 108, 0, 2731, 0, 0x00, 0x78, 0x00, 0xFF), VTX(-55, 0, -32, 3755, 512, 0x99, 0x00, 0xC4, 0xFF),
VTX(0, 108, 0, 3413, 0, 0x00, 0x78, 0x00, 0xFF), VTX(-55, 0, 32, 4437, 512, 0x98, 0x00, 0x3C, 0xFF),
VTX(0, 108, 0, 4096, 0, 0x00, 0x78, 0x00, 0xFF), VTX(-55, 0, 32, 341, 512, 0x98, 0x00, 0x3C, 0xFF),
VTX(0, 108, 0, 683, 0, 0x00, 0x78, 0x00, 0xFF), VTX(0, -108, 0, 683, 1024, 0x00, 0x88, 0x00, 0xFF),
VTX(0, -108, 0, 3413, 1024, 0x00, 0x88, 0x00, 0xFF), VTX(0, -108, 0, 2731, 1024, 0x00, 0x88, 0x00, 0xFF),
VTX(0, -108, 0, 2048, 1024, 0x00, 0x88, 0x00, 0xFF), VTX(0, -108, 0, 1365, 1024, 0x00, 0x88, 0x00, 0xFF),
VTX(-55, 0, 32, 2389, 512, 0x98, 0x00, 0x3C, 0xFF), VTX(-55, 0, -32, 1707, 512, 0x99, 0x00, 0xC4, 0xFF),
};
static Gfx sDiamondTextureDList[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadTextureBlock(D_04032490, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, 1),
gsDPLoadMultiBlock(sDiamondTexture, 0x0100, 1, G_IM_FMT_I, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_MIRROR | G_TX_WRAP, 5, 6, 13, 13),
gsDPSetCombineLERP(TEXEL1, PRIMITIVE, ENV_ALPHA, TEXEL0, TEXEL1, TEXEL0, ENVIRONMENT, TEXEL0, PRIMITIVE,
ENVIRONMENT, COMBINED, ENVIRONMENT, COMBINED, 0, PRIMITIVE, 0),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2),
gsSPClearGeometryMode(G_FOG | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
gsSPSetGeometryMode(G_CULL_BACK | G_LIGHTING),
gsSPEndDisplayList(),
};
static Gfx sDiamondVertsDList[] = {
gsSPVertex(sDiamondVerts, 20, 0), gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0),
gsSP2Triangles(3, 5, 6, 0, 5, 7, 8, 0), gsSP2Triangles(7, 9, 10, 0, 11, 0, 12, 0),
gsSP2Triangles(13, 0, 11, 0, 14, 7, 5, 0), gsSP2Triangles(15, 5, 3, 0, 16, 3, 1, 0),
gsSP2Triangles(17, 1, 0, 0, 16, 18, 19, 0), gsSPEndDisplayList(),
};

View file

@ -1473,6 +1473,9 @@ D_06002428 = 0x06002428;
D_060023D0 = 0x060023D0;
D_06002594 = 0x06002594;
// z_magic_dark
D_04032490 = 0x04032490;
// z_en_dns
D_060041A8 = 0x060041A8;
D_060009A0 = 0x060009A0;