diff --git a/asm/non_matchings/code/z_skin/func_800A57C0.s b/asm/non_matchings/code/z_skin/func_800A57C0.s deleted file mode 100644 index b802b52550..0000000000 --- a/asm/non_matchings/code/z_skin/func_800A57C0.s +++ /dev/null @@ -1,119 +0,0 @@ -glabel func_800A57C0 -/* B1C960 800A57C0 27BDFF70 */ addiu $sp, $sp, -0x90 -/* B1C964 800A57C4 AFBF005C */ sw $ra, 0x5c($sp) -/* B1C968 800A57C8 AFBE0058 */ sw $fp, 0x58($sp) -/* B1C96C 800A57CC AFB70054 */ sw $s7, 0x54($sp) -/* B1C970 800A57D0 AFB60050 */ sw $s6, 0x50($sp) -/* B1C974 800A57D4 AFB5004C */ sw $s5, 0x4c($sp) -/* B1C978 800A57D8 AFB40048 */ sw $s4, 0x48($sp) -/* B1C97C 800A57DC AFB30044 */ sw $s3, 0x44($sp) -/* B1C980 800A57E0 AFB20040 */ sw $s2, 0x40($sp) -/* B1C984 800A57E4 AFB1003C */ sw $s1, 0x3c($sp) -/* B1C988 800A57E8 AFB00038 */ sw $s0, 0x38($sp) -/* B1C98C 800A57EC F7BA0030 */ sdc1 $f26, 0x30($sp) -/* B1C990 800A57F0 F7B80028 */ sdc1 $f24, 0x28($sp) -/* B1C994 800A57F4 F7B60020 */ sdc1 $f22, 0x20($sp) -/* B1C998 800A57F8 F7B40018 */ sdc1 $f20, 0x18($sp) -/* B1C99C 800A57FC 94CE0000 */ lhu $t6, ($a2) -/* B1C9A0 800A5800 2417000A */ li $s7, 10 -/* B1C9A4 800A5804 00808025 */ move $s0, $a0 -/* B1C9A8 800A5808 01D70019 */ multu $t6, $s7 -/* B1C9AC 800A580C 00A0A025 */ move $s4, $a1 -/* B1C9B0 800A5810 00C0A825 */ move $s5, $a2 -/* B1C9B4 800A5814 00E0B025 */ move $s6, $a3 -/* B1C9B8 800A5818 00A08825 */ move $s1, $a1 -/* B1C9BC 800A581C 27BE0064 */ addiu $fp, $sp, 0x64 -/* B1C9C0 800A5820 00007812 */ mflo $t7 -/* B1C9C4 800A5824 01E5C021 */ addu $t8, $t7, $a1 -/* B1C9C8 800A5828 00B8082B */ sltu $at, $a1, $t8 -/* B1C9CC 800A582C 50200048 */ beql $at, $zero, .L800A5950 -/* B1C9D0 800A5830 8FBF005C */ lw $ra, 0x5c($sp) -/* B1C9D4 800A5834 4480A000 */ mtc1 $zero, $f20 -/* B1C9D8 800A5838 8FB300A0 */ lw $s3, 0xa0($sp) -/* B1C9DC 800A583C C6640000 */ lwc1 $f4, ($s3) -.L800A5840: -/* B1C9E0 800A5840 96390000 */ lhu $t9, ($s1) -/* B1C9E4 800A5844 02002025 */ move $a0, $s0 -/* B1C9E8 800A5848 4600218D */ trunc.w.s $f6, $f4 -/* B1C9EC 800A584C 00194100 */ sll $t0, $t9, 4 -/* B1C9F0 800A5850 01169021 */ addu $s2, $t0, $s6 -/* B1C9F4 800A5854 03C02825 */ move $a1, $fp -/* B1C9F8 800A5858 440A3000 */ mfc1 $t2, $f6 -/* B1C9FC 800A585C 27A60070 */ addiu $a2, $sp, 0x70 -/* B1CA00 800A5860 A64A0000 */ sh $t2, ($s2) -/* B1CA04 800A5864 C6680004 */ lwc1 $f8, 4($s3) -/* B1CA08 800A5868 4600428D */ trunc.w.s $f10, $f8 -/* B1CA0C 800A586C 440C5000 */ mfc1 $t4, $f10 -/* B1CA10 800A5870 00000000 */ nop -/* B1CA14 800A5874 A64C0002 */ sh $t4, 2($s2) -/* B1CA18 800A5878 C6700008 */ lwc1 $f16, 8($s3) -/* B1CA1C 800A587C 4600848D */ trunc.w.s $f18, $f16 -/* B1CA20 800A5880 440E9000 */ mfc1 $t6, $f18 -/* B1CA24 800A5884 00000000 */ nop -/* B1CA28 800A5888 A64E0004 */ sh $t6, 4($s2) -/* B1CA2C 800A588C C6160030 */ lwc1 $f22, 0x30($s0) -/* B1CA30 800A5890 C6180034 */ lwc1 $f24, 0x34($s0) -/* B1CA34 800A5894 C61A0038 */ lwc1 $f26, 0x38($s0) -/* B1CA38 800A5898 E6140038 */ swc1 $f20, 0x38($s0) -/* B1CA3C 800A589C E6140034 */ swc1 $f20, 0x34($s0) -/* B1CA40 800A58A0 E6140030 */ swc1 $f20, 0x30($s0) -/* B1CA44 800A58A4 822F0006 */ lb $t7, 6($s1) -/* B1CA48 800A58A8 448F2000 */ mtc1 $t7, $f4 -/* B1CA4C 800A58AC 00000000 */ nop -/* B1CA50 800A58B0 468021A0 */ cvt.s.w $f6, $f4 -/* B1CA54 800A58B4 E7A60064 */ swc1 $f6, 0x64($sp) -/* B1CA58 800A58B8 82380007 */ lb $t8, 7($s1) -/* B1CA5C 800A58BC 44984000 */ mtc1 $t8, $f8 -/* B1CA60 800A58C0 00000000 */ nop -/* B1CA64 800A58C4 468042A0 */ cvt.s.w $f10, $f8 -/* B1CA68 800A58C8 E7AA0068 */ swc1 $f10, 0x68($sp) -/* B1CA6C 800A58CC 82390008 */ lb $t9, 8($s1) -/* B1CA70 800A58D0 44998000 */ mtc1 $t9, $f16 -/* B1CA74 800A58D4 00000000 */ nop -/* B1CA78 800A58D8 468084A0 */ cvt.s.w $f18, $f16 -/* B1CA7C 800A58DC 0C029BBD */ jal SkinMatrix_Vec3fMtxFMultXYZ -/* B1CA80 800A58E0 E7B2006C */ swc1 $f18, 0x6c($sp) -/* B1CA84 800A58E4 C7A40070 */ lwc1 $f4, 0x70($sp) -/* B1CA88 800A58E8 2631000A */ addiu $s1, $s1, 0xa -/* B1CA8C 800A58EC 4600218D */ trunc.w.s $f6, $f4 -/* B1CA90 800A58F0 44093000 */ mfc1 $t1, $f6 -/* B1CA94 800A58F4 00000000 */ nop -/* B1CA98 800A58F8 A249000C */ sb $t1, 0xc($s2) -/* B1CA9C 800A58FC C7A80074 */ lwc1 $f8, 0x74($sp) -/* B1CAA0 800A5900 4600428D */ trunc.w.s $f10, $f8 -/* B1CAA4 800A5904 440B5000 */ mfc1 $t3, $f10 -/* B1CAA8 800A5908 00000000 */ nop -/* B1CAAC 800A590C A24B000D */ sb $t3, 0xd($s2) -/* B1CAB0 800A5910 C7B00078 */ lwc1 $f16, 0x78($sp) -/* B1CAB4 800A5914 4600848D */ trunc.w.s $f18, $f16 -/* B1CAB8 800A5918 440D9000 */ mfc1 $t5, $f18 -/* B1CABC 800A591C 00000000 */ nop -/* B1CAC0 800A5920 A24D000E */ sb $t5, 0xe($s2) -/* B1CAC4 800A5924 E6160030 */ swc1 $f22, 0x30($s0) -/* B1CAC8 800A5928 E6180034 */ swc1 $f24, 0x34($s0) -/* B1CACC 800A592C E61A0038 */ swc1 $f26, 0x38($s0) -/* B1CAD0 800A5930 96AE0000 */ lhu $t6, ($s5) -/* B1CAD4 800A5934 01D70019 */ multu $t6, $s7 -/* B1CAD8 800A5938 00007812 */ mflo $t7 -/* B1CADC 800A593C 01F4C021 */ addu $t8, $t7, $s4 -/* B1CAE0 800A5940 0238082B */ sltu $at, $s1, $t8 -/* B1CAE4 800A5944 5420FFBE */ bnezl $at, .L800A5840 -/* B1CAE8 800A5948 C6640000 */ lwc1 $f4, ($s3) -/* B1CAEC 800A594C 8FBF005C */ lw $ra, 0x5c($sp) -.L800A5950: -/* B1CAF0 800A5950 D7B40018 */ ldc1 $f20, 0x18($sp) -/* B1CAF4 800A5954 D7B60020 */ ldc1 $f22, 0x20($sp) -/* B1CAF8 800A5958 D7B80028 */ ldc1 $f24, 0x28($sp) -/* B1CAFC 800A595C D7BA0030 */ ldc1 $f26, 0x30($sp) -/* B1CB00 800A5960 8FB00038 */ lw $s0, 0x38($sp) -/* B1CB04 800A5964 8FB1003C */ lw $s1, 0x3c($sp) -/* B1CB08 800A5968 8FB20040 */ lw $s2, 0x40($sp) -/* B1CB0C 800A596C 8FB30044 */ lw $s3, 0x44($sp) -/* B1CB10 800A5970 8FB40048 */ lw $s4, 0x48($sp) -/* B1CB14 800A5974 8FB5004C */ lw $s5, 0x4c($sp) -/* B1CB18 800A5978 8FB60050 */ lw $s6, 0x50($sp) -/* B1CB1C 800A597C 8FB70054 */ lw $s7, 0x54($sp) -/* B1CB20 800A5980 8FBE0058 */ lw $fp, 0x58($sp) -/* B1CB24 800A5984 03E00008 */ jr $ra -/* B1CB28 800A5988 27BD0090 */ addiu $sp, $sp, 0x90 - diff --git a/asm/non_matchings/code/z_skin/func_800A5E28.s b/asm/non_matchings/code/z_skin/func_800A5E28.s deleted file mode 100644 index 3656c6933d..0000000000 --- a/asm/non_matchings/code/z_skin/func_800A5E28.s +++ /dev/null @@ -1,91 +0,0 @@ -.rdata -glabel D_80140698 - .asciz "../z_skin.c" - .balign 4 - -glabel D_801406A4 - .asciz "../z_skin.c" - .balign 4 - -.text -glabel func_800A5E28 -/* B1CFC8 800A5E28 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* B1CFCC 800A5E2C AFB00018 */ sw $s0, 0x18($sp) -/* B1CFD0 800A5E30 AFA60050 */ sw $a2, 0x50($sp) -/* B1CFD4 800A5E34 00808025 */ move $s0, $a0 -/* B1CFD8 800A5E38 AFBF001C */ sw $ra, 0x1c($sp) -/* B1CFDC 800A5E3C AFA5004C */ sw $a1, 0x4c($sp) -/* B1CFE0 800A5E40 AFA70054 */ sw $a3, 0x54($sp) -/* B1CFE4 800A5E44 3C068014 */ lui $a2, %hi(D_80140698) # $a2, 0x8014 -/* B1CFE8 800A5E48 24C60698 */ addiu $a2, %lo(D_80140698) # addiu $a2, $a2, 0x698 -/* B1CFEC 800A5E4C 2407016C */ li $a3, 364 -/* B1CFF0 800A5E50 02002825 */ move $a1, $s0 -/* B1CFF4 800A5E54 0C031AB1 */ jal Graph_OpenDisps -/* B1CFF8 800A5E58 27A4002C */ addiu $a0, $sp, 0x2c -/* B1CFFC 800A5E5C 8FAE004C */ lw $t6, 0x4c($sp) -/* B1D000 800A5E60 3C068016 */ lui $a2, %hi(gSegments) # $a2, 0x8016 -/* B1D004 800A5E64 24C66FA8 */ addiu $a2, %lo(gSegments) # addiu $a2, $a2, 0x6fa8 -/* B1D008 800A5E68 8DCF0000 */ lw $t7, ($t6) -/* B1D00C 800A5E6C 3C0700FF */ lui $a3, (0x00FFFFFF >> 16) # lui $a3, 0xff -/* B1D010 800A5E70 34E7FFFF */ ori $a3, (0x00FFFFFF & 0xFFFF) # ori $a3, $a3, 0xffff -/* B1D014 800A5E74 8DE20000 */ lw $v0, ($t7) -/* B1D018 800A5E78 3C088000 */ lui $t0, 0x8000 -/* B1D01C 800A5E7C 0002C100 */ sll $t8, $v0, 4 -/* B1D020 800A5E80 0018CF02 */ srl $t9, $t8, 0x1c -/* B1D024 800A5E84 00195080 */ sll $t2, $t9, 2 -/* B1D028 800A5E88 00CA5821 */ addu $t3, $a2, $t2 -/* B1D02C 800A5E8C 8D6C0000 */ lw $t4, ($t3) -/* B1D030 800A5E90 8FB80050 */ lw $t8, 0x50($sp) -/* B1D034 800A5E94 00476824 */ and $t5, $v0, $a3 -/* B1D038 800A5E98 018D7821 */ addu $t7, $t4, $t5 -/* B1D03C 800A5E9C 01E82821 */ addu $a1, $t7, $t0 -/* B1D040 800A5EA0 0018C880 */ sll $t9, $t8, 2 -/* B1D044 800A5EA4 00B95021 */ addu $t2, $a1, $t9 -/* B1D048 800A5EA8 8D430000 */ lw $v1, ($t2) -/* B1D04C 800A5EAC 01C02825 */ move $a1, $t6 -/* B1D050 800A5EB0 00036100 */ sll $t4, $v1, 4 -/* B1D054 800A5EB4 000C6F02 */ srl $t5, $t4, 0x1c -/* B1D058 800A5EB8 000D7880 */ sll $t7, $t5, 2 -/* B1D05C 800A5EBC 00CFC821 */ addu $t9, $a2, $t7 -/* B1D060 800A5EC0 8F2A0000 */ lw $t2, ($t9) -/* B1D064 800A5EC4 00675824 */ and $t3, $v1, $a3 -/* B1D068 800A5EC8 016A6021 */ addu $t4, $t3, $t2 -/* B1D06C 800A5ECC 01886821 */ addu $t5, $t4, $t0 -/* B1D070 800A5ED0 8DA4000C */ lw $a0, 0xc($t5) -/* B1D074 800A5ED4 0004C900 */ sll $t9, $a0, 4 -/* B1D078 800A5ED8 00195F02 */ srl $t3, $t9, 0x1c -/* B1D07C 800A5EDC 000B5080 */ sll $t2, $t3, 2 -/* B1D080 800A5EE0 00CA6021 */ addu $t4, $a2, $t2 -/* B1D084 800A5EE4 8D8D0000 */ lw $t5, ($t4) -/* B1D088 800A5EE8 8FAB0058 */ lw $t3, 0x58($sp) -/* B1D08C 800A5EEC 00877824 */ and $t7, $a0, $a3 -/* B1D090 800A5EF0 01EDC821 */ addu $t9, $t7, $t5 -/* B1D094 800A5EF4 316A0001 */ andi $t2, $t3, 1 -/* B1D098 800A5EF8 15400007 */ bnez $t2, .L800A5F18 -/* B1D09C 800A5EFC 03284821 */ addu $t1, $t9, $t0 -/* B1D0A0 800A5F00 02002025 */ move $a0, $s0 -/* B1D0A4 800A5F04 03003025 */ move $a2, $t8 -/* B1D0A8 800A5F08 8FA70054 */ lw $a3, 0x54($sp) -/* B1D0AC 800A5F0C 0C029663 */ jal func_800A598C -/* B1D0B0 800A5F10 AFA90040 */ sw $t1, 0x40($sp) -/* B1D0B4 800A5F14 8FA90040 */ lw $t1, 0x40($sp) -.L800A5F18: -/* B1D0B8 800A5F18 8E0302C0 */ lw $v1, 0x2c0($s0) -/* B1D0BC 800A5F1C 3C0FDE00 */ lui $t7, 0xde00 -/* B1D0C0 800A5F20 3C068014 */ lui $a2, %hi(D_801406A4) # $a2, 0x8014 -/* B1D0C4 800A5F24 246C0008 */ addiu $t4, $v1, 8 -/* B1D0C8 800A5F28 AE0C02C0 */ sw $t4, 0x2c0($s0) -/* B1D0CC 800A5F2C AC6F0000 */ sw $t7, ($v1) -/* B1D0D0 800A5F30 8D2D0008 */ lw $t5, 8($t1) -/* B1D0D4 800A5F34 24C606A4 */ addiu $a2, %lo(D_801406A4) # addiu $a2, $a2, 0x6a4 -/* B1D0D8 800A5F38 27A4002C */ addiu $a0, $sp, 0x2c -/* B1D0DC 800A5F3C 02002825 */ move $a1, $s0 -/* B1D0E0 800A5F40 24070179 */ li $a3, 377 -/* B1D0E4 800A5F44 0C031AD5 */ jal Graph_CloseDisps -/* B1D0E8 800A5F48 AC6D0004 */ sw $t5, 4($v1) -/* B1D0EC 800A5F4C 8FBF001C */ lw $ra, 0x1c($sp) -/* B1D0F0 800A5F50 8FB00018 */ lw $s0, 0x18($sp) -/* B1D0F4 800A5F54 27BD0048 */ addiu $sp, $sp, 0x48 -/* B1D0F8 800A5F58 03E00008 */ jr $ra -/* B1D0FC 800A5F5C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_skin/func_800A5F60.s b/asm/non_matchings/code/z_skin/func_800A5F60.s deleted file mode 100644 index a3d12efc09..0000000000 --- a/asm/non_matchings/code/z_skin/func_800A5F60.s +++ /dev/null @@ -1,108 +0,0 @@ -.rdata -glabel D_801406B0 - .asciz "../z_skin.c" - .balign 4 - -glabel D_801406BC - .asciz "../z_skin.c" - .balign 4 - -.text -glabel func_800A5F60 -/* B1D100 800A5F60 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* B1D104 800A5F64 AFB00018 */ sw $s0, 0x18($sp) -/* B1D108 800A5F68 AFA60060 */ sw $a2, 0x60($sp) -/* B1D10C 800A5F6C 00808025 */ move $s0, $a0 -/* B1D110 800A5F70 AFBF001C */ sw $ra, 0x1c($sp) -/* B1D114 800A5F74 AFA5005C */ sw $a1, 0x5c($sp) -/* B1D118 800A5F78 AFA70064 */ sw $a3, 0x64($sp) -/* B1D11C 800A5F7C 00E04025 */ move $t0, $a3 -/* B1D120 800A5F80 3C068014 */ lui $a2, %hi(D_801406B0) # $a2, 0x8014 -/* B1D124 800A5F84 24C606B0 */ addiu $a2, %lo(D_801406B0) # addiu $a2, $a2, 0x6b0 -/* B1D128 800A5F88 AFA80054 */ sw $t0, 0x54($sp) -/* B1D12C 800A5F8C 2407018B */ li $a3, 395 -/* B1D130 800A5F90 02002825 */ move $a1, $s0 -/* B1D134 800A5F94 0C031AB1 */ jal Graph_OpenDisps -/* B1D138 800A5F98 27A40038 */ addiu $a0, $sp, 0x38 -/* B1D13C 800A5F9C 8FAE005C */ lw $t6, 0x5c($sp) -/* B1D140 800A5FA0 3C048016 */ lui $a0, %hi(gSegments) # $a0, 0x8016 -/* B1D144 800A5FA4 24846FA8 */ addiu $a0, %lo(gSegments) # addiu $a0, $a0, 0x6fa8 -/* B1D148 800A5FA8 8DCF0000 */ lw $t7, ($t6) -/* B1D14C 800A5FAC 3C0500FF */ lui $a1, (0x00FFFFFF >> 16) # lui $a1, 0xff -/* B1D150 800A5FB0 8FAE0064 */ lw $t6, 0x64($sp) -/* B1D154 800A5FB4 8DE20000 */ lw $v0, ($t7) -/* B1D158 800A5FB8 34A5FFFF */ ori $a1, (0x00FFFFFF & 0xFFFF) # ori $a1, $a1, 0xffff -/* B1D15C 800A5FBC 3C068000 */ lui $a2, 0x8000 -/* B1D160 800A5FC0 0002C100 */ sll $t8, $v0, 4 -/* B1D164 800A5FC4 0018CF02 */ srl $t9, $t8, 0x1c -/* B1D168 800A5FC8 00194880 */ sll $t1, $t9, 2 -/* B1D16C 800A5FCC 00895021 */ addu $t2, $a0, $t1 -/* B1D170 800A5FD0 8D4B0000 */ lw $t3, ($t2) -/* B1D174 800A5FD4 00456024 */ and $t4, $v0, $a1 -/* B1D178 800A5FD8 8FA70060 */ lw $a3, 0x60($sp) -/* B1D17C 800A5FDC 016C6821 */ addu $t5, $t3, $t4 -/* B1D180 800A5FE0 8FA80054 */ lw $t0, 0x54($sp) -/* B1D184 800A5FE4 15C0000D */ bnez $t6, .L800A601C -/* B1D188 800A5FE8 01A61821 */ addu $v1, $t5, $a2 -/* B1D18C 800A5FEC 00077880 */ sll $t7, $a3, 2 -/* B1D190 800A5FF0 006FC021 */ addu $t8, $v1, $t7 -/* B1D194 800A5FF4 8F020000 */ lw $v0, ($t8) -/* B1D198 800A5FF8 00024900 */ sll $t1, $v0, 4 -/* B1D19C 800A5FFC 00095702 */ srl $t2, $t1, 0x1c -/* B1D1A0 800A6000 000A5880 */ sll $t3, $t2, 2 -/* B1D1A4 800A6004 008B6021 */ addu $t4, $a0, $t3 -/* B1D1A8 800A6008 8D8D0000 */ lw $t5, ($t4) -/* B1D1AC 800A600C 0045C824 */ and $t9, $v0, $a1 -/* B1D1B0 800A6010 032D7021 */ addu $t6, $t9, $t5 -/* B1D1B4 800A6014 01C67821 */ addu $t7, $t6, $a2 -/* B1D1B8 800A6018 8DE8000C */ lw $t0, 0xc($t7) -.L800A601C: -/* B1D1BC 800A601C 11000023 */ beqz $t0, .L800A60AC -/* B1D1C0 800A6020 02002025 */ move $a0, $s0 -/* B1D1C4 800A6024 3C098016 */ lui $t1, %hi(D_801600C0) # $t1, 0x8016 -/* B1D1C8 800A6028 252900C0 */ addiu $t1, %lo(D_801600C0) # addiu $t1, $t1, 0xc0 -/* B1D1CC 800A602C 0007C180 */ sll $t8, $a3, 6 -/* B1D1D0 800A6030 03092821 */ addu $a1, $t8, $t1 -/* B1D1D4 800A6034 0C029F9C */ jal SkinMatrix_MtxFToNewMtx -/* B1D1D8 800A6038 AFA80054 */ sw $t0, 0x54($sp) -/* B1D1DC 800A603C 1040001B */ beqz $v0, .L800A60AC -/* B1D1E0 800A6040 8FA80054 */ lw $t0, 0x54($sp) -/* B1D1E4 800A6044 8E0302C0 */ lw $v1, 0x2c0($s0) -/* B1D1E8 800A6048 3C0BDA38 */ lui $t3, 0xda38 -/* B1D1EC 800A604C 3C19DE00 */ lui $t9, 0xde00 -/* B1D1F0 800A6050 246A0008 */ addiu $t2, $v1, 8 -/* B1D1F4 800A6054 AE0A02C0 */ sw $t2, 0x2c0($s0) -/* B1D1F8 800A6058 AC620004 */ sw $v0, 4($v1) -/* B1D1FC 800A605C AC6B0000 */ sw $t3, ($v1) -/* B1D200 800A6060 8E0302C0 */ lw $v1, 0x2c0($s0) -/* B1D204 800A6064 3C0ED838 */ lui $t6, (0xD8380002 >> 16) # lui $t6, 0xd838 -/* B1D208 800A6068 35CE0002 */ ori $t6, (0xD8380002 & 0xFFFF) # ori $t6, $t6, 2 -/* B1D20C 800A606C 246C0008 */ addiu $t4, $v1, 8 -/* B1D210 800A6070 AE0C02C0 */ sw $t4, 0x2c0($s0) -/* B1D214 800A6074 AC680004 */ sw $t0, 4($v1) -/* B1D218 800A6078 AC790000 */ sw $t9, ($v1) -/* B1D21C 800A607C 8E0302C0 */ lw $v1, 0x2c0($s0) -/* B1D220 800A6080 240F0040 */ li $t7, 64 -/* B1D224 800A6084 3C09E700 */ lui $t1, 0xe700 -/* B1D228 800A6088 246D0008 */ addiu $t5, $v1, 8 -/* B1D22C 800A608C AE0D02C0 */ sw $t5, 0x2c0($s0) -/* B1D230 800A6090 AC6F0004 */ sw $t7, 4($v1) -/* B1D234 800A6094 AC6E0000 */ sw $t6, ($v1) -/* B1D238 800A6098 8E0302C0 */ lw $v1, 0x2c0($s0) -/* B1D23C 800A609C 24780008 */ addiu $t8, $v1, 8 -/* B1D240 800A60A0 AE1802C0 */ sw $t8, 0x2c0($s0) -/* B1D244 800A60A4 AC600004 */ sw $zero, 4($v1) -/* B1D248 800A60A8 AC690000 */ sw $t1, ($v1) -.L800A60AC: -/* B1D24C 800A60AC 3C068014 */ lui $a2, %hi(D_801406BC) # $a2, 0x8014 -/* B1D250 800A60B0 24C606BC */ addiu $a2, %lo(D_801406BC) # addiu $a2, $a2, 0x6bc -/* B1D254 800A60B4 27A40038 */ addiu $a0, $sp, 0x38 -/* B1D258 800A60B8 02002825 */ move $a1, $s0 -/* B1D25C 800A60BC 0C031AD5 */ jal Graph_CloseDisps -/* B1D260 800A60C0 240701B1 */ li $a3, 433 -/* B1D264 800A60C4 8FBF001C */ lw $ra, 0x1c($sp) -/* B1D268 800A60C8 8FB00018 */ lw $s0, 0x18($sp) -/* B1D26C 800A60CC 27BD0058 */ addiu $sp, $sp, 0x58 -/* B1D270 800A60D0 03E00008 */ jr $ra -/* B1D274 800A60D4 00000000 */ nop - diff --git a/asm/non_matchings/code/z_skin/func_800A60D8.s b/asm/non_matchings/code/z_skin/func_800A60D8.s deleted file mode 100644 index de42840719..0000000000 --- a/asm/non_matchings/code/z_skin/func_800A60D8.s +++ /dev/null @@ -1,171 +0,0 @@ -.rdata -glabel D_801406C8 - .asciz "../z_skin.c" - .balign 4 - -glabel D_801406D4 - .asciz "../z_skin.c" - .balign 4 - -.text -glabel func_800A60D8 -/* B1D278 800A60D8 27BDFF78 */ addiu $sp, $sp, -0x88 -/* B1D27C 800A60DC AFB20028 */ sw $s2, 0x28($sp) -/* B1D280 800A60E0 AFBF0044 */ sw $ra, 0x44($sp) -/* B1D284 800A60E4 AFBE0040 */ sw $fp, 0x40($sp) -/* B1D288 800A60E8 AFB7003C */ sw $s7, 0x3c($sp) -/* B1D28C 800A60EC AFB60038 */ sw $s6, 0x38($sp) -/* B1D290 800A60F0 AFB50034 */ sw $s5, 0x34($sp) -/* B1D294 800A60F4 AFB40030 */ sw $s4, 0x30($sp) -/* B1D298 800A60F8 AFB3002C */ sw $s3, 0x2c($sp) -/* B1D29C 800A60FC AFB10024 */ sw $s1, 0x24($sp) -/* B1D2A0 800A6100 AFB00020 */ sw $s0, 0x20($sp) -/* B1D2A4 800A6104 AFA40088 */ sw $a0, 0x88($sp) -/* B1D2A8 800A6108 AFA5008C */ sw $a1, 0x8c($sp) -/* B1D2AC 800A610C AFA70094 */ sw $a3, 0x94($sp) -/* B1D2B0 800A6110 8CB50000 */ lw $s5, ($a1) -/* B1D2B4 800A6114 00C09025 */ move $s2, $a2 -/* B1D2B8 800A6118 3C068014 */ lui $a2, %hi(D_801406C8) # $a2, 0x8014 -/* B1D2BC 800A611C 24C606C8 */ addiu $a2, %lo(D_801406C8) # addiu $a2, $a2, 0x6c8 -/* B1D2C0 800A6120 240701D7 */ li $a3, 471 -/* B1D2C4 800A6124 27A40060 */ addiu $a0, $sp, 0x60 -/* B1D2C8 800A6128 0C031AB1 */ jal Graph_OpenDisps -/* B1D2CC 800A612C 02A02825 */ move $a1, $s5 -/* B1D2D0 800A6130 8FB600A4 */ lw $s6, 0xa4($sp) -/* B1D2D4 800A6134 3C058016 */ lui $a1, %hi(D_801600C0) # $a1, 0x8016 -/* B1D2D8 800A6138 24A500C0 */ addiu $a1, %lo(D_801600C0) # addiu $a1, $a1, 0xc0 -/* B1D2DC 800A613C 32CF0001 */ andi $t7, $s6, 1 -/* B1D2E0 800A6140 15E00004 */ bnez $t7, .L800A6154 -/* B1D2E4 800A6144 02402025 */ move $a0, $s2 -/* B1D2E8 800A6148 8FA60088 */ lw $a2, 0x88($sp) -/* B1D2EC 800A614C 0C029AB1 */ jal func_800A6AC4 -/* B1D2F0 800A6150 8FA7009C */ lw $a3, 0x9c($sp) -.L800A6154: -/* B1D2F4 800A6154 8E450000 */ lw $a1, ($s2) -/* B1D2F8 800A6158 3C098016 */ lui $t1, %hi(gSegments) -/* B1D2FC 800A615C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* B1D300 800A6160 8CA20000 */ lw $v0, ($a1) -/* B1D304 800A6164 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* B1D308 800A6168 32CB0002 */ andi $t3, $s6, 2 -/* B1D30C 800A616C 0002C100 */ sll $t8, $v0, 4 -/* B1D310 800A6170 0018CF02 */ srl $t9, $t8, 0x1c -/* B1D314 800A6174 00194080 */ sll $t0, $t9, 2 -/* B1D318 800A6178 01284821 */ addu $t1, $t1, $t0 -/* B1D31C 800A617C 8D296FA8 */ lw $t1, %lo(gSegments)($t1) -/* B1D320 800A6180 00415024 */ and $t2, $v0, $at -/* B1D324 800A6184 3C018000 */ lui $at, 0x8000 -/* B1D328 800A6188 012A9821 */ addu $s3, $t1, $t2 -/* B1D32C 800A618C 15600015 */ bnez $t3, .L800A61E4 -/* B1D330 800A6190 02619821 */ addu $s3, $s3, $at -/* B1D334 800A6194 8EA402C0 */ lw $a0, 0x2c0($s5) -/* B1D338 800A6198 3C10DA38 */ lui $s0, 0xda38 -/* B1D33C 800A619C 3C0D8013 */ lui $t5, %hi(gMtxClear) # $t5, 0x8013 -/* B1D340 800A61A0 248C0008 */ addiu $t4, $a0, 8 -/* B1D344 800A61A4 AEAC02C0 */ sw $t4, 0x2c0($s5) -/* B1D348 800A61A8 25ADDB20 */ addiu $t5, %lo(gMtxClear) # addiu $t5, $t5, -0x24e0 -/* B1D34C 800A61AC 36100003 */ ori $s0, (0xDA380003 & 0xFFFF) # ori $s0, $s0, 3 -/* B1D350 800A61B0 AC900000 */ sw $s0, ($a0) -/* B1D354 800A61B4 AC8D0004 */ sw $t5, 4($a0) -/* B1D358 800A61B8 02A02025 */ move $a0, $s5 -/* B1D35C 800A61BC 0C029F9C */ jal SkinMatrix_MtxFToNewMtx -/* B1D360 800A61C0 26450004 */ addiu $a1, $s2, 4 -/* B1D364 800A61C4 10400048 */ beqz $v0, .L800A62E8 -/* B1D368 800A61C8 00000000 */ nop -/* B1D36C 800A61CC 8EA402C0 */ lw $a0, 0x2c0($s5) -/* B1D370 800A61D0 248E0008 */ addiu $t6, $a0, 8 -/* B1D374 800A61D4 AEAE02C0 */ sw $t6, 0x2c0($s5) -/* B1D378 800A61D8 AC820004 */ sw $v0, 4($a0) -/* B1D37C 800A61DC AC900000 */ sw $s0, ($a0) -/* B1D380 800A61E0 8E450000 */ lw $a1, ($s2) -.L800A61E4: -/* B1D384 800A61E4 90AF0004 */ lbu $t7, 4($a1) -/* B1D388 800A61E8 00008025 */ move $s0, $zero -/* B1D38C 800A61EC 02608825 */ move $s1, $s3 -/* B1D390 800A61F0 19E00036 */ blez $t7, .L800A62CC -/* B1D394 800A61F4 8FB700A0 */ lw $s7, 0xa0($sp) -/* B1D398 800A61F8 241E0004 */ li $fp, 4 -/* B1D39C 800A61FC 24140001 */ li $s4, 1 -/* B1D3A0 800A6200 8FB30098 */ lw $s3, 0x98($sp) -.L800A6204: -/* B1D3A4 800A6204 12600007 */ beqz $s3, .L800A6224 -/* B1D3A8 800A6208 02802025 */ move $a0, $s4 -/* B1D3AC 800A620C 8FA40088 */ lw $a0, 0x88($sp) -/* B1D3B0 800A6210 8FA5008C */ lw $a1, 0x8c($sp) -/* B1D3B4 800A6214 02003025 */ move $a2, $s0 -/* B1D3B8 800A6218 0260F809 */ jalr $s3 -/* B1D3BC 800A621C 02403825 */ move $a3, $s2 -/* B1D3C0 800A6220 00402025 */ move $a0, $v0 -.L800A6224: -/* B1D3C4 800A6224 8E220000 */ lw $v0, ($s1) -/* B1D3C8 800A6228 3C0A8016 */ lui $t2, %hi(gSegments) -/* B1D3CC 800A622C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff -/* B1D3D0 800A6230 0002C900 */ sll $t9, $v0, 4 -/* B1D3D4 800A6234 00194702 */ srl $t0, $t9, 0x1c -/* B1D3D8 800A6238 00084880 */ sll $t1, $t0, 2 -/* B1D3DC 800A623C 01495021 */ addu $t2, $t2, $t1 -/* B1D3E0 800A6240 8D4A6FA8 */ lw $t2, %lo(gSegments)($t2) -/* B1D3E4 800A6244 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff -/* B1D3E8 800A6248 0041C024 */ and $t8, $v0, $at -/* B1D3EC 800A624C 3C038000 */ lui $v1, 0x8000 -/* B1D3F0 800A6250 030A5821 */ addu $t3, $t8, $t2 -/* B1D3F4 800A6254 006B1821 */ addu $v1, $v1, $t3 -/* B1D3F8 800A6258 8C630008 */ lw $v1, 8($v1) -/* B1D3FC 800A625C 2401000B */ li $at, 11 -/* B1D400 800A6260 147E000A */ bne $v1, $fp, .L800A628C -/* B1D404 800A6264 00000000 */ nop -/* B1D408 800A6268 14940008 */ bne $a0, $s4, .L800A628C -/* B1D40C 800A626C 02402825 */ move $a1, $s2 -/* B1D410 800A6270 02A02025 */ move $a0, $s5 -/* B1D414 800A6274 02003025 */ move $a2, $s0 -/* B1D418 800A6278 02E03825 */ move $a3, $s7 -/* B1D41C 800A627C 0C02978A */ jal func_800A5E28 -/* B1D420 800A6280 AFB60010 */ sw $s6, 0x10($sp) -/* B1D424 800A6284 1000000B */ b .L800A62B4 -/* B1D428 800A6288 8E4C0000 */ lw $t4, ($s2) -.L800A628C: -/* B1D42C 800A628C 54610009 */ bnel $v1, $at, .L800A62B4 -/* B1D430 800A6290 8E4C0000 */ lw $t4, ($s2) -/* B1D434 800A6294 14940006 */ bne $a0, $s4, .L800A62B0 -/* B1D438 800A6298 02402825 */ move $a1, $s2 -/* B1D43C 800A629C 02A02025 */ move $a0, $s5 -/* B1D440 800A62A0 02003025 */ move $a2, $s0 -/* B1D444 800A62A4 00003825 */ move $a3, $zero -/* B1D448 800A62A8 0C0297D8 */ jal func_800A5F60 -/* B1D44C 800A62AC AFB60010 */ sw $s6, 0x10($sp) -.L800A62B0: -/* B1D450 800A62B0 8E4C0000 */ lw $t4, ($s2) -.L800A62B4: -/* B1D454 800A62B4 26100001 */ addiu $s0, $s0, 1 -/* B1D458 800A62B8 26310004 */ addiu $s1, $s1, 4 -/* B1D45C 800A62BC 918D0004 */ lbu $t5, 4($t4) -/* B1D460 800A62C0 020D082A */ slt $at, $s0, $t5 -/* B1D464 800A62C4 1420FFCF */ bnez $at, .L800A6204 -/* B1D468 800A62C8 00000000 */ nop -.L800A62CC: -/* B1D46C 800A62CC 8FA20094 */ lw $v0, 0x94($sp) -/* B1D470 800A62D0 8FA40088 */ lw $a0, 0x88($sp) -/* B1D474 800A62D4 8FA5008C */ lw $a1, 0x8c($sp) -/* B1D478 800A62D8 10400003 */ beqz $v0, .L800A62E8 -/* B1D47C 800A62DC 00000000 */ nop -/* B1D480 800A62E0 0040F809 */ jalr $v0 -/* B1D484 800A62E4 02403025 */ move $a2, $s2 -.L800A62E8: -/* B1D488 800A62E8 3C068014 */ lui $a2, %hi(D_801406D4) # $a2, 0x8014 -/* B1D48C 800A62EC 24C606D4 */ addiu $a2, %lo(D_801406D4) # addiu $a2, $a2, 0x6d4 -/* B1D490 800A62F0 27A40060 */ addiu $a0, $sp, 0x60 -/* B1D494 800A62F4 02A02825 */ move $a1, $s5 -/* B1D498 800A62F8 0C031AD5 */ jal Graph_CloseDisps -/* B1D49C 800A62FC 24070216 */ li $a3, 534 -/* B1D4A0 800A6300 8FBF0044 */ lw $ra, 0x44($sp) -/* B1D4A4 800A6304 8FB00020 */ lw $s0, 0x20($sp) -/* B1D4A8 800A6308 8FB10024 */ lw $s1, 0x24($sp) -/* B1D4AC 800A630C 8FB20028 */ lw $s2, 0x28($sp) -/* B1D4B0 800A6310 8FB3002C */ lw $s3, 0x2c($sp) -/* B1D4B4 800A6314 8FB40030 */ lw $s4, 0x30($sp) -/* B1D4B8 800A6318 8FB50034 */ lw $s5, 0x34($sp) -/* B1D4BC 800A631C 8FB60038 */ lw $s6, 0x38($sp) -/* B1D4C0 800A6320 8FB7003C */ lw $s7, 0x3c($sp) -/* B1D4C4 800A6324 8FBE0040 */ lw $fp, 0x40($sp) -/* B1D4C8 800A6328 03E00008 */ jr $ra -/* B1D4CC 800A632C 27BD0088 */ addiu $sp, $sp, 0x88 - diff --git a/asm/non_matchings/code/z_skin/func_800A6330.s b/asm/non_matchings/code/z_skin/func_800A6330.s deleted file mode 100644 index a9c3810ab4..0000000000 --- a/asm/non_matchings/code/z_skin/func_800A6330.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel func_800A6330 -/* B1D4D0 800A6330 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B1D4D4 800A6334 8FAE0038 */ lw $t6, 0x38($sp) -/* B1D4D8 800A6338 AFBF0024 */ sw $ra, 0x24($sp) -/* B1D4DC 800A633C AFA00010 */ sw $zero, 0x10($sp) -/* B1D4E0 800A6340 AFA00018 */ sw $zero, 0x18($sp) -/* B1D4E4 800A6344 AFA0001C */ sw $zero, 0x1c($sp) -/* B1D4E8 800A6348 0C029836 */ jal func_800A60D8 -/* B1D4EC 800A634C AFAE0014 */ sw $t6, 0x14($sp) -/* B1D4F0 800A6350 8FBF0024 */ lw $ra, 0x24($sp) -/* B1D4F4 800A6354 27BD0028 */ addiu $sp, $sp, 0x28 -/* B1D4F8 800A6358 03E00008 */ jr $ra -/* B1D4FC 800A635C 00000000 */ nop - diff --git a/asm/non_matchings/code/z_skin/func_800A6360.s b/asm/non_matchings/code/z_skin/func_800A6360.s deleted file mode 100644 index fc12d80e46..0000000000 --- a/asm/non_matchings/code/z_skin/func_800A6360.s +++ /dev/null @@ -1,15 +0,0 @@ -glabel func_800A6360 -/* B1D500 800A6360 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B1D504 800A6364 8FAE0038 */ lw $t6, 0x38($sp) -/* B1D508 800A6368 8FAF003C */ lw $t7, 0x3c($sp) -/* B1D50C 800A636C AFBF0024 */ sw $ra, 0x24($sp) -/* B1D510 800A6370 AFA00018 */ sw $zero, 0x18($sp) -/* B1D514 800A6374 AFA0001C */ sw $zero, 0x1c($sp) -/* B1D518 800A6378 AFAE0010 */ sw $t6, 0x10($sp) -/* B1D51C 800A637C 0C029836 */ jal func_800A60D8 -/* B1D520 800A6380 AFAF0014 */ sw $t7, 0x14($sp) -/* B1D524 800A6384 8FBF0024 */ lw $ra, 0x24($sp) -/* B1D528 800A6388 27BD0028 */ addiu $sp, $sp, 0x28 -/* B1D52C 800A638C 03E00008 */ jr $ra -/* B1D530 800A6390 00000000 */ nop - diff --git a/asm/non_matchings/code/z_skin/func_800A6394.s b/asm/non_matchings/code/z_skin/func_800A6394.s deleted file mode 100644 index 7562ec1864..0000000000 --- a/asm/non_matchings/code/z_skin/func_800A6394.s +++ /dev/null @@ -1,16 +0,0 @@ -glabel func_800A6394 -/* B1D534 800A6394 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B1D538 800A6398 8FAE0038 */ lw $t6, 0x38($sp) -/* B1D53C 800A639C 8FAF003C */ lw $t7, 0x3c($sp) -/* B1D540 800A63A0 8FB80040 */ lw $t8, 0x40($sp) -/* B1D544 800A63A4 AFBF0024 */ sw $ra, 0x24($sp) -/* B1D548 800A63A8 AFA0001C */ sw $zero, 0x1c($sp) -/* B1D54C 800A63AC AFAE0010 */ sw $t6, 0x10($sp) -/* B1D550 800A63B0 AFAF0014 */ sw $t7, 0x14($sp) -/* B1D554 800A63B4 0C029836 */ jal func_800A60D8 -/* B1D558 800A63B8 AFB80018 */ sw $t8, 0x18($sp) -/* B1D55C 800A63BC 8FBF0024 */ lw $ra, 0x24($sp) -/* B1D560 800A63C0 27BD0028 */ addiu $sp, $sp, 0x28 -/* B1D564 800A63C4 03E00008 */ jr $ra -/* B1D568 800A63C8 00000000 */ nop - diff --git a/asm/non_matchings/code/z_skin/func_800A63CC.s b/asm/non_matchings/code/z_skin/func_800A63CC.s deleted file mode 100644 index 1822a220b8..0000000000 --- a/asm/non_matchings/code/z_skin/func_800A63CC.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel func_800A63CC -/* B1D56C 800A63CC 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* B1D570 800A63D0 8FAE0038 */ lw $t6, 0x38($sp) -/* B1D574 800A63D4 8FAF003C */ lw $t7, 0x3c($sp) -/* B1D578 800A63D8 8FB80040 */ lw $t8, 0x40($sp) -/* B1D57C 800A63DC 8FB90044 */ lw $t9, 0x44($sp) -/* B1D580 800A63E0 AFBF0024 */ sw $ra, 0x24($sp) -/* B1D584 800A63E4 AFAE0010 */ sw $t6, 0x10($sp) -/* B1D588 800A63E8 AFAF0014 */ sw $t7, 0x14($sp) -/* B1D58C 800A63EC AFB80018 */ sw $t8, 0x18($sp) -/* B1D590 800A63F0 0C029836 */ jal func_800A60D8 -/* B1D594 800A63F4 AFB9001C */ sw $t9, 0x1c($sp) -/* B1D598 800A63F8 8FBF0024 */ lw $ra, 0x24($sp) -/* B1D59C 800A63FC 27BD0028 */ addiu $sp, $sp, 0x28 -/* B1D5A0 800A6400 03E00008 */ jr $ra -/* B1D5A4 800A6404 00000000 */ nop - diff --git a/asm/non_matchings/code/z_skin/func_800A6408.s b/asm/non_matchings/code/z_skin/func_800A6408.s deleted file mode 100644 index dadfeaeafc..0000000000 --- a/asm/non_matchings/code/z_skin/func_800A6408.s +++ /dev/null @@ -1,22 +0,0 @@ -glabel func_800A6408 -/* B1D5A8 800A6408 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* B1D5AC 800A640C 3C188016 */ lui $t8, %hi(D_801600C0) # $t8, 0x8016 -/* B1D5B0 800A6410 AFBF0014 */ sw $ra, 0x14($sp) -/* B1D5B4 800A6414 AFA40058 */ sw $a0, 0x58($sp) -/* B1D5B8 800A6418 AFA5005C */ sw $a1, 0x5c($sp) -/* B1D5BC 800A641C AFA60060 */ sw $a2, 0x60($sp) -/* B1D5C0 800A6420 271800C0 */ addiu $t8, %lo(D_801600C0) # addiu $t8, $t8, 0xc0 -/* B1D5C4 800A6424 00057980 */ sll $t7, $a1, 6 -/* B1D5C8 800A6428 AFA70064 */ sw $a3, 0x64($sp) -/* B1D5CC 800A642C 01F82821 */ addu $a1, $t7, $t8 -/* B1D5D0 800A6430 27A60018 */ addiu $a2, $sp, 0x18 -/* B1D5D4 800A6434 0C029BE8 */ jal SkinMatrix_MtxFMtxFMult -/* B1D5D8 800A6438 24840004 */ addiu $a0, $a0, 4 -/* B1D5DC 800A643C 27A40018 */ addiu $a0, $sp, 0x18 -/* B1D5E0 800A6440 8FA50060 */ lw $a1, 0x60($sp) -/* B1D5E4 800A6444 0C029BBD */ jal SkinMatrix_Vec3fMtxFMultXYZ -/* B1D5E8 800A6448 8FA60064 */ lw $a2, 0x64($sp) -/* B1D5EC 800A644C 8FBF0014 */ lw $ra, 0x14($sp) -/* B1D5F0 800A6450 27BD0058 */ addiu $sp, $sp, 0x58 -/* B1D5F4 800A6454 03E00008 */ jr $ra -/* B1D5F8 800A6458 00000000 */ nop diff --git a/data/z_skin.bss.s b/data/z_skin.bss.s deleted file mode 100644 index b03f894d8b..0000000000 --- a/data/z_skin.bss.s +++ /dev/null @@ -1,13 +0,0 @@ -.include "macro.inc" - -# assembler directives -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches -.set gp=64 # allow use of 64-bit general purpose registers - -.section .bss - -.balign 16 - -glabel D_801600C0 - .space 0xF10 diff --git a/include/functions.h b/include/functions.h index 21e81aeb19..29812ad146 100644 --- a/include/functions.h +++ b/include/functions.h @@ -1337,19 +1337,19 @@ void func_800A5428(SkelAnime* skelAnime, Vec3s* dst, Vec3s* src, u8* index); void func_800A54FC(SkelAnime* skelAnime, Vec3f* pos, s16 angle); s32 func_800A56C8(SkelAnime* skelAnime, f32 arg1); void SkelAnime_Free(SkelAnime* skelAnime, GlobalContext* globalCtx); -// ? func_800A57C0(?); -// ? func_800A598C(?); -// ? func_800A5E28(?); -// ? func_800A5F60(?); -// ? func_800A60D8(?); -void func_800A6330(Actor* this, GlobalContext* globalCtx, PSkinAwb*, void* callback, s32); -void func_800A63CC(Actor* this, GlobalContext* globalCtx, PSkinAwb*, s32, s32, s32, s32, s32); -void func_800A6408(PSkinAwb* skin, u8 joint, Vec3f*, Vec3f*); -// ? func_800A6460(?); -void func_800A663C(GlobalContext* globalCtx, PSkinAwb*, SkeletonHeader*, AnimationHeader*); -void func_800A6888(GlobalContext*, PSkinAwb*); -// ? func_800A698C(?); -// ? func_800A6AC4(?); +void func_800A57C0(MtxF* mtx, Struct_800A57C0* arg1, Struct_800A598C* arg2, Vtx* arg3, Vec3f* arg4); +void func_800A598C(GraphicsContext* gfxCtx, PSkinAwb* skin, s32 limbIndex, s32 arg3); +void func_800A5E28(GraphicsContext* gfxCtx, PSkinAwb* skin, s32 limbIndex, s32 arg3, s32 arg4); +void func_800A5F60(GraphicsContext* gfxCtx, PSkinAwb* skin, s32 limbIndex, Gfx* arg3, s32 arg4); +void func_800A60D8(Actor* actor, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, SkinCallback2 arg4, s32 arg5, s32 arg6, s32 arg7); +void func_800A6330(Actor* actor, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, s32 arg4); +void func_800A63CC(Actor* actor, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, SkinCallback2 arg4, s32 arg5, s32 arg6, s32 arg7); +void func_800A6408(PSkinAwb* skin, s32 joint, Vec3f* arg2, Vec3f* arg3); +void func_800A6460(GlobalContext* globalCtx, PSkinAwb* skin, s32 arg2); +void func_800A663C(GlobalContext* globalCtx, PSkinAwb* skin, SkeletonHeader* skeletonHeader, AnimationHeader* animationHeader); +void func_800A6888(GlobalContext* globalCtx, PSkinAwb* skin); +s32 func_800A698C(PSkinAwb* skin, SkinLimb** limbs, Mtx* arg2, u8 arg3, u8 arg4); +s32 func_800A6AC4(PSkinAwb* skin, MtxF* arg1, Actor* actor, s32 arg3); void SkinMatrix_Vec3fMtxFMultXYZW(MtxF* mf, Vec3f* src, Vec3f* xyzDest, f32* wDest); void SkinMatrix_Vec3fMtxFMultXYZ(MtxF* mf, Vec3f* src, Vec3f* dest); void SkinMatrix_MtxFMtxFMult(MtxF* mfB, MtxF* mfA, MtxF* dest); @@ -1361,6 +1361,7 @@ void SkinMatrix_SetRotateRPY(MtxF* mf, s16 roll, s16 pitch, s16 yaw); void SkinMatrix_SetTranslate(MtxF* mf, f32 x, f32 y, f32 z); void SkinMatrix_SetScaleRotateYRPTranslate(MtxF* mf, f32 scaleX, f32 scaleY, f32 scaleZ, s16 yaw, s16 roll, s16 pitch, f32 dx, f32 dy, f32 dz); +void SkinMatrix_SetRotateRPYTranslate(MtxF* mf, s16 roll, s16 pitch, s16 yaw, f32 dx, f32 dy, f32 dz); Mtx* SkinMatrix_MtxFToNewMtx(GraphicsContext* gfxCtx, MtxF* src); void func_800A7EC0(MtxF* mf, s16 a, f32 x, f32 y, f32 z); void Sram_InitNewSave(void); diff --git a/include/z64.h b/include/z64.h index 305f03b7e4..f7d9f65a99 100644 --- a/include/z64.h +++ b/include/z64.h @@ -1719,12 +1719,6 @@ typedef struct { /* 0x10D */ u8 unk_10D; } UnkRumbleStruct; // size = 0x10E -typedef struct { - char unk_00[0x48]; - void* avbTbl; - SkelAnime skelAnime; -} PSkinAwb; // size = 0x90 - typedef struct { /* 0x00 */ char unk_00[0x18]; /* 0x18 */ s32 unk_18; diff --git a/include/z64animation.h b/include/z64animation.h index 8f575ffcbc..a5c8c5dfba 100755 --- a/include/z64animation.h +++ b/include/z64animation.h @@ -35,7 +35,7 @@ typedef struct { /* 0x00 */ Vec3s jointPos; // Root is position in model space, children are relative to parent /* 0x06 */ u8 child; /* 0x07 */ u8 sibling; - /* 0x08 */ s32 unk_08; // Type of data contained in segment + /* 0x08 */ s32 unk_8; // Type of data contained in segment /* 0x0C */ UNK_PTR segment; // Segment address of data. Currently unclear what. } SkinLimb; // size = 0x10 @@ -243,4 +243,52 @@ typedef struct SkelAnime { /* 0x3E */ Vec3s unk_3E; } SkelAnime; // size = 0x44 +typedef struct { + /* 0x000 */ u16 unk_0; + /* 0x002 */ char unk_2[0x4]; + /* 0x006 */ s8 unk_6; + /* 0x007 */ s8 unk_7; + /* 0x008 */ s8 unk_8; + /* 0x009 */ char unk_9[0x1]; +} Struct_800A57C0; // size = 0xA + +typedef struct { + /* 0x000 */ u8 unk_0; + /* 0x002 */ s16 x; + /* 0x004 */ s16 y; + /* 0x006 */ s16 z; + /* 0x008 */ u8 unk_8; +} Struct_800A598C_2; // size = 0xA + +typedef struct { + /* 0x000 */ char unk_0[0x2]; + /* 0x002 */ u16 unk_2; + /* 0x004 */ u32 unk_4; + /* 0x008 */ Gfx* unk_8; +} Struct_800A5E28; + +typedef struct { + /* 0x000 */ u16 unk_0; + /* 0x002 */ u16 unk_2; + /* 0x004 */ u16 unk_4; + /* 0x008 */ s32 unk_8; + /* 0x00C */ s32 unk_C; +} Struct_800A598C; // size = 0x10 + +typedef struct { + /* 0x000 */ u8 unk_0; + /* 0x004 */ Vtx* buf[2]; +} SkinAvb; // size = 0xC + +typedef struct { + /* 0x000 */ SkeletonHeader* skeletonHeader; + /* 0x004 */ MtxF mtx; + /* 0x044 */ s32 avbCount; + /* 0x048 */ SkinAvb* avbTbl; + /* 0x04C */ SkelAnime skelAnime; +} PSkinAwb; // size = 0x90 + +typedef void (*SkinCallback)(struct Actor*, struct GlobalContext*, PSkinAwb*); +typedef s32 (*SkinCallback2)(struct Actor*, struct GlobalContext*, s32, PSkinAwb*); + #endif diff --git a/spec b/spec index eb88589aa8..14dc8d5067 100644 --- a/spec +++ b/spec @@ -338,7 +338,6 @@ beginseg include "build/src/code/z_scene_table.o" include "build/src/code/z_skelanime.o" include "build/src/code/z_skin.o" - include "build/data/z_skin.bss.o" include "build/src/code/z_skin_awb.o" include "build/src/code/z_skin_matrix.o" include "build/src/code/z_sram.o" diff --git a/src/code/z_skin.c b/src/code/z_skin.c index 9d8f9004f1..456fb4c784 100644 --- a/src/code/z_skin.c +++ b/src/code/z_skin.c @@ -1,21 +1,222 @@ #include "global.h" -#pragma GLOBAL_ASM("asm/non_matchings/code/z_skin/func_800A57C0.s") +MtxF D_801600C0[60]; +char D_80160FC0[0x10]; +void func_800A57C0(MtxF* mtx, Struct_800A57C0* arg1, Struct_800A598C* arg2, Vtx* arg3, Vec3f* arg4) { + Vtx* temp_s2; + Struct_800A57C0* phi_s1; + f32 temp_x; + f32 temp_y; + f32 temp_z; + Vec3f sp70; + Vec3f sp64; + + for (phi_s1 = arg1; phi_s1 < arg1 + arg2->unk_0; phi_s1++) { + temp_s2 = &arg3[phi_s1->unk_0]; + temp_s2->n.ob[0] = arg4->x; + temp_s2->n.ob[1] = arg4->y; + temp_s2->n.ob[2] = arg4->z; + temp_x = mtx->wx; + temp_y = mtx->wy; + temp_z = mtx->wz; + mtx->wz = 0.0f; + mtx->wy = 0.0f; + mtx->wx = 0.0f; + sp64.x = phi_s1->unk_6; + sp64.y = phi_s1->unk_7; + sp64.z = phi_s1->unk_8; + SkinMatrix_Vec3fMtxFMultXYZ(mtx, &sp64, &sp70); + temp_s2->n.n[0] = sp70.x; + temp_s2->n.n[1] = sp70.y; + temp_s2->n.n[2] = sp70.z; + mtx->wx = temp_x; + mtx->wy = temp_y; + mtx->wz = temp_z; + } +} + +#ifdef NON_MATCHING +// Regalloc, Stack +void func_800A598C(GraphicsContext* gfxCtx, PSkinAwb* skin, s32 limbIndex, s32 arg3) { + SkinLimb** limbs; + SkinLimb* limb; + Struct_800A5E28* data; + Struct_800A598C* phi_s6; + s32 temp_a0_2; + SkinAvb* avb; + Struct_800A598C* new_var; + Struct_800A57C0* temp_v0; + Struct_800A598C_2* temp_s3; + Vtx* spEC; + Vec3f spDC; + Vec3f spD0; + + OPEN_DISPS(gfxCtx, "../z_skin.c", 254); + + limbs = (SkinLimb**)SEGMENTED_TO_VIRTUAL(skin->skeletonHeader->segment); + limb = (SkinLimb*)SEGMENTED_TO_VIRTUAL(limbs[limbIndex]); + data = (Struct_800A5E28*)SEGMENTED_TO_VIRTUAL(limb->segment); + phi_s6 = &((Struct_800A598C*)SEGMENTED_TO_VIRTUAL(data->unk_4))[0]; + avb = &skin->avbTbl[limbIndex]; + spEC = avb->buf[avb->unk_0]; + new_var = &phi_s6[data->unk_2]; + while (phi_s6 < new_var) { + temp_a0_2 = phi_s6->unk_2; + temp_v0 = (Struct_800A57C0*)SEGMENTED_TO_VIRTUAL(phi_s6->unk_8); + temp_s3 = (Struct_800A598C_2*)SEGMENTED_TO_VIRTUAL(phi_s6->unk_C); + if (temp_a0_2 == 1) { + Vec3f spAC; + spAC.x = temp_s3[0].x; + spAC.y = temp_s3[0].y; + spAC.z = temp_s3[0].z; + SkinMatrix_Vec3fMtxFMultXYZ(&D_801600C0[temp_s3[0].unk_0], &spAC, &spDC); + } else if (arg3 == 1) { + Struct_800A598C_2* temp_s0 = &temp_s3[phi_s6->unk_4]; + Vec3f spA0; + spA0.x = temp_s0->x; + spA0.y = temp_s0->y; + spA0.z = temp_s0->z; + SkinMatrix_Vec3fMtxFMultXYZ(&D_801600C0[temp_s0->unk_0], &spA0, &spDC); + } else { + Struct_800A598C_2* phi_s0 = &temp_s3[0]; + f32 phi_f26 = 0.0f; + f32 phi_f24 = 0.0f; + f32 phi_f22 = 0.0f; + while (phi_s0 < &temp_s3[temp_a0_2]) { + Vec3f sp88; + f32 temp_f20 = phi_s0->unk_8 * 0.01f; + sp88.x = phi_s0->x; + sp88.y = phi_s0->y; + sp88.z = phi_s0->z; + SkinMatrix_Vec3fMtxFMultXYZ(&D_801600C0[phi_s0->unk_0], &sp88, &spD0); + spD0.x *= temp_f20; + spD0.y *= temp_f20; + spD0.z *= temp_f20; + phi_f26 += spD0.x; + phi_f24 += spD0.y; + phi_f22 += spD0.z; + phi_s0++; + } + spDC.x = phi_f26; + spDC.y = phi_f24; + spDC.z = phi_f22; + } + func_800A57C0(&D_801600C0[temp_s3[phi_s6->unk_4].unk_0], temp_v0, phi_s6, spEC, &spDC); + phi_s6++; + } + gSPSegment(POLY_OPA_DISP++, 0x08, avb->buf[avb->unk_0]); + if (avb->unk_0 == 0) { + avb->unk_0 = 1; + } else { + avb->unk_0 = 0; + } + + CLOSE_DISPS(gfxCtx, "../z_skin.c", 344); +} +#else #pragma GLOBAL_ASM("asm/non_matchings/code/z_skin/func_800A598C.s") +#endif -#pragma GLOBAL_ASM("asm/non_matchings/code/z_skin/func_800A5E28.s") +void func_800A5E28(GraphicsContext* gfxCtx, PSkinAwb* skin, s32 limbIndex, s32 arg3, s32 arg4) { + SkinLimb** limbs; + Struct_800A5E28* temp_t9; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_skin/func_800A5F60.s") + OPEN_DISPS(gfxCtx, "../z_skin.c", 364); + limbs = (SkinLimb**)SEGMENTED_TO_VIRTUAL(skin->skeletonHeader->segment); + temp_t9 = (Struct_800A5E28*)SEGMENTED_TO_VIRTUAL(((SkinLimb*)SEGMENTED_TO_VIRTUAL(limbs[limbIndex]))->segment); + if (!(arg4 & 1)) { + func_800A598C(gfxCtx, skin, limbIndex, arg3); + } + gSPDisplayList(POLY_OPA_DISP++, temp_t9->unk_8); + CLOSE_DISPS(gfxCtx, "../z_skin.c", 377); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_skin/func_800A60D8.s") +void func_800A5F60(GraphicsContext* gfxCtx, PSkinAwb* skin, s32 limbIndex, Gfx* arg3, s32 arg4) { + Gfx* gfx = arg3; + SkinLimb** limbs; + s32 pad; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_skin/func_800A6330.s") + OPEN_DISPS(gfxCtx, "../z_skin.c", 395); + limbs = SEGMENTED_TO_VIRTUAL(skin->skeletonHeader->segment); + if (arg3 == NULL) { + gfx = (Gfx*)((SkinLimb*)SEGMENTED_TO_VIRTUAL(limbs[limbIndex]))->segment; + } + if (gfx != NULL) { + Mtx* mtx = SkinMatrix_MtxFToNewMtx(gfxCtx, &D_801600C0[limbIndex]); + if (mtx != NULL) { + gSPMatrix(POLY_OPA_DISP++, mtx, G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, gfx); + gSPPopMatrix(POLY_OPA_DISP++, G_MTX_MODELVIEW); + gDPPipeSync(POLY_OPA_DISP++); + } + } + CLOSE_DISPS(gfxCtx, "../z_skin.c", 433); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_skin/func_800A6360.s") +void func_800A60D8(Actor* actor, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, SkinCallback2 arg4, + s32 arg5, s32 arg6, s32 arg7) { + s32 i; + s32 dataType; + SkinLimb** limbs; + GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; + s32 pad; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_skin/func_800A6394.s") + OPEN_DISPS(gfxCtx, "../z_skin.c", 471); + if ((arg7 & 1) == 0) { + func_800A6AC4(skin, &D_801600C0[0], actor, arg5); + } + limbs = SEGMENTED_TO_VIRTUAL(skin->skeletonHeader->segment); + if ((arg7 & 2) == 0) { + Mtx* mtx; + gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + mtx = SkinMatrix_MtxFToNewMtx(gfxCtx, &skin->mtx); + if (mtx == NULL) { + goto close_disps; + } + gSPMatrix(POLY_OPA_DISP++, mtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + } + for (i = 0; i < skin->skeletonHeader->limbCount; i++) { + s32 phi_a0 = 1; + if (arg4 != NULL) { + phi_a0 = arg4(actor, globalCtx, i, skin); + } + dataType = ((SkinLimb*)SEGMENTED_TO_VIRTUAL(limbs[i]))->unk_8; + if (dataType == 4 && phi_a0 == 1) { + func_800A5E28(gfxCtx, skin, i, arg6, arg7); + } else if (dataType == 0xB && phi_a0 == 1) { + func_800A5F60(gfxCtx, skin, i, NULL, arg7); + } + } + if (callback != NULL) { + callback(actor, globalCtx, skin); + } +close_disps: + CLOSE_DISPS(gfxCtx, "../z_skin.c", 534); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_skin/func_800A63CC.s") +void func_800A6330(Actor* this, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, s32 arg4) { + func_800A60D8(this, globalCtx, skin, callback, NULL, arg4, 0, 0); +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_skin/func_800A6408.s") +void func_800A6360(Actor* this, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, SkinCallback2 arg4, + s32 arg5) { + func_800A60D8(this, globalCtx, skin, callback, arg4, arg5, 0, 0); +} + +void func_800A6394(Actor* this, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, SkinCallback2 arg4, + s32 arg5, s32 arg6) { + func_800A60D8(this, globalCtx, skin, callback, arg4, arg5, arg6, 0); +} + +void func_800A63CC(Actor* this, GlobalContext* globalCtx, PSkinAwb* skin, SkinCallback callback, SkinCallback2 arg4, + s32 arg5, s32 arg6, s32 arg7) { + func_800A60D8(this, globalCtx, skin, callback, arg4, arg5, arg6, arg7); +} + +void func_800A6408(PSkinAwb* skin, s32 joint, Vec3f* arg2, Vec3f* arg3) { + MtxF sp18; + + SkinMatrix_MtxFMtxFMult(&skin->mtx, &D_801600C0[joint], &sp18); + SkinMatrix_Vec3fMtxFMultXYZ(&sp18, arg2, arg3); +} diff --git a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c index 73d10054c5..234d200d00 100644 --- a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c +++ b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c @@ -659,7 +659,7 @@ void EnHorseNormal_Draw(Actor* thisx, GlobalContext* globalCtx) { } gSPMatrix(POLY_OPA_DISP++, &gMtxClear, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(POLY_OPA_DISP++, mtx1, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - func_800A63CC(&this->actor, globalCtx, &this->skin, 0, 0, 1, 0, 3); + func_800A63CC(&this->actor, globalCtx, &this->skin, NULL, NULL, 1, 0, 3); this->cloneCollider.dim.pos.x = clonePos.x; this->cloneCollider.dim.pos.y = clonePos.y; this->cloneCollider.dim.pos.z = clonePos.z;