1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-05 15:34:41 +00:00

skelanime WIP, name Matrix_TranslateThanRotateZYX, match Matrix_Translate

This commit is contained in:
KrimtonZ 2020-03-23 16:31:24 -05:00
parent 6072055c85
commit 0d93e48035
76 changed files with 5149 additions and 4925 deletions

View file

@ -120,7 +120,7 @@ glabel func_8006CBAC
/* AE3EB4 8006CD14 448A3000 */ mtc1 $t2, $f6
/* AE3EB8 8006CD18 00000000 */ nop
/* AE3EBC 8006CD1C 46803220 */ cvt.s.w $f8, $f6
/* AE3EC0 8006CD20 0C0344D0 */ jal func_800D1340
/* AE3EC0 8006CD20 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* AE3EC4 8006CD24 E7A80068 */ swc1 $f8, 0x68($sp)
/* AE3EC8 8006CD28 C7AC0074 */ lwc1 $f12, 0x74($sp)
/* AE3ECC 8006CD2C C7AE0078 */ lwc1 $f14, 0x78($sp)

View file

@ -51,7 +51,7 @@ glabel func_8008F87C
/* B06AB4 8008F914 0C034213 */ jal Matrix_Push
/* B06AB8 8008F918 46062501 */ sub.s $f20, $f4, $f6
/* B06ABC 8008F91C 8FA400BC */ lw $a0, 0xbc($sp)
/* B06AC0 8008F920 0C0344D0 */ jal func_800D1340
/* B06AC0 8008F920 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B06AC4 8008F924 8FA500C0 */ lw $a1, 0xc0($sp)
/* B06AC8 8008F928 3C048012 */ lui $a0, %hi(D_8012602C) # $a0, 0x8012
/* B06ACC 8008F92C 2484602C */ addiu $a0, %lo(D_8012602C) # addiu $a0, $a0, 0x602c
@ -73,7 +73,7 @@ glabel func_8008F87C
/* B06B0C 8008F96C 00021040 */ sll $v0, $v0, 1
/* B06B10 8008F970 AFA20038 */ sw $v0, 0x38($sp)
/* B06B14 8008F974 01F82021 */ addu $a0, $t7, $t8
/* B06B18 8008F978 0C0344D0 */ jal func_800D1340
/* B06B18 8008F978 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B06B1C 8008F97C 03222821 */ addu $a1, $t9, $v0
/* B06B20 8008F980 3C038016 */ lui $v1, %hi(gSaveContext+4)
/* B06B24 8008F984 8C63E664 */ lw $v1, %lo(gSaveContext+4)($v1)

View file

@ -110,7 +110,7 @@ glabel func_8008FCC8
/* B06F9C 8008FDFC 24070001 */ li $a3, 1
/* B06FA0 8008FE00 84440000 */ lh $a0, ($v0)
/* B06FA4 8008FE04 84450002 */ lh $a1, 2($v0)
/* B06FA8 8008FE08 0C034421 */ jal Matrix_RotateXYZ
/* B06FA8 8008FE08 0C034421 */ jal Matrix_RotateZYX
/* B06FAC 8008FE0C 84460004 */ lh $a2, 4($v0)
/* B06FB0 8008FE10 8FA20040 */ lw $v0, 0x40($sp)
/* B06FB4 8008FE14 44800000 */ mtc1 $zero, $f0

View file

@ -108,7 +108,7 @@ glabel func_800907E4
/* B07AE0 80090940 00A12821 */ addu $a1, $a1, $at
/* B07AE4 80090944 000528C0 */ sll $a1, $a1, 3
/* B07AE8 80090948 00052C00 */ sll $a1, $a1, 0x10
/* B07AEC 8009094C 0C034421 */ jal Matrix_RotateXYZ
/* B07AEC 8009094C 0C034421 */ jal Matrix_RotateZYX
/* B07AF0 80090950 00052C03 */ sra $a1, $a1, 0x10
/* B07AF4 80090954 3C018014 */ lui $at, %hi(D_8013E930)
/* B07AF8 80090958 C42CE930 */ lwc1 $f12, %lo(D_8013E930)($at)

View file

@ -136,7 +136,7 @@ glabel func_80090D20
/* B07FD0 80090E30 24048000 */ li $a0, -32768
/* B07FD4 80090E34 00002825 */ move $a1, $zero
/* B07FD8 80090E38 24064000 */ li $a2, 16384
/* B07FDC 80090E3C 0C034421 */ jal Matrix_RotateXYZ
/* B07FDC 80090E3C 0C034421 */ jal Matrix_RotateZYX
/* B07FE0 80090E40 24070001 */ li $a3, 1
/* B07FE4 80090E44 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B07FE8 80090E48 44816000 */ mtc1 $at, $f12
@ -323,7 +323,7 @@ glabel func_80090D20
/* B082A4 80091104 240469E8 */ li $a0, 27112
/* B082A8 80091108 2405A8F8 */ li $a1, -22280
/* B082AC 8009110C 2406458E */ li $a2, 17806
/* B082B0 80091110 0C034421 */ jal Matrix_RotateXYZ
/* B082B0 80091110 0C034421 */ jal Matrix_RotateZYX
/* B082B4 80091114 24070001 */ li $a3, 1
/* B082B8 80091118 0C034236 */ jal Matrix_Get
/* B082BC 8009111C 27A4014C */ addiu $a0, $sp, 0x14c
@ -577,7 +577,7 @@ glabel func_80090D20
/* B08660 800914C0 00002025 */ move $a0, $zero
/* B08664 800914C4 2405C000 */ li $a1, -16384
/* B08668 800914C8 2406C000 */ li $a2, -16384
/* B0866C 800914CC 0C034421 */ jal Matrix_RotateXYZ
/* B0866C 800914CC 0C034421 */ jal Matrix_RotateZYX
/* B08670 800914D0 24070001 */ li $a3, 1
/* B08674 800914D4 0C034236 */ jal Matrix_Get
/* B08678 800914D8 27A40044 */ addiu $a0, $sp, 0x44
@ -707,7 +707,7 @@ glabel func_80090D20
/* B08844 800916A4 3C048012 */ lui $a0, %hi(D_801261CC) # $a0, 0x8012
/* B08848 800916A8 3C058012 */ lui $a1, %hi(D_801261D8) # $a1, 0x8012
/* B0884C 800916AC 24A561D8 */ addiu $a1, %lo(D_801261D8) # addiu $a1, $a1, 0x61d8
/* B08850 800916B0 0C0344D0 */ jal func_800D1340
/* B08850 800916B0 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B08854 800916B4 248461CC */ addiu $a0, %lo(D_801261CC) # addiu $a0, $a0, 0x61cc
/* B08858 800916B8 0C034236 */ jal Matrix_Get
/* B0885C 800916BC 26040A20 */ addiu $a0, $s0, 0xa20

View file

@ -108,7 +108,7 @@ glabel SkelAnime_Draw
/* B188A0 800A1700 1440001E */ bnez $v0, .L800A177C
.L800A1704:
/* B188A4 800A1704 27A40050 */ addiu $a0, $sp, 0x50
/* B188A8 800A1708 0C0344D0 */ jal func_800D1340
/* B188A8 800A1708 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B188AC 800A170C 27A50048 */ addiu $a1, $sp, 0x48
/* B188B0 800A1710 8FAF005C */ lw $t7, 0x5c($sp)
/* B188B4 800A1714 8FA70044 */ lw $a3, 0x44($sp)

View file

@ -94,7 +94,7 @@ glabel func_800A08A0
.L800A09D8:
/* B17B78 800A09D8 27A40054 */ addiu $a0, $sp, 0x54
/* B17B7C 800A09DC 27A5004C */ addiu $a1, $sp, 0x4c
/* B17B80 800A09E0 0C0344D0 */ jal func_800D1340
/* B17B80 800A09E0 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B17B84 800A09E4 AFA80064 */ sw $t0, 0x64($sp)
/* B17B88 800A09E8 8FB80060 */ lw $t8, 0x60($sp)
/* B17B8C 800A09EC 8FA80064 */ lw $t0, 0x64($sp)

View file

@ -110,7 +110,7 @@ glabel func_800A0B40
/* B17E20 800A0C80 1440001E */ bnez $v0, .L800A0CFC
.L800A0C84:
/* B17E24 800A0C84 27A40050 */ addiu $a0, $sp, 0x50
/* B17E28 800A0C88 0C0344D0 */ jal func_800D1340
/* B17E28 800A0C88 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B17E2C 800A0C8C 27A50048 */ addiu $a1, $sp, 0x48
/* B17E30 800A0C90 8FA9005C */ lw $t1, 0x5c($sp)
/* B17E34 800A0C94 8FA70044 */ lw $a3, 0x44($sp)

View file

@ -90,7 +90,7 @@ glabel func_800A0D94
/* B1804C 800A0EAC 1440003C */ bnez $v0, .L800A0FA0
.L800A0EB0:
/* B18050 800A0EB0 27A40058 */ addiu $a0, $sp, 0x58
/* B18054 800A0EB4 0C0344D0 */ jal func_800D1340
/* B18054 800A0EB4 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B18058 800A0EB8 27A50050 */ addiu $a1, $sp, 0x50
/* B1805C 800A0EBC 8FAF0068 */ lw $t7, 0x68($sp)
/* B18060 800A0EC0 8FAE0090 */ lw $t6, 0x90($sp)

View file

@ -133,7 +133,7 @@ glabel func_800A106C
.L800A11F8:
/* B18398 800A11F8 27A40064 */ addiu $a0, $sp, 0x64
/* B1839C 800A11FC 27A5005C */ addiu $a1, $sp, 0x5c
/* B183A0 800A1200 0C0344D0 */ jal func_800D1340
/* B183A0 800A1200 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B183A4 800A1204 AFA80054 */ sw $t0, 0x54($sp)
/* B183A8 800A1208 8FAC0074 */ lw $t4, 0x74($sp)
/* B183AC 800A120C 8FA80054 */ lw $t0, 0x54($sp)

View file

@ -91,7 +91,7 @@ glabel func_800A1344
.L800A1470:
/* B18610 800A1470 27A40054 */ addiu $a0, $sp, 0x54
/* B18614 800A1474 27A5004C */ addiu $a1, $sp, 0x4c
/* B18618 800A1478 0C0344D0 */ jal func_800D1340
/* B18618 800A1478 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B1861C 800A147C AFA80064 */ sw $t0, 0x64($sp)
/* B18620 800A1480 8FAD0060 */ lw $t5, 0x60($sp)
/* B18624 800A1484 8FA80064 */ lw $t0, 0x64($sp)

View file

@ -95,7 +95,7 @@ glabel func_800A180C
/* B18AD8 800A1938 1440002D */ bnez $v0, .L800A19F0
.L800A193C:
/* B18ADC 800A193C 27A40050 */ addiu $a0, $sp, 0x50
/* B18AE0 800A1940 0C0344D0 */ jal func_800D1340
/* B18AE0 800A1940 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B18AE4 800A1944 27A50048 */ addiu $a1, $sp, 0x48
/* B18AE8 800A1948 8FAB0060 */ lw $t3, 0x60($sp)
/* B18AEC 800A194C 8FAC0084 */ lw $t4, 0x84($sp)

View file

@ -130,7 +130,7 @@ glabel func_800A1AC8
.L800A1C48:
/* B18DE8 800A1C48 27A4005C */ addiu $a0, $sp, 0x5c
/* B18DEC 800A1C4C 27A50054 */ addiu $a1, $sp, 0x54
/* B18DF0 800A1C50 0C0344D0 */ jal func_800D1340
/* B18DF0 800A1C50 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B18DF4 800A1C54 AFA8004C */ sw $t0, 0x4c($sp)
/* B18DF8 800A1C58 8FAD006C */ lw $t5, 0x6c($sp)
/* B18DFC 800A1C5C 8FA8004C */ lw $t0, 0x4c($sp)

View file

@ -75,7 +75,7 @@ glabel func_800A2044
/* B192F0 800A2150 1440001B */ bnez $v0, .L800A21C0
.L800A2154:
/* B192F4 800A2154 27A40044 */ addiu $a0, $sp, 0x44
/* B192F8 800A2158 0C0344D0 */ jal func_800D1340
/* B192F8 800A2158 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B192FC 800A215C 27A5003C */ addiu $a1, $sp, 0x3c
/* B19300 800A2160 8FAA0050 */ lw $t2, 0x50($sp)
/* B19304 800A2164 8FAB0074 */ lw $t3, 0x74($sp)

View file

@ -93,7 +93,7 @@ glabel func_800A2288
/* B19544 800A23A4 1440001B */ bnez $v0, .L800A2414
.L800A23A8:
/* B19548 800A23A8 27A40040 */ addiu $a0, $sp, 0x40
/* B1954C 800A23AC 0C0344D0 */ jal func_800D1340
/* B1954C 800A23AC 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B19550 800A23B0 27A50038 */ addiu $a1, $sp, 0x38
/* B19554 800A23B4 8FAF004C */ lw $t7, 0x4c($sp)
/* B19558 800A23B8 8FB90070 */ lw $t9, 0x70($sp)

View file

@ -80,7 +80,7 @@ glabel func_800A24A0
/* B19750 800A25B0 1440002C */ bnez $v0, .L800A2664
.L800A25B4:
/* B19754 800A25B4 27A40050 */ addiu $a0, $sp, 0x50
/* B19758 800A25B8 0C0344D0 */ jal func_800D1340
/* B19758 800A25B8 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B1975C 800A25BC 27A50048 */ addiu $a1, $sp, 0x48
/* B19760 800A25C0 8FAB0060 */ lw $t3, 0x60($sp)
/* B19764 800A25C4 8FA80084 */ lw $t0, 0x84($sp)

View file

@ -109,7 +109,7 @@ glabel func_800A273C
/* B19A28 800A2888 14400027 */ bnez $v0, .L800A2928
.L800A288C:
/* B19A2C 800A288C 27A4004C */ addiu $a0, $sp, 0x4c
/* B19A30 800A2890 0C0344D0 */ jal func_800D1340
/* B19A30 800A2890 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* B19A34 800A2894 27A50044 */ addiu $a1, $sp, 0x44
/* B19A38 800A2898 8FAA005C */ lw $t2, 0x5c($sp)
/* B19A3C 800A289C 8FA40040 */ lw $a0, 0x40($sp)

View file

