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

110 lines
5.5 KiB
ArmAsm

glabel Camera_Special4
/* ACD7F4 80056654 27BDFFB0 */ addiu $sp, $sp, -0x50
/* ACD7F8 80056658 AFBF001C */ sw $ra, 0x1c($sp)
/* ACD7FC 8005665C AFB10018 */ sw $s1, 0x18($sp)
/* ACD800 80056660 AFB00014 */ sw $s0, 0x14($sp)
/* ACD804 80056664 848E015E */ lh $t6, 0x15e($a0)
/* ACD808 80056668 00808025 */ move $s0, $a0
/* ACD80C 8005666C 240F3200 */ li $t7, 12800
/* ACD810 80056670 15C0000B */ bnez $t6, .L800566A0
/* ACD814 80056674 26110160 */ addiu $s1, $s0, 0x160
/* ACD818 80056678 3C018012 */ lui $at, %hi(D_8011D3A0) # $at, 0x8012
/* ACD81C 8005667C AC2FD3A0 */ sw $t7, %lo(D_8011D3A0)($at)
/* ACD820 80056680 8498015E */ lh $t8, 0x15e($a0)
/* ACD824 80056684 3C014220 */ li $at, 0x42200000 # 0.000000
/* ACD828 80056688 44812000 */ mtc1 $at, $f4
/* ACD82C 8005668C 84880160 */ lh $t0, 0x160($a0)
/* ACD830 80056690 27190001 */ addiu $t9, $t8, 1
/* ACD834 80056694 A499015E */ sh $t9, 0x15e($a0)
/* ACD838 80056698 E48400FC */ swc1 $f4, 0xfc($a0)
/* ACD83C 8005669C A4880000 */ sh $t0, ($a0)
.L800566A0:
/* ACD840 800566A0 86290000 */ lh $t1, ($s1)
/* ACD844 800566A4 3C0142A0 */ li $at, 0x42A00000 # 0.000000
/* ACD848 800566A8 44816000 */ mtc1 $at, $f12
/* ACD84C 800566AC 44894000 */ mtc1 $t1, $f8
/* ACD850 800566B0 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* ACD854 800566B4 44813000 */ mtc1 $at, $f6
/* ACD858 800566B8 468042A0 */ cvt.s.w $f10, $f8
/* ACD85C 800566BC 3C073DCC */ lui $a3, (0x3DCCCCCD >> 16) # lui $a3, 0x3dcc
/* ACD860 800566C0 34E7CCCD */ ori $a3, (0x3DCCCCCD & 0xFFFF) # ori $a3, $a3, 0xcccd
/* ACD864 800566C4 C60E00FC */ lwc1 $f14, 0xfc($s0)
/* ACD868 800566C8 460A3403 */ div.s $f16, $f6, $f10
/* ACD86C 800566CC 44068000 */ mfc1 $a2, $f16
/* ACD870 800566D0 0C010E27 */ jal func_8004389C
/* ACD874 800566D4 00000000 */ nop
/* ACD878 800566D8 E60000FC */ swc1 $f0, 0xfc($s0)
/* ACD87C 800566DC 86230000 */ lh $v1, ($s1)
/* ACD880 800566E0 860A0000 */ lh $t2, ($s0)
/* ACD884 800566E4 240DFE0C */ li $t5, -500
/* ACD888 800566E8 27A4003C */ addiu $a0, $sp, 0x3c
/* ACD88C 800566EC 01435823 */ subu $t3, $t2, $v1
/* ACD890 800566F0 2961000F */ slti $at, $t3, 0xf
/* ACD894 800566F4 10200004 */ beqz $at, .L80056708
/* ACD898 800566F8 246CFFFF */ addiu $t4, $v1, -1
/* ACD89C 800566FC A62C0000 */ sh $t4, ($s1)
/* ACD8A0 80056700 10000038 */ b .L800567E4
/* ACD8A4 80056704 00001025 */ move $v0, $zero
.L80056708:
/* ACD8A8 80056708 A60D015A */ sh $t5, 0x15a($s0)
/* ACD8AC 8005670C 0C00BBC5 */ jal func_8002EF14
/* ACD8B0 80056710 8E0500A8 */ lw $a1, 0xa8($s0)
/* ACD8B4 80056714 27AE003C */ addiu $t6, $sp, 0x3c
/* ACD8B8 80056718 8DD80000 */ lw $t8, ($t6)
/* ACD8BC 8005671C 3C014316 */ li $at, 0x43160000 # 0.000000
/* ACD8C0 80056720 44812000 */ mtc1 $at, $f4
/* ACD8C4 80056724 AE180050 */ sw $t8, 0x50($s0)
/* ACD8C8 80056728 8DCF0004 */ lw $t7, 4($t6)
/* ACD8CC 8005672C AE0F0054 */ sw $t7, 0x54($s0)
/* ACD8D0 80056730 C6120054 */ lwc1 $f18, 0x54($s0)
/* ACD8D4 80056734 8DD80008 */ lw $t8, 8($t6)
/* ACD8D8 80056738 46049201 */ sub.s $f8, $f18, $f4
/* ACD8DC 8005673C AE180058 */ sw $t8, 0x58($s0)
/* ACD8E0 80056740 E6080054 */ swc1 $f8, 0x54($s0)
/* ACD8E4 80056744 87A2004A */ lh $v0, 0x4a($sp)
/* ACD8E8 80056748 24428001 */ addiu $v0, $v0, -0x7fff
/* ACD8EC 8005674C 00021400 */ sll $v0, $v0, 0x10
/* ACD8F0 80056750 00021403 */ sra $v0, $v0, 0x10
/* ACD8F4 80056754 244203E8 */ addiu $v0, $v0, 0x3e8
/* ACD8F8 80056758 00022400 */ sll $a0, $v0, 0x10
/* ACD8FC 8005675C A7A2003A */ sh $v0, 0x3a($sp)
/* ACD900 80056760 0C01DE1C */ jal Math_Sins
/* ACD904 80056764 00042403 */ sra $a0, $a0, 0x10
/* ACD908 80056768 3C014443 */ li $at, 0x44430000 # 0.000000
/* ACD90C 8005676C 44813000 */ mtc1 $at, $f6
/* ACD910 80056770 C6100050 */ lwc1 $f16, 0x50($s0)
/* ACD914 80056774 C6120054 */ lwc1 $f18, 0x54($s0)
/* ACD918 80056778 46060282 */ mul.s $f10, $f0, $f6
/* ACD91C 8005677C E6120078 */ swc1 $f18, 0x78($s0)
/* ACD920 80056780 46105080 */ add.s $f2, $f10, $f16
/* ACD924 80056784 E6020074 */ swc1 $f2, 0x74($s0)
/* ACD928 80056788 E602005C */ swc1 $f2, 0x5c($s0)
/* ACD92C 8005678C 0C01DE0D */ jal Math_Coss
/* ACD930 80056790 87A4003A */ lh $a0, 0x3a($sp)
/* ACD934 80056794 3C014443 */ li $at, 0x44430000 # 0.000000
/* ACD938 80056798 44812000 */ mtc1 $at, $f4
/* ACD93C 8005679C C6060058 */ lwc1 $f6, 0x58($s0)
/* ACD940 800567A0 02002025 */ move $a0, $s0
/* ACD944 800567A4 46040202 */ mul.s $f8, $f0, $f4
/* ACD948 800567A8 2605005C */ addiu $a1, $s0, 0x5c
/* ACD94C 800567AC 46064080 */ add.s $f2, $f8, $f6
/* ACD950 800567B0 E602007C */ swc1 $f2, 0x7c($s0)
/* ACD954 800567B4 E6020064 */ swc1 $f2, 0x64($s0)
/* ACD958 800567B8 C7AA0040 */ lwc1 $f10, 0x40($sp)
/* ACD95C 800567BC 0C011144 */ jal func_80044510
/* ACD960 800567C0 E60A0060 */ swc1 $f10, 0x60($s0)
/* ACD964 800567C4 3C0141A0 */ li $at, 0x41A00000 # 0.000000
/* ACD968 800567C8 44818000 */ mtc1 $at, $f16
/* ACD96C 800567CC 24020001 */ li $v0, 1
/* ACD970 800567D0 46100480 */ add.s $f18, $f0, $f16
/* ACD974 800567D4 E6120060 */ swc1 $f18, 0x60($s0)
/* ACD978 800567D8 86390000 */ lh $t9, ($s1)
/* ACD97C 800567DC 2728FFFF */ addiu $t0, $t9, -1
/* ACD980 800567E0 A6280000 */ sh $t0, ($s1)
.L800567E4:
/* ACD984 800567E4 8FBF001C */ lw $ra, 0x1c($sp)
/* ACD988 800567E8 8FB00014 */ lw $s0, 0x14($sp)
/* ACD98C 800567EC 8FB10018 */ lw $s1, 0x18($sp)
/* ACD990 800567F0 03E00008 */ jr $ra
/* ACD994 800567F4 27BD0050 */ addiu $sp, $sp, 0x50