oot/asm/non_matchings/code/z_camera/Camera_Fixed4.s

261 lines
13 KiB
ArmAsm

.late_rodata
glabel D_8013A194
.float 0.01
glabel D_8013A198
.float 0.1
.text
glabel Camera_Fixed4
/* AC7208 80050068 27BDFF58 */ addiu $sp, $sp, -0xa8
/* AC720C 8005006C AFB00020 */ sw $s0, 0x20($sp)
/* AC7210 80050070 00808025 */ move $s0, $a0
/* AC7214 80050074 AFBF002C */ sw $ra, 0x2c($sp)
/* AC7218 80050078 AFB20028 */ sw $s2, 0x28($sp)
/* AC721C 8005007C AFB10024 */ sw $s1, 0x24($sp)
/* AC7220 80050080 0C00B721 */ jal Player_GetCameraYOffset
/* AC7224 80050084 8C840090 */ lw $a0, 0x90($a0)
/* AC7228 80050088 E7A00050 */ swc1 $f0, 0x50($sp)
/* AC722C 8005008C 8602015E */ lh $v0, 0x15e($s0)
/* AC7230 80050090 10400008 */ beqz $v0, .L800500B4
/* AC7234 80050094 2401000A */ li $at, 10
/* AC7238 80050098 10410006 */ beq $v0, $at, .L800500B4
/* AC723C 8005009C 24010014 */ li $at, 20
/* AC7240 800500A0 10410004 */ beq $v0, $at, .L800500B4
/* AC7244 800500A4 3C0E8016 */ lui $t6, %hi(gGameInfo) # $t6, 0x8016
/* AC7248 800500A8 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6)
/* AC724C 800500AC 85C30314 */ lh $v1, 0x314($t6)
/* AC7250 800500B0 10600049 */ beqz $v1, .L800501D8
.L800500B4:
/* AC7254 800500B4 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016
/* AC7258 800500B8 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3)
/* AC725C 800500BC 3C018014 */ lui $at, %hi(D_8013A194)
/* AC7260 800500C0 C42CA194 */ lwc1 $f12, %lo(D_8013A194)($at)
/* AC7264 800500C4 856C01F0 */ lh $t4, 0x1f0($t3)
/* AC7268 800500C8 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* AC726C 800500CC 44814000 */ mtc1 $at, $f8
/* AC7270 800500D0 448C2000 */ mtc1 $t4, $f4
/* AC7274 800500D4 3C014288 */ li $at, 0x42880000 # 0.000000
/* AC7278 800500D8 860F0142 */ lh $t7, 0x142($s0)
/* AC727C 800500DC 468021A0 */ cvt.s.w $f6, $f4
/* AC7280 800500E0 44812000 */ mtc1 $at, $f4
/* AC7284 800500E4 3C198012 */ lui $t9, %hi(sCameraSettings+4)
/* AC7288 800500E8 000FC0C0 */ sll $t8, $t7, 3
/* AC728C 800500EC 86080144 */ lh $t0, 0x144($s0)
/* AC7290 800500F0 0338C821 */ addu $t9, $t9, $t8
/* AC7294 800500F4 460C3082 */ mul.s $f2, $f6, $f12
/* AC7298 800500F8 46002183 */ div.s $f6, $f4, $f0
/* AC729C 800500FC 8F39D068 */ lw $t9, %lo(sCameraSettings+4)($t9)
/* AC72A0 80050100 000848C0 */ sll $t1, $t0, 3
/* AC72A4 80050104 02002025 */ move $a0, $s0
/* AC72A8 80050108 03295021 */ addu $t2, $t9, $t1
/* AC72AC 8005010C 8D420004 */ lw $v0, 4($t2)
/* AC72B0 80050110 46024280 */ add.s $f10, $f8, $f2
/* AC72B4 80050114 844D0000 */ lh $t5, ($v0)
/* AC72B8 80050118 24420010 */ addiu $v0, $v0, 0x10
/* AC72BC 8005011C 448D2000 */ mtc1 $t5, $f4
/* AC72C0 80050120 46061202 */ mul.s $f8, $f2, $f6
/* AC72C4 80050124 468021A0 */ cvt.s.w $f6, $f4
/* AC72C8 80050128 46085381 */ sub.s $f14, $f10, $f8
/* AC72CC 8005012C 460C3282 */ mul.s $f10, $f6, $f12
/* AC72D0 80050130 00000000 */ nop
/* AC72D4 80050134 46005202 */ mul.s $f8, $f10, $f0
/* AC72D8 80050138 00000000 */ nop
/* AC72DC 8005013C 460E4102 */ mul.s $f4, $f8, $f14
/* AC72E0 80050140 E6040000 */ swc1 $f4, ($s0)
/* AC72E4 80050144 844EFFF4 */ lh $t6, -0xc($v0)
/* AC72E8 80050148 448E3000 */ mtc1 $t6, $f6
/* AC72EC 8005014C 00000000 */ nop
/* AC72F0 80050150 468032A0 */ cvt.s.w $f10, $f6
/* AC72F4 80050154 460C5202 */ mul.s $f8, $f10, $f12
/* AC72F8 80050158 E6080004 */ swc1 $f8, 4($s0)
/* AC72FC 8005015C 844FFFF8 */ lh $t7, -8($v0)
/* AC7300 80050160 448F2000 */ mtc1 $t7, $f4
/* AC7304 80050164 00000000 */ nop
/* AC7308 80050168 468021A0 */ cvt.s.w $f6, $f4
/* AC730C 8005016C 460C3282 */ mul.s $f10, $f6, $f12
/* AC7310 80050170 E60A0008 */ swc1 $f10, 8($s0)
/* AC7314 80050174 8458FFFC */ lh $t8, -4($v0)
/* AC7318 80050178 44984000 */ mtc1 $t8, $f8
/* AC731C 8005017C 00000000 */ nop
/* AC7320 80050180 46804120 */ cvt.s.w $f4, $f8
/* AC7324 80050184 E604000C */ swc1 $f4, 0xc($s0)
/* AC7328 80050188 84480000 */ lh $t0, ($v0)
/* AC732C 8005018C 0C0111DB */ jal func_8004476C
/* AC7330 80050190 A6080010 */ sh $t0, 0x10($s0)
/* AC7334 80050194 10400007 */ beqz $v0, .L800501B4
/* AC7338 80050198 00402825 */ move $a1, $v0
/* AC733C 8005019C 0C010EF1 */ jal func_80043BC4
/* AC7340 800501A0 26040014 */ addiu $a0, $s0, 0x14
/* AC7344 800501A4 3C198016 */ lui $t9, %hi(gGameInfo) # $t9, 0x8016
/* AC7348 800501A8 8F39FA90 */ lw $t9, %lo(gGameInfo)($t9)
/* AC734C 800501AC 1000000A */ b .L800501D8
/* AC7350 800501B0 87230314 */ lh $v1, 0x314($t9)
.L800501B4:
/* AC7354 800501B4 8E0A005C */ lw $t2, 0x5c($s0)
/* AC7358 800501B8 8E090060 */ lw $t1, 0x60($s0)
/* AC735C 800501BC 3C0B8016 */ lui $t3, %hi(gGameInfo)
/* AC7360 800501C0 AE0A0014 */ sw $t2, 0x14($s0)
/* AC7364 800501C4 8E0A0064 */ lw $t2, 0x64($s0)
/* AC7368 800501C8 AE090018 */ sw $t1, 0x18($s0)
/* AC736C 800501CC AE0A001C */ sw $t2, 0x1c($s0)
/* AC7370 800501D0 8D6BFA90 */ lw $t3, %lo(gGameInfo)($t3)
/* AC7374 800501D4 85630314 */ lh $v1, 0x314($t3)
.L800501D8:
/* AC7378 800501D8 260C005C */ addiu $t4, $s0, 0x5c
/* AC737C 800501DC AFAC0044 */ sw $t4, 0x44($sp)
/* AC7380 800501E0 10600003 */ beqz $v1, .L800501F0
/* AC7384 800501E4 26120014 */ addiu $s2, $s0, 0x14
/* AC7388 800501E8 0C011495 */ jal Camera_CopyPREGToModeValues
/* AC738C 800501EC 02002025 */ move $a0, $s0
.L800501F0:
/* AC7390 800501F0 860D0010 */ lh $t5, 0x10($s0)
/* AC7394 800501F4 3C018012 */ lui $at, %hi(D_8011D3A0)
/* AC7398 800501F8 AC2DD3A0 */ sw $t5, %lo(D_8011D3A0)($at)
/* AC739C 800501FC 8602015E */ lh $v0, 0x15e($s0)
/* AC73A0 80050200 5440000C */ bnezl $v0, .L80050234
/* AC73A4 80050204 26110074 */ addiu $s1, $s0, 0x74
/* AC73A8 80050208 860F0010 */ lh $t7, 0x10($s0)
/* AC73AC 8005020C 244E0001 */ addiu $t6, $v0, 1
/* AC73B0 80050210 A60E015E */ sh $t6, 0x15e($s0)
/* AC73B4 80050214 31F80004 */ andi $t8, $t7, 4
/* AC73B8 80050218 57000004 */ bnezl $t8, .L8005022C
/* AC73BC 8005021C C6060008 */ lwc1 $f6, 8($s0)
/* AC73C0 80050220 0C010ED8 */ jal func_80043B60
/* AC73C4 80050224 02002025 */ move $a0, $s0
/* AC73C8 80050228 C6060008 */ lwc1 $f6, 8($s0)
.L8005022C:
/* AC73CC 8005022C E646000C */ swc1 $f6, 0xc($s2)
/* AC73D0 80050230 26110074 */ addiu $s1, $s0, 0x74
.L80050234:
/* AC73D4 80050234 C6200000 */ lwc1 $f0, ($s1)
/* AC73D8 80050238 C64A0000 */ lwc1 $f10, ($s2)
/* AC73DC 8005023C C6040004 */ lwc1 $f4, 4($s0)
/* AC73E0 80050240 3C018014 */ lui $at, %hi(D_8013A198)
/* AC73E4 80050244 46005201 */ sub.s $f8, $f10, $f0
/* AC73E8 80050248 C42EA198 */ lwc1 $f14, %lo(D_8013A198)($at)
/* AC73EC 8005024C C6220004 */ lwc1 $f2, 4($s1)
/* AC73F0 80050250 C62C0008 */ lwc1 $f12, 8($s1)
/* AC73F4 80050254 46044182 */ mul.s $f6, $f8, $f4
/* AC73F8 80050258 44808000 */ mtc1 $zero, $f16
/* AC73FC 8005025C 44067000 */ mfc1 $a2, $f14
/* AC7400 80050260 44077000 */ mfc1 $a3, $f14
/* AC7404 80050264 27A40078 */ addiu $a0, $sp, 0x78
/* AC7408 80050268 260500E4 */ addiu $a1, $s0, 0xe4
/* AC740C 8005026C 46060280 */ add.s $f10, $f0, $f6
/* AC7410 80050270 E62A0000 */ swc1 $f10, ($s1)
/* AC7414 80050274 C6480004 */ lwc1 $f8, 4($s2)
/* AC7418 80050278 C6060004 */ lwc1 $f6, 4($s0)
/* AC741C 8005027C 8E290000 */ lw $t1, ($s1)
/* AC7420 80050280 46024101 */ sub.s $f4, $f8, $f2
/* AC7424 80050284 46062282 */ mul.s $f10, $f4, $f6
/* AC7428 80050288 460A1200 */ add.s $f8, $f2, $f10
/* AC742C 8005028C E6280004 */ swc1 $f8, 4($s1)
/* AC7430 80050290 C6440008 */ lwc1 $f4, 8($s2)
/* AC7434 80050294 C60A0004 */ lwc1 $f10, 4($s0)
/* AC7438 80050298 460C2181 */ sub.s $f6, $f4, $f12
/* AC743C 8005029C 460A3202 */ mul.s $f8, $f6, $f10
/* AC7440 800502A0 46086100 */ add.s $f4, $f12, $f8
/* AC7444 800502A4 E6240008 */ swc1 $f4, 8($s1)
/* AC7448 800502A8 8FA80044 */ lw $t0, 0x44($sp)
/* AC744C 800502AC AD090000 */ sw $t1, ($t0)
/* AC7450 800502B0 8E390004 */ lw $t9, 4($s1)
/* AC7454 800502B4 AD190004 */ sw $t9, 4($t0)
/* AC7458 800502B8 8E290008 */ lw $t1, 8($s1)
/* AC745C 800502BC AD090008 */ sw $t1, 8($t0)
/* AC7460 800502C0 E7B00078 */ swc1 $f16, 0x78($sp)
/* AC7464 800502C4 C6060000 */ lwc1 $f6, ($s0)
/* AC7468 800502C8 C7AA0050 */ lwc1 $f10, 0x50($sp)
/* AC746C 800502CC E7AE0010 */ swc1 $f14, 0x10($sp)
/* AC7470 800502D0 E7B00080 */ swc1 $f16, 0x80($sp)
/* AC7474 800502D4 460A3200 */ add.s $f8, $f6, $f10
/* AC7478 800502D8 0C010E8F */ jal func_80043A3C
/* AC747C 800502DC E7A8007C */ swc1 $f8, 0x7c($sp)
/* AC7480 800502E0 26020094 */ addiu $v0, $s0, 0x94
/* AC7484 800502E4 C4440000 */ lwc1 $f4, ($v0)
/* AC7488 800502E8 C60600E4 */ lwc1 $f6, 0xe4($s0)
/* AC748C 800502EC C44A0004 */ lwc1 $f10, 4($v0)
/* AC7490 800502F0 C60800E8 */ lwc1 $f8, 0xe8($s0)
/* AC7494 800502F4 46062380 */ add.s $f14, $f4, $f6
/* AC7498 800502F8 26060050 */ addiu $a2, $s0, 0x50
/* AC749C 800502FC C4C00000 */ lwc1 $f0, ($a2)
/* AC74A0 80050300 46085400 */ add.s $f16, $f10, $f8
/* AC74A4 80050304 C60600EC */ lwc1 $f6, 0xec($s0)
/* AC74A8 80050308 C4440008 */ lwc1 $f4, 8($v0)
/* AC74AC 8005030C 46007281 */ sub.s $f10, $f14, $f0
/* AC74B0 80050310 3C013F00 */ li $at, 0x3F000000 # 0.000000
/* AC74B4 80050314 44814000 */ mtc1 $at, $f8
/* AC74B8 80050318 46062480 */ add.s $f18, $f4, $f6
/* AC74BC 8005031C 27A40070 */ addiu $a0, $sp, 0x70
/* AC74C0 80050320 46085102 */ mul.s $f4, $f10, $f8
/* AC74C4 80050324 44814000 */ mtc1 $at, $f8
/* AC74C8 80050328 02202825 */ move $a1, $s1
/* AC74CC 8005032C 46040180 */ add.s $f6, $f0, $f4
/* AC74D0 80050330 E7A60084 */ swc1 $f6, 0x84($sp)
/* AC74D4 80050334 C4C20004 */ lwc1 $f2, 4($a2)
/* AC74D8 80050338 46028281 */ sub.s $f10, $f16, $f2
/* AC74DC 8005033C 46085102 */ mul.s $f4, $f10, $f8
/* AC74E0 80050340 44814000 */ mtc1 $at, $f8
/* AC74E4 80050344 46041180 */ add.s $f6, $f2, $f4
/* AC74E8 80050348 E7A60088 */ swc1 $f6, 0x88($sp)
/* AC74EC 8005034C C4CC0008 */ lwc1 $f12, 8($a2)
/* AC74F0 80050350 AFA60040 */ sw $a2, 0x40($sp)
/* AC74F4 80050354 460C9281 */ sub.s $f10, $f18, $f12
/* AC74F8 80050358 46085102 */ mul.s $f4, $f10, $f8
/* AC74FC 8005035C 46046180 */ add.s $f6, $f12, $f4
/* AC7500 80050360 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo
/* AC7504 80050364 E7A6008C */ swc1 $f6, 0x8c($sp)
/* AC7508 80050368 27A40068 */ addiu $a0, $sp, 0x68
/* AC750C 8005036C 02202825 */ move $a1, $s1
/* AC7510 80050370 0C01F124 */ jal OLib_Vec3fDiffToVecSphGeo
/* AC7514 80050374 27A60084 */ addiu $a2, $sp, 0x84
/* AC7518 80050378 C7AA0068 */ lwc1 $f10, 0x68($sp)
/* AC751C 8005037C C7A80070 */ lwc1 $f8, 0x70($sp)
/* AC7520 80050380 C646000C */ lwc1 $f6, 0xc($s2)
/* AC7524 80050384 87A4006C */ lh $a0, 0x6c($sp)
/* AC7528 80050388 46085101 */ sub.s $f4, $f10, $f8
/* AC752C 8005038C 87A50074 */ lh $a1, 0x74($sp)
/* AC7530 80050390 2407000A */ li $a3, 10
/* AC7534 80050394 46062282 */ mul.s $f10, $f4, $f6
/* AC7538 80050398 460A4100 */ add.s $f4, $f8, $f10
/* AC753C 8005039C E7A40070 */ swc1 $f4, 0x70($sp)
/* AC7540 800503A0 C60800E0 */ lwc1 $f8, 0xe0($s0)
/* AC7544 800503A4 C646000C */ lwc1 $f6, 0xc($s2)
/* AC7548 800503A8 46083282 */ mul.s $f10, $f6, $f8
/* AC754C 800503AC 44065000 */ mfc1 $a2, $f10
/* AC7550 800503B0 0C010E47 */ jal func_8004391C
/* AC7554 800503B4 00000000 */ nop
/* AC7558 800503B8 A7A20074 */ sh $v0, 0x74($sp)
/* AC755C 800503BC C60600E0 */ lwc1 $f6, 0xe0($s0)
/* AC7560 800503C0 C644000C */ lwc1 $f4, 0xc($s2)
/* AC7564 800503C4 87A4006E */ lh $a0, 0x6e($sp)
/* AC7568 800503C8 87A50076 */ lh $a1, 0x76($sp)
/* AC756C 800503CC 46062202 */ mul.s $f8, $f4, $f6
/* AC7570 800503D0 2407000A */ li $a3, 10
/* AC7574 800503D4 44064000 */ mfc1 $a2, $f8
/* AC7578 800503D8 0C010E47 */ jal func_8004391C
/* AC757C 800503DC 00000000 */ nop
/* AC7580 800503E0 A7A20076 */ sh $v0, 0x76($sp)
/* AC7584 800503E4 8FA40040 */ lw $a0, 0x40($sp)
/* AC7588 800503E8 02202825 */ move $a1, $s1
/* AC758C 800503EC 0C010F0A */ jal func_80043C28
/* AC7590 800503F0 27A60070 */ addiu $a2, $sp, 0x70
/* AC7594 800503F4 8FA40040 */ lw $a0, 0x40($sp)
/* AC7598 800503F8 0C01EFE4 */ jal OLib_Vec3fDist
/* AC759C 800503FC 8FA50044 */ lw $a1, 0x44($sp)
/* AC75A0 80050400 C60A000C */ lwc1 $f10, 0xc($s0)
/* AC75A4 80050404 E60000DC */ swc1 $f0, 0xdc($s0)
/* AC75A8 80050408 A600015A */ sh $zero, 0x15a($s0)
/* AC75AC 8005040C 02002025 */ move $a0, $s0
/* AC75B0 80050410 3C053F80 */ lui $a1, 0x3f80
/* AC75B4 80050414 0C011429 */ jal func_800450A4
/* AC75B8 80050418 E60A00FC */ swc1 $f10, 0xfc($s0)
/* AC75BC 8005041C E6000100 */ swc1 $f0, 0x100($s0)
/* AC75C0 80050420 8FBF002C */ lw $ra, 0x2c($sp)
/* AC75C4 80050424 8FB20028 */ lw $s2, 0x28($sp)
/* AC75C8 80050428 8FB10024 */ lw $s1, 0x24($sp)
/* AC75CC 8005042C 8FB00020 */ lw $s0, 0x20($sp)
/* AC75D0 80050430 27BD00A8 */ addiu $sp, $sp, 0xa8
/* AC75D4 80050434 03E00008 */ jr $ra
/* AC75D8 80050438 24020001 */ li $v0, 1