@ -156,7 +156,7 @@ glabel ArrowFire_Draw
/* 007E0 808664F0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 007E4 808664F4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 007E8 808664F8 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 007EC 808664FC 0C034421 */ jal Matrix_RotateXYZ
/* 007EC 808664FC 0C034421 */ jal Matrix_RotateZYX
/* 007F0 80866500 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 007F4 80866504 8FAD0098 */ lw $t5, 0x0098($sp)
/* 007F8 80866508 3C018086 */ lui $at, %hi(D_80867BBC) ## $at = 80860000

View file

@ -166,7 +166,7 @@ glabel ArrowIce_Draw
/* 00808 808684D8 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0080C 808684DC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00810 808684E0 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 00814 808684E4 0C034421 */ jal Matrix_RotateXYZ
/* 00814 808684E4 0C034421 */ jal Matrix_RotateZYX
/* 00818 808684E8 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 0081C 808684EC 8FAC0098 */ lw $t4, 0x0098($sp)
/* 00820 808684F0 3C018087 */ lui $at, %hi(D_80869B9C) ## $at = 80870000

View file

@ -165,7 +165,7 @@ glabel ArrowLight_Draw
/* 00804 8086A4B4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00808 8086A4B8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0080C 8086A4BC AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 00810 8086A4C0 0C034421 */ jal Matrix_RotateXYZ
/* 00810 8086A4C0 0C034421 */ jal Matrix_RotateZYX
/* 00814 8086A4C4 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00818 8086A4C8 8FAC0098 */ lw $t4, 0x0098($sp)
/* 0081C 8086A4CC 3C018087 */ lui $at, %hi(D_8086BB8C) ## $at = 80870000

View file

@ -145,7 +145,7 @@ glabel func_8086FDC0
/* 003FC 8086FFDC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00400 8086FFE0 84440030 */ lh $a0, 0x0030($v0) ## 00000030
/* 00404 8086FFE4 84450032 */ lh $a1, 0x0032($v0) ## 00000032
/* 00408 8086FFE8 0C034421 */ jal Matrix_RotateXYZ
/* 00408 8086FFE8 0C034421 */ jal Matrix_RotateZYX
/* 0040C 8086FFEC 84460034 */ lh $a2, 0x0034($v0) ## 00000034
/* 00410 8086FFF0 8FA20200 */ lw $v0, 0x0200($sp)
/* 00414 8086FFF4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001

View file

@ -69,7 +69,7 @@ glabel func_8088BC40
/* 00CC4 8088BD44 00052C03 */ sra $a1, $a1, 16
/* 00CC8 8088BD48 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 00CCC 8088BD4C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00CD0 8088BD50 0C034421 */ jal Matrix_RotateXYZ
/* 00CD0 8088BD50 0C034421 */ jal Matrix_RotateZYX
/* 00CD4 8088BD54 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00CD8 8088BD58 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
/* 00CDC 8088BD5C 3C01C128 */ lui $at, 0xC128 ## $at = C1280000

View file

@ -60,7 +60,7 @@ glabel BgMenkuriEye_Draw
/* 00348 8089BFB8 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 0034C 8089BFBC 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 00350 8089BFC0 86060034 */ lh $a2, 0x0034($s0) ## 00000034
/* 00354 8089BFC4 0C034421 */ jal Matrix_RotateXYZ
/* 00354 8089BFC4 0C034421 */ jal Matrix_RotateZYX
/* 00358 8089BFC8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0035C 8089BFCC C60C0050 */ lwc1 $f12, 0x0050($s0) ## 00000050
/* 00360 8089BFD0 C60E0054 */ lwc1 $f14, 0x0054($s0) ## 00000054

View file

@ -103,7 +103,7 @@ glabel func_808A3F58
/* 00910 808A40E0 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 00914 808A40E4 24058000 */ addiu $a1, $zero, 0x8000 ## $a1 = FFFF8000
/* 00918 808A40E8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0091C 808A40EC 0C034421 */ jal Matrix_RotateXYZ
/* 0091C 808A40EC 0C034421 */ jal Matrix_RotateZYX
/* 00920 808A40F0 872600B8 */ lh $a2, 0x00B8($t9) ## 000000B8
/* 00924 808A40F4 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
/* 00928 808A40F8 3C01C248 */ lui $at, 0xC248 ## $at = C2480000

View file

@ -113,7 +113,7 @@ glabel BgYdanSp_Draw
/* 01368 808C0778 00052C03 */ sra $a1, $a1, 16
/* 0136C 808C077C 2404FA60 */ addiu $a0, $zero, 0xFA60 ## $a0 = FFFFFA60
/* 01370 808C0780 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 01374 808C0784 0C034421 */ jal Matrix_RotateXYZ
/* 01374 808C0784 0C034421 */ jal Matrix_RotateZYX
/* 01378 808C0788 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0137C 808C078C 3C01442F */ lui $at, 0x442F ## $at = 442F0000
/* 01380 808C0790 44817000 */ mtc1 $at, $f14 ## $f14 = 700.00

View file

@ -8,7 +8,7 @@ glabel func_808C4940
/* 037C8 808C4958 AFA60058 */ sw $a2, 0x0058($sp)
.L808C495C:
/* 037CC 808C495C 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 037D0 808C4960 0C0344D0 */ jal func_800D1340
/* 037D0 808C4960 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* 037D4 808C4964 8FA50060 */ lw $a1, 0x0060($sp)
/* 037D8 808C4968 8FAF0058 */ lw $t7, 0x0058($sp)
/* 037DC 808C496C 3C06808D */ lui $a2, %hi(D_808CA5A0) ## $a2 = 808D0000

View file

@ -197,7 +197,7 @@ glabel L8091A7CC
.L8091A838:
/* 04E28 8091A838 8FA50078 */ lw $a1, 0x0078($sp)
/* 04E2C 8091A83C 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 04E30 8091A840 0C0344D0 */ jal func_800D1340
/* 04E30 8091A840 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* 04E34 8091A844 AFA9005C */ sw $t1, 0x005C($sp)
/* 04E38 8091A848 8FAC0070 */ lw $t4, 0x0070($sp)
/* 04E3C 8091A84C 8FA9005C */ lw $t1, 0x005C($sp)
@ -246,7 +246,7 @@ glabel L8091A7CC
glabel L8091A8F4
/* 04EE4 8091A8F4 8FA50078 */ lw $a1, 0x0078($sp)
/* 04EE8 8091A8F8 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 04EEC 8091A8FC 0C0344D0 */ jal func_800D1340
/* 04EEC 8091A8FC 0C0344D0 */ jal Matrix_TranslateThenRotateZYX
/* 04EF0 8091A900 AFA9005C */ sw $t1, 0x005C($sp)
/* 04EF4 8091A904 8FAF0070 */ lw $t7, 0x0070($sp)
/* 04EF8 8091A908 8FA9005C */ lw $t1, 0x005C($sp)

View file

@ -123,7 +123,7 @@ glabel func_8093639C
.L80936578:
/* 09FA8 80936578 8605001A */ lh $a1, 0x001A($s0) ## 0000071A
/* 09FAC 8093657C 8606001C */ lh $a2, 0x001C($s0) ## 0000071C
/* 09FB0 80936580 0C034421 */ jal Matrix_RotateXYZ
/* 09FB0 80936580 0C034421 */ jal Matrix_RotateZYX
/* 09FB4 80936584 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 09FB8 80936588 9619001E */ lhu $t9, 0x001E($s0) ## 0000071E
/* 09FBC 8093658C 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000

View file

@ -300,7 +300,7 @@ glabel L80959578
/* 0A378 80959638 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 0A37C 8095963C 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 0A380 80959640 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0A384 80959644 0C034421 */ jal Matrix_RotateXYZ
/* 0A384 80959644 0C034421 */ jal Matrix_RotateZYX
/* 0A388 80959648 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0A38C 8095964C C60401A0 */ lwc1 $f4, 0x01A0($s0) ## 000001A0
/* 0A390 80959650 3C013D80 */ lui $at, 0x3D80 ## $at = 3D800000

View file

@ -13,7 +13,7 @@ glabel func_8094F2C8
/* 00034 8094F2F4 862400B4 */ lh $a0, 0x00B4($s1) ## 000000B4
/* 00038 8094F2F8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 0003C 8094F2FC 862600B8 */ lh $a2, 0x00B8($s1) ## 000000B8
/* 00040 8094F300 0C034421 */ jal Matrix_RotateXYZ
/* 00040 8094F300 0C034421 */ jal Matrix_RotateZYX
/* 00044 8094F304 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00048 8094F308 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 0004C 8094F30C 3C188096 */ lui $t8, %hi(D_8095C044) ## $t8 = 80960000

View file

@ -156,7 +156,7 @@ glabel func_80958B0C
/* 09AA4 80958D64 87A4003E */ lh $a0, 0x003E($sp)
/* 09AA8 80958D68 87A5003C */ lh $a1, 0x003C($sp)
/* 09AAC 80958D6C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 09AB0 80958D70 0C034421 */ jal Matrix_RotateXYZ
/* 09AB0 80958D70 0C034421 */ jal Matrix_RotateZYX
/* 09AB4 80958D74 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 09AB8 80958D78 3C0D8096 */ lui $t5, %hi(D_809668D1) ## $t5 = 80960000
/* 09ABC 80958D7C 91AD68D1 */ lbu $t5, %lo(D_809668D1)($t5)

View file

@ -570,7 +570,7 @@ glabel func_8095A188
/* 0B758 8095AA18 8604002A */ lh $a0, 0x002A($s0) ## 0000018A
/* 0B75C 8095AA1C 8605002C */ lh $a1, 0x002C($s0) ## 0000018C
/* 0B760 8095AA20 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0B764 8095AA24 0C034421 */ jal Matrix_RotateXYZ
/* 0B764 8095AA24 0C034421 */ jal Matrix_RotateZYX
/* 0B768 8095AA28 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0B76C 8095AA2C C60C0040 */ lwc1 $f12, 0x0040($s0) ## 000001A0
/* 0B770 8095AA30 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
@ -710,7 +710,7 @@ glabel func_8095A188
/* 0B97C 8095AC3C 8604002A */ lh $a0, 0x002A($s0) ## 000001E2
/* 0B980 8095AC40 8605002C */ lh $a1, 0x002C($s0) ## 000001E4
/* 0B984 8095AC44 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0B988 8095AC48 0C034421 */ jal Matrix_RotateXYZ
/* 0B988 8095AC48 0C034421 */ jal Matrix_RotateZYX
/* 0B98C 8095AC4C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0B990 8095AC50 C60C0040 */ lwc1 $f12, 0x0040($s0) ## 000001F8
/* 0B994 8095AC54 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001

View file

@ -33,7 +33,7 @@ glabel func_80977950
/* 00638 809779C8 85C50168 */ lh $a1, 0x0168($t6) ## 00000168
/* 0063C 809779CC 24844000 */ addiu $a0, $a0, 0x4000 ## $a0 = 00004000
/* 00640 809779D0 00042400 */ sll $a0, $a0, 16
/* 00644 809779D4 0C034421 */ jal Matrix_RotateXYZ
/* 00644 809779D4 0C034421 */ jal Matrix_RotateZYX
/* 00648 809779D8 00042403 */ sra $a0, $a0, 16
/* 0064C 809779DC 3C028016 */ lui $v0, 0x8016 ## $v0 = 80160000
/* 00650 809779E0 8C42FA90 */ lw $v0, -0x0570($v0) ## 8015FA90

View file

@ -27,7 +27,7 @@ glabel func_8097911C
/* 0084C 8097917C 87A40056 */ lh $a0, 0x0056($sp)
/* 00850 80979180 87A50054 */ lh $a1, 0x0054($sp)
/* 00854 80979184 87A60052 */ lh $a2, 0x0052($sp)
/* 00858 80979188 0C034421 */ jal Matrix_RotateXYZ
/* 00858 80979188 0C034421 */ jal Matrix_RotateZYX
/* 0085C 8097918C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00860 80979190 3C058098 */ lui $a1, %hi(D_8097C030) ## $a1 = 80980000
/* 00864 80979194 24A5C030 */ addiu $a1, $a1, %lo(D_8097C030) ## $a1 = 8097C030

View file

@ -130,7 +130,7 @@ glabel EnBa_Draw
/* 01AD0 809B7E20 024B1021 */ addu $v0, $s2, $t3
/* 01AD4 809B7E24 844402A8 */ lh $a0, 0x02A8($v0) ## 000002A8
/* 01AD8 809B7E28 844502AA */ lh $a1, 0x02AA($v0) ## 000002AA
/* 01ADC 809B7E2C 0C034421 */ jal Matrix_RotateXYZ
/* 01ADC 809B7E2C 0C034421 */ jal Matrix_RotateZYX
/* 01AE0 809B7E30 844602AC */ lh $a2, 0x02AC($v0) ## 000002AC
/* 01AE4 809B7E34 C60C0200 */ lwc1 $f12, 0x0200($s0) ## 00000200
/* 01AE8 809B7E38 C60E0204 */ lwc1 $f14, 0x0204($s0) ## 00000204

View file

@ -139,7 +139,7 @@ glabel func_809B65A8
/* 00458 809B67A8 87A4005C */ lh $a0, 0x005C($sp)
/* 0045C 809B67AC 87A5005E */ lh $a1, 0x005E($sp)
/* 00460 809B67B0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00464 809B67B4 0C034421 */ jal Matrix_RotateXYZ
/* 00464 809B67B4 0C034421 */ jal Matrix_RotateZYX
/* 00468 809B67B8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0046C 809B67BC 02E02025 */ or $a0, $s7, $zero ## $a0 = 809B8080
/* 00470 809B67C0 0C0346BD */ jal Matrix_MultVec3f
@ -183,7 +183,7 @@ glabel func_809B65A8
/* 00500 809B6850 00042400 */ sll $a0, $a0, 16
/* 00504 809B6854 00042403 */ sra $a0, $a0, 16
/* 00508 809B6858 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0050C 809B685C 0C034421 */ jal Matrix_RotateXYZ
/* 0050C 809B685C 0C034421 */ jal Matrix_RotateZYX
/* 00510 809B6860 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00514 809B6864 02E02025 */ or $a0, $s7, $zero ## $a0 = 809B8080
/* 00518 809B6868 0C0346BD */ jal Matrix_MultVec3f
@ -229,7 +229,7 @@ glabel func_809B65A8
/* 005AC 809B68FC 00042400 */ sll $a0, $a0, 16
/* 005B0 809B6900 00042403 */ sra $a0, $a0, 16
/* 005B4 809B6904 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 005B8 809B6908 0C034421 */ jal Matrix_RotateXYZ
/* 005B8 809B6908 0C034421 */ jal Matrix_RotateZYX
/* 005BC 809B690C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 005C0 809B6910 02E02025 */ or $a0, $s7, $zero ## $a0 = 809B8080
/* 005C4 809B6914 0C0346BD */ jal Matrix_MultVec3f

