diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Destroy.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Destroy.s deleted file mode 100644 index 576d1bdc7e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Destroy.s +++ /dev/null @@ -1,4 +0,0 @@ -glabel EnGanonMant_Destroy -/* 00018 80A23D78 AFA40000 */ sw $a0, 0x0000($sp) -/* 0001C 80A23D7C 03E00008 */ jr $ra -/* 00020 80A23D80 AFA50004 */ sw $a1, 0x0004($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Draw.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Draw.s deleted file mode 100644 index 08bc628f1a..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Draw.s +++ /dev/null @@ -1,224 +0,0 @@ -.late_rodata -glabel D_80A27EE4 - .float 1.57079637051 - -glabel D_80A27EE8 - .float 3.14159274101 - -.text -glabel EnGanonMant_Draw -/* 00C6C 80A249CC 27BDFF28 */ addiu $sp, $sp, 0xFF28 ## $sp = FFFFFF28 -/* 00C70 80A249D0 AFBF0074 */ sw $ra, 0x0074($sp) -/* 00C74 80A249D4 AFB60070 */ sw $s6, 0x0070($sp) -/* 00C78 80A249D8 AFB5006C */ sw $s5, 0x006C($sp) -/* 00C7C 80A249DC AFB40068 */ sw $s4, 0x0068($sp) -/* 00C80 80A249E0 AFB30064 */ sw $s3, 0x0064($sp) -/* 00C84 80A249E4 AFB20060 */ sw $s2, 0x0060($sp) -/* 00C88 80A249E8 AFB1005C */ sw $s1, 0x005C($sp) -/* 00C8C 80A249EC AFB00058 */ sw $s0, 0x0058($sp) -/* 00C90 80A249F0 F7BE0050 */ sdc1 $f30, 0x0050($sp) -/* 00C94 80A249F4 F7BC0048 */ sdc1 $f28, 0x0048($sp) -/* 00C98 80A249F8 F7BA0040 */ sdc1 $f26, 0x0040($sp) -/* 00C9C 80A249FC F7B80038 */ sdc1 $f24, 0x0038($sp) -/* 00CA0 80A24A00 F7B60030 */ sdc1 $f22, 0x0030($sp) -/* 00CA4 80A24A04 F7B40028 */ sdc1 $f20, 0x0028($sp) -/* 00CA8 80A24A08 908E1705 */ lbu $t6, 0x1705($a0) ## 00001705 -/* 00CAC 80A24A0C 00809025 */ or $s2, $a0, $zero ## $s2 = 00000000 -/* 00CB0 80A24A10 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000 -/* 00CB4 80A24A14 51C000A6 */ beql $t6, $zero, .L80A24CB0 -/* 00CB8 80A24A18 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -/* 00CBC 80A24A1C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 00CC0 80A24A20 C48416BC */ lwc1 $f4, 0x16BC($a0) ## 000016BC -/* 00CC4 80A24A24 248216D4 */ addiu $v0, $a0, 0x16D4 ## $v0 = 000016D4 -/* 00CC8 80A24A28 3C01C150 */ lui $at, 0xC150 ## $at = C1500000 -/* 00CCC 80A24A2C 46040032 */ c.eq.s $f0, $f4 -/* 00CD0 80A24A30 00000000 */ nop -/* 00CD4 80A24A34 45030006 */ bc1tl .L80A24A50 -/* 00CD8 80A24A38 C64816C0 */ lwc1 $f8, 0x16C0($s2) ## 000016C0 -/* 00CDC 80A24A3C 44813000 */ mtc1 $at, $f6 ## $f6 = -13.00 -/* 00CE0 80A24A40 248316F8 */ addiu $v1, $a0, 0x16F8 ## $v1 = 000016F8 -/* 00CE4 80A24A44 10000018 */ beq $zero, $zero, .L80A24AA8 -/* 00CE8 80A24A48 E48616C8 */ swc1 $f6, 0x16C8($a0) ## 000016C8 -/* 00CEC 80A24A4C C64816C0 */ lwc1 $f8, 0x16C0($s2) ## 000016C0 -.L80A24A50: -/* 00CF0 80A24A50 264216EC */ addiu $v0, $s2, 0x16EC ## $v0 = 000016EC -/* 00CF4 80A24A54 3C01C150 */ lui $at, 0xC150 ## $at = C1500000 -/* 00CF8 80A24A58 46080032 */ c.eq.s $f0, $f8 -/* 00CFC 80A24A5C 00000000 */ nop -/* 00D00 80A24A60 45030006 */ bc1tl .L80A24A7C -/* 00D04 80A24A64 C64416C4 */ lwc1 $f4, 0x16C4($s2) ## 000016C4 -/* 00D08 80A24A68 44815000 */ mtc1 $at, $f10 ## $f10 = -13.00 -/* 00D0C 80A24A6C 264316E0 */ addiu $v1, $s2, 0x16E0 ## $v1 = 000016E0 -/* 00D10 80A24A70 1000000D */ beq $zero, $zero, .L80A24AA8 -/* 00D14 80A24A74 E64A16C8 */ swc1 $f10, 0x16C8($s2) ## 000016C8 -/* 00D18 80A24A78 C64416C4 */ lwc1 $f4, 0x16C4($s2) ## 000016C4 -.L80A24A7C: -/* 00D1C 80A24A7C 3C01C040 */ lui $at, 0xC040 ## $at = C0400000 -/* 00D20 80A24A80 264216D4 */ addiu $v0, $s2, 0x16D4 ## $v0 = 000016D4 -/* 00D24 80A24A84 46040032 */ c.eq.s $f0, $f4 -/* 00D28 80A24A88 264316E0 */ addiu $v1, $s2, 0x16E0 ## $v1 = 000016E0 -/* 00D2C 80A24A8C 45010006 */ bc1t .L80A24AA8 -/* 00D30 80A24A90 00000000 */ nop -/* 00D34 80A24A94 44813000 */ mtc1 $at, $f6 ## $f6 = -3.00 -/* 00D38 80A24A98 264216EC */ addiu $v0, $s2, 0x16EC ## $v0 = 000016EC -/* 00D3C 80A24A9C 264316F8 */ addiu $v1, $s2, 0x16F8 ## $v1 = 000016F8 -/* 00D40 80A24AA0 10000001 */ beq $zero, $zero, .L80A24AA8 -/* 00D44 80A24AA4 E64616C8 */ swc1 $f6, 0x16C8($s2) ## 000016C8 -.L80A24AA8: -/* 00D48 80A24AA8 C4400000 */ lwc1 $f0, 0x0000($v0) ## 000016EC -/* 00D4C 80A24AAC C4680000 */ lwc1 $f8, 0x0000($v1) ## 000016F8 -/* 00D50 80A24AB0 C4420004 */ lwc1 $f2, 0x0004($v0) ## 000016F0 -/* 00D54 80A24AB4 C46A0004 */ lwc1 $f10, 0x0004($v1) ## 000016FC -/* 00D58 80A24AB8 46004501 */ sub.s $f20, $f8, $f0 -/* 00D5C 80A24ABC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 00D60 80A24AC0 44819000 */ mtc1 $at, $f18 ## $f18 = 0.50 -/* 00D64 80A24AC4 46025601 */ sub.s $f24, $f10, $f2 -/* 00D68 80A24AC8 C4500008 */ lwc1 $f16, 0x0008($v0) ## 000016F4 -/* 00D6C 80A24ACC C4640008 */ lwc1 $f4, 0x0008($v1) ## 00001700 -/* 00D70 80A24AD0 4612A182 */ mul.s $f6, $f20, $f18 -/* 00D74 80A24AD4 4600A386 */ mov.s $f14, $f20 -/* 00D78 80A24AD8 46102581 */ sub.s $f22, $f4, $f16 -/* 00D7C 80A24ADC 4612C202 */ mul.s $f8, $f24, $f18 -/* 00D80 80A24AE0 00000000 */ nop -/* 00D84 80A24AE4 4612B102 */ mul.s $f4, $f22, $f18 -/* 00D88 80A24AE8 4600B306 */ mov.s $f12, $f22 -/* 00D8C 80A24AEC 46060780 */ add.s $f30, $f0, $f6 -/* 00D90 80A24AF0 46081280 */ add.s $f10, $f2, $f8 -/* 00D94 80A24AF4 46048180 */ add.s $f6, $f16, $f4 -/* 00D98 80A24AF8 E7AA0090 */ swc1 $f10, 0x0090($sp) -/* 00D9C 80A24AFC 0C0341F5 */ jal Math_Atan2F - -/* 00DA0 80A24B00 E7A60094 */ swc1 $f6, 0x0094($sp) -/* 00DA4 80A24B04 4614A702 */ mul.s $f28, $f20, $f20 -/* 00DA8 80A24B08 46000686 */ mov.s $f26, $f0 -/* 00DAC 80A24B0C 4600C386 */ mov.s $f14, $f24 -/* 00DB0 80A24B10 4616B082 */ mul.s $f2, $f22, $f22 -/* 00DB4 80A24B14 4602E000 */ add.s $f0, $f28, $f2 -/* 00DB8 80A24B18 E7A2007C */ swc1 $f2, 0x007C($sp) -/* 00DBC 80A24B1C 0C0341F5 */ jal Math_Atan2F - -/* 00DC0 80A24B20 46000304 */ sqrt.s $f12, $f0 -/* 00DC4 80A24B24 4618C202 */ mul.s $f8, $f24, $f24 -/* 00DC8 80A24B28 C7A2007C */ lwc1 $f2, 0x007C($sp) -/* 00DCC 80A24B2C 46000507 */ neg.s $f20, $f0 -/* 00DD0 80A24B30 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 00DD4 80A24B34 44812000 */ mtc1 $at, $f4 ## $f4 = 0.50 -/* 00DD8 80A24B38 4600D306 */ mov.s $f12, $f26 -/* 00DDC 80A24B3C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00DE0 80A24B40 4608E280 */ add.s $f10, $f28, $f8 -/* 00DE4 80A24B44 46025000 */ add.s $f0, $f10, $f2 -/* 00DE8 80A24B48 46000004 */ sqrt.s $f0, $f0 -/* 00DEC 80A24B4C 46040582 */ mul.s $f22, $f0, $f4 -/* 00DF0 80A24B50 0C034348 */ jal Matrix_RotateY -/* 00DF4 80A24B54 00000000 */ nop -/* 00DF8 80A24B58 4600A306 */ mov.s $f12, $f20 -/* 00DFC 80A24B5C 0C0342DC */ jal Matrix_RotateX -/* 00E00 80A24B60 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 00E04 80A24B64 3C0180A2 */ lui $at, %hi(D_80A27EE4) ## $at = 80A20000 -/* 00E08 80A24B68 C4267EE4 */ lwc1 $f6, %lo(D_80A27EE4)($at) -/* 00E0C 80A24B6C 3C014130 */ lui $at, 0x4130 ## $at = 41300000 -/* 00E10 80A24B70 4480E000 */ mtc1 $zero, $f28 ## $f28 = 0.00 -/* 00E14 80A24B74 4606D201 */ sub.s $f8, $f26, $f6 -/* 00E18 80A24B78 4481D000 */ mtc1 $at, $f26 ## $f26 = 11.00 -/* 00E1C 80A24B7C 3C0180A2 */ lui $at, %hi(D_80A27EE8) ## $at = 80A20000 -/* 00E20 80A24B80 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 -/* 00E24 80A24B84 E64816CC */ swc1 $f8, 0x16CC($s2) ## 000016CC -/* 00E28 80A24B88 C4387EE8 */ lwc1 $f24, %lo(D_80A27EE8)($at) -/* 00E2C 80A24B8C 27B500B4 */ addiu $s5, $sp, 0x00B4 ## $s5 = FFFFFFDC -/* 00E30 80A24B90 27B400C0 */ addiu $s4, $sp, 0x00C0 ## $s4 = FFFFFFE8 -/* 00E34 80A24B94 241301C8 */ addiu $s3, $zero, 0x01C8 ## $s3 = 000001C8 -.L80A24B98: -/* 00E38 80A24B98 0C034213 */ jal Matrix_Push -/* 00E3C 80A24B9C 00000000 */ nop -/* 00E40 80A24BA0 44905000 */ mtc1 $s0, $f10 ## $f10 = 0.00 -/* 00E44 80A24BA4 00000000 */ nop -/* 00E48 80A24BA8 46805120 */ cvt.s.w $f4, $f10 -/* 00E4C 80A24BAC 46182182 */ mul.s $f6, $f4, $f24 -/* 00E50 80A24BB0 461A3503 */ div.s $f20, $f6, $f26 -/* 00E54 80A24BB4 0C0400A4 */ jal sinf - -/* 00E58 80A24BB8 4600A306 */ mov.s $f12, $f20 -/* 00E5C 80A24BBC 46160202 */ mul.s $f8, $f0, $f22 -/* 00E60 80A24BC0 E7BC00C4 */ swc1 $f28, 0x00C4($sp) -/* 00E64 80A24BC4 4600A306 */ mov.s $f12, $f20 -/* 00E68 80A24BC8 0C041184 */ jal cosf - -/* 00E6C 80A24BCC E7A800C0 */ swc1 $f8, 0x00C0($sp) -/* 00E70 80A24BD0 46000287 */ neg.s $f10, $f0 -/* 00E74 80A24BD4 02802025 */ or $a0, $s4, $zero ## $a0 = FFFFFFE8 -/* 00E78 80A24BD8 46165102 */ mul.s $f4, $f10, $f22 -/* 00E7C 80A24BDC 02A02825 */ or $a1, $s5, $zero ## $a1 = FFFFFFDC -/* 00E80 80A24BE0 0C0346BD */ jal Matrix_MultVec3f -/* 00E84 80A24BE4 E7A400C8 */ swc1 $f4, 0x00C8($sp) -/* 00E88 80A24BE8 02130019 */ multu $s0, $s3 -/* 00E8C 80A24BEC C7A600B4 */ lwc1 $f6, 0x00B4($sp) -/* 00E90 80A24BF0 26110001 */ addiu $s1, $s0, 0x0001 ## $s1 = 00000001 -/* 00E94 80A24BF4 0011C400 */ sll $t8, $s1, 16 -/* 00E98 80A24BF8 4606F200 */ add.s $f8, $f30, $f6 -/* 00E9C 80A24BFC 0018CC03 */ sra $t9, $t8, 16 -/* 00EA0 80A24C00 00111C00 */ sll $v1, $s1, 16 -/* 00EA4 80A24C04 2B21000C */ slti $at, $t9, 0x000C -/* 00EA8 80A24C08 00031C03 */ sra $v1, $v1, 16 -/* 00EAC 80A24C0C 00007812 */ mflo $t7 -/* 00EB0 80A24C10 024F1021 */ addu $v0, $s2, $t7 -/* 00EB4 80A24C14 E448014C */ swc1 $f8, 0x014C($v0) ## 0000014C -/* 00EB8 80A24C18 C7A400B8 */ lwc1 $f4, 0x00B8($sp) -/* 00EBC 80A24C1C C7AA0090 */ lwc1 $f10, 0x0090($sp) -/* 00EC0 80A24C20 46045180 */ add.s $f6, $f10, $f4 -/* 00EC4 80A24C24 E4460150 */ swc1 $f6, 0x0150($v0) ## 00000150 -/* 00EC8 80A24C28 C7AA00BC */ lwc1 $f10, 0x00BC($sp) -/* 00ECC 80A24C2C C7A80094 */ lwc1 $f8, 0x0094($sp) -/* 00ED0 80A24C30 460A4100 */ add.s $f4, $f8, $f10 -/* 00ED4 80A24C34 14200004 */ bne $at, $zero, .L80A24C48 -/* 00ED8 80A24C38 E4440154 */ swc1 $f4, 0x0154($v0) ## 00000154 -/* 00EDC 80A24C3C 2603FFFF */ addiu $v1, $s0, 0xFFFF ## $v1 = FFFFFFFF -/* 00EE0 80A24C40 00031C00 */ sll $v1, $v1, 16 -/* 00EE4 80A24C44 00031C03 */ sra $v1, $v1, 16 -.L80A24C48: -/* 00EE8 80A24C48 00730019 */ multu $v1, $s3 -/* 00EEC 80A24C4C 244B01E8 */ addiu $t3, $v0, 0x01E8 ## $t3 = 000001E8 -/* 00EF0 80A24C50 244C0278 */ addiu $t4, $v0, 0x0278 ## $t4 = 00000278 -/* 00EF4 80A24C54 AFAC0018 */ sw $t4, 0x0018($sp) -/* 00EF8 80A24C58 AFAB0014 */ sw $t3, 0x0014($sp) -/* 00EFC 80A24C5C 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -/* 00F00 80A24C60 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 00F04 80A24C64 2446014C */ addiu $a2, $v0, 0x014C ## $a2 = 0000014C -/* 00F08 80A24C68 24470158 */ addiu $a3, $v0, 0x0158 ## $a3 = 00000158 -/* 00F0C 80A24C6C AFB0001C */ sw $s0, 0x001C($sp) -/* 00F10 80A24C70 00004012 */ mflo $t0 -/* 00F14 80A24C74 02484821 */ addu $t1, $s2, $t0 -/* 00F18 80A24C78 252A0158 */ addiu $t2, $t1, 0x0158 ## $t2 = 00000158 -/* 00F1C 80A24C7C 0C288FF8 */ jal func_80A23FE0 -/* 00F20 80A24C80 AFAA0010 */ sw $t2, 0x0010($sp) -/* 00F24 80A24C84 0C034221 */ jal Matrix_Pop -/* 00F28 80A24C88 00000000 */ nop -/* 00F2C 80A24C8C 00118400 */ sll $s0, $s1, 16 -/* 00F30 80A24C90 00108403 */ sra $s0, $s0, 16 -/* 00F34 80A24C94 2A01000C */ slti $at, $s0, 0x000C -/* 00F38 80A24C98 1420FFBF */ bne $at, $zero, .L80A24B98 -/* 00F3C 80A24C9C 00000000 */ nop -/* 00F40 80A24CA0 0C289169 */ jal func_80A245A4 -/* 00F44 80A24CA4 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000 -/* 00F48 80A24CA8 A2401705 */ sb $zero, 0x1705($s2) ## 00001705 -/* 00F4C 80A24CAC 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -.L80A24CB0: -/* 00F50 80A24CB0 0C289221 */ jal func_80A24884 -/* 00F54 80A24CB4 02402825 */ or $a1, $s2, $zero ## $a1 = 00000000 -/* 00F58 80A24CB8 8FBF0074 */ lw $ra, 0x0074($sp) -/* 00F5C 80A24CBC D7B40028 */ ldc1 $f20, 0x0028($sp) -/* 00F60 80A24CC0 D7B60030 */ ldc1 $f22, 0x0030($sp) -/* 00F64 80A24CC4 D7B80038 */ ldc1 $f24, 0x0038($sp) -/* 00F68 80A24CC8 D7BA0040 */ ldc1 $f26, 0x0040($sp) -/* 00F6C 80A24CCC D7BC0048 */ ldc1 $f28, 0x0048($sp) -/* 00F70 80A24CD0 D7BE0050 */ ldc1 $f30, 0x0050($sp) -/* 00F74 80A24CD4 8FB00058 */ lw $s0, 0x0058($sp) -/* 00F78 80A24CD8 8FB1005C */ lw $s1, 0x005C($sp) -/* 00F7C 80A24CDC 8FB20060 */ lw $s2, 0x0060($sp) -/* 00F80 80A24CE0 8FB30064 */ lw $s3, 0x0064($sp) -/* 00F84 80A24CE4 8FB40068 */ lw $s4, 0x0068($sp) -/* 00F88 80A24CE8 8FB5006C */ lw $s5, 0x006C($sp) -/* 00F8C 80A24CEC 8FB60070 */ lw $s6, 0x0070($sp) -/* 00F90 80A24CF0 03E00008 */ jr $ra -/* 00F94 80A24CF4 27BD00D8 */ addiu $sp, $sp, 0x00D8 ## $sp = 00000000 -/* 00F98 80A24CF8 00000000 */ nop -/* 00F9C 80A24CFC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Init.s deleted file mode 100644 index 0514d0eb0f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Init.s +++ /dev/null @@ -1,7 +0,0 @@ -glabel EnGanonMant_Init -/* 00000 80A23D60 AFA50004 */ sw $a1, 0x0004($sp) -/* 00004 80A23D64 8C8E0004 */ lw $t6, 0x0004($a0) ## 00000004 -/* 00008 80A23D68 2401FFFE */ addiu $at, $zero, 0xFFFE ## $at = FFFFFFFE -/* 0000C 80A23D6C 01C17824 */ and $t7, $t6, $at -/* 00010 80A23D70 03E00008 */ jr $ra -/* 00014 80A23D74 AC8F0004 */ sw $t7, 0x0004($a0) ## 00000004 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Update.s deleted file mode 100644 index 0e8cb71dc5..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Update.s +++ /dev/null @@ -1,53 +0,0 @@ -glabel EnGanonMant_Update -/* 00A68 80A247C8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00A6C 80A247CC AFBF0014 */ sw $ra, 0x0014($sp) -/* 00A70 80A247D0 AFA5001C */ sw $a1, 0x001C($sp) -/* 00A74 80A247D4 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00 -/* 00A78 80A247D8 C48016C0 */ lwc1 $f0, 0x16C0($a0) ## 000016C0 -/* 00A7C 80A247DC 908F1706 */ lbu $t7, 0x1706($a0) ## 00001706 -/* 00A80 80A247E0 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001 -/* 00A84 80A247E4 46001032 */ c.eq.s $f2, $f0 -/* 00A88 80A247E8 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001 -/* 00A8C 80A247EC 8C830118 */ lw $v1, 0x0118($a0) ## 00000118 -/* 00A90 80A247F0 A08E1705 */ sb $t6, 0x1705($a0) ## 00001705 -/* 00A94 80A247F4 45000005 */ bc1f .L80A2480C -/* 00A98 80A247F8 A0981706 */ sb $t8, 0x1706($a0) ## 00001706 -/* 00A9C 80A247FC 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00AA0 80A24800 44816000 */ mtc1 $at, $f12 ## $f12 = 1.00 -/* 00AA4 80A24804 10000007 */ beq $zero, $zero, .L80A24824 -/* 00AA8 80A24808 C48016BC */ lwc1 $f0, 0x16BC($a0) ## 000016BC -.L80A2480C: -/* 00AAC 80A2480C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 00AB0 80A24810 44816000 */ mtc1 $at, $f12 ## $f12 = 1.00 -/* 00AB4 80A24814 00000000 */ nop -/* 00AB8 80A24818 460C0101 */ sub.s $f4, $f0, $f12 -/* 00ABC 80A2481C E48416C0 */ swc1 $f4, 0x16C0($a0) ## 000016C0 -/* 00AC0 80A24820 C48016BC */ lwc1 $f0, 0x16BC($a0) ## 000016BC -.L80A24824: -/* 00AC4 80A24824 46001032 */ c.eq.s $f2, $f0 -/* 00AC8 80A24828 00000000 */ nop -/* 00ACC 80A2482C 45030004 */ bc1tl .L80A24840 -/* 00AD0 80A24830 C48016C4 */ lwc1 $f0, 0x16C4($a0) ## 000016C4 -/* 00AD4 80A24834 460C0181 */ sub.s $f6, $f0, $f12 -/* 00AD8 80A24838 E48616BC */ swc1 $f6, 0x16BC($a0) ## 000016BC -/* 00ADC 80A2483C C48016C4 */ lwc1 $f0, 0x16C4($a0) ## 000016C4 -.L80A24840: -/* 00AE0 80A24840 46001032 */ c.eq.s $f2, $f0 -/* 00AE4 80A24844 00000000 */ nop -/* 00AE8 80A24848 45030004 */ bc1tl .L80A2485C -/* 00AEC 80A2484C 90821704 */ lbu $v0, 0x1704($a0) ## 00001704 -/* 00AF0 80A24850 460C0201 */ sub.s $f8, $f0, $f12 -/* 00AF4 80A24854 E48816C4 */ swc1 $f8, 0x16C4($a0) ## 000016C4 -/* 00AF8 80A24858 90821704 */ lbu $v0, 0x1704($a0) ## 00001704 -.L80A2485C: -/* 00AFC 80A2485C 847900B6 */ lh $t9, 0x00B6($v1) ## 000000B6 -/* 00B00 80A24860 10400004 */ beq $v0, $zero, .L80A24874 -/* 00B04 80A24864 A49900B6 */ sh $t9, 0x00B6($a0) ## 000000B6 -/* 00B08 80A24868 2448FFFF */ addiu $t0, $v0, 0xFFFF ## $t0 = FFFFFFFF -/* 00B0C 80A2486C 0C288F61 */ jal func_80A23D84 -/* 00B10 80A24870 A0881704 */ sb $t0, 0x1704($a0) ## 00001704 -.L80A24874: -/* 00B14 80A24874 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00B18 80A24878 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00B1C 80A2487C 03E00008 */ jr $ra -/* 00B20 80A24880 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23D84.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23D84.s deleted file mode 100644 index 74376d4554..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23D84.s +++ /dev/null @@ -1,178 +0,0 @@ -.late_rodata -glabel D_80A27EC8 - .float 6.28318548203 - -glabel D_80A27ECC - .word 0x407F5C29 -glabel D_80A27ED0 - .word 0x413E6666 - -.text -glabel func_80A23D84 -/* 00024 80A23D84 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0 -/* 00028 80A23D88 F7B80028 */ sdc1 $f24, 0x0028($sp) -/* 0002C 80A23D8C 3C014200 */ lui $at, 0x4200 ## $at = 42000000 -/* 00030 80A23D90 4481C000 */ mtc1 $at, $f24 ## $f24 = 32.00 -/* 00034 80A23D94 AFBF0044 */ sw $ra, 0x0044($sp) -/* 00038 80A23D98 AFB20040 */ sw $s2, 0x0040($sp) -/* 0003C 80A23D9C 00809025 */ or $s2, $a0, $zero ## $s2 = 00000000 -/* 00040 80A23DA0 AFB1003C */ sw $s1, 0x003C($sp) -/* 00044 80A23DA4 AFB00038 */ sw $s0, 0x0038($sp) -/* 00048 80A23DA8 F7BA0030 */ sdc1 $f26, 0x0030($sp) -/* 0004C 80A23DAC F7B60020 */ sdc1 $f22, 0x0020($sp) -/* 00050 80A23DB0 F7B40018 */ sdc1 $f20, 0x0018($sp) -/* 00054 80A23DB4 0C00CFBE */ jal Rand_ZeroFloat - -/* 00058 80A23DB8 4600C306 */ mov.s $f12, $f24 -/* 0005C 80A23DBC 3C014280 */ lui $at, 0x4280 ## $at = 42800000 -/* 00060 80A23DC0 4481D000 */ mtc1 $at, $f26 ## $f26 = 64.00 -/* 00064 80A23DC4 E7A00050 */ swc1 $f0, 0x0050($sp) -/* 00068 80A23DC8 0C00CFBE */ jal Rand_ZeroFloat - -/* 0006C 80A23DCC 4600D306 */ mov.s $f12, $f26 -/* 00070 80A23DD0 3C0180A2 */ lui $at, %hi(D_80A27EC8) ## $at = 80A20000 -/* 00074 80A23DD4 C42C7EC8 */ lwc1 $f12, %lo(D_80A27EC8)($at) -/* 00078 80A23DD8 0C00CFBE */ jal Rand_ZeroFloat - -/* 0007C 80A23DDC E7A0004C */ swc1 $f0, 0x004C($sp) -/* 00080 80A23DE0 46000586 */ mov.s $f22, $f0 -/* 00084 80A23DE4 0C0400A4 */ jal sinf - -/* 00088 80A23DE8 46000306 */ mov.s $f12, $f0 -/* 0008C 80A23DEC 46000506 */ mov.s $f20, $f0 -/* 00090 80A23DF0 0C041184 */ jal cosf - -/* 00094 80A23DF4 4600B306 */ mov.s $f12, $f22 -/* 00098 80A23DF8 3C0180A2 */ lui $at, %hi(D_80A27ECC) ## $at = 80A20000 -/* 0009C 80A23DFC 46000586 */ mov.s $f22, $f0 -/* 000A0 80A23E00 0C00CFBE */ jal Rand_ZeroFloat - -/* 000A4 80A23E04 C42C7ECC */ lwc1 $f12, %lo(D_80A27ECC)($at) -/* 000A8 80A23E08 4600010D */ trunc.w.s $f4, $f0 -/* 000AC 80A23E0C 3C0C80A2 */ lui $t4, %hi(D_80A24D64) ## $t4 = 80A20000 -/* 000B0 80A23E10 258C4D64 */ addiu $t4, $t4, %lo(D_80A24D64) ## $t4 = 80A24D64 -/* 000B4 80A23E14 C7A20050 */ lwc1 $f2, 0x0050($sp) -/* 000B8 80A23E18 440F2000 */ mfc1 $t7, $f4 -/* 000BC 80A23E1C C7AE004C */ lwc1 $f14, 0x004C($sp) -/* 000C0 80A23E20 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 -/* 000C4 80A23E24 000FC400 */ sll $t8, $t7, 16 -/* 000C8 80A23E28 0018CC03 */ sra $t9, $t8, 16 -/* 000CC 80A23E2C 001958C0 */ sll $t3, $t9, 3 -/* 000D0 80A23E30 016C1021 */ addu $v0, $t3, $t4 -/* 000D4 80A23E34 84490004 */ lh $t1, 0x0004($v0) ## 00000004 -/* 000D8 80A23E38 8C4A0000 */ lw $t2, 0x0000($v0) ## 00000000 -/* 000DC 80A23E3C 3C0780A2 */ lui $a3, %hi(D_80A24F78) ## $a3 = 80A20000 -/* 000E0 80A23E40 19200041 */ blez $t1, .L80A23F48 -/* 000E4 80A23E44 24110001 */ addiu $s1, $zero, 0x0001 ## $s1 = 00000001 -/* 000E8 80A23E48 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 000EC 80A23E4C 24E74F78 */ addiu $a3, $a3, %lo(D_80A24F78) ## $a3 = 80A24F78 -.L80A23E50: -/* 000F0 80A23E50 4602003E */ c.le.s $f0, $f2 -/* 000F4 80A23E54 00000000 */ nop -/* 000F8 80A23E58 45020034 */ bc1fl .L80A23F2C -/* 000FC 80A23E5C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001 -/* 00100 80A23E60 4618103C */ c.lt.s $f2, $f24 -/* 00104 80A23E64 00000000 */ nop -/* 00108 80A23E68 45020030 */ bc1fl .L80A23F2C -/* 0010C 80A23E6C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000002 -/* 00110 80A23E70 460E003E */ c.le.s $f0, $f14 -/* 00114 80A23E74 00000000 */ nop -/* 00118 80A23E78 4502002C */ bc1fl .L80A23F2C -/* 0011C 80A23E7C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000003 -/* 00120 80A23E80 461A703C */ c.lt.s $f14, $f26 -/* 00124 80A23E84 00106840 */ sll $t5, $s0, 1 -/* 00128 80A23E88 014D3021 */ addu $a2, $t2, $t5 -/* 0012C 80A23E8C 45020027 */ bc1fl .L80A23F2C -/* 00130 80A23E90 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000004 -/* 00134 80A23E94 84C40000 */ lh $a0, 0x0000($a2) ## 00000000 -/* 00138 80A23E98 00004025 */ or $t0, $zero, $zero ## $t0 = 00000000 -/* 0013C 80A23E9C 04820023 */ bltzl $a0, .L80A23F2C -/* 00140 80A23EA0 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000005 -.L80A23EA4: -/* 00144 80A23EA4 0480001A */ bltz $a0, .L80A23F10 -/* 00148 80A23EA8 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000 -/* 0014C 80A23EAC 4600720D */ trunc.w.s $f8, $f14 -/* 00150 80A23EB0 4600118D */ trunc.w.s $f6, $f2 -/* 00154 80A23EB4 440E4000 */ mfc1 $t6, $f8 -/* 00158 80A23EB8 44193000 */ mfc1 $t9, $f6 -/* 0015C 80A23EBC 000E7940 */ sll $t7, $t6, 5 -/* 00160 80A23EC0 032FC021 */ addu $t8, $t9, $t7 -/* 00164 80A23EC4 00185C00 */ sll $t3, $t8, 16 -/* 00168 80A23EC8 000B6403 */ sra $t4, $t3, 16 -/* 0016C 80A23ECC 01882821 */ addu $a1, $t4, $t0 -/* 00170 80A23ED0 00036940 */ sll $t5, $v1, 5 -.L80A23ED4: -/* 00174 80A23ED4 00AD1021 */ addu $v0, $a1, $t5 -/* 00178 80A23ED8 00021400 */ sll $v0, $v0, 16 -/* 0017C 80A23EDC 00021403 */ sra $v0, $v0, 16 -/* 00180 80A23EE0 28410800 */ slti $at, $v0, 0x0800 -/* 00184 80A23EE4 10200005 */ beq $at, $zero, .L80A23EFC -/* 00188 80A23EE8 24630001 */ addiu $v1, $v1, 0x0001 ## $v1 = 00000001 -/* 0018C 80A23EEC 00027040 */ sll $t6, $v0, 1 -/* 00190 80A23EF0 00EEC821 */ addu $t9, $a3, $t6 -/* 00194 80A23EF4 A7200000 */ sh $zero, 0x0000($t9) ## 00000000 -/* 00198 80A23EF8 84C40000 */ lh $a0, 0x0000($a2) ## 00000000 -.L80A23EFC: -/* 0019C 80A23EFC 00031C00 */ sll $v1, $v1, 16 -/* 001A0 80A23F00 00031C03 */ sra $v1, $v1, 16 -/* 001A4 80A23F04 0083082A */ slt $at, $a0, $v1 -/* 001A8 80A23F08 5020FFF2 */ beql $at, $zero, .L80A23ED4 -/* 001AC 80A23F0C 00036940 */ sll $t5, $v1, 5 -.L80A23F10: -/* 001B0 80A23F10 25080001 */ addiu $t0, $t0, 0x0001 ## $t0 = 00000001 -/* 001B4 80A23F14 00084400 */ sll $t0, $t0, 16 -/* 001B8 80A23F18 00084403 */ sra $t0, $t0, 16 -/* 001BC 80A23F1C 0088082A */ slt $at, $a0, $t0 -/* 001C0 80A23F20 1020FFE0 */ beq $at, $zero, .L80A23EA4 -/* 001C4 80A23F24 00000000 */ nop -/* 001C8 80A23F28 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000006 -.L80A23F2C: -/* 001CC 80A23F2C 00108400 */ sll $s0, $s0, 16 -/* 001D0 80A23F30 00108403 */ sra $s0, $s0, 16 -/* 001D4 80A23F34 0209082A */ slt $at, $s0, $t1 -/* 001D8 80A23F38 46141080 */ add.s $f2, $f2, $f20 -/* 001DC 80A23F3C 1420FFC4 */ bne $at, $zero, .L80A23E50 -/* 001E0 80A23F40 46167380 */ add.s $f14, $f14, $f22 -/* 001E4 80A23F44 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000 -.L80A23F48: -/* 001E8 80A23F48 3C0180A2 */ lui $at, %hi(D_80A27ED0) ## $at = 80A20000 -/* 001EC 80A23F4C C4367ED0 */ lwc1 $f22, %lo(D_80A27ED0)($at) -.L80A23F50: -/* 001F0 80A23F50 0C00CFBE */ jal Rand_ZeroFloat - -/* 001F4 80A23F54 4600B306 */ mov.s $f12, $f22 -/* 001F8 80A23F58 46000506 */ mov.s $f20, $f0 -/* 001FC 80A23F5C 0C00CFBE */ jal Rand_ZeroFloat - -/* 00200 80A23F60 4600B306 */ mov.s $f12, $f22 -/* 00204 80A23F64 4600028D */ trunc.w.s $f10, $f0 -/* 00208 80A23F68 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001 -/* 0020C 80A23F6C 00108400 */ sll $s0, $s0, 16 -/* 00210 80A23F70 4600A40D */ trunc.w.s $f16, $f20 -/* 00214 80A23F74 44185000 */ mfc1 $t8, $f10 -/* 00218 80A23F78 00108403 */ sra $s0, $s0, 16 -/* 0021C 80A23F7C 2A010004 */ slti $at, $s0, 0x0004 -/* 00220 80A23F80 00185C00 */ sll $t3, $t8, 16 -/* 00224 80A23F84 000B6403 */ sra $t4, $t3, 16 -/* 00228 80A23F88 000C68C0 */ sll $t5, $t4, 3 -/* 0022C 80A23F8C 440F8000 */ mfc1 $t7, $f16 -/* 00230 80A23F90 01AC6823 */ subu $t5, $t5, $t4 -/* 00234 80A23F94 000D68C0 */ sll $t5, $t5, 3 -/* 00238 80A23F98 01AC6821 */ addu $t5, $t5, $t4 -/* 0023C 80A23F9C 000D68C0 */ sll $t5, $t5, 3 -/* 00240 80A23FA0 000FC400 */ sll $t8, $t7, 16 -/* 00244 80A23FA4 00185C03 */ sra $t3, $t8, 16 -/* 00248 80A23FA8 024D7021 */ addu $t6, $s2, $t5 -/* 0024C 80A23FAC 01CB6021 */ addu $t4, $t6, $t3 -/* 00250 80A23FB0 1420FFE7 */ bne $at, $zero, .L80A23F50 -/* 00254 80A23FB4 A1910308 */ sb $s1, 0x0308($t4) ## 00000308 -/* 00258 80A23FB8 8FBF0044 */ lw $ra, 0x0044($sp) -/* 0025C 80A23FBC D7B40018 */ ldc1 $f20, 0x0018($sp) -/* 00260 80A23FC0 D7B60020 */ ldc1 $f22, 0x0020($sp) -/* 00264 80A23FC4 D7B80028 */ ldc1 $f24, 0x0028($sp) -/* 00268 80A23FC8 D7BA0030 */ ldc1 $f26, 0x0030($sp) -/* 0026C 80A23FCC 8FB00038 */ lw $s0, 0x0038($sp) -/* 00270 80A23FD0 8FB1003C */ lw $s1, 0x003C($sp) -/* 00274 80A23FD4 8FB20040 */ lw $s2, 0x0040($sp) -/* 00278 80A23FD8 03E00008 */ jr $ra -/* 0027C 80A23FDC 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23FE0.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23FE0.s deleted file mode 100644 index bc01d2b206..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23FE0.s +++ /dev/null @@ -1,410 +0,0 @@ -.late_rodata -glabel D_80A27ED4 - .float 3.14159274101 - -glabel D_80A27ED8 - .float 6.28318548203 - -glabel D_80A27EDC - .float 2.1 - -glabel D_80A27EE0 - .float 3.14159274101 - -.text -glabel func_80A23FE0 -/* 00280 80A23FE0 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20 -/* 00284 80A23FE4 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 00288 80A23FE8 AFBF006C */ sw $ra, 0x006C($sp) -/* 0028C 80A23FEC AFBE0068 */ sw $s8, 0x0068($sp) -/* 00290 80A23FF0 AFB70064 */ sw $s7, 0x0064($sp) -/* 00294 80A23FF4 AFB60060 */ sw $s6, 0x0060($sp) -/* 00298 80A23FF8 AFB5005C */ sw $s5, 0x005C($sp) -/* 0029C 80A23FFC AFB40058 */ sw $s4, 0x0058($sp) -/* 002A0 80A24000 AFB30054 */ sw $s3, 0x0054($sp) -/* 002A4 80A24004 AFB20050 */ sw $s2, 0x0050($sp) -/* 002A8 80A24008 AFB1004C */ sw $s1, 0x004C($sp) -/* 002AC 80A2400C AFB00048 */ sw $s0, 0x0048($sp) -/* 002B0 80A24010 F7BE0040 */ sdc1 $f30, 0x0040($sp) -/* 002B4 80A24014 F7BC0038 */ sdc1 $f28, 0x0038($sp) -/* 002B8 80A24018 F7BA0030 */ sdc1 $f26, 0x0030($sp) -/* 002BC 80A2401C F7B80028 */ sdc1 $f24, 0x0028($sp) -/* 002C0 80A24020 F7B60020 */ sdc1 $f22, 0x0020($sp) -/* 002C4 80A24024 F7B40018 */ sdc1 $f20, 0x0018($sp) -/* 002C8 80A24028 AFA400E0 */ sw $a0, 0x00E0($sp) -/* 002CC 80A2402C E7A400A4 */ swc1 $f4, 0x00A4($sp) -/* 002D0 80A24030 84AE001C */ lh $t6, 0x001C($a1) ## 0000001C -/* 002D4 80A24034 24010023 */ addiu $at, $zero, 0x0023 ## $at = 00000023 -/* 002D8 80A24038 00E08025 */ or $s0, $a3, $zero ## $s0 = 00000000 -/* 002DC 80A2403C 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000 -/* 002E0 80A24040 15C1002C */ bne $t6, $at, .L80A240F4 -/* 002E4 80A24044 00C0F025 */ or $s8, $a2, $zero ## $s8 = 00000000 -/* 002E8 80A24048 3C01C1F0 */ lui $at, 0xC1F0 ## $at = C1F00000 -/* 002EC 80A2404C 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00 -/* 002F0 80A24050 44814000 */ mtc1 $at, $f8 ## $f8 = -30.00 -/* 002F4 80A24054 3C014700 */ lui $at, 0x4700 ## $at = 47000000 -/* 002F8 80A24058 E7A600A0 */ swc1 $f6, 0x00A0($sp) -/* 002FC 80A2405C E7A800A8 */ swc1 $f8, 0x00A8($sp) -/* 00300 80A24060 84AF00B6 */ lh $t7, 0x00B6($a1) ## 000000B6 -/* 00304 80A24064 44819000 */ mtc1 $at, $f18 ## $f18 = 32768.00 -/* 00308 80A24068 3C0180A2 */ lui $at, %hi(D_80A27ED4) ## $at = 80A20000 -/* 0030C 80A2406C 448F5000 */ mtc1 $t7, $f10 ## $f10 = 0.00 -/* 00310 80A24070 C4267ED4 */ lwc1 $f6, %lo(D_80A27ED4)($at) -/* 00314 80A24074 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00318 80A24078 46805420 */ cvt.s.w $f16, $f10 -/* 0031C 80A2407C 46128103 */ div.s $f4, $f16, $f18 -/* 00320 80A24080 46062302 */ mul.s $f12, $f4, $f6 -/* 00324 80A24084 0C034348 */ jal Matrix_RotateY -/* 00328 80A24088 00000000 */ nop -/* 0032C 80A2408C 27B500A0 */ addiu $s5, $sp, 0x00A0 ## $s5 = FFFFFFC0 -/* 00330 80A24090 02A02025 */ or $a0, $s5, $zero ## $a0 = FFFFFFC0 -/* 00334 80A24094 0C0346BD */ jal Matrix_MultVec3f -/* 00338 80A24098 27A50094 */ addiu $a1, $sp, 0x0094 ## $a1 = FFFFFFB4 -/* 0033C 80A2409C 0000A025 */ or $s4, $zero, $zero ## $s4 = 00000000 -/* 00340 80A240A0 2403000C */ addiu $v1, $zero, 0x000C ## $v1 = 0000000C -.L80A240A4: -/* 00344 80A240A4 02830019 */ multu $s4, $v1 -/* 00348 80A240A8 C7AA0094 */ lwc1 $f10, 0x0094($sp) -/* 0034C 80A240AC 26940001 */ addiu $s4, $s4, 0x0001 ## $s4 = 00000001 -/* 00350 80A240B0 0014A400 */ sll $s4, $s4, 16 -/* 00354 80A240B4 0014A403 */ sra $s4, $s4, 16 -/* 00358 80A240B8 2A81000C */ slti $at, $s4, 0x000C -/* 0035C 80A240BC 0000C012 */ mflo $t8 -/* 00360 80A240C0 03101021 */ addu $v0, $t8, $s0 -/* 00364 80A240C4 C4480000 */ lwc1 $f8, 0x0000($v0) ## 00000000 -/* 00368 80A240C8 C4520008 */ lwc1 $f18, 0x0008($v0) ## 00000008 -/* 0036C 80A240CC 460A4400 */ add.s $f16, $f8, $f10 -/* 00370 80A240D0 E4500000 */ swc1 $f16, 0x0000($v0) ## 00000000 -/* 00374 80A240D4 C7A4009C */ lwc1 $f4, 0x009C($sp) -/* 00378 80A240D8 46049180 */ add.s $f6, $f18, $f4 -/* 0037C 80A240DC 1420FFF1 */ bne $at, $zero, .L80A240A4 -/* 00380 80A240E0 E4460008 */ swc1 $f6, 0x0008($v0) ## 00000008 -/* 00384 80A240E4 3C0140D0 */ lui $at, 0x40D0 ## $at = 40D00000 -/* 00388 80A240E8 44814000 */ mtc1 $at, $f8 ## $f8 = 6.50 -/* 0038C 80A240EC 10000005 */ beq $zero, $zero, .L80A24104 -/* 00390 80A240F0 E7A800AC */ swc1 $f8, 0x00AC($sp) -.L80A240F4: -/* 00394 80A240F4 3C014118 */ lui $at, 0x4118 ## $at = 41180000 -/* 00398 80A240F8 44815000 */ mtc1 $at, $f10 ## $f10 = 9.50 -/* 0039C 80A240FC 27B500A0 */ addiu $s5, $sp, 0x00A0 ## $s5 = FFFFFFC0 -/* 003A0 80A24100 E7AA00AC */ swc1 $f10, 0x00AC($sp) -.L80A24104: -/* 003A4 80A24104 3C01C0A0 */ lui $at, 0xC0A0 ## $at = C0A00000 -/* 003A8 80A24108 4481F000 */ mtc1 $at, $f30 ## $f30 = -5.00 -/* 003AC 80A2410C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 003B0 80A24110 4481E000 */ mtc1 $at, $f28 ## $f28 = 5.00 -/* 003B4 80A24114 0000A025 */ or $s4, $zero, $zero ## $s4 = 00000000 -/* 003B8 80A24118 8FB700F0 */ lw $s7, 0x00F0($sp) -/* 003BC 80A2411C 8FB600F4 */ lw $s6, 0x00F4($sp) -/* 003C0 80A24120 8FB100F8 */ lw $s1, 0x00F8($sp) -.L80A24124: -/* 003C4 80A24124 16800008 */ bne $s4, $zero, .L80A24148 -/* 003C8 80A24128 87A200FE */ lh $v0, 0x00FE($sp) -/* 003CC 80A2412C C7D00000 */ lwc1 $f16, 0x0000($s8) ## 00000000 -/* 003D0 80A24130 E6100000 */ swc1 $f16, 0x0000($s0) ## 00000000 -/* 003D4 80A24134 C7D20004 */ lwc1 $f18, 0x0004($s8) ## 00000004 -/* 003D8 80A24138 E6120004 */ swc1 $f18, 0x0004($s0) ## 00000004 -/* 003DC 80A2413C C7C40008 */ lwc1 $f4, 0x0008($s8) ## 00000008 -/* 003E0 80A24140 100000F7 */ beq $zero, $zero, .L80A24520 -/* 003E4 80A24144 E6040008 */ swc1 $f4, 0x0008($s0) ## 00000008 -.L80A24148: -/* 003E8 80A24148 44823000 */ mtc1 $v0, $f6 ## $f6 = 0.00 -/* 003EC 80A2414C 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00 -/* 003F0 80A24150 3C0180A2 */ lui $at, %hi(D_80A27ED8) ## $at = 80A20000 -/* 003F4 80A24154 46803220 */ cvt.s.w $f8, $f6 -/* 003F8 80A24158 C42A7ED8 */ lwc1 $f10, %lo(D_80A27ED8)($at) -/* 003FC 80A2415C 3C0180A2 */ lui $at, %hi(D_80A27EDC) ## $at = 80A20000 -/* 00400 80A24160 C4327EDC */ lwc1 $f18, %lo(D_80A27EDC)($at) -/* 00404 80A24164 3C0180A2 */ lui $at, %hi(D_80A27EE0) ## $at = 80A20000 -/* 00408 80A24168 468021A0 */ cvt.s.w $f6, $f4 -/* 0040C 80A2416C 460A4402 */ mul.s $f16, $f8, $f10 -/* 00410 80A24170 C4287EE0 */ lwc1 $f8, %lo(D_80A27EE0)($at) -/* 00414 80A24174 3C014130 */ lui $at, 0x4130 ## $at = 41300000 -/* 00418 80A24178 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 0041C 80A2417C 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 00420 80A24180 46083282 */ mul.s $f10, $f6, $f8 -/* 00424 80A24184 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00428 80A24188 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000 -/* 0042C 80A2418C 46128503 */ div.s $f20, $f16, $f18 -/* 00430 80A24190 44818000 */ mtc1 $at, $f16 ## $f16 = 11.00 -/* 00434 80A24194 0C01E123 */ jal Math_ApproachZeroF - -/* 00438 80A24198 46105583 */ div.s $f22, $f10, $f16 -/* 0043C 80A2419C 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 00440 80A241A0 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 00444 80A241A4 26240004 */ addiu $a0, $s1, 0x0004 ## $a0 = 00000004 -/* 00448 80A241A8 0C01E123 */ jal Math_ApproachZeroF - -/* 0044C 80A241AC 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000 -/* 00450 80A241B0 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 00454 80A241B4 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 00458 80A241B8 26240008 */ addiu $a0, $s1, 0x0008 ## $a0 = 00000008 -/* 0045C 80A241BC 0C01E123 */ jal Math_ApproachZeroF - -/* 00460 80A241C0 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000 -/* 00464 80A241C4 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00 -/* 00468 80A241C8 4600A306 */ mov.s $f12, $f20 -/* 0046C 80A241CC 0C0400A4 */ jal sinf - -/* 00470 80A241D0 E7B200A0 */ swc1 $f18, 0x00A0($sp) -/* 00474 80A241D4 C64616B4 */ lwc1 $f6, 0x16B4($s2) ## 000016B4 -/* 00478 80A241D8 C64416B0 */ lwc1 $f4, 0x16B0($s2) ## 000016B0 -/* 0047C 80A241DC 00149880 */ sll $s3, $s4, 2 -/* 00480 80A241E0 46060202 */ mul.s $f8, $f0, $f6 -/* 00484 80A241E4 3C0180A2 */ lui $at, %hi(D_80A24D84) ## $at = 80A20000 -/* 00488 80A241E8 00330821 */ addu $at, $at, $s3 -/* 0048C 80A241EC C4304D84 */ lwc1 $f16, %lo(D_80A24D84)($at) -/* 00490 80A241F0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00494 80A241F4 46082280 */ add.s $f10, $f4, $f8 -/* 00498 80A241F8 460A8482 */ mul.s $f18, $f16, $f10 -/* 0049C 80A241FC E7B200A8 */ swc1 $f18, 0x00A8($sp) -/* 004A0 80A24200 0C034348 */ jal Matrix_RotateY -/* 004A4 80A24204 C64C16CC */ lwc1 $f12, 0x16CC($s2) ## 000016CC -/* 004A8 80A24208 02A02025 */ or $a0, $s5, $zero ## $a0 = FFFFFFC0 -/* 004AC 80A2420C 0C0346BD */ jal Matrix_MultVec3f -/* 004B0 80A24210 27A50088 */ addiu $a1, $sp, 0x0088 ## $a1 = FFFFFFA8 -/* 004B4 80A24214 0C041184 */ jal cosf - -/* 004B8 80A24218 4600B306 */ mov.s $f12, $f22 -/* 004BC 80A2421C C64416B8 */ lwc1 $f4, 0x16B8($s2) ## 000016B8 -/* 004C0 80A24220 3C0180A2 */ lui $at, %hi(D_80A24DD0) ## $at = 80A20000 -/* 004C4 80A24224 00330821 */ addu $at, $at, $s3 -/* 004C8 80A24228 46040202 */ mul.s $f8, $f0, $f4 -/* 004CC 80A2422C C4264DD0 */ lwc1 $f6, %lo(D_80A24DD0)($at) -/* 004D0 80A24230 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00 -/* 004D4 80A24234 02A02025 */ or $a0, $s5, $zero ## $a0 = FFFFFFC0 -/* 004D8 80A24238 27A5007C */ addiu $a1, $sp, 0x007C ## $a1 = FFFFFF9C -/* 004DC 80A2423C E7AA00A8 */ swc1 $f10, 0x00A8($sp) -/* 004E0 80A24240 46083402 */ mul.s $f16, $f6, $f8 -/* 004E4 80A24244 0C0346BD */ jal Matrix_MultVec3f -/* 004E8 80A24248 E7B000A0 */ swc1 $f16, 0x00A0($sp) -/* 004EC 80A2424C C6120000 */ lwc1 $f18, 0x0000($s0) ## 00000000 -/* 004F0 80A24250 C6240000 */ lwc1 $f4, 0x0000($s1) ## 00000000 -/* 004F4 80A24254 C608FFF4 */ lwc1 $f8, -0x000C($s0) ## FFFFFFF4 -/* 004F8 80A24258 C7AA0088 */ lwc1 $f10, 0x0088($sp) -/* 004FC 80A2425C 46049180 */ add.s $f6, $f18, $f4 -/* 00500 80A24260 C7B2007C */ lwc1 $f18, 0x007C($sp) -/* 00504 80A24264 C64016C8 */ lwc1 $f0, 0x16C8($s2) ## 000016C8 -/* 00508 80A24268 46083401 */ sub.s $f16, $f6, $f8 -/* 0050C 80A2426C C6280004 */ lwc1 $f8, 0x0004($s1) ## 00000004 -/* 00510 80A24270 C6060004 */ lwc1 $f6, 0x0004($s0) ## 00000004 -/* 00514 80A24274 46125100 */ add.s $f4, $f10, $f18 -/* 00518 80A24278 C612FFF8 */ lwc1 $f18, -0x0008($s0) ## FFFFFFF8 -/* 0051C 80A2427C 46083280 */ add.s $f10, $f6, $f8 -/* 00520 80A24280 C6260008 */ lwc1 $f6, 0x0008($s1) ## 00000008 -/* 00524 80A24284 46048500 */ add.s $f20, $f16, $f4 -/* 00528 80A24288 C6040008 */ lwc1 $f4, 0x0008($s0) ## 00000008 -/* 0052C 80A2428C 46125401 */ sub.s $f16, $f10, $f18 -/* 00530 80A24290 C60AFFFC */ lwc1 $f10, -0x0004($s0) ## FFFFFFFC -/* 00534 80A24294 4600A386 */ mov.s $f14, $f20 -/* 00538 80A24298 46062200 */ add.s $f8, $f4, $f6 -/* 0053C 80A2429C C7A40084 */ lwc1 $f4, 0x0084($sp) -/* 00540 80A242A0 46008600 */ add.s $f24, $f16, $f0 -/* 00544 80A242A4 C7B00090 */ lwc1 $f16, 0x0090($sp) -/* 00548 80A242A8 460A4481 */ sub.s $f18, $f8, $f10 -/* 0054C 80A242AC 46048180 */ add.s $f6, $f16, $f4 -/* 00550 80A242B0 46069580 */ add.s $f22, $f18, $f6 -/* 00554 80A242B4 0C0341F5 */ jal Math_Atan2F - -/* 00558 80A242B8 4600B306 */ mov.s $f12, $f22 -/* 0055C 80A242BC 4614A202 */ mul.s $f8, $f20, $f20 -/* 00560 80A242C0 46000686 */ mov.s $f26, $f0 -/* 00564 80A242C4 4600C386 */ mov.s $f14, $f24 -/* 00568 80A242C8 4616B282 */ mul.s $f10, $f22, $f22 -/* 0056C 80A242CC 460A4000 */ add.s $f0, $f8, $f10 -/* 00570 80A242D0 0C0341F5 */ jal Math_Atan2F - -/* 00574 80A242D4 46000304 */ sqrt.s $f12, $f0 -/* 00578 80A242D8 46000507 */ neg.s $f20, $f0 -/* 0057C 80A242DC 44808000 */ mtc1 $zero, $f16 ## $f16 = 0.00 -/* 00580 80A242E0 E6D4FFF4 */ swc1 $f20, -0x000C($s6) ## FFFFFFF4 -/* 00584 80A242E4 C7A400AC */ lwc1 $f4, 0x00AC($sp) -/* 00588 80A242E8 4600D306 */ mov.s $f12, $f26 -/* 0058C 80A242EC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00590 80A242F0 E7B000A0 */ swc1 $f16, 0x00A0($sp) -/* 00594 80A242F4 0C034348 */ jal Matrix_RotateY -/* 00598 80A242F8 E7A400A8 */ swc1 $f4, 0x00A8($sp) -/* 0059C 80A242FC 4600A306 */ mov.s $f12, $f20 -/* 005A0 80A24300 0C0342DC */ jal Matrix_RotateX -/* 005A4 80A24304 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 005A8 80A24308 02A02025 */ or $a0, $s5, $zero ## $a0 = FFFFFFC0 -/* 005AC 80A2430C 0C0346BD */ jal Matrix_MultVec3f -/* 005B0 80A24310 27A50094 */ addiu $a1, $sp, 0x0094 ## $a1 = FFFFFFB4 -/* 005B4 80A24314 C612FFF4 */ lwc1 $f18, -0x000C($s0) ## FFFFFFF4 -/* 005B8 80A24318 C7A60094 */ lwc1 $f6, 0x0094($sp) -/* 005BC 80A2431C C6140000 */ lwc1 $f20, 0x0000($s0) ## 00000000 -/* 005C0 80A24320 C60AFFF8 */ lwc1 $f10, -0x0008($s0) ## FFFFFFF8 -/* 005C4 80A24324 46069200 */ add.s $f8, $f18, $f6 -/* 005C8 80A24328 C6180004 */ lwc1 $f24, 0x0004($s0) ## 00000004 -/* 005CC 80A2432C C612FFFC */ lwc1 $f18, -0x0004($s0) ## FFFFFFFC -/* 005D0 80A24330 C6160008 */ lwc1 $f22, 0x0008($s0) ## 00000008 -/* 005D4 80A24334 E6080000 */ swc1 $f8, 0x0000($s0) ## 00000000 -/* 005D8 80A24338 C7B00098 */ lwc1 $f16, 0x0098($sp) -/* 005DC 80A2433C 3C1980A2 */ lui $t9, %hi(D_80A24E18) ## $t9 = 80A20000 -/* 005E0 80A24340 27394E18 */ addiu $t9, $t9, %lo(D_80A24E18) ## $t9 = 80A24E18 -/* 005E4 80A24344 46105100 */ add.s $f4, $f10, $f16 -/* 005E8 80A24348 C60A0000 */ lwc1 $f10, 0x0000($s0) ## 00000000 -/* 005EC 80A2434C 02791021 */ addu $v0, $s3, $t9 -/* 005F0 80A24350 E6040004 */ swc1 $f4, 0x0004($s0) ## 00000004 -/* 005F4 80A24354 C7A6009C */ lwc1 $f6, 0x009C($sp) -/* 005F8 80A24358 46069200 */ add.s $f8, $f18, $f6 -/* 005FC 80A2435C E6080008 */ swc1 $f8, 0x0008($s0) ## 00000008 -/* 00600 80A24360 C6500024 */ lwc1 $f16, 0x0024($s2) ## 00000024 -/* 00604 80A24364 C652002C */ lwc1 $f18, 0x002C($s2) ## 0000002C -/* 00608 80A24368 C6040008 */ lwc1 $f4, 0x0008($s0) ## 00000008 -/* 0060C 80A2436C 46105381 */ sub.s $f14, $f10, $f16 -/* 00610 80A24370 C65016D0 */ lwc1 $f16, 0x16D0($s2) ## 000016D0 -/* 00614 80A24374 C44A0000 */ lwc1 $f10, 0x0000($v0) ## 00000000 -/* 00618 80A24378 46122301 */ sub.s $f12, $f4, $f18 -/* 0061C 80A2437C 460E7182 */ mul.s $f6, $f14, $f14 -/* 00620 80A24380 00000000 */ nop -/* 00624 80A24384 460C6202 */ mul.s $f8, $f12, $f12 -/* 00628 80A24388 46083000 */ add.s $f0, $f6, $f8 -/* 0062C 80A2438C 46105102 */ mul.s $f4, $f10, $f16 -/* 00630 80A24390 46000004 */ sqrt.s $f0, $f0 -/* 00634 80A24394 4604003C */ c.lt.s $f0, $f4 -/* 00638 80A24398 00000000 */ nop -/* 0063C 80A2439C 45000016 */ bc1f .L80A243F8 -/* 00640 80A243A0 00000000 */ nop -/* 00644 80A243A4 0C0341F5 */ jal Math_Atan2F - -/* 00648 80A243A8 AFA20070 */ sw $v0, 0x0070($sp) -/* 0064C 80A243AC 8FA20070 */ lw $v0, 0x0070($sp) -/* 00650 80A243B0 C64616D0 */ lwc1 $f6, 0x16D0($s2) ## 000016D0 -/* 00654 80A243B4 46000306 */ mov.s $f12, $f0 -/* 00658 80A243B8 C4520000 */ lwc1 $f18, 0x0000($v0) ## 00000000 -/* 0065C 80A243BC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00660 80A243C0 46069202 */ mul.s $f8, $f18, $f6 -/* 00664 80A243C4 0C034348 */ jal Matrix_RotateY -/* 00668 80A243C8 E7A800A8 */ swc1 $f8, 0x00A8($sp) -/* 0066C 80A243CC 02A02025 */ or $a0, $s5, $zero ## $a0 = FFFFFFC0 -/* 00670 80A243D0 0C0346BD */ jal Matrix_MultVec3f -/* 00674 80A243D4 27A50094 */ addiu $a1, $sp, 0x0094 ## $a1 = FFFFFFB4 -/* 00678 80A243D8 C64A0024 */ lwc1 $f10, 0x0024($s2) ## 00000024 -/* 0067C 80A243DC C7B00094 */ lwc1 $f16, 0x0094($sp) -/* 00680 80A243E0 46105100 */ add.s $f4, $f10, $f16 -/* 00684 80A243E4 E6040000 */ swc1 $f4, 0x0000($s0) ## 00000000 -/* 00688 80A243E8 C7A6009C */ lwc1 $f6, 0x009C($sp) -/* 0068C 80A243EC C652002C */ lwc1 $f18, 0x002C($s2) ## 0000002C -/* 00690 80A243F0 46069200 */ add.s $f8, $f18, $f6 -/* 00694 80A243F4 E6080008 */ swc1 $f8, 0x0008($s0) ## 00000008 -.L80A243F8: -/* 00698 80A243F8 C64016AC */ lwc1 $f0, 0x16AC($s2) ## 000016AC -/* 0069C 80A243FC C60A0004 */ lwc1 $f10, 0x0004($s0) ## 00000004 -/* 006A0 80A24400 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 006A4 80A24404 4600503C */ c.lt.s $f10, $f0 -/* 006A8 80A24408 00000000 */ nop -/* 006AC 80A2440C 45020003 */ bc1fl .L80A2441C -/* 006B0 80A24410 C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000 -/* 006B4 80A24414 E6000004 */ swc1 $f0, 0x0004($s0) ## 00000004 -/* 006B8 80A24418 C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000 -.L80A2441C: -/* 006BC 80A2441C 44810000 */ mtc1 $at, $f0 ## $f0 = 100.00 -/* 006C0 80A24420 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000 -/* 006C4 80A24424 46148101 */ sub.s $f4, $f16, $f20 -/* 006C8 80A24428 44811000 */ mtc1 $at, $f2 ## $f2 = 80.00 -/* 006CC 80A2442C 24010023 */ addiu $at, $zero, 0x0023 ## $at = 00000023 -/* 006D0 80A24430 46022482 */ mul.s $f18, $f4, $f2 -/* 006D4 80A24434 46009183 */ div.s $f6, $f18, $f0 -/* 006D8 80A24438 E6260000 */ swc1 $f6, 0x0000($s1) ## 00000000 -/* 006DC 80A2443C C6080004 */ lwc1 $f8, 0x0004($s0) ## 00000004 -/* 006E0 80A24440 46184281 */ sub.s $f10, $f8, $f24 -/* 006E4 80A24444 46025402 */ mul.s $f16, $f10, $f2 -/* 006E8 80A24448 46008103 */ div.s $f4, $f16, $f0 -/* 006EC 80A2444C E6240004 */ swc1 $f4, 0x0004($s1) ## 00000004 -/* 006F0 80A24450 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008 -/* 006F4 80A24454 46169181 */ sub.s $f6, $f18, $f22 -/* 006F8 80A24458 46023202 */ mul.s $f8, $f6, $f2 -/* 006FC 80A2445C 46004283 */ div.s $f10, $f8, $f0 -/* 00700 80A24460 E62A0008 */ swc1 $f10, 0x0008($s1) ## 00000008 -/* 00704 80A24464 8648001C */ lh $t0, 0x001C($s2) ## 0000001C -/* 00708 80A24468 51010026 */ beql $t0, $at, .L80A24504 -/* 0070C 80A2446C C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000 -/* 00710 80A24470 C6200000 */ lwc1 $f0, 0x0000($s1) ## 00000000 -/* 00714 80A24474 4600E03C */ c.lt.s $f28, $f0 -/* 00718 80A24478 00000000 */ nop -/* 0071C 80A2447C 45020004 */ bc1fl .L80A24490 -/* 00720 80A24480 461E003C */ c.lt.s $f0, $f30 -/* 00724 80A24484 10000006 */ beq $zero, $zero, .L80A244A0 -/* 00728 80A24488 E63C0000 */ swc1 $f28, 0x0000($s1) ## 00000000 -/* 0072C 80A2448C 461E003C */ c.lt.s $f0, $f30 -.L80A24490: -/* 00730 80A24490 00000000 */ nop -/* 00734 80A24494 45020003 */ bc1fl .L80A244A4 -/* 00738 80A24498 C6200004 */ lwc1 $f0, 0x0004($s1) ## 00000004 -/* 0073C 80A2449C E63E0000 */ swc1 $f30, 0x0000($s1) ## 00000000 -.L80A244A0: -/* 00740 80A244A0 C6200004 */ lwc1 $f0, 0x0004($s1) ## 00000004 -.L80A244A4: -/* 00744 80A244A4 4600E03C */ c.lt.s $f28, $f0 -/* 00748 80A244A8 00000000 */ nop -/* 0074C 80A244AC 45020004 */ bc1fl .L80A244C0 -/* 00750 80A244B0 461E003C */ c.lt.s $f0, $f30 -/* 00754 80A244B4 10000006 */ beq $zero, $zero, .L80A244D0 -/* 00758 80A244B8 E63C0004 */ swc1 $f28, 0x0004($s1) ## 00000004 -/* 0075C 80A244BC 461E003C */ c.lt.s $f0, $f30 -.L80A244C0: -/* 00760 80A244C0 00000000 */ nop -/* 00764 80A244C4 45020003 */ bc1fl .L80A244D4 -/* 00768 80A244C8 C6200008 */ lwc1 $f0, 0x0008($s1) ## 00000008 -/* 0076C 80A244CC E63E0004 */ swc1 $f30, 0x0004($s1) ## 00000004 -.L80A244D0: -/* 00770 80A244D0 C6200008 */ lwc1 $f0, 0x0008($s1) ## 00000008 -.L80A244D4: -/* 00774 80A244D4 4600E03C */ c.lt.s $f28, $f0 -/* 00778 80A244D8 00000000 */ nop -/* 0077C 80A244DC 45020004 */ bc1fl .L80A244F0 -/* 00780 80A244E0 461E003C */ c.lt.s $f0, $f30 -/* 00784 80A244E4 10000006 */ beq $zero, $zero, .L80A24500 -/* 00788 80A244E8 E63C0008 */ swc1 $f28, 0x0008($s1) ## 00000008 -/* 0078C 80A244EC 461E003C */ c.lt.s $f0, $f30 -.L80A244F0: -/* 00790 80A244F0 00000000 */ nop -/* 00794 80A244F4 45020003 */ bc1fl .L80A24504 -/* 00798 80A244F8 C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000 -/* 0079C 80A244FC E63E0008 */ swc1 $f30, 0x0008($s1) ## 00000008 -.L80A24500: -/* 007A0 80A24500 C6100000 */ lwc1 $f16, 0x0000($s0) ## 00000000 -.L80A24504: -/* 007A4 80A24504 C6E40000 */ lwc1 $f4, 0x0000($s7) ## 00000000 -/* 007A8 80A24508 C6120008 */ lwc1 $f18, 0x0008($s0) ## 00000008 -/* 007AC 80A2450C C6E60008 */ lwc1 $f6, 0x0008($s7) ## 00000008 -/* 007B0 80A24510 46048381 */ sub.s $f14, $f16, $f4 -/* 007B4 80A24514 0C0341F5 */ jal Math_Atan2F - -/* 007B8 80A24518 46069301 */ sub.s $f12, $f18, $f6 -/* 007BC 80A2451C E6C0FFF8 */ swc1 $f0, -0x0008($s6) ## FFFFFFF8 -.L80A24520: -/* 007C0 80A24520 26940001 */ addiu $s4, $s4, 0x0001 ## $s4 = 00000001 -/* 007C4 80A24524 0014A400 */ sll $s4, $s4, 16 -/* 007C8 80A24528 0014A403 */ sra $s4, $s4, 16 -/* 007CC 80A2452C 2A81000C */ slti $at, $s4, 0x000C -/* 007D0 80A24530 2610000C */ addiu $s0, $s0, 0x000C ## $s0 = 0000000C -/* 007D4 80A24534 2631000C */ addiu $s1, $s1, 0x000C ## $s1 = 0000000C -/* 007D8 80A24538 26D6000C */ addiu $s6, $s6, 0x000C ## $s6 = 0000000C -/* 007DC 80A2453C 1420FEF9 */ bne $at, $zero, .L80A24124 -/* 007E0 80A24540 26F7000C */ addiu $s7, $s7, 0x000C ## $s7 = 0000000C -/* 007E4 80A24544 AFB700F0 */ sw $s7, 0x00F0($sp) -/* 007E8 80A24548 AFB100F8 */ sw $s1, 0x00F8($sp) -/* 007EC 80A2454C C6C8007C */ lwc1 $f8, 0x007C($s6) ## 00000088 -/* 007F0 80A24550 C6CA0078 */ lwc1 $f10, 0x0078($s6) ## 00000084 -/* 007F4 80A24554 E6C80088 */ swc1 $f8, 0x0088($s6) ## 00000094 -/* 007F8 80A24558 E6CA0084 */ swc1 $f10, 0x0084($s6) ## 00000090 -/* 007FC 80A2455C 8FBF006C */ lw $ra, 0x006C($sp) -/* 00800 80A24560 8FBE0068 */ lw $s8, 0x0068($sp) -/* 00804 80A24564 8FB70064 */ lw $s7, 0x0064($sp) -/* 00808 80A24568 8FB60060 */ lw $s6, 0x0060($sp) -/* 0080C 80A2456C 8FB5005C */ lw $s5, 0x005C($sp) -/* 00810 80A24570 8FB40058 */ lw $s4, 0x0058($sp) -/* 00814 80A24574 8FB30054 */ lw $s3, 0x0054($sp) -/* 00818 80A24578 8FB20050 */ lw $s2, 0x0050($sp) -/* 0081C 80A2457C 8FB1004C */ lw $s1, 0x004C($sp) -/* 00820 80A24580 8FB00048 */ lw $s0, 0x0048($sp) -/* 00824 80A24584 D7BE0040 */ ldc1 $f30, 0x0040($sp) -/* 00828 80A24588 D7BC0038 */ ldc1 $f28, 0x0038($sp) -/* 0082C 80A2458C D7BA0030 */ ldc1 $f26, 0x0030($sp) -/* 00830 80A24590 D7B80028 */ ldc1 $f24, 0x0028($sp) -/* 00834 80A24594 D7B60020 */ ldc1 $f22, 0x0020($sp) -/* 00838 80A24598 D7B40018 */ ldc1 $f20, 0x0018($sp) -/* 0083C 80A2459C 03E00008 */ jr $ra -/* 00840 80A245A0 27BD00E0 */ addiu $sp, $sp, 0x00E0 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A245A4.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A245A4.s deleted file mode 100644 index 66cfe9666e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A245A4.s +++ /dev/null @@ -1,142 +0,0 @@ -glabel func_80A245A4 -/* 00844 80A245A4 27BDFF88 */ addiu $sp, $sp, 0xFF88 ## $sp = FFFFFF88 -/* 00848 80A245A8 AFBF003C */ sw $ra, 0x003C($sp) -/* 0084C 80A245AC AFBE0038 */ sw $s8, 0x0038($sp) -/* 00850 80A245B0 AFB70034 */ sw $s7, 0x0034($sp) -/* 00854 80A245B4 AFB60030 */ sw $s6, 0x0030($sp) -/* 00858 80A245B8 AFB5002C */ sw $s5, 0x002C($sp) -/* 0085C 80A245BC AFB40028 */ sw $s4, 0x0028($sp) -/* 00860 80A245C0 AFB30024 */ sw $s3, 0x0024($sp) -/* 00864 80A245C4 AFB20020 */ sw $s2, 0x0020($sp) -/* 00868 80A245C8 AFB1001C */ sw $s1, 0x001C($sp) -/* 0086C 80A245CC AFB00018 */ sw $s0, 0x0018($sp) -/* 00870 80A245D0 908E1706 */ lbu $t6, 0x1706($a0) ## 00001706 -/* 00874 80A245D4 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00 -/* 00878 80A245D8 2495014C */ addiu $s5, $a0, 0x014C ## $s5 = 0000014C -/* 0087C 80A245DC 31CF0001 */ andi $t7, $t6, 0x0001 ## $t7 = 00000000 -/* 00880 80A245E0 11E00011 */ beq $t7, $zero, .L80A24628 -/* 00884 80A245E4 27BE004C */ addiu $s8, $sp, 0x004C ## $s8 = FFFFFFD4 -/* 00888 80A245E8 3C0380A2 */ lui $v1, %hi(D_80A26778) ## $v1 = 80A20000 -/* 0088C 80A245EC 24636778 */ addiu $v1, $v1, %lo(D_80A26778) ## $v1 = 80A26778 -/* 00890 80A245F0 0003C100 */ sll $t8, $v1, 4 -/* 00894 80A245F4 0018CF02 */ srl $t9, $t8, 28 -/* 00898 80A245F8 00194080 */ sll $t0, $t9, 2 -/* 0089C 80A245FC 3C098016 */ lui $t1, %hi(gSegments) -/* 008A0 80A24600 01284821 */ addu $t1, $t1, $t0 -/* 008A4 80A24604 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000 -/* 008A8 80A24608 8D296FA8 */ lw $t1, %lo(gSegments)($t1) -/* 008AC 80A2460C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF -/* 008B0 80A24610 00615024 */ and $t2, $v1, $at -/* 008B4 80A24614 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 008B8 80A24618 012A1021 */ addu $v0, $t1, $t2 -/* 008BC 80A2461C 00411021 */ addu $v0, $v0, $at -/* 008C0 80A24620 10000010 */ beq $zero, $zero, .L80A24664 -/* 008C4 80A24624 AFA2006C */ sw $v0, 0x006C($sp) -.L80A24628: -/* 008C8 80A24628 3C0280A2 */ lui $v0, %hi(D_80A27578) ## $v0 = 80A20000 -/* 008CC 80A2462C 24427578 */ addiu $v0, $v0, %lo(D_80A27578) ## $v0 = 80A27578 -/* 008D0 80A24630 00025900 */ sll $t3, $v0, 4 -/* 008D4 80A24634 000B6702 */ srl $t4, $t3, 28 -/* 008D8 80A24638 000C6880 */ sll $t5, $t4, 2 -/* 008DC 80A2463C 3C0E8016 */ lui $t6, %hi(gSegments) -/* 008E0 80A24640 01CD7021 */ addu $t6, $t6, $t5 -/* 008E4 80A24644 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000 -/* 008E8 80A24648 8DCE6FA8 */ lw $t6, %lo(gSegments)($t6) -/* 008EC 80A2464C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF -/* 008F0 80A24650 00417824 */ and $t7, $v0, $at -/* 008F4 80A24654 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 008F8 80A24658 01CFC021 */ addu $t8, $t6, $t7 -/* 008FC 80A2465C 0301C821 */ addu $t9, $t8, $at -/* 00900 80A24660 AFB9006C */ sw $t9, 0x006C($sp) -.L80A24664: -/* 00904 80A24664 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000 -/* 00908 80A24668 44812000 */ mtc1 $at, $f4 ## $f4 = 30.00 -/* 0090C 80A2466C E7A00058 */ swc1 $f0, 0x0058($sp) -/* 00910 80A24670 E7A00060 */ swc1 $f0, 0x0060($sp) -/* 00914 80A24674 A7A00076 */ sh $zero, 0x0076($sp) -/* 00918 80A24678 27B70058 */ addiu $s7, $sp, 0x0058 ## $s7 = FFFFFFE0 -/* 0091C 80A2467C 2416000C */ addiu $s6, $zero, 0x000C ## $s6 = 0000000C -/* 00920 80A24680 E7A4005C */ swc1 $f4, 0x005C($sp) -.L80A24684: -/* 00924 80A24684 87A30076 */ lh $v1, 0x0076($sp) -/* 00928 80A24688 3C0980A2 */ lui $t1, %hi(D_80A24E4C) ## $t1 = 80A20000 -/* 0092C 80A2468C 25294E4C */ addiu $t1, $t1, %lo(D_80A24E4C) ## $t1 = 80A24E4C -/* 00930 80A24690 00034040 */ sll $t0, $v1, 1 -/* 00934 80A24694 0109A021 */ addu $s4, $t0, $t1 -/* 00938 80A24698 00009025 */ or $s2, $zero, $zero ## $s2 = 00000000 -/* 0093C 80A2469C 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000 -.L80A246A0: -/* 00940 80A246A0 02560019 */ multu $s2, $s6 -/* 00944 80A246A4 00135040 */ sll $t2, $s3, 1 -/* 00948 80A246A8 028A5821 */ addu $t3, $s4, $t2 -/* 0094C 80A246AC 956C0000 */ lhu $t4, 0x0000($t3) ## 00000000 -/* 00950 80A246B0 8FA2006C */ lw $v0, 0x006C($sp) -/* 00954 80A246B4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00958 80A246B8 000C6900 */ sll $t5, $t4, 4 -/* 0095C 80A246BC 01A28021 */ addu $s0, $t5, $v0 -/* 00960 80A246C0 00007012 */ mflo $t6 -/* 00964 80A246C4 02AE8821 */ addu $s1, $s5, $t6 -/* 00968 80A246C8 C626000C */ lwc1 $f6, 0x000C($s1) ## 0000000C -/* 0096C 80A246CC 4600320D */ trunc.w.s $f8, $f6 -/* 00970 80A246D0 44184000 */ mfc1 $t8, $f8 -/* 00974 80A246D4 00000000 */ nop -/* 00978 80A246D8 A6180000 */ sh $t8, 0x0000($s0) ## 00000000 -/* 0097C 80A246DC C62A0010 */ lwc1 $f10, 0x0010($s1) ## 00000010 -/* 00980 80A246E0 4600540D */ trunc.w.s $f16, $f10 -/* 00984 80A246E4 44088000 */ mfc1 $t0, $f16 -/* 00988 80A246E8 00000000 */ nop -/* 0098C 80A246EC A6080002 */ sh $t0, 0x0002($s0) ## 00000002 -/* 00990 80A246F0 C6320014 */ lwc1 $f18, 0x0014($s1) ## 00000014 -/* 00994 80A246F4 4600910D */ trunc.w.s $f4, $f18 -/* 00998 80A246F8 440A2000 */ mfc1 $t2, $f4 -/* 0099C 80A246FC 00000000 */ nop -/* 009A0 80A24700 A60A0004 */ sh $t2, 0x0004($s0) ## 00000004 -/* 009A4 80A24704 0C034348 */ jal Matrix_RotateY -/* 009A8 80A24708 C62C00A0 */ lwc1 $f12, 0x00A0($s1) ## 000000A0 -/* 009AC 80A2470C C62C009C */ lwc1 $f12, 0x009C($s1) ## 0000009C -/* 009B0 80A24710 0C0342DC */ jal Matrix_RotateX -/* 009B4 80A24714 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001 -/* 009B8 80A24718 02E02025 */ or $a0, $s7, $zero ## $a0 = FFFFFFE0 -/* 009BC 80A2471C 0C0346BD */ jal Matrix_MultVec3f -/* 009C0 80A24720 03C02825 */ or $a1, $s8, $zero ## $a1 = FFFFFFD4 -/* 009C4 80A24724 C7A6004C */ lwc1 $f6, 0x004C($sp) -/* 009C8 80A24728 26520001 */ addiu $s2, $s2, 0x0001 ## $s2 = 00000001 -/* 009CC 80A2472C 00129400 */ sll $s2, $s2, 16 -/* 009D0 80A24730 4600320D */ trunc.w.s $f8, $f6 -/* 009D4 80A24734 00129403 */ sra $s2, $s2, 16 -/* 009D8 80A24738 2673000C */ addiu $s3, $s3, 0x000C ## $s3 = 0000000C -/* 009DC 80A2473C 00139C00 */ sll $s3, $s3, 16 -/* 009E0 80A24740 440C4000 */ mfc1 $t4, $f8 -/* 009E4 80A24744 2A41000C */ slti $at, $s2, 0x000C -/* 009E8 80A24748 00139C03 */ sra $s3, $s3, 16 -/* 009EC 80A2474C A20C000C */ sb $t4, 0x000C($s0) ## 0000000C -/* 009F0 80A24750 C7AA0050 */ lwc1 $f10, 0x0050($sp) -/* 009F4 80A24754 4600540D */ trunc.w.s $f16, $f10 -/* 009F8 80A24758 440E8000 */ mfc1 $t6, $f16 -/* 009FC 80A2475C 00000000 */ nop -/* 00A00 80A24760 A20E000D */ sb $t6, 0x000D($s0) ## 0000000D -/* 00A04 80A24764 C7B20054 */ lwc1 $f18, 0x0054($sp) -/* 00A08 80A24768 4600910D */ trunc.w.s $f4, $f18 -/* 00A0C 80A2476C 44182000 */ mfc1 $t8, $f4 -/* 00A10 80A24770 1420FFCB */ bne $at, $zero, .L80A246A0 -/* 00A14 80A24774 A218000E */ sb $t8, 0x000E($s0) ## 0000000E -/* 00A18 80A24778 87B90076 */ lh $t9, 0x0076($sp) -/* 00A1C 80A2477C 26B501C8 */ addiu $s5, $s5, 0x01C8 ## $s5 = 00000314 -/* 00A20 80A24780 27280001 */ addiu $t0, $t9, 0x0001 ## $t0 = 00000001 -/* 00A24 80A24784 00084C00 */ sll $t1, $t0, 16 -/* 00A28 80A24788 00095403 */ sra $t2, $t1, 16 -/* 00A2C 80A2478C 2941000C */ slti $at, $t2, 0x000C -/* 00A30 80A24790 1420FFBC */ bne $at, $zero, .L80A24684 -/* 00A34 80A24794 A7A80076 */ sh $t0, 0x0076($sp) -/* 00A38 80A24798 8FBF003C */ lw $ra, 0x003C($sp) -/* 00A3C 80A2479C 8FB00018 */ lw $s0, 0x0018($sp) -/* 00A40 80A247A0 8FB1001C */ lw $s1, 0x001C($sp) -/* 00A44 80A247A4 8FB20020 */ lw $s2, 0x0020($sp) -/* 00A48 80A247A8 8FB30024 */ lw $s3, 0x0024($sp) -/* 00A4C 80A247AC 8FB40028 */ lw $s4, 0x0028($sp) -/* 00A50 80A247B0 8FB5002C */ lw $s5, 0x002C($sp) -/* 00A54 80A247B4 8FB60030 */ lw $s6, 0x0030($sp) -/* 00A58 80A247B8 8FB70034 */ lw $s7, 0x0034($sp) -/* 00A5C 80A247BC 8FBE0038 */ lw $s8, 0x0038($sp) -/* 00A60 80A247C0 03E00008 */ jr $ra -/* 00A64 80A247C4 27BD0078 */ addiu $sp, $sp, 0x0078 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A24884.s b/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A24884.s deleted file mode 100644 index b009eef8b4..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A24884.s +++ /dev/null @@ -1,99 +0,0 @@ -.rdata -glabel D_80A27E80 - .asciz "../z_en_ganon_mant.c" - .balign 4 - -glabel D_80A27E98 - .asciz "../z_en_ganon_mant.c" - .balign 4 - -glabel D_80A27EB0 - .asciz "../z_en_ganon_mant.c" - .balign 4 - -.text -glabel func_80A24884 -/* 00B24 80A24884 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0 -/* 00B28 80A24888 AFBF001C */ sw $ra, 0x001C($sp) -/* 00B2C 80A2488C AFB00018 */ sw $s0, 0x0018($sp) -/* 00B30 80A24890 AFA40050 */ sw $a0, 0x0050($sp) -/* 00B34 80A24894 AFA50054 */ sw $a1, 0x0054($sp) -/* 00B38 80A24898 8C850000 */ lw $a1, 0x0000($a0) ## 00000000 -/* 00B3C 80A2489C 3C0680A2 */ lui $a2, %hi(D_80A27E80) ## $a2 = 80A20000 -/* 00B40 80A248A0 24C67E80 */ addiu $a2, $a2, %lo(D_80A27E80) ## $a2 = 80A27E80 -/* 00B44 80A248A4 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFE8 -/* 00B48 80A248A8 24070234 */ addiu $a3, $zero, 0x0234 ## $a3 = 00000234 -/* 00B4C 80A248AC 0C031AB1 */ jal Graph_OpenDisps -/* 00B50 80A248B0 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 00B54 80A248B4 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00 -/* 00B58 80A248B8 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000 -/* 00B5C 80A248BC 44066000 */ mfc1 $a2, $f12 -/* 00B60 80A248C0 0C034261 */ jal Matrix_Translate -/* 00B64 80A248C4 46006386 */ mov.s $f14, $f12 -/* 00B68 80A248C8 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00B6C 80A248CC 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000 -/* 00B70 80A248D0 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003 -/* 00B74 80A248D4 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008 -/* 00B78 80A248D8 AE0F02C0 */ sw $t7, 0x02C0($s0) ## 000002C0 -/* 00B7C 80A248DC AC580000 */ sw $t8, 0x0000($v0) ## 00000000 -/* 00B80 80A248E0 8FB90050 */ lw $t9, 0x0050($sp) -/* 00B84 80A248E4 3C0580A2 */ lui $a1, %hi(D_80A27E98) ## $a1 = 80A20000 -/* 00B88 80A248E8 24A57E98 */ addiu $a1, $a1, %lo(D_80A27E98) ## $a1 = 80A27E98 -/* 00B8C 80A248EC 8F240000 */ lw $a0, 0x0000($t9) ## 00000000 -/* 00B90 80A248F0 2406023C */ addiu $a2, $zero, 0x023C ## $a2 = 0000023C -/* 00B94 80A248F4 0C0346A2 */ jal Matrix_NewMtx -/* 00B98 80A248F8 AFA20034 */ sw $v0, 0x0034($sp) -/* 00B9C 80A248FC 8FA30034 */ lw $v1, 0x0034($sp) -/* 00BA0 80A24900 3C0980A2 */ lui $t1, %hi(D_80A27078) ## $t1 = 80A20000 -/* 00BA4 80A24904 25297078 */ addiu $t1, $t1, %lo(D_80A27078) ## $t1 = 80A27078 -/* 00BA8 80A24908 AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 00BAC 80A2490C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00BB0 80A24910 3C04DE00 */ lui $a0, 0xDE00 ## $a0 = DE000000 -/* 00BB4 80A24914 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000 -/* 00BB8 80A24918 24480008 */ addiu $t0, $v0, 0x0008 ## $t0 = 00000008 -/* 00BBC 80A2491C AE0802C0 */ sw $t0, 0x02C0($s0) ## 000002C0 -/* 00BC0 80A24920 AC490004 */ sw $t1, 0x0004($v0) ## 00000004 -/* 00BC4 80A24924 AC440000 */ sw $a0, 0x0000($v0) ## 00000000 -/* 00BC8 80A24928 8FAA0054 */ lw $t2, 0x0054($sp) -/* 00BCC 80A2492C 3C0EDB06 */ lui $t6, 0xDB06 ## $t6 = DB060000 -/* 00BD0 80A24930 37390030 */ ori $t9, $t9, 0x0030 ## $t9 = DB060030 -/* 00BD4 80A24934 914B1706 */ lbu $t3, 0x1706($t2) ## 00001706 -/* 00BD8 80A24938 3C0A80A2 */ lui $t2, %hi(D_80A27128) ## $t2 = 80A20000 -/* 00BDC 80A2493C 254A7128 */ addiu $t2, $t2, %lo(D_80A27128) ## $t2 = 80A27128 -/* 00BE0 80A24940 316C0001 */ andi $t4, $t3, 0x0001 ## $t4 = 00000000 -/* 00BE4 80A24944 1180000A */ beq $t4, $zero, .L80A24970 -/* 00BE8 80A24948 3C0680A2 */ lui $a2, %hi(D_80A27EB0) ## $a2 = 80A20000 -/* 00BEC 80A2494C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00BF0 80A24950 3C0F80A2 */ lui $t7, %hi(D_80A26778) ## $t7 = 80A20000 -/* 00BF4 80A24954 25EF6778 */ addiu $t7, $t7, %lo(D_80A26778) ## $t7 = 80A26778 -/* 00BF8 80A24958 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008 -/* 00BFC 80A2495C AE0D02C0 */ sw $t5, 0x02C0($s0) ## 000002C0 -/* 00C00 80A24960 35CE0030 */ ori $t6, $t6, 0x0030 ## $t6 = DB060030 -/* 00C04 80A24964 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000 -/* 00C08 80A24968 10000008 */ beq $zero, $zero, .L80A2498C -/* 00C0C 80A2496C AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004 -.L80A24970: -/* 00C10 80A24970 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00C14 80A24974 3C0880A2 */ lui $t0, %hi(D_80A27578) ## $t0 = 80A20000 -/* 00C18 80A24978 25087578 */ addiu $t0, $t0, %lo(D_80A27578) ## $t0 = 80A27578 -/* 00C1C 80A2497C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008 -/* 00C20 80A24980 AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0 -/* 00C24 80A24984 AC480004 */ sw $t0, 0x0004($v0) ## 00000004 -/* 00C28 80A24988 AC590000 */ sw $t9, 0x0000($v0) ## 00000000 -.L80A2498C: -/* 00C2C 80A2498C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 00C30 80A24990 24C67EB0 */ addiu $a2, $a2, %lo(D_80A27EB0) ## $a2 = 80A27EB0 -/* 00C34 80A24994 24070248 */ addiu $a3, $zero, 0x0248 ## $a3 = 00000248 -/* 00C38 80A24998 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008 -/* 00C3C 80A2499C AE0902C0 */ sw $t1, 0x02C0($s0) ## 000002C0 -/* 00C40 80A249A0 AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004 -/* 00C44 80A249A4 AC440000 */ sw $a0, 0x0000($v0) ## 00000000 -/* 00C48 80A249A8 8FAB0050 */ lw $t3, 0x0050($sp) -/* 00C4C 80A249AC 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFE8 -/* 00C50 80A249B0 0C031AD5 */ jal Graph_CloseDisps -/* 00C54 80A249B4 8D650000 */ lw $a1, 0x0000($t3) ## 00000000 -/* 00C58 80A249B8 8FBF001C */ lw $ra, 0x001C($sp) -/* 00C5C 80A249BC 8FB00018 */ lw $s0, 0x0018($sp) -/* 00C60 80A249C0 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000 -/* 00C64 80A249C4 03E00008 */ jr $ra -/* 00C68 80A249C8 00000000 */ nop diff --git a/data/overlays/actors/z_en_ganon_mant.data.s b/data/overlays/actors/z_en_ganon_mant.data.s deleted file mode 100644 index bb979c6c7e..0000000000 --- a/data/overlays/actors/z_en_ganon_mant.data.s +++ /dev/null @@ -1,57 +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 .data - -.balign 16 - -glabel En_Ganon_Mant_InitVars - .word 0x016F0900, 0x00000030, 0x00010000, 0x00001708 -.word EnGanonMant_Init -.word EnGanonMant_Destroy -.word EnGanonMant_Update -.word EnGanonMant_Draw -glabel D_80A24D20 - .word 0x00000000, 0x00000001, 0x00010001, 0x00010001, 0x00000000 -glabel D_80A24D34 - .word 0x00000000, 0x00000000, 0x00010001, 0x00020002, 0x00020001, 0x00010000, 0x00000000, 0x00000000 -glabel D_80A24D54 - .word 0x00000000, 0x00000000, 0x00000000, 0x00000000 -glabel D_80A24D64 - .word D_80A24D20 -.word 0x000A0000 -.word D_80A24D20 -.word 0x000A0000 -.word D_80A24D34 -.word 0x000F0000 -.word D_80A24D54 -.word 0x00070000 -glabel D_80A24D84 - .word 0x00000000, 0x3F800000, 0x3F000000, 0x3E800000, 0x3DCCCCCD, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 -glabel D_80A24DD0 - .word 0x00000000, 0x3F800000, 0x3F666666, 0x3F4CCCCD, 0x3F333333, 0x3F19999A, 0x3F000000, 0x3ECCCCCD, 0x3E99999A, 0x3E4CCCCD, 0x3DCCCCCD, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 -glabel D_80A24E18 - .word 0x00000000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F8CCCCD, 0x3F99999A, 0x3FA66666, 0x3FB33333, 0x3FC00000, 0x3FCCCCCD, 0x3FD9999A, 0x3FE66666 -glabel D_80A24E4C - .word 0x000B0017, 0x0023002F, 0x003B0047, 0x0053005F, 0x006B0077, 0x0083008F, 0x000A0016, 0x0022002E, 0x003A0046, 0x0052005E, 0x006A0076, 0x0082008E, 0x00090015, 0x0021002D, 0x00390045, 0x0051005D, 0x00690075, 0x0081008D, 0x00080014, 0x0020002C, 0x00380044, 0x0050005C, 0x00680074, 0x0080008C, 0x00070013, 0x001F002B, 0x00370043, 0x004F005B, 0x00670073, 0x007F008B, 0x00060012, 0x001E002A, 0x00360042, 0x004E005A, 0x00660072, 0x007E008A, 0x00050011, 0x001D0029, 0x00350041, 0x004D0059, 0x00650071, 0x007D0089, 0x00040010, 0x001C0028, 0x00340040, 0x004C0058, 0x00640070, 0x007C0088, 0x0003000F, 0x001B0027, 0x0033003F, 0x004B0057, 0x0063006F, 0x007B0087, 0x0002000E, 0x001A0026, 0x0032003E, 0x004A0056, 0x0062006E, 0x007A0086, 0x0001000D, 0x00190025, 0x0031003D, 0x00490055, 0x0061006D, 0x00790085, 0x0000000C, 0x00180024, 0x0030003C, 0x00480054, 0x0060006C, 0x00780084, 0x00000000, 0x00000000, 0x00000000 -glabel D_80A24F78 - .word 0x7001A801, 0x78014801, 0x48017001, 0x90018801, 0x88017801, 0x50015001, 0x58016001, 0x68018801, 0x70015801, 0x48014001, 0x38014001, 0x60018001, 0x9001A801, 0x88015001, 0x40014001, 0x48015801, 0x7001A801, 0x78015801, 0x50016001, 0x90019001, 0x90018001, 0x58015801, 0x58015801, 0x60019001, 0x78016801, 0x48014001, 0x40014001, 0x68018801, 0x9801A001, 0x98016001, 0x40014001, 0x48015801, 0x7001B001, 0x98017001, 0x50016001, 0x98019001, 0x90018001, 0x58015801, 0x58016001, 0x68018801, 0x80017001, 0x50014801, 0x40014801, 0x58018001, 0x9801A001, 0xA8016801, 0x40014001, 0x48016001, 0x6801A801, 0xA0017001, 0x48016001, 0x90018801, 0x88017801, 0x60015801, 0x58016801, 0x78018001, 0x80017801, 0x60015001, 0x40014801, 0x58016001, 0x80019801, 0xA0017801, 0x48014801, 0x48016001, 0x7001A801, 0x98018801, 0x50015801, 0x78018801, 0x88017801, 0x60015801, 0x60016801, 0x80018001, 0x80017801, 0x68015001, 0x48015001, 0x58016001, 0x80019801, 0x98018001, 0x50014801, 0x50016001, 0x7001A001, 0x90018801, 0x60016001, 0x78018801, 0x88017801, 0x60015801, 0x60016801, 0x78018001, 0x88018001, 0x68015801, 0x48015001, 0x58016801, 0x68018801, 0x98019001, 0x50015001, 0x50016001, 0x70019001, 0x80017801, 0x68016001, 0x78018801, 0x80017001, 0x60016001, 0x60017801, 0x80018001, 0x88018801, 0x78016001, 0x48015001, 0x60017001, 0x70018801, 0x98019801, 0x58015001, 0x58016801, 0x70018001, 0x78016801, 0x68016801, 0x78018801, 0x80016801, 0x60016001, 0x60017801, 0x80017801, 0x88018801, 0x80016801, 0x50015801, 0x68017001, 0x70018801, 0x90019801, 0x58015001, 0x58017001, 0x70017801, 0xBB417001, 0x70016801, 0x80018001, 0x78016801, 0x60016801, 0x68017001, 0x78017801, 0x80018801, 0x88017001, 0x50015801, 0x68017001, 0x70018801, 0x90019801, 0x60015001, 0x60017801, 0x70017001, 0xFE43BB41, 0x78017801, 0x80017801, 0x70017001, 0x60016001, 0x68017001, 0x78017801, 0x78018001, 0x90017001, 0x58016001, 0x68017001, 0x70018801, 0x90019801, 0x60015001, 0x60017001, 0x70017001, 0xFE43FE43, 0x70018801, 0x80017801, 0x70017001, 0x60016001, 0x68017001, 0x78017801, 0x78018001, 0x90017801, 0x60016001, 0x68017001, 0x70018801, 0x90019801, 0x68015801, 0x68017001, 0x70017001, 0xFE437001, 0x70018801, 0x80017001, 0x70017001, 0x68016001, 0x68017001, 0x70017801, 0x78018001, 0x90017801, 0x60016801, 0x68017001, 0x70018801, 0x88019001, 0x68015801, 0x68017001, 0x70017001, 0x70017001, 0x78018001, 0x78017001, 0x70016801, 0x68016001, 0x68017001, 0x70017801, 0x78018801, 0x90017801, 0x60016801, 0x68017001, 0x70017801, 0x88019001, 0x68015801, 0x68017001, 0x70017001, 0xFFE17001, 0x78017801, 0x78017001, 0x70016801, 0x68016801, 0x68017001, 0x70017001, 0x78018801, 0x88017801, 0x60016801, 0x68017001, 0x70017801, 0x80019001, 0x68015801, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x68017001, 0x70017001, 0x70017801, 0x80018801, 0x88017801, 0x68016801, 0x68017001, 0x78017001, 0x80019001, 0x68016001, 0x70017001, 0x70017001, 0xFFF77001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017801, 0x80018801, 0x80017801, 0x68016801, 0x70017001, 0x78017001, 0x80018801, 0x68016001, 0x70017001, 0x70017001, 0xFFDB7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017801, 0x80018001, 0x80017001, 0x68017001, 0x70017801, 0x78017001, 0x80018801, 0x68016801, 0x70017001, 0x70017001, 0x81037001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017801, 0x80018001, 0x78017001, 0x68017001, 0x78018001, 0x80017001, 0x80018001, 0x68016801, 0x70017001, 0x70017001, 0xFF8D7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x80018001, 0x80017001, 0x70017001, 0x78018001, 0x80017001, 0x78018001, 0x68016801, 0x70017001, 0x70017001, 0xFDC17001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x80018001, 0x78017001, 0x70017001, 0x78018001, 0x80017001, 0x78017801, 0x68017001, 0x70017001, 0x70017001, 0xFDC18901, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x80018001, 0x78017001, 0x70017001, 0x78017801, 0x80017001, 0x78017801, 0x68017001, 0x70017001, 0x70017001, 0xFDC1A201, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x78017801, 0x70017001, 0x70017001, 0x78017801, 0x80017001, 0x78017801, 0x68017001, 0x70017001, 0x70017001, 0xFDC1DC41, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x78017801, 0x78017801, 0x70017001, 0x70017001, 0x78017801, 0x68017001, 0x70017001, 0x70017001, 0xDC41FF8B, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x78017801, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xA201FE85, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017801, 0x78017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017841, 0x8081FE43, 0xCB817001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x78017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xA2D1FFFF, 0x70017001, 0xBAC1FDC1, 0xFF8B7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE01F611, 0x70017001, 0xFF8B7001, 0xFDC17001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BC1F, 0xFE01FE01, 0x70017001, 0xFE85FDC1, 0xBAC17001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001FFFF, 0xFE01FE01, 0x70017001, 0xFE437001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xAAC3FF49, 0xFE01FE01, 0x70017001, 0xFF8BF541, 0x89417001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017881, 0xDC85FE47, 0xFE8BFE01, 0x70017001, 0xE4C17001, 0xFF8B7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BB01, 0xFE01FE01, 0x70017001, 0x8941E4C1, 0xF6457001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BC1F, 0xFFFFFF8B, 0xDD897001, 0xBB01FE01, 0x70017001, 0x70017001, 0xED837001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xBBC5FE01, 0xFE01FE01, 0xFF8BBBC5, 0x70017001, 0x70017001, 0x7881BB81, 0xC4017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE01BB01, 0x7001BB01, 0xFE01FF8B, 0xFF8B7001, 0x70017001, 0x9A817001, 0xFF8B7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001FE01, 0xFE01FF8B, 0x70017001, 0xFF8B8A01, 0x78817001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001FF8B, 0xFFFFFFFF, 0x7001BB01, 0xFE01FE01, 0x70017001, 0xCC017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x700180C1, 0xDD89FF8B, 0xFFFFDD89, 0x70017001, 0x70017001, 0xFF8BFE01, 0xFE01FE01, 0xFFFF7001, 0xFE01FE01, 0x70017001, 0xCC01FF8B, 0x79017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BB01, 0xFE01FE01, 0xFE01FE01, 0xFF8B7001, 0x70017001, 0xFE01FE01, 0xFE01FE01, 0xFE017001, 0xFE01FE01, 0x70017001, 0xBB817001, 0x82017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x9181FE01, 0xB381A281, 0xAB01CC81, 0xFE01FFFF, 0x70017001, 0x7001FE01, 0xFE01FE01, 0x7001BC1F, 0xFE01FE01, 0x70017001, 0x78819241, 0xFF8B7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xCBC1ED41, 0xB2817001, 0x70017001, 0xDC81FE01, 0xBB017001, 0x70017001, 0x70017001, 0x7001FFFF, 0xFE01FE01, 0x70017001, 0x70017001, 0xDCC17001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE01DC81, 0x7001FF8B, 0xFFFF91C3, 0x7001EE07, 0xFFFF7001, 0xFF8BDD89, 0x7001BBC5, 0xFF8BFE01, 0xDC817001, 0x70017001, 0x8901E4C1, 0xFF8B7001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xBB01FE01, 0xDC817001, 0xFE01FF8B, 0x7001CC03, 0xFF8BBBC5, 0x7001FF8B, 0xFFFFFFFF, 0xFE01BB01, 0x70017001, 0x70017001, 0xD4817001, 0xD4817001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001DC81, 0xFE01FE01, 0xCC81BBC1, 0x70017001, 0xDD89FF8B, 0xBB017001, 0xED41FE01, 0xBB017001, 0x920FFFFF, 0x70017001, 0xCC41FF8B, 0x89417001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xC3C1BBC1, 0xC3C17001, 0x70017001, 0x7001DD47, 0xFE017001, 0x70017001, 0x700191C3, 0xFE91FF21, 0x70017001, 0x7001DC81, 0x70017001, 0x7001FF8B, 0xBBC57001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xBB01FE01, 0x70017001, 0x7001ED41, 0xFE4BFE8B, 0x70017001, 0xBB01F5C1, 0x7001DCC1, 0x700191C3, 0xFFFFBB41, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BB01, 0xFE017001, 0x7001A241, 0xFE87FF11, 0x70017001, 0xE541BB01, 0xDCC1FF8B, 0xBB417001, 0xFF8BFE43, 0x70017001, 0xBBC5FF8B, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xBB01FF8B, 0xFFFFBBC5, 0x70017001, 0xFE017001, 0xFECBFF99, 0x70017001, 0xFF8B7001, 0xFFFF7001, 0xFF8B7001, 0xEDC1BB41, 0x7001FFFF, 0xFF8BBBC5, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE01FE01, 0xBBC5FFFF, 0x7001BBC5, 0x70017001, 0xFF8FFFE1, 0x70017001, 0xFEC57001, 0xFE43BB41, 0x7001EEC5, 0xE4C17001, 0xBB41E4C1, 0xCC017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE01BB01, 0x7001FF8B, 0x7001FF8B, 0x7001FE01, 0xFFD3FFED, 0x70017001, 0xFF8BFDC1, 0x7001FE43, 0xFE437001, 0x700191C3, 0xFF8BBB41, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xBB01FE01, 0x7001C481, 0xA241FF8B, 0x70017001, 0xBC09BDC3, 0x70017001, 0xBBC5FF8B, 0xFFFFBB41, 0x70017001, 0x91C3FF8B, 0x91C37001, 0xBB41FFFF, 0xBB417001, 0x70017001, 0x70017001, 0x70017001, 0x7001DC81, 0x7001BB01, 0xDC81FE01, 0xFFD3BC09, 0xFE017001, 0x70017001, 0x7001BBC5, 0xFF8B7001, 0xFFFFFFFF, 0xFF8BBBC5, 0x7001FF8B, 0xEDC1EEC5, 0xEE47B303, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0xFE017001, 0xFE01FFD3, 0x7001FFFF, 0x70017001, 0xFFDD7001, 0xFF8B7001, 0xFF8BFF8B, 0xFD817001, 0x7001FE43, 0x70017001, 0x9181FE43, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x70017001, 0x7001BBC1, 0x7001FE01, 0xBBC1FFD3, 0x70017001, 0xFD817001, 0xFD817001, 0xFD81CC01, 0xB3417001, 0xFFFF7001, 0xFF8BBB41, 0x70017001, 0x70017001, 0x70017001, 0x7001EDC3, 0xFFFF7001, 0x70017001, 0x70017001, 0x7001BBC1, 0xDD01FFD3, 0x70017001, 0x7001BBC5, 0xCC01FFFF, 0x70017001, 0x7001BB41, 0xFE43FF8B, 0x7001FD81, 0x7001DD45, 0xFF8BD505, 0x7001FE83, 0x70017001, 0x70017001, 0xBB817001, 0xA241BBC1, 0x82017001, 0x7001BDDD, 0x70017001, 0xBBC5FFFF, 0x7001E4C1, 0xB341D601, 0xEF4DFFDD, 0x7001FD81, 0xCC017001, 0xFF8BFE01, 0xF5C3FEC9, 0xFF8B7001, 0xBB81EDC3, 0xFE83BB81, 0x7001FE83, 0xE5438A01, 0x7001BC17, 0xFFEDDC81, 0x70017001, 0xFF8BFD81, 0xFD81BBC5, 0x70017001, 0xBC09FD81, 0xFF8B7001, 0x7001FF8B, 0xFF8BBBC5, 0x7001AA41, 0xDD41CC01, 0x70017001, 0x70017001, 0xFE83BBC1, 0x8A018A01, 0xED41ED41, 0xFFD37001, 0x70017001, 0xB341CC01, 0xA3017001, 0xFD81FFD3, 0x7001BBC5, 0xE4C1CC01, 0xE4C1F605, 0xBBC57001, 0x70017001, 0x7001A283, 0xC3C3EE89, 0xFF8BFE83, 0xCC419241, 0x70017001, 0x8201CC01, 0xDC81FFD3, 0x70015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50017001, 0x70017001, 0x70017001, 0x70017001, 0x50015001, 0x50015001, 0x50015001, 0x70017001, 0x50015001, 0x5001ED41, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x80018001, 0x20012001, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0x18011801, 0xFC8181C1, 0x9A414841, 0xAAC158C1, 0xBB019241, 0xFDC181C1, 0xCB817141, 0xFC819241, 0xC34189C1, 0xFC8189C1, 0xDBC189C1, 0xFC817181, 0xDBC19241, 0xFE019A41, 0xC3419A41, 0xFC81AAC1, 0xFC816941, 0xFFC1E401, 0xFFEFE401, 0xFEC1E401, 0xFFC1E401, 0xFFC9E401, 0xFFEFE401, 0xFFEFE401, 0xFDC1CB81, 0xFF87E401, 0xFE41E401, 0xFF87E401, 0xFE41E401, 0xFFEFE401, 0xFF87E401, 0xFE41E401, 0xFFEFE401 -glabel D_80A25F78 - .word 0x58019001, 0x60014001, 0x30014801, 0x78017001, 0x70016001, 0x38013801, 0x40014001, 0x40017001, 0x60015001, 0x28012001, 0x20012801, 0x48017001, 0x80018001, 0x80014001, 0x20012001, 0x28014001, 0x48019001, 0x80015801, 0x30014001, 0x70017001, 0x68015801, 0x40014001, 0x40014801, 0x60016001, 0x60015801, 0x40013001, 0x28013001, 0x38014801, 0x68018001, 0x80015801, 0x30012801, 0x30014001, 0x50018001, 0x70016801, 0x40014001, 0x58016801, 0x68015801, 0x40013801, 0x48014801, 0x60016801, 0x68016001, 0x50013801, 0x28013001, 0x40014801, 0x50016801, 0x80017001, 0x38013001, 0x38014801, 0x50017001, 0x70015801, 0x48014801, 0x60016801, 0x60015001, 0x40014001, 0x48015801, 0x60016001, 0x68016801, 0x68014801, 0x30014001, 0x48015801, 0x50016801, 0x78017801, 0x40013001, 0x40015001, 0x50016801, 0x68015801, 0x58015801, 0x60016001, 0x58015001, 0x48014801, 0x48015801, 0x58015801, 0x60016801, 0x70015801, 0x38014001, 0x48015001, 0x58017001, 0x78017801, 0x48013801, 0x48015801, 0x50016001, 0x60015801, 0x50016801, 0x60015801, 0x50015001, 0x48014801, 0x50015801, 0x58015801, 0x60016801, 0x70015801, 0x48014801, 0x50015001, 0x58016801, 0x68017801, 0x48013801, 0x50015001, 0x50015801, 0x60015001, 0x58016001, 0x58015801, 0x50015001, 0x48014801, 0x50015001, 0x50015801, 0x60016801, 0x70015801, 0x48014801, 0x50015801, 0x58015801, 0x68017801, 0x48014001, 0x50015001, 0x50015801, 0x58015801, 0x58015801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x68016801, 0x68015801, 0x48015001, 0x50015001, 0x50015801, 0x60017001, 0x48014801, 0x50015001, 0x00004801, 0x58015801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x68016801, 0x60015801, 0x50015001, 0x58015001, 0x50015001, 0x60016001, 0x48014801, 0x50015001, 0x00005001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x60016801, 0x60015801, 0x50015801, 0x58015001, 0x50015001, 0x58016001, 0x48015001, 0x50015001, 0x00003001, 0x48015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x60016001, 0x58015801, 0x50015801, 0x58015001, 0x50015001, 0x58015801, 0x50015001, 0x50015001, 0x00000000, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x58015801, 0x58015801, 0x58015001, 0x50015801, 0x50015001, 0x50015001, 0x58015801, 0x50015001, 0x50015001, 0x00000000, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x58015801, 0x58015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x20001801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015801, 0x58015001, 0x50015801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50014801, 0x40004001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x58015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x38004801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50014801, 0x20004801, 0x50015001, 0x50015001, 0x50014801, 0x20013001, 0x30005001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50013001, 0x48015001, 0x50015001, 0x50015001, 0x50015001, 0x28002800, 0x50015001, 0x50015001, 0x50014001, 0x50010000, 0x18004800, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x38011000, 0x48015001, 0x50015001, 0x50015001, 0x50014001, 0x00000000, 0x00000000, 0x50015001, 0x50015001, 0x50013801, 0x38002801, 0x48015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x18001000, 0x48015001, 0x50015001, 0x50015001, 0x50013801, 0x00000000, 0x18003801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x48013801, 0x18005001, 0x50015001, 0x50015001, 0x50014001, 0x00000000, 0x10004001, 0x50015001, 0x50015001, 0x50015001, 0x18012800, 0x38014801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x48013801, 0x30001801, 0x50015001, 0x50015001, 0x50014000, 0x00000000, 0x00000800, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x40010800, 0x00005001, 0x50015001, 0x40013000, 0x18000000, 0x50015001, 0x50015001, 0x50014001, 0x00000000, 0x00000000, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x40000000, 0x00005001, 0x50015001, 0x38000000, 0x00003000, 0x48015001, 0x50015001, 0x50012801, 0x00000000, 0x00002001, 0x28015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x38010000, 0x00005001, 0x50015001, 0x40010800, 0x00003001, 0x40015001, 0x50015001, 0x50014001, 0x40010000, 0x28014001, 0x38014801, 0x48015001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x28010000, 0x00000000, 0x50015001, 0x38012000, 0x00000000, 0x38015001, 0x50015001, 0x48014000, 0x20014801, 0x38013001, 0x18012000, 0x10013801, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x10000000, 0x00000000, 0x48014801, 0x28011800, 0x00000000, 0x20015001, 0x50015001, 0x38011800, 0x18003001, 0x40014001, 0x18010000, 0x00005001, 0x50015001, 0x50015001, 0x50015001, 0x50015001, 0x00000000, 0x00000000, 0x30014001, 0x18000000, 0x00000000, 0x00003801, 0x50015001, 0x00000000, 0x00003801, 0x40014801, 0x00000000, 0x00000000, 0x50015001, 0x50014801, 0x00000000, 0x50010000, 0x00000000, 0x00000000, 0x18002801, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00003801, 0x48015001, 0x00000000, 0x00000000, 0x38015001, 0x50011001, 0x00000000, 0x50010000, 0x00000000, 0x00005000, 0x00000800, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002000, 0x48015001, 0x00000000, 0x00000000, 0x30014801, 0x50010000, 0x00000000, 0x00000000, 0x00000000, 0x50000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00005000, 0x00000000, 0x30013800, 0x00000000, 0x00000000, 0x20003801, 0x50010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001801, 0x08000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 -glabel D_80A26778 - .word 0x03E80000, 0x00000000, 0x00BA0878, 0x007800FF, 0x03E80000, 0x03E80000, 0x00BA0788, 0x007800FF, 0x03E80000, 0x07D00000, 0x00BA0697, 0x007800FF, 0x03E80000, 0x0BB80000, 0x00BA05A6, 0x007800FF, 0x03E80000, 0x0FA00000, 0x00BA04B5, 0x007800FF, 0x03E80000, 0x13880000, 0x00BA03C4, 0x007800FF, 0x03E80000, 0x17700000, 0x00BA02D3, 0x007800FF, 0x03E80000, 0x1B580000, 0x00BA01E2, 0x007800FF, 0x03E80000, 0x1F400000, 0x00BA00F1, 0x007800FF, 0x03E80000, 0x23280000, 0x00BA0000, 0x007800FF, 0x03E80000, 0x27100000, 0x00BAFF0F, 0x007800FF, 0x03E80000, 0x2AF80000, 0x00BAFE1E, 0x007800FF, 0x00000000, 0x00000000, 0x00000878, 0x007800FF, 0x00000000, 0x03E80000, 0x00000788, 0x007800FF, 0x00000000, 0x07D00000, 0x00000697, 0x007800FF, 0x00000000, 0x0BB80000, 0x000005A6, 0x007800FF, 0x00000000, 0x0FA00000, 0x000004B5, 0x007800FF, 0x00000000, 0x13880000, 0x000003C4, 0x007800FF, 0x00000000, 0x17700000, 0x000002D3, 0x007800FF, 0x00000000, 0x1B580000, 0x000001E2, 0x007800FF, 0x00000000, 0x1F400000, 0x000000F1, 0x007800FF, 0x00000000, 0x23280000, 0x00000000, 0x007800FF, 0x00000000, 0x27100000, 0x0000FF0F, 0x007800FF, 0x00000000, 0x2AF80000, 0x0000FE1E, 0x007800FF, 0x07D00000, 0x00000000, 0x01740878, 0x007800FF, 0x07D00000, 0x03E80000, 0x01740788, 0x007800FF, 0x07D00000, 0x07D00000, 0x01740697, 0x007800FF, 0x07D00000, 0x0BB80000, 0x017405A6, 0x007800FF, 0x07D00000, 0x0FA00000, 0x017404B5, 0x007800FF, 0x07D00000, 0x13880000, 0x017403C4, 0x007800FF, 0x07D00000, 0x17700000, 0x017402D3, 0x007800FF, 0x07D00000, 0x1B580000, 0x017401E2, 0x007800FF, 0x07D00000, 0x1F400000, 0x017400F1, 0x007800FF, 0x07D00000, 0x23280000, 0x01740000, 0x007800FF, 0x07D00000, 0x27100000, 0x0174FF0F, 0x007800FF, 0x07D00000, 0x2AF80000, 0x0174FE1E, 0x007800FF, 0x0BB80000, 0x00000000, 0x022F0878, 0x007800FF, 0x0BB80000, 0x03E80000, 0x022F0788, 0x007800FF, 0x0BB80000, 0x07D00000, 0x022F0697, 0x007800FF, 0x0BB80000, 0x0BB80000, 0x022F05A6, 0x007800FF, 0x0BB80000, 0x0FA00000, 0x022F04B5, 0x007800FF, 0x0BB80000, 0x13880000, 0x022F03C4, 0x007800FF, 0x0BB80000, 0x17700000, 0x022F02D3, 0x007800FF, 0x0BB80000, 0x1B580000, 0x022F01E2, 0x007800FF, 0x0BB80000, 0x1F400000, 0x022F00F1, 0x007800FF, 0x0BB80000, 0x23280000, 0x022F0000, 0x007800FF, 0x0BB80000, 0x27100000, 0x022FFF0F, 0x007800FF, 0x0BB80000, 0x2AF80000, 0x022FFE1E, 0x007800FF, 0x0FA00000, 0x00000000, 0x02E90878, 0x007800FF, 0x0FA00000, 0x03E80000, 0x02E90788, 0x007800FF, 0x0FA00000, 0x07D00000, 0x02E90697, 0x007800FF, 0x0FA00000, 0x0BB80000, 0x02E905A6, 0x007800FF, 0x0FA00000, 0x0FA00000, 0x02E904B5, 0x007800FF, 0x0FA00000, 0x13880000, 0x02E903C4, 0x007800FF, 0x0FA00000, 0x17700000, 0x02E902D3, 0x007800FF, 0x0FA00000, 0x1B580000, 0x02E901E2, 0x007800FF, 0x0FA00000, 0x1F400000, 0x02E900F1, 0x007800FF, 0x0FA00000, 0x23280000, 0x02E90000, 0x007800FF, 0x0FA00000, 0x27100000, 0x02E9FF0F, 0x007800FF, 0x0FA00000, 0x2AF80000, 0x02E9FE1E, 0x007800FF, 0x13880000, 0x00000000, 0x03A30878, 0x007800FF, 0x13880000, 0x03E80000, 0x03A30788, 0x007800FF, 0x13880000, 0x07D00000, 0x03A30697, 0x007800FF, 0x13880000, 0x0BB80000, 0x03A305A6, 0x007800FF, 0x13880000, 0x0FA00000, 0x03A304B5, 0x007800FF, 0x13880000, 0x13880000, 0x03A303C4, 0x007800FF, 0x13880000, 0x17700000, 0x03A302D3, 0x007800FF, 0x13880000, 0x1B580000, 0x03A301E2, 0x007800FF, 0x13880000, 0x1F400000, 0x03A300F1, 0x007800FF, 0x13880000, 0x23280000, 0x03A30000, 0x007800FF, 0x13880000, 0x27100000, 0x03A3FF0F, 0x007800FF, 0x13880000, 0x2AF80000, 0x03A3FE1E, 0x007800FF, 0x17700000, 0x00000000, 0x045D0878, 0x007800FF, 0x17700000, 0x03E80000, 0x045D0788, 0x007800FF, 0x17700000, 0x07D00000, 0x045D0697, 0x007800FF, 0x17700000, 0x0BB80000, 0x045D05A6, 0x007800FF, 0x17700000, 0x0FA00000, 0x045D04B5, 0x007800FF, 0x17700000, 0x13880000, 0x045D03C4, 0x007800FF, 0x17700000, 0x17700000, 0x045D02D3, 0x007800FF, 0x17700000, 0x1B580000, 0x045D01E2, 0x007800FF, 0x17700000, 0x1F400000, 0x045D00F1, 0x007800FF, 0x17700000, 0x23280000, 0x045D0000, 0x007800FF, 0x17700000, 0x27100000, 0x045DFF0F, 0x007800FF, 0x17700000, 0x2AF80000, 0x045DFE1E, 0x007800FF, 0x1B580000, 0x00000000, 0x05170878, 0x007800FF, 0x1B580000, 0x03E80000, 0x05170788, 0x007800FF, 0x1B580000, 0x07D00000, 0x05170697, 0x007800FF, 0x1B580000, 0x0BB80000, 0x051705A6, 0x007800FF, 0x1B580000, 0x0FA00000, 0x051704B5, 0x007800FF, 0x1B580000, 0x13880000, 0x051703C4, 0x007800FF, 0x1B580000, 0x17700000, 0x051702D3, 0x007800FF, 0x1B580000, 0x1B580000, 0x051701E2, 0x007800FF, 0x1B580000, 0x1F400000, 0x051700F1, 0x007800FF, 0x1B580000, 0x23280000, 0x05170000, 0x007800FF, 0x1B580000, 0x27100000, 0x0517FF0F, 0x007800FF, 0x1B580000, 0x2AF80000, 0x0517FE1E, 0x007800FF, 0x1F400000, 0x00000000, 0x05D10878, 0x007800FF, 0x1F400000, 0x03E80000, 0x05D10788, 0x007800FF, 0x1F400000, 0x07D00000, 0x05D10697, 0x007800FF, 0x1F400000, 0x0BB80000, 0x05D105A6, 0x007800FF, 0x1F400000, 0x0FA00000, 0x05D104B5, 0x007800FF, 0x1F400000, 0x13880000, 0x05D103C4, 0x007800FF, 0x1F400000, 0x17700000, 0x05D102D3, 0x007800FF, 0x1F400000, 0x1B580000, 0x05D101E2, 0x007800FF, 0x1F400000, 0x1F400000, 0x05D100F1, 0x007800FF, 0x1F400000, 0x23280000, 0x05D10000, 0x007800FF, 0x1F400000, 0x27100000, 0x05D1FF0F, 0x007800FF, 0x1F400000, 0x2AF80000, 0x05D1FE1E, 0x007800FF, 0x23280000, 0x00000000, 0x068C0878, 0x007800FF, 0x23280000, 0x03E80000, 0x068C0788, 0x007800FF, 0x23280000, 0x07D00000, 0x068C0697, 0x007800FF, 0x23280000, 0x0BB80000, 0x068C05A6, 0x007800FF, 0x23280000, 0x0FA00000, 0x068C04B5, 0x007800FF, 0x23280000, 0x13880000, 0x068C03C4, 0x007800FF, 0x23280000, 0x17700000, 0x068C02D3, 0x007800FF, 0x23280000, 0x1B580000, 0x068C01E2, 0x007800FF, 0x23280000, 0x1F400000, 0x068C00F1, 0x007800FF, 0x23280000, 0x23280000, 0x068C0000, 0x007800FF, 0x23280000, 0x27100000, 0x068CFF0F, 0x007800FF, 0x23280000, 0x2AF80000, 0x068CFE1E, 0x007800FF, 0x27100000, 0x00000000, 0x07460878, 0x007800FF, 0x27100000, 0x03E80000, 0x07460788, 0x007800FF, 0x27100000, 0x07D00000, 0x07460697, 0x007800FF, 0x27100000, 0x0BB80000, 0x074605A6, 0x007800FF, 0x27100000, 0x0FA00000, 0x074604B5, 0x007800FF, 0x27100000, 0x13880000, 0x074603C4, 0x007800FF, 0x27100000, 0x17700000, 0x074602D3, 0x007800FF, 0x27100000, 0x1B580000, 0x074601E2, 0x007800FF, 0x27100000, 0x1F400000, 0x074600F1, 0x007800FF, 0x27100000, 0x23280000, 0x07460000, 0x007800FF, 0x27100000, 0x27100000, 0x0746FF0F, 0x007800FF, 0x27100000, 0x2AF80000, 0x0746FE1E, 0x007800FF, 0x2AF80000, 0x00000000, 0x08000878, 0x007800FF, 0x2AF80000, 0x03E80000, 0x08000788, 0x007800FF, 0x2AF80000, 0x07D00000, 0x08000697, 0x007800FF, 0x2AF80000, 0x0BB80000, 0x080005A6, 0x007800FF, 0x2AF80000, 0x0FA00000, 0x080004B5, 0x007800FF, 0x2AF80000, 0x13880000, 0x080003C4, 0x007800FF, 0x2AF80000, 0x17700000, 0x080002D3, 0x007800FF, 0x2AF80000, 0x1B580000, 0x080001E2, 0x007800FF, 0x2AF80000, 0x1F400000, 0x080000F1, 0x007800FF, 0x2AF80000, 0x23280000, 0x08000000, 0x007800FF, 0x2AF80000, 0x27100000, 0x0800FF0F, 0x007800FF, 0x2AF80000, 0x2AF80000, 0x0800FE1E, 0x007800FF -glabel D_80A27078 - .word 0xE7000000, 0x00000000, 0xE3001001, 0x00000000, 0xD7000002, 0xFFFFFFFF, 0xFD100000 -.word D_80A24F78 -.word 0xF5100000, 0x07098150, 0xE6000000, 0x00000000, 0xF3000000, 0x077FF100, 0xE7000000, 0x00000000, 0xF5101000, 0x00098150, 0xF2000000, 0x0007C0FC, 0xDF000000, 0x00000000, 0xE7000000, 0x00000000, 0xE3001001, 0x00000000, 0xD7000002, 0xFFFFFFFF, 0xFD100000 -.word D_80A25F78 -.word 0xF5100000, 0x07098150, 0xE6000000, 0x00000000, 0xF3000000, 0x077FF100, 0xE7000000, 0x00000000, 0xF5101000, 0x00098150, 0xF2000000, 0x0007C0FC, 0xDF000000, 0x00000000 -glabel D_80A27128 - .word 0xFC127E03, 0xFFFFF3F8, 0xE200001C, 0xC8113078, 0xD9F3FBFF, 0x00000000, 0xD9FFFFFF, 0x00030000, 0xFA000000, 0xFFFFFFFF, 0x01018030, 0x0C000000, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0x0100C030, 0x0C000180, 0x06181A02, 0x00180200, 0x061A1C04, 0x001A0402, 0x061C1E06, 0x001C0604, 0x061E2008, 0x001E0806, 0x0620220A, 0x00200A08, 0x0622240C, 0x00220C0A, 0x0624260E, 0x00240E0C, 0x06262810, 0x0026100E, 0x06282A12, 0x00281210, 0x062A2C14, 0x002A1412, 0x062C2E16, 0x002C1614, 0x0100C018, 0x0C000240, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0x0100C030, 0x0C000300, 0x06181A02, 0x00180200, 0x061A1C04, 0x001A0402, 0x061C1E06, 0x001C0604, 0x061E2008, 0x001E0806, 0x0620220A, 0x00200A08, 0x0622240C, 0x00220C0A, 0x0624260E, 0x00240E0C, 0x06262810, 0x0026100E, 0x06282A12, 0x00281210, 0x062A2C14, 0x002A1412, 0x062C2E16, 0x002C1614, 0x0100C018, 0x0C0003C0, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0x0100C030, 0x0C000480, 0x06181A02, 0x00180200, 0x061A1C04, 0x001A0402, 0x061C1E06, 0x001C0604, 0x061E2008, 0x001E0806, 0x0620220A, 0x00200A08, 0x0622240C, 0x00220C0A, 0x0624260E, 0x00240E0C, 0x06262810, 0x0026100E, 0x06282A12, 0x00281210, 0x062A2C14, 0x002A1412, 0x062C2E16, 0x002C1614, 0x0100C018, 0x0C000540, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0x0100C030, 0x0C000600, 0x06181A02, 0x00180200, 0x061A1C04, 0x001A0402, 0x061C1E06, 0x001C0604, 0x061E2008, 0x001E0806, 0x0620220A, 0x00200A08, 0x0622240C, 0x00220C0A, 0x0624260E, 0x00240E0C, 0x06262810, 0x0026100E, 0x06282A12, 0x00281210, 0x062A2C14, 0x002A1412, 0x062C2E16, 0x002C1614, 0x0100C018, 0x0C0006C0, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0x0100C030, 0x0C000780, 0x06181A02, 0x00180200, 0x061A1C04, 0x001A0402, 0x061C1E06, 0x001C0604, 0x061E2008, 0x001E0806, 0x0620220A, 0x00200A08, 0x0622240C, 0x00220C0A, 0x0624260E, 0x00240E0C, 0x06262810, 0x0026100E, 0x06282A12, 0x00281210, 0x062A2C14, 0x002A1412, 0x062C2E16, 0x002C1614, 0x0100C018, 0x0C000840, 0x0600021A, 0x00001A18, 0x0602041C, 0x00021C1A, 0x0604061E, 0x00041E1C, 0x06060820, 0x0006201E, 0x06080A22, 0x00082220, 0x060A0C24, 0x000A2422, 0x060C0E26, 0x000C2624, 0x060E1028, 0x000E2826, 0x0610122A, 0x00102A28, 0x0612142C, 0x00122C2A, 0x0614162E, 0x00142E2C, 0xDF000000, 0x00000000 -glabel D_80A27578 - .word 0x03E80000, 0x00000000, 0x00BA0878, 0x007800FF, 0x03E80000, 0x03E80000, 0x00BA0788, 0x007800FF, 0x03E80000, 0x07D00000, 0x00BA0697, 0x007800FF, 0x03E80000, 0x0BB80000, 0x00BA05A6, 0x007800FF, 0x03E80000, 0x0FA00000, 0x00BA04B5, 0x007800FF, 0x03E80000, 0x13880000, 0x00BA03C4, 0x007800FF, 0x03E80000, 0x17700000, 0x00BA02D3, 0x007800FF, 0x03E80000, 0x1B580000, 0x00BA01E2, 0x007800FF, 0x03E80000, 0x1F400000, 0x00BA00F1, 0x007800FF, 0x03E80000, 0x23280000, 0x00BA0000, 0x007800FF, 0x03E80000, 0x27100000, 0x00BAFF0F, 0x007800FF, 0x03E80000, 0x2AF80000, 0x00BAFE1E, 0x007800FF, 0x00000000, 0x00000000, 0x00000878, 0x007800FF, 0x00000000, 0x03E80000, 0x00000788, 0x007800FF, 0x00000000, 0x07D00000, 0x00000697, 0x007800FF, 0x00000000, 0x0BB80000, 0x000005A6, 0x007800FF, 0x00000000, 0x0FA00000, 0x000004B5, 0x007800FF, 0x00000000, 0x13880000, 0x000003C4, 0x007800FF, 0x00000000, 0x17700000, 0x000002D3, 0x007800FF, 0x00000000, 0x1B580000, 0x000001E2, 0x007800FF, 0x00000000, 0x1F400000, 0x000000F1, 0x007800FF, 0x00000000, 0x23280000, 0x00000000, 0x007800FF, 0x00000000, 0x27100000, 0x0000FF0F, 0x007800FF, 0x00000000, 0x2AF80000, 0x0000FE1E, 0x007800FF, 0x07D00000, 0x00000000, 0x01740878, 0x007800FF, 0x07D00000, 0x03E80000, 0x01740788, 0x007800FF, 0x07D00000, 0x07D00000, 0x01740697, 0x007800FF, 0x07D00000, 0x0BB80000, 0x017405A6, 0x007800FF, 0x07D00000, 0x0FA00000, 0x017404B5, 0x007800FF, 0x07D00000, 0x13880000, 0x017403C4, 0x007800FF, 0x07D00000, 0x17700000, 0x017402D3, 0x007800FF, 0x07D00000, 0x1B580000, 0x017401E2, 0x007800FF, 0x07D00000, 0x1F400000, 0x017400F1, 0x007800FF, 0x07D00000, 0x23280000, 0x01740000, 0x007800FF, 0x07D00000, 0x27100000, 0x0174FF0F, 0x007800FF, 0x07D00000, 0x2AF80000, 0x0174FE1E, 0x007800FF, 0x0BB80000, 0x00000000, 0x022F0878, 0x007800FF, 0x0BB80000, 0x03E80000, 0x022F0788, 0x007800FF, 0x0BB80000, 0x07D00000, 0x022F0697, 0x007800FF, 0x0BB80000, 0x0BB80000, 0x022F05A6, 0x007800FF, 0x0BB80000, 0x0FA00000, 0x022F04B5, 0x007800FF, 0x0BB80000, 0x13880000, 0x022F03C4, 0x007800FF, 0x0BB80000, 0x17700000, 0x022F02D3, 0x007800FF, 0x0BB80000, 0x1B580000, 0x022F01E2, 0x007800FF, 0x0BB80000, 0x1F400000, 0x022F00F1, 0x007800FF, 0x0BB80000, 0x23280000, 0x022F0000, 0x007800FF, 0x0BB80000, 0x27100000, 0x022FFF0F, 0x007800FF, 0x0BB80000, 0x2AF80000, 0x022FFE1E, 0x007800FF, 0x0FA00000, 0x00000000, 0x02E90878, 0x007800FF, 0x0FA00000, 0x03E80000, 0x02E90788, 0x007800FF, 0x0FA00000, 0x07D00000, 0x02E90697, 0x007800FF, 0x0FA00000, 0x0BB80000, 0x02E905A6, 0x007800FF, 0x0FA00000, 0x0FA00000, 0x02E904B5, 0x007800FF, 0x0FA00000, 0x13880000, 0x02E903C4, 0x007800FF, 0x0FA00000, 0x17700000, 0x02E902D3, 0x007800FF, 0x0FA00000, 0x1B580000, 0x02E901E2, 0x007800FF, 0x0FA00000, 0x1F400000, 0x02E900F1, 0x007800FF, 0x0FA00000, 0x23280000, 0x02E90000, 0x007800FF, 0x0FA00000, 0x27100000, 0x02E9FF0F, 0x007800FF, 0x0FA00000, 0x2AF80000, 0x02E9FE1E, 0x007800FF, 0x13880000, 0x00000000, 0x03A30878, 0x007800FF, 0x13880000, 0x03E80000, 0x03A30788, 0x007800FF, 0x13880000, 0x07D00000, 0x03A30697, 0x007800FF, 0x13880000, 0x0BB80000, 0x03A305A6, 0x007800FF, 0x13880000, 0x0FA00000, 0x03A304B5, 0x007800FF, 0x13880000, 0x13880000, 0x03A303C4, 0x007800FF, 0x13880000, 0x17700000, 0x03A302D3, 0x007800FF, 0x13880000, 0x1B580000, 0x03A301E2, 0x007800FF, 0x13880000, 0x1F400000, 0x03A300F1, 0x007800FF, 0x13880000, 0x23280000, 0x03A30000, 0x007800FF, 0x13880000, 0x27100000, 0x03A3FF0F, 0x007800FF, 0x13880000, 0x2AF80000, 0x03A3FE1E, 0x007800FF, 0x17700000, 0x00000000, 0x045D0878, 0x007800FF, 0x17700000, 0x03E80000, 0x045D0788, 0x007800FF, 0x17700000, 0x07D00000, 0x045D0697, 0x007800FF, 0x17700000, 0x0BB80000, 0x045D05A6, 0x007800FF, 0x17700000, 0x0FA00000, 0x045D04B5, 0x007800FF, 0x17700000, 0x13880000, 0x045D03C4, 0x007800FF, 0x17700000, 0x17700000, 0x045D02D3, 0x007800FF, 0x17700000, 0x1B580000, 0x045D01E2, 0x007800FF, 0x17700000, 0x1F400000, 0x045D00F1, 0x007800FF, 0x17700000, 0x23280000, 0x045D0000, 0x007800FF, 0x17700000, 0x27100000, 0x045DFF0F, 0x007800FF, 0x17700000, 0x2AF80000, 0x045DFE1E, 0x007800FF, 0x1B580000, 0x00000000, 0x05170878, 0x007800FF, 0x1B580000, 0x03E80000, 0x05170788, 0x007800FF, 0x1B580000, 0x07D00000, 0x05170697, 0x007800FF, 0x1B580000, 0x0BB80000, 0x051705A6, 0x007800FF, 0x1B580000, 0x0FA00000, 0x051704B5, 0x007800FF, 0x1B580000, 0x13880000, 0x051703C4, 0x007800FF, 0x1B580000, 0x17700000, 0x051702D3, 0x007800FF, 0x1B580000, 0x1B580000, 0x051701E2, 0x007800FF, 0x1B580000, 0x1F400000, 0x051700F1, 0x007800FF, 0x1B580000, 0x23280000, 0x05170000, 0x007800FF, 0x1B580000, 0x27100000, 0x0517FF0F, 0x007800FF, 0x1B580000, 0x2AF80000, 0x0517FE1E, 0x007800FF, 0x1F400000, 0x00000000, 0x05D10878, 0x007800FF, 0x1F400000, 0x03E80000, 0x05D10788, 0x007800FF, 0x1F400000, 0x07D00000, 0x05D10697, 0x007800FF, 0x1F400000, 0x0BB80000, 0x05D105A6, 0x007800FF, 0x1F400000, 0x0FA00000, 0x05D104B5, 0x007800FF, 0x1F400000, 0x13880000, 0x05D103C4, 0x007800FF, 0x1F400000, 0x17700000, 0x05D102D3, 0x007800FF, 0x1F400000, 0x1B580000, 0x05D101E2, 0x007800FF, 0x1F400000, 0x1F400000, 0x05D100F1, 0x007800FF, 0x1F400000, 0x23280000, 0x05D10000, 0x007800FF, 0x1F400000, 0x27100000, 0x05D1FF0F, 0x007800FF, 0x1F400000, 0x2AF80000, 0x05D1FE1E, 0x007800FF, 0x23280000, 0x00000000, 0x068C0878, 0x007800FF, 0x23280000, 0x03E80000, 0x068C0788, 0x007800FF, 0x23280000, 0x07D00000, 0x068C0697, 0x007800FF, 0x23280000, 0x0BB80000, 0x068C05A6, 0x007800FF, 0x23280000, 0x0FA00000, 0x068C04B5, 0x007800FF, 0x23280000, 0x13880000, 0x068C03C4, 0x007800FF, 0x23280000, 0x17700000, 0x068C02D3, 0x007800FF, 0x23280000, 0x1B580000, 0x068C01E2, 0x007800FF, 0x23280000, 0x1F400000, 0x068C00F1, 0x007800FF, 0x23280000, 0x23280000, 0x068C0000, 0x007800FF, 0x23280000, 0x27100000, 0x068CFF0F, 0x007800FF, 0x23280000, 0x2AF80000, 0x068CFE1E, 0x007800FF, 0x27100000, 0x00000000, 0x07460878, 0x007800FF, 0x27100000, 0x03E80000, 0x07460788, 0x007800FF, 0x27100000, 0x07D00000, 0x07460697, 0x007800FF, 0x27100000, 0x0BB80000, 0x074605A6, 0x007800FF, 0x27100000, 0x0FA00000, 0x074604B5, 0x007800FF, 0x27100000, 0x13880000, 0x074603C4, 0x007800FF, 0x27100000, 0x17700000, 0x074602D3, 0x007800FF, 0x27100000, 0x1B580000, 0x074601E2, 0x007800FF, 0x27100000, 0x1F400000, 0x074600F1, 0x007800FF, 0x27100000, 0x23280000, 0x07460000, 0x007800FF, 0x27100000, 0x27100000, 0x0746FF0F, 0x007800FF, 0x27100000, 0x2AF80000, 0x0746FE1E, 0x007800FF, 0x2AF80000, 0x00000000, 0x08000878, 0x007800FF, 0x2AF80000, 0x03E80000, 0x08000788, 0x007800FF, 0x2AF80000, 0x07D00000, 0x08000697, 0x007800FF, 0x2AF80000, 0x0BB80000, 0x080005A6, 0x007800FF, 0x2AF80000, 0x0FA00000, 0x080004B5, 0x007800FF, 0x2AF80000, 0x13880000, 0x080003C4, 0x007800FF, 0x2AF80000, 0x17700000, 0x080002D3, 0x007800FF, 0x2AF80000, 0x1B580000, 0x080001E2, 0x007800FF, 0x2AF80000, 0x1F400000, 0x080000F1, 0x007800FF, 0x2AF80000, 0x23280000, 0x08000000, 0x007800FF, 0x2AF80000, 0x27100000, 0x0800FF0F, 0x007800FF, 0x2AF80000, 0x2AF80000, 0x0800FE1E, 0x007800FF, 0x00000000, 0x00000000 - diff --git a/spec b/spec index fb5974a008..ddfc3383a5 100644 --- a/spec +++ b/spec @@ -2241,8 +2241,11 @@ endseg beginseg name "ovl_En_Ganon_Mant" include "build/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.o" - include "build/data/overlays/actors/z_en_ganon_mant.data.o" +#ifdef NON_MATCHING + include "build/src/overlays/actors/ovl_En_Ganon_Mant/ovl_En_Ganon_Mant_reloc.o" +#else include "build/data/overlays/actors/z_en_ganon_mant.reloc.o" +#endif endseg beginseg diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/ovl_en_ganon_mant_gfx.c b/src/overlays/actors/ovl_En_Ganon_Mant/ovl_en_ganon_mant_gfx.c new file mode 100644 index 0000000000..6d06427615 --- /dev/null +++ b/src/overlays/actors/ovl_En_Ganon_Mant/ovl_en_ganon_mant_gfx.c @@ -0,0 +1,710 @@ +#include "global.h" +#include "z_en_ganon_mant.h" + +#define MANT_TEX_WIDTH 32 +#define MANT_TEX_HEIGHT 64 + +static u64 sForceDmaAlignment = 0; + +s16 sMantTex[MANT_TEX_WIDTH * MANT_TEX_HEIGHT] = { + 0x7001, 0xA801, 0x7801, 0x4801, 0x4801, 0x7001, 0x9001, 0x8801, 0x8801, 0x7801, 0x5001, 0x5001, 0x5801, 0x6001, + 0x6801, 0x8801, 0x7001, 0x5801, 0x4801, 0x4001, 0x3801, 0x4001, 0x6001, 0x8001, 0x9001, 0xA801, 0x8801, 0x5001, + 0x4001, 0x4001, 0x4801, 0x5801, 0x7001, 0xA801, 0x7801, 0x5801, 0x5001, 0x6001, 0x9001, 0x9001, 0x9001, 0x8001, + 0x5801, 0x5801, 0x5801, 0x5801, 0x6001, 0x9001, 0x7801, 0x6801, 0x4801, 0x4001, 0x4001, 0x4001, 0x6801, 0x8801, + 0x9801, 0xA001, 0x9801, 0x6001, 0x4001, 0x4001, 0x4801, 0x5801, 0x7001, 0xB001, 0x9801, 0x7001, 0x5001, 0x6001, + 0x9801, 0x9001, 0x9001, 0x8001, 0x5801, 0x5801, 0x5801, 0x6001, 0x6801, 0x8801, 0x8001, 0x7001, 0x5001, 0x4801, + 0x4001, 0x4801, 0x5801, 0x8001, 0x9801, 0xA001, 0xA801, 0x6801, 0x4001, 0x4001, 0x4801, 0x6001, 0x6801, 0xA801, + 0xA001, 0x7001, 0x4801, 0x6001, 0x9001, 0x8801, 0x8801, 0x7801, 0x6001, 0x5801, 0x5801, 0x6801, 0x7801, 0x8001, + 0x8001, 0x7801, 0x6001, 0x5001, 0x4001, 0x4801, 0x5801, 0x6001, 0x8001, 0x9801, 0xA001, 0x7801, 0x4801, 0x4801, + 0x4801, 0x6001, 0x7001, 0xA801, 0x9801, 0x8801, 0x5001, 0x5801, 0x7801, 0x8801, 0x8801, 0x7801, 0x6001, 0x5801, + 0x6001, 0x6801, 0x8001, 0x8001, 0x8001, 0x7801, 0x6801, 0x5001, 0x4801, 0x5001, 0x5801, 0x6001, 0x8001, 0x9801, + 0x9801, 0x8001, 0x5001, 0x4801, 0x5001, 0x6001, 0x7001, 0xA001, 0x9001, 0x8801, 0x6001, 0x6001, 0x7801, 0x8801, + 0x8801, 0x7801, 0x6001, 0x5801, 0x6001, 0x6801, 0x7801, 0x8001, 0x8801, 0x8001, 0x6801, 0x5801, 0x4801, 0x5001, + 0x5801, 0x6801, 0x6801, 0x8801, 0x9801, 0x9001, 0x5001, 0x5001, 0x5001, 0x6001, 0x7001, 0x9001, 0x8001, 0x7801, + 0x6801, 0x6001, 0x7801, 0x8801, 0x8001, 0x7001, 0x6001, 0x6001, 0x6001, 0x7801, 0x8001, 0x8001, 0x8801, 0x8801, + 0x7801, 0x6001, 0x4801, 0x5001, 0x6001, 0x7001, 0x7001, 0x8801, 0x9801, 0x9801, 0x5801, 0x5001, 0x5801, 0x6801, + 0x7001, 0x8001, 0x7801, 0x6801, 0x6801, 0x6801, 0x7801, 0x8801, 0x8001, 0x6801, 0x6001, 0x6001, 0x6001, 0x7801, + 0x8001, 0x7801, 0x8801, 0x8801, 0x8001, 0x6801, 0x5001, 0x5801, 0x6801, 0x7001, 0x7001, 0x8801, 0x9001, 0x9801, + 0x5801, 0x5001, 0x5801, 0x7001, 0x7001, 0x7801, 0xBB41, 0x7001, 0x7001, 0x6801, 0x8001, 0x8001, 0x7801, 0x6801, + 0x6001, 0x6801, 0x6801, 0x7001, 0x7801, 0x7801, 0x8001, 0x8801, 0x8801, 0x7001, 0x5001, 0x5801, 0x6801, 0x7001, + 0x7001, 0x8801, 0x9001, 0x9801, 0x6001, 0x5001, 0x6001, 0x7801, 0x7001, 0x7001, 0xFE43, 0xBB41, 0x7801, 0x7801, + 0x8001, 0x7801, 0x7001, 0x7001, 0x6001, 0x6001, 0x6801, 0x7001, 0x7801, 0x7801, 0x7801, 0x8001, 0x9001, 0x7001, + 0x5801, 0x6001, 0x6801, 0x7001, 0x7001, 0x8801, 0x9001, 0x9801, 0x6001, 0x5001, 0x6001, 0x7001, 0x7001, 0x7001, + 0xFE43, 0xFE43, 0x7001, 0x8801, 0x8001, 0x7801, 0x7001, 0x7001, 0x6001, 0x6001, 0x6801, 0x7001, 0x7801, 0x7801, + 0x7801, 0x8001, 0x9001, 0x7801, 0x6001, 0x6001, 0x6801, 0x7001, 0x7001, 0x8801, 0x9001, 0x9801, 0x6801, 0x5801, + 0x6801, 0x7001, 0x7001, 0x7001, 0xFE43, 0x7001, 0x7001, 0x8801, 0x8001, 0x7001, 0x7001, 0x7001, 0x6801, 0x6001, + 0x6801, 0x7001, 0x7001, 0x7801, 0x7801, 0x8001, 0x9001, 0x7801, 0x6001, 0x6801, 0x6801, 0x7001, 0x7001, 0x8801, + 0x8801, 0x9001, 0x6801, 0x5801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x8001, 0x7801, 0x7001, + 0x7001, 0x6801, 0x6801, 0x6001, 0x6801, 0x7001, 0x7001, 0x7801, 0x7801, 0x8801, 0x9001, 0x7801, 0x6001, 0x6801, + 0x6801, 0x7001, 0x7001, 0x7801, 0x8801, 0x9001, 0x6801, 0x5801, 0x6801, 0x7001, 0x7001, 0x7001, 0xFFE1, 0x7001, + 0x7801, 0x7801, 0x7801, 0x7001, 0x7001, 0x6801, 0x6801, 0x6801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7801, 0x8801, + 0x8801, 0x7801, 0x6001, 0x6801, 0x6801, 0x7001, 0x7001, 0x7801, 0x8001, 0x9001, 0x6801, 0x5801, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x6801, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7801, 0x8001, 0x8801, 0x8801, 0x7801, 0x6801, 0x6801, 0x6801, 0x7001, 0x7801, 0x7001, 0x8001, 0x9001, + 0x6801, 0x6001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFFF7, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x8001, 0x8801, 0x8001, 0x7801, 0x6801, 0x6801, 0x7001, 0x7001, + 0x7801, 0x7001, 0x8001, 0x8801, 0x6801, 0x6001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFFDB, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x8001, 0x8001, 0x8001, 0x7001, + 0x6801, 0x7001, 0x7001, 0x7801, 0x7801, 0x7001, 0x8001, 0x8801, 0x6801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, + 0x8103, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, + 0x8001, 0x8001, 0x7801, 0x7001, 0x6801, 0x7001, 0x7801, 0x8001, 0x8001, 0x7001, 0x8001, 0x8001, 0x6801, 0x6801, + 0x7001, 0x7001, 0x7001, 0x7001, 0xFF8D, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x8001, 0x8001, 0x8001, 0x7001, 0x7001, 0x7001, 0x7801, 0x8001, 0x8001, 0x7001, + 0x7801, 0x8001, 0x6801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, 0xFDC1, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x8001, 0x8001, 0x7801, 0x7001, 0x7001, 0x7001, + 0x7801, 0x8001, 0x8001, 0x7001, 0x7801, 0x7801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFDC1, 0x8901, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x8001, 0x8001, + 0x7801, 0x7001, 0x7001, 0x7001, 0x7801, 0x7801, 0x8001, 0x7001, 0x7801, 0x7801, 0x6801, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0xFDC1, 0xA201, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7801, 0x7801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x7801, 0x8001, 0x7001, 0x7801, 0x7801, + 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFDC1, 0xDC41, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x7801, 0x7801, 0x7801, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7801, 0x7801, 0x6801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xDC41, 0xFF8B, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x7801, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0xA201, 0xFE85, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7801, 0x7801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7841, 0x8081, 0xFE43, 0xCB81, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7801, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0xA2D1, 0xFFFF, 0x7001, 0x7001, 0xBAC1, 0xFDC1, 0xFF8B, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0xF611, 0x7001, 0x7001, 0xFF8B, 0x7001, + 0xFDC1, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBC1F, 0xFE01, 0xFE01, + 0x7001, 0x7001, 0xFE85, 0xFDC1, 0xBAC1, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0xFFFF, 0xFE01, 0xFE01, 0x7001, 0x7001, 0xFE43, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0xAAC3, 0xFF49, 0xFE01, 0xFE01, 0x7001, 0x7001, 0xFF8B, 0xF541, 0x8941, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7881, 0xDC85, 0xFE47, 0xFE8B, 0xFE01, 0x7001, 0x7001, + 0xE4C1, 0x7001, 0xFF8B, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB01, + 0xFE01, 0xFE01, 0x7001, 0x7001, 0x8941, 0xE4C1, 0xF645, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBC1F, + 0xFFFF, 0xFF8B, 0xDD89, 0x7001, 0xBB01, 0xFE01, 0x7001, 0x7001, 0x7001, 0x7001, 0xED83, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0xBBC5, 0xFE01, 0xFE01, 0xFE01, 0xFF8B, 0xBBC5, 0x7001, 0x7001, 0x7001, 0x7001, 0x7881, 0xBB81, + 0xC401, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0xBB01, 0x7001, 0xBB01, 0xFE01, 0xFF8B, 0xFF8B, 0x7001, + 0x7001, 0x7001, 0x9A81, 0x7001, 0xFF8B, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0xFE01, 0xFE01, 0xFF8B, 0x7001, 0x7001, 0xFF8B, 0x8A01, 0x7881, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0xFF8B, 0xFFFF, 0xFFFF, 0x7001, 0xBB01, 0xFE01, 0xFE01, 0x7001, 0x7001, 0xCC01, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x80C1, 0xDD89, 0xFF8B, 0xFFFF, 0xDD89, + 0x7001, 0x7001, 0x7001, 0x7001, 0xFF8B, 0xFE01, 0xFE01, 0xFE01, 0xFFFF, 0x7001, 0xFE01, 0xFE01, 0x7001, 0x7001, + 0xCC01, 0xFF8B, 0x7901, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB01, + 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFF8B, 0x7001, 0x7001, 0x7001, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0xFE01, 0x7001, + 0xFE01, 0xFE01, 0x7001, 0x7001, 0xBB81, 0x7001, 0x8201, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x9181, 0xFE01, 0xB381, 0xA281, 0xAB01, 0xCC81, 0xFE01, 0xFFFF, 0x7001, 0x7001, 0x7001, 0xFE01, + 0xFE01, 0xFE01, 0x7001, 0xBC1F, 0xFE01, 0xFE01, 0x7001, 0x7001, 0x7881, 0x9241, 0xFF8B, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xCBC1, 0xED41, 0xB281, 0x7001, 0x7001, 0x7001, 0xDC81, 0xFE01, + 0xBB01, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFFFF, 0xFE01, 0xFE01, 0x7001, 0x7001, 0x7001, 0x7001, + 0xDCC1, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0xDC81, 0x7001, 0xFF8B, + 0xFFFF, 0x91C3, 0x7001, 0xEE07, 0xFFFF, 0x7001, 0xFF8B, 0xDD89, 0x7001, 0xBBC5, 0xFF8B, 0xFE01, 0xDC81, 0x7001, + 0x7001, 0x7001, 0x8901, 0xE4C1, 0xFF8B, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0xBB01, 0xFE01, 0xDC81, 0x7001, 0xFE01, 0xFF8B, 0x7001, 0xCC03, 0xFF8B, 0xBBC5, 0x7001, 0xFF8B, 0xFFFF, 0xFFFF, + 0xFE01, 0xBB01, 0x7001, 0x7001, 0x7001, 0x7001, 0xD481, 0x7001, 0xD481, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xDC81, 0xFE01, 0xFE01, 0xCC81, 0xBBC1, 0x7001, 0x7001, 0xDD89, 0xFF8B, + 0xBB01, 0x7001, 0xED41, 0xFE01, 0xBB01, 0x7001, 0x920F, 0xFFFF, 0x7001, 0x7001, 0xCC41, 0xFF8B, 0x8941, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xC3C1, 0xBBC1, 0xC3C1, 0x7001, + 0x7001, 0x7001, 0x7001, 0xDD47, 0xFE01, 0x7001, 0x7001, 0x7001, 0x7001, 0x91C3, 0xFE91, 0xFF21, 0x7001, 0x7001, + 0x7001, 0xDC81, 0x7001, 0x7001, 0x7001, 0xFF8B, 0xBBC5, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB01, 0xFE01, 0x7001, 0x7001, 0x7001, 0xED41, + 0xFE4B, 0xFE8B, 0x7001, 0x7001, 0xBB01, 0xF5C1, 0x7001, 0xDCC1, 0x7001, 0x91C3, 0xFFFF, 0xBB41, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB01, + 0xFE01, 0x7001, 0x7001, 0xA241, 0xFE87, 0xFF11, 0x7001, 0x7001, 0xE541, 0xBB01, 0xDCC1, 0xFF8B, 0xBB41, 0x7001, + 0xFF8B, 0xFE43, 0x7001, 0x7001, 0xBBC5, 0xFF8B, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0xBB01, 0xFF8B, 0xFFFF, 0xBBC5, 0x7001, 0x7001, 0xFE01, 0x7001, 0xFECB, 0xFF99, 0x7001, 0x7001, 0xFF8B, 0x7001, + 0xFFFF, 0x7001, 0xFF8B, 0x7001, 0xEDC1, 0xBB41, 0x7001, 0xFFFF, 0xFF8B, 0xBBC5, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0xFE01, 0xBBC5, 0xFFFF, 0x7001, 0xBBC5, 0x7001, 0x7001, 0xFF8F, 0xFFE1, + 0x7001, 0x7001, 0xFEC5, 0x7001, 0xFE43, 0xBB41, 0x7001, 0xEEC5, 0xE4C1, 0x7001, 0xBB41, 0xE4C1, 0xCC01, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0xBB01, 0x7001, 0xFF8B, 0x7001, 0xFF8B, + 0x7001, 0xFE01, 0xFFD3, 0xFFED, 0x7001, 0x7001, 0xFF8B, 0xFDC1, 0x7001, 0xFE43, 0xFE43, 0x7001, 0x7001, 0x91C3, + 0xFF8B, 0xBB41, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB01, 0xFE01, + 0x7001, 0xC481, 0xA241, 0xFF8B, 0x7001, 0x7001, 0xBC09, 0xBDC3, 0x7001, 0x7001, 0xBBC5, 0xFF8B, 0xFFFF, 0xBB41, + 0x7001, 0x7001, 0x91C3, 0xFF8B, 0x91C3, 0x7001, 0xBB41, 0xFFFF, 0xBB41, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0xDC81, 0x7001, 0xBB01, 0xDC81, 0xFE01, 0xFFD3, 0xBC09, 0xFE01, 0x7001, 0x7001, 0x7001, + 0x7001, 0xBBC5, 0xFF8B, 0x7001, 0xFFFF, 0xFFFF, 0xFF8B, 0xBBC5, 0x7001, 0xFF8B, 0xEDC1, 0xEEC5, 0xEE47, 0xB303, + 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xFE01, 0x7001, 0xFE01, 0xFFD3, + 0x7001, 0xFFFF, 0x7001, 0x7001, 0xFFDD, 0x7001, 0xFF8B, 0x7001, 0xFF8B, 0xFF8B, 0xFD81, 0x7001, 0x7001, 0xFE43, + 0x7001, 0x7001, 0x9181, 0xFE43, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, + 0x7001, 0xBBC1, 0x7001, 0xFE01, 0xBBC1, 0xFFD3, 0x7001, 0x7001, 0xFD81, 0x7001, 0xFD81, 0x7001, 0xFD81, 0xCC01, + 0xB341, 0x7001, 0xFFFF, 0x7001, 0xFF8B, 0xBB41, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xEDC3, + 0xFFFF, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0x7001, 0xBBC1, 0xDD01, 0xFFD3, 0x7001, 0x7001, 0x7001, 0xBBC5, + 0xCC01, 0xFFFF, 0x7001, 0x7001, 0x7001, 0xBB41, 0xFE43, 0xFF8B, 0x7001, 0xFD81, 0x7001, 0xDD45, 0xFF8B, 0xD505, + 0x7001, 0xFE83, 0x7001, 0x7001, 0x7001, 0x7001, 0xBB81, 0x7001, 0xA241, 0xBBC1, 0x8201, 0x7001, 0x7001, 0xBDDD, + 0x7001, 0x7001, 0xBBC5, 0xFFFF, 0x7001, 0xE4C1, 0xB341, 0xD601, 0xEF4D, 0xFFDD, 0x7001, 0xFD81, 0xCC01, 0x7001, + 0xFF8B, 0xFE01, 0xF5C3, 0xFEC9, 0xFF8B, 0x7001, 0xBB81, 0xEDC3, 0xFE83, 0xBB81, 0x7001, 0xFE83, 0xE543, 0x8A01, + 0x7001, 0xBC17, 0xFFED, 0xDC81, 0x7001, 0x7001, 0xFF8B, 0xFD81, 0xFD81, 0xBBC5, 0x7001, 0x7001, 0xBC09, 0xFD81, + 0xFF8B, 0x7001, 0x7001, 0xFF8B, 0xFF8B, 0xBBC5, 0x7001, 0xAA41, 0xDD41, 0xCC01, 0x7001, 0x7001, 0x7001, 0x7001, + 0xFE83, 0xBBC1, 0x8A01, 0x8A01, 0xED41, 0xED41, 0xFFD3, 0x7001, 0x7001, 0x7001, 0xB341, 0xCC01, 0xA301, 0x7001, + 0xFD81, 0xFFD3, 0x7001, 0xBBC5, 0xE4C1, 0xCC01, 0xE4C1, 0xF605, 0xBBC5, 0x7001, 0x7001, 0x7001, 0x7001, 0xA283, + 0xC3C3, 0xEE89, 0xFF8B, 0xFE83, 0xCC41, 0x9241, 0x7001, 0x7001, 0x8201, 0xCC01, 0xDC81, 0xFFD3, 0x7001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x7001, 0x7001, 0x7001, + 0x7001, 0x7001, 0x7001, 0x7001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x7001, 0x7001, 0x5001, 0x5001, + 0x5001, 0xED41, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, + 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, + 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x8001, 0x2001, 0x2001, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, + 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, + 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0x1801, 0xFC81, 0x81C1, 0x9A41, 0x4841, + 0xAAC1, 0x58C1, 0xBB01, 0x9241, 0xFDC1, 0x81C1, 0xCB81, 0x7141, 0xFC81, 0x9241, 0xC341, 0x89C1, 0xFC81, 0x89C1, + 0xDBC1, 0x89C1, 0xFC81, 0x7181, 0xDBC1, 0x9241, 0xFE01, 0x9A41, 0xC341, 0x9A41, 0xFC81, 0xAAC1, 0xFC81, 0x6941, + 0xFFC1, 0xE401, 0xFFEF, 0xE401, 0xFEC1, 0xE401, 0xFFC1, 0xE401, 0xFFC9, 0xE401, 0xFFEF, 0xE401, 0xFFEF, 0xE401, + 0xFDC1, 0xCB81, 0xFF87, 0xE401, 0xFE41, 0xE401, 0xFF87, 0xE401, 0xFE41, 0xE401, 0xFFEF, 0xE401, 0xFF87, 0xE401, + 0xFE41, 0xE401, 0xFFEF, 0xE401, +}; + +s16 sMantUnusedTex[32 * 32] = { + 0x5801, 0x9001, 0x6001, 0x4001, 0x3001, 0x4801, 0x7801, 0x7001, 0x7001, 0x6001, 0x3801, 0x3801, 0x4001, 0x4001, + 0x4001, 0x7001, 0x6001, 0x5001, 0x2801, 0x2001, 0x2001, 0x2801, 0x4801, 0x7001, 0x8001, 0x8001, 0x8001, 0x4001, + 0x2001, 0x2001, 0x2801, 0x4001, 0x4801, 0x9001, 0x8001, 0x5801, 0x3001, 0x4001, 0x7001, 0x7001, 0x6801, 0x5801, + 0x4001, 0x4001, 0x4001, 0x4801, 0x6001, 0x6001, 0x6001, 0x5801, 0x4001, 0x3001, 0x2801, 0x3001, 0x3801, 0x4801, + 0x6801, 0x8001, 0x8001, 0x5801, 0x3001, 0x2801, 0x3001, 0x4001, 0x5001, 0x8001, 0x7001, 0x6801, 0x4001, 0x4001, + 0x5801, 0x6801, 0x6801, 0x5801, 0x4001, 0x3801, 0x4801, 0x4801, 0x6001, 0x6801, 0x6801, 0x6001, 0x5001, 0x3801, + 0x2801, 0x3001, 0x4001, 0x4801, 0x5001, 0x6801, 0x8001, 0x7001, 0x3801, 0x3001, 0x3801, 0x4801, 0x5001, 0x7001, + 0x7001, 0x5801, 0x4801, 0x4801, 0x6001, 0x6801, 0x6001, 0x5001, 0x4001, 0x4001, 0x4801, 0x5801, 0x6001, 0x6001, + 0x6801, 0x6801, 0x6801, 0x4801, 0x3001, 0x4001, 0x4801, 0x5801, 0x5001, 0x6801, 0x7801, 0x7801, 0x4001, 0x3001, + 0x4001, 0x5001, 0x5001, 0x6801, 0x6801, 0x5801, 0x5801, 0x5801, 0x6001, 0x6001, 0x5801, 0x5001, 0x4801, 0x4801, + 0x4801, 0x5801, 0x5801, 0x5801, 0x6001, 0x6801, 0x7001, 0x5801, 0x3801, 0x4001, 0x4801, 0x5001, 0x5801, 0x7001, + 0x7801, 0x7801, 0x4801, 0x3801, 0x4801, 0x5801, 0x5001, 0x6001, 0x6001, 0x5801, 0x5001, 0x6801, 0x6001, 0x5801, + 0x5001, 0x5001, 0x4801, 0x4801, 0x5001, 0x5801, 0x5801, 0x5801, 0x6001, 0x6801, 0x7001, 0x5801, 0x4801, 0x4801, + 0x5001, 0x5001, 0x5801, 0x6801, 0x6801, 0x7801, 0x4801, 0x3801, 0x5001, 0x5001, 0x5001, 0x5801, 0x6001, 0x5001, + 0x5801, 0x6001, 0x5801, 0x5801, 0x5001, 0x5001, 0x4801, 0x4801, 0x5001, 0x5001, 0x5001, 0x5801, 0x6001, 0x6801, + 0x7001, 0x5801, 0x4801, 0x4801, 0x5001, 0x5801, 0x5801, 0x5801, 0x6801, 0x7801, 0x4801, 0x4001, 0x5001, 0x5001, + 0x5001, 0x5801, 0x5801, 0x5801, 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5801, 0x6801, 0x6801, 0x6801, 0x5801, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x6001, 0x7001, + 0x4801, 0x4801, 0x5001, 0x5001, 0x0000, 0x4801, 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x6801, 0x6801, 0x6001, 0x5801, 0x5001, 0x5001, 0x5801, 0x5001, + 0x5001, 0x5001, 0x6001, 0x6001, 0x4801, 0x4801, 0x5001, 0x5001, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x6001, 0x6801, 0x6001, 0x5801, + 0x5001, 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, 0x5801, 0x6001, 0x4801, 0x5001, 0x5001, 0x5001, 0x0000, 0x3001, + 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, + 0x6001, 0x6001, 0x5801, 0x5801, 0x5001, 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, 0x5801, 0x5801, 0x5001, 0x5001, + 0x5001, 0x5001, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5801, 0x5801, 0x5801, 0x5801, 0x5801, 0x5001, 0x5001, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x5801, 0x5801, 0x5801, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x2000, 0x1801, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x5801, 0x5001, + 0x5001, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4801, + 0x4000, 0x4001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x3800, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4801, + 0x2000, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4801, 0x2001, 0x3001, 0x3000, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x3001, 0x4801, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x2800, 0x2800, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, 0x5001, 0x0000, + 0x1800, 0x4800, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x3801, 0x1000, + 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, 0x0000, 0x0000, 0x0000, 0x0000, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x3801, 0x3800, 0x2801, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x1800, 0x1000, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x3801, 0x0000, 0x0000, + 0x1800, 0x3801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4801, 0x3801, 0x1800, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, 0x0000, 0x0000, 0x1000, 0x4001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x1801, 0x2800, 0x3801, 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x4801, 0x3801, 0x3000, 0x1801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4000, 0x0000, 0x0000, 0x0000, 0x0800, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, 0x0800, + 0x0000, 0x5001, 0x5001, 0x5001, 0x4001, 0x3000, 0x1800, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x4000, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x3800, 0x0000, 0x0000, 0x3000, 0x4801, 0x5001, + 0x5001, 0x5001, 0x5001, 0x2801, 0x0000, 0x0000, 0x0000, 0x2001, 0x2801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x3801, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x4001, 0x0800, + 0x0000, 0x3001, 0x4001, 0x5001, 0x5001, 0x5001, 0x5001, 0x4001, 0x4001, 0x0000, 0x2801, 0x4001, 0x3801, 0x4801, + 0x4801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x2801, 0x0000, 0x0000, 0x0000, + 0x5001, 0x5001, 0x3801, 0x2000, 0x0000, 0x0000, 0x3801, 0x5001, 0x5001, 0x5001, 0x4801, 0x4000, 0x2001, 0x4801, + 0x3801, 0x3001, 0x1801, 0x2000, 0x1001, 0x3801, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x1000, 0x0000, 0x0000, 0x0000, 0x4801, 0x4801, 0x2801, 0x1800, 0x0000, 0x0000, 0x2001, 0x5001, 0x5001, 0x5001, + 0x3801, 0x1800, 0x1800, 0x3001, 0x4001, 0x4001, 0x1801, 0x0000, 0x0000, 0x5001, 0x5001, 0x5001, 0x5001, 0x5001, + 0x5001, 0x5001, 0x5001, 0x5001, 0x0000, 0x0000, 0x0000, 0x0000, 0x3001, 0x4001, 0x1800, 0x0000, 0x0000, 0x0000, + 0x0000, 0x3801, 0x5001, 0x5001, 0x0000, 0x0000, 0x0000, 0x3801, 0x4001, 0x4801, 0x0000, 0x0000, 0x0000, 0x0000, + 0x5001, 0x5001, 0x5001, 0x4801, 0x0000, 0x0000, 0x5001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1800, 0x2801, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x3801, 0x4801, 0x5001, + 0x0000, 0x0000, 0x0000, 0x0000, 0x3801, 0x5001, 0x5001, 0x1001, 0x0000, 0x0000, 0x5001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x5000, 0x0000, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x2000, 0x4801, 0x5001, 0x0000, 0x0000, 0x0000, 0x0000, 0x3001, 0x4801, 0x5001, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x5000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x5000, 0x0000, 0x0000, 0x3001, 0x3800, 0x0000, 0x0000, 0x0000, 0x0000, 0x2000, 0x3801, + 0x5001, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x1801, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, +}; + +Vtx sMantVtx1[] = { + VTX(1000, 0, 0, 186, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 1000, 186, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 2000, 186, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 3000, 186, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 4000, 186, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 5000, 186, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 6000, 186, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 7000, 186, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 8000, 186, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 9000, 186, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 10000, 186, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 11000, 186, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(0, 0, 0, 0, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 1000, 0, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 2000, 0, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 3000, 0, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 4000, 0, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 5000, 0, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 6000, 0, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 7000, 0, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 8000, 0, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 9000, 0, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 10000, 0, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 11000, 0, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(2000, 0, 0, 372, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 1000, 372, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 2000, 372, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 3000, 372, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 4000, 372, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 5000, 372, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 6000, 372, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 7000, 372, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 8000, 372, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 9000, 372, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 10000, 372, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 11000, 372, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(3000, 0, 0, 559, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 1000, 559, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 2000, 559, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 3000, 559, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 4000, 559, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 5000, 559, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 6000, 559, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 7000, 559, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 8000, 559, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 9000, 559, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 10000, 559, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 11000, 559, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(4000, 0, 0, 745, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 1000, 745, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 2000, 745, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 3000, 745, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 4000, 745, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 5000, 745, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 6000, 745, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 7000, 745, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 8000, 745, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 9000, 745, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 10000, 745, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 11000, 745, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(5000, 0, 0, 931, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 1000, 931, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 2000, 931, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 3000, 931, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 4000, 931, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 5000, 931, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 6000, 931, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 7000, 931, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 8000, 931, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 9000, 931, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 10000, 931, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 11000, 931, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(6000, 0, 0, 1117, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 1000, 1117, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 2000, 1117, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 3000, 1117, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 4000, 1117, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 5000, 1117, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 6000, 1117, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 7000, 1117, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 8000, 1117, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 9000, 1117, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 10000, 1117, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 11000, 1117, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(7000, 0, 0, 1303, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 1000, 1303, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 2000, 1303, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 3000, 1303, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 4000, 1303, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 5000, 1303, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 6000, 1303, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 7000, 1303, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 8000, 1303, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 9000, 1303, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 10000, 1303, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 11000, 1303, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(8000, 0, 0, 1489, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 1000, 1489, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 2000, 1489, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 3000, 1489, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 4000, 1489, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 5000, 1489, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 6000, 1489, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 7000, 1489, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 8000, 1489, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 9000, 1489, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 10000, 1489, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 11000, 1489, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(9000, 0, 0, 1676, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 1000, 1676, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 2000, 1676, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 3000, 1676, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 4000, 1676, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 5000, 1676, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 6000, 1676, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 7000, 1676, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 8000, 1676, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 9000, 1676, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 10000, 1676, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 11000, 1676, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(10000, 0, 0, 1862, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 1000, 1862, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 2000, 1862, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 3000, 1862, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 4000, 1862, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 5000, 1862, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 6000, 1862, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 7000, 1862, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 8000, 1862, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 9000, 1862, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 10000, 1862, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 11000, 1862, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(11000, 0, 0, 2048, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 1000, 2048, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 2000, 2048, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 3000, 2048, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 4000, 2048, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 5000, 2048, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 6000, 2048, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 7000, 2048, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 8000, 2048, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 9000, 2048, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 10000, 2048, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 11000, 2048, -482, 0x00, 0x78, 0x00, 0xFF), +}; + +Gfx sMantTexDL[] = { + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPLoadTextureBlock(sMantTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, MANT_TEX_WIDTH, MANT_TEX_HEIGHT, 0, G_TX_MIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD), + gsSPEndDisplayList(), +}; + +//! @bug sMantUnusedTex is 32x32 not 32x64, however this dlist is unused +Gfx sMantUnusedTexDL[] = { + gsDPPipeSync(), + gsDPSetTextureLUT(G_TT_NONE), + gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), + gsDPLoadTextureBlock(sMantUnusedTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_MIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD), + gsSPEndDisplayList(), +}; + +Gfx sMantDL[] = { + gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, TEXEL0, COMBINED, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED), + gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), + gsSPClearGeometryMode(G_CULL_BACK | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR), + gsSPSetGeometryMode(G_FOG | G_LIGHTING), + gsDPSetPrimColor(0, 0, 255, 255, 255, 255), + gsSPVertex(0x0C000000, 24, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPVertex(0x0C000180, 12, 12), + gsSP2Triangles(12, 13, 1, 0, 12, 1, 0, 0), + gsSP2Triangles(13, 14, 2, 0, 13, 2, 1, 0), + gsSP2Triangles(14, 15, 3, 0, 14, 3, 2, 0), + gsSP2Triangles(15, 16, 4, 0, 15, 4, 3, 0), + gsSP2Triangles(16, 17, 5, 0, 16, 5, 4, 0), + gsSP2Triangles(17, 18, 6, 0, 17, 6, 5, 0), + gsSP2Triangles(18, 19, 7, 0, 18, 7, 6, 0), + gsSP2Triangles(19, 20, 8, 0, 19, 8, 7, 0), + gsSP2Triangles(20, 21, 9, 0, 20, 9, 8, 0), + gsSP2Triangles(21, 22, 10, 0, 21, 10, 9, 0), + gsSP2Triangles(22, 23, 11, 0, 22, 11, 10, 0), + gsSPVertex(0x0C000240, 12, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPVertex(0x0C000300, 12, 12), + gsSP2Triangles(12, 13, 1, 0, 12, 1, 0, 0), + gsSP2Triangles(13, 14, 2, 0, 13, 2, 1, 0), + gsSP2Triangles(14, 15, 3, 0, 14, 3, 2, 0), + gsSP2Triangles(15, 16, 4, 0, 15, 4, 3, 0), + gsSP2Triangles(16, 17, 5, 0, 16, 5, 4, 0), + gsSP2Triangles(17, 18, 6, 0, 17, 6, 5, 0), + gsSP2Triangles(18, 19, 7, 0, 18, 7, 6, 0), + gsSP2Triangles(19, 20, 8, 0, 19, 8, 7, 0), + gsSP2Triangles(20, 21, 9, 0, 20, 9, 8, 0), + gsSP2Triangles(21, 22, 10, 0, 21, 10, 9, 0), + gsSP2Triangles(22, 23, 11, 0, 22, 11, 10, 0), + gsSPVertex(0x0C0003C0, 12, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPVertex(0x0C000480, 12, 12), + gsSP2Triangles(12, 13, 1, 0, 12, 1, 0, 0), + gsSP2Triangles(13, 14, 2, 0, 13, 2, 1, 0), + gsSP2Triangles(14, 15, 3, 0, 14, 3, 2, 0), + gsSP2Triangles(15, 16, 4, 0, 15, 4, 3, 0), + gsSP2Triangles(16, 17, 5, 0, 16, 5, 4, 0), + gsSP2Triangles(17, 18, 6, 0, 17, 6, 5, 0), + gsSP2Triangles(18, 19, 7, 0, 18, 7, 6, 0), + gsSP2Triangles(19, 20, 8, 0, 19, 8, 7, 0), + gsSP2Triangles(20, 21, 9, 0, 20, 9, 8, 0), + gsSP2Triangles(21, 22, 10, 0, 21, 10, 9, 0), + gsSP2Triangles(22, 23, 11, 0, 22, 11, 10, 0), + gsSPVertex(0x0C000540, 12, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPVertex(0x0C000600, 12, 12), + gsSP2Triangles(12, 13, 1, 0, 12, 1, 0, 0), + gsSP2Triangles(13, 14, 2, 0, 13, 2, 1, 0), + gsSP2Triangles(14, 15, 3, 0, 14, 3, 2, 0), + gsSP2Triangles(15, 16, 4, 0, 15, 4, 3, 0), + gsSP2Triangles(16, 17, 5, 0, 16, 5, 4, 0), + gsSP2Triangles(17, 18, 6, 0, 17, 6, 5, 0), + gsSP2Triangles(18, 19, 7, 0, 18, 7, 6, 0), + gsSP2Triangles(19, 20, 8, 0, 19, 8, 7, 0), + gsSP2Triangles(20, 21, 9, 0, 20, 9, 8, 0), + gsSP2Triangles(21, 22, 10, 0, 21, 10, 9, 0), + gsSP2Triangles(22, 23, 11, 0, 22, 11, 10, 0), + gsSPVertex(0x0C0006C0, 12, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPVertex(0x0C000780, 12, 12), + gsSP2Triangles(12, 13, 1, 0, 12, 1, 0, 0), + gsSP2Triangles(13, 14, 2, 0, 13, 2, 1, 0), + gsSP2Triangles(14, 15, 3, 0, 14, 3, 2, 0), + gsSP2Triangles(15, 16, 4, 0, 15, 4, 3, 0), + gsSP2Triangles(16, 17, 5, 0, 16, 5, 4, 0), + gsSP2Triangles(17, 18, 6, 0, 17, 6, 5, 0), + gsSP2Triangles(18, 19, 7, 0, 18, 7, 6, 0), + gsSP2Triangles(19, 20, 8, 0, 19, 8, 7, 0), + gsSP2Triangles(20, 21, 9, 0, 20, 9, 8, 0), + gsSP2Triangles(21, 22, 10, 0, 21, 10, 9, 0), + gsSP2Triangles(22, 23, 11, 0, 22, 11, 10, 0), + gsSPVertex(0x0C000840, 12, 0), + gsSP2Triangles(0, 1, 13, 0, 0, 13, 12, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 13, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 4, 16, 0, 3, 16, 15, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 6, 18, 0, 5, 18, 17, 0), + gsSP2Triangles(6, 7, 19, 0, 6, 19, 18, 0), + gsSP2Triangles(7, 8, 20, 0, 7, 20, 19, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 20, 0), + gsSP2Triangles(9, 10, 22, 0, 9, 22, 21, 0), + gsSP2Triangles(10, 11, 23, 0, 10, 23, 22, 0), + gsSPEndDisplayList(), +}; + +Vtx sMantVtx2[] = { + VTX(1000, 0, 0, 186, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 1000, 186, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 2000, 186, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 3000, 186, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 4000, 186, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 5000, 186, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 6000, 186, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 7000, 186, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 8000, 186, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 9000, 186, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 10000, 186, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(1000, 0, 11000, 186, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(0, 0, 0, 0, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 1000, 0, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 2000, 0, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 3000, 0, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 4000, 0, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 5000, 0, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 6000, 0, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 7000, 0, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 8000, 0, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 9000, 0, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 10000, 0, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(0, 0, 11000, 0, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(2000, 0, 0, 372, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 1000, 372, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 2000, 372, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 3000, 372, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 4000, 372, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 5000, 372, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 6000, 372, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 7000, 372, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 8000, 372, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 9000, 372, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 10000, 372, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(2000, 0, 11000, 372, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(3000, 0, 0, 559, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 1000, 559, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 2000, 559, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 3000, 559, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 4000, 559, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 5000, 559, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 6000, 559, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 7000, 559, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 8000, 559, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 9000, 559, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 10000, 559, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(3000, 0, 11000, 559, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(4000, 0, 0, 745, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 1000, 745, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 2000, 745, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 3000, 745, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 4000, 745, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 5000, 745, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 6000, 745, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 7000, 745, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 8000, 745, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 9000, 745, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 10000, 745, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(4000, 0, 11000, 745, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(5000, 0, 0, 931, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 1000, 931, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 2000, 931, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 3000, 931, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 4000, 931, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 5000, 931, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 6000, 931, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 7000, 931, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 8000, 931, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 9000, 931, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 10000, 931, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(5000, 0, 11000, 931, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(6000, 0, 0, 1117, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 1000, 1117, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 2000, 1117, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 3000, 1117, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 4000, 1117, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 5000, 1117, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 6000, 1117, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 7000, 1117, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 8000, 1117, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 9000, 1117, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 10000, 1117, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(6000, 0, 11000, 1117, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(7000, 0, 0, 1303, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 1000, 1303, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 2000, 1303, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 3000, 1303, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 4000, 1303, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 5000, 1303, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 6000, 1303, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 7000, 1303, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 8000, 1303, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 9000, 1303, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 10000, 1303, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(7000, 0, 11000, 1303, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(8000, 0, 0, 1489, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 1000, 1489, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 2000, 1489, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 3000, 1489, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 4000, 1489, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 5000, 1489, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 6000, 1489, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 7000, 1489, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 8000, 1489, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 9000, 1489, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 10000, 1489, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(8000, 0, 11000, 1489, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(9000, 0, 0, 1676, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 1000, 1676, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 2000, 1676, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 3000, 1676, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 4000, 1676, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 5000, 1676, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 6000, 1676, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 7000, 1676, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 8000, 1676, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 9000, 1676, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 10000, 1676, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(9000, 0, 11000, 1676, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(10000, 0, 0, 1862, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 1000, 1862, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 2000, 1862, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 3000, 1862, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 4000, 1862, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 5000, 1862, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 6000, 1862, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 7000, 1862, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 8000, 1862, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 9000, 1862, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 10000, 1862, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(10000, 0, 11000, 1862, -482, 0x00, 0x78, 0x00, 0xFF), + + VTX(11000, 0, 0, 2048, 2168, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 1000, 2048, 1928, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 2000, 2048, 1687, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 3000, 2048, 1446, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 4000, 2048, 1205, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 5000, 2048, 964, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 6000, 2048, 723, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 7000, 2048, 482, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 8000, 2048, 241, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 9000, 2048, 0, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 10000, 2048, -241, 0x00, 0x78, 0x00, 0xFF), + VTX(11000, 0, 11000, 2048, -482, 0x00, 0x78, 0x00, 0xFF), +}; diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c index 50ee39c8c9..59249d0061 100644 --- a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c +++ b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c @@ -1,4 +1,11 @@ +/* + * File: z_en_ganon_mant.c + * Overlay: ovl_En_Ganon_Mant + * Description: Ganondorf's Cape + */ + #include "z_en_ganon_mant.h" +#include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h" #define FLAGS 0x00000030 @@ -9,7 +16,6 @@ void EnGanonMant_Destroy(Actor* thisx, GlobalContext* globalCtx); void EnGanonMant_Update(Actor* thisx, GlobalContext* globalCtx); void EnGanonMant_Draw(Actor* thisx, GlobalContext* globalCtx); -/* const ActorInit En_Ganon_Mant_InitVars = { ACTOR_EN_GANON_MANT, ACTORCAT_BOSS, @@ -21,19 +27,438 @@ const ActorInit En_Ganon_Mant_InitVars = { (ActorFunc)EnGanonMant_Update, (ActorFunc)EnGanonMant_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Init.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Destroy.s") +static s16 sTearSizesMedium[] = { + 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23D84.s") +static s16 sTearSizesLarge[] = { + 0, 0, 0, 0, 1, 1, 2, 2, 2, 1, 1, 0, 0, 0, 0, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A23FE0.s") +static s16 sTearSizesSmall[] = { + 0, 0, 0, 0, 0, 0, 0, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A245A4.s") +typedef struct { + s16* tearAreaSizes; + s16 count; +} TearShape; // size = 0x8 -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Update.s") +/** + * The arrays pointed to by this table describe how many pixels should + * be removed from the cloak texture in a single pass + */ +static TearShape sTearShapes[] = { + { sTearSizesMedium, ARRAY_COUNT(sTearSizesMedium) }, + { sTearSizesMedium, ARRAY_COUNT(sTearSizesMedium) }, + { sTearSizesLarge, ARRAY_COUNT(sTearSizesLarge) }, + { sTearSizesSmall, ARRAY_COUNT(sTearSizesSmall) }, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/func_80A24884.s") +/// How much each joint is affected by backwards/forwards swaying motion +static f32 sBackSwayCoefficients[GANON_MANT_NUM_JOINTS] = { + 0.0f, 1.0f, 0.5f, 0.25f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ganon_Mant/EnGanonMant_Draw.s") +static f32 D_80A24DB4[] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; + +/// How much each joint is affected by sideways swaying motion, tends to 0 +static f32 sSideSwayCoefficients[GANON_MANT_NUM_JOINTS] = { + 0.0f, 1.0f, 0.9f, 0.8f, 0.7f, 0.6f, 0.5f, 0.4f, 0.3f, 0.2f, 0.1f, 0.0f, +}; + +static f32 D_80A24E00[] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; + +static f32 sDistMultipliers[GANON_MANT_NUM_JOINTS] = { + 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.1f, 1.2f, 1.3f, 1.4f, 1.5f, 1.6f, 1.7f, +}; + +static f32 D_80A24E48[] = { + 1.8f, +}; + +#define MAP_STRAND_TO_VTX(n) \ + (n) + GANON_MANT_NUM_JOINTS * 0, (n) + GANON_MANT_NUM_JOINTS * 1, (n) + GANON_MANT_NUM_JOINTS * 2, \ + (n) + GANON_MANT_NUM_JOINTS * 3, (n) + GANON_MANT_NUM_JOINTS * 4, (n) + GANON_MANT_NUM_JOINTS * 5, \ + (n) + GANON_MANT_NUM_JOINTS * 6, (n) + GANON_MANT_NUM_JOINTS * 7, (n) + GANON_MANT_NUM_JOINTS * 8, \ + (n) + GANON_MANT_NUM_JOINTS * 9, (n) + GANON_MANT_NUM_JOINTS * 10, (n) + GANON_MANT_NUM_JOINTS * 11 + +static u16 sVerticesMap[GANON_MANT_NUM_STRANDS * GANON_MANT_NUM_JOINTS] = { + MAP_STRAND_TO_VTX(11), MAP_STRAND_TO_VTX(10), MAP_STRAND_TO_VTX(9), MAP_STRAND_TO_VTX(8), + MAP_STRAND_TO_VTX(7), MAP_STRAND_TO_VTX(6), MAP_STRAND_TO_VTX(5), MAP_STRAND_TO_VTX(4), + MAP_STRAND_TO_VTX(3), MAP_STRAND_TO_VTX(2), MAP_STRAND_TO_VTX(1), MAP_STRAND_TO_VTX(0), +}; + +#include "ovl_en_ganon_mant_gfx.c" + +void EnGanonMant_Init(Actor* thisx, GlobalContext* globalCtx) { + EnGanonMant* this = THIS; + + this->actor.flags &= ~1; +} + +void EnGanonMant_Destroy(Actor* thisx, GlobalContext* globalCtx) { +} + +/** + * Randomly zeros portions of the cloak texture + */ +void EnGanonMant_Tear(EnGanonMant* this) { + s32 pad; + s16 i; + s16 areaX; + s16 areaY; + s16 texIdx; + f32 tx = Rand_ZeroFloat(MANT_TEX_WIDTH); + f32 ty = Rand_ZeroFloat(MANT_TEX_HEIGHT); + f32 tearAngle = Rand_ZeroFloat(2 * M_PI); + f32 tearDirX = sinf(tearAngle); + f32 tearDirY = cosf(tearAngle); + TearShape* shape = &sTearShapes[(s16)Rand_ZeroFloat(ARRAY_COUNT(sTearShapes) - 0.01f)]; + s16 count = shape->count; + s16* tearAreaSizes = shape->tearAreaSizes; + + for (i = 0; i < count; i++) { + if ((0 <= tx && tx < MANT_TEX_WIDTH) && (0 <= ty && ty < MANT_TEX_HEIGHT)) { + for (areaX = 0; areaX <= tearAreaSizes[i]; areaX++) { + texIdx = 0; + if (1) {} + for (areaY = 0; areaY <= tearAreaSizes[i]; areaY++) { + texIdx = (s16)((s16)tx + ((s16)ty * MANT_TEX_WIDTH)) + ((s16)areaX + ((s16)areaY * MANT_TEX_WIDTH)); + if (texIdx < ARRAY_COUNT(sMantTex)) { + sMantTex[texIdx] = 0; + } + } + } + } + tx += tearDirX; + ty += tearDirY; + } + + for (i = 0; i < 4; i++) { + this->strands[(s16)Rand_ZeroFloat(GANON_MANT_NUM_STRANDS - 0.1f)] + .torn[(s16)Rand_ZeroFloat(GANON_MANT_NUM_JOINTS - 0.1f)] = true; + } +} + +/** + * Updates the dynamic strands that control the shape and motion of the cloak + */ +void EnGanonMant_UpdateStrand(GlobalContext* globalCtx, EnGanonMant* this, Vec3f* root, Vec3f* pos, Vec3f* nextPos, + Vec3f* rot, Vec3f* vel, s16 strandNum) { + f32 xDiff; + f32 zDiff; + f32 gravity; + s32 pad[4]; + f32 yaw; + s16 i; + f32 x; + f32 y; + f32 z; + f32 jointLength; + Vec3f delta; + Vec3f posStep; + Vec3f backSwayOffset; + Vec3f sideSwayOffset; + + delta.y = 0; + if (this->actor.params == 0x23) { + // Pushes all the strands away from the actor + delta.x = 0.0f; + delta.z = -30.0f; + Matrix_RotateY(BINANG_TO_RAD(this->actor.shape.rot.y), MTXMODE_NEW); + Matrix_MultVec3f(&delta, &posStep); + for (i = 0; i < GANON_MANT_NUM_JOINTS; i++) { + (pos + i)->x += posStep.x; + (pos + i)->z += posStep.z; + } + // Set length + jointLength = 6.5f; + } else { + jointLength = 9.5f; + } + + for (i = 0; i < GANON_MANT_NUM_JOINTS; i++, pos++, vel++, rot++, nextPos++) { + if (i == 0) { + // Constraint: first position is always root + pos->x = root->x; + pos->y = root->y; + pos->z = root->z; + } else { + // Decelerate + Math_ApproachZeroF(&vel->x, 1.0f, 0.1f); + Math_ApproachZeroF(&vel->y, 1.0f, 0.1f); + Math_ApproachZeroF(&vel->z, 1.0f, 0.1f); + + // Push the cloak away from attached actor, plus oscillations + delta.x = 0; + delta.z = (this->backPush + (sinf((strandNum * (2 * M_PI)) / 2.1f) * this->backSwayMagnitude)) * + sBackSwayCoefficients[i]; + Matrix_RotateY(this->baseYaw, MTXMODE_NEW); + Matrix_MultVec3f(&delta, &backSwayOffset); + + // Push the cloak out to either side, in a swaying manner + delta.x = cosf((strandNum * M_PI) / (GANON_MANT_NUM_STRANDS - 1.0f)) * this->sideSwayMagnitude * + sSideSwayCoefficients[i]; + delta.z = 0; + Matrix_MultVec3f(&delta, &sideSwayOffset); + + // Calculate position difference + gravity = this->gravity; + x = ((pos->x + vel->x) - (pos - 1)->x) + (backSwayOffset.x + sideSwayOffset.x); + y = ((pos->y + vel->y) - (pos - 1)->y) + gravity; + z = ((pos->z + vel->z) - (pos - 1)->z) + (backSwayOffset.z + sideSwayOffset.z); + + // Calculate rotations in the direction of the position difference + yaw = Math_Atan2F(z, x); + x = -Math_Atan2F(sqrtf(SQ(x) + SQ(z)), y); + (rot - 1)->x = x; + + // Calculate real position difference of correct length in the correct direction + delta.x = 0; + delta.z = jointLength; + Matrix_RotateY(yaw, MTXMODE_NEW); + Matrix_RotateX(x, MTXMODE_APPLY); + Matrix_MultVec3f(&delta, &posStep); + + // Save position + x = pos->x; + y = pos->y; + z = pos->z; + + // Calculate next position + pos->x = (pos - 1)->x + posStep.x; + pos->y = (pos - 1)->y + posStep.y; + pos->z = (pos - 1)->z + posStep.z; + + // Pushes the cloak away from the actor if it is too close + xDiff = pos->x - this->actor.world.pos.x; + zDiff = pos->z - this->actor.world.pos.z; + if (sqrtf(SQ(xDiff) + SQ(zDiff)) < (sDistMultipliers[i] * this->minDist)) { + yaw = Math_Atan2F(zDiff, xDiff); + delta.z = this->minDist * sDistMultipliers[i]; + Matrix_RotateY(yaw, MTXMODE_NEW); + Matrix_MultVec3f(&delta, &posStep); + pos->x = this->actor.world.pos.x + posStep.x; + pos->z = this->actor.world.pos.z + posStep.z; + } + + // Enforces minY constraint + if (pos->y < this->minY) { + pos->y = this->minY; + } + + // Calculate next velocity + vel->x = (pos->x - x) * 80.0f / 100.0f; + vel->y = (pos->y - y) * 80.0f / 100.0f; + vel->z = (pos->z - z) * 80.0f / 100.0f; + + if (this->actor.params != 0x23) { + // Clamp elements of vel into [-5.0, 5.0] + if (vel->x > 5.0f) { + vel->x = 5.0f; + } else if (vel->x < -5.0f) { + vel->x = -5.0f; + } + if (vel->y > 5.0f) { + vel->y = 5.0f; + } else if (vel->y < -5.0f) { + vel->y = -5.0f; + } + if (vel->z > 5.0f) { + vel->z = 5.0f; + } else if (vel->z < -5.0f) { + vel->z = -5.0f; + } + } + + // update angle + xDiff = pos->x - nextPos->x; + zDiff = pos->z - nextPos->z; + (rot - 1)->y = Math_Atan2F(zDiff, xDiff); + } + } + rot[11].y = rot[10].y; + rot[11].x = rot[10].x; +} + +/** + * Update the cloak vertices using the current state of the strands + */ +void EnGanonMant_UpdateVertices(EnGanonMant* this) { + s16 i; + Vtx* vtx; + Vtx* vertices; + MantStrand* strand; + s16 j; + s16 k; + Vec3f up; + Vec3f normal; + + if (this->frameTimer % 2 != 0) { + vertices = SEGMENTED_TO_VIRTUAL(sMantVtx1); + } else { + vertices = SEGMENTED_TO_VIRTUAL(sMantVtx2); + } + up.x = 0.0f; + up.y = 30.0f; + up.z = 0.0f; + + strand = &this->strands[0]; + for (i = 0; i < GANON_MANT_NUM_STRANDS; i++, strand++) { + for (j = 0, k = 0; j < GANON_MANT_NUM_JOINTS; j++, k += GANON_MANT_NUM_JOINTS) { + vtx = &vertices[sVerticesMap[i + k]]; + vtx->n.ob[0] = strand->joints[j].x; + vtx->n.ob[1] = strand->joints[j].y; + vtx->n.ob[2] = strand->joints[j].z; + Matrix_RotateY(strand->rotations[j].y, MTXMODE_NEW); + Matrix_RotateX(strand->rotations[j].x, MTXMODE_APPLY); + Matrix_MultVec3f(&up, &normal); + vtx->n.n[0] = normal.x; + vtx->n.n[1] = normal.y; + vtx->n.n[2] = normal.z; + } + } +} + +void EnGanonMant_Update(Actor* thisx, GlobalContext* globalCtx) { + EnGanonMant* this = THIS; + BossGanon* ganon = (BossGanon*)this->actor.parent; + + this->updateHasRun = true; + this->frameTimer++; + + if (this->attachLeftArmTimer == 0.0f) { + } else { + this->attachLeftArmTimer -= 1.0f; + } + if (this->attachRightArmTimer != 0.0f) { + this->attachRightArmTimer -= 1.0f; + } + if (this->attachShouldersTimer != 0.0f) { + this->attachShouldersTimer -= 1.0f; + } + + this->actor.shape.rot.y = ganon->actor.shape.rot.y; + + if (this->tearTimer != 0) { + this->tearTimer--; + EnGanonMant_Tear(this); + } +} + +void EnGanonMant_DrawCloak(GlobalContext* globalCtx, EnGanonMant* this) { + s32 pad; + + OPEN_DISPS(globalCtx->state.gfxCtx, "../z_en_ganon_mant.c", 564); + + Matrix_Translate(0.0f, 0.0f, 0.0f, MTXMODE_NEW); + + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_en_ganon_mant.c", 572), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + // set texture + gSPDisplayList(POLY_OPA_DISP++, sMantTexDL); + + // set vertices, vertices are double buffered to prevent + // modification of vertices as they are being drawn + if (this->frameTimer % 2 != 0) { + gSPSegment(POLY_OPA_DISP++, 0x0C, sMantVtx1); + } else { + gSPSegment(POLY_OPA_DISP++, 0x0C, sMantVtx2); + } + + // draw cloak + gSPDisplayList(POLY_OPA_DISP++, sMantDL); + + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_en_ganon_mant.c", 584); +} + +void EnGanonMant_Draw(Actor* thisx, GlobalContext* globalCtx) { + EnGanonMant* this = THIS; + f32 xDiff; + f32 pitch; + Vec3f strandOffset; + Vec3f strandDivPos; + f32 zDiff; + f32 diffHalfDist; + f32 yDiff; + f32 yaw; + Vec3f* rightPos; + Vec3f* leftPos; + s16 strandIdx; + Vec3f midpoint; + s16 nextStrandIdx; + + if (this->updateHasRun) { + // Only run this if update has run since last draw + + // Choose endpoints + if (this->attachRightArmTimer != 0.0f) { + rightPos = &this->rightForearmPos; + leftPos = &this->leftShoulderPos; + this->gravity = -13.0f; + } else if (this->attachLeftArmTimer != 0.0f) { + rightPos = &this->rightShoulderPos; + leftPos = &this->leftForearmPos; + this->gravity = -13.0f; + } else if (this->attachShouldersTimer != 0.0f) { + rightPos = &this->rightShoulderPos; + leftPos = &this->leftShoulderPos; + this->gravity = -3.0f; + } else { + rightPos = &this->rightForearmPos; + leftPos = &this->leftForearmPos; + } + + xDiff = leftPos->x - rightPos->x; + yDiff = leftPos->y - rightPos->y; + zDiff = leftPos->z - rightPos->z; + + midpoint.x = rightPos->x + xDiff * 0.5f; + midpoint.y = rightPos->y + yDiff * 0.5f; + midpoint.z = rightPos->z + zDiff * 0.5f; + + // Calculte base orientation for chosen endpoints + yaw = Math_Atan2F(zDiff, xDiff); + pitch = -Math_Atan2F(sqrtf(SQ(xDiff) + SQ(zDiff)), yDiff); + diffHalfDist = sqrtf(SQ(xDiff) + SQ(yDiff) + SQ(zDiff)) * 0.5f; + + Matrix_RotateY(yaw, MTXMODE_NEW); + Matrix_RotateX(pitch, MTXMODE_APPLY); + this->baseYaw = yaw - M_PI / 2.0f; + + for (strandIdx = 0; strandIdx < GANON_MANT_NUM_STRANDS; strandIdx++) { + Matrix_Push(); + + // Calculate root positions for chosen endpoints + strandOffset.x = sinf((strandIdx * M_PI) / (GANON_MANT_NUM_STRANDS - 1)) * diffHalfDist; + strandOffset.y = 0; + strandOffset.z = -cosf((strandIdx * M_PI) / (GANON_MANT_NUM_STRANDS - 1)) * diffHalfDist; + Matrix_MultVec3f(&strandOffset, &strandDivPos); + this->strands[strandIdx].root.x = midpoint.x + strandDivPos.x; + this->strands[strandIdx].root.y = midpoint.y + strandDivPos.y; + this->strands[strandIdx].root.z = midpoint.z + strandDivPos.z; + + nextStrandIdx = strandIdx + 1; + if (nextStrandIdx >= GANON_MANT_NUM_STRANDS) { + nextStrandIdx = strandIdx - 1; + } + + // Update the strand joints + EnGanonMant_UpdateStrand(globalCtx, this, &this->strands[strandIdx].root, this->strands[strandIdx].joints, + this->strands[nextStrandIdx].joints, this->strands[strandIdx].rotations, + this->strands[strandIdx].velocities, strandIdx); + Matrix_Pop(); + } + EnGanonMant_UpdateVertices(this); + this->updateHasRun = false; + } + + EnGanonMant_DrawCloak(globalCtx, this); +} diff --git a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h index 0d12ac22ae..4a563fae9e 100644 --- a/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h +++ b/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.h @@ -6,34 +6,37 @@ struct EnGanonMant; +#define GANON_MANT_NUM_JOINTS 12 +#define GANON_MANT_NUM_STRANDS 12 + typedef struct { - /* 0x000 */ Vec3f unk_00; // 14C - /* 0x00C */ Vec3f unk_0C[12]; // 158 - /* 0x090 */ Vec3f unk_90[12]; // 1E8 - /* 0x120 */ Vec3f unk_120[12]; // 278 - /* 0x1B0 */ u8 unk_1B0[12]; // 308 -} MantSub14C; // size = 0x1C8 + /* 0x000 */ Vec3f root; // root position along the collar + /* 0x00C */ Vec3f joints[GANON_MANT_NUM_JOINTS]; // "joints" for deforming the cloak, stemming from root and propagating down the cloak + /* 0x090 */ Vec3f rotations[GANON_MANT_NUM_JOINTS]; // normal vector rotations, x and y only + /* 0x120 */ Vec3f velocities[GANON_MANT_NUM_JOINTS]; // velocities calculated as differences in position from last update + /* 0x1B0 */ u8 torn[GANON_MANT_NUM_JOINTS]; // guess: whether the joint is torn? +} MantStrand; // size = 0x1C8 typedef struct EnGanonMant { /* 0x0000 */ Actor actor; - /* 0x014C */ MantSub14C unk_14C[12]; - /* 0x16AC */ f32 unk_16AC; - /* 0x16B0 */ f32 unk_16B0; - /* 0x16B4 */ f32 unk_16B4; - /* 0x16B8 */ f32 unk_16B8; - /* 0x16BC */ f32 unk_16BC; - /* 0x16C0 */ f32 unk_16C0; - /* 0x16C4 */ f32 unk_16C4; - /* 0x16C8 */ f32 unk_16C8; - /* 0x16CC */ char unk_16CC[0x4]; - /* 0x16D0 */ f32 unk_16D0; - /* 0x16D4 */ Vec3f unk_16D4; - /* 0x16E0 */ Vec3f unk_16E0; - /* 0x16EC */ Vec3f unk_16EC; - /* 0x16F8 */ Vec3f unk_16F8; - /* 0x1704 */ u8 unk_1704; - /* 0x1705 */ u8 unk_1705; - /* 0x1706 */ u8 unk_1706; + /* 0x014C */ MantStrand strands[GANON_MANT_NUM_STRANDS]; + /* 0x16AC */ f32 minY; // minimum Y value possible for joints, for emulating collision with a floor + /* 0x16B0 */ f32 backPush; // larger values push the cloak further outwards, negative is away from the actor + /* 0x16B4 */ f32 backSwayMagnitude; // magnitude of backwards/forwards swaying + /* 0x16B8 */ f32 sideSwayMagnitude; // magnitude of sideways swaying + /* 0x16BC */ f32 attachRightArmTimer; // timer for the duration of which the cloak is attached to right forearm and left shoulder + /* 0x16C0 */ f32 attachLeftArmTimer; // timer for the duration of which the cloak is attached to left forearm and right shoulder + /* 0x16C4 */ f32 attachShouldersTimer; // timer for the duration of which the cloak is attached to both shoulders + /* 0x16C8 */ f32 gravity; // strand gravity + /* 0x16CC */ f32 baseYaw; + /* 0x16D0 */ f32 minDist; // closest distance the cloak can get to the attached actor without being pushed away + /* 0x16D4 */ Vec3f rightForearmPos; + /* 0x16E0 */ Vec3f leftForearmPos; + /* 0x16EC */ Vec3f rightShoulderPos; + /* 0x16F8 */ Vec3f leftShoulderPos; + /* 0x1704 */ u8 tearTimer; // tear the cloak for x many frames + /* 0x1705 */ u8 updateHasRun; + /* 0x1706 */ u8 frameTimer; } EnGanonMant; // size = 0x1708 extern const ActorInit En_Ganon_Mant_InitVars; diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c index 61843be28d..a7ea06ad89 100644 --- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c +++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c @@ -837,12 +837,12 @@ void func_80B2CC1C(GlobalContext* globalCtx, EnViewer* this) { if (this->actor.params >> 8 == 5) { if (1) {} - sGanonCape->unk_16B0 = BREG(54) / 10.0f; - sGanonCape->unk_16B4 = (BREG(60) + 25) / 100.0f; - sGanonCape->unk_16B8 = (BREG(55) - 45) / 10.0f; - sGanonCape->unk_16AC = -10000.0f; - sGanonCape->unk_16D0 = 0.0f; - sGanonCape->unk_16C8 = (BREG(67) - 10) / 10.0f; + sGanonCape->backPush = BREG(54) / 10.0f; + sGanonCape->backSwayMagnitude = (BREG(60) + 25) / 100.0f; + sGanonCape->sideSwayMagnitude = (BREG(55) - 45) / 10.0f; + sGanonCape->minY = -10000.0f; + sGanonCape->minDist = 0.0f; + sGanonCape->gravity = (BREG(67) - 10) / 10.0f; vec1.x = KREG(16) - 13.0f; vec1.y = KREG(17) + 3.0f + Math_SinS(D_80B2CFEC) * KREG(20); vec1.z = KREG(18) - 10.0f; @@ -850,13 +850,13 @@ void func_80B2CC1C(GlobalContext* globalCtx, EnViewer* this) { Matrix_RotateY((this->actor.shape.rot.y / (f32)0x8000) * M_PI, MTXMODE_NEW); Matrix_MultVec3f(&vec1, &vec2); - sGanonCape->unk_16D4.x = D_80B2D448.x + vec2.x; - sGanonCape->unk_16D4.y = D_80B2D448.y + vec2.y; - sGanonCape->unk_16D4.z = D_80B2D448.z + vec2.z; + sGanonCape->rightForearmPos.x = D_80B2D448.x + vec2.x; + sGanonCape->rightForearmPos.y = D_80B2D448.y + vec2.y; + sGanonCape->rightForearmPos.z = D_80B2D448.z + vec2.z; vec1.x = -(KREG(16) - 13.0f); Matrix_MultVec3f(&vec1, &vec2); - sGanonCape->unk_16E0.x = D_80B2D448.x + vec2.x; - sGanonCape->unk_16E0.y = D_80B2D448.y + vec2.y; - sGanonCape->unk_16E0.z = D_80B2D448.z + vec2.z; + sGanonCape->leftForearmPos.x = D_80B2D448.x + vec2.x; + sGanonCape->leftForearmPos.y = D_80B2D448.y + vec2.y; + sGanonCape->leftForearmPos.z = D_80B2D448.z + vec2.z; } }