mirror of https://github.com/zeldaret/oot.git
231 lines
11 KiB
ArmAsm
231 lines
11 KiB
ArmAsm
.late_rodata
|
|
glabel D_8013A16C
|
|
.float 0.01
|
|
|
|
glabel D_8013A170
|
|
.float 0.01
|
|
|
|
glabel D_8013A174
|
|
.float 0.01
|
|
|
|
glabel D_8013A178
|
|
.float 0.1
|
|
|
|
glabel D_8013A17C
|
|
.float 0.2
|
|
|
|
.text
|
|
glabel Camera_Fixed1
|
|
/* AC6844 8004F6A4 27BDFF80 */ addiu $sp, $sp, -0x80
|
|
/* AC6848 8004F6A8 AFB0001C */ sw $s0, 0x1c($sp)
|
|
/* AC684C 8004F6AC 00808025 */ move $s0, $a0
|
|
/* AC6850 8004F6B0 AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* AC6854 8004F6B4 AFB10020 */ sw $s1, 0x20($sp)
|
|
/* AC6858 8004F6B8 0C00B721 */ jal Player_GetCameraYOffset
|
|
/* AC685C 8004F6BC 8C840090 */ lw $a0, 0x90($a0)
|
|
/* AC6860 8004F6C0 E7A00040 */ swc1 $f0, 0x40($sp)
|
|
/* AC6864 8004F6C4 8602015E */ lh $v0, 0x15e($s0)
|
|
/* AC6868 8004F6C8 10400009 */ beqz $v0, .L8004F6F0
|
|
/* AC686C 8004F6CC 2401000A */ li $at, 10
|
|
/* AC6870 8004F6D0 10410007 */ beq $v0, $at, .L8004F6F0
|
|
/* AC6874 8004F6D4 24010014 */ li $at, 20
|
|
/* AC6878 8004F6D8 10410005 */ beq $v0, $at, .L8004F6F0
|
|
/* AC687C 8004F6DC 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016
|
|
/* AC6880 8004F6E0 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6)
|
|
/* AC6884 8004F6E4 85C40314 */ lh $a0, 0x314($t6)
|
|
/* AC6888 8004F6E8 10800039 */ beqz $a0, .L8004F7D0
|
|
/* AC688C 8004F6EC 00000000 */ nop
|
|
.L8004F6F0:
|
|
/* AC6890 8004F6F0 860F0142 */ lh $t7, 0x142($s0)
|
|
/* AC6894 8004F6F4 3C198012 */ lui $t9, %hi(sCameraSettings+4)
|
|
/* AC6898 8004F6F8 86080144 */ lh $t0, 0x144($s0)
|
|
/* AC689C 8004F6FC 000FC0C0 */ sll $t8, $t7, 3
|
|
/* AC68A0 8004F700 0338C821 */ addu $t9, $t9, $t8
|
|
/* AC68A4 8004F704 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9)
|
|
/* AC68A8 8004F708 000848C0 */ sll $t1, $t0, 3
|
|
/* AC68AC 8004F70C 02002025 */ move $a0, $s0
|
|
/* AC68B0 8004F710 03295021 */ addu $t2, $t9, $t1
|
|
/* AC68B4 8004F714 8D430004 */ lw $v1, 4($t2)
|
|
/* AC68B8 8004F718 0C0111DB */ jal func_8004476C
|
|
/* AC68BC 8004F71C AFA3003C */ sw $v1, 0x3c($sp)
|
|
/* AC68C0 8004F720 26110010 */ addiu $s1, $s0, 0x10
|
|
/* AC68C4 8004F724 02202025 */ move $a0, $s1
|
|
/* AC68C8 8004F728 00402825 */ move $a1, $v0
|
|
/* AC68CC 8004F72C 0C010EF1 */ jal func_80043BC4
|
|
/* AC68D0 8004F730 AFA20050 */ sw $v0, 0x50($sp)
|
|
/* AC68D4 8004F734 8FA60050 */ lw $a2, 0x50($sp)
|
|
/* AC68D8 8004F738 8FA3003C */ lw $v1, 0x3c($sp)
|
|
/* AC68DC 8004F73C 3C018014 */ lui $at, %hi(D_8013A16C)
|
|
/* AC68E0 8004F740 88CC0006 */ lwl $t4, 6($a2)
|
|
/* AC68E4 8004F744 98CC0009 */ lwr $t4, 9($a2)
|
|
/* AC68E8 8004F748 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016
|
|
/* AC68EC 8004F74C 2463000C */ addiu $v1, $v1, 0xc
|
|
/* AC68F0 8004F750 AA2C000C */ swl $t4, 0xc($s1)
|
|
/* AC68F4 8004F754 BA2C000F */ swr $t4, 0xf($s1)
|
|
/* AC68F8 8004F758 94CC000A */ lhu $t4, 0xa($a2)
|
|
/* AC68FC 8004F75C A62C0010 */ sh $t4, 0x10($s1)
|
|
/* AC6900 8004F760 84CD000C */ lh $t5, 0xc($a2)
|
|
/* AC6904 8004F764 A62D0014 */ sh $t5, 0x14($s1)
|
|
/* AC6908 8004F768 846EFFF4 */ lh $t6, -0xc($v1)
|
|
/* AC690C 8004F76C C428A16C */ lwc1 $f8, %lo(D_8013A16C)($at)
|
|
/* AC6910 8004F770 C7B00040 */ lwc1 $f16, 0x40($sp)
|
|
/* AC6914 8004F774 448E2000 */ mtc1 $t6, $f4
|
|
/* AC6918 8004F778 3C018014 */ lui $at, %hi(D_8013A170)
|
|
/* AC691C 8004F77C 468021A0 */ cvt.s.w $f6, $f4
|
|
/* AC6920 8004F780 46083282 */ mul.s $f10, $f6, $f8
|
|
/* AC6924 8004F784 00000000 */ nop
|
|
/* AC6928 8004F788 46105482 */ mul.s $f18, $f10, $f16
|
|
/* AC692C 8004F78C E6120000 */ swc1 $f18, ($s0)
|
|
/* AC6930 8004F790 846FFFF8 */ lh $t7, -8($v1)
|
|
/* AC6934 8004F794 C428A170 */ lwc1 $f8, %lo(D_8013A170)($at)
|
|
/* AC6938 8004F798 448F2000 */ mtc1 $t7, $f4
|
|
/* AC693C 8004F79C 00000000 */ nop
|
|
/* AC6940 8004F7A0 468021A0 */ cvt.s.w $f6, $f4
|
|
/* AC6944 8004F7A4 46083282 */ mul.s $f10, $f6, $f8
|
|
/* AC6948 8004F7A8 E60A0004 */ swc1 $f10, 4($s0)
|
|
/* AC694C 8004F7AC 8478FFFC */ lh $t8, -4($v1)
|
|
/* AC6950 8004F7B0 44988000 */ mtc1 $t8, $f16
|
|
/* AC6954 8004F7B4 00000000 */ nop
|
|
/* AC6958 8004F7B8 468084A0 */ cvt.s.w $f18, $f16
|
|
/* AC695C 8004F7BC E6120008 */ swc1 $f18, 8($s0)
|
|
/* AC6960 8004F7C0 84680000 */ lh $t0, ($v1)
|
|
/* AC6964 8004F7C4 A608000C */ sh $t0, 0xc($s0)
|
|
/* AC6968 8004F7C8 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9)
|
|
/* AC696C 8004F7CC 87240314 */ lh $a0, 0x314($t9)
|
|
.L8004F7D0:
|
|
/* AC6970 8004F7D0 10800003 */ beqz $a0, .L8004F7E0
|
|
/* AC6974 8004F7D4 26110010 */ addiu $s1, $s0, 0x10
|
|
/* AC6978 8004F7D8 0C011495 */ jal Camera_CopyPREGToModeValues
|
|
/* AC697C 8004F7DC 02002025 */ move $a0, $s0
|
|
.L8004F7E0:
|
|
/* AC6980 8004F7E0 86220014 */ lh $v0, 0x14($s1)
|
|
/* AC6984 8004F7E4 2401FFFF */ li $at, -1
|
|
/* AC6988 8004F7E8 14410008 */ bne $v0, $at, .L8004F80C
|
|
/* AC698C 8004F7EC 3C0142C8 */ li $at, 0x42C80000 # 0.000000
|
|
/* AC6990 8004F7F0 44813000 */ mtc1 $at, $f6
|
|
/* AC6994 8004F7F4 C6040008 */ lwc1 $f4, 8($s0)
|
|
/* AC6998 8004F7F8 46062202 */ mul.s $f8, $f4, $f6
|
|
/* AC699C 8004F7FC 4600428D */ trunc.w.s $f10, $f8
|
|
/* AC69A0 8004F800 440A5000 */ mfc1 $t2, $f10
|
|
/* AC69A4 8004F804 10000009 */ b .L8004F82C
|
|
/* AC69A8 8004F808 A62A0014 */ sh $t2, 0x14($s1)
|
|
.L8004F80C:
|
|
/* AC69AC 8004F80C 28410169 */ slti $at, $v0, 0x169
|
|
/* AC69B0 8004F810 10200006 */ beqz $at, .L8004F82C
|
|
/* AC69B4 8004F814 00025880 */ sll $t3, $v0, 2
|
|
/* AC69B8 8004F818 01625823 */ subu $t3, $t3, $v0
|
|
/* AC69BC 8004F81C 000B58C0 */ sll $t3, $t3, 3
|
|
/* AC69C0 8004F820 01625821 */ addu $t3, $t3, $v0
|
|
/* AC69C4 8004F824 000B5880 */ sll $t3, $t3, 2
|
|
/* AC69C8 8004F828 A62B0014 */ sh $t3, 0x14($s1)
|
|
.L8004F82C:
|
|
/* AC69CC 8004F82C 860C000C */ lh $t4, 0xc($s0)
|
|
/* AC69D0 8004F830 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012
|
|
/* AC69D4 8004F834 02002025 */ move $a0, $s0
|
|
/* AC69D8 8004F838 AC2CD3A0 */ sw $t4, %lo(D_8011D3A0)($at)
|
|
/* AC69DC 8004F83C 8602015E */ lh $v0, 0x15e($s0)
|
|
/* AC69E0 8004F840 1440000D */ bnez $v0, .L8004F878
|
|
/* AC69E4 8004F844 244D0001 */ addiu $t5, $v0, 1
|
|
/* AC69E8 8004F848 0C010ED8 */ jal func_80043B60
|
|
/* AC69EC 8004F84C A60D015E */ sh $t5, 0x15e($s0)
|
|
/* AC69F0 8004F850 86220014 */ lh $v0, 0x14($s1)
|
|
/* AC69F4 8004F854 2401FFFF */ li $at, -1
|
|
/* AC69F8 8004F858 50410008 */ beql $v0, $at, .L8004F87C
|
|
/* AC69FC 8004F85C 2605005C */ addiu $a1, $s0, 0x5c
|
|
/* AC6A00 8004F860 44828000 */ mtc1 $v0, $f16
|
|
/* AC6A04 8004F864 3C018014 */ lui $at, %hi(D_8013A174)
|
|
/* AC6A08 8004F868 C424A174 */ lwc1 $f4, %lo(D_8013A174)($at)
|
|
/* AC6A0C 8004F86C 468084A0 */ cvt.s.w $f18, $f16
|
|
/* AC6A10 8004F870 46049182 */ mul.s $f6, $f18, $f4
|
|
/* AC6A14 8004F874 E6060008 */ swc1 $f6, 8($s0)
|
|
.L8004F878:
|
|
/* AC6A18 8004F878 2605005C */ addiu $a1, $s0, 0x5c
|
|
.L8004F87C:
|
|
/* AC6A1C 8004F87C 26060050 */ addiu $a2, $s0, 0x50
|
|
/* AC6A20 8004F880 AFA60030 */ sw $a2, 0x30($sp)
|
|
/* AC6A24 8004F884 AFA50034 */ sw $a1, 0x34($sp)
|
|
/* AC6A28 8004F888 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo
|
|
/* AC6A2C 8004F88C 27A40064 */ addiu $a0, $sp, 0x64
|
|
/* AC6A30 8004F890 3C018014 */ lui $at, %hi(D_8013A178)
|
|
/* AC6A34 8004F894 C420A178 */ lwc1 $f0, %lo(D_8013A178)($at)
|
|
/* AC6A38 8004F898 3C018014 */ lui $at, %hi(D_8013A17C)
|
|
/* AC6A3C 8004F89C C428A17C */ lwc1 $f8, %lo(D_8013A17C)($at)
|
|
/* AC6A40 8004F8A0 44060000 */ mfc1 $a2, $f0
|
|
/* AC6A44 8004F8A4 44070000 */ mfc1 $a3, $f0
|
|
/* AC6A48 8004F8A8 02202025 */ move $a0, $s1
|
|
/* AC6A4C 8004F8AC 8FA50034 */ lw $a1, 0x34($sp)
|
|
/* AC6A50 8004F8B0 0C010E8F */ jal func_80043A3C
|
|
/* AC6A54 8004F8B4 E7A80010 */ swc1 $f8, 0x10($sp)
|
|
/* AC6A58 8004F8B8 26020094 */ addiu $v0, $s0, 0x94
|
|
/* AC6A5C 8004F8BC 8C4F0000 */ lw $t7, ($v0)
|
|
/* AC6A60 8004F8C0 27A40054 */ addiu $a0, $sp, 0x54
|
|
/* AC6A64 8004F8C4 AC8F0000 */ sw $t7, ($a0)
|
|
/* AC6A68 8004F8C8 8C4E0004 */ lw $t6, 4($v0)
|
|
/* AC6A6C 8004F8CC AC8E0004 */ sw $t6, 4($a0)
|
|
/* AC6A70 8004F8D0 8C4F0008 */ lw $t7, 8($v0)
|
|
/* AC6A74 8004F8D4 AC8F0008 */ sw $t7, 8($a0)
|
|
/* AC6A78 8004F8D8 C7AA0058 */ lwc1 $f10, 0x58($sp)
|
|
/* AC6A7C 8004F8DC C7B00040 */ lwc1 $f16, 0x40($sp)
|
|
/* AC6A80 8004F8E0 AFA2002C */ sw $v0, 0x2c($sp)
|
|
/* AC6A84 8004F8E4 8FA50034 */ lw $a1, 0x34($sp)
|
|
/* AC6A88 8004F8E8 46105480 */ add.s $f18, $f10, $f16
|
|
/* AC6A8C 8004F8EC 0C01EFE4 */ jal OLib_Vec3fDist
|
|
/* AC6A90 8004F8F0 E7B20058 */ swc1 $f18, 0x58($sp)
|
|
/* AC6A94 8004F8F4 E60000DC */ swc1 $f0, 0xdc($s0)
|
|
/* AC6A98 8004F8F8 E7A0006C */ swc1 $f0, 0x6c($sp)
|
|
/* AC6A9C 8004F8FC 8624000C */ lh $a0, 0xc($s1)
|
|
/* AC6AA0 8004F900 8E060004 */ lw $a2, 4($s0)
|
|
/* AC6AA4 8004F904 87A50068 */ lh $a1, 0x68($sp)
|
|
/* AC6AA8 8004F908 00042023 */ negu $a0, $a0
|
|
/* AC6AAC 8004F90C 00042400 */ sll $a0, $a0, 0x10
|
|
/* AC6AB0 8004F910 00042403 */ sra $a0, $a0, 0x10
|
|
/* AC6AB4 8004F914 0C010E47 */ jal func_8004391C
|
|
/* AC6AB8 8004F918 24070005 */ li $a3, 5
|
|
/* AC6ABC 8004F91C A7A20070 */ sh $v0, 0x70($sp)
|
|
/* AC6AC0 8004F920 8E060004 */ lw $a2, 4($s0)
|
|
/* AC6AC4 8004F924 8624000E */ lh $a0, 0xe($s1)
|
|
/* AC6AC8 8004F928 87A5006A */ lh $a1, 0x6a($sp)
|
|
/* AC6ACC 8004F92C 0C010E47 */ jal func_8004391C
|
|
/* AC6AD0 8004F930 24070005 */ li $a3, 5
|
|
/* AC6AD4 8004F934 A7A20072 */ sh $v0, 0x72($sp)
|
|
/* AC6AD8 8004F938 8FA40030 */ lw $a0, 0x30($sp)
|
|
/* AC6ADC 8004F93C 8FA50034 */ lw $a1, 0x34($sp)
|
|
/* AC6AE0 8004F940 0C010F0A */ jal func_80043C28
|
|
/* AC6AE4 8004F944 27A6006C */ addiu $a2, $sp, 0x6c
|
|
/* AC6AE8 8004F948 8FB80034 */ lw $t8, 0x34($sp)
|
|
/* AC6AEC 8004F94C 3C073C23 */ li $a3, 0x3C230000 # 0.000000
|
|
/* AC6AF0 8004F950 34E7D70A */ ori $a3, (0x3C23D70A & 0xFFFF) # ori $a3, $a3, 0xd70a
|
|
/* AC6AF4 8004F954 8F190000 */ lw $t9, ($t8)
|
|
/* AC6AF8 8004F958 C60C0008 */ lwc1 $f12, 8($s0)
|
|
/* AC6AFC 8004F95C C60E00FC */ lwc1 $f14, 0xfc($s0)
|
|
/* AC6B00 8004F960 AE190074 */ sw $t9, 0x74($s0)
|
|
/* AC6B04 8004F964 8F080004 */ lw $t0, 4($t8)
|
|
/* AC6B08 8004F968 8E060004 */ lw $a2, 4($s0)
|
|
/* AC6B0C 8004F96C AE080078 */ sw $t0, 0x78($s0)
|
|
/* AC6B10 8004F970 8F190008 */ lw $t9, 8($t8)
|
|
/* AC6B14 8004F974 0C010E27 */ jal func_8004389C
|
|
/* AC6B18 8004F978 AE19007C */ sw $t9, 0x7c($s0)
|
|
/* AC6B1C 8004F97C 8FA3002C */ lw $v1, 0x2c($sp)
|
|
/* AC6B20 8004F980 44802000 */ mtc1 $zero, $f4
|
|
/* AC6B24 8004F984 E60000FC */ swc1 $f0, 0xfc($s0)
|
|
/* AC6B28 8004F988 A600015A */ sh $zero, 0x15a($s0)
|
|
/* AC6B2C 8004F98C E6040100 */ swc1 $f4, 0x100($s0)
|
|
/* AC6B30 8004F990 C6060050 */ lwc1 $f6, 0x50($s0)
|
|
/* AC6B34 8004F994 C4680000 */ lwc1 $f8, ($v1)
|
|
/* AC6B38 8004F998 C6100054 */ lwc1 $f16, 0x54($s0)
|
|
/* AC6B3C 8004F99C 24020001 */ li $v0, 1
|
|
/* AC6B40 8004F9A0 46083281 */ sub.s $f10, $f6, $f8
|
|
/* AC6B44 8004F9A4 C6060058 */ lwc1 $f6, 0x58($s0)
|
|
/* AC6B48 8004F9A8 E60A00E4 */ swc1 $f10, 0xe4($s0)
|
|
/* AC6B4C 8004F9AC C4720004 */ lwc1 $f18, 4($v1)
|
|
/* AC6B50 8004F9B0 46128101 */ sub.s $f4, $f16, $f18
|
|
/* AC6B54 8004F9B4 E60400E8 */ swc1 $f4, 0xe8($s0)
|
|
/* AC6B58 8004F9B8 C4680008 */ lwc1 $f8, 8($v1)
|
|
/* AC6B5C 8004F9BC 46083281 */ sub.s $f10, $f6, $f8
|
|
/* AC6B60 8004F9C0 E60A00EC */ swc1 $f10, 0xec($s0)
|
|
/* AC6B64 8004F9C4 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* AC6B68 8004F9C8 8FB10020 */ lw $s1, 0x20($sp)
|
|
/* AC6B6C 8004F9CC 8FB0001C */ lw $s0, 0x1c($sp)
|
|
/* AC6B70 8004F9D0 03E00008 */ jr $ra
|
|
/* AC6B74 8004F9D4 27BD0080 */ addiu $sp, $sp, 0x80
|