View file

@ -126,7 +126,7 @@ glabel func_809B6B58
/* 009D0 809B6D20 00042400 */ sll $a0, $a0, 16
/* 009D4 809B6D24 00042403 */ sra $a0, $a0, 16
/* 009D8 809B6D28 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 009DC 809B6D2C 0C034421 */ jal Matrix_RotateXYZ
/* 009DC 809B6D2C 0C034421 */ jal Matrix_RotateZYX
/* 009E0 809B6D30 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 009E4 809B6D34 3C17809C */ lui $s7, %hi(D_809B8080) ## $s7 = 809C0000
/* 009E8 809B6D38 26F78080 */ addiu $s7, $s7, %lo(D_809B8080) ## $s7 = 809B8080
@ -175,7 +175,7 @@ glabel func_809B6B58
/* 00A88 809B6DD8 00042400 */ sll $a0, $a0, 16
/* 00A8C 809B6DDC 00042403 */ sra $a0, $a0, 16
/* 00A90 809B6DE0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00A94 809B6DE4 0C034421 */ jal Matrix_RotateXYZ
/* 00A94 809B6DE4 0C034421 */ jal Matrix_RotateZYX
/* 00A98 809B6DE8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00A9C 809B6DEC 02E02025 */ or $a0, $s7, $zero ## $a0 = 809B8080
/* 00AA0 809B6DF0 0C0346BD */ jal Matrix_MultVec3f
@ -250,7 +250,7 @@ glabel func_809B6B58
/* 00B98 809B6EE8 00042400 */ sll $a0, $a0, 16
/* 00B9C 809B6EEC 00042403 */ sra $a0, $a0, 16
/* 00BA0 809B6EF0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00BA4 809B6EF4 0C034421 */ jal Matrix_RotateXYZ
/* 00BA4 809B6EF4 0C034421 */ jal Matrix_RotateZYX
/* 00BA8 809B6EF8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00BAC 809B6EFC 3C17809C */ lui $s7, %hi(D_809B8080) ## $s7 = 809C0000
/* 00BB0 809B6F00 26F78080 */ addiu $s7, $s7, %lo(D_809B8080) ## $s7 = 809B8080
@ -317,7 +317,7 @@ glabel func_809B6B58
/* 00C94 809B6FE4 00042400 */ sll $a0, $a0, 16
/* 00C98 809B6FE8 00042403 */ sra $a0, $a0, 16
/* 00C9C 809B6FEC 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00CA0 809B6FF0 0C034421 */ jal Matrix_RotateXYZ
/* 00CA0 809B6FF0 0C034421 */ jal Matrix_RotateZYX
/* 00CA4 809B6FF4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00CA8 809B6FF8 02E02025 */ or $a0, $s7, $zero ## $a0 = 809B8080
/* 00CAC 809B6FFC 0C0346BD */ jal Matrix_MultVec3f

View file

@ -106,7 +106,7 @@ glabel func_809B71F0
/* 0102C 809B737C 87A4006C */ lh $a0, 0x006C($sp)
/* 01030 809B7380 87A5006E */ lh $a1, 0x006E($sp)
/* 01034 809B7384 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 01038 809B7388 0C034421 */ jal Matrix_RotateXYZ
/* 01038 809B7388 0C034421 */ jal Matrix_RotateZYX
/* 0103C 809B738C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01040 809B7390 3C04809C */ lui $a0, %hi(D_809B8080) ## $a0 = 809C0000
/* 01044 809B7394 24848080 */ addiu $a0, $a0, %lo(D_809B8080) ## $a0 = 809B8080
@ -155,7 +155,7 @@ glabel func_809B71F0
/* 010E8 809B7438 00042400 */ sll $a0, $a0, 16
/* 010EC 809B743C 00042403 */ sra $a0, $a0, 16
/* 010F0 809B7440 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 010F4 809B7444 0C034421 */ jal Matrix_RotateXYZ
/* 010F4 809B7444 0C034421 */ jal Matrix_RotateZYX
/* 010F8 809B7448 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 010FC 809B744C 3C04809C */ lui $a0, %hi(D_809B8080) ## $a0 = 809C0000
/* 01100 809B7450 24848080 */ addiu $a0, $a0, %lo(D_809B8080) ## $a0 = 809B8080
@ -206,7 +206,7 @@ glabel func_809B71F0
/* 011A8 809B74F8 00042400 */ sll $a0, $a0, 16
/* 011AC 809B74FC 00042403 */ sra $a0, $a0, 16
/* 011B0 809B7500 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 011B4 809B7504 0C034421 */ jal Matrix_RotateXYZ
/* 011B4 809B7504 0C034421 */ jal Matrix_RotateZYX
/* 011B8 809B7508 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 011BC 809B750C 3C04809C */ lui $a0, %hi(D_809B8080) ## $a0 = 809C0000
/* 011C0 809B7510 24848080 */ addiu $a0, $a0, %lo(D_809B8080) ## $a0 = 809B8080

View file

@ -92,7 +92,7 @@ glabel func_809B75A0
/* 013A4 809B76F4 00042400 */ sll $a0, $a0, 16
/* 013A8 809B76F8 00042403 */ sra $a0, $a0, 16
/* 013AC 809B76FC 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 013B0 809B7700 0C034421 */ jal Matrix_RotateXYZ
/* 013B0 809B7700 0C034421 */ jal Matrix_RotateZYX
/* 013B4 809B7704 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 013B8 809B7708 3C04809C */ lui $a0, %hi(D_809B8080) ## $a0 = 809C0000
/* 013BC 809B770C 24848080 */ addiu $a0, $a0, %lo(D_809B8080) ## $a0 = 809B8080
@ -136,7 +136,7 @@ glabel func_809B75A0
/* 01448 809B7798 00042400 */ sll $a0, $a0, 16
/* 0144C 809B779C 00042403 */ sra $a0, $a0, 16
/* 01450 809B77A0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 01454 809B77A4 0C034421 */ jal Matrix_RotateXYZ
/* 01454 809B77A4 0C034421 */ jal Matrix_RotateZYX
/* 01458 809B77A8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0145C 809B77AC 03C02025 */ or $a0, $s8, $zero ## $a0 = FFFFFFEC
/* 01460 809B77B0 0C0346BD */ jal Matrix_MultVec3f

View file

@ -69,7 +69,7 @@ glabel func_809B781C
/* 015CC 809B791C 00042400 */ sll $a0, $a0, 16
/* 015D0 809B7920 00042403 */ sra $a0, $a0, 16
/* 015D4 809B7924 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 015D8 809B7928 0C034421 */ jal Matrix_RotateXYZ
/* 015D8 809B7928 0C034421 */ jal Matrix_RotateZYX
/* 015DC 809B792C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 015E0 809B7930 3C1E809C */ lui $s8, %hi(D_809B8080) ## $s8 = 809C0000
/* 015E4 809B7934 27DE8080 */ addiu $s8, $s8, %lo(D_809B8080) ## $s8 = 809B8080
@ -132,7 +132,7 @@ glabel func_809B781C
/* 016B8 809B7A08 00042400 */ sll $a0, $a0, 16
/* 016BC 809B7A0C 00042403 */ sra $a0, $a0, 16
/* 016C0 809B7A10 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 016C4 809B7A14 0C034421 */ jal Matrix_RotateXYZ
/* 016C4 809B7A14 0C034421 */ jal Matrix_RotateZYX
/* 016C8 809B7A18 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 016CC 809B7A1C 03C02025 */ or $a0, $s8, $zero ## $a0 = 809B8080
/* 016D0 809B7A20 0C0346BD */ jal Matrix_MultVec3f
@ -180,7 +180,7 @@ glabel func_809B781C
/* 0176C 809B7ABC 00042400 */ sll $a0, $a0, 16
/* 01770 809B7AC0 00042403 */ sra $a0, $a0, 16
/* 01774 809B7AC4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 01778 809B7AC8 0C034421 */ jal Matrix_RotateXYZ
/* 01778 809B7AC8 0C034421 */ jal Matrix_RotateZYX
/* 0177C 809B7ACC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01780 809B7AD0 27A4006C */ addiu $a0, $sp, 0x006C ## $a0 = FFFFFFF4
/* 01784 809B7AD4 0C0346BD */ jal Matrix_MultVec3f

View file

@ -45,7 +45,7 @@ glabel func_809BA458
/* 0221C 809BA4FC 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 02220 809BA500 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 02224 809BA504 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 02228 809BA508 0C034421 */ jal Matrix_RotateXYZ
/* 02228 809BA508 0C034421 */ jal Matrix_RotateZYX
/* 0222C 809BA50C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 02230 809BA510 C60C0274 */ lwc1 $f12, 0x0274($s0) ## 00000274
/* 02234 809BA514 0C0343B5 */ jal Matrix_RotateZ

View file

@ -277,7 +277,7 @@ glabel func_809BA628
/* 02708 809BA9E8 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 0270C 809BA9EC 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 02710 809BA9F0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 02714 809BA9F4 0C034421 */ jal Matrix_RotateXYZ
/* 02714 809BA9F4 0C034421 */ jal Matrix_RotateZYX
/* 02718 809BA9F8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0271C 809BA9FC C60C0274 */ lwc1 $f12, 0x0274($s0) ## 00000274
/* 02720 809BAA00 0C0343B5 */ jal Matrix_RotateZ

View file

@ -53,7 +53,7 @@ glabel EnBom_Draw
/* 00C14 809C32E4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00C18 809C32E8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00C1C 809C32EC AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 00C20 809C32F0 0C034421 */ jal Matrix_RotateXYZ
/* 00C20 809C32F0 0C034421 */ jal Matrix_RotateZYX
/* 00C24 809C32F4 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 00C28 809C32F8 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00C2C 809C32FC 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000

View file

@ -180,7 +180,7 @@ glabel EnBx_Draw
/* 008CC 809D23AC 02491021 */ addu $v0, $s2, $t1
/* 008D0 809D23B0 844401B4 */ lh $a0, 0x01B4($v0) ## 000001B4
/* 008D4 809D23B4 844501B6 */ lh $a1, 0x01B6($v0) ## 000001B6
/* 008D8 809D23B8 0C034421 */ jal Matrix_RotateXYZ
/* 008D8 809D23B8 0C034421 */ jal Matrix_RotateZYX
/* 008DC 809D23BC 844601B8 */ lh $a2, 0x01B8($v0) ## 000001B8
/* 008E0 809D23C0 C60C0184 */ lwc1 $f12, 0x0184($s0) ## 00000184
/* 008E4 809D23C4 C60E0188 */ lwc1 $f14, 0x0188($s0) ## 00000188

View file

@ -29,7 +29,7 @@ glabel func_809E858C
/* 02E28 809E85F8 860401CA */ lh $a0, 0x01CA($s0) ## 000001CA
/* 02E2C 809E85FC 860500B6 */ lh $a1, 0x00B6($s0) ## 000000B6
/* 02E30 809E8600 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 02E34 809E8604 0C034421 */ jal Matrix_RotateXYZ
/* 02E34 809E8604 0C034421 */ jal Matrix_RotateZYX
/* 02E38 809E8608 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 02E3C 809E860C C7AC0044 */ lwc1 $f12, 0x0044($sp)
/* 02E40 809E8610 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001

View file

@ -115,7 +115,7 @@ glabel func_809E86B8
/* 0308C 809E885C 866401CA */ lh $a0, 0x01CA($s3) ## 000001CA
/* 03090 809E8860 860500B6 */ lh $a1, 0x00B6($s0) ## 000000B6
/* 03094 809E8864 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 03098 809E8868 0C034421 */ jal Matrix_RotateXYZ
/* 03098 809E8868 0C034421 */ jal Matrix_RotateZYX
/* 0309C 809E886C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 030A0 809E8870 8E8202C0 */ lw $v0, 0x02C0($s4) ## 000002C0
/* 030A4 809E8874 3C0CDA38 */ lui $t4, 0xDA38 ## $t4 = DA380000

View file

@ -15,7 +15,7 @@ glabel func_809E89E4
/* 03248 809E8A18 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0324C 809E8A1C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 03250 809E8A20 844401CE */ lh $a0, 0x01CE($v0) ## 000001CE
/* 03254 809E8A24 0C034421 */ jal Matrix_RotateXYZ
/* 03254 809E8A24 0C034421 */ jal Matrix_RotateZYX
/* 03258 809E8A28 844500B6 */ lh $a1, 0x00B6($v0) ## 000000B6
/* 0325C 809E8A2C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 03260 809E8A30 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000

View file

@ -257,7 +257,7 @@ glabel func_809ECA50
/* 00570 809ECDF0 87A40044 */ lh $a0, 0x0044($sp)
/* 00574 809ECDF4 87A50046 */ lh $a1, 0x0046($sp)
/* 00578 809ECDF8 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0057C 809ECDFC 0C034421 */ jal Matrix_RotateXYZ
/* 0057C 809ECDFC 0C034421 */ jal Matrix_RotateZYX
/* 00580 809ECE00 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00584 809ECE04 27A40064 */ addiu $a0, $sp, 0x0064 ## $a0 = FFFFFFDC
/* 00588 809ECE08 0C0346BD */ jal Matrix_MultVec3f
@ -275,7 +275,7 @@ glabel func_809ECA50
/* 005B8 809ECE38 87A40044 */ lh $a0, 0x0044($sp)
/* 005BC 809ECE3C 87A50046 */ lh $a1, 0x0046($sp)
/* 005C0 809ECE40 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 005C4 809ECE44 0C034421 */ jal Matrix_RotateXYZ
/* 005C4 809ECE44 0C034421 */ jal Matrix_RotateZYX
/* 005C8 809ECE48 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 005CC 809ECE4C 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE8
/* 005D0 809ECE50 0C0346BD */ jal Matrix_MultVec3f

View file

@ -17,7 +17,7 @@ glabel func_80A1B9D8
/* 01074 80A1BA14 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 01078 80A1BA18 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 0107C 80A1BA1C 86060034 */ lh $a2, 0x0034($s0) ## 00000034
/* 01080 80A1BA20 0C034421 */ jal Matrix_RotateXYZ
/* 01080 80A1BA20 0C034421 */ jal Matrix_RotateZYX
/* 01084 80A1BA24 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01088 80A1BA28 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 0108C 80A1BA2C 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000
@ -72,7 +72,7 @@ glabel func_80A1B9D8
/* 01140 80A1BAE0 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 01144 80A1BAE4 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 01148 80A1BAE8 86060034 */ lh $a2, 0x0034($s0) ## 00000034
/* 0114C 80A1BAEC 0C034421 */ jal Matrix_RotateXYZ
/* 0114C 80A1BAEC 0C034421 */ jal Matrix_RotateZYX
/* 01150 80A1BAF0 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01154 80A1BAF4 3C01C170 */ lui $at, 0xC170 ## $at = C1700000
/* 01158 80A1BAF8 44819000 */ mtc1 $at, $f18 ## $f18 = -15.00

