1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-29 03:34:07 +00:00

Match remaining function in Bg_Jya_Cobra (#969)

* Match remaining function in Bg_Jya_Cobra

* Format
This commit is contained in:
Synray 2021-09-20 11:12:05 -07:00 committed by GitHub
parent 4ecd175bd1
commit ac8dd91626
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 16 additions and 471 deletions

View file

@ -1,435 +0,0 @@
.late_rodata
glabel D_80897720
.word 0x3F490FDB
glabel D_80897724
.float 9.58738019108e-05
glabel D_80897728
.float 0.9
glabel D_8089772C
.word 0x3F23D70A
glabel D_80897730
.float 0.2
.text
glabel BgJyaCobra_UpdateShadowFromSide
/* 00600 80895EF0 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20
/* 00604 80895EF4 AFB20048 */ sw $s2, 0x0048($sp)
/* 00608 80895EF8 AFB00040 */ sw $s0, 0x0040($sp)
/* 0060C 80895EFC 249201A3 */ addiu $s2, $a0, 0x01A3 ## $s2 = 000001A3
/* 00610 80895F00 2401FFF0 */ addiu $at, $zero, 0xFFF0 ## $at = FFFFFFF0
/* 00614 80895F04 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00618 80895F08 AFBF0064 */ sw $ra, 0x0064($sp)
/* 0061C 80895F0C 02419024 */ and $s2, $s2, $at
/* 00620 80895F10 AFBE0060 */ sw $s8, 0x0060($sp)
/* 00624 80895F14 AFB7005C */ sw $s7, 0x005C($sp)
/* 00628 80895F18 AFB60058 */ sw $s6, 0x0058($sp)
/* 0062C 80895F1C AFB50054 */ sw $s5, 0x0054($sp)
/* 00630 80895F20 AFB40050 */ sw $s4, 0x0050($sp)
/* 00634 80895F24 AFB3004C */ sw $s3, 0x004C($sp)
/* 00638 80895F28 AFB10044 */ sw $s1, 0x0044($sp)
/* 0063C 80895F2C F7BC0038 */ sdc1 $f28, 0x0038($sp)
/* 00640 80895F30 F7BA0030 */ sdc1 $f26, 0x0030($sp)
/* 00644 80895F34 F7B80028 */ sdc1 $f24, 0x0028($sp)
/* 00648 80895F38 F7B60020 */ sdc1 $f22, 0x0020($sp)
/* 0064C 80895F3C F7B40018 */ sdc1 $f20, 0x0018($sp)
/* 00650 80895F40 02402025 */ or $a0, $s2, $zero ## $a0 = 000001A3
/* 00654 80895F44 24051000 */ addiu $a1, $zero, 0x1000 ## $a1 = 00001000
/* 00658 80895F48 0C01DDF8 */ jal Lib_MemSet
/* 0065C 80895F4C 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00660 80895F50 3C018089 */ lui $at, %hi(D_80897720) ## $at = 80890000
/* 00664 80895F54 C42C7720 */ lwc1 $f12, %lo(D_80897720)($at)
/* 00668 80895F58 0C0342DC */ jal Matrix_RotateX
/* 0066C 80895F5C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00670 80895F60 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00674 80895F64 31CF0003 */ andi $t7, $t6, 0x0003 ## $t7 = 00000000
/* 00678 80895F68 55E00007 */ bnel $t7, $zero, .L80895F88
/* 0067C 80895F6C 860200B6 */ lh $v0, 0x00B6($s0) ## 000000B6
/* 00680 80895F70 860200B6 */ lh $v0, 0x00B6($s0) ## 000000B6
/* 00684 80895F74 24424000 */ addiu $v0, $v0, 0x4000 ## $v0 = 00004000
/* 00688 80895F78 00021400 */ sll $v0, $v0, 16
/* 0068C 80895F7C 10000005 */ beq $zero, $zero, .L80895F94
/* 00690 80895F80 00021403 */ sra $v0, $v0, 16
/* 00694 80895F84 860200B6 */ lh $v0, 0x00B6($s0) ## 000000B6
.L80895F88:
/* 00698 80895F88 2442C000 */ addiu $v0, $v0, 0xC000 ## $v0 = 00000000
/* 0069C 80895F8C 00021400 */ sll $v0, $v0, 16
/* 006A0 80895F90 00021403 */ sra $v0, $v0, 16
.L80895F94:
/* 006A4 80895F94 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 006A8 80895F98 3C018089 */ lui $at, %hi(D_80897724) ## $at = 80890000
/* 006AC 80895F9C C4287724 */ lwc1 $f8, %lo(D_80897724)($at)
/* 006B0 80895FA0 468021A0 */ cvt.s.w $f6, $f4
/* 006B4 80895FA4 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 006B8 80895FA8 46083302 */ mul.s $f12, $f6, $f8
/* 006BC 80895FAC 0C034348 */ jal Matrix_RotateY
/* 006C0 80895FB0 00000000 */ nop
/* 006C4 80895FB4 3C018089 */ lui $at, %hi(D_80897728) ## $at = 80890000
/* 006C8 80895FB8 C42C7728 */ lwc1 $f12, %lo(D_80897728)($at)
/* 006CC 80895FBC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 006D0 80895FC0 44066000 */ mfc1 $a2, $f12
/* 006D4 80895FC4 0C0342A3 */ jal Matrix_Scale
/* 006D8 80895FC8 46006386 */ mov.s $f14, $f12
/* 006DC 80895FCC 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 006E0 80895FD0 4481E000 */ mtc1 $at, $f28 ## $f28 = 0.50
/* 006E4 80895FD4 3C0142B0 */ lui $at, 0x42B0 ## $at = 42B00000
/* 006E8 80895FD8 4481D000 */ mtc1 $at, $f26 ## $f26 = 88.00
/* 006EC 80895FDC 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 006F0 80895FE0 4481C000 */ mtc1 $at, $f24 ## $f24 = 50.00
/* 006F4 80895FE4 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 006F8 80895FE8 4481B000 */ mtc1 $at, $f22 ## $f22 = 0.50
/* 006FC 80895FEC 3C018089 */ lui $at, %hi(D_8089772C) ## $at = 80890000
/* 00700 80895FF0 3C148089 */ lui $s4, %hi(D_808973A4) ## $s4 = 80890000
/* 00704 80895FF4 3C178089 */ lui $s7, %hi(D_808973A4 + 0xC) ## $s7 = 80890000
/* 00708 80895FF8 3C108089 */ lui $s0, %hi(D_8089731C) ## $s0 = 80890000
/* 0070C 80895FFC 2610731C */ addiu $s0, $s0, %lo(D_8089731C) ## $s0 = 8089731C
/* 00710 80896000 26F773B0 */ addiu $s7, $s7, %lo(D_808973A4 + 0xC) ## $s7 = 808973B0
/* 00714 80896004 269473A4 */ addiu $s4, $s4, %lo(D_808973A4) ## $s4 = 808973A4
/* 00718 80896008 C434772C */ lwc1 $f20, %lo(D_8089772C)($at)
/* 0071C 8089600C 27BE00C8 */ addiu $s8, $sp, 0x00C8 ## $s8 = FFFFFFE8
/* 00720 80896010 24150002 */ addiu $s5, $zero, 0x0002 ## $s5 = 00000002
/* 00724 80896014 2413000B */ addiu $s3, $zero, 0x000B ## $s3 = 0000000B
/* 00728 80896018 2411FFC0 */ addiu $s1, $zero, 0xFFC0 ## $s1 = FFFFFFC0
.L8089601C:
/* 0072C 8089601C 02E02025 */ or $a0, $s7, $zero ## $a0 = 808973B0
/* 00730 80896020 02802825 */ or $a1, $s4, $zero ## $a1 = 808973A4
/* 00734 80896024 0C01DFB4 */ jal Math_Vec3f_Diff
## Vec3f_Sub
/* 00738 80896028 27A600D4 */ addiu $a2, $sp, 0x00D4 ## $a2 = FFFFFFF4
/* 0073C 8089602C C7A200D4 */ lwc1 $f2, 0x00D4($sp)
/* 00740 80896030 C7AC00D8 */ lwc1 $f12, 0x00D8($sp)
/* 00744 80896034 C7AE00DC */ lwc1 $f14, 0x00DC($sp)
/* 00748 80896038 461C1082 */ mul.s $f2, $f2, $f28
/* 0074C 8089603C 0000B025 */ or $s6, $zero, $zero ## $s6 = 00000000
/* 00750 80896040 461C6302 */ mul.s $f12, $f12, $f28
/* 00754 80896044 00000000 */ nop
/* 00758 80896048 461C7382 */ mul.s $f14, $f14, $f28
/* 0075C 8089604C E7A200D4 */ swc1 $f2, 0x00D4($sp)
/* 00760 80896050 E7AC00D8 */ swc1 $f12, 0x00D8($sp)
/* 00764 80896054 E7AE00DC */ swc1 $f14, 0x00DC($sp)
/* 00768 80896058 44965000 */ mtc1 $s6, $f10 ## $f10 = 0.00
.L8089605C:
/* 0076C 8089605C C7A200D4 */ lwc1 $f2, 0x00D4($sp)
/* 00770 80896060 C7AC00D8 */ lwc1 $f12, 0x00D8($sp)
/* 00774 80896064 46805020 */ cvt.s.w $f0, $f10
/* 00778 80896068 C6900000 */ lwc1 $f16, 0x0000($s4) ## 808973A4
/* 0077C 8089606C C7AE00DC */ lwc1 $f14, 0x00DC($sp)
/* 00780 80896070 C6860004 */ lwc1 $f6, 0x0004($s4) ## 808973A8
/* 00784 80896074 03C02025 */ or $a0, $s8, $zero ## $a0 = FFFFFFE8
/* 00788 80896078 27A500BC */ addiu $a1, $sp, 0x00BC ## $a1 = FFFFFFDC
/* 0078C 8089607C 46001482 */ mul.s $f18, $f2, $f0
/* 00790 80896080 46128100 */ add.s $f4, $f16, $f18
/* 00794 80896084 46006202 */ mul.s $f8, $f12, $f0
/* 00798 80896088 C6900008 */ lwc1 $f16, 0x0008($s4) ## 808973AC
/* 0079C 8089608C 46007482 */ mul.s $f18, $f14, $f0
/* 007A0 80896090 E7A400C8 */ swc1 $f4, 0x00C8($sp)
/* 007A4 80896094 46083280 */ add.s $f10, $f6, $f8
/* 007A8 80896098 46128100 */ add.s $f4, $f16, $f18
/* 007AC 8089609C E7AA00CC */ swc1 $f10, 0x00CC($sp)
/* 007B0 808960A0 0C0346BD */ jal Matrix_MultVec3f
/* 007B4 808960A4 E7A400D0 */ swc1 $f4, 0x00D0($sp)
/* 007B8 808960A8 C7A600BC */ lwc1 $f6, 0x00BC($sp)
/* 007BC 808960AC C7A400C4 */ lwc1 $f4, 0x00C4($sp)
/* 007C0 808960B0 26D60001 */ addiu $s6, $s6, 0x0001 ## $s6 = 00000001
/* 007C4 808960B4 46183200 */ add.s $f8, $f6, $f24
/* 007C8 808960B8 00004825 */ or $t1, $zero, $zero ## $t1 = 00000000
/* 007CC 808960BC 4604D181 */ sub.s $f6, $f26, $f4
/* 007D0 808960C0 46144282 */ mul.s $f10, $f8, $f20
/* 007D4 808960C4 00000000 */ nop
/* 007D8 808960C8 46143202 */ mul.s $f8, $f6, $f20
/* 007DC 808960CC 46165400 */ add.s $f16, $f10, $f22
/* 007E0 808960D0 46164280 */ add.s $f10, $f8, $f22
/* 007E4 808960D4 4600848D */ trunc.w.s $f18, $f16
/* 007E8 808960D8 4600540D */ trunc.w.s $f16, $f10
/* 007EC 808960DC 440C9000 */ mfc1 $t4, $f18
/* 007F0 808960E0 44028000 */ mfc1 $v0, $f16
/* 007F4 808960E4 00000000 */ nop
/* 007F8 808960E8 244BFFFB */ addiu $t3, $v0, 0xFFFB ## $t3 = FFFFFFFB
.L808960EC:
/* 007FC 808960EC 01716824 */ and $t5, $t3, $s1
/* 00800 808960F0 15A00070 */ bne $t5, $zero, .L808962B4
/* 00804 808960F4 000B4180 */ sll $t0, $t3, 6
/* 00808 808960F8 2401FFC0 */ addiu $at, $zero, 0xFFC0 ## $at = FFFFFFC0
/* 0080C 808960FC 2583FFFB */ addiu $v1, $t4, 0xFFFB ## $v1 = FFFFFFFB
/* 00810 80896100 00613824 */ and $a3, $v1, $at
/* 00814 80896104 2584FFFD */ addiu $a0, $t4, 0xFFFD ## $a0 = FFFFFFFD
/* 00818 80896108 2585FFFC */ addiu $a1, $t4, 0xFFFC ## $a1 = FFFFFFFC
/* 0081C 8089610C 00A13024 */ and $a2, $a1, $at
/* 00820 80896110 14E0000C */ bne $a3, $zero, .L80896144
/* 00824 80896114 00815024 */ and $t2, $a0, $at
/* 00828 80896118 0009C080 */ sll $t8, $t1, 2
/* 0082C 8089611C 0309C023 */ subu $t8, $t8, $t1
/* 00830 80896120 0018C080 */ sll $t8, $t8, 2
/* 00834 80896124 0309C023 */ subu $t8, $t8, $t1
/* 00838 80896128 01037021 */ addu $t6, $t0, $v1
/* 0083C 8089612C 01D21021 */ addu $v0, $t6, $s2
/* 00840 80896130 0218C821 */ addu $t9, $s0, $t8
/* 00844 80896134 932D0000 */ lbu $t5, 0x0000($t9) ## 00000000
/* 00848 80896138 904F0000 */ lbu $t7, 0x0000($v0) ## 00000000
/* 0084C 8089613C 01ED7025 */ or $t6, $t7, $t5 ## $t6 = 00000000
/* 00850 80896140 A04E0000 */ sb $t6, 0x0000($v0) ## 00000000
.L80896144:
/* 00854 80896144 14C0000B */ bne $a2, $zero, .L80896174
/* 00858 80896148 0105C021 */ addu $t8, $t0, $a1
/* 0085C 8089614C 00097880 */ sll $t7, $t1, 2
/* 00860 80896150 01E97823 */ subu $t7, $t7, $t1
/* 00864 80896154 000F7880 */ sll $t7, $t7, 2
/* 00868 80896158 01E97823 */ subu $t7, $t7, $t1
/* 0086C 8089615C 020F6821 */ addu $t5, $s0, $t7
/* 00870 80896160 03121021 */ addu $v0, $t8, $s2
/* 00874 80896164 90590000 */ lbu $t9, 0x0000($v0) ## 00000000
/* 00878 80896168 91AE0001 */ lbu $t6, 0x0001($t5) ## 00000001
/* 0087C 8089616C 032EC025 */ or $t8, $t9, $t6 ## $t8 = 00000000
/* 00880 80896170 A0580000 */ sb $t8, 0x0000($v0) ## 00000000
.L80896174:
/* 00884 80896174 1540000B */ bne $t2, $zero, .L808961A4
/* 00888 80896178 01047821 */ addu $t7, $t0, $a0
/* 0088C 8089617C 0009C880 */ sll $t9, $t1, 2
/* 00890 80896180 0329C823 */ subu $t9, $t9, $t1
/* 00894 80896184 0019C880 */ sll $t9, $t9, 2
/* 00898 80896188 0329C823 */ subu $t9, $t9, $t1
/* 0089C 8089618C 02197021 */ addu $t6, $s0, $t9
/* 008A0 80896190 01F21021 */ addu $v0, $t7, $s2
/* 008A4 80896194 904D0000 */ lbu $t5, 0x0000($v0) ## 00000000
/* 008A8 80896198 91D80002 */ lbu $t8, 0x0002($t6) ## 00000002
/* 008AC 8089619C 01B87825 */ or $t7, $t5, $t8 ## $t7 = 00000000
/* 008B0 808961A0 A04F0000 */ sb $t7, 0x0000($v0) ## 00000000
.L808961A4:
/* 008B4 808961A4 25820003 */ addiu $v0, $t4, 0x0003 ## $v0 = 00000003
/* 008B8 808961A8 2443FFFB */ addiu $v1, $v0, 0xFFFB ## $v1 = FFFFFFFE
/* 008BC 808961AC 2445FFFC */ addiu $a1, $v0, 0xFFFC ## $a1 = FFFFFFFF
/* 008C0 808961B0 2446FFFD */ addiu $a2, $v0, 0xFFFD ## $a2 = 00000000
/* 008C4 808961B4 2447FFFE */ addiu $a3, $v0, 0xFFFE ## $a3 = 00000001
/* 008C8 808961B8 24040003 */ addiu $a0, $zero, 0x0003 ## $a0 = 00000003
.L808961BC:
/* 008CC 808961BC 0071C824 */ and $t9, $v1, $s1
/* 008D0 808961C0 1720000C */ bne $t9, $zero, .L808961F4
/* 008D4 808961C4 01037021 */ addu $t6, $t0, $v1
/* 008D8 808961C8 0009C080 */ sll $t8, $t1, 2
/* 008DC 808961CC 0309C023 */ subu $t8, $t8, $t1
/* 008E0 808961D0 0018C080 */ sll $t8, $t8, 2
/* 008E4 808961D4 0309C023 */ subu $t8, $t8, $t1
/* 008E8 808961D8 02187821 */ addu $t7, $s0, $t8
/* 008EC 808961DC 01D21021 */ addu $v0, $t6, $s2
/* 008F0 808961E0 01E4C821 */ addu $t9, $t7, $a0
/* 008F4 808961E4 932E0000 */ lbu $t6, 0x0000($t9) ## 00000000
/* 008F8 808961E8 904D0000 */ lbu $t5, 0x0000($v0) ## 00000003
/* 008FC 808961EC 01AEC025 */ or $t8, $t5, $t6 ## $t8 = 00000000
/* 00900 808961F0 A0580000 */ sb $t8, 0x0000($v0) ## 00000003
.L808961F4:
/* 00904 808961F4 00B17824 */ and $t7, $a1, $s1
/* 00908 808961F8 15E0000D */ bne $t7, $zero, .L80896230
/* 0090C 808961FC 24630004 */ addiu $v1, $v1, 0x0004 ## $v1 = 00000002
/* 00910 80896200 00097080 */ sll $t6, $t1, 2
/* 00914 80896204 01C97023 */ subu $t6, $t6, $t1
/* 00918 80896208 000E7080 */ sll $t6, $t6, 2
/* 0091C 8089620C 01C97023 */ subu $t6, $t6, $t1
/* 00920 80896210 0105C821 */ addu $t9, $t0, $a1
/* 00924 80896214 03321021 */ addu $v0, $t9, $s2
/* 00928 80896218 020EC021 */ addu $t8, $s0, $t6
/* 0092C 8089621C 03047821 */ addu $t7, $t8, $a0
/* 00930 80896220 91F90001 */ lbu $t9, 0x0001($t7) ## 00000001
/* 00934 80896224 904D0000 */ lbu $t5, 0x0000($v0) ## 00000003
/* 00938 80896228 01B97025 */ or $t6, $t5, $t9 ## $t6 = 00000000
/* 0093C 8089622C A04E0000 */ sb $t6, 0x0000($v0) ## 00000003
.L80896230:
/* 00940 80896230 00D1C024 */ and $t8, $a2, $s1
/* 00944 80896234 1700000D */ bne $t8, $zero, .L8089626C
/* 00948 80896238 24A50004 */ addiu $a1, $a1, 0x0004 ## $a1 = 00000003
/* 0094C 8089623C 0009C880 */ sll $t9, $t1, 2
/* 00950 80896240 0329C823 */ subu $t9, $t9, $t1
/* 00954 80896244 0019C880 */ sll $t9, $t9, 2
/* 00958 80896248 0329C823 */ subu $t9, $t9, $t1
/* 0095C 8089624C 01067821 */ addu $t7, $t0, $a2
/* 00960 80896250 01F21021 */ addu $v0, $t7, $s2
/* 00964 80896254 02197021 */ addu $t6, $s0, $t9
/* 00968 80896258 01C4C021 */ addu $t8, $t6, $a0
/* 0096C 8089625C 930F0002 */ lbu $t7, 0x0002($t8) ## 00000002
/* 00970 80896260 904D0000 */ lbu $t5, 0x0000($v0) ## 00000003
/* 00974 80896264 01AFC825 */ or $t9, $t5, $t7 ## $t9 = 00000000
/* 00978 80896268 A0590000 */ sb $t9, 0x0000($v0) ## 00000003
.L8089626C:
/* 0097C 8089626C 00F17024 */ and $t6, $a3, $s1
/* 00980 80896270 15C0000D */ bne $t6, $zero, .L808962A8
/* 00984 80896274 24C60004 */ addiu $a2, $a2, 0x0004 ## $a2 = 00000004
/* 00988 80896278 00097880 */ sll $t7, $t1, 2
/* 0098C 8089627C 01E97823 */ subu $t7, $t7, $t1
/* 00990 80896280 000F7880 */ sll $t7, $t7, 2
/* 00994 80896284 01E97823 */ subu $t7, $t7, $t1
/* 00998 80896288 0107C021 */ addu $t8, $t0, $a3
/* 0099C 8089628C 03121021 */ addu $v0, $t8, $s2
/* 009A0 80896290 020FC821 */ addu $t9, $s0, $t7
/* 009A4 80896294 03247021 */ addu $t6, $t9, $a0
/* 009A8 80896298 91D80003 */ lbu $t8, 0x0003($t6) ## 00000003
/* 009AC 8089629C 904D0000 */ lbu $t5, 0x0000($v0) ## 00000003
/* 009B0 808962A0 01B87825 */ or $t7, $t5, $t8 ## $t7 = 00000000
/* 009B4 808962A4 A04F0000 */ sb $t7, 0x0000($v0) ## 00000003
.L808962A8:
/* 009B8 808962A8 24840004 */ addiu $a0, $a0, 0x0004 ## $a0 = 00000007
/* 009BC 808962AC 1493FFC3 */ bne $a0, $s3, .L808961BC
/* 009C0 808962B0 24E70004 */ addiu $a3, $a3, 0x0004 ## $a3 = 00000005
.L808962B4:
/* 009C4 808962B4 25290001 */ addiu $t1, $t1, 0x0001 ## $t1 = 00000001
/* 009C8 808962B8 1533FF8C */ bne $t1, $s3, .L808960EC
/* 009CC 808962BC 256B0001 */ addiu $t3, $t3, 0x0001 ## $t3 = FFFFFFFC
/* 009D0 808962C0 56D5FF66 */ bnel $s6, $s5, .L8089605C
/* 009D4 808962C4 44965000 */ mtc1 $s6, $f10 ## $f10 = 0.00
/* 009D8 808962C8 3C198089 */ lui $t9, %hi(D_808974DC) ## $t9 = 80890000
/* 009DC 808962CC 273974DC */ addiu $t9, $t9, %lo(D_808974DC) ## $t9 = 808974DC
/* 009E0 808962D0 26F7000C */ addiu $s7, $s7, 0x000C ## $s7 = 808973BC
/* 009E4 808962D4 02F9082B */ sltu $at, $s7, $t9
/* 009E8 808962D8 1420FF50 */ bne $at, $zero, .L8089601C
/* 009EC 808962DC 2694000C */ addiu $s4, $s4, 0x000C ## $s4 = 808973B0
/* 009F0 808962E0 3C158089 */ lui $s5, %hi(D_808974DC) ## $s5 = 80890000
/* 009F4 808962E4 3C148089 */ lui $s4, %hi(D_808974DC + 0xC) ## $s4 = 80890000
/* 009F8 808962E8 3C018089 */ lui $at, %hi(D_80897730) ## $at = 80890000
/* 009FC 808962EC 3C178089 */ lui $s7, %hi(D_80897518) ## $s7 = 80890000
/* 00A00 808962F0 3C138089 */ lui $s3, %hi(D_80897398) ## $s3 = 80890000
/* 00A04 808962F4 26737398 */ addiu $s3, $s3, %lo(D_80897398) ## $s3 = 80897398
/* 00A08 808962F8 26F77518 */ addiu $s7, $s7, %lo(D_80897518) ## $s7 = 80897518
/* 00A0C 808962FC C43C7730 */ lwc1 $f28, %lo(D_80897730)($at)
/* 00A10 80896300 269474E8 */ addiu $s4, $s4, %lo(D_808974DC + 0xC) ## $s4 = 808974E8
/* 00A14 80896304 26B574DC */ addiu $s5, $s5, %lo(D_808974DC) ## $s5 = 808974DC
/* 00A18 80896308 24100003 */ addiu $s0, $zero, 0x0003 ## $s0 = 00000003
.L8089630C:
/* 00A1C 8089630C 02802025 */ or $a0, $s4, $zero ## $a0 = 808974E8
/* 00A20 80896310 02A02825 */ or $a1, $s5, $zero ## $a1 = 808974DC
/* 00A24 80896314 0C01DFB4 */ jal Math_Vec3f_Diff
## Vec3f_Sub
/* 00A28 80896318 27A600D4 */ addiu $a2, $sp, 0x00D4 ## $a2 = FFFFFFF4
/* 00A2C 8089631C C7A200D4 */ lwc1 $f2, 0x00D4($sp)
/* 00A30 80896320 C7AC00D8 */ lwc1 $f12, 0x00D8($sp)
/* 00A34 80896324 C7AE00DC */ lwc1 $f14, 0x00DC($sp)
/* 00A38 80896328 461C1082 */ mul.s $f2, $f2, $f28
/* 00A3C 8089632C 0000B025 */ or $s6, $zero, $zero ## $s6 = 00000000
/* 00A40 80896330 461C6302 */ mul.s $f12, $f12, $f28
/* 00A44 80896334 00000000 */ nop
/* 00A48 80896338 461C7382 */ mul.s $f14, $f14, $f28
/* 00A4C 8089633C E7A200D4 */ swc1 $f2, 0x00D4($sp)
/* 00A50 80896340 E7AC00D8 */ swc1 $f12, 0x00D8($sp)
/* 00A54 80896344 E7AE00DC */ swc1 $f14, 0x00DC($sp)
/* 00A58 80896348 44969000 */ mtc1 $s6, $f18 ## $f18 = 0.00
.L8089634C:
/* 00A5C 8089634C C7A200D4 */ lwc1 $f2, 0x00D4($sp)
/* 00A60 80896350 C7AC00D8 */ lwc1 $f12, 0x00D8($sp)
/* 00A64 80896354 46809020 */ cvt.s.w $f0, $f18
/* 00A68 80896358 C6A40000 */ lwc1 $f4, 0x0000($s5) ## 808974DC
/* 00A6C 8089635C C7AE00DC */ lwc1 $f14, 0x00DC($sp)
/* 00A70 80896360 C6AA0004 */ lwc1 $f10, 0x0004($s5) ## 808974E0
/* 00A74 80896364 03C02025 */ or $a0, $s8, $zero ## $a0 = FFFFFFE8
/* 00A78 80896368 27A500BC */ addiu $a1, $sp, 0x00BC ## $a1 = FFFFFFDC
/* 00A7C 8089636C 46001182 */ mul.s $f6, $f2, $f0
/* 00A80 80896370 46062200 */ add.s $f8, $f4, $f6
/* 00A84 80896374 46006402 */ mul.s $f16, $f12, $f0
/* 00A88 80896378 C6A40008 */ lwc1 $f4, 0x0008($s5) ## 808974E4
/* 00A8C 8089637C 46007182 */ mul.s $f6, $f14, $f0
/* 00A90 80896380 E7A800C8 */ swc1 $f8, 0x00C8($sp)
/* 00A94 80896384 46105480 */ add.s $f18, $f10, $f16
/* 00A98 80896388 46062200 */ add.s $f8, $f4, $f6
/* 00A9C 8089638C E7B200CC */ swc1 $f18, 0x00CC($sp)
/* 00AA0 80896390 0C0346BD */ jal Matrix_MultVec3f
/* 00AA4 80896394 E7A800D0 */ swc1 $f8, 0x00D0($sp)
/* 00AA8 80896398 C7AA00BC */ lwc1 $f10, 0x00BC($sp)
/* 00AAC 8089639C C7A800C4 */ lwc1 $f8, 0x00C4($sp)
/* 00AB0 808963A0 26D60001 */ addiu $s6, $s6, 0x0001 ## $s6 = 00000001
/* 00AB4 808963A4 46185400 */ add.s $f16, $f10, $f24
/* 00AB8 808963A8 00004825 */ or $t1, $zero, $zero ## $t1 = 00000000
/* 00ABC 808963AC 4608D281 */ sub.s $f10, $f26, $f8
/* 00AC0 808963B0 46148482 */ mul.s $f18, $f16, $f20
/* 00AC4 808963B4 00000000 */ nop
/* 00AC8 808963B8 46145402 */ mul.s $f16, $f10, $f20
/* 00ACC 808963BC 46169100 */ add.s $f4, $f18, $f22
/* 00AD0 808963C0 46168480 */ add.s $f18, $f16, $f22
/* 00AD4 808963C4 4600218D */ trunc.w.s $f6, $f4
/* 00AD8 808963C8 4600910D */ trunc.w.s $f4, $f18
/* 00ADC 808963CC 440C3000 */ mfc1 $t4, $f6
/* 00AE0 808963D0 44022000 */ mfc1 $v0, $f4
/* 00AE4 808963D4 00000000 */ nop
/* 00AE8 808963D8 2445FFFF */ addiu $a1, $v0, 0xFFFF ## $a1 = FFFFFFFF
.L808963DC:
/* 00AEC 808963DC 00B1C024 */ and $t8, $a1, $s1
/* 00AF0 808963E0 17000012 */ bne $t8, $zero, .L8089642C
/* 00AF4 808963E4 00054180 */ sll $t0, $a1, 6
/* 00AF8 808963E8 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 00AFC 808963EC 2583FFFF */ addiu $v1, $t4, 0xFFFF ## $v1 = FFFFFFFF
.L808963F0:
/* 00B00 808963F0 00717824 */ and $t7, $v1, $s1
/* 00B04 808963F4 15E0000A */ bne $t7, $zero, .L80896420
/* 00B08 808963F8 0103C821 */ addu $t9, $t0, $v1
/* 00B0C 808963FC 00096880 */ sll $t5, $t1, 2
/* 00B10 80896400 01A96823 */ subu $t5, $t5, $t1
/* 00B14 80896404 026DC021 */ addu $t8, $s3, $t5
/* 00B18 80896408 03321021 */ addu $v0, $t9, $s2
/* 00B1C 8089640C 03047821 */ addu $t7, $t8, $a0
/* 00B20 80896410 91F90000 */ lbu $t9, 0x0000($t7) ## 00000000
/* 00B24 80896414 904E0000 */ lbu $t6, 0x0000($v0) ## 00000000
/* 00B28 80896418 01D96825 */ or $t5, $t6, $t9 ## $t5 = 00000000
/* 00B2C 8089641C A04D0000 */ sb $t5, 0x0000($v0) ## 00000000
.L80896420:
/* 00B30 80896420 24840001 */ addiu $a0, $a0, 0x0001 ## $a0 = 00000001
/* 00B34 80896424 1490FFF2 */ bne $a0, $s0, .L808963F0
/* 00B38 80896428 24630001 */ addiu $v1, $v1, 0x0001 ## $v1 = 00000000
.L8089642C:
/* 00B3C 8089642C 25290001 */ addiu $t1, $t1, 0x0001 ## $t1 = 00000001
/* 00B40 80896430 29210003 */ slti $at, $t1, 0x0003
/* 00B44 80896434 1420FFE9 */ bne $at, $zero, .L808963DC
/* 00B48 80896438 24A50001 */ addiu $a1, $a1, 0x0001 ## $a1 = 00000000
/* 00B4C 8089643C 2AC10005 */ slti $at, $s6, 0x0005
/* 00B50 80896440 5420FFC2 */ bnel $at, $zero, .L8089634C
/* 00B54 80896444 44969000 */ mtc1 $s6, $f18 ## $f18 = 0.00
/* 00B58 80896448 2694000C */ addiu $s4, $s4, 0x000C ## $s4 = 808974F4
/* 00B5C 8089644C 0297082B */ sltu $at, $s4, $s7
/* 00B60 80896450 1420FFAE */ bne $at, $zero, .L8089630C
/* 00B64 80896454 26B5000C */ addiu $s5, $s5, 0x000C ## $s5 = 808974E8
/* 00B68 80896458 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 00B6C 8089645C 24040040 */ addiu $a0, $zero, 0x0040 ## $a0 = 00000040
.L80896460:
/* 00B70 80896460 02421821 */ addu $v1, $s2, $v0
/* 00B74 80896464 24420004 */ addiu $v0, $v0, 0x0004 ## $v0 = 00000004
/* 00B78 80896468 A0600001 */ sb $zero, 0x0001($v1) ## 00000001
/* 00B7C 8089646C A0600FC1 */ sb $zero, 0x0FC1($v1) ## 00000FC1
/* 00B80 80896470 A0600002 */ sb $zero, 0x0002($v1) ## 00000002
/* 00B84 80896474 A0600FC2 */ sb $zero, 0x0FC2($v1) ## 00000FC2
/* 00B88 80896478 A0600003 */ sb $zero, 0x0003($v1) ## 00000003
/* 00B8C 8089647C A0600FC3 */ sb $zero, 0x0FC3($v1) ## 00000FC3
/* 00B90 80896480 A0600000 */ sb $zero, 0x0000($v1) ## 00000000
/* 00B94 80896484 1444FFF6 */ bne $v0, $a0, .L80896460
/* 00B98 80896488 A0600FC0 */ sb $zero, 0x0FC0($v1) ## 00000FC0
/* 00B9C 8089648C 26420040 */ addiu $v0, $s2, 0x0040 ## $v0 = 000001E3
/* 00BA0 80896490 A0400000 */ sb $zero, 0x0000($v0) ## 000001E3
/* 00BA4 80896494 A040003F */ sb $zero, 0x003F($v0) ## 00000222
/* 00BA8 80896498 A0400040 */ sb $zero, 0x0040($v0) ## 00000223
/* 00BAC 8089649C A040007F */ sb $zero, 0x007F($v0) ## 00000262
/* 00BB0 808964A0 240300C0 */ addiu $v1, $zero, 0x00C0 ## $v1 = 000000C0
/* 00BB4 808964A4 24040FC0 */ addiu $a0, $zero, 0x0FC0 ## $a0 = 00000FC0
.L808964A8:
/* 00BB8 808964A8 02431021 */ addu $v0, $s2, $v1
/* 00BBC 808964AC 24630100 */ addiu $v1, $v1, 0x0100 ## $v1 = 000001C0
/* 00BC0 808964B0 A0400040 */ sb $zero, 0x0040($v0) ## 00000223
/* 00BC4 808964B4 A040007F */ sb $zero, 0x007F($v0) ## 00000262
/* 00BC8 808964B8 A0400080 */ sb $zero, 0x0080($v0) ## 00000263
/* 00BCC 808964BC A04000BF */ sb $zero, 0x00BF($v0) ## 000002A2
/* 00BD0 808964C0 A04000C0 */ sb $zero, 0x00C0($v0) ## 000002A3
/* 00BD4 808964C4 A04000FF */ sb $zero, 0x00FF($v0) ## 000002E2
/* 00BD8 808964C8 A0400000 */ sb $zero, 0x0000($v0) ## 000001E3
/* 00BDC 808964CC 1464FFF6 */ bne $v1, $a0, .L808964A8
/* 00BE0 808964D0 A040003F */ sb $zero, 0x003F($v0) ## 00000222
/* 00BE4 808964D4 8FBF0064 */ lw $ra, 0x0064($sp)
/* 00BE8 808964D8 D7B40018 */ ldc1 $f20, 0x0018($sp)
/* 00BEC 808964DC D7B60020 */ ldc1 $f22, 0x0020($sp)
/* 00BF0 808964E0 D7B80028 */ ldc1 $f24, 0x0028($sp)
/* 00BF4 808964E4 D7BA0030 */ ldc1 $f26, 0x0030($sp)
/* 00BF8 808964E8 D7BC0038 */ ldc1 $f28, 0x0038($sp)
/* 00BFC 808964EC 8FB00040 */ lw $s0, 0x0040($sp)
/* 00C00 808964F0 8FB10044 */ lw $s1, 0x0044($sp)
/* 00C04 808964F4 8FB20048 */ lw $s2, 0x0048($sp)
/* 00C08 808964F8 8FB3004C */ lw $s3, 0x004C($sp)
/* 00C0C 808964FC 8FB40050 */ lw $s4, 0x0050($sp)
/* 00C10 80896500 8FB50054 */ lw $s5, 0x0054($sp)
/* 00C14 80896504 8FB60058 */ lw $s6, 0x0058($sp)
/* 00C18 80896508 8FB7005C */ lw $s7, 0x005C($sp)
/* 00C1C 8089650C 8FBE0060 */ lw $s8, 0x0060($sp)
/* 00C20 80896510 03E00008 */ jr $ra
/* 00C24 80896514 27BD00E0 */ addiu $sp, $sp, 0x00E0 ## $sp = 00000000

View file

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

4
spec
View file

@ -943,11 +943,7 @@ endseg
beginseg beginseg
name "ovl_Bg_Jya_Cobra" name "ovl_Bg_Jya_Cobra"
include "build/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.o" include "build/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.o"
#ifdef NON_MATCHING
include "build/src/overlays/actors/ovl_Bg_Jya_Cobra/ovl_Bg_Jya_Cobra_reloc.o" include "build/src/overlays/actors/ovl_Bg_Jya_Cobra/ovl_Bg_Jya_Cobra_reloc.o"
#else
include "build/data/overlays/actors/z_bg_jya_cobra.reloc.o"
#endif
endseg endseg
beginseg beginseg

View file

@ -274,10 +274,6 @@ void func_80895C74(BgJyaCobra* this, GlobalContext* globalCtx) {
} }
} }
#ifdef NON_MATCHING
// Repeatedly calculates temp_z * 0x40 for temp_s2[temp_z] rather than calculating it once when temp_z is assigned.
// Making temp_z volatile or accessing through a pointer variable in if (!(temp_z & ~0x3F)) fix the above issue but are
// obviously wrong.
/* /*
* Updates the shadow with light coming from the side of the mirror * Updates the shadow with light coming from the side of the mirror
*/ */
@ -285,7 +281,7 @@ void BgJyaCobra_UpdateShadowFromSide(BgJyaCobra* this) {
Vec3f spD4; Vec3f spD4;
Vec3f spC8; Vec3f spC8;
Vec3f spBC; Vec3f spBC;
u8(*temp_s2)[0x40]; u8* temp_s2;
s32 temp_x; s32 temp_x;
s32 temp_z; s32 temp_z;
s32 x; s32 x;
@ -296,8 +292,8 @@ void BgJyaCobra_UpdateShadowFromSide(BgJyaCobra* this) {
s32 l; s32 l;
s16 rotY; s16 rotY;
temp_s2 = (u8(*)[0x40])ALIGN16((s32)(&this->shadowTexture)); temp_s2 = ALIGN16((s32)(&this->shadowTexture));
Lib_MemSet((u8*)temp_s2, 0x1000, 0); Lib_MemSet(temp_s2, 0x1000, 0);
Matrix_RotateX((M_PI / 4), MTXMODE_NEW); Matrix_RotateX((M_PI / 4), MTXMODE_NEW);
rotY = !(this->dyna.actor.params & 3) ? (this->dyna.actor.shape.rot.y + 0x4000) rotY = !(this->dyna.actor.params & 3) ? (this->dyna.actor.shape.rot.y + 0x4000)
@ -315,16 +311,18 @@ void BgJyaCobra_UpdateShadowFromSide(BgJyaCobra* this) {
spC8.y = D_808973A4[i].y + (spD4.y * j); spC8.y = D_808973A4[i].y + (spD4.y * j);
spC8.z = D_808973A4[i].z + (spD4.z * j); spC8.z = D_808973A4[i].z + (spD4.z * j);
Matrix_MultVec3f(&spC8, &spBC); Matrix_MultVec3f(&spC8, &spBC);
x = (s32)(((spBC.x + 50.0f) * 0.64f) + 0.5f); x = (spBC.x + 50.0f) * 0.64f + 0.5f;
z = (s32)(((88.0f - spBC.z) * 0.64f) + 0.5f); z = (88.0f - spBC.z) * 0.64f + 0.5f;
for (k = 0; k < 11; k++) { for (k = 0; k < 11; k++) {
temp_z = z - 5 + k; temp_z = z - 5 + k;
if (!(temp_z & ~0x3F)) { if (!(temp_z & ~0x3F)) {
temp_z *= 0x40;
for (l = 0; l < 11; l++) { for (l = 0; l < 11; l++) {
temp_x = (x - 5 + l); temp_x = x - 5 + l;
if (!(temp_x & ~0x3F)) { if (!(temp_x & ~0x3F)) {
temp_s2[temp_z][temp_x] |= D_8089731C[k][l]; temp_s2[temp_z + temp_x] |= D_8089731C[k][l];
} }
if (1) {}
} }
} }
} }
@ -346,10 +344,11 @@ void BgJyaCobra_UpdateShadowFromSide(BgJyaCobra* this) {
for (k = 0; k < 3; k++) { for (k = 0; k < 3; k++) {
temp_z = z - 1 + k; temp_z = z - 1 + k;
if (!(temp_z & ~0x3F)) { if (!(temp_z & ~0x3F)) {
temp_z *= 0x40;
for (l = 0; l < 3; l++) { for (l = 0; l < 3; l++) {
temp_x = x - 1 + l; temp_x = x - 1 + l;
if (!(temp_x & ~0x3F)) { if (!(temp_x & ~0x3F)) {
temp_s2[temp_z][temp_x] |= D_80897398[k][l]; temp_s2[temp_z + temp_x] |= D_80897398[k][l];
} }
} }
} }
@ -358,18 +357,16 @@ void BgJyaCobra_UpdateShadowFromSide(BgJyaCobra* this) {
} }
for (i = 0; i < 0x40; i++) { for (i = 0; i < 0x40; i++) {
temp_s2[0][i] = 0; temp_s2[0 * 0x40 + i] = 0;
temp_s2[0x3F][i] = 0; temp_s2[0x3F * 0x40 + i] = 0;
} }
for (j = 1; j < 0x3F; j++) { for (j = 1; j < 0x3F; j++) {
temp_s2[j][0] = 0; temp_s2[j * 0x40 + 0] = 0;
temp_s2[j][0x3F] = 0; temp_s2[j * 0x40 + 0x3F] = 0;
} }
if (D_80897398) {}
} }
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Jya_Cobra/BgJyaCobra_UpdateShadowFromSide.s")
#endif
/* /*
* Updates the shadow with light coming from above the mirror * Updates the shadow with light coming from above the mirror