update_camera_mode_2 (#997)

This commit is contained in:
Unnunu 2023-03-24 18:06:14 +03:00 committed by GitHub
parent 4c080f1149
commit 04086c771c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 118 additions and 1191 deletions

View File

@ -104,123 +104,168 @@ void update_camera_mode_4(Camera* camera) {
camera->currentPitch = atan2(0.0f, 0.0f, deltaY, -sqrtf(SQ(deltaX) + SQ(deltaZ)));
}
#ifdef WIP
void update_camera_mode_2(Camera* camera) {
f32 temp_f24;
f32 temp_f28_2;
f32 auxBoomLength;
f32 boomYaw;
f32 sinBoom;
void update_camera_mode_2(Camera *camera) {
f32 cosBoom;
f32 sinBoom;
f32 boomYaw;
f32 deltaX;
f32 deltaY;
f32 deltaZ;
f32 unk_70;
f32 sin_70;
f32 cos_70;
f32 zero;
f32 deltaX2;
f32 deltaY2;
f32 deltaZ2;
f32 deltaX3;
f32 deltaY3;
f32 deltaZ3;
f32 tmp;
auxBoomLength = camera->auxBoomLength;
camera->unk_70 = auxBoomLength;
camera->trueRotation.x = auxBoomLength;
camera->currentBoomYaw = camera->auxPitch;
camera->unk_70 = camera->auxBoomLength;
camera->currentBoomLength = camera->lookAt_dist * D_8009A5EC;
camera->currentYOffset = camera->auxBoomPitch * D_8009A5EC;
if (camera->unk_06 != 0) {
zero = 0.0f;
camera->currentBoomYaw = camera->auxPitch;
camera->trueRotation.x = camera->unk_70;
if (camera->unk_06) {
camera->unk_06 = 0;
camera->unk_98 = 0.0f;
camera->unk_9C = 0.0f;
camera->unk_9C = camera->unk_98 = zero;
camera->lookAt_obj.x = camera->lookAt_obj_target.x;
camera->lookAt_obj.y = camera->lookAt_obj_target.y + camera->currentYOffset;
camera->lookAt_obj.z = camera->lookAt_obj_target.z;
boomYaw = DEG_TO_RAD(camera->currentBoomYaw);
sinBoom = sin_rad(boomYaw);
cosBoom = cos_rad(boomYaw);
temp_f24 = (cosBoom * zero) + (camera->currentBoomLength * sinBoom);
unk_70 = DEG_TO_RAD(camera->unk_70);
temp_f28_2 = (sinBoom * -zero) + (camera->currentBoomLength * cosBoom);
sin_70 = sin_rad(unk_70);
cos_70 = cos_rad(unk_70);
camera->lookAt_eye.x = ((cos_70 * zero) - (temp_f28_2 * sin_70)) + camera->lookAt_obj.x;
camera->lookAt_eye.y = camera->lookAt_obj.y + temp_f24;
camera->lookAt_eye.z = camera->lookAt_obj.z + ((sin_70 * zero) + (temp_f28_2 * cos_70));
deltaX = 0.0f;
deltaY = 0.0f;
deltaZ = camera->currentBoomLength;
deltaX3 = deltaX;
deltaY3 = -deltaY;
tmp = -0.0f; //required to match
deltaZ3 = deltaZ;
deltaX = deltaX3;
deltaY = cosBoom * -deltaY3 + deltaZ3 * sinBoom;
deltaZ = sinBoom * deltaY3 + deltaZ3 * cosBoom;
boomYaw = DEG_TO_RAD(camera->unk_70);
sinBoom = sin_rad(boomYaw);
cosBoom = cos_rad(boomYaw);
deltaX3 = cosBoom * deltaX - deltaZ * sinBoom;
deltaY3 = deltaY;
deltaZ3 = sinBoom * deltaX + deltaZ * cosBoom;
deltaX2 = camera->lookAt_obj.x + deltaX3;
deltaY2 = camera->lookAt_obj.y + deltaY3;
deltaZ2 = camera->lookAt_obj.z + deltaZ3;
camera->lookAt_eye.x = deltaX2;
camera->lookAt_eye.y = deltaY2;
camera->lookAt_eye.z = deltaZ2;
}
deltaX = camera->lookAt_obj_target.x - camera->lookAt_obj.x;
deltaY = (camera->lookAt_obj_target.y + camera->currentYOffset) - camera->lookAt_obj.y;
deltaZ = camera->lookAt_obj_target.z - camera->lookAt_obj.z;
if (fabsf(deltaX) > 16.0f) {
if (deltaX < 0.0f) {
deltaX = -16.0f;
deltaX2 = camera->lookAt_obj_target.x - camera->lookAt_obj.x;
deltaY2 = (camera->lookAt_obj_target.y + camera->currentYOffset) - camera->lookAt_obj.y;
deltaZ2 = camera->lookAt_obj_target.z - camera->lookAt_obj.z;
if (fabsf(deltaX2) > 16.0f) {
if (deltaX2 < 0.0f) {
deltaX2 = -16.0f;
} else {
deltaX = 16.0f;
deltaX2 = 16.0f;
}
}
if (fabsf(deltaY) > 16.0f) {
if (deltaY < 0.0f) {
deltaY = -16.0f;
if (fabsf(deltaY2) > 16.0f) {
if (deltaY2 < 0.0f) {
deltaY2 = -16.0f;
} else {
deltaY = 16.0f;
deltaY2 = 16.0f;
}
}
if (fabsf(deltaZ) > 16.0f) {
if (deltaZ < 0.0f) {
deltaZ = -16.0f;
if (fabsf(deltaZ2) > 16.0f) {
if (deltaZ2 < 0.0f) {
deltaZ2 = -16.0f;
} else {
deltaZ = 16.0f;
deltaZ2 = 16.0f;
}
}
camera->lookAt_obj.x += deltaX * 0.5f;
camera->lookAt_obj.y += deltaY * 0.5f;
camera->lookAt_obj.z += deltaZ * 0.5f;
zero = 0.0f;
unk_70 = -zero;
camera->lookAt_obj.x += deltaX2 * 0.5f;
camera->lookAt_obj.y += deltaY2 * 0.5f;
camera->lookAt_obj.z += deltaZ2 * 0.5f;
boomYaw = DEG_TO_RAD(camera->currentBoomYaw);
sinBoom = sin_rad(boomYaw);
cosBoom = cos_rad(boomYaw);
temp_f24 = (cosBoom * zero) + (camera->currentBoomLength * sinBoom);
temp_f28_2 = (sinBoom * unk_70) + (camera->currentBoomLength * cosBoom);
unk_70 = DEG_TO_RAD(camera->unk_70);
sin_70 = sin_rad(unk_70);
cos_70 = cos_rad(unk_70);
deltaX = ((camera->lookAt_obj.x + ((cos_70 * zero) - (temp_f28_2 * sin_70))) - camera->lookAt_eye.x) * 0.5f;
deltaZ = ((camera->lookAt_obj.z + ((sin_70 * zero) + (temp_f28_2 * cos_70))) - camera->lookAt_eye.z) * 0.5f;
deltaY = ((camera->lookAt_obj.y + temp_f24) - camera->lookAt_eye.y) * 0.5f;
if (fabsf(deltaX) > 16.0f) {
if (deltaX < 0.0f) {
deltaX = -16.0f;
deltaX = 0.0f;
deltaY = 0.0f;
deltaZ = camera->currentBoomLength;
deltaX3 = deltaX;
deltaY3 = -deltaY;
deltaZ3 = deltaZ;
deltaX = deltaX3;
deltaY = cosBoom * -deltaY3 + deltaZ3 * sinBoom;
deltaZ = sinBoom * deltaY3 + deltaZ3 * cosBoom;
boomYaw = DEG_TO_RAD(camera->unk_70);
sinBoom = sin_rad(boomYaw);
cosBoom = cos_rad(boomYaw);
deltaX3 = cosBoom * deltaX - deltaZ * sinBoom;
deltaY3 = deltaY;
deltaZ3 = sinBoom * deltaX + deltaZ * cosBoom;
deltaX2 = camera->lookAt_obj.x + deltaX3;
deltaY2 = camera->lookAt_obj.y + deltaY3;
deltaZ2 = camera->lookAt_obj.z + deltaZ3;
deltaX2 = (deltaX2 - camera->lookAt_eye.x) * 0.5f;
deltaY2 = (deltaY2 - camera->lookAt_eye.y) * 0.5f;
deltaZ2 = (deltaZ2 - camera->lookAt_eye.z) * 0.5f;
tmp = 0.0f; //required to match
if (fabsf(deltaX2) > 16.0f) {
if (deltaX2 < 0.0f) {
deltaX2 = -16.0f;
} else {
deltaX = 16.0f;
deltaX2 = 16.0f;
}
}
if (fabsf(deltaY) > 16.0f) {
if (deltaY < 0.0f) {
deltaY = -16.0f;
if (fabsf(deltaY2) > 16.0f) {
if (deltaY2 < 0.0f) {
deltaY2 = -16.0f;
} else {
deltaY = 16.0f;
deltaY2 = 16.0f;
}
}
if (fabsf(deltaZ) > 16.0f) {
if (deltaZ < 0.0f) {
deltaZ = -16.0f;
if (fabsf(deltaZ2) > 16.0f) {
if (deltaZ2 < 0.0f) {
deltaZ2 = -16.0f;
} else {
deltaZ = 16.0f;
deltaZ2 = 16.0f;
}
}
camera->lookAt_eye.x += deltaX;
camera->lookAt_eye.y += deltaY;
camera->lookAt_eye.z += deltaZ;
camera->lookAt_eye.x += deltaX2;
camera->lookAt_eye.y += deltaY2;
camera->lookAt_eye.z += deltaZ2;
camera->currentYaw = atan2(camera->lookAt_eye.x, camera->lookAt_eye.z, camera->lookAt_obj.x, camera->lookAt_obj.z);
deltaX = camera->lookAt_obj.x - camera->lookAt_eye.x;
deltaY = camera->lookAt_obj.y - camera->lookAt_eye.y;
deltaZ = camera->lookAt_obj.z - camera->lookAt_eye.z;
camera->currentBlendedYawNegated = -atan2(0.0f, 0.0f, deltaX, deltaZ);
camera->currentPitch = atan2(0.0f, 0.0f, deltaY, -sqrtf(SQ(deltaX) + SQ(deltaZ)));
}
#else
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_2, Camera* camera);
#endif
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_1, Camera* camera);

View File

@ -1,374 +0,0 @@
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
/* Generated by spimdisasm 1.11.1 */
glabel update_camera_mode_2
/* 97A8 8002E3A8 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 97AC 8002E3AC AFB00010 */ sw $s0, 0x10($sp)
/* 97B0 8002E3B0 0080802D */ daddu $s0, $a0, $zero
/* 97B4 8002E3B4 AFBF0014 */ sw $ra, 0x14($sp)
/* 97B8 8002E3B8 F7BE0040 */ sdc1 $f30, 0x40($sp)
/* 97BC 8002E3BC F7BC0038 */ sdc1 $f28, 0x38($sp)
/* 97C0 8002E3C0 F7BA0030 */ sdc1 $f26, 0x30($sp)
/* 97C4 8002E3C4 F7B80028 */ sdc1 $f24, 0x28($sp)
/* 97C8 8002E3C8 F7B60020 */ sdc1 $f22, 0x20($sp)
/* 97CC 8002E3CC F7B40018 */ sdc1 $f20, 0x18($sp)
/* 97D0 8002E3D0 86020020 */ lh $v0, 0x20($s0)
/* 97D4 8002E3D4 3C01800A */ lui $at, %hi(D_8009A5EC)
/* 97D8 8002E3D8 C42691B8 */ lwc1 $f6, %lo(D_8009A5EC)($at)
/* 97DC 8002E3DC 86030022 */ lh $v1, 0x22($s0)
/* 97E0 8002E3E0 44822000 */ mtc1 $v0, $f4
/* 97E4 8002E3E4 00000000 */ nop
/* 97E8 8002E3E8 46802120 */ cvt.s.w $f4, $f4
/* 97EC 8002E3EC 44831000 */ mtc1 $v1, $f2
/* 97F0 8002E3F0 00000000 */ nop
/* 97F4 8002E3F4 468010A0 */ cvt.s.w $f2, $f2
/* 97F8 8002E3F8 46062102 */ mul.s $f4, $f4, $f6
/* 97FC 8002E3FC 00000000 */ nop
/* 9800 8002E400 8602001E */ lh $v0, 0x1E($s0)
/* 9804 8002E404 86030006 */ lh $v1, 0x6($s0)
/* 9808 8002E408 44820000 */ mtc1 $v0, $f0
/* 980C 8002E40C 00000000 */ nop
/* 9810 8002E410 46800020 */ cvt.s.w $f0, $f0
/* 9814 8002E414 8602001C */ lh $v0, 0x1C($s0)
/* 9818 8002E418 46061082 */ mul.s $f2, $f2, $f6
/* 981C 8002E41C 00000000 */ nop
/* 9820 8002E420 E6000070 */ swc1 $f0, 0x70($s0)
/* 9824 8002E424 46000186 */ mov.s $f6, $f0
/* 9828 8002E428 E6060084 */ swc1 $f6, 0x84($s0)
/* 982C 8002E42C 44820000 */ mtc1 $v0, $f0
/* 9830 8002E430 00000000 */ nop
/* 9834 8002E434 46800020 */ cvt.s.w $f0, $f0
/* 9838 8002E438 E6000074 */ swc1 $f0, 0x74($s0)
/* 983C 8002E43C E6040078 */ swc1 $f4, 0x78($s0)
/* 9840 8002E440 10600047 */ beqz $v1, .LIQUE_8002E560
/* 9844 8002E444 E602007C */ swc1 $f2, 0x7C($s0)
/* 9848 8002E448 46000086 */ mov.s $f2, $f0
/* 984C 8002E44C 4480C000 */ mtc1 $zero, $f24
/* 9850 8002E450 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* 9854 8002E454 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* 9858 8002E458 4481B000 */ mtc1 $at, $f22
/* 985C 8002E45C C6080054 */ lwc1 $f8, 0x54($s0)
/* 9860 8002E460 C6000058 */ lwc1 $f0, 0x58($s0)
/* 9864 8002E464 C604007C */ lwc1 $f4, 0x7C($s0)
/* 9868 8002E468 C606005C */ lwc1 $f6, 0x5C($s0)
/* 986C 8002E46C 3C0143B4 */ lui $at, (0x43B40000 >> 16)
/* 9870 8002E470 4481A000 */ mtc1 $at, $f20
/* 9874 8002E474 46161082 */ mul.s $f2, $f2, $f22
/* 9878 8002E478 00000000 */ nop
/* 987C 8002E47C A6000006 */ sh $zero, 0x6($s0)
/* 9880 8002E480 E6180098 */ swc1 $f24, 0x98($s0)
/* 9884 8002E484 E618009C */ swc1 $f24, 0x9C($s0)
/* 9888 8002E488 46040000 */ add.s $f0, $f0, $f4
/* 988C 8002E48C E6080048 */ swc1 $f8, 0x48($s0)
/* 9890 8002E490 E6060050 */ swc1 $f6, 0x50($s0)
/* 9894 8002E494 E600004C */ swc1 $f0, 0x4C($s0)
/* 9898 8002E498 46141683 */ div.s $f26, $f2, $f20
/* 989C 8002E49C 0C00A78F */ jal sin_rad
/* 98A0 8002E4A0 4600D306 */ mov.s $f12, $f26
/* 98A4 8002E4A4 46000786 */ mov.s $f30, $f0
/* 98A8 8002E4A8 0C00A7A8 */ jal cos_rad
/* 98AC 8002E4AC 4600D306 */ mov.s $f12, $f26
/* 98B0 8002E4B0 46000306 */ mov.s $f12, $f0
/* 98B4 8002E4B4 46186202 */ mul.s $f8, $f12, $f24
/* 98B8 8002E4B8 00000000 */ nop
/* 98BC 8002E4BC 4600C087 */ neg.s $f2, $f24
/* 98C0 8002E4C0 4602F082 */ mul.s $f2, $f30, $f2
/* 98C4 8002E4C4 00000000 */ nop
/* 98C8 8002E4C8 C61C0078 */ lwc1 $f28, 0x78($s0)
/* 98CC 8002E4CC 461EE102 */ mul.s $f4, $f28, $f30
/* 98D0 8002E4D0 00000000 */ nop
/* 98D4 8002E4D4 460CE182 */ mul.s $f6, $f28, $f12
/* 98D8 8002E4D8 00000000 */ nop
/* 98DC 8002E4DC C6000070 */ lwc1 $f0, 0x70($s0)
/* 98E0 8002E4E0 46160002 */ mul.s $f0, $f0, $f22
/* 98E4 8002E4E4 00000000 */ nop
/* 98E8 8002E4E8 4600C286 */ mov.s $f10, $f24
/* 98EC 8002E4EC 46005586 */ mov.s $f22, $f10
/* 98F0 8002E4F0 46044600 */ add.s $f24, $f8, $f4
/* 98F4 8002E4F4 46140683 */ div.s $f26, $f0, $f20
/* 98F8 8002E4F8 4600D306 */ mov.s $f12, $f26
/* 98FC 8002E4FC 0C00A78F */ jal sin_rad
/* 9900 8002E500 46061700 */ add.s $f28, $f2, $f6
/* 9904 8002E504 46000786 */ mov.s $f30, $f0
/* 9908 8002E508 0C00A7A8 */ jal cos_rad
/* 990C 8002E50C 4600D306 */ mov.s $f12, $f26
/* 9910 8002E510 46000306 */ mov.s $f12, $f0
/* 9914 8002E514 46166202 */ mul.s $f8, $f12, $f22
/* 9918 8002E518 00000000 */ nop
/* 991C 8002E51C 4616F182 */ mul.s $f6, $f30, $f22
/* 9920 8002E520 00000000 */ nop
/* 9924 8002E524 461EE102 */ mul.s $f4, $f28, $f30
/* 9928 8002E528 00000000 */ nop
/* 992C 8002E52C 460CE082 */ mul.s $f2, $f28, $f12
/* 9930 8002E530 00000000 */ nop
/* 9934 8002E534 C600004C */ lwc1 $f0, 0x4C($s0)
/* 9938 8002E538 46180400 */ add.s $f16, $f0, $f24
/* 993C 8002E53C 46044281 */ sub.s $f10, $f8, $f4
/* 9940 8002E540 46023080 */ add.s $f2, $f6, $f2
/* 9944 8002E544 C6000048 */ lwc1 $f0, 0x48($s0)
/* 9948 8002E548 460A0100 */ add.s $f4, $f0, $f10
/* 994C 8002E54C C6000050 */ lwc1 $f0, 0x50($s0)
/* 9950 8002E550 46020200 */ add.s $f8, $f0, $f2
/* 9954 8002E554 E6100040 */ swc1 $f16, 0x40($s0)
/* 9958 8002E558 E604003C */ swc1 $f4, 0x3C($s0)
/* 995C 8002E55C E6080044 */ swc1 $f8, 0x44($s0)
.LIQUE_8002E560:
/* 9960 8002E560 C6020054 */ lwc1 $f2, 0x54($s0)
/* 9964 8002E564 C6000048 */ lwc1 $f0, 0x48($s0)
/* 9968 8002E568 46001101 */ sub.s $f4, $f2, $f0
/* 996C 8002E56C C602005C */ lwc1 $f2, 0x5C($s0)
/* 9970 8002E570 C6000050 */ lwc1 $f0, 0x50($s0)
/* 9974 8002E574 46001201 */ sub.s $f8, $f2, $f0
/* 9978 8002E578 C6000058 */ lwc1 $f0, 0x58($s0)
/* 997C 8002E57C C602007C */ lwc1 $f2, 0x7C($s0)
/* 9980 8002E580 46020000 */ add.s $f0, $f0, $f2
/* 9984 8002E584 C602004C */ lwc1 $f2, 0x4C($s0)
/* 9988 8002E588 46020401 */ sub.s $f16, $f0, $f2
/* 998C 8002E58C 3C014180 */ lui $at, (0x41800000 >> 16)
/* 9990 8002E590 44811000 */ mtc1 $at, $f2
/* 9994 8002E594 46002005 */ abs.s $f0, $f4
/* 9998 8002E598 4600103C */ c.lt.s $f2, $f0
/* 999C 8002E59C 00000000 */ nop
/* 99A0 8002E5A0 4502000C */ bc1fl .LIQUE_8002E5D4
/* 99A4 8002E5A4 46008005 */ abs.s $f0, $f16
/* 99A8 8002E5A8 44800000 */ mtc1 $zero, $f0
/* 99AC 8002E5AC 00000000 */ nop
/* 99B0 8002E5B0 4600203C */ c.lt.s $f4, $f0
/* 99B4 8002E5B4 00000000 */ nop
/* 99B8 8002E5B8 45000005 */ bc1f .LIQUE_8002E5D0
/* 99BC 8002E5BC 46001106 */ mov.s $f4, $f2
/* 99C0 8002E5C0 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* 99C4 8002E5C4 44812000 */ mtc1 $at, $f4
/* 99C8 8002E5C8 3C014180 */ lui $at, (0x41800000 >> 16)
/* 99CC 8002E5CC 44811000 */ mtc1 $at, $f2
.LIQUE_8002E5D0:
/* 99D0 8002E5D0 46008005 */ abs.s $f0, $f16
.LIQUE_8002E5D4:
/* 99D4 8002E5D4 4600103C */ c.lt.s $f2, $f0
/* 99D8 8002E5D8 00000000 */ nop
/* 99DC 8002E5DC 45000009 */ bc1f .LIQUE_8002E604
/* 99E0 8002E5E0 00000000 */ nop
/* 99E4 8002E5E4 44800000 */ mtc1 $zero, $f0
/* 99E8 8002E5E8 00000000 */ nop
/* 99EC 8002E5EC 4600803C */ c.lt.s $f16, $f0
/* 99F0 8002E5F0 00000000 */ nop
/* 99F4 8002E5F4 45000003 */ bc1f .LIQUE_8002E604
/* 99F8 8002E5F8 46001406 */ mov.s $f16, $f2
/* 99FC 8002E5FC 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* 9A00 8002E600 44818000 */ mtc1 $at, $f16
.LIQUE_8002E604:
/* 9A04 8002E604 3C014180 */ lui $at, (0x41800000 >> 16)
/* 9A08 8002E608 44811000 */ mtc1 $at, $f2
/* 9A0C 8002E60C 46004005 */ abs.s $f0, $f8
/* 9A10 8002E610 4600103C */ c.lt.s $f2, $f0
/* 9A14 8002E614 00000000 */ nop
/* 9A18 8002E618 45000009 */ bc1f .LIQUE_8002E640
/* 9A1C 8002E61C 00000000 */ nop
/* 9A20 8002E620 44800000 */ mtc1 $zero, $f0
/* 9A24 8002E624 00000000 */ nop
/* 9A28 8002E628 4600403C */ c.lt.s $f8, $f0
/* 9A2C 8002E62C 00000000 */ nop
/* 9A30 8002E630 45000003 */ bc1f .LIQUE_8002E640
/* 9A34 8002E634 46001206 */ mov.s $f8, $f2
/* 9A38 8002E638 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* 9A3C 8002E63C 44814000 */ mtc1 $at, $f8
.LIQUE_8002E640:
/* 9A40 8002E640 3C013F00 */ lui $at, (0x3F000000 >> 16)
/* 9A44 8002E644 4481A000 */ mtc1 $at, $f20
/* 9A48 8002E648 00000000 */ nop
/* 9A4C 8002E64C 46142082 */ mul.s $f2, $f4, $f20
/* 9A50 8002E650 00000000 */ nop
/* 9A54 8002E654 46148182 */ mul.s $f6, $f16, $f20
/* 9A58 8002E658 00000000 */ nop
/* 9A5C 8002E65C 46144202 */ mul.s $f8, $f8, $f20
/* 9A60 8002E660 00000000 */ nop
/* 9A64 8002E664 C6000074 */ lwc1 $f0, 0x74($s0)
/* 9A68 8002E668 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* 9A6C 8002E66C 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* 9A70 8002E670 4481B000 */ mtc1 $at, $f22
/* 9A74 8002E674 00000000 */ nop
/* 9A78 8002E678 46160002 */ mul.s $f0, $f0, $f22
/* 9A7C 8002E67C 00000000 */ nop
/* 9A80 8002E680 4480C000 */ mtc1 $zero, $f24
/* 9A84 8002E684 C6040048 */ lwc1 $f4, 0x48($s0)
/* 9A88 8002E688 3C0143B4 */ lui $at, (0x43B40000 >> 16)
/* 9A8C 8002E68C 44819000 */ mtc1 $at, $f18
/* 9A90 8002E690 46022100 */ add.s $f4, $f4, $f2
/* 9A94 8002E694 C602004C */ lwc1 $f2, 0x4C($s0)
/* 9A98 8002E698 46120683 */ div.s $f26, $f0, $f18
/* 9A9C 8002E69C 46061080 */ add.s $f2, $f2, $f6
/* 9AA0 8002E6A0 C6000050 */ lwc1 $f0, 0x50($s0)
/* 9AA4 8002E6A4 4600D306 */ mov.s $f12, $f26
/* 9AA8 8002E6A8 46080000 */ add.s $f0, $f0, $f8
/* 9AAC 8002E6AC E6040048 */ swc1 $f4, 0x48($s0)
/* 9AB0 8002E6B0 E602004C */ swc1 $f2, 0x4C($s0)
/* 9AB4 8002E6B4 0C00A78F */ jal sin_rad
/* 9AB8 8002E6B8 E6000050 */ swc1 $f0, 0x50($s0)
/* 9ABC 8002E6BC 46000786 */ mov.s $f30, $f0
/* 9AC0 8002E6C0 0C00A7A8 */ jal cos_rad
/* 9AC4 8002E6C4 4600D306 */ mov.s $f12, $f26
/* 9AC8 8002E6C8 46000306 */ mov.s $f12, $f0
/* 9ACC 8002E6CC 46186202 */ mul.s $f8, $f12, $f24
/* 9AD0 8002E6D0 00000000 */ nop
/* 9AD4 8002E6D4 4600C087 */ neg.s $f2, $f24
/* 9AD8 8002E6D8 4602F082 */ mul.s $f2, $f30, $f2
/* 9ADC 8002E6DC 00000000 */ nop
/* 9AE0 8002E6E0 C61C0078 */ lwc1 $f28, 0x78($s0)
/* 9AE4 8002E6E4 461EE102 */ mul.s $f4, $f28, $f30
/* 9AE8 8002E6E8 00000000 */ nop
/* 9AEC 8002E6EC 460CE182 */ mul.s $f6, $f28, $f12
/* 9AF0 8002E6F0 00000000 */ nop
/* 9AF4 8002E6F4 C6000070 */ lwc1 $f0, 0x70($s0)
/* 9AF8 8002E6F8 46160002 */ mul.s $f0, $f0, $f22
/* 9AFC 8002E6FC 00000000 */ nop
/* 9B00 8002E700 4600C286 */ mov.s $f10, $f24
/* 9B04 8002E704 3C0143B4 */ lui $at, (0x43B40000 >> 16)
/* 9B08 8002E708 44819000 */ mtc1 $at, $f18
/* 9B0C 8002E70C 46005586 */ mov.s $f22, $f10
/* 9B10 8002E710 46044600 */ add.s $f24, $f8, $f4
/* 9B14 8002E714 46120683 */ div.s $f26, $f0, $f18
/* 9B18 8002E718 4600D306 */ mov.s $f12, $f26
/* 9B1C 8002E71C 0C00A78F */ jal sin_rad
/* 9B20 8002E720 46061700 */ add.s $f28, $f2, $f6
/* 9B24 8002E724 46000786 */ mov.s $f30, $f0
/* 9B28 8002E728 0C00A7A8 */ jal cos_rad
/* 9B2C 8002E72C 4600D306 */ mov.s $f12, $f26
/* 9B30 8002E730 46000306 */ mov.s $f12, $f0
/* 9B34 8002E734 461EE002 */ mul.s $f0, $f28, $f30
/* 9B38 8002E738 00000000 */ nop
/* 9B3C 8002E73C C602004C */ lwc1 $f2, 0x4C($s0)
/* 9B40 8002E740 46181400 */ add.s $f16, $f2, $f24
/* 9B44 8002E744 C6020040 */ lwc1 $f2, 0x40($s0)
/* 9B48 8002E748 46028081 */ sub.s $f2, $f16, $f2
/* 9B4C 8002E74C 46141402 */ mul.s $f16, $f2, $f20
/* 9B50 8002E750 00000000 */ nop
/* 9B54 8002E754 46166082 */ mul.s $f2, $f12, $f22
/* 9B58 8002E758 00000000 */ nop
/* 9B5C 8002E75C 46001281 */ sub.s $f10, $f2, $f0
/* 9B60 8002E760 4616F082 */ mul.s $f2, $f30, $f22
/* 9B64 8002E764 00000000 */ nop
/* 9B68 8002E768 C6000048 */ lwc1 $f0, 0x48($s0)
/* 9B6C 8002E76C 460A0100 */ add.s $f4, $f0, $f10
/* 9B70 8002E770 C600003C */ lwc1 $f0, 0x3C($s0)
/* 9B74 8002E774 46002001 */ sub.s $f0, $f4, $f0
/* 9B78 8002E778 46140102 */ mul.s $f4, $f0, $f20
/* 9B7C 8002E77C 00000000 */ nop
/* 9B80 8002E780 460CE002 */ mul.s $f0, $f28, $f12
/* 9B84 8002E784 00000000 */ nop
/* 9B88 8002E788 46001080 */ add.s $f2, $f2, $f0
/* 9B8C 8002E78C C6000050 */ lwc1 $f0, 0x50($s0)
/* 9B90 8002E790 46020200 */ add.s $f8, $f0, $f2
/* 9B94 8002E794 C6000044 */ lwc1 $f0, 0x44($s0)
/* 9B98 8002E798 46004001 */ sub.s $f0, $f8, $f0
/* 9B9C 8002E79C 46140202 */ mul.s $f8, $f0, $f20
/* 9BA0 8002E7A0 00000000 */ nop
/* 9BA4 8002E7A4 3C014180 */ lui $at, (0x41800000 >> 16)
/* 9BA8 8002E7A8 44811000 */ mtc1 $at, $f2
/* 9BAC 8002E7AC 46002005 */ abs.s $f0, $f4
/* 9BB0 8002E7B0 4600103C */ c.lt.s $f2, $f0
/* 9BB4 8002E7B4 00000000 */ nop
/* 9BB8 8002E7B8 4502000A */ bc1fl .LIQUE_8002E7E4
/* 9BBC 8002E7BC 46008005 */ abs.s $f0, $f16
/* 9BC0 8002E7C0 4616203C */ c.lt.s $f4, $f22
/* 9BC4 8002E7C4 00000000 */ nop
/* 9BC8 8002E7C8 45000005 */ bc1f .LIQUE_8002E7E0
/* 9BCC 8002E7CC 46001106 */ mov.s $f4, $f2
/* 9BD0 8002E7D0 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* 9BD4 8002E7D4 44812000 */ mtc1 $at, $f4
/* 9BD8 8002E7D8 3C014180 */ lui $at, (0x41800000 >> 16)
/* 9BDC 8002E7DC 44811000 */ mtc1 $at, $f2
.LIQUE_8002E7E0:
/* 9BE0 8002E7E0 46008005 */ abs.s $f0, $f16
.LIQUE_8002E7E4:
/* 9BE4 8002E7E4 4600103C */ c.lt.s $f2, $f0
/* 9BE8 8002E7E8 00000000 */ nop
/* 9BEC 8002E7EC 45000009 */ bc1f .LIQUE_8002E814
/* 9BF0 8002E7F0 00000000 */ nop
/* 9BF4 8002E7F4 44800000 */ mtc1 $zero, $f0
/* 9BF8 8002E7F8 00000000 */ nop
/* 9BFC 8002E7FC 4600803C */ c.lt.s $f16, $f0
/* 9C00 8002E800 00000000 */ nop
/* 9C04 8002E804 45000003 */ bc1f .LIQUE_8002E814
/* 9C08 8002E808 46001406 */ mov.s $f16, $f2
/* 9C0C 8002E80C 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* 9C10 8002E810 44818000 */ mtc1 $at, $f16
.LIQUE_8002E814:
/* 9C14 8002E814 3C014180 */ lui $at, (0x41800000 >> 16)
/* 9C18 8002E818 44811000 */ mtc1 $at, $f2
/* 9C1C 8002E81C 46004005 */ abs.s $f0, $f8
/* 9C20 8002E820 4600103C */ c.lt.s $f2, $f0
/* 9C24 8002E824 00000000 */ nop
/* 9C28 8002E828 45000009 */ bc1f .LIQUE_8002E850
/* 9C2C 8002E82C 00000000 */ nop
/* 9C30 8002E830 44800000 */ mtc1 $zero, $f0
/* 9C34 8002E834 00000000 */ nop
/* 9C38 8002E838 4600403C */ c.lt.s $f8, $f0
/* 9C3C 8002E83C 00000000 */ nop
/* 9C40 8002E840 45000003 */ bc1f .LIQUE_8002E850
/* 9C44 8002E844 46001206 */ mov.s $f8, $f2
/* 9C48 8002E848 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* 9C4C 8002E84C 44814000 */ mtc1 $at, $f8
.LIQUE_8002E850:
/* 9C50 8002E850 C600003C */ lwc1 $f0, 0x3C($s0)
/* 9C54 8002E854 46040000 */ add.s $f0, $f0, $f4
/* 9C58 8002E858 C60E0044 */ lwc1 $f14, 0x44($s0)
/* 9C5C 8002E85C 8E060048 */ lw $a2, 0x48($s0)
/* 9C60 8002E860 46087380 */ add.s $f14, $f14, $f8
/* 9C64 8002E864 C6020040 */ lwc1 $f2, 0x40($s0)
/* 9C68 8002E868 8E070050 */ lw $a3, 0x50($s0)
/* 9C6C 8002E86C 46101080 */ add.s $f2, $f2, $f16
/* 9C70 8002E870 E600003C */ swc1 $f0, 0x3C($s0)
/* 9C74 8002E874 46000306 */ mov.s $f12, $f0
/* 9C78 8002E878 E6020040 */ swc1 $f2, 0x40($s0)
/* 9C7C 8002E87C 0C00A654 */ jal atan2
/* 9C80 8002E880 E60E0044 */ swc1 $f14, 0x44($s0)
/* 9C84 8002E884 C6040048 */ lwc1 $f4, 0x48($s0)
/* 9C88 8002E888 4480A000 */ mtc1 $zero, $f20
/* 9C8C 8002E88C C602003C */ lwc1 $f2, 0x3C($s0)
/* 9C90 8002E890 E600006C */ swc1 $f0, 0x6C($s0)
/* 9C94 8002E894 46022581 */ sub.s $f22, $f4, $f2
/* 9C98 8002E898 C6040050 */ lwc1 $f4, 0x50($s0)
/* 9C9C 8002E89C C6020044 */ lwc1 $f2, 0x44($s0)
/* 9CA0 8002E8A0 4600A306 */ mov.s $f12, $f20
/* 9CA4 8002E8A4 46022701 */ sub.s $f28, $f4, $f2
/* 9CA8 8002E8A8 C604004C */ lwc1 $f4, 0x4C($s0)
/* 9CAC 8002E8AC C6020040 */ lwc1 $f2, 0x40($s0)
/* 9CB0 8002E8B0 4406B000 */ mfc1 $a2, $f22
/* 9CB4 8002E8B4 46022601 */ sub.s $f24, $f4, $f2
/* 9CB8 8002E8B8 4407E000 */ mfc1 $a3, $f28
/* 9CBC 8002E8BC 0C00A654 */ jal atan2
/* 9CC0 8002E8C0 4600A386 */ mov.s $f14, $f20
/* 9CC4 8002E8C4 4616B102 */ mul.s $f4, $f22, $f22
/* 9CC8 8002E8C8 00000000 */ nop
/* 9CCC 8002E8CC 461CE082 */ mul.s $f2, $f28, $f28
/* 9CD0 8002E8D0 00000000 */ nop
/* 9CD4 8002E8D4 46022300 */ add.s $f12, $f4, $f2
/* 9CD8 8002E8D8 46000007 */ neg.s $f0, $f0
/* 9CDC 8002E8DC E6000090 */ swc1 $f0, 0x90($s0)
/* 9CE0 8002E8E0 46006004 */ sqrt.s $f0, $f12
/* 9CE4 8002E8E4 46000032 */ c.eq.s $f0, $f0
/* 9CE8 8002E8E8 00000000 */ nop
/* 9CEC 8002E8EC 45030004 */ bc1tl .LIQUE_8002E900
/* 9CF0 8002E8F0 4600A306 */ mov.s $f12, $f20
/* 9CF4 8002E8F4 0C0183A0 */ jal sqrtf
/* 9CF8 8002E8F8 00000000 */ nop
/* 9CFC 8002E8FC 4600A306 */ mov.s $f12, $f20
.LIQUE_8002E900:
/* 9D00 8002E900 46000007 */ neg.s $f0, $f0
/* 9D04 8002E904 4406C000 */ mfc1 $a2, $f24
/* 9D08 8002E908 44070000 */ mfc1 $a3, $f0
/* 9D0C 8002E90C 0C00A654 */ jal atan2
/* 9D10 8002E910 46006386 */ mov.s $f14, $f12
/* 9D14 8002E914 E6000094 */ swc1 $f0, 0x94($s0)
/* 9D18 8002E918 8FBF0014 */ lw $ra, 0x14($sp)
/* 9D1C 8002E91C 8FB00010 */ lw $s0, 0x10($sp)
/* 9D20 8002E920 D7BE0040 */ ldc1 $f30, 0x40($sp)
/* 9D24 8002E924 D7BC0038 */ ldc1 $f28, 0x38($sp)
/* 9D28 8002E928 D7BA0030 */ ldc1 $f26, 0x30($sp)
/* 9D2C 8002E92C D7B80028 */ ldc1 $f24, 0x28($sp)
/* 9D30 8002E930 D7B60020 */ ldc1 $f22, 0x20($sp)
/* 9D34 8002E934 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 9D38 8002E938 03E00008 */ jr $ra
/* 9D3C 8002E93C 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -1,372 +0,0 @@
.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
glabel update_camera_mode_2
/* 9D88 8002E988 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 9D8C 8002E98C AFB00010 */ sw $s0, 0x10($sp)
/* 9D90 8002E990 0080802D */ daddu $s0, $a0, $zero
/* 9D94 8002E994 AFBF0014 */ sw $ra, 0x14($sp)
/* 9D98 8002E998 F7BE0040 */ sdc1 $f30, 0x40($sp)
/* 9D9C 8002E99C F7BC0038 */ sdc1 $f28, 0x38($sp)
/* 9DA0 8002E9A0 F7BA0030 */ sdc1 $f26, 0x30($sp)
/* 9DA4 8002E9A4 F7B80028 */ sdc1 $f24, 0x28($sp)
/* 9DA8 8002E9A8 F7B60020 */ sdc1 $f22, 0x20($sp)
/* 9DAC 8002E9AC F7B40018 */ sdc1 $f20, 0x18($sp)
/* 9DB0 8002E9B0 86020020 */ lh $v0, 0x20($s0)
/* 9DB4 8002E9B4 3C01800A */ lui $at, %hi(D_8009A5EC)
/* 9DB8 8002E9B8 C426A5CC */ lwc1 $f6, %lo(D_8009A5EC)($at)
/* 9DBC 8002E9BC 86030022 */ lh $v1, 0x22($s0)
/* 9DC0 8002E9C0 44822000 */ mtc1 $v0, $f4
/* 9DC4 8002E9C4 00000000 */ nop
/* 9DC8 8002E9C8 46802120 */ cvt.s.w $f4, $f4
/* 9DCC 8002E9CC 44831000 */ mtc1 $v1, $f2
/* 9DD0 8002E9D0 00000000 */ nop
/* 9DD4 8002E9D4 468010A0 */ cvt.s.w $f2, $f2
/* 9DD8 8002E9D8 46062102 */ mul.s $f4, $f4, $f6
/* 9DDC 8002E9DC 00000000 */ nop
/* 9DE0 8002E9E0 8602001E */ lh $v0, 0x1E($s0)
/* 9DE4 8002E9E4 86030006 */ lh $v1, 0x6($s0)
/* 9DE8 8002E9E8 44820000 */ mtc1 $v0, $f0
/* 9DEC 8002E9EC 00000000 */ nop
/* 9DF0 8002E9F0 46800020 */ cvt.s.w $f0, $f0
/* 9DF4 8002E9F4 8602001C */ lh $v0, 0x1C($s0)
/* 9DF8 8002E9F8 46061082 */ mul.s $f2, $f2, $f6
/* 9DFC 8002E9FC 00000000 */ nop
/* 9E00 8002EA00 E6000070 */ swc1 $f0, 0x70($s0)
/* 9E04 8002EA04 46000186 */ mov.s $f6, $f0
/* 9E08 8002EA08 E6060084 */ swc1 $f6, 0x84($s0)
/* 9E0C 8002EA0C 44820000 */ mtc1 $v0, $f0
/* 9E10 8002EA10 00000000 */ nop
/* 9E14 8002EA14 46800020 */ cvt.s.w $f0, $f0
/* 9E18 8002EA18 E6000074 */ swc1 $f0, 0x74($s0)
/* 9E1C 8002EA1C E6040078 */ swc1 $f4, 0x78($s0)
/* 9E20 8002EA20 10600047 */ beqz $v1, .LJP_8002EB40
/* 9E24 8002EA24 E602007C */ swc1 $f2, 0x7C($s0)
/* 9E28 8002EA28 46000086 */ mov.s $f2, $f0
/* 9E2C 8002EA2C 4480C000 */ mtc1 $zero, $f24
/* 9E30 8002EA30 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* 9E34 8002EA34 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* 9E38 8002EA38 4481B000 */ mtc1 $at, $f22
/* 9E3C 8002EA3C C6080054 */ lwc1 $f8, 0x54($s0)
/* 9E40 8002EA40 C6000058 */ lwc1 $f0, 0x58($s0)
/* 9E44 8002EA44 C604007C */ lwc1 $f4, 0x7C($s0)
/* 9E48 8002EA48 C606005C */ lwc1 $f6, 0x5C($s0)
/* 9E4C 8002EA4C 3C0143B4 */ lui $at, (0x43B40000 >> 16)
/* 9E50 8002EA50 4481A000 */ mtc1 $at, $f20
/* 9E54 8002EA54 46161082 */ mul.s $f2, $f2, $f22
/* 9E58 8002EA58 00000000 */ nop
/* 9E5C 8002EA5C A6000006 */ sh $zero, 0x6($s0)
/* 9E60 8002EA60 E6180098 */ swc1 $f24, 0x98($s0)
/* 9E64 8002EA64 E618009C */ swc1 $f24, 0x9C($s0)
/* 9E68 8002EA68 46040000 */ add.s $f0, $f0, $f4
/* 9E6C 8002EA6C E6080048 */ swc1 $f8, 0x48($s0)
/* 9E70 8002EA70 E6060050 */ swc1 $f6, 0x50($s0)
/* 9E74 8002EA74 E600004C */ swc1 $f0, 0x4C($s0)
/* 9E78 8002EA78 46141683 */ div.s $f26, $f2, $f20
/* 9E7C 8002EA7C 0C00A84B */ jal sin_rad
/* 9E80 8002EA80 4600D306 */ mov.s $f12, $f26
/* 9E84 8002EA84 46000786 */ mov.s $f30, $f0
/* 9E88 8002EA88 0C00A864 */ jal cos_rad
/* 9E8C 8002EA8C 4600D306 */ mov.s $f12, $f26
/* 9E90 8002EA90 46000306 */ mov.s $f12, $f0
/* 9E94 8002EA94 46186202 */ mul.s $f8, $f12, $f24
/* 9E98 8002EA98 00000000 */ nop
/* 9E9C 8002EA9C 4600C087 */ neg.s $f2, $f24
/* 9EA0 8002EAA0 4602F082 */ mul.s $f2, $f30, $f2
/* 9EA4 8002EAA4 00000000 */ nop
/* 9EA8 8002EAA8 C61C0078 */ lwc1 $f28, 0x78($s0)
/* 9EAC 8002EAAC 461EE102 */ mul.s $f4, $f28, $f30
/* 9EB0 8002EAB0 00000000 */ nop
/* 9EB4 8002EAB4 460CE182 */ mul.s $f6, $f28, $f12
/* 9EB8 8002EAB8 00000000 */ nop
/* 9EBC 8002EABC C6000070 */ lwc1 $f0, 0x70($s0)
/* 9EC0 8002EAC0 46160002 */ mul.s $f0, $f0, $f22
/* 9EC4 8002EAC4 00000000 */ nop
/* 9EC8 8002EAC8 4600C286 */ mov.s $f10, $f24
/* 9ECC 8002EACC 46005586 */ mov.s $f22, $f10
/* 9ED0 8002EAD0 46044600 */ add.s $f24, $f8, $f4
/* 9ED4 8002EAD4 46140683 */ div.s $f26, $f0, $f20
/* 9ED8 8002EAD8 4600D306 */ mov.s $f12, $f26
/* 9EDC 8002EADC 0C00A84B */ jal sin_rad
/* 9EE0 8002EAE0 46061700 */ add.s $f28, $f2, $f6
/* 9EE4 8002EAE4 46000786 */ mov.s $f30, $f0
/* 9EE8 8002EAE8 0C00A864 */ jal cos_rad
/* 9EEC 8002EAEC 4600D306 */ mov.s $f12, $f26
/* 9EF0 8002EAF0 46000306 */ mov.s $f12, $f0
/* 9EF4 8002EAF4 46166202 */ mul.s $f8, $f12, $f22
/* 9EF8 8002EAF8 00000000 */ nop
/* 9EFC 8002EAFC 4616F182 */ mul.s $f6, $f30, $f22
/* 9F00 8002EB00 00000000 */ nop
/* 9F04 8002EB04 461EE102 */ mul.s $f4, $f28, $f30
/* 9F08 8002EB08 00000000 */ nop
/* 9F0C 8002EB0C 460CE082 */ mul.s $f2, $f28, $f12
/* 9F10 8002EB10 00000000 */ nop
/* 9F14 8002EB14 C600004C */ lwc1 $f0, 0x4C($s0)
/* 9F18 8002EB18 46180400 */ add.s $f16, $f0, $f24
/* 9F1C 8002EB1C 46044281 */ sub.s $f10, $f8, $f4
/* 9F20 8002EB20 46023080 */ add.s $f2, $f6, $f2
/* 9F24 8002EB24 C6000048 */ lwc1 $f0, 0x48($s0)
/* 9F28 8002EB28 460A0100 */ add.s $f4, $f0, $f10
/* 9F2C 8002EB2C C6000050 */ lwc1 $f0, 0x50($s0)
/* 9F30 8002EB30 46020200 */ add.s $f8, $f0, $f2
/* 9F34 8002EB34 E6100040 */ swc1 $f16, 0x40($s0)
/* 9F38 8002EB38 E604003C */ swc1 $f4, 0x3C($s0)
/* 9F3C 8002EB3C E6080044 */ swc1 $f8, 0x44($s0)
.LJP_8002EB40:
/* 9F40 8002EB40 C6020054 */ lwc1 $f2, 0x54($s0)
/* 9F44 8002EB44 C6000048 */ lwc1 $f0, 0x48($s0)
/* 9F48 8002EB48 46001101 */ sub.s $f4, $f2, $f0
/* 9F4C 8002EB4C C602005C */ lwc1 $f2, 0x5C($s0)
/* 9F50 8002EB50 C6000050 */ lwc1 $f0, 0x50($s0)
/* 9F54 8002EB54 46001201 */ sub.s $f8, $f2, $f0
/* 9F58 8002EB58 C6000058 */ lwc1 $f0, 0x58($s0)
/* 9F5C 8002EB5C C602007C */ lwc1 $f2, 0x7C($s0)
/* 9F60 8002EB60 46020000 */ add.s $f0, $f0, $f2
/* 9F64 8002EB64 C602004C */ lwc1 $f2, 0x4C($s0)
/* 9F68 8002EB68 46020401 */ sub.s $f16, $f0, $f2
/* 9F6C 8002EB6C 3C014180 */ lui $at, (0x41800000 >> 16)
/* 9F70 8002EB70 44811000 */ mtc1 $at, $f2
/* 9F74 8002EB74 46002005 */ abs.s $f0, $f4
/* 9F78 8002EB78 4600103C */ c.lt.s $f2, $f0
/* 9F7C 8002EB7C 00000000 */ nop
/* 9F80 8002EB80 4502000C */ bc1fl .LJP_8002EBB4
/* 9F84 8002EB84 46008005 */ abs.s $f0, $f16
/* 9F88 8002EB88 44800000 */ mtc1 $zero, $f0
/* 9F8C 8002EB8C 00000000 */ nop
/* 9F90 8002EB90 4600203C */ c.lt.s $f4, $f0
/* 9F94 8002EB94 00000000 */ nop
/* 9F98 8002EB98 45000005 */ bc1f .LJP_8002EBB0
/* 9F9C 8002EB9C 46001106 */ mov.s $f4, $f2
/* 9FA0 8002EBA0 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* 9FA4 8002EBA4 44812000 */ mtc1 $at, $f4
/* 9FA8 8002EBA8 3C014180 */ lui $at, (0x41800000 >> 16)
/* 9FAC 8002EBAC 44811000 */ mtc1 $at, $f2
.LJP_8002EBB0:
/* 9FB0 8002EBB0 46008005 */ abs.s $f0, $f16
.LJP_8002EBB4:
/* 9FB4 8002EBB4 4600103C */ c.lt.s $f2, $f0
/* 9FB8 8002EBB8 00000000 */ nop
/* 9FBC 8002EBBC 45000009 */ bc1f .LJP_8002EBE4
/* 9FC0 8002EBC0 00000000 */ nop
/* 9FC4 8002EBC4 44800000 */ mtc1 $zero, $f0
/* 9FC8 8002EBC8 00000000 */ nop
/* 9FCC 8002EBCC 4600803C */ c.lt.s $f16, $f0
/* 9FD0 8002EBD0 00000000 */ nop
/* 9FD4 8002EBD4 45000003 */ bc1f .LJP_8002EBE4
/* 9FD8 8002EBD8 46001406 */ mov.s $f16, $f2
/* 9FDC 8002EBDC 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* 9FE0 8002EBE0 44818000 */ mtc1 $at, $f16
.LJP_8002EBE4:
/* 9FE4 8002EBE4 3C014180 */ lui $at, (0x41800000 >> 16)
/* 9FE8 8002EBE8 44811000 */ mtc1 $at, $f2
/* 9FEC 8002EBEC 46004005 */ abs.s $f0, $f8
/* 9FF0 8002EBF0 4600103C */ c.lt.s $f2, $f0
/* 9FF4 8002EBF4 00000000 */ nop
/* 9FF8 8002EBF8 45000009 */ bc1f .LJP_8002EC20
/* 9FFC 8002EBFC 00000000 */ nop
/* A000 8002EC00 44800000 */ mtc1 $zero, $f0
/* A004 8002EC04 00000000 */ nop
/* A008 8002EC08 4600403C */ c.lt.s $f8, $f0
/* A00C 8002EC0C 00000000 */ nop
/* A010 8002EC10 45000003 */ bc1f .LJP_8002EC20
/* A014 8002EC14 46001206 */ mov.s $f8, $f2
/* A018 8002EC18 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* A01C 8002EC1C 44814000 */ mtc1 $at, $f8
.LJP_8002EC20:
/* A020 8002EC20 3C013F00 */ lui $at, (0x3F000000 >> 16)
/* A024 8002EC24 4481A000 */ mtc1 $at, $f20
/* A028 8002EC28 00000000 */ nop
/* A02C 8002EC2C 46142082 */ mul.s $f2, $f4, $f20
/* A030 8002EC30 00000000 */ nop
/* A034 8002EC34 46148182 */ mul.s $f6, $f16, $f20
/* A038 8002EC38 00000000 */ nop
/* A03C 8002EC3C 46144202 */ mul.s $f8, $f8, $f20
/* A040 8002EC40 00000000 */ nop
/* A044 8002EC44 C6000074 */ lwc1 $f0, 0x74($s0)
/* A048 8002EC48 3C0140C9 */ lui $at, (0x40C90FD0 >> 16)
/* A04C 8002EC4C 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF)
/* A050 8002EC50 4481B000 */ mtc1 $at, $f22
/* A054 8002EC54 00000000 */ nop
/* A058 8002EC58 46160002 */ mul.s $f0, $f0, $f22
/* A05C 8002EC5C 00000000 */ nop
/* A060 8002EC60 4480C000 */ mtc1 $zero, $f24
/* A064 8002EC64 C6040048 */ lwc1 $f4, 0x48($s0)
/* A068 8002EC68 3C0143B4 */ lui $at, (0x43B40000 >> 16)
/* A06C 8002EC6C 44819000 */ mtc1 $at, $f18
/* A070 8002EC70 46022100 */ add.s $f4, $f4, $f2
/* A074 8002EC74 C602004C */ lwc1 $f2, 0x4C($s0)
/* A078 8002EC78 46120683 */ div.s $f26, $f0, $f18
/* A07C 8002EC7C 46061080 */ add.s $f2, $f2, $f6
/* A080 8002EC80 C6000050 */ lwc1 $f0, 0x50($s0)
/* A084 8002EC84 4600D306 */ mov.s $f12, $f26
/* A088 8002EC88 46080000 */ add.s $f0, $f0, $f8
/* A08C 8002EC8C E6040048 */ swc1 $f4, 0x48($s0)
/* A090 8002EC90 E602004C */ swc1 $f2, 0x4C($s0)
/* A094 8002EC94 0C00A84B */ jal sin_rad
/* A098 8002EC98 E6000050 */ swc1 $f0, 0x50($s0)
/* A09C 8002EC9C 46000786 */ mov.s $f30, $f0
/* A0A0 8002ECA0 0C00A864 */ jal cos_rad
/* A0A4 8002ECA4 4600D306 */ mov.s $f12, $f26
/* A0A8 8002ECA8 46000306 */ mov.s $f12, $f0
/* A0AC 8002ECAC 46186202 */ mul.s $f8, $f12, $f24
/* A0B0 8002ECB0 00000000 */ nop
/* A0B4 8002ECB4 4600C087 */ neg.s $f2, $f24
/* A0B8 8002ECB8 4602F082 */ mul.s $f2, $f30, $f2
/* A0BC 8002ECBC 00000000 */ nop
/* A0C0 8002ECC0 C61C0078 */ lwc1 $f28, 0x78($s0)
/* A0C4 8002ECC4 461EE102 */ mul.s $f4, $f28, $f30
/* A0C8 8002ECC8 00000000 */ nop
/* A0CC 8002ECCC 460CE182 */ mul.s $f6, $f28, $f12
/* A0D0 8002ECD0 00000000 */ nop
/* A0D4 8002ECD4 C6000070 */ lwc1 $f0, 0x70($s0)
/* A0D8 8002ECD8 46160002 */ mul.s $f0, $f0, $f22
/* A0DC 8002ECDC 00000000 */ nop
/* A0E0 8002ECE0 4600C286 */ mov.s $f10, $f24
/* A0E4 8002ECE4 3C0143B4 */ lui $at, (0x43B40000 >> 16)
/* A0E8 8002ECE8 44819000 */ mtc1 $at, $f18
/* A0EC 8002ECEC 46005586 */ mov.s $f22, $f10
/* A0F0 8002ECF0 46044600 */ add.s $f24, $f8, $f4
/* A0F4 8002ECF4 46120683 */ div.s $f26, $f0, $f18
/* A0F8 8002ECF8 4600D306 */ mov.s $f12, $f26
/* A0FC 8002ECFC 0C00A84B */ jal sin_rad
/* A100 8002ED00 46061700 */ add.s $f28, $f2, $f6
/* A104 8002ED04 46000786 */ mov.s $f30, $f0
/* A108 8002ED08 0C00A864 */ jal cos_rad
/* A10C 8002ED0C 4600D306 */ mov.s $f12, $f26
/* A110 8002ED10 46000306 */ mov.s $f12, $f0
/* A114 8002ED14 461EE002 */ mul.s $f0, $f28, $f30
/* A118 8002ED18 00000000 */ nop
/* A11C 8002ED1C C602004C */ lwc1 $f2, 0x4C($s0)
/* A120 8002ED20 46181400 */ add.s $f16, $f2, $f24
/* A124 8002ED24 C6020040 */ lwc1 $f2, 0x40($s0)
/* A128 8002ED28 46028081 */ sub.s $f2, $f16, $f2
/* A12C 8002ED2C 46141402 */ mul.s $f16, $f2, $f20
/* A130 8002ED30 00000000 */ nop
/* A134 8002ED34 46166082 */ mul.s $f2, $f12, $f22
/* A138 8002ED38 00000000 */ nop
/* A13C 8002ED3C 46001281 */ sub.s $f10, $f2, $f0
/* A140 8002ED40 4616F082 */ mul.s $f2, $f30, $f22
/* A144 8002ED44 00000000 */ nop
/* A148 8002ED48 C6000048 */ lwc1 $f0, 0x48($s0)
/* A14C 8002ED4C 460A0100 */ add.s $f4, $f0, $f10
/* A150 8002ED50 C600003C */ lwc1 $f0, 0x3C($s0)
/* A154 8002ED54 46002001 */ sub.s $f0, $f4, $f0
/* A158 8002ED58 46140102 */ mul.s $f4, $f0, $f20
/* A15C 8002ED5C 00000000 */ nop
/* A160 8002ED60 460CE002 */ mul.s $f0, $f28, $f12
/* A164 8002ED64 00000000 */ nop
/* A168 8002ED68 46001080 */ add.s $f2, $f2, $f0
/* A16C 8002ED6C C6000050 */ lwc1 $f0, 0x50($s0)
/* A170 8002ED70 46020200 */ add.s $f8, $f0, $f2
/* A174 8002ED74 C6000044 */ lwc1 $f0, 0x44($s0)
/* A178 8002ED78 46004001 */ sub.s $f0, $f8, $f0
/* A17C 8002ED7C 46140202 */ mul.s $f8, $f0, $f20
/* A180 8002ED80 00000000 */ nop
/* A184 8002ED84 3C014180 */ lui $at, (0x41800000 >> 16)
/* A188 8002ED88 44811000 */ mtc1 $at, $f2
/* A18C 8002ED8C 46002005 */ abs.s $f0, $f4
/* A190 8002ED90 4600103C */ c.lt.s $f2, $f0
/* A194 8002ED94 00000000 */ nop
/* A198 8002ED98 4502000A */ bc1fl .LJP_8002EDC4
/* A19C 8002ED9C 46008005 */ abs.s $f0, $f16
/* A1A0 8002EDA0 4616203C */ c.lt.s $f4, $f22
/* A1A4 8002EDA4 00000000 */ nop
/* A1A8 8002EDA8 45000005 */ bc1f .LJP_8002EDC0
/* A1AC 8002EDAC 46001106 */ mov.s $f4, $f2
/* A1B0 8002EDB0 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* A1B4 8002EDB4 44812000 */ mtc1 $at, $f4
/* A1B8 8002EDB8 3C014180 */ lui $at, (0x41800000 >> 16)
/* A1BC 8002EDBC 44811000 */ mtc1 $at, $f2
.LJP_8002EDC0:
/* A1C0 8002EDC0 46008005 */ abs.s $f0, $f16
.LJP_8002EDC4:
/* A1C4 8002EDC4 4600103C */ c.lt.s $f2, $f0
/* A1C8 8002EDC8 00000000 */ nop
/* A1CC 8002EDCC 45000009 */ bc1f .LJP_8002EDF4
/* A1D0 8002EDD0 00000000 */ nop
/* A1D4 8002EDD4 44800000 */ mtc1 $zero, $f0
/* A1D8 8002EDD8 00000000 */ nop
/* A1DC 8002EDDC 4600803C */ c.lt.s $f16, $f0
/* A1E0 8002EDE0 00000000 */ nop
/* A1E4 8002EDE4 45000003 */ bc1f .LJP_8002EDF4
/* A1E8 8002EDE8 46001406 */ mov.s $f16, $f2
/* A1EC 8002EDEC 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* A1F0 8002EDF0 44818000 */ mtc1 $at, $f16
.LJP_8002EDF4:
/* A1F4 8002EDF4 3C014180 */ lui $at, (0x41800000 >> 16)
/* A1F8 8002EDF8 44811000 */ mtc1 $at, $f2
/* A1FC 8002EDFC 46004005 */ abs.s $f0, $f8
/* A200 8002EE00 4600103C */ c.lt.s $f2, $f0
/* A204 8002EE04 00000000 */ nop
/* A208 8002EE08 45000009 */ bc1f .LJP_8002EE30
/* A20C 8002EE0C 00000000 */ nop
/* A210 8002EE10 44800000 */ mtc1 $zero, $f0
/* A214 8002EE14 00000000 */ nop
/* A218 8002EE18 4600403C */ c.lt.s $f8, $f0
/* A21C 8002EE1C 00000000 */ nop
/* A220 8002EE20 45000003 */ bc1f .LJP_8002EE30
/* A224 8002EE24 46001206 */ mov.s $f8, $f2
/* A228 8002EE28 3C01C180 */ lui $at, (0xC1800000 >> 16)
/* A22C 8002EE2C 44814000 */ mtc1 $at, $f8
.LJP_8002EE30:
/* A230 8002EE30 C600003C */ lwc1 $f0, 0x3C($s0)
/* A234 8002EE34 46040000 */ add.s $f0, $f0, $f4
/* A238 8002EE38 C60E0044 */ lwc1 $f14, 0x44($s0)
/* A23C 8002EE3C 8E060048 */ lw $a2, 0x48($s0)
/* A240 8002EE40 46087380 */ add.s $f14, $f14, $f8
/* A244 8002EE44 C6020040 */ lwc1 $f2, 0x40($s0)
/* A248 8002EE48 8E070050 */ lw $a3, 0x50($s0)
/* A24C 8002EE4C 46101080 */ add.s $f2, $f2, $f16
/* A250 8002EE50 E600003C */ swc1 $f0, 0x3C($s0)
/* A254 8002EE54 46000306 */ mov.s $f12, $f0
/* A258 8002EE58 E6020040 */ swc1 $f2, 0x40($s0)
/* A25C 8002EE5C 0C00A710 */ jal atan2
/* A260 8002EE60 E60E0044 */ swc1 $f14, 0x44($s0)
/* A264 8002EE64 C6040048 */ lwc1 $f4, 0x48($s0)
/* A268 8002EE68 4480A000 */ mtc1 $zero, $f20
/* A26C 8002EE6C C602003C */ lwc1 $f2, 0x3C($s0)
/* A270 8002EE70 E600006C */ swc1 $f0, 0x6C($s0)
/* A274 8002EE74 46022581 */ sub.s $f22, $f4, $f2
/* A278 8002EE78 C6040050 */ lwc1 $f4, 0x50($s0)
/* A27C 8002EE7C C6020044 */ lwc1 $f2, 0x44($s0)
/* A280 8002EE80 4600A306 */ mov.s $f12, $f20
/* A284 8002EE84 46022701 */ sub.s $f28, $f4, $f2
/* A288 8002EE88 C604004C */ lwc1 $f4, 0x4C($s0)
/* A28C 8002EE8C C6020040 */ lwc1 $f2, 0x40($s0)
/* A290 8002EE90 4406B000 */ mfc1 $a2, $f22
/* A294 8002EE94 46022601 */ sub.s $f24, $f4, $f2
/* A298 8002EE98 4407E000 */ mfc1 $a3, $f28
/* A29C 8002EE9C 0C00A710 */ jal atan2
/* A2A0 8002EEA0 4600A386 */ mov.s $f14, $f20
/* A2A4 8002EEA4 4616B102 */ mul.s $f4, $f22, $f22
/* A2A8 8002EEA8 00000000 */ nop
/* A2AC 8002EEAC 461CE082 */ mul.s $f2, $f28, $f28
/* A2B0 8002EEB0 00000000 */ nop
/* A2B4 8002EEB4 46022300 */ add.s $f12, $f4, $f2
/* A2B8 8002EEB8 46000007 */ neg.s $f0, $f0
/* A2BC 8002EEBC E6000090 */ swc1 $f0, 0x90($s0)
/* A2C0 8002EEC0 46006004 */ sqrt.s $f0, $f12
/* A2C4 8002EEC4 46000032 */ c.eq.s $f0, $f0
/* A2C8 8002EEC8 00000000 */ nop
/* A2CC 8002EECC 45030004 */ bc1tl .LJP_8002EEE0
/* A2D0 8002EED0 4600A306 */ mov.s $f12, $f20
/* A2D4 8002EED4 0C0187B0 */ jal sqrtf
/* A2D8 8002EED8 00000000 */ nop
/* A2DC 8002EEDC 4600A306 */ mov.s $f12, $f20
.LJP_8002EEE0:
/* A2E0 8002EEE0 46000007 */ neg.s $f0, $f0
/* A2E4 8002EEE4 4406C000 */ mfc1 $a2, $f24
/* A2E8 8002EEE8 44070000 */ mfc1 $a3, $f0
/* A2EC 8002EEEC 0C00A710 */ jal atan2
/* A2F0 8002EEF0 46006386 */ mov.s $f14, $f12
/* A2F4 8002EEF4 E6000094 */ swc1 $f0, 0x94($s0)
/* A2F8 8002EEF8 8FBF0014 */ lw $ra, 0x14($sp)
/* A2FC 8002EEFC 8FB00010 */ lw $s0, 0x10($sp)
/* A300 8002EF00 D7BE0040 */ ldc1 $f30, 0x40($sp)
/* A304 8002EF04 D7BC0038 */ ldc1 $f28, 0x38($sp)
/* A308 8002EF08 D7BA0030 */ ldc1 $f26, 0x30($sp)
/* A30C 8002EF0C D7B80028 */ ldc1 $f24, 0x28($sp)
/* A310 8002EF10 D7B60020 */ ldc1 $f22, 0x20($sp)
/* A314 8002EF14 D7B40018 */ ldc1 $f20, 0x18($sp)
/* A318 8002EF18 03E00008 */ jr $ra
/* A31C 8002EF1C 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -1,372 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel update_camera_mode_2
/* A0F8 8002ECF8 27BDFFB8 */ addiu $sp, $sp, -0x48
/* A0FC 8002ECFC AFB00010 */ sw $s0, 0x10($sp)
/* A100 8002ED00 0080802D */ daddu $s0, $a0, $zero
/* A104 8002ED04 AFBF0014 */ sw $ra, 0x14($sp)
/* A108 8002ED08 F7BE0040 */ sdc1 $f30, 0x40($sp)
/* A10C 8002ED0C F7BC0038 */ sdc1 $f28, 0x38($sp)
/* A110 8002ED10 F7BA0030 */ sdc1 $f26, 0x30($sp)
/* A114 8002ED14 F7B80028 */ sdc1 $f24, 0x28($sp)
/* A118 8002ED18 F7B60020 */ sdc1 $f22, 0x20($sp)
/* A11C 8002ED1C F7B40018 */ sdc1 $f20, 0x18($sp)
/* A120 8002ED20 86020020 */ lh $v0, 0x20($s0)
/* A124 8002ED24 3C01800A */ lui $at, %hi(D_8009A5EC)
/* A128 8002ED28 C426A5EC */ lwc1 $f6, %lo(D_8009A5EC)($at)
/* A12C 8002ED2C 86030022 */ lh $v1, 0x22($s0)
/* A130 8002ED30 44822000 */ mtc1 $v0, $f4
/* A134 8002ED34 00000000 */ nop
/* A138 8002ED38 46802120 */ cvt.s.w $f4, $f4
/* A13C 8002ED3C 44831000 */ mtc1 $v1, $f2
/* A140 8002ED40 00000000 */ nop
/* A144 8002ED44 468010A0 */ cvt.s.w $f2, $f2
/* A148 8002ED48 46062102 */ mul.s $f4, $f4, $f6
/* A14C 8002ED4C 00000000 */ nop
/* A150 8002ED50 8602001E */ lh $v0, 0x1e($s0)
/* A154 8002ED54 86030006 */ lh $v1, 6($s0)
/* A158 8002ED58 44820000 */ mtc1 $v0, $f0
/* A15C 8002ED5C 00000000 */ nop
/* A160 8002ED60 46800020 */ cvt.s.w $f0, $f0
/* A164 8002ED64 8602001C */ lh $v0, 0x1c($s0)
/* A168 8002ED68 46061082 */ mul.s $f2, $f2, $f6
/* A16C 8002ED6C 00000000 */ nop
/* A170 8002ED70 E6000070 */ swc1 $f0, 0x70($s0)
/* A174 8002ED74 46000186 */ mov.s $f6, $f0
/* A178 8002ED78 E6060084 */ swc1 $f6, 0x84($s0)
/* A17C 8002ED7C 44820000 */ mtc1 $v0, $f0
/* A180 8002ED80 00000000 */ nop
/* A184 8002ED84 46800020 */ cvt.s.w $f0, $f0
/* A188 8002ED88 E6000074 */ swc1 $f0, 0x74($s0)
/* A18C 8002ED8C E6040078 */ swc1 $f4, 0x78($s0)
/* A190 8002ED90 10600047 */ beqz $v1, .L8002EEB0
/* A194 8002ED94 E602007C */ swc1 $f2, 0x7c($s0)
/* A198 8002ED98 46000086 */ mov.s $f2, $f0
/* A19C 8002ED9C 4480C000 */ mtc1 $zero, $f24
/* A1A0 8002EDA0 3C0140C9 */ lui $at, 0x40c9
/* A1A4 8002EDA4 34210FD0 */ ori $at, $at, 0xfd0
/* A1A8 8002EDA8 4481B000 */ mtc1 $at, $f22
/* A1AC 8002EDAC C6080054 */ lwc1 $f8, 0x54($s0)
/* A1B0 8002EDB0 C6000058 */ lwc1 $f0, 0x58($s0)
/* A1B4 8002EDB4 C604007C */ lwc1 $f4, 0x7c($s0)
/* A1B8 8002EDB8 C606005C */ lwc1 $f6, 0x5c($s0)
/* A1BC 8002EDBC 3C0143B4 */ lui $at, 0x43b4
/* A1C0 8002EDC0 4481A000 */ mtc1 $at, $f20
/* A1C4 8002EDC4 46161082 */ mul.s $f2, $f2, $f22
/* A1C8 8002EDC8 00000000 */ nop
/* A1CC 8002EDCC A6000006 */ sh $zero, 6($s0)
/* A1D0 8002EDD0 E6180098 */ swc1 $f24, 0x98($s0)
/* A1D4 8002EDD4 E618009C */ swc1 $f24, 0x9c($s0)
/* A1D8 8002EDD8 46040000 */ add.s $f0, $f0, $f4
/* A1DC 8002EDDC E6080048 */ swc1 $f8, 0x48($s0)
/* A1E0 8002EDE0 E6060050 */ swc1 $f6, 0x50($s0)
/* A1E4 8002EDE4 E600004C */ swc1 $f0, 0x4c($s0)
/* A1E8 8002EDE8 46141683 */ div.s $f26, $f2, $f20
/* A1EC 8002EDEC 0C00A85B */ jal sin_rad
/* A1F0 8002EDF0 4600D306 */ mov.s $f12, $f26
/* A1F4 8002EDF4 46000786 */ mov.s $f30, $f0
/* A1F8 8002EDF8 0C00A874 */ jal cos_rad
/* A1FC 8002EDFC 4600D306 */ mov.s $f12, $f26
/* A200 8002EE00 46000306 */ mov.s $f12, $f0
/* A204 8002EE04 46186202 */ mul.s $f8, $f12, $f24
/* A208 8002EE08 00000000 */ nop
/* A20C 8002EE0C 4600C087 */ neg.s $f2, $f24
/* A210 8002EE10 4602F082 */ mul.s $f2, $f30, $f2
/* A214 8002EE14 00000000 */ nop
/* A218 8002EE18 C61C0078 */ lwc1 $f28, 0x78($s0)
/* A21C 8002EE1C 461EE102 */ mul.s $f4, $f28, $f30
/* A220 8002EE20 00000000 */ nop
/* A224 8002EE24 460CE182 */ mul.s $f6, $f28, $f12
/* A228 8002EE28 00000000 */ nop
/* A22C 8002EE2C C6000070 */ lwc1 $f0, 0x70($s0)
/* A230 8002EE30 46160002 */ mul.s $f0, $f0, $f22
/* A234 8002EE34 00000000 */ nop
/* A238 8002EE38 4600C286 */ mov.s $f10, $f24
/* A23C 8002EE3C 46005586 */ mov.s $f22, $f10
/* A240 8002EE40 46044600 */ add.s $f24, $f8, $f4
/* A244 8002EE44 46140683 */ div.s $f26, $f0, $f20
/* A248 8002EE48 4600D306 */ mov.s $f12, $f26
/* A24C 8002EE4C 0C00A85B */ jal sin_rad
/* A250 8002EE50 46061700 */ add.s $f28, $f2, $f6
/* A254 8002EE54 46000786 */ mov.s $f30, $f0
/* A258 8002EE58 0C00A874 */ jal cos_rad
/* A25C 8002EE5C 4600D306 */ mov.s $f12, $f26
/* A260 8002EE60 46000306 */ mov.s $f12, $f0
/* A264 8002EE64 46166202 */ mul.s $f8, $f12, $f22
/* A268 8002EE68 00000000 */ nop
/* A26C 8002EE6C 4616F182 */ mul.s $f6, $f30, $f22
/* A270 8002EE70 00000000 */ nop
/* A274 8002EE74 461EE102 */ mul.s $f4, $f28, $f30
/* A278 8002EE78 00000000 */ nop
/* A27C 8002EE7C 460CE082 */ mul.s $f2, $f28, $f12
/* A280 8002EE80 00000000 */ nop
/* A284 8002EE84 C600004C */ lwc1 $f0, 0x4c($s0)
/* A288 8002EE88 46180400 */ add.s $f16, $f0, $f24
/* A28C 8002EE8C 46044281 */ sub.s $f10, $f8, $f4
/* A290 8002EE90 46023080 */ add.s $f2, $f6, $f2
/* A294 8002EE94 C6000048 */ lwc1 $f0, 0x48($s0)
/* A298 8002EE98 460A0100 */ add.s $f4, $f0, $f10
/* A29C 8002EE9C C6000050 */ lwc1 $f0, 0x50($s0)
/* A2A0 8002EEA0 46020200 */ add.s $f8, $f0, $f2
/* A2A4 8002EEA4 E6100040 */ swc1 $f16, 0x40($s0)
/* A2A8 8002EEA8 E604003C */ swc1 $f4, 0x3c($s0)
/* A2AC 8002EEAC E6080044 */ swc1 $f8, 0x44($s0)
.L8002EEB0:
/* A2B0 8002EEB0 C6020054 */ lwc1 $f2, 0x54($s0)
/* A2B4 8002EEB4 C6000048 */ lwc1 $f0, 0x48($s0)
/* A2B8 8002EEB8 46001101 */ sub.s $f4, $f2, $f0
/* A2BC 8002EEBC C602005C */ lwc1 $f2, 0x5c($s0)
/* A2C0 8002EEC0 C6000050 */ lwc1 $f0, 0x50($s0)
/* A2C4 8002EEC4 46001201 */ sub.s $f8, $f2, $f0
/* A2C8 8002EEC8 C6000058 */ lwc1 $f0, 0x58($s0)
/* A2CC 8002EECC C602007C */ lwc1 $f2, 0x7c($s0)
/* A2D0 8002EED0 46020000 */ add.s $f0, $f0, $f2
/* A2D4 8002EED4 C602004C */ lwc1 $f2, 0x4c($s0)
/* A2D8 8002EED8 46020401 */ sub.s $f16, $f0, $f2
/* A2DC 8002EEDC 3C014180 */ lui $at, 0x4180
/* A2E0 8002EEE0 44811000 */ mtc1 $at, $f2
/* A2E4 8002EEE4 46002005 */ abs.s $f0, $f4
/* A2E8 8002EEE8 4600103C */ c.lt.s $f2, $f0
/* A2EC 8002EEEC 00000000 */ nop
/* A2F0 8002EEF0 4502000C */ bc1fl .L8002EF24
/* A2F4 8002EEF4 46008005 */ abs.s $f0, $f16
/* A2F8 8002EEF8 44800000 */ mtc1 $zero, $f0
/* A2FC 8002EEFC 00000000 */ nop
/* A300 8002EF00 4600203C */ c.lt.s $f4, $f0
/* A304 8002EF04 00000000 */ nop
/* A308 8002EF08 45000005 */ bc1f .L8002EF20
/* A30C 8002EF0C 46001106 */ mov.s $f4, $f2
/* A310 8002EF10 3C01C180 */ lui $at, 0xc180
/* A314 8002EF14 44812000 */ mtc1 $at, $f4
/* A318 8002EF18 3C014180 */ lui $at, 0x4180
/* A31C 8002EF1C 44811000 */ mtc1 $at, $f2
.L8002EF20:
/* A320 8002EF20 46008005 */ abs.s $f0, $f16
.L8002EF24:
/* A324 8002EF24 4600103C */ c.lt.s $f2, $f0
/* A328 8002EF28 00000000 */ nop
/* A32C 8002EF2C 45000009 */ bc1f .L8002EF54
/* A330 8002EF30 00000000 */ nop
/* A334 8002EF34 44800000 */ mtc1 $zero, $f0
/* A338 8002EF38 00000000 */ nop
/* A33C 8002EF3C 4600803C */ c.lt.s $f16, $f0
/* A340 8002EF40 00000000 */ nop
/* A344 8002EF44 45000003 */ bc1f .L8002EF54
/* A348 8002EF48 46001406 */ mov.s $f16, $f2
/* A34C 8002EF4C 3C01C180 */ lui $at, 0xc180
/* A350 8002EF50 44818000 */ mtc1 $at, $f16
.L8002EF54:
/* A354 8002EF54 3C014180 */ lui $at, 0x4180
/* A358 8002EF58 44811000 */ mtc1 $at, $f2
/* A35C 8002EF5C 46004005 */ abs.s $f0, $f8
/* A360 8002EF60 4600103C */ c.lt.s $f2, $f0
/* A364 8002EF64 00000000 */ nop
/* A368 8002EF68 45000009 */ bc1f .L8002EF90
/* A36C 8002EF6C 00000000 */ nop
/* A370 8002EF70 44800000 */ mtc1 $zero, $f0
/* A374 8002EF74 00000000 */ nop
/* A378 8002EF78 4600403C */ c.lt.s $f8, $f0
/* A37C 8002EF7C 00000000 */ nop
/* A380 8002EF80 45000003 */ bc1f .L8002EF90
/* A384 8002EF84 46001206 */ mov.s $f8, $f2
/* A388 8002EF88 3C01C180 */ lui $at, 0xc180
/* A38C 8002EF8C 44814000 */ mtc1 $at, $f8
.L8002EF90:
/* A390 8002EF90 3C013F00 */ lui $at, 0x3f00
/* A394 8002EF94 4481A000 */ mtc1 $at, $f20
/* A398 8002EF98 00000000 */ nop
/* A39C 8002EF9C 46142082 */ mul.s $f2, $f4, $f20
/* A3A0 8002EFA0 00000000 */ nop
/* A3A4 8002EFA4 46148182 */ mul.s $f6, $f16, $f20
/* A3A8 8002EFA8 00000000 */ nop
/* A3AC 8002EFAC 46144202 */ mul.s $f8, $f8, $f20
/* A3B0 8002EFB0 00000000 */ nop
/* A3B4 8002EFB4 C6000074 */ lwc1 $f0, 0x74($s0)
/* A3B8 8002EFB8 3C0140C9 */ lui $at, 0x40c9
/* A3BC 8002EFBC 34210FD0 */ ori $at, $at, 0xfd0
/* A3C0 8002EFC0 4481B000 */ mtc1 $at, $f22
/* A3C4 8002EFC4 00000000 */ nop
/* A3C8 8002EFC8 46160002 */ mul.s $f0, $f0, $f22
/* A3CC 8002EFCC 00000000 */ nop
/* A3D0 8002EFD0 4480C000 */ mtc1 $zero, $f24
/* A3D4 8002EFD4 C6040048 */ lwc1 $f4, 0x48($s0)
/* A3D8 8002EFD8 3C0143B4 */ lui $at, 0x43b4
/* A3DC 8002EFDC 44819000 */ mtc1 $at, $f18
/* A3E0 8002EFE0 46022100 */ add.s $f4, $f4, $f2
/* A3E4 8002EFE4 C602004C */ lwc1 $f2, 0x4c($s0)
/* A3E8 8002EFE8 46120683 */ div.s $f26, $f0, $f18
/* A3EC 8002EFEC 46061080 */ add.s $f2, $f2, $f6
/* A3F0 8002EFF0 C6000050 */ lwc1 $f0, 0x50($s0)
/* A3F4 8002EFF4 4600D306 */ mov.s $f12, $f26
/* A3F8 8002EFF8 46080000 */ add.s $f0, $f0, $f8
/* A3FC 8002EFFC E6040048 */ swc1 $f4, 0x48($s0)
/* A400 8002F000 E602004C */ swc1 $f2, 0x4c($s0)
/* A404 8002F004 0C00A85B */ jal sin_rad
/* A408 8002F008 E6000050 */ swc1 $f0, 0x50($s0)
/* A40C 8002F00C 46000786 */ mov.s $f30, $f0
/* A410 8002F010 0C00A874 */ jal cos_rad
/* A414 8002F014 4600D306 */ mov.s $f12, $f26
/* A418 8002F018 46000306 */ mov.s $f12, $f0
/* A41C 8002F01C 46186202 */ mul.s $f8, $f12, $f24
/* A420 8002F020 00000000 */ nop
/* A424 8002F024 4600C087 */ neg.s $f2, $f24
/* A428 8002F028 4602F082 */ mul.s $f2, $f30, $f2
/* A42C 8002F02C 00000000 */ nop
/* A430 8002F030 C61C0078 */ lwc1 $f28, 0x78($s0)
/* A434 8002F034 461EE102 */ mul.s $f4, $f28, $f30
/* A438 8002F038 00000000 */ nop
/* A43C 8002F03C 460CE182 */ mul.s $f6, $f28, $f12
/* A440 8002F040 00000000 */ nop
/* A444 8002F044 C6000070 */ lwc1 $f0, 0x70($s0)
/* A448 8002F048 46160002 */ mul.s $f0, $f0, $f22
/* A44C 8002F04C 00000000 */ nop
/* A450 8002F050 4600C286 */ mov.s $f10, $f24
/* A454 8002F054 3C0143B4 */ lui $at, 0x43b4
/* A458 8002F058 44819000 */ mtc1 $at, $f18
/* A45C 8002F05C 46005586 */ mov.s $f22, $f10
/* A460 8002F060 46044600 */ add.s $f24, $f8, $f4
/* A464 8002F064 46120683 */ div.s $f26, $f0, $f18
/* A468 8002F068 4600D306 */ mov.s $f12, $f26
/* A46C 8002F06C 0C00A85B */ jal sin_rad
/* A470 8002F070 46061700 */ add.s $f28, $f2, $f6
/* A474 8002F074 46000786 */ mov.s $f30, $f0
/* A478 8002F078 0C00A874 */ jal cos_rad
/* A47C 8002F07C 4600D306 */ mov.s $f12, $f26
/* A480 8002F080 46000306 */ mov.s $f12, $f0
/* A484 8002F084 461EE002 */ mul.s $f0, $f28, $f30
/* A488 8002F088 00000000 */ nop
/* A48C 8002F08C C602004C */ lwc1 $f2, 0x4c($s0)
/* A490 8002F090 46181400 */ add.s $f16, $f2, $f24
/* A494 8002F094 C6020040 */ lwc1 $f2, 0x40($s0)
/* A498 8002F098 46028081 */ sub.s $f2, $f16, $f2
/* A49C 8002F09C 46141402 */ mul.s $f16, $f2, $f20
/* A4A0 8002F0A0 00000000 */ nop
/* A4A4 8002F0A4 46166082 */ mul.s $f2, $f12, $f22
/* A4A8 8002F0A8 00000000 */ nop
/* A4AC 8002F0AC 46001281 */ sub.s $f10, $f2, $f0
/* A4B0 8002F0B0 4616F082 */ mul.s $f2, $f30, $f22
/* A4B4 8002F0B4 00000000 */ nop
/* A4B8 8002F0B8 C6000048 */ lwc1 $f0, 0x48($s0)
/* A4BC 8002F0BC 460A0100 */ add.s $f4, $f0, $f10
/* A4C0 8002F0C0 C600003C */ lwc1 $f0, 0x3c($s0)
/* A4C4 8002F0C4 46002001 */ sub.s $f0, $f4, $f0
/* A4C8 8002F0C8 46140102 */ mul.s $f4, $f0, $f20
/* A4CC 8002F0CC 00000000 */ nop
/* A4D0 8002F0D0 460CE002 */ mul.s $f0, $f28, $f12
/* A4D4 8002F0D4 00000000 */ nop
/* A4D8 8002F0D8 46001080 */ add.s $f2, $f2, $f0
/* A4DC 8002F0DC C6000050 */ lwc1 $f0, 0x50($s0)
/* A4E0 8002F0E0 46020200 */ add.s $f8, $f0, $f2
/* A4E4 8002F0E4 C6000044 */ lwc1 $f0, 0x44($s0)
/* A4E8 8002F0E8 46004001 */ sub.s $f0, $f8, $f0
/* A4EC 8002F0EC 46140202 */ mul.s $f8, $f0, $f20
/* A4F0 8002F0F0 00000000 */ nop
/* A4F4 8002F0F4 3C014180 */ lui $at, 0x4180
/* A4F8 8002F0F8 44811000 */ mtc1 $at, $f2
/* A4FC 8002F0FC 46002005 */ abs.s $f0, $f4
/* A500 8002F100 4600103C */ c.lt.s $f2, $f0
/* A504 8002F104 00000000 */ nop
/* A508 8002F108 4502000A */ bc1fl .L8002F134
/* A50C 8002F10C 46008005 */ abs.s $f0, $f16
/* A510 8002F110 4616203C */ c.lt.s $f4, $f22
/* A514 8002F114 00000000 */ nop
/* A518 8002F118 45000005 */ bc1f .L8002F130
/* A51C 8002F11C 46001106 */ mov.s $f4, $f2
/* A520 8002F120 3C01C180 */ lui $at, 0xc180
/* A524 8002F124 44812000 */ mtc1 $at, $f4
/* A528 8002F128 3C014180 */ lui $at, 0x4180
/* A52C 8002F12C 44811000 */ mtc1 $at, $f2
.L8002F130:
/* A530 8002F130 46008005 */ abs.s $f0, $f16
.L8002F134:
/* A534 8002F134 4600103C */ c.lt.s $f2, $f0
/* A538 8002F138 00000000 */ nop
/* A53C 8002F13C 45000009 */ bc1f .L8002F164
/* A540 8002F140 00000000 */ nop
/* A544 8002F144 44800000 */ mtc1 $zero, $f0
/* A548 8002F148 00000000 */ nop
/* A54C 8002F14C 4600803C */ c.lt.s $f16, $f0
/* A550 8002F150 00000000 */ nop
/* A554 8002F154 45000003 */ bc1f .L8002F164
/* A558 8002F158 46001406 */ mov.s $f16, $f2
/* A55C 8002F15C 3C01C180 */ lui $at, 0xc180
/* A560 8002F160 44818000 */ mtc1 $at, $f16
.L8002F164:
/* A564 8002F164 3C014180 */ lui $at, 0x4180
/* A568 8002F168 44811000 */ mtc1 $at, $f2
/* A56C 8002F16C 46004005 */ abs.s $f0, $f8
/* A570 8002F170 4600103C */ c.lt.s $f2, $f0
/* A574 8002F174 00000000 */ nop
/* A578 8002F178 45000009 */ bc1f .L8002F1A0
/* A57C 8002F17C 00000000 */ nop
/* A580 8002F180 44800000 */ mtc1 $zero, $f0
/* A584 8002F184 00000000 */ nop
/* A588 8002F188 4600403C */ c.lt.s $f8, $f0
/* A58C 8002F18C 00000000 */ nop
/* A590 8002F190 45000003 */ bc1f .L8002F1A0
/* A594 8002F194 46001206 */ mov.s $f8, $f2
/* A598 8002F198 3C01C180 */ lui $at, 0xc180
/* A59C 8002F19C 44814000 */ mtc1 $at, $f8
.L8002F1A0:
/* A5A0 8002F1A0 C600003C */ lwc1 $f0, 0x3c($s0)
/* A5A4 8002F1A4 46040000 */ add.s $f0, $f0, $f4
/* A5A8 8002F1A8 C60E0044 */ lwc1 $f14, 0x44($s0)
/* A5AC 8002F1AC 8E060048 */ lw $a2, 0x48($s0)
/* A5B0 8002F1B0 46087380 */ add.s $f14, $f14, $f8
/* A5B4 8002F1B4 C6020040 */ lwc1 $f2, 0x40($s0)
/* A5B8 8002F1B8 8E070050 */ lw $a3, 0x50($s0)
/* A5BC 8002F1BC 46101080 */ add.s $f2, $f2, $f16
/* A5C0 8002F1C0 E600003C */ swc1 $f0, 0x3c($s0)
/* A5C4 8002F1C4 46000306 */ mov.s $f12, $f0
/* A5C8 8002F1C8 E6020040 */ swc1 $f2, 0x40($s0)
/* A5CC 8002F1CC 0C00A720 */ jal atan2
/* A5D0 8002F1D0 E60E0044 */ swc1 $f14, 0x44($s0)
/* A5D4 8002F1D4 C6040048 */ lwc1 $f4, 0x48($s0)
/* A5D8 8002F1D8 4480A000 */ mtc1 $zero, $f20
/* A5DC 8002F1DC C602003C */ lwc1 $f2, 0x3c($s0)
/* A5E0 8002F1E0 E600006C */ swc1 $f0, 0x6c($s0)
/* A5E4 8002F1E4 46022581 */ sub.s $f22, $f4, $f2
/* A5E8 8002F1E8 C6040050 */ lwc1 $f4, 0x50($s0)
/* A5EC 8002F1EC C6020044 */ lwc1 $f2, 0x44($s0)
/* A5F0 8002F1F0 4600A306 */ mov.s $f12, $f20
/* A5F4 8002F1F4 46022701 */ sub.s $f28, $f4, $f2
/* A5F8 8002F1F8 C604004C */ lwc1 $f4, 0x4c($s0)
/* A5FC 8002F1FC C6020040 */ lwc1 $f2, 0x40($s0)
/* A600 8002F200 4406B000 */ mfc1 $a2, $f22
/* A604 8002F204 46022601 */ sub.s $f24, $f4, $f2
/* A608 8002F208 4407E000 */ mfc1 $a3, $f28
/* A60C 8002F20C 0C00A720 */ jal atan2
/* A610 8002F210 4600A386 */ mov.s $f14, $f20
/* A614 8002F214 4616B102 */ mul.s $f4, $f22, $f22
/* A618 8002F218 00000000 */ nop
/* A61C 8002F21C 461CE082 */ mul.s $f2, $f28, $f28
/* A620 8002F220 00000000 */ nop
/* A624 8002F224 46022300 */ add.s $f12, $f4, $f2
/* A628 8002F228 46000007 */ neg.s $f0, $f0
/* A62C 8002F22C E6000090 */ swc1 $f0, 0x90($s0)
/* A630 8002F230 46006004 */ sqrt.s $f0, $f12
/* A634 8002F234 46000032 */ c.eq.s $f0, $f0
/* A638 8002F238 00000000 */ nop
/* A63C 8002F23C 45030004 */ bc1tl .L8002F250
/* A640 8002F240 4600A306 */ mov.s $f12, $f20
/* A644 8002F244 0C0187BC */ jal sqrtf
/* A648 8002F248 00000000 */ nop
/* A64C 8002F24C 4600A306 */ mov.s $f12, $f20
.L8002F250:
/* A650 8002F250 46000007 */ neg.s $f0, $f0
/* A654 8002F254 4406C000 */ mfc1 $a2, $f24
/* A658 8002F258 44070000 */ mfc1 $a3, $f0
/* A65C 8002F25C 0C00A720 */ jal atan2
/* A660 8002F260 46006386 */ mov.s $f14, $f12
/* A664 8002F264 E6000094 */ swc1 $f0, 0x94($s0)
/* A668 8002F268 8FBF0014 */ lw $ra, 0x14($sp)
/* A66C 8002F26C 8FB00010 */ lw $s0, 0x10($sp)
/* A670 8002F270 D7BE0040 */ ldc1 $f30, 0x40($sp)
/* A674 8002F274 D7BC0038 */ ldc1 $f28, 0x38($sp)
/* A678 8002F278 D7BA0030 */ ldc1 $f26, 0x30($sp)
/* A67C 8002F27C D7B80028 */ ldc1 $f24, 0x28($sp)
/* A680 8002F280 D7B60020 */ ldc1 $f22, 0x20($sp)
/* A684 8002F284 D7B40018 */ ldc1 $f20, 0x18($sp)
/* A688 8002F288 03E00008 */ jr $ra
/* A68C 8002F28C 27BD0048 */ addiu $sp, $sp, 0x48