View file

@ -159,7 +159,7 @@ glabel func_80A1CD24
/* 025EC 80A1CF8C 860400B4 */ lh $a0, 0x00B4($s0) ## 000000B4
/* 025F0 80A1CF90 860500B6 */ lh $a1, 0x00B6($s0) ## 000000B6
/* 025F4 80A1CF94 860600B8 */ lh $a2, 0x00B8($s0) ## 000000B8
/* 025F8 80A1CF98 0C034421 */ jal Matrix_RotateXYZ
/* 025F8 80A1CF98 0C034421 */ jal Matrix_RotateZYX
/* 025FC 80A1CF9C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 02600 80A1CFA0 8E0502B4 */ lw $a1, 0x02B4($s0) ## 000002B4
/* 02604 80A1CFA4 8E0602D0 */ lw $a2, 0x02D0($s0) ## 000002D0

View file

@ -21,7 +21,7 @@ glabel func_80A1FF8C
/* 00218 80A1FFD8 860400B4 */ lh $a0, 0x00B4($s0) ## 000000B4
/* 0021C 80A1FFDC 860500B6 */ lh $a1, 0x00B6($s0) ## 000000B6
/* 00220 80A1FFE0 860600B8 */ lh $a2, 0x00B8($s0) ## 000000B8
/* 00224 80A1FFE4 0C034421 */ jal Matrix_RotateXYZ
/* 00224 80A1FFE4 0C034421 */ jal Matrix_RotateZYX
/* 00228 80A1FFE8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0022C 80A1FFEC 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00230 80A1FFF0 3C01435C */ lui $at, 0x435C ## $at = 435C0000

View file

@ -239,7 +239,7 @@ glabel EnGb_Init
/* 0039C 80A2F51C 86440030 */ lh $a0, 0x0030($s2) ## 00000030
/* 003A0 80A2F520 86450032 */ lh $a1, 0x0032($s2) ## 00000032
/* 003A4 80A2F524 86460034 */ lh $a2, 0x0034($s2) ## 00000034
/* 003A8 80A2F528 0C034421 */ jal Matrix_RotateXYZ
/* 003A8 80A2F528 0C034421 */ jal Matrix_RotateZYX
/* 003AC 80A2F52C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 003B0 80A2F530 3C014230 */ lui $at, 0x4230 ## $at = 42300000
/* 003B4 80A2F534 44812000 */ mtc1 $at, $f4 ## $f4 = 44.00

View file

@ -15,7 +15,7 @@ glabel func_80A2F608
/* 004BC 80A2F63C 86240030 */ lh $a0, 0x0030($s1) ## 00000030
/* 004C0 80A2F640 86250032 */ lh $a1, 0x0032($s1) ## 00000032
/* 004C4 80A2F644 86260034 */ lh $a2, 0x0034($s1) ## 00000034
/* 004C8 80A2F648 0C034421 */ jal Matrix_RotateXYZ
/* 004C8 80A2F648 0C034421 */ jal Matrix_RotateZYX
/* 004CC 80A2F64C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 004D0 80A2F650 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 004D4 80A2F654 3C0141C8 */ lui $at, 0x41C8 ## $at = 41C80000
@ -56,7 +56,7 @@ glabel func_80A2F608
/* 0055C 80A2F6DC 86240030 */ lh $a0, 0x0030($s1) ## 00000030
/* 00560 80A2F6E0 86250032 */ lh $a1, 0x0032($s1) ## 00000032
/* 00564 80A2F6E4 86260034 */ lh $a2, 0x0034($s1) ## 00000034
/* 00568 80A2F6E8 0C034421 */ jal Matrix_RotateXYZ
/* 00568 80A2F6E8 0C034421 */ jal Matrix_RotateZYX
/* 0056C 80A2F6EC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00570 80A2F6F0 02402025 */ or $a0, $s2, $zero ## $a0 = 80A30778
/* 00574 80A2F6F4 0C0346BD */ jal Matrix_MultVec3f

View file

@ -136,7 +136,7 @@ glabel func_80A30350
/* 013E4 80A30564 24058000 */ addiu $a1, $zero, 0x8000 ## $a1 = FFFF8000
/* 013E8 80A30568 11C00003 */ beq $t6, $zero, .L80A30578
/* 013EC 80A3056C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 013F0 80A30570 0C034421 */ jal Matrix_RotateXYZ
/* 013F0 80A30570 0C034421 */ jal Matrix_RotateZYX
/* 013F4 80A30574 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
.L80A30578:
/* 013F8 80A30578 4406B000 */ mfc1 $a2, $f22

View file

@ -15,7 +15,7 @@ glabel func_80A3E090
/* 009E4 80A3E0C4 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 009E8 80A3E0C8 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 009EC 80A3E0CC 86060034 */ lh $a2, 0x0034($s0) ## 00000034
/* 009F0 80A3E0D0 0C034421 */ jal Matrix_RotateXYZ
/* 009F0 80A3E0D0 0C034421 */ jal Matrix_RotateZYX
/* 009F4 80A3E0D4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 009F8 80A3E0D8 E7B4003C */ swc1 $f20, 0x003C($sp)
/* 009FC 80A3E0DC E7B40038 */ swc1 $f20, 0x0038($sp)
@ -49,7 +49,7 @@ glabel func_80A3E090
/* 00A6C 80A3E14C 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 00A70 80A3E150 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 00A74 80A3E154 86060034 */ lh $a2, 0x0034($s0) ## 00000034
/* 00A78 80A3E158 0C034421 */ jal Matrix_RotateXYZ
/* 00A78 80A3E158 0C034421 */ jal Matrix_RotateZYX
/* 00A7C 80A3E15C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00A80 80A3E160 E7B4003C */ swc1 $f20, 0x003C($sp)
/* 00A84 80A3E164 E7B40038 */ swc1 $f20, 0x0038($sp)
@ -68,7 +68,7 @@ glabel func_80A3E090
/* 00AB8 80A3E198 86040030 */ lh $a0, 0x0030($s0) ## 00000030
/* 00ABC 80A3E19C 86050032 */ lh $a1, 0x0032($s0) ## 00000032
/* 00AC0 80A3E1A0 86060034 */ lh $a2, 0x0034($s0) ## 00000034
/* 00AC4 80A3E1A4 0C034421 */ jal Matrix_RotateXYZ
/* 00AC4 80A3E1A4 0C034421 */ jal Matrix_RotateZYX
/* 00AC8 80A3E1A8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00ACC 80A3E1AC E7B4003C */ swc1 $f20, 0x003C($sp)
/* 00AD0 80A3E1B0 E7B40038 */ swc1 $f20, 0x0038($sp)

View file

@ -46,7 +46,7 @@ glabel func_80A41068
/* 02BA8 80A41118 010D0019 */ multu $t0, $t5
/* 02BAC 80A4111C 00002012 */ mflo $a0
/* 02BB0 80A41120 00042400 */ sll $a0, $a0, 16
/* 02BB4 80A41124 0C034421 */ jal Matrix_RotateXYZ
/* 02BB4 80A41124 0C034421 */ jal Matrix_RotateZYX
/* 02BB8 80A41128 00042403 */ sra $a0, $a0, 16
/* 02BBC 80A4112C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 02BC0 80A41130 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000

View file

@ -53,7 +53,7 @@ glabel func_80A47AB0
/* 04E44 80A47B74 014F0019 */ multu $t2, $t7
/* 04E48 80A47B78 00002012 */ mflo $a0
/* 04E4C 80A47B7C 00042400 */ sll $a0, $a0, 16
/* 04E50 80A47B80 0C034421 */ jal Matrix_RotateXYZ
/* 04E50 80A47B80 0C034421 */ jal Matrix_RotateZYX
/* 04E54 80A47B84 00042403 */ sra $a0, $a0, 16
/* 04E58 80A47B88 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 04E5C 80A47B8C 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000

View file

@ -109,7 +109,7 @@ glabel EnKarebaba_Draw
/* 013BC 80A9670C 866400B4 */ lh $a0, 0x00B4($s3) ## 000000B4
/* 013C0 80A96710 866500B6 */ lh $a1, 0x00B6($s3) ## 000000B6
/* 013C4 80A96714 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 013C8 80A96718 0C034421 */ jal Matrix_RotateXYZ
/* 013C8 80A96718 0C034421 */ jal Matrix_RotateZYX
/* 013CC 80A9671C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 013D0 80A96720 8E6F0190 */ lw $t7, 0x0190($s3) ## 00000190
/* 013D4 80A96724 3C0380A9 */ lui $v1, %hi(func_80A95D90) ## $v1 = 80A90000
@ -245,7 +245,7 @@ glabel EnKarebaba_Draw
/* 015BC 80A9690C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 015C0 80A96910 016C2823 */ subu $a1, $t3, $t4
/* 015C4 80A96914 00052C00 */ sll $a1, $a1, 16
/* 015C8 80A96918 0C034421 */ jal Matrix_RotateXYZ
/* 015C8 80A96918 0C034421 */ jal Matrix_RotateZYX
/* 015CC 80A9691C 00052C03 */ sra $a1, $a1, 16
/* 015D0 80A96920 8E5002C0 */ lw $s0, 0x02C0($s2) ## 000002C0
/* 015D4 80A96924 3C0EDA38 */ lui $t6, 0xDA38 ## $t6 = DA380000

View file

@ -359,7 +359,7 @@ glabel EnPoSisters_Draw
/* 04600 80ADD590 00052C03 */ sra $a1, $a1, 16
/* 04604 80ADD594 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 04608 80ADD598 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0460C 80ADD59C 0C034421 */ jal Matrix_RotateXYZ
/* 0460C 80ADD59C 0C034421 */ jal Matrix_RotateZYX
/* 04610 80ADD5A0 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 04614 80ADD5A4 8FAC007C */ lw $t4, 0x007C($sp)
/* 04618 80ADD5A8 8E980190 */ lw $t8, 0x0190($s4) ## 00000190

View file

@ -121,7 +121,7 @@ glabel EnRr_Draw
/* 01F68 80AEA3A8 8604025C */ lh $a0, 0x025C($s0) ## 0000029C
/* 01F6C 80AEA3AC 8605025E */ lh $a1, 0x025E($s0) ## 0000029E
/* 01F70 80AEA3B0 86060260 */ lh $a2, 0x0260($s0) ## 000002A0
/* 01F74 80AEA3B4 0C034421 */ jal Matrix_RotateXYZ
/* 01F74 80AEA3B4 0C034421 */ jal Matrix_RotateZYX
/* 01F78 80AEA3B8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01F7C 80AEA3BC 0C034213 */ jal Matrix_Push
/* 01F80 80AEA3C0 00000000 */ nop

View file

@ -30,7 +30,7 @@ glabel func_80B01360
/* 03120 80B013D0 2404C000 */ addiu $a0, $zero, 0xC000 ## $a0 = FFFFC000
/* 03124 80B013D4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 03128 80B013D8 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0312C 80B013DC 0C034421 */ jal Matrix_RotateXYZ
/* 0312C 80B013DC 0C034421 */ jal Matrix_RotateZYX
/* 03130 80B013E0 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 03134 80B013E4 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 03138 80B013E8 3C0ADA38 */ lui $t2, 0xDA38 ## $t2 = DA380000

View file

@ -202,7 +202,7 @@ glabel EnVm_Draw
/* 014D0 80B2E930 86240254 */ lh $a0, 0x0254($s1) ## 00000254
/* 014D4 80B2E934 86250256 */ lh $a1, 0x0256($s1) ## 00000256
/* 014D8 80B2E938 86260258 */ lh $a2, 0x0258($s1) ## 00000258
/* 014DC 80B2E93C 0C034421 */ jal Matrix_RotateXYZ
/* 014DC 80B2E93C 0C034421 */ jal Matrix_RotateZYX
/* 014E0 80B2E940 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 014E4 80B2E944 3C0180B3 */ lui $at, %hi(D_80B2EC38) ## $at = 80B30000
/* 014E8 80B2E948 C42AEC38 */ lwc1 $f10, %lo(D_80B2EC38)($at)

View file

@ -56,7 +56,7 @@ glabel func_80B402C4
/* 041B8 80B40398 862602A4 */ lh $a2, 0x02A4($s1) ## 000002A4
/* 041BC 80B4039C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 041C0 80B403A0 84441480 */ lh $a0, 0x1480($v0) ## 80161480
/* 041C4 80B403A4 0C034421 */ jal Matrix_RotateXYZ
/* 041C4 80B403A4 0C034421 */ jal Matrix_RotateZYX
/* 041C8 80B403A8 84451482 */ lh $a1, 0x1482($v0) ## 80161482
/* 041CC 80B403AC 26220298 */ addiu $v0, $s1, 0x0298 ## $v0 = 00000298
/* 041D0 80B403B0 C44C0000 */ lwc1 $f12, 0x0000($v0) ## 00000298

View file

