mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-18 22:07:43 -04:00
a8e5c0f212
Introduce waypoint struct, which code_80005FD0 seems to be involved with. Updated several mips_to_c outputs as well. Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
510 lines
26 KiB
ArmAsm
510 lines
26 KiB
ArmAsm
glabel func_80016494
|
|
/* 017094 80016494 27BDFF48 */ addiu $sp, $sp, -0xb8
|
|
/* 017098 80016498 AFA500BC */ sw $a1, 0xbc($sp)
|
|
/* 01709C 8001649C 00072880 */ sll $a1, $a3, 2
|
|
/* 0170A0 800164A0 3C0F8016 */ lui $t7, %hi(D_80164648) # $t7, 0x8016
|
|
/* 0170A4 800164A4 3C188016 */ lui $t8, %hi(D_80164658) # $t8, 0x8016
|
|
/* 0170A8 800164A8 27184658 */ addiu $t8, %lo(D_80164658) # addiu $t8, $t8, 0x4658
|
|
/* 0170AC 800164AC 25EF4648 */ addiu $t7, %lo(D_80164648) # addiu $t7, $t7, 0x4648
|
|
/* 0170B0 800164B0 00AF6821 */ addu $t5, $a1, $t7
|
|
/* 0170B4 800164B4 00B86021 */ addu $t4, $a1, $t8
|
|
/* 0170B8 800164B8 C5840000 */ lwc1 $f4, ($t4)
|
|
/* 0170BC 800164BC C5A20000 */ lwc1 $f2, ($t5)
|
|
/* 0170C0 800164C0 3C013F00 */ li $at, 0x3F000000 # 0.500000
|
|
/* 0170C4 800164C4 44814000 */ mtc1 $at, $f8
|
|
/* 0170C8 800164C8 46022181 */ sub.s $f6, $f4, $f2
|
|
/* 0170CC 800164CC AFBF0024 */ sw $ra, 0x24($sp)
|
|
/* 0170D0 800164D0 AFB00020 */ sw $s0, 0x20($sp)
|
|
/* 0170D4 800164D4 AFA600C0 */ sw $a2, 0xc0($sp)
|
|
/* 0170D8 800164D8 46083282 */ mul.s $f10, $f6, $f8
|
|
/* 0170DC 800164DC AFA700C4 */ sw $a3, 0xc4($sp)
|
|
/* 0170E0 800164E0 848300AE */ lh $v1, 0xae($a0)
|
|
/* 0170E4 800164E4 3C0A800E */ lui $t2, %hi(gPlayerOne)
|
|
/* 0170E8 800164E8 8D4AC4DC */ lw $t2, %lo(gPlayerOne)($t2)
|
|
/* 0170EC 800164EC 3C018016 */ lui $at, %hi(D_80163238) # $at, 0x8016
|
|
/* 0170F0 800164F0 0003F8C0 */ sll $ra, $v1, 3
|
|
/* 0170F4 800164F4 460A1100 */ add.s $f4, $f2, $f10
|
|
/* 0170F8 800164F8 03E3F823 */ subu $ra, $ra, $v1
|
|
/* 0170FC 800164FC 001FF900 */ sll $ra, $ra, 4
|
|
/* 017100 80016500 03E3F823 */ subu $ra, $ra, $v1
|
|
/* 017104 80016504 E5A40000 */ swc1 $f4, ($t5)
|
|
/* 017108 80016508 AC233238 */ sw $v1, %lo(D_80163238)($at)
|
|
/* 01710C 8001650C 8C860008 */ lw $a2, 8($a0)
|
|
/* 017110 80016510 C48E0004 */ lwc1 $f14, 4($a0)
|
|
/* 017114 80016514 C48C0000 */ lwc1 $f12, ($a0)
|
|
/* 017118 80016518 3C0B8016 */ lui $t3, %hi(gPathIndexByPlayerId) # 0x8016
|
|
/* 01711C 8001651C 001FF880 */ sll $ra, $ra, 2
|
|
/* 017120 80016520 00034040 */ sll $t0, $v1, 1
|
|
/* 017124 80016524 01685821 */ addu $t3, $t3, $t0
|
|
/* 017128 80016528 03E3F823 */ subu $ra, $ra, $v1
|
|
/* 01712C 8001652C 956B45B0 */ lhu $t3, %lo(gPathIndexByPlayerId)($t3) # 0x45b0($t3)
|
|
/* 017130 80016530 001FF8C0 */ sll $ra, $ra, 3
|
|
/* 017134 80016534 3C0E8016 */ lui $t6, %hi(gNearestWaypointByCameraId) # $t6, 0x8016
|
|
/* 017138 80016538 25CE4668 */ addiu $t6, %lo(gNearestWaypointByCameraId) # addiu $t6, $t6, 0x4668
|
|
/* 01713C 8001653C 00071040 */ sll $v0, $a3, 1
|
|
/* 017140 80016540 004E4821 */ addu $t1, $v0, $t6
|
|
/* 017144 80016544 AFBF004C */ sw $ra, 0x4c($sp)
|
|
/* 017148 80016548 015F5021 */ addu $t2, $t2, $ra
|
|
/* 01714C 8001654C 00808025 */ move $s0, $a0
|
|
/* 017150 80016550 AFAA00A0 */ sw $t2, 0xa0($sp)
|
|
/* 017154 80016554 85270000 */ lh $a3, ($t1)
|
|
/* 017158 80016558 AFA90044 */ sw $t1, 0x44($sp)
|
|
/* 01715C 8001655C AFA20048 */ sw $v0, 0x48($sp)
|
|
/* 017160 80016560 AFA80050 */ sw $t0, 0x50($sp)
|
|
/* 017164 80016564 AFAD0058 */ sw $t5, 0x58($sp)
|
|
/* 017168 80016568 AFAC0054 */ sw $t4, 0x54($sp)
|
|
/* 01716C 8001656C AFA5005C */ sw $a1, 0x5c($sp)
|
|
/* 017170 80016570 AFA3009C */ sw $v1, 0x9c($sp)
|
|
/* 017174 80016574 AFAB0010 */ sw $t3, 0x10($sp)
|
|
/* 017178 80016578 0C0034CF */ jal func_8000D33C
|
|
/* 01717C 8001657C AFAB0068 */ sw $t3, 0x68($sp)
|
|
/* 017180 80016580 8FA3009C */ lw $v1, 0x9c($sp)
|
|
/* 017184 80016584 8FAF0044 */ lw $t7, 0x44($sp)
|
|
/* 017188 80016588 8FA80050 */ lw $t0, 0x50($sp)
|
|
/* 01718C 8001658C 3C198016 */ lui $t9, %hi(D_80163068) # $t9, 0x8016
|
|
/* 017190 80016590 27393068 */ addiu $t9, %lo(D_80163068) # addiu $t9, $t9, 0x3068
|
|
/* 017194 80016594 0003C080 */ sll $t8, $v1, 2
|
|
/* 017198 80016598 A5E20000 */ sh $v0, ($t7)
|
|
/* 01719C 8001659C 8FAE005C */ lw $t6, 0x5c($sp)
|
|
/* 0171A0 800165A0 03194821 */ addu $t1, $t8, $t9
|
|
/* 0171A4 800165A4 3C188016 */ lui $t8, %hi(D_80164688) # $t8, 0x8016
|
|
/* 0171A8 800165A8 27184688 */ addiu $t8, %lo(D_80164688) # addiu $t8, $t8, 0x4688
|
|
/* 0171AC 800165AC 01D86821 */ addu $t5, $t6, $t8
|
|
/* 0171B0 800165B0 C5A80000 */ lwc1 $f8, ($t5)
|
|
/* 0171B4 800165B4 C5260000 */ lwc1 $f6, ($t1)
|
|
/* 0171B8 800165B8 8FB90068 */ lw $t9, 0x68($sp)
|
|
/* 0171BC 800165BC 3C188016 */ lui $t8, %hi(gWaypointCountByPathIndex) # $t8, 0x8016
|
|
/* 0171C0 800165C0 46083081 */ sub.s $f2, $f6, $f8
|
|
/* 0171C4 800165C4 85EB0000 */ lh $t3, ($t7)
|
|
/* 0171C8 800165C8 271845C8 */ addiu $t8, %lo(gWaypointCountByPathIndex) # addiu $t8, $t8, 0x45c8
|
|
/* 0171CC 800165CC 00197040 */ sll $t6, $t9, 1
|
|
/* 0171D0 800165D0 01D87821 */ addu $t7, $t6, $t8
|
|
/* 0171D4 800165D4 46021082 */ mul.s $f2, $f2, $f2
|
|
/* 0171D8 800165D8 AFAF0038 */ sw $t7, 0x38($sp)
|
|
/* 0171DC 800165DC 95F90000 */ lhu $t9, ($t7)
|
|
/* 0171E0 800165E0 3C0A8016 */ lui $t2, %hi(gNearestWaypointByPlayerId) # 0x8016
|
|
/* 0171E4 800165E4 01485021 */ addu $t2, $t2, $t0
|
|
/* 0171E8 800165E8 854A4438 */ lh $t2, %lo(gNearestWaypointByPlayerId)($t2) # 0x4438($t2)
|
|
/* 0171EC 800165EC AFAD003C */ sw $t5, 0x3c($sp)
|
|
/* 0171F0 800165F0 E7A20064 */ swc1 $f2, 0x64($sp)
|
|
/* 0171F4 800165F4 AFA90040 */ sw $t1, 0x40($sp)
|
|
/* 0171F8 800165F8 2406000F */ li $a2, 15
|
|
/* 0171FC 800165FC 2407000F */ li $a3, 15
|
|
/* 017200 80016600 A7AB00B6 */ sh $t3, 0xb6($sp)
|
|
/* 017204 80016604 3165FFFF */ andi $a1, $t3, 0xffff
|
|
/* 017208 80016608 AFB90010 */ sw $t9, 0x10($sp)
|
|
/* 01720C 8001660C 3144FFFF */ andi $a0, $t2, 0xffff
|
|
/* 017210 80016610 0C001EFE */ jal func_80007BF8
|
|
/* 017214 80016614 A7AA00B4 */ sh $t2, 0xb4($sp)
|
|
/* 017218 80016618 8FA90040 */ lw $t1, 0x40($sp)
|
|
/* 01721C 8001661C 87AA00B4 */ lh $t2, 0xb4($sp)
|
|
/* 017220 80016620 87AB00B6 */ lh $t3, 0xb6($sp)
|
|
/* 017224 80016624 8FAC0054 */ lw $t4, 0x54($sp)
|
|
/* 017228 80016628 8FAD003C */ lw $t5, 0x3c($sp)
|
|
/* 01722C 8001662C 8FBF004C */ lw $ra, 0x4c($sp)
|
|
/* 017230 80016630 1C40000E */ bgtz $v0, .L8001666C
|
|
/* 017234 80016634 C7A20064 */ lwc1 $f2, 0x64($sp)
|
|
/* 017238 80016638 8FAE0048 */ lw $t6, 0x48($sp)
|
|
/* 01723C 8001663C 3C068016 */ lui $a2, %hi(D_80164680) # 0x8016
|
|
/* 017240 80016640 8FA400C4 */ lw $a0, 0xc4($sp)
|
|
/* 017244 80016644 00CE3021 */ addu $a2, $a2, $t6
|
|
/* 017248 80016648 84C64680 */ lh $a2, %lo(D_80164680)($a2) # 0x4680($a2)
|
|
/* 01724C 8001664C 8DA50000 */ lw $a1, ($t5)
|
|
/* 017250 80016650 0C0068D2 */ jal func_8001A348
|
|
/* 017254 80016654 AFAD003C */ sw $t5, 0x3c($sp)
|
|
/* 017258 80016658 8FAD003C */ lw $t5, 0x3c($sp)
|
|
/* 01725C 8001665C 44807800 */ mtc1 $zero, $f15
|
|
/* 017260 80016660 44807000 */ mtc1 $zero, $f14
|
|
/* 017264 80016664 1000006D */ b .L8001681C
|
|
/* 017268 80016668 C5AC0000 */ lwc1 $f12, ($t5)
|
|
.L8001666C:
|
|
/* 01726C 8001666C C52A0000 */ lwc1 $f10, ($t1)
|
|
/* 017270 80016670 44807800 */ mtc1 $zero, $f15
|
|
/* 017274 80016674 44807000 */ mtc1 $zero, $f14
|
|
/* 017278 80016678 46005021 */ cvt.d.s $f0, $f10
|
|
/* 01727C 8001667C 462E003C */ c.lt.d $f0, $f14
|
|
/* 017280 80016680 00000000 */ nop
|
|
/* 017284 80016684 45020019 */ bc1fl .L800166EC
|
|
/* 017288 80016688 4620703C */ c.lt.d $f14, $f0
|
|
/* 01728C 8001668C C5A40000 */ lwc1 $f4, ($t5)
|
|
/* 017290 80016690 3C01800F */ lui $at, %hi(D_800ED238)
|
|
/* 017294 80016694 460021A1 */ cvt.d.s $f6, $f4
|
|
/* 017298 80016698 462E303C */ c.lt.d $f6, $f14
|
|
/* 01729C 8001669C 00000000 */ nop
|
|
/* 0172A0 800166A0 45020012 */ bc1fl .L800166EC
|
|
/* 0172A4 800166A4 4620703C */ c.lt.d $f14, $f0
|
|
/* 0172A8 800166A8 D42AD238 */ ldc1 $f10, %lo(D_800ED238)($at)
|
|
/* 0172AC 800166AC 46001221 */ cvt.d.s $f8, $f2
|
|
/* 0172B0 800166B0 462A403C */ c.lt.d $f8, $f10
|
|
/* 0172B4 800166B4 00000000 */ nop
|
|
/* 0172B8 800166B8 4502000C */ bc1fl .L800166EC
|
|
/* 0172BC 800166BC 4620703C */ c.lt.d $f14, $f0
|
|
/* 0172C0 800166C0 8FA400C4 */ lw $a0, 0xc4($sp)
|
|
/* 0172C4 800166C4 3C053F80 */ lui $a1, 0x3f80
|
|
/* 0172C8 800166C8 24060005 */ li $a2, 5
|
|
/* 0172CC 800166CC 0C0068D2 */ jal func_8001A348
|
|
/* 0172D0 800166D0 AFAD003C */ sw $t5, 0x3c($sp)
|
|
/* 0172D4 800166D4 8FAD003C */ lw $t5, 0x3c($sp)
|
|
/* 0172D8 800166D8 44807800 */ mtc1 $zero, $f15
|
|
/* 0172DC 800166DC 44807000 */ mtc1 $zero, $f14
|
|
/* 0172E0 800166E0 1000004E */ b .L8001681C
|
|
/* 0172E4 800166E4 C5AC0000 */ lwc1 $f12, ($t5)
|
|
/* 0172E8 800166E8 4620703C */ c.lt.d $f14, $f0
|
|
.L800166EC:
|
|
/* 0172EC 800166EC C5AC0000 */ lwc1 $f12, ($t5)
|
|
/* 0172F0 800166F0 45020018 */ bc1fl .L80016754
|
|
/* 0172F4 800166F4 016A082A */ slt $at, $t3, $t2
|
|
/* 0172F8 800166F8 46006121 */ cvt.d.s $f4, $f12
|
|
/* 0172FC 800166FC 3C01800F */ lui $at, %hi(D_800ED240)
|
|
/* 017300 80016700 4624703C */ c.lt.d $f14, $f4
|
|
/* 017304 80016704 00000000 */ nop
|
|
/* 017308 80016708 45020012 */ bc1fl .L80016754
|
|
/* 01730C 8001670C 016A082A */ slt $at, $t3, $t2
|
|
/* 017310 80016710 D428D240 */ ldc1 $f8, %lo(D_800ED240)($at)
|
|
/* 017314 80016714 460011A1 */ cvt.d.s $f6, $f2
|
|
/* 017318 80016718 4628303C */ c.lt.d $f6, $f8
|
|
/* 01731C 8001671C 00000000 */ nop
|
|
/* 017320 80016720 4502000C */ bc1fl .L80016754
|
|
/* 017324 80016724 016A082A */ slt $at, $t3, $t2
|
|
/* 017328 80016728 8FA400C4 */ lw $a0, 0xc4($sp)
|
|
/* 01732C 8001672C 3C05BF80 */ lui $a1, 0xbf80
|
|
/* 017330 80016730 24060004 */ li $a2, 4
|
|
/* 017334 80016734 0C0068D2 */ jal func_8001A348
|
|
/* 017338 80016738 AFAD003C */ sw $t5, 0x3c($sp)
|
|
/* 01733C 8001673C 8FAD003C */ lw $t5, 0x3c($sp)
|
|
/* 017340 80016740 44807800 */ mtc1 $zero, $f15
|
|
/* 017344 80016744 44807000 */ mtc1 $zero, $f14
|
|
/* 017348 80016748 10000034 */ b .L8001681C
|
|
/* 01734C 8001674C C5AC0000 */ lwc1 $f12, ($t5)
|
|
/* 017350 80016750 016A082A */ slt $at, $t3, $t2
|
|
.L80016754:
|
|
/* 017354 80016754 1020000C */ beqz $at, .L80016788
|
|
/* 017358 80016758 014BC023 */ subu $t8, $t2, $t3
|
|
/* 01735C 8001675C 2B01000A */ slti $at, $t8, 0xa
|
|
/* 017360 80016760 10200009 */ beqz $at, .L80016788
|
|
/* 017364 80016764 3C01800F */ lui $at, %hi(gPlayers+0x94)
|
|
/* 017368 80016768 003F0821 */ addu $at, $at, $ra
|
|
/* 01736C 8001676C C42A6A24 */ lwc1 $f10, %lo(gPlayers+0x94)($at)
|
|
/* 017370 80016770 3C01800F */ lui $at, %hi(D_800ED248)
|
|
/* 017374 80016774 D426D248 */ ldc1 $f6, %lo(D_800ED248)($at)
|
|
/* 017378 80016778 46005121 */ cvt.d.s $f4, $f10
|
|
/* 01737C 8001677C 46262200 */ add.d $f8, $f4, $f6
|
|
/* 017380 80016780 462042A0 */ cvt.s.d $f10, $f8
|
|
/* 017384 80016784 E58A0000 */ swc1 $f10, ($t4)
|
|
.L80016788:
|
|
/* 017388 80016788 014B082A */ slt $at, $t2, $t3
|
|
/* 01738C 8001678C 5020000E */ beql $at, $zero, .L800167C8
|
|
/* 017390 80016790 C5860000 */ lwc1 $f6, ($t4)
|
|
/* 017394 80016794 016A7823 */ subu $t7, $t3, $t2
|
|
/* 017398 80016798 29E1000A */ slti $at, $t7, 0xa
|
|
/* 01739C 8001679C 10200009 */ beqz $at, .L800167C4
|
|
/* 0173A0 800167A0 3C01800F */ lui $at, %hi(gPlayers+0x94)
|
|
/* 0173A4 800167A4 003F0821 */ addu $at, $at, $ra
|
|
/* 0173A8 800167A8 C4246A24 */ lwc1 $f4, %lo(gPlayers+0x94)($at)
|
|
/* 0173AC 800167AC 3C01800F */ lui $at, %hi(D_800ED250)
|
|
/* 0173B0 800167B0 D428D250 */ ldc1 $f8, %lo(D_800ED250)($at)
|
|
/* 0173B4 800167B4 460021A1 */ cvt.d.s $f6, $f4
|
|
/* 0173B8 800167B8 46283281 */ sub.d $f10, $f6, $f8
|
|
/* 0173BC 800167BC 46205120 */ cvt.s.d $f4, $f10
|
|
/* 0173C0 800167C0 E5840000 */ swc1 $f4, ($t4)
|
|
.L800167C4:
|
|
/* 0173C4 800167C4 C5860000 */ lwc1 $f6, ($t4)
|
|
.L800167C8:
|
|
/* 0173C8 800167C8 3C014024 */ li $at, 0x40240000 # 2.562500
|
|
/* 0173CC 800167CC 44814800 */ mtc1 $at, $f9
|
|
/* 0173D0 800167D0 44804000 */ mtc1 $zero, $f8
|
|
/* 0173D4 800167D4 46003021 */ cvt.d.s $f0, $f6
|
|
/* 0173D8 800167D8 4620403C */ c.lt.d $f8, $f0
|
|
/* 0173DC 800167DC 00000000 */ nop
|
|
/* 0173E0 800167E0 45020008 */ bc1fl .L80016804
|
|
/* 0173E4 800167E4 462E003C */ c.lt.d $f0, $f14
|
|
/* 0173E8 800167E8 3C014120 */ li $at, 0x41200000 # 10.000000
|
|
/* 0173EC 800167EC 44815000 */ mtc1 $at, $f10
|
|
/* 0173F0 800167F0 00000000 */ nop
|
|
/* 0173F4 800167F4 E58A0000 */ swc1 $f10, ($t4)
|
|
/* 0173F8 800167F8 C5840000 */ lwc1 $f4, ($t4)
|
|
/* 0173FC 800167FC 46002021 */ cvt.d.s $f0, $f4
|
|
/* 017400 80016800 462E003C */ c.lt.d $f0, $f14
|
|
.L80016804:
|
|
/* 017404 80016804 00000000 */ nop
|
|
/* 017408 80016808 45020005 */ bc1fl .L80016820
|
|
/* 01740C 8001680C 8FAE0038 */ lw $t6, 0x38($sp)
|
|
/* 017410 80016810 44803000 */ mtc1 $zero, $f6
|
|
/* 017414 80016814 00000000 */ nop
|
|
/* 017418 80016818 E5860000 */ swc1 $f6, ($t4)
|
|
.L8001681C:
|
|
/* 01741C 8001681C 8FAE0038 */ lw $t6, 0x38($sp)
|
|
.L80016820:
|
|
/* 017420 80016820 8FB90044 */ lw $t9, 0x44($sp)
|
|
/* 017424 80016824 87A6006A */ lh $a2, 0x6a($sp)
|
|
/* 017428 80016828 95C30000 */ lhu $v1, ($t6)
|
|
/* 01742C 8001682C 87220000 */ lh $v0, ($t9)
|
|
/* 017430 80016830 44056000 */ mfc1 $a1, $f12
|
|
/* 017434 80016834 AFAD003C */ sw $t5, 0x3c($sp)
|
|
/* 017438 80016838 24580001 */ addiu $t8, $v0, 1
|
|
/* 01743C 8001683C 0303001A */ div $zero, $t8, $v1
|
|
/* 017440 80016840 244E0002 */ addiu $t6, $v0, 2
|
|
/* 017444 80016844 00003810 */ mfhi $a3
|
|
/* 017448 80016848 00077C00 */ sll $t7, $a3, 0x10
|
|
/* 01744C 8001684C 14600002 */ bnez $v1, .L80016858
|
|
/* 017450 80016850 00000000 */ nop
|
|
/* 017454 80016854 0007000D */ break 7
|
|
.L80016858:
|
|
/* 017458 80016858 2401FFFF */ li $at, -1
|
|
/* 01745C 8001685C 14610004 */ bne $v1, $at, .L80016870
|
|
/* 017460 80016860 3C018000 */ lui $at, 0x8000
|
|
/* 017464 80016864 17010002 */ bne $t8, $at, .L80016870
|
|
/* 017468 80016868 00000000 */ nop
|
|
/* 01746C 8001686C 0006000D */ break 6
|
|
.L80016870:
|
|
/* 017470 80016870 01C3001A */ div $zero, $t6, $v1
|
|
/* 017474 80016874 000FCC03 */ sra $t9, $t7, 0x10
|
|
/* 017478 80016878 03203825 */ move $a3, $t9
|
|
/* 01747C 8001687C 0000C010 */ mfhi $t8
|
|
/* 017480 80016880 A7B80078 */ sh $t8, 0x78($sp)
|
|
/* 017484 80016884 14600002 */ bnez $v1, .L80016890
|
|
/* 017488 80016888 00000000 */ nop
|
|
/* 01748C 8001688C 0007000D */ break 7
|
|
.L80016890:
|
|
/* 017490 80016890 2401FFFF */ li $at, -1
|
|
/* 017494 80016894 14610004 */ bne $v1, $at, .L800168A8
|
|
/* 017498 80016898 3C018000 */ li $at, 0x80000000 # -0.000000
|
|
/* 01749C 8001689C 15C10002 */ bne $t6, $at, .L800168A8
|
|
/* 0174A0 800168A0 00000000 */ nop
|
|
/* 0174A4 800168A4 0006000D */ break 6
|
|
.L800168A8:
|
|
/* 0174A8 800168A8 30E4FFFF */ andi $a0, $a3, 0xffff
|
|
/* 0174AC 800168AC A7A7007A */ sh $a3, 0x7a($sp)
|
|
/* 0174B0 800168B0 0C002EF6 */ jal func_8000BBD8
|
|
/* 0174B4 800168B4 AFA60054 */ sw $a2, 0x54($sp)
|
|
/* 0174B8 800168B8 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
|
|
/* 0174BC 800168BC 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
|
|
/* 0174C0 800168C0 C4680000 */ lwc1 $f8, ($v1)
|
|
/* 0174C4 800168C4 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
|
/* 0174C8 800168C8 44810800 */ mtc1 $at, $f1
|
|
/* 0174CC 800168CC 44800000 */ mtc1 $zero, $f0
|
|
/* 0174D0 800168D0 460042A1 */ cvt.d.s $f10, $f8
|
|
/* 0174D4 800168D4 C4680008 */ lwc1 $f8, 8($v1)
|
|
/* 0174D8 800168D8 46205102 */ mul.d $f4, $f10, $f0
|
|
/* 0174DC 800168DC 8FAD003C */ lw $t5, 0x3c($sp)
|
|
/* 0174E0 800168E0 460042A1 */ cvt.d.s $f10, $f8
|
|
/* 0174E4 800168E4 8FA60054 */ lw $a2, 0x54($sp)
|
|
/* 0174E8 800168E8 97A40078 */ lhu $a0, 0x78($sp)
|
|
/* 0174EC 800168EC 8DA50000 */ lw $a1, ($t5)
|
|
/* 0174F0 800168F0 462021A0 */ cvt.s.d $f6, $f4
|
|
/* 0174F4 800168F4 46205102 */ mul.d $f4, $f10, $f0
|
|
/* 0174F8 800168F8 E7A60098 */ swc1 $f6, 0x98($sp)
|
|
/* 0174FC 800168FC 462024A0 */ cvt.s.d $f18, $f4
|
|
/* 017500 80016900 0C002EF6 */ jal func_8000BBD8
|
|
/* 017504 80016904 E7B20090 */ swc1 $f18, 0x90($sp)
|
|
/* 017508 80016908 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
|
|
/* 01750C 8001690C 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
|
|
/* 017510 80016910 C46A0000 */ lwc1 $f10, ($v1)
|
|
/* 017514 80016914 C7A60098 */ lwc1 $f6, 0x98($sp)
|
|
/* 017518 80016918 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
|
|
/* 01751C 8001691C 44810800 */ mtc1 $at, $f1
|
|
/* 017520 80016920 44800000 */ mtc1 $zero, $f0
|
|
/* 017524 80016924 46005121 */ cvt.d.s $f4, $f10
|
|
/* 017528 80016928 46003221 */ cvt.d.s $f8, $f6
|
|
/* 01752C 8001692C 46202182 */ mul.d $f6, $f4, $f0
|
|
/* 017530 80016930 8FAF0068 */ lw $t7, 0x68($sp)
|
|
/* 017534 80016934 87AE0078 */ lh $t6, 0x78($sp)
|
|
/* 017538 80016938 3C028016 */ lui $v0, %hi(D_80164550) # 0x8016
|
|
/* 01753C 8001693C 000FC880 */ sll $t9, $t7, 2
|
|
/* 017540 80016940 00591021 */ addu $v0, $v0, $t9
|
|
/* 017544 80016944 8C424550 */ lw $v0, %lo(D_80164550)($v0) # 0x4550($v0)
|
|
/* 017548 80016948 000EC0C0 */ sll $t8, $t6, 3
|
|
/* 01754C 8001694C 46264280 */ add.d $f10, $f8, $f6
|
|
/* 017550 80016950 C4660008 */ lwc1 $f6, 8($v1)
|
|
/* 017554 80016954 87AE007A */ lh $t6, 0x7a($sp)
|
|
/* 017558 80016958 00587821 */ addu $t7, $v0, $t8
|
|
/* 01755C 8001695C 46205120 */ cvt.s.d $f4, $f10
|
|
/* 017560 80016960 C7B20090 */ lwc1 $f18, 0x90($sp)
|
|
/* 017564 80016964 000EC0C0 */ sll $t8, $t6, 3
|
|
/* 017568 80016968 460032A1 */ cvt.d.s $f10, $f6
|
|
/* 01756C 8001696C E7A40098 */ swc1 $f4, 0x98($sp)
|
|
/* 017570 80016970 46205182 */ mul.d $f6, $f10, $f0
|
|
/* 017574 80016974 85F90002 */ lh $t9, 2($t7)
|
|
/* 017578 80016978 00587821 */ addu $t7, $v0, $t8
|
|
/* 01757C 8001697C 85EE0002 */ lh $t6, 2($t7)
|
|
/* 017580 80016980 46009221 */ cvt.d.s $f8, $f18
|
|
/* 017584 80016984 8FA4005C */ lw $a0, 0x5c($sp)
|
|
/* 017588 80016988 032EC021 */ addu $t8, $t9, $t6
|
|
/* 01758C 8001698C 3C0F8016 */ lui $t7, %hi(D_801645F8) # $t7, 0x8016
|
|
/* 017590 80016990 46264280 */ add.d $f10, $f8, $f6
|
|
/* 017594 80016994 44984000 */ mtc1 $t8, $f8
|
|
/* 017598 80016998 25EF45F8 */ addiu $t7, %lo(D_801645F8) # addiu $t7, $t7, 0x45f8
|
|
/* 01759C 8001699C 008F3821 */ addu $a3, $a0, $t7
|
|
/* 0175A0 800169A0 468041A1 */ cvt.d.w $f6, $f8
|
|
/* 0175A4 800169A4 3C198016 */ lui $t9, %hi(D_80164618) # $t9, 0x8016
|
|
/* 0175A8 800169A8 27394618 */ addiu $t9, %lo(D_80164618) # addiu $t9, $t9, 0x4618
|
|
/* 0175AC 800169AC 00994021 */ addu $t0, $a0, $t9
|
|
/* 0175B0 800169B0 462054A0 */ cvt.s.d $f18, $f10
|
|
/* 0175B4 800169B4 44805000 */ mtc1 $zero, $f10
|
|
/* 0175B8 800169B8 44815800 */ mtc1 $at, $f11
|
|
/* 0175BC 800169BC 3C0E8016 */ lui $t6, %hi(D_80164638) # $t6, 0x8016
|
|
/* 0175C0 800169C0 25CE4638 */ addiu $t6, %lo(D_80164638) # addiu $t6, $t6, 0x4638
|
|
/* 0175C4 800169C4 462A3202 */ mul.d $f8, $f6, $f10
|
|
/* 0175C8 800169C8 C4EA0000 */ lwc1 $f10, ($a3)
|
|
/* 0175CC 800169CC 008E4821 */ addu $t1, $a0, $t6
|
|
/* 0175D0 800169D0 AFA9004C */ sw $t1, 0x4c($sp)
|
|
/* 0175D4 800169D4 AFA80050 */ sw $t0, 0x50($sp)
|
|
/* 0175D8 800169D8 AFA70054 */ sw $a3, 0x54($sp)
|
|
/* 0175DC 800169DC 460A2381 */ sub.s $f14, $f4, $f10
|
|
/* 0175E0 800169E0 C5240000 */ lwc1 $f4, ($t1)
|
|
/* 0175E4 800169E4 462041A0 */ cvt.s.d $f6, $f8
|
|
/* 0175E8 800169E8 C5080000 */ lwc1 $f8, ($t0)
|
|
/* 0175EC 800169EC 460E7282 */ mul.s $f10, $f14, $f14
|
|
/* 0175F0 800169F0 46049081 */ sub.s $f2, $f18, $f4
|
|
/* 0175F4 800169F4 E7A60094 */ swc1 $f6, 0x94($sp)
|
|
/* 0175F8 800169F8 E7AE008C */ swc1 $f14, 0x8c($sp)
|
|
/* 0175FC 800169FC 46083401 */ sub.s $f16, $f6, $f8
|
|
/* 017600 80016A00 E7A20084 */ swc1 $f2, 0x84($sp)
|
|
/* 017604 80016A04 46108182 */ mul.s $f6, $f16, $f16
|
|
/* 017608 80016A08 E7B00088 */ swc1 $f16, 0x88($sp)
|
|
/* 01760C 80016A0C 46021102 */ mul.s $f4, $f2, $f2
|
|
/* 017610 80016A10 46065200 */ add.s $f8, $f10, $f6
|
|
/* 017614 80016A14 0C033850 */ jal sqrtf
|
|
/* 017618 80016A18 46044300 */ add.s $f12, $f8, $f4
|
|
/* 01761C 80016A1C 44805800 */ mtc1 $zero, $f11
|
|
/* 017620 80016A20 44805000 */ mtc1 $zero, $f10
|
|
/* 017624 80016A24 460001A1 */ cvt.d.s $f6, $f0
|
|
/* 017628 80016A28 8FA70054 */ lw $a3, 0x54($sp)
|
|
/* 01762C 80016A2C 46265032 */ c.eq.d $f10, $f6
|
|
/* 017630 80016A30 8FA80050 */ lw $t0, 0x50($sp)
|
|
/* 017634 80016A34 8FA9004C */ lw $t1, 0x4c($sp)
|
|
/* 017638 80016A38 C7AE008C */ lwc1 $f14, 0x8c($sp)
|
|
/* 01763C 80016A3C 45010013 */ bc1t .L80016A8C
|
|
/* 017640 80016A40 C7B00088 */ lwc1 $f16, 0x88($sp)
|
|
/* 017644 80016A44 8FB80058 */ lw $t8, 0x58($sp)
|
|
/* 017648 80016A48 C4EA0000 */ lwc1 $f10, ($a3)
|
|
/* 01764C 80016A4C C7020000 */ lwc1 $f2, ($t8)
|
|
/* 017650 80016A50 460E1202 */ mul.s $f8, $f2, $f14
|
|
/* 017654 80016A54 46004103 */ div.s $f4, $f8, $f0
|
|
/* 017658 80016A58 46101182 */ mul.s $f6, $f2, $f16
|
|
/* 01765C 80016A5C 46003203 */ div.s $f8, $f6, $f0
|
|
/* 017660 80016A60 C7A60084 */ lwc1 $f6, 0x84($sp)
|
|
/* 017664 80016A64 460A2300 */ add.s $f12, $f4, $f10
|
|
/* 017668 80016A68 C5040000 */ lwc1 $f4, ($t0)
|
|
/* 01766C 80016A6C E7AC0098 */ swc1 $f12, 0x98($sp)
|
|
/* 017670 80016A70 46044280 */ add.s $f10, $f8, $f4
|
|
/* 017674 80016A74 46061202 */ mul.s $f8, $f2, $f6
|
|
/* 017678 80016A78 E7AA0094 */ swc1 $f10, 0x94($sp)
|
|
/* 01767C 80016A7C C52A0000 */ lwc1 $f10, ($t1)
|
|
/* 017680 80016A80 46004103 */ div.s $f4, $f8, $f0
|
|
/* 017684 80016A84 10000006 */ b .L80016AA0
|
|
/* 017688 80016A88 460A2480 */ add.s $f18, $f4, $f10
|
|
.L80016A8C:
|
|
/* 01768C 80016A8C C4E60000 */ lwc1 $f6, ($a3)
|
|
/* 017690 80016A90 C5080000 */ lwc1 $f8, ($t0)
|
|
/* 017694 80016A94 C5320000 */ lwc1 $f18, ($t1)
|
|
/* 017698 80016A98 E7A60098 */ swc1 $f6, 0x98($sp)
|
|
/* 01769C 80016A9C E7A80094 */ swc1 $f8, 0x94($sp)
|
|
.L80016AA0:
|
|
/* 0176A0 80016AA0 C7AC0098 */ lwc1 $f12, 0x98($sp)
|
|
/* 0176A4 80016AA4 E6120008 */ swc1 $f18, 8($s0)
|
|
/* 0176A8 80016AA8 3C01403E */ li $at, 0x403E0000 # 2.968750
|
|
/* 0176AC 80016AAC E60C0000 */ swc1 $f12, ($s0)
|
|
/* 0176B0 80016AB0 C7A40094 */ lwc1 $f4, 0x94($sp)
|
|
/* 0176B4 80016AB4 44815800 */ mtc1 $at, $f11
|
|
/* 0176B8 80016AB8 44805000 */ mtc1 $zero, $f10
|
|
/* 0176BC 80016ABC 46002421 */ cvt.d.s $f16, $f4
|
|
/* 0176C0 80016AC0 44069000 */ mfc1 $a2, $f18
|
|
/* 0176C4 80016AC4 462A8180 */ add.d $f6, $f16, $f10
|
|
/* 0176C8 80016AC8 F7B00028 */ sdc1 $f16, 0x28($sp)
|
|
/* 0176CC 80016ACC E7B20090 */ swc1 $f18, 0x90($sp)
|
|
/* 0176D0 80016AD0 AFA9004C */ sw $t1, 0x4c($sp)
|
|
/* 0176D4 80016AD4 462033A0 */ cvt.s.d $f14, $f6
|
|
/* 0176D8 80016AD8 AFA80050 */ sw $t0, 0x50($sp)
|
|
/* 0176DC 80016ADC 0C0AB870 */ jal func_802AE1C0
|
|
/* 0176E0 80016AE0 AFA70054 */ sw $a3, 0x54($sp)
|
|
/* 0176E4 80016AE4 3C014034 */ li $at, 0x40340000 # 2.812500
|
|
/* 0176E8 80016AE8 D7B00028 */ ldc1 $f16, 0x28($sp)
|
|
/* 0176EC 80016AEC 44814800 */ mtc1 $at, $f9
|
|
/* 0176F0 80016AF0 44804000 */ mtc1 $zero, $f8
|
|
/* 0176F4 80016AF4 460000A1 */ cvt.d.s $f2, $f0
|
|
/* 0176F8 80016AF8 8FA70054 */ lw $a3, 0x54($sp)
|
|
/* 0176FC 80016AFC 46288101 */ sub.d $f4, $f16, $f8
|
|
/* 017700 80016B00 8FA80050 */ lw $t0, 0x50($sp)
|
|
/* 017704 80016B04 8FA9004C */ lw $t1, 0x4c($sp)
|
|
/* 017708 80016B08 C7B20090 */ lwc1 $f18, 0x90($sp)
|
|
/* 01770C 80016B0C 4624103C */ c.lt.d $f2, $f4
|
|
/* 017710 80016B10 3C01800F */ lui $at, %hi(D_800ED258)
|
|
/* 017714 80016B14 45030008 */ bc1tl .L80016B38
|
|
/* 017718 80016B18 3C014024 */ li $at, 0x40240000 # 2.562500
|
|
/* 01771C 80016B1C D42AD258 */ ldc1 $f10, %lo(D_800ED258)($at)
|
|
/* 017720 80016B20 3C014024 */ li $at, 0x40240000 # 2.562500
|
|
/* 017724 80016B24 4622503E */ c.le.d $f10, $f2
|
|
/* 017728 80016B28 00000000 */ nop
|
|
/* 01772C 80016B2C 4502000A */ bc1fl .L80016B58
|
|
/* 017730 80016B30 44815800 */ mtc1 $at, $f11
|
|
/* 017734 80016B34 3C014024 */ li $at, 0x40240000 # 2.562500
|
|
.L80016B38:
|
|
/* 017738 80016B38 44813800 */ mtc1 $at, $f7
|
|
/* 01773C 80016B3C 44803000 */ mtc1 $zero, $f6
|
|
/* 017740 80016B40 00000000 */ nop
|
|
/* 017744 80016B44 46268200 */ add.d $f8, $f16, $f6
|
|
/* 017748 80016B48 46204120 */ cvt.s.d $f4, $f8
|
|
/* 01774C 80016B4C 10000007 */ b .L80016B6C
|
|
/* 017750 80016B50 E6040004 */ swc1 $f4, 4($s0)
|
|
/* 017754 80016B54 44815800 */ mtc1 $at, $f11
|
|
.L80016B58:
|
|
/* 017758 80016B58 44805000 */ mtc1 $zero, $f10
|
|
/* 01775C 80016B5C 00000000 */ nop
|
|
/* 017760 80016B60 462A1180 */ add.d $f6, $f2, $f10
|
|
/* 017764 80016B64 46203220 */ cvt.s.d $f8, $f6
|
|
/* 017768 80016B68 E6080004 */ swc1 $f8, 4($s0)
|
|
.L80016B6C:
|
|
/* 01776C 80016B6C C7A40098 */ lwc1 $f4, 0x98($sp)
|
|
/* 017770 80016B70 C7AA0094 */ lwc1 $f10, 0x94($sp)
|
|
/* 017774 80016B74 8FA200A0 */ lw $v0, 0xa0($sp)
|
|
/* 017778 80016B78 E5320000 */ swc1 $f18, ($t1)
|
|
/* 01777C 80016B7C E4E40000 */ swc1 $f4, ($a3)
|
|
/* 017780 80016B80 E50A0000 */ swc1 $f10, ($t0)
|
|
/* 017784 80016B84 C4460014 */ lwc1 $f6, 0x14($v0)
|
|
/* 017788 80016B88 3C014018 */ li $at, 0x40180000 # 2.375000
|
|
/* 01778C 80016B8C 44815800 */ mtc1 $at, $f11
|
|
/* 017790 80016B90 E606000C */ swc1 $f6, 0xc($s0)
|
|
/* 017794 80016B94 C4480018 */ lwc1 $f8, 0x18($v0)
|
|
/* 017798 80016B98 44805000 */ mtc1 $zero, $f10
|
|
/* 01779C 80016B9C 46004121 */ cvt.d.s $f4, $f8
|
|
/* 0177A0 80016BA0 462A2180 */ add.d $f6, $f4, $f10
|
|
/* 0177A4 80016BA4 46203220 */ cvt.s.d $f8, $f6
|
|
/* 0177A8 80016BA8 E6080010 */ swc1 $f8, 0x10($s0)
|
|
/* 0177AC 80016BAC C444001C */ lwc1 $f4, 0x1c($v0)
|
|
/* 0177B0 80016BB0 E6040014 */ swc1 $f4, 0x14($s0)
|
|
/* 0177B4 80016BB4 8FA50068 */ lw $a1, 0x68($sp)
|
|
/* 0177B8 80016BB8 0C00534C */ jal func_80014D30
|
|
/* 0177BC 80016BBC 8FA400C4 */ lw $a0, 0xc4($sp)
|
|
/* 0177C0 80016BC0 C60A000C */ lwc1 $f10, 0xc($s0)
|
|
/* 0177C4 80016BC4 C6060000 */ lwc1 $f6, ($s0)
|
|
/* 0177C8 80016BC8 C6080010 */ lwc1 $f8, 0x10($s0)
|
|
/* 0177CC 80016BCC C6040004 */ lwc1 $f4, 4($s0)
|
|
/* 0177D0 80016BD0 46065301 */ sub.s $f12, $f10, $f6
|
|
/* 0177D4 80016BD4 46044281 */ sub.s $f10, $f8, $f4
|
|
/* 0177D8 80016BD8 E7AA00A8 */ swc1 $f10, 0xa8($sp)
|
|
/* 0177DC 80016BDC C6080008 */ lwc1 $f8, 8($s0)
|
|
/* 0177E0 80016BE0 C6060014 */ lwc1 $f6, 0x14($s0)
|
|
/* 0177E4 80016BE4 E7AC00AC */ swc1 $f12, 0xac($sp)
|
|
/* 0177E8 80016BE8 46083381 */ sub.s $f14, $f6, $f8
|
|
/* 0177EC 80016BEC 0C0ADE0C */ jal atan2s
|
|
/* 0177F0 80016BF0 E7AE00A4 */ swc1 $f14, 0xa4($sp)
|
|
/* 0177F4 80016BF4 C7A000AC */ lwc1 $f0, 0xac($sp)
|
|
/* 0177F8 80016BF8 C7AE00A4 */ lwc1 $f14, 0xa4($sp)
|
|
/* 0177FC 80016BFC A6020026 */ sh $v0, 0x26($s0)
|
|
/* 017800 80016C00 46000102 */ mul.s $f4, $f0, $f0
|
|
/* 017804 80016C04 00000000 */ nop
|
|
/* 017808 80016C08 460E7282 */ mul.s $f10, $f14, $f14
|
|
/* 01780C 80016C0C 0C033850 */ jal sqrtf
|
|
/* 017810 80016C10 460A2300 */ add.s $f12, $f4, $f10
|
|
/* 017814 80016C14 46000306 */ mov.s $f12, $f0
|
|
/* 017818 80016C18 0C0ADE0C */ jal atan2s
|
|
/* 01781C 80016C1C C7AE00A8 */ lwc1 $f14, 0xa8($sp)
|
|
/* 017820 80016C20 A6020024 */ sh $v0, 0x24($s0)
|
|
/* 017824 80016C24 A6000028 */ sh $zero, 0x28($s0)
|
|
/* 017828 80016C28 8FBF0024 */ lw $ra, 0x24($sp)
|
|
/* 01782C 80016C2C 8FB00020 */ lw $s0, 0x20($sp)
|
|
/* 017830 80016C30 27BD00B8 */ addiu $sp, $sp, 0xb8
|
|
/* 017834 80016C34 03E00008 */ jr $ra
|
|
/* 017838 80016C38 00000000 */ nop
|