@ -30,7 +30,7 @@ glabel func_80B4F45C
/* 00B38 80B4F4C8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00B3C 80B4F4CC 84440000 */ lh $a0, 0x0000($v0) ## 00000000
/* 00B40 80B4F4D0 84450002 */ lh $a1, 0x0002($v0) ## 00000002
/* 00B44 80B4F4D4 0C034421 */ jal Matrix_RotateXYZ
/* 00B44 80B4F4D4 0C034421 */ jal Matrix_RotateZYX
/* 00B48 80B4F4D8 84460004 */ lh $a2, 0x0004($v0) ## 00000004
/* 00B4C 80B4F4DC 0C034213 */ jal Matrix_Push
/* 00B50 80B4F4E0 00000000 */ nop
@ -84,7 +84,7 @@ glabel func_80B4F45C
/* 00C0C 80B4F59C AFA3001C */ sw $v1, 0x001C($sp)
/* 00C10 80B4F5A0 00063403 */ sra $a2, $a2, 16
/* 00C14 80B4F5A4 00052C03 */ sra $a1, $a1, 16
/* 00C18 80B4F5A8 0C034421 */ jal Matrix_RotateXYZ
/* 00C18 80B4F5A8 0C034421 */ jal Matrix_RotateZYX
/* 00C1C 80B4F5AC 00042403 */ sra $a0, $a0, 16
/* 00C20 80B4F5B0 3C01C33C */ lui $at, 0xC33C ## $at = C33C0000
/* 00C24 80B4F5B4 44816000 */ mtc1 $at, $f12 ## $f12 = -188.00
@ -135,7 +135,7 @@ glabel func_80B4F45C
/* 00CD4 80B4F664 00042400 */ sll $a0, $a0, 16
/* 00CD8 80B4F668 00042403 */ sra $a0, $a0, 16
/* 00CDC 80B4F66C 00052C03 */ sra $a1, $a1, 16
/* 00CE0 80B4F670 0C034421 */ jal Matrix_RotateXYZ
/* 00CE0 80B4F670 0C034421 */ jal Matrix_RotateZYX
/* 00CE4 80B4F674 00063403 */ sra $a2, $a2, 16
/* 00CE8 80B4F678 3C01C3CD */ lui $at, 0xC3CD ## $at = C3CD0000
/* 00CEC 80B4F67C 44816000 */ mtc1 $at, $f12 ## $f12 = -410.00
@ -187,7 +187,7 @@ glabel func_80B4F45C
/* 00DA0 80B4F730 00042400 */ sll $a0, $a0, 16
/* 00DA4 80B4F734 00042403 */ sra $a0, $a0, 16
/* 00DA8 80B4F738 00052C03 */ sra $a1, $a1, 16
/* 00DAC 80B4F73C 0C034421 */ jal Matrix_RotateXYZ
/* 00DAC 80B4F73C 0C034421 */ jal Matrix_RotateZYX
/* 00DB0 80B4F740 00063403 */ sra $a2, $a2, 16
/* 00DB4 80B4F744 3C0180B5 */ lui $at, %hi(D_80B52BB4) ## $at = 80B50000
/* 00DB8 80B4F748 C42C2BB4 */ lwc1 $f12, %lo(D_80B52BB4)($at)
@ -255,7 +255,7 @@ glabel func_80B4F45C
/* 00EAC 80B4F83C 00042400 */ sll $a0, $a0, 16
/* 00EB0 80B4F840 00042403 */ sra $a0, $a0, 16
/* 00EB4 80B4F844 00052C03 */ sra $a1, $a1, 16
/* 00EB8 80B4F848 0C034421 */ jal Matrix_RotateXYZ
/* 00EB8 80B4F848 0C034421 */ jal Matrix_RotateZYX
/* 00EBC 80B4F84C 00063403 */ sra $a2, $a2, 16
/* 00EC0 80B4F850 3C0180B5 */ lui $at, %hi(D_80B52BC0) ## $at = 80B50000
/* 00EC4 80B4F854 C42C2BC0 */ lwc1 $f12, %lo(D_80B52BC0)($at)
@ -311,7 +311,7 @@ glabel func_80B4F45C
/* 00F88 80B4F918 00042400 */ sll $a0, $a0, 16
/* 00F8C 80B4F91C 00042403 */ sra $a0, $a0, 16
/* 00F90 80B4F920 00052C03 */ sra $a1, $a1, 16
/* 00F94 80B4F924 0C034421 */ jal Matrix_RotateXYZ
/* 00F94 80B4F924 0C034421 */ jal Matrix_RotateZYX
/* 00F98 80B4F928 00063403 */ sra $a2, $a2, 16
/* 00F9C 80B4F92C 3C01C3DF */ lui $at, 0xC3DF ## $at = C3DF0000
/* 00FA0 80B4F930 44816000 */ mtc1 $at, $f12 ## $f12 = -446.00
@ -379,7 +379,7 @@ glabel func_80B4F45C
/* 01094 80B4FA24 00042400 */ sll $a0, $a0, 16
/* 01098 80B4FA28 00042403 */ sra $a0, $a0, 16
/* 0109C 80B4FA2C 00052C03 */ sra $a1, $a1, 16
/* 010A0 80B4FA30 0C034421 */ jal Matrix_RotateXYZ
/* 010A0 80B4FA30 0C034421 */ jal Matrix_RotateZYX
/* 010A4 80B4FA34 00063403 */ sra $a2, $a2, 16
/* 010A8 80B4FA38 3C0180B5 */ lui $at, %hi(D_80B52BCC) ## $at = 80B50000
/* 010AC 80B4FA3C C42C2BCC */ lwc1 $f12, %lo(D_80B52BCC)($at)
@ -434,7 +434,7 @@ glabel func_80B4F45C
/* 0116C 80B4FAFC 00042400 */ sll $a0, $a0, 16
/* 01170 80B4FB00 00042403 */ sra $a0, $a0, 16
/* 01174 80B4FB04 00052C03 */ sra $a1, $a1, 16
/* 01178 80B4FB08 0C034421 */ jal Matrix_RotateXYZ
/* 01178 80B4FB08 0C034421 */ jal Matrix_RotateZYX
/* 0117C 80B4FB0C 00063403 */ sra $a2, $a2, 16
/* 01180 80B4FB10 3C01C3DF */ lui $at, 0xC3DF ## $at = C3DF0000
/* 01184 80B4FB14 44816000 */ mtc1 $at, $f12 ## $f12 = -446.00

View file

@ -48,7 +48,7 @@ glabel func_80B4FB74
/* 01298 80B4FC28 2404A219 */ addiu $a0, $zero, 0xA219 ## $a0 = FFFFA219
/* 0129C 80B4FC2C 2405AC17 */ addiu $a1, $zero, 0xAC17 ## $a1 = FFFFAC17
/* 012A0 80B4FC30 24063333 */ addiu $a2, $zero, 0x3333 ## $a2 = 00003333
/* 012A4 80B4FC34 0C034421 */ jal Matrix_RotateXYZ
/* 012A4 80B4FC34 0C034421 */ jal Matrix_RotateZYX
/* 012A8 80B4FC38 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 012AC 80B4FC3C 3C0180B5 */ lui $at, %hi(D_80B52BD4) ## $at = 80B50000
/* 012B0 80B4FC40 C42C2BD4 */ lwc1 $f12, %lo(D_80B52BD4)($at)

View file

@ -41,7 +41,7 @@ glabel func_80B5458C
/* 01274 80B54624 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 01278 80B54628 85040000 */ lh $a0, 0x0000($t0) ## 00000000
/* 0127C 80B5462C 85050002 */ lh $a1, 0x0002($t0) ## 00000002
/* 01280 80B54630 0C034421 */ jal Matrix_RotateXYZ
/* 01280 80B54630 0C034421 */ jal Matrix_RotateZYX
/* 01284 80B54634 85060004 */ lh $a2, 0x0004($t0) ## 00000004
/* 01288 80B54638 0C034213 */ jal Matrix_Push
/* 0128C 80B5463C 00000000 */ nop
@ -95,7 +95,7 @@ glabel func_80B5458C
/* 01348 80B546F8 AFA30020 */ sw $v1, 0x0020($sp)
/* 0134C 80B546FC 00063403 */ sra $a2, $a2, 16
/* 01350 80B54700 00052C03 */ sra $a1, $a1, 16
/* 01354 80B54704 0C034421 */ jal Matrix_RotateXYZ
/* 01354 80B54704 0C034421 */ jal Matrix_RotateZYX
/* 01358 80B54708 00042403 */ sra $a0, $a0, 16
/* 0135C 80B5470C 3C01C33C */ lui $at, 0xC33C ## $at = C33C0000
/* 01360 80B54710 44816000 */ mtc1 $at, $f12 ## $f12 = -188.00
@ -142,7 +142,7 @@ glabel func_80B5458C
/* 01400 80B547B0 00042400 */ sll $a0, $a0, 16
/* 01404 80B547B4 00042403 */ sra $a0, $a0, 16
/* 01408 80B547B8 00052C03 */ sra $a1, $a1, 16
/* 0140C 80B547BC 0C034421 */ jal Matrix_RotateXYZ
/* 0140C 80B547BC 0C034421 */ jal Matrix_RotateZYX
/* 01410 80B547C0 00063403 */ sra $a2, $a2, 16
/* 01414 80B547C4 3C01C3CD */ lui $at, 0xC3CD ## $at = C3CD0000
/* 01418 80B547C8 44816000 */ mtc1 $at, $f12 ## $f12 = -410.00
@ -190,7 +190,7 @@ glabel func_80B5458C
/* 014BC 80B5486C 00042400 */ sll $a0, $a0, 16
/* 014C0 80B54870 00042403 */ sra $a0, $a0, 16
/* 014C4 80B54874 00052C03 */ sra $a1, $a1, 16
/* 014C8 80B54878 0C034421 */ jal Matrix_RotateXYZ
/* 014C8 80B54878 0C034421 */ jal Matrix_RotateZYX
/* 014CC 80B5487C 00063403 */ sra $a2, $a2, 16
/* 014D0 80B54880 3C0180B6 */ lui $at, %hi(D_80B5AAEC) ## $at = 80B60000
/* 014D4 80B54884 C42CAAEC */ lwc1 $f12, %lo(D_80B5AAEC)($at)
@ -258,7 +258,7 @@ glabel func_80B5458C
/* 015C8 80B54978 00042400 */ sll $a0, $a0, 16
/* 015CC 80B5497C 00042403 */ sra $a0, $a0, 16
/* 015D0 80B54980 00052C03 */ sra $a1, $a1, 16
/* 015D4 80B54984 0C034421 */ jal Matrix_RotateXYZ
/* 015D4 80B54984 0C034421 */ jal Matrix_RotateZYX
/* 015D8 80B54988 00063403 */ sra $a2, $a2, 16
/* 015DC 80B5498C 3C0180B6 */ lui $at, %hi(D_80B5AAF8) ## $at = 80B60000
/* 015E0 80B54990 C42CAAF8 */ lwc1 $f12, %lo(D_80B5AAF8)($at)
@ -314,7 +314,7 @@ glabel func_80B5458C
/* 016A4 80B54A54 00042400 */ sll $a0, $a0, 16
/* 016A8 80B54A58 00042403 */ sra $a0, $a0, 16
/* 016AC 80B54A5C 00052C03 */ sra $a1, $a1, 16
/* 016B0 80B54A60 0C034421 */ jal Matrix_RotateXYZ
/* 016B0 80B54A60 0C034421 */ jal Matrix_RotateZYX
/* 016B4 80B54A64 00063403 */ sra $a2, $a2, 16
/* 016B8 80B54A68 3C01C3DF */ lui $at, 0xC3DF ## $at = C3DF0000
/* 016BC 80B54A6C 44816000 */ mtc1 $at, $f12 ## $f12 = -446.00
@ -382,7 +382,7 @@ glabel func_80B5458C
/* 017B0 80B54B60 00042400 */ sll $a0, $a0, 16
/* 017B4 80B54B64 00042403 */ sra $a0, $a0, 16
/* 017B8 80B54B68 00052C03 */ sra $a1, $a1, 16
/* 017BC 80B54B6C 0C034421 */ jal Matrix_RotateXYZ
/* 017BC 80B54B6C 0C034421 */ jal Matrix_RotateZYX
/* 017C0 80B54B70 00063403 */ sra $a2, $a2, 16
/* 017C4 80B54B74 3C0180B6 */ lui $at, %hi(D_80B5AB04) ## $at = 80B60000
/* 017C8 80B54B78 C42CAB04 */ lwc1 $f12, %lo(D_80B5AB04)($at)
@ -437,7 +437,7 @@ glabel func_80B5458C
/* 01888 80B54C38 00042400 */ sll $a0, $a0, 16
/* 0188C 80B54C3C 00042403 */ sra $a0, $a0, 16
/* 01890 80B54C40 00052C03 */ sra $a1, $a1, 16
/* 01894 80B54C44 0C034421 */ jal Matrix_RotateXYZ
/* 01894 80B54C44 0C034421 */ jal Matrix_RotateZYX
/* 01898 80B54C48 00063403 */ sra $a2, $a2, 16
/* 0189C 80B54C4C 3C01C3DF */ lui $at, 0xC3DF ## $at = C3DF0000
/* 018A0 80B54C50 44816000 */ mtc1 $at, $f12 ## $f12 = -446.00

View file

@ -42,7 +42,7 @@ glabel func_80B5944C
/* 06138 80B594E8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0613C 80B594EC 84640000 */ lh $a0, 0x0000($v1) ## 00000000
/* 06140 80B594F0 84650002 */ lh $a1, 0x0002($v1) ## 00000002
/* 06144 80B594F4 0C034421 */ jal Matrix_RotateXYZ
/* 06144 80B594F4 0C034421 */ jal Matrix_RotateZYX
/* 06148 80B594F8 84660004 */ lh $a2, 0x0004($v1) ## 00000004
/* 0614C 80B594FC 0C034213 */ jal Matrix_Push
/* 06150 80B59500 00000000 */ nop

View file

@ -21,7 +21,7 @@ glabel ObjIcePoly_Draw
/* 00768 80B949C8 24040500 */ addiu $a0, $zero, 0x0500 ## $a0 = 00000500
/* 0076C 80B949CC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00770 80B949D0 2406FB00 */ addiu $a2, $zero, 0xFB00 ## $a2 = FFFFFB00
/* 00774 80B949D4 0C034421 */ jal Matrix_RotateXYZ
/* 00774 80B949D4 0C034421 */ jal Matrix_RotateZYX
/* 00778 80B949D8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0077C 80B949DC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00780 80B949E0 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000

View file

@ -146,7 +146,7 @@ glabel func_809A16F4
/* 00314 809A1924 86040044 */ lh $a0, 0x0044($s0) ## 00000044
/* 00318 809A1928 86050046 */ lh $a1, 0x0046($s0) ## 00000046
/* 0031C 809A192C 86060048 */ lh $a2, 0x0048($s0) ## 00000048
/* 00320 809A1930 0C034421 */ jal Matrix_RotateXYZ
/* 00320 809A1930 0C034421 */ jal Matrix_RotateZYX
/* 00324 809A1934 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00328 809A1938 3C01809A */ lui $at, %hi(D_809A1ACC) ## $at = 809A0000
/* 0032C 809A193C C42C1ACC */ lwc1 $f12, %lo(D_809A1ACC)($at)

View file

@ -33,7 +33,7 @@ glabel func_809AC42C
/* 001D8 809AC4A8 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 001DC 809AC4AC 86250042 */ lh $a1, 0x0042($s1) ## 00000042
/* 001E0 809AC4B0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 001E4 809AC4B4 0C034421 */ jal Matrix_RotateXYZ
/* 001E4 809AC4B4 0C034421 */ jal Matrix_RotateZYX
/* 001E8 809AC4B8 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 001EC 809AC4BC 10000017 */ beq $zero, $zero, .L809AC51C
/* 001F0 809AC4C0 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
@ -57,7 +57,7 @@ glabel func_809AC42C
/* 00234 809AC504 00C13021 */ addu $a2, $a2, $at
/* 00238 809AC508 00063100 */ sll $a2, $a2, 4
/* 0023C 809AC50C 00063400 */ sll $a2, $a2, 16
/* 00240 809AC510 0C034421 */ jal Matrix_RotateXYZ
/* 00240 809AC510 0C034421 */ jal Matrix_RotateZYX
/* 00244 809AC514 00063403 */ sra $a2, $a2, 16
/* 00248 809AC518 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
.L809AC51C:

View file

@ -1133,8 +1133,9 @@ void Scene_Draw(GlobalContext* globalCtx);
// ? func_800A0D94(?);
// ? func_800A106C(?);
// ? func_800A1344(?);
void SkelAnime_Draw(GlobalContext* globalCtx, u32 limbIndex, u32 adt, u8 limbDListCnt, void* internal0,
void* internal1);
void SkelAnime_Draw(GlobalContext* globalCtx, u32* limbIndex, Vec3s* actorDrawTable,
SkelAnime_LimbUpdateMatrix updateMtxFunc, SkelAnime_LimbAppendDlist appendDlistFunc,
Actor* actor);
// ? func_800A180C(?);
void func_800A1AC8(GlobalContext* globalCtx, u32 limbIndex, u32 actorDrawTbl, u32 dListCount, void* posUpdateFunc,
void* drawFunc, Actor* actor);
@ -1642,8 +1643,8 @@ void Matrix_Scale(f32 x, f32 y, f32 z, u8 mode);
void Matrix_RotateX(f32 x, u8 mode);
void Matrix_RotateY(f32 y, u8 mode);
void Matrix_RotateZ(f32 z, u8 mode);
void Matrix_RotateXYZ(s16 x, s16 y, s16 z, u8 mode);
void func_800D1340(Vec3f* arg0, Vec3s* arg1);
void Matrix_RotateZYX(s16 x, s16 y, s16 z, u8 mode);
void Matrix_TranslateThenRotateZYX(Vec3f* arg0, Vec3s* arg1);
void func_800D1694(f32 x, f32 y, f32 z, Vec3s* vec);
Mtx* Matrix_MtxFToMtx(MtxF* src, Mtx* dest);
Mtx* Matrix_ToMtx(Mtx* dest, char* file, s32 line);

View file

@ -8,18 +8,6 @@
struct GlobalContext;
struct Actor;
typedef s32 (*SkelAnime_LimbUpdateMatrix)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
Vec3f* pos, Vec3s* rot, struct Actor* actor);
typedef void (*SkelAnime_LimbAppendDlist)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
Vec3s* rot, struct Actor* actor);
typedef s32 (*SkelAnime_LimbUpdateMatrix2)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
Vec3f* pos, Vec3s* rot, struct Actor* actor, Gfx** gfx);
typedef void (*SkelAnime_LimbAppendDlist2)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
Vec3s* rot, struct Actor* actor, Gfx** gfx);
typedef struct
{
/* 0x000 */ u32 limbs[1]; // One ore more limbs, index 0 is the root limb.
@ -195,7 +183,20 @@ typedef struct
u32 animationSegAddress;
} LinkAnimetionEntry;
#endif
typedef s32 (*SkelAnime_LimbUpdateMatrix)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
Vec3f* pos, Vec3s* rot, struct Actor* actor);
typedef void (*SkelAnime_LimbAppendDlist)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
Vec3s* rot, struct Actor* actor);
typedef s32 (*SkelAnime_LimbUpdateMatrix2)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
Vec3f* pos, Vec3s* rot, struct Actor* actor, Gfx** gfx);
typedef void (*SkelAnime_LimbAppendDlist2)(struct GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
Vec3s* rot, struct Actor* actor, Gfx** gfx);
typedef void (*AnimationEntryCallback)(struct GlobalContext*, AnimationEntryType*);
extern u32 link_animetion_segment; // 0x07000000
#define LINK_ANIMETION_OFFSET(addr,offset) (((u32)&_link_animetionSegmentRomStart)+((u32)addr)-((u32)&link_animetion_segment)+((u32)offset))
@ -203,3 +204,5 @@ extern u32 link_animetion_segment; // 0x07000000
#define LIMB_DONE 0xFF
#define LOG(file,line,msg,arg) LogUtils_LogThreadId(file, line); osSyncPrintf(msg, arg)
#endif

View file

@ -2,13 +2,16 @@
#include <global.h>
// clang-format off
Mtx gMtxClear = {
Mtx gMtxClear =
{
65536, 0, 1, 0,
0, 65536, 0, 1,
0, 0, 0, 0,
0, 0, 0, 0,
};
MtxF gMtxFClear = {
MtxF gMtxFClear =
{
1.0f, 0.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
@ -19,67 +22,88 @@ MtxF gMtxFClear = {
MtxF* sMatrixStack; // "Matrix_stack"
MtxF* sCurrentMatrix; // "Matrix_now"
void Matrix_Init(GameState* gameState) {
void Matrix_Init(GameState* gameState)
{
sCurrentMatrix = Game_Alloc(gameState, 20 * sizeof(MtxF), "../sys_matrix.c", 153);
sMatrixStack = sCurrentMatrix;
}
void Matrix_Push(void) {
void Matrix_Push(void)
{
Matrix_MtxFCopy(sCurrentMatrix + 1, sCurrentMatrix);
sCurrentMatrix++;
}
void Matrix_Pull(void) {
void Matrix_Pull(void)
{
sCurrentMatrix--;
if (sCurrentMatrix < sMatrixStack) {
if (sCurrentMatrix < sMatrixStack)
{
__assert("Matrix_now >= Matrix_stack", "../sys_matrix.c", 176);
}
}
void Matrix_Get(MtxF* dest) {
void Matrix_Get(MtxF* dest)
{
Matrix_MtxFCopy(dest, sCurrentMatrix);
}
void Matrix_Put(MtxF* src) {
void Matrix_Put(MtxF* src)
{
Matrix_MtxFCopy(sCurrentMatrix, src);
}
MtxF* Matrix_GetCurrent(void) {
MtxF* Matrix_GetCurrent(void)
{
return sCurrentMatrix;
}
void Matrix_Mult(MtxF* mf, u8 mode) {
void Matrix_Mult(MtxF* mf, u8 mode)
{
MtxF* cmf = Matrix_GetCurrent();
if (mode == MTXMODE_APPLY) {
if (mode == MTXMODE_APPLY)
{
func_800A6FA0(cmf, mf, cmf);
} else {
}
else
{
Matrix_MtxFCopy(sCurrentMatrix, mf);
}
}
#ifdef NON_MATCHING
// minor ordering and regalloc differences
void Matrix_Translate(f32 x, f32 y, f32 z, u8 mode) {
MtxF* cmf = sCurrentMatrix;
f32 tx;
f32 ty;
if (mode == MTXMODE_APPLY) {
cmf->wx += cmf->xx * x + cmf->yx * y + cmf->zx * z;
cmf->wy += cmf->xy * x + cmf->yy * y + cmf->zy * z;
cmf->wz += cmf->xz * x + cmf->yz * y + cmf->zz * z;
cmf->ww += cmf->xw * x + cmf->yw * y + cmf->zw * z;
} else {
if (mode == MTXMODE_APPLY)
{
tx = cmf->xx;
ty = cmf->yx;
cmf->wx += tx * x + ty * y + cmf->zx * z;
tx = cmf->xy;
ty = cmf->yy;
cmf->wy += tx * x + ty * y + cmf->zy * z;
tx = cmf->xz;
ty = cmf->yz;
cmf->wz += tx * x + ty * y + cmf->zz * z;
tx = cmf->xw;
ty = cmf->yw;
cmf->ww += tx * x + ty * y + cmf->zw * z;
}
else
{
func_800A7A24(cmf, x, y, z);
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/sys_matrix/Matrix_Translate.s")
#endif
void Matrix_Scale(f32 x, f32 y, f32 z, u8 mode) {
void Matrix_Scale(f32 x, f32 y, f32 z, u8 mode)
{
MtxF* cmf = sCurrentMatrix;
if (mode == MTXMODE_APPLY) {
if (mode == MTXMODE_APPLY)
{
cmf->xx *= x;
cmf->xy *= x;
cmf->xz *= x;
@ -92,20 +116,25 @@ void Matrix_Scale(f32 x, f32 y, f32 z, u8 mode) {
cmf->xw *= x;
cmf->yw *= y;
cmf->zw *= z;
} else {
}
else
{
func_800A76A4(cmf, x, y, z);
}
}
void Matrix_RotateX(f32 x, u8 mode) {
void Matrix_RotateX(f32 x, u8 mode)
{
MtxF* cmf;
f32 sin;
f32 cos;
f32 temp1;
f32 temp2;
if (mode == MTXMODE_APPLY) {
if (x != 0) {
if (mode == MTXMODE_APPLY)
{
if (x != 0)
{
cmf = sCurrentMatrix;
sin = sinf(x);
@ -131,13 +160,18 @@ void Matrix_RotateX(f32 x, u8 mode) {
cmf->yw = temp1 * cos + temp2 * sin;
cmf->zw = temp2 * cos - temp1 * sin;
}
} else {
}
else
{
cmf = sCurrentMatrix;
if (x != 0) {
if (x != 0)
{
sin = sinf(x);
cos = cosf(x);
} else {
}
else
{
sin = 0.0f;
cos = 1.0f;
}
@ -161,15 +195,18 @@ void Matrix_RotateX(f32 x, u8 mode) {
}
}
void Matrix_RotateY(f32 y, u8 mode) {
void Matrix_RotateY(f32 y, u8 mode)
{
MtxF* cmf;
f32 sin;
f32 cos;
f32 temp1;
f32 temp2;
if (mode == MTXMODE_APPLY) {
if (y != 0) {
if (mode == MTXMODE_APPLY)
{
if (y != 0)
{
cmf = sCurrentMatrix;
sin = sinf(y);
@ -195,13 +232,18 @@ void Matrix_RotateY(f32 y, u8 mode) {
cmf->xw = temp1 * cos - temp2 * sin;
cmf->zw = temp1 * sin + temp2 * cos;
}
} else {
}
else
{
cmf = sCurrentMatrix;
if (y != 0) {
if (y != 0)
{
sin = sinf(y);
cos = cosf(y);
} else {
}
else
{
sin = 0.0f;
cos = 1.0f;
}
@ -225,15 +267,18 @@ void Matrix_RotateY(f32 y, u8 mode) {
}
}
void Matrix_RotateZ(f32 z, u8 mode) {
void Matrix_RotateZ(f32 z, u8 mode)
{
MtxF* cmf;
f32 sin;
f32 cos;
f32 temp1;
f32 temp2;
if (mode == MTXMODE_APPLY) {
if (z != 0) {
if (mode == MTXMODE_APPLY)
{
if (z != 0)
{
cmf = sCurrentMatrix;
sin = sinf(z);
@ -289,7 +334,13 @@ void Matrix_RotateZ(f32 z, u8 mode) {
}
}
void Matrix_RotateXYZ(s16 x, s16 y, s16 z, u8 mode) {
/*
* Rotates the top of the matrix stack by `z` degrees, then
* rotates that matrix by `y` degrees, then rotates that matrix
* by `x` degrees.
* Original Name: Matrix_RotateXYZ, changed to reflect rotation order.
*/
void Matrix_RotateZYX(s16 x, s16 y, s16 z, u8 mode) {
MtxF* cmf = sCurrentMatrix;
f32 temp1;
f32 temp2;
@ -374,43 +425,48 @@ void Matrix_RotateXYZ(s16 x, s16 y, s16 z, u8 mode) {
}
}
void func_800D1340(Vec3f* arg0, Vec3s* arg1) {
/*
* Translates the top of the matrix stack by `translation` units,
* then rotates that matrix by `rotation` in Z-Y-X order
*/
void Matrix_TranslateThenRotateZYX(Vec3f* translation, Vec3s* rotation)
{
MtxF* cmf = sCurrentMatrix;
f32 sin;
f32 cos;
f32 temp1;
f32 temp2;
sin = Math_Sins(arg1->z);
cos = Math_Coss(arg1->z);
sin = Math_Sins(rotation->z);
cos = Math_Coss(rotation->z);
temp1 = cmf->xx;
temp2 = cmf->yx;
cmf->wx += temp1 * arg0->x + temp2 * arg0->y + cmf->zx * arg0->z;
cmf->wx += temp1 * translation->x + temp2 * translation->y + cmf->zx * translation->z;
cmf->xx = temp1 * cos + temp2 * sin;
cmf->yx = temp2 * cos - temp1 * sin;
temp1 = cmf->xy;
temp2 = cmf->yy;
cmf->wy += temp1 * arg0->x + temp2 * arg0->y + cmf->zy * arg0->z;
cmf->wy += temp1 * translation->x + temp2 * translation->y + cmf->zy * translation->z;
cmf->xy = temp1 * cos + temp2 * sin;
cmf->yy = temp2 * cos - temp1 * sin;
temp1 = cmf->xz;
temp2 = cmf->yz;
cmf->wz += temp1 * arg0->x + temp2 * arg0->y + cmf->zz * arg0->z;
cmf->wz += temp1 * translation->x + temp2 * translation->y + cmf->zz * translation->z;
cmf->xz = temp1 * cos + temp2 * sin;
cmf->yz = temp2 * cos - temp1 * sin;
temp1 = cmf->xw;
temp2 = cmf->yw;
cmf->ww += temp1 * arg0->x + temp2 * arg0->y + cmf->zw * arg0->z;
cmf->ww += temp1 * translation->x + temp2 * translation->y + cmf->zw * translation->z;
cmf->xw = temp1 * cos + temp2 * sin;
cmf->yw = temp2 * cos - temp1 * sin;
if (arg1->y != 0) {
sin = Math_Sins(arg1->y);
cos = Math_Coss(arg1->y);
if (rotation->y != 0) {
sin = Math_Sins(rotation->y);
cos = Math_Coss(rotation->y);
temp1 = cmf->xx;
temp2 = cmf->zx;
@ -433,9 +489,9 @@ void func_800D1340(Vec3f* arg0, Vec3s* arg1) {
cmf->zw = temp1 * sin + temp2 * cos;
}
if (arg1->x != 0) {
sin = Math_Sins(arg1->x);
cos = Math_Coss(arg1->x);
if (rotation->x != 0) {
sin = Math_Sins(rotation->x);
cos = Math_Coss(rotation->x);
temp1 = cmf->yx;
temp2 = cmf->zx;

View file

@ -83,7 +83,7 @@ static void DebugDisplay_DrawSpriteI8(DebugDispObject* dispObj, u32 texture, Glo
Matrix_Translate(dispObj->pos.x, dispObj->pos.y, dispObj->pos.z, MTXMODE_NEW);
Matrix_Scale(dispObj->scale.x, dispObj->scale.y, dispObj->scale.z, MTXMODE_APPLY);
Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY);
Matrix_RotateXYZ(dispObj->rot.x, dispObj->rot.y, dispObj->rot.z, MTXMODE_APPLY);
Matrix_RotateZYX(dispObj->rot.x, dispObj->rot.y, dispObj->rot.z, MTXMODE_APPLY);
gDPLoadTextureBlock(gfxCtx->polyXlu.p++, texture, G_IM_FMT_I, G_IM_SIZ_8b, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);

View file

@ -15,28 +15,25 @@ void func_800A1D8C(u32 animation, s32 currentFrame, s32 limbCount, Vec3s *arg3);
void func_800A2E70(u8,Vec3s*,Vec3s*,Vec3s*,f32);
void func_800A49B0(SkelAnime*);
void func_800A3478(GlobalContext*,s32,Vec3s*,Vec3s*);
void func_800A3F08(GlobalContext* globalCtx, SkelAnime* skelAnime, u32 animation, f32 playbackSpeed, f32 arg4, f32 frameCount, u8 arg6, f32 arg7);
void func_800A3F08(GlobalContext* globalCtx, SkelAnime* skelAnime, u32* animation, f32 playbackSpeed, f32 arg4, f32 frameCount, u8 arg6, f32 arg7);
void func_800A4FE4(SkelAnime* skelAnime, u32 animation, f32 playbackSpeed, f32 unk0, f32 frameCount, u8 unk1, f32 transitionRate, s8 unk2);
Gfx* func_800A24A0(GlobalContext*, u8, u32*, Vec3s*, SkelAnime_LimbUpdateMatrix2, SkelAnime_LimbAppendDlist2, Actor*, Mtx**, Gfx*);
//.data
u32 D_8012A480 = 0;
typedef void (*testfunc)(GlobalContext*, AnimationEntryType*);
static testfunc D_8012A484[] =
static AnimationEntryCallback D_8012A484[] =
{
(testfunc)0x800A3678,
(testfunc)0x800A36A4,
(testfunc)0x800A3714,
(testfunc)0x800A3770,
(testfunc)0x800A37F0,
(testfunc)0x800A3874,
(AnimationEntryCallback)0x800A3678,
(AnimationEntryCallback)0x800A36A4,
(AnimationEntryCallback)0x800A3714,
(AnimationEntryCallback)0x800A3770,
(AnimationEntryCallback)0x800A37F0,
(AnimationEntryCallback)0x800A3874,
};
//.bss
u32 D_801600B0;
// SkelAnime_LodDrawLimb
// func_800A08A0
void func_800A08A0(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable , Vec3s* actorDrawTable, SkelAnime_LimbUpdateMatrix updateMtxFunc, SkelAnime_LimbAppendDlist appendDlistFunc, Actor* actor, s32 dListIndex)
{
SkelLimbEntry* limbEntry;
@ -60,7 +57,7 @@ void func_800A08A0(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable , Vec
dList = limbEntry->displayLists[dListIndex];
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, limbIndex, &dList, &pos, &rot, actor) == 0))
{
func_800D1340(&pos, &rot);
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (dList != NULL)
{
do
@ -94,7 +91,6 @@ void func_800A08A0(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable , Vec
}
// SkelAnime_LodDraw
// func_800A0B40
void func_800A0B40(GlobalContext* globalCtx, u32* limbIndex, Vec3s* actorDrawTable, SkelAnime_LimbUpdateMatrix updateMtxFunc, SkelAnime_LimbAppendDlist appendDlistFunc, Actor* actor, s32 dListIndex)
{
SkelLimbEntry* limbEntry;
@ -126,7 +122,7 @@ void func_800A0B40(GlobalContext* globalCtx, u32* limbIndex, Vec3s* actorDrawTab
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, 1, &dList, &pos, &rot, actor) == 0))
{
func_800D1340(&pos, &rot);
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (dList != NULL)
{
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_skelanime.c", 0x371), G_MTX_LOAD);
@ -147,16 +143,15 @@ void func_800A0B40(GlobalContext* globalCtx, u32* limbIndex, Vec3s* actorDrawTab
#ifdef NON_MATCHING
// SkelAnime_LodDrawLimbSV
// func_800A0D94
void func_800A0D94(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable, Vec3s* actorDrawTable,
SkelAnime_LimbUpdateMatrix updateMtxFunc, SkelAnime_LimbAppendDlist appendDlistFunc,
Actor* actor, s32 dListIndex, Mtx** mtx)
{
Gfx* dList[2];
GraphicsContext* gfxCtx;
SkelLimbEntry* limbEntry;
Gfx* dList[2];
Vec3f pos;
Vec3s rot;
GraphicsContext* gfxCtx;
Gfx* gfx[3];
Matrix_Push();
@ -165,13 +160,15 @@ void func_800A0D94(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable, Vec3
limbIndex++;
rot = actorDrawTable[limbIndex];
pos.x = limbEntry->pos.x;
pos.y = limbEntry->pos.y;
pos.z = limbEntry->pos.z;
pos.x = limbEntry->translation.x;
pos.y = limbEntry->translation.y;
pos.z = limbEntry->translation.z;
dList[1] = dList[0] = limbEntry->displayLists[dListIndex];
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, limbIndex, &dList[1], &pos, &rot, actor) == 0))
{
func_800D1340(&pos, &rot);
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (dList[1] != NULL)
{
Matrix_ToMtx(*mtx, "../z_skelanime.c", 945); gfxCtx = globalCtx->state.gfxCtx;
@ -189,7 +186,7 @@ void func_800A0D94(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable, Vec3
}
if (appendDlistFunc != NULL)
{
appendDlistFunc(globalCtx, limbIndex, &dList[1], &rot, actor);
appendDlistFunc(globalCtx, limbIndex, &dList[0], &rot, actor);
}
if (limbEntry->firstChildIndex != LIMB_DONE)
{
@ -208,7 +205,6 @@ void func_800A0D94(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable, Vec3
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A0D94.s")
#endif
#undef NON_MATCHING
#ifdef NON_MATCHING
// SkelAnime_LodDrawSV
@ -253,26 +249,29 @@ void func_800A106C(GlobalContext* globalCtx, u32* limbTable, Vec3s* actorDrawTab
rot = actorDrawTable[1];
dList[0] = dList[1] = limbEntry->displayLists[dListIndex];
dList[1] = dList[0] = limbEntry->displayLists[dListIndex];
if ((updateMtxFunc == 0) || (updateMtxFunc(globalCtx, 1, &dList[1], &pos, &rot, actor) == 0))
{
func_800D1340(&pos, &rot);
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (dList[1] != NULL)
{
mtx = Matrix_ToMtx(mtx, "../z_skelanime.c", 1033);
Matrix_ToMtx(mtx, "../z_skelanime.c", 1033);
gSPMatrix(gfxCtx->polyOpa.p++, mtx, G_MTX_LOAD);
gSPDisplayList(gfxCtx->polyOpa.p++, dList[1]);
mtx++;
}
else if (dList[0] != NULL)
else
{
if (dList[0] != NULL)
{
Matrix_ToMtx(mtx, "../z_skelanime.c", 1040);
mtx++;
}
}
}
if (appendDlistFunc != 0)
if (appendDlistFunc != NULL)
{
appendDlistFunc(globalCtx, 1, &dList[0], &rot, actor);
}
@ -280,44 +279,53 @@ void func_800A106C(GlobalContext* globalCtx, u32* limbTable, Vec3s* actorDrawTab
{
func_800A0D94(globalCtx, limbEntry->firstChildIndex, limbTable, actorDrawTable, updateMtxFunc, appendDlistFunc, actor, dListIndex, &mtx);
}
Matrix_Pull();
func_800C6B54(gfx, globalCtx->state.gfxCtx, "../z_skelanime.c", 1053);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A106C.s")
#endif
#undef NON_MATCHING
#ifdef NON_MATCHING
// SkelAnime_DrawLimb
// func_800A1344
void func_800A1344(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable, Vec3s* actorDrawTable, SkelAnime_LimbUpdateMatrix updateMtxFunc, SkelAnime_LimbAppendDlist appendDlistFunc, Actor* actor)
{
SkelLimbEntry* limbEntry;
Gfx* dList;
Vec3f pos;
Vec3s rot;
GraphicsContext* gfxCtx;
Gfx* gfx[4];
SkelLimbEntry* limbEntry;
Vec3s rot;
Vec3f pos;
Gfx* dList;
gfxCtx = globalCtx->state.gfxCtx;
func_800C6AC4(gfx, globalCtx->state.gfxCtx, "../z_skelanime.c", 0x434);
Matrix_Push();
limbEntry = SEGMENTED_TO_VIRTUAL(limbTable[limbIndex]);
limbIndex++;
rot = actorDrawTable[limbIndex];
pos.x = (f32) limbEntry->pos.x;
pos.y = (f32) limbEntry->pos.y;
pos.z = (f32) limbEntry->pos.z;
dList = limbEntry->dList;
pos.x = (f32) limbEntry->translation.x;
pos.y = (f32) limbEntry->translation.y;
pos.z = (f32) limbEntry->translation.z;
dList = limbEntry->displayLists[0];
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, limbIndex, &dList, &pos, &rot, actor) == 0))
{
func_800D1340(&pos, &rot);
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (dList != NULL)
{
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(gfxCtx, "../z_skelanime.c", 0x44F), G_MTX_LOAD);
do
{
if(1)
{
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_skelanime.c", 1103), G_MTX_LOAD);
gSPDisplayList(gfxCtx->polyOpa.p++, dList);
}
} while(0);
}
}
if (appendDlistFunc != NULL)
@ -339,21 +347,18 @@ void func_800A1344(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable, Vec3
actorDrawTable, updateMtxFunc, appendDlistFunc, actor);
}
func_800C6B54(gfx, globalCtx->state.gfxCtx, "../z_skelanime.c", 0x461);
func_800C6B54(gfx, globalCtx->state.gfxCtx, "../z_skelanime.c", 1121);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A1344.s")
#endif
#ifdef NON_MATCHING
void SkelAnime_Draw(GlobalContext* globalCtx, u32* limbTable, Vec3s* actorDrawTable, SkelAnime_LimbUpdateMatrix updateMtxFunc, SkelAnime_LimbAppendDlist appendDlistFunc, Actor* actor)
{
SkelLimbEntry* rootLimb;
Vec3s rot;
Vec3f pos;
char pad[4];
Gfx* dList;
Vec3f pos;
Vec3s rot;
GraphicsContext* gfxCtx;
Gfx* gfx[5];
Gfx* gfx[4];
if (limbTable == NULL)
{
@ -374,11 +379,11 @@ void SkelAnime_Draw(GlobalContext* globalCtx, u32* limbTable, Vec3s* actorDrawTa
pos.z = (f32) actorDrawTable[0].z;
rot = actorDrawTable[1];
dList = rootLimb->dList;
dList = rootLimb->displayLists[0];
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, 1, &dList, &pos, &rot, actor) == 0))
{
func_800D1340(&pos, &rot);
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (dList != NULL)
{
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_skelanime.c", 1176), G_MTX_LOAD);
@ -398,11 +403,9 @@ void SkelAnime_Draw(GlobalContext* globalCtx, u32* limbTable, Vec3s* actorDrawTa
}
Matrix_Pull();
func_800C6B54(gfx, globalCtx->state.gfxCtx, "../z_skelanime.c", 1190);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/SkelAnime_Draw.s")
#endif
#ifdef NON_MATCHING
// SkelAnime_Draw2Limb
@ -430,7 +433,7 @@ void func_800A180C(GlobalContext *globalCtx, u32 limbIndex, u32* limbTable, Vec3
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, limbIndex, &limbDlist[0], &limbPos, &limbRot, actor) == 0))
{
func_800D1340(&limbPos, &limbRot);
Matrix_TranslateThenRotateZYX(&limbPos, &limbRot);
if (limbDlist[0] != NULL)
{
Matrix_ToMtx(*limbMatricies, "../z_skelanime.c", 0x4DA);
@ -512,7 +515,7 @@ void func_800A1AC8(GlobalContext* globalCtx, u32* limbTable, Vec3s* actorDrawTab
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, 1, &skelDlist[0], &pos, &rot, actor) == 0))
{
func_800D1340(&pos, &rot);
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (skelDlist[0] != NULL)
{
Matrix_ToMtx(limbMatricies, "../z_skelanime.c", 1327);
@ -602,11 +605,172 @@ s32 SkelAnime_GetFrameCount(u32 animation)
return (s16)(*virt - 1);
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A2044.s")
// SkelAnime_DrawLimb2
Gfx* func_800A2044(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable, Vec3s* actorDrawTable, SkelAnime_LimbUpdateMatrix2 updateMtxFunc, SkelAnime_LimbAppendDlist2 appendDlistFunc, Actor* actor, Gfx* gfx)
{
SkelLimbEntry* limbEntry;
Gfx* dList;
Vec3f pos;
Vec3s rot;
Matrix_Push();
limbEntry = SEGMENTED_TO_VIRTUAL(limbTable[limbIndex]);
limbIndex++;
rot = actorDrawTable[limbIndex];
pos.x = limbEntry->translation.x;
pos.y = limbEntry->translation.y;
pos.z = limbEntry->translation.z;
dList = limbEntry->displayLists[0];
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, limbIndex, &dList, &pos, &rot, actor, &gfx) == 0))
{
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (dList != NULL)
{
gSPMatrix(gfx++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_skelanime.c", 0x5D1), G_MTX_LOAD);
gSPDisplayList(gfx++, dList);
}
}
if (appendDlistFunc != NULL)
{
appendDlistFunc(globalCtx, limbIndex, &dList, &rot, actor, &gfx);
}
if (limbEntry->firstChildIndex != LIMB_DONE)
{
gfx = func_800A2044(globalCtx, limbEntry->firstChildIndex, limbTable, actorDrawTable, updateMtxFunc, appendDlistFunc, actor, gfx);
}
Matrix_Pull();
if (limbEntry->nextLimbIndex != LIMB_DONE)
{
gfx = func_800A2044(globalCtx, limbEntry->nextLimbIndex, limbTable, actorDrawTable, updateMtxFunc, appendDlistFunc, actor, gfx);
}
return gfx;
}
#ifdef NON_MATCHING
// Some regalloc, and nonmatching stack usage
// SkelAnime_Draw2
Gfx* func_800A2288(GlobalContext* globalCtx, u32* limbTable, Vec3s* actorDrawTable, SkelAnime_LimbUpdateMatrix2 updateMtxFunc, SkelAnime_LimbAppendDlist2 appendDlistFunc, Actor* actor, Gfx* gfx)
{
SkelLimbEntry* limbEntry;
Vec3f pos;
Vec3s rot;
Gfx* dList;
if (limbTable == NULL)
{
osSyncPrintf("\x1b[31m");
osSyncPrintf("Si2_draw2():skelがNULLです。NULLを返します。\n");
osSyncPrintf("\x1b[m");
return NULL;
}
Matrix_Push();
limbEntry = SEGMENTED_TO_VIRTUAL(*limbTable);
pos.x = limbEntry->translation.x;
pos.y = limbEntry->translation.y;
pos.z = limbEntry->translation.z;
rot = actorDrawTable[1];
dList = limbEntry->displayLists[0];
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, 1, &dList, &pos, &rot, actor, &gfx) == 0))
{
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (dList != NULL)
{
gSPMatrix(gfx++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_skelanime.c", 0x616), G_MTX_LOAD);
gSPDisplayList(gfx++, dList);
}
}
if (appendDlistFunc != NULL)
{
appendDlistFunc(globalCtx, 1, &dList, &rot, actor, &gfx);
}
if (limbEntry->firstChildIndex != LIMB_DONE)
{
gfx = func_800A2044(globalCtx, limbEntry->firstChildIndex, limbTable, actorDrawTable, updateMtxFunc, appendDlistFunc, actor, gfx);
}
Matrix_Pull();
return gfx;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A2288.s")
#endif
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A24A0.s")
// SkelAnime_DrawLimbSV2
Gfx* func_800A24A0(GlobalContext* globalCtx, s32 limbIndex, u32* limbTable, Vec3s* actorDrawTable, SkelAnime_LimbUpdateMatrix2 updateMtxFunc, SkelAnime_LimbAppendDlist2 appendDlistFunc, Actor* actor, Mtx** mtx, Gfx* gfx)
{
SkelLimbEntry* limbEntry;
Gfx* dList1;
Gfx* dList2;
Vec3f pos;
Vec3s rot;
char pad[4];
Matrix_Push();
limbEntry = SEGMENTED_TO_VIRTUAL(limbTable[limbIndex]);
limbIndex++;
rot = actorDrawTable[limbIndex];
pos.x = limbEntry->translation.x;
pos.y = limbEntry->translation.y;
pos.z = limbEntry->translation.z;
dList1 = dList2 = limbEntry->displayLists[0];
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, limbIndex, &dList1, &pos, &rot, actor, &gfx) == 0))
{
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (dList1 != NULL)
{
Matrix_ToMtx(*mtx, "../z_skelanime.c", 0x657);
gSPMatrix(gfx++, *mtx, G_MTX_LOAD);
gSPDisplayList(gfx++, dList1);
(*mtx)++;
}
else
{
if (dList2 != NULL)
{
Matrix_ToMtx(*mtx, "../z_skelanime.c", 0x65E);
(*mtx)++;
}
}
}
if (appendDlistFunc != 0)
{
appendDlistFunc(globalCtx, limbIndex, &dList2, &rot, actor, &gfx);
}
if (limbEntry->firstChildIndex != LIMB_DONE)
{
gfx = func_800A24A0(globalCtx, limbEntry->firstChildIndex, limbTable, actorDrawTable, updateMtxFunc, appendDlistFunc, actor, mtx, gfx);
}
Matrix_Pull();
if (limbEntry->nextLimbIndex != LIMB_DONE)
{
gfx = func_800A24A0(globalCtx, limbEntry->nextLimbIndex, limbTable, actorDrawTable, updateMtxFunc, appendDlistFunc, actor, mtx, gfx);
}
return gfx;
}
// SkelAnime_DrawSV2
Gfx* func_800A273C(GlobalContext* globalCtx, u32* limbTable, Vec3s* actorDrawTable, s32 dListCount, SkelAnime_LimbUpdateMatrix2 updateMtxFunc, SkelAnime_LimbAppendDlist2 appendDlistFunc, Actor* actor, Gfx* gfx)
@ -641,7 +805,7 @@ Gfx* func_800A273C(GlobalContext* globalCtx, u32* limbTable, Vec3s* actorDrawTab
if ((updateMtxFunc == NULL) || (updateMtxFunc(globalCtx, 1, &dList1, &pos, &rot, actor, &gfx) == 0))
{
func_800D1340(&pos, &rot);
Matrix_TranslateThenRotateZYX(&pos, &rot);
if (dList1 != NULL)
{
Matrix_ToMtx(mtx, "../z_skelanime.c", 0x6AE);
@ -733,7 +897,7 @@ AnimationEntry* func_800A3334(AnimationContext* animationCtx, AnimationType type
* animation context.
*/
// SkelAnime_AnimationEntryType0Init
// SkelAnime_LinkAnimetionDma
void func_800A336C(GlobalContext* globalCtx, u32 linkAnimetionSeg, s32 frame, s32 limbCount, void* ram)
{
AnimationEntry* entry;
@ -920,60 +1084,55 @@ void func_800A390C(GlobalContext* globalCtx, AnimationContext* animationCtx)
D_8012A480 = 0;
}
#ifdef NON_MATCHING
// some kind of init
void func_800A39AC(GlobalContext* globalCtx, SkelAnime* skelAnime, u32 limbHeaderSeg, s32 arg3, s8 arg4, Vec3s* actorDrawTable, s32 arg6, s32 arg7)
void func_800A39AC(GlobalContext* globalCtx, SkelAnime *skelAnime, u32 limbHeaderSeg, u32* animation, s32 flags, Vec3s* actorDrawTbl, Vec3s* arg6, s32 limbBufCount)
{
SkelAnimeLimbHeader* limbHeader;
u8 flag;
size_t size;
char pad[8];
SkelAnimeLimbHeader *limbHeader;
size_t allocSize;
s32 limbCount;
s32 headerCount;
limbHeader = SEGMENTED_TO_VIRTUAL(limbHeaderSeg);
skelAnime->unk_34 = arg4;
flag = arg4 & 2 == 0 ? 1U : limbHeader->limbCount;
if ((arg4 & 2) != 0)
headerCount = limbHeader->limbCount;
skelAnime->unk_34 = flags;
limbCount = (flags & 2) != 0 ? headerCount : 1;
if ((flags & 1) != 0)
{
flag = limbHeader->limbCount;
limbCount += headerCount;
}
else
if ((flags & 4) != 0)
{
flag = 1;
limbCount += headerCount;
}
if((arg4 & 1) != 0)
{
flag += limbHeader->limbCount;
}
if((arg4 & 4) != 0)
{
flag += limbHeader->limbCount;
}
skelAnime->limbCount = flag;
skelAnime->limbCount = (u8)limbCount;
skelAnime->dListCount = limbHeader->dListCount;
allocSize = limbCount * sizeof(Vec3s);
skelAnime->limbIndex = SEGMENTED_TO_VIRTUAL(limbHeader->limbIndexSeg);
size = sizeof(Vec3s);
if ((arg4 & 8) != 0)
if ((flags & 8) != 0)
{
size += 2;
allocSize += 2;
}
if (actorDrawTable == NULL)
if (actorDrawTbl == NULL)
{
skelAnime->actorDrawTbl = ZeldaArena_MallocDebug(size, "../z_skelanime.c", 2364);
skelAnime->unk_24 = ZeldaArena_MallocDebug(size, "../z_skelanime.c", 2365);
skelAnime->actorDrawTbl = ZeldaArena_MallocDebug(allocSize, "../z_skelanime.c", 2364);
skelAnime->unk_24 = ZeldaArena_MallocDebug(allocSize, "../z_skelanime.c", 2365);
}
else
{
if (arg7 != flag)
if (limbBufCount != limbCount)
{
__assert("joint_buff_num == joint_num", "../z_skelanime.c", 2369);
}
skelAnime->actorDrawTbl = ALIGN16((u32)actorDrawTable);
skelAnime->unk_24 = ALIGN16(arg6);
skelAnime->actorDrawTbl = (Vec3s*)ALIGN16((u32)actorDrawTbl);
skelAnime->unk_24 = (Vec3s*)ALIGN16((u32)arg6);
}
if ((skelAnime->actorDrawTbl == NULL) || (skelAnime->unk_24 == NULL))
{
osSyncPrintf("\x1b[31m");
@ -981,12 +1140,8 @@ void func_800A39AC(GlobalContext* globalCtx, SkelAnime* skelAnime, u32 limbHeade
osSyncPrintf("\x1b[m");
}
func_800A3F08(globalCtx, skelAnime, arg3, 1.0f, 0.0f, 0.0f, 0, 0.0f);
func_800A3F08(globalCtx, skelAnime, animation, 1.0f, 0.0f, 0.0f, 0, 0.0f);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A39AC.s")
#endif
#undef NON_MATCHING
// SkelAnime_SetUpdateFunc
void func_800A3B8C(SkelAnime* skelAnime)
@ -1008,21 +1163,21 @@ void func_800A3BC0(GlobalContext* globalCtx, SkelAnime* skelAnime)
skelAnime->animUpdate(globalCtx, skelAnime);
}
#ifdef NON_MATCHING
s32 func_800A3BE4(GlobalContext* globalCtx, SkelAnime* skelAnime)
{
f32 prevUnk28 = skelAnime->unk_28;
skelAnime->unk_28 -= skelAnime->unk_2C * (R_UPDATE_RATE * 0.5f);
f32 updateRate = R_UPDATE_RATE * 0.5f;
skelAnime->unk_28 -= skelAnime->unk_2C * updateRate;
if (skelAnime->unk_28 <= 0.0f)
{
func_800A3B8C(skelAnime);
}
func_800A34DC(globalCtx, skelAnime->limbCount, skelAnime->actorDrawTbl, skelAnime->unk_24, 1.0f - (skelAnime->unk_28 / prevUnk28));
return 0;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A3BE4.s")
#endif
void func_800A3C9C(GlobalContext* globalCtx, SkelAnime* skelAnime)
{
@ -1102,7 +1257,7 @@ void func_800A3EE8(GlobalContext* globalCtx, SkelAnime* skelAnime, f32 arg2)
}
#ifdef NON_MATCHING
void func_800A3F08(GlobalContext* globalCtx, SkelAnime* skelAnime, u32 animation, f32 playbackSpeed, f32 arg4, f32 frameCount, u8 arg6, f32 arg7)
void func_800A3F08(GlobalContext* globalCtx, SkelAnime* skelAnime, u32* animation, f32 playbackSpeed, f32 arg4, f32 frameCount, u8 arg6, f32 arg7)
{
skelAnime->unk_01 = arg6;
@ -1117,7 +1272,7 @@ void func_800A3F08(GlobalContext* globalCtx, SkelAnime* skelAnime, u32 animation
}
else
{
skelAnime->mtxUpdate = &func_800A3BE4;
skelAnime->animUpdate = &func_800A3BE4;
func_800A336C(globalCtx, animation, (s32) arg4, skelAnime->limbCount, skelAnime->unk_24);
}
skelAnime->unk_28 = 1.0f;
@ -1130,7 +1285,7 @@ void func_800A3F08(GlobalContext* globalCtx, SkelAnime* skelAnime, u32 animation
skelAnime->unk_28 = 0.0f;
}
skelAnime->animCurrentFrame = animation;
skelAnime->animCurrentFrame = 0.0f;
skelAnime->unk_0C = arg4;
skelAnime->animCurrentFrame = arg4;
skelAnime->animFrameCount = frameCount;
@ -1140,7 +1295,6 @@ void func_800A3F08(GlobalContext* globalCtx, SkelAnime* skelAnime, u32 animation
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A3F08.s")
#endif
#undef NON_MATCHING
void func_800A407C(GlobalContext* globalCtx, SkelAnime* skelAnime, u32 animation)
{
@ -1198,7 +1352,17 @@ void func_800A431C(GlobalContext* globalCtx, SkelAnime* skelAnime, s32 arg2, f32
func_800A34DC(globalCtx, skelAnime->limbCount, skelAnime->actorDrawTbl, alignedAddr, arg6);
}
#pragma GLOBAL_ASM("asm/non_matchings/code/z_skelanime/func_800A43B8.s")
void func_800A43B8(GlobalContext* globalCtx, SkelAnime *skelAnime, u32 animation, f32 frame, s32 arg4, f32 arg5, f32 arg6, s32 arg7)
{
s32 alignedAddr;
func_800A336C(globalCtx, animation, (s32)frame, skelAnime->limbCount, skelAnime->unk_24);
alignedAddr = ALIGN16(arg7);
func_800A336C(globalCtx, arg4, (s32)arg5, skelAnime->limbCount, alignedAddr);
func_800A34DC(globalCtx, skelAnime->limbCount, skelAnime->unk_24, alignedAddr, arg6);
}
void func_800A4454(SkelAnime* skelAnime)
{
@ -1775,7 +1939,7 @@ void func_800A56F0(SkelAnime *skelAnime, s32 arg1)
}
// SkelAnime_CopyVec3s
void func_800A5774(SkelAnime* skelAnime, Vec3s *dst, Vec3s *src)
void func_800A5774(SkelAnime* skelAnime, Vec3s* dst, Vec3s* src)
{
s32 i;
for(i = 0; i < skelAnime->limbCount; i++)

View file

@ -95,7 +95,7 @@ void Title_Draw(TitleContext* this) {
func_80093D18(this->state.gfxCtx);
Matrix_Translate(-53.0, -5.0, 0, MTXMODE_NEW);
Matrix_Scale(1.0, 1.0, 1.0, MTXMODE_APPLY);
Matrix_RotateXYZ(0, sTitleRotY, 0, MTXMODE_APPLY);
Matrix_RotateZYX(0, sTitleRotY, 0, MTXMODE_APPLY);
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(this->state.gfxCtx, "../z_title.c", 424), G_MTX_LOAD);
gSPDisplayList(gfxCtx->polyOpa.p++, &D_01002720);