diff --git a/coverage.py b/coverage.py index a0bcdb0819..cd131be85a 100755 --- a/coverage.py +++ b/coverage.py @@ -78,3 +78,4 @@ def stuff(version): stuff("us") stuff("jp") +stuff("cn") diff --git a/progress.py b/progress.py index 0daf088657..9c9e7080a2 100755 --- a/progress.py +++ b/progress.py @@ -108,7 +108,7 @@ def main(args): total_size = sum(sizes.values()) # TODO hack for now since non-jp roms aren't mapped out if args.version != "us": - total_size = 3718668 + total_size = 3718664 all_funcs = set(sizes.keys()) nonmatching_funcs = get_nonmatching_funcs() @@ -162,7 +162,10 @@ def main(args): print(f"{'🚀' * funcs_delta} This PR matches {funcs_delta} function{s} (+{ ratio_delta:.2f}%) on `{args.version}`.") else: if matching_size + nonmatching_size != total_size: - print("Warning: category/total size mismatch!\n") + print(f"Warning: category/total size mismatch on version {args.version}!\n") + print("Matching size: " + str(matching_size)) + print("Nonmatching size: " + str(nonmatching_size)) + print("Sum: " + str(matching_size + nonmatching_size) + " (should be " + str(total_size) + ")") print(f"{len(matching_funcs)} matched functions / {len(all_funcs)} total ({funcs_matching_ratio:.2f}%)") print(f"{matching_size} matching bytes / {total_size} total ({matching_ratio:.2f}%)") diff --git a/src/9d10_len_1080.c b/src/9d10_len_1080.c index f261a408e9..7dc31d55f5 100644 --- a/src/9d10_len_1080.c +++ b/src/9d10_len_1080.c @@ -222,6 +222,7 @@ void update_camera_mode_2(Camera* camera) { INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_2, Camera* camera); #endif +void update_camera_mode_1(Camera* camera); INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_1, Camera* camera); void update_camera_mode_0(Camera* camera) { diff --git a/src/B0E0.c b/src/B0E0.c index e52dfd264a..85b297edc1 100644 --- a/src/B0E0.c +++ b/src/B0E0.c @@ -10,26 +10,21 @@ extern f32 D_800A08EC; void cam_interp_lookat_pos(Camera* camera, f32 arg1, f32 arg2, s16 arg3); void func_8003034C(Camera* camera); -void update_camera_mode_unused(Camera* camera); -// Issues with zero float temp? -#ifdef NON_EQUIVALENT void update_camera_mode_unused(Camera* camera) { PlayerStatus* playerStatus = &gPlayerStatus; - f32 temp_f30; - f32 temp_f24_2; - f32 theta; - f32 sinTheta1; - f32 cosTheta1; - f32 sinTheta2; - f32 cosTheta2; - f32 lookXDelta; - f32 lookYDelta; - f32 lookZDelta; - f32 zero; + f32 sinBoom; + f32 cosBoom; + f32 deltaX; + f32 deltaY; + f32 deltaZ; + f32 deltaX2; + f32 deltaY2; + f32 deltaZ2; + f32 boomYaw; - if (camera->unk_06 != 0 || camera->changingMap) { - camera->unk_06 = 0; - camera->changingMap = FALSE; + if (camera->unk_06 || camera->isChangingMap) { + camera->unk_06 = FALSE; + camera->isChangingMap = FALSE; camera->auxPitch = 0; camera->auxBoomLength = 100; camera->lookAt_dist = 100; @@ -43,51 +38,48 @@ void update_camera_mode_unused(Camera* camera) { if (!(playerStatus->flags & (PS_FLAG_FALLING | PS_FLAG_JUMPING))) { camera->lookAt_obj_target.y = playerStatus->position.y + 60.0f; } - camera->lookAt_obj_target.x = playerStatus->position.x; camera->lookAt_obj_target.z = playerStatus->position.z + 400.0f; if (camera->auxPitch == 0) { - s32 fovTemp = 10000 / camera->lookAt_dist; - camera->lookAt_obj.x = camera->lookAt_obj_target.x; camera->lookAt_obj.y = camera->lookAt_obj_target.y; camera->lookAt_obj.z = camera->lookAt_obj_target.z; camera->trueRotation.x = camera->auxBoomYaw; camera->currentBoomYaw = camera->auxBoomPitch; camera->currentBoomLength = camera->auxBoomLength; - - if (fovTemp < 0) { - fovTemp += 3; - } - camera->vfov = fovTemp >> 2; - - zero = camera->currentBoomYaw; - - theta = DEG_TO_RAD(camera->currentBoomYaw); - sinTheta1 = sin_rad(theta); - cosTheta1 = cos_rad(theta); - temp_f30 = (zero * cosTheta1) + (camera->currentBoomLength * sinTheta1); - temp_f24_2 = ( -zero * sinTheta1) + (camera->currentBoomLength * cosTheta1); - - theta = DEG_TO_RAD(camera->trueRotation.x); - sinTheta2 = sin_rad(theta); - cosTheta2 = cos_rad(theta); - camera->lookAt_eye.x = camera->lookAt_obj.x + ((cosTheta2 * zero) - (temp_f24_2 * sinTheta2)); - camera->lookAt_eye.y = camera->lookAt_obj.y + temp_f30; - camera->lookAt_eye.z = camera->lookAt_obj.z + ((sinTheta2 * zero) + (temp_f24_2 * cosTheta2)); + camera->vfov = (10000 / camera->lookAt_dist) / 4; + boomYaw = DEG_TO_RAD(camera->currentBoomYaw); + sinBoom = sin_rad(boomYaw); + cosBoom = cos_rad(boomYaw); + deltaX = 0.0f; + deltaY = 0.0f; + deltaZ = camera->currentBoomLength; + deltaX2 = deltaX; + deltaY2 = deltaY; + boomYaw = deltaX = -deltaY2; + deltaZ2 = deltaZ; + deltaX = deltaX2; + deltaY = cosBoom * deltaY2 + deltaZ2 * sinBoom; + deltaZ = sinBoom * boomYaw + deltaZ2 * cosBoom; + boomYaw = DEG_TO_RAD(camera->trueRotation.x); + sinBoom = sin_rad(boomYaw); + cosBoom = cos_rad(boomYaw); + deltaZ2 = cosBoom * deltaX - deltaZ * sinBoom; + deltaX2 = cosBoom * deltaX - deltaZ * sinBoom; + deltaY2 = deltaY; + deltaZ2 = sinBoom * deltaX + deltaZ * cosBoom; + camera->lookAt_eye.x = camera->lookAt_obj.x + deltaX2; + camera->lookAt_eye.y = camera->lookAt_obj.y + deltaY2; + camera->lookAt_eye.z = camera->lookAt_obj.z + deltaZ2; } - camera->currentYaw = atan2(camera->lookAt_eye.x, camera->lookAt_eye.z, camera->lookAt_obj.x, camera->lookAt_obj.z); - lookXDelta = camera->lookAt_obj.x - camera->lookAt_eye.x; - lookYDelta = camera->lookAt_obj.y - camera->lookAt_eye.y; - lookZDelta = camera->lookAt_obj.z - camera->lookAt_eye.z; - camera->currentBlendedYawNegated = -atan2(zero, zero, lookXDelta, lookZDelta); - camera->currentPitch = atan2(zero, zero, lookYDelta, -sqrtf(SQ(lookXDelta) + SQ(lookZDelta))); + 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, "B0E0", update_camera_mode_unused, Camera* camera); -#endif void update_camera_mode_5(Camera* camera) { PlayerStatus* playerStatus = &gPlayerStatus; @@ -210,12 +202,13 @@ void update_camera_from_controller( Camera* camera, CamPosSettings* oldSettings, CameraControlSettings** prevController, CamPosSettings* newSettings, CameraControlSettings** newController, - f32 x, f32 y, f32 z, + f32 x1, f32 y1, f32 z1, f32 tX, f32 tY, f32 tZ, s32 changingMap, f32* interpAlpha, s32 changingZone) { CameraControlSettings* prevSettings; - CameraControlSettings* settings; + CameraControlSettings* controller; + CamPosSettings* s1; f32 posAx; f32 posAz; f32 posAy; @@ -224,155 +217,143 @@ void update_camera_from_controller( f32 posBz; f32 boomLength; - f32 temp_f0_2; - f32 temp_f0_4; - f32 temp_f0_5; - f32 temp_f0_6; f32 temp_f10; - f32 temp_f10_2; - f32 temp_f10_3; - f32 temp_f12_2; - f32 temp_f12_5; - f32 temp_f18; - f32 temp_f18_2; f32 temp_f20; - f32 temp_f20_2; - f32 temp_f20_3; - f32 temp_f20_4; - f32 temp_f22; - f32 temp_f22_2; - f32 temp_f24; - f32 temp_f24_2; - f32 temp_f24_3; - f32 temp_f24_4; + f32 f24_inv; f32 temp_f2; f32 temp_f2_2; f32 temp_f2_3; f32 temp_f2_4; - f32 temp_f2_5; - f32 temp_f2_6; f32 temp_f2_7; f32 temp_f4; - f32 temp_f4_11; - f32 temp_f4_12; f32 temp_f4_13; f32 temp_f4_14; - f32 temp_f4_2; - f32 temp_f4_3; f32 temp_f4_4; - f32 temp_f4_5; - f32 temp_f4_6; - f32 temp_f4_8; f32 temp_f4_9; f32 temp_f6; - f32 temp_f6_2; - f32 temp_f6_3; - f32 temp_f6_4; - f32 temp_f6_5; - f32 temp_f6_6; - f32 temp_f6_7; - f32 temp_f6_8; - f32 temp_f6_9; f32 temp_f8; - f32 temp_f8_2; - f32 temp_f8_3; - f32 temp_f8_4; - f32 temp_f8_5; - f32 temp_f8_6; - f32 temp_f8_7; - f32 temp_f8_8; - f32 temp_f8_9; - f32 var_f0_3; - f32 var_f10; - f32 var_f10_2; - f32 var_f16; - f32 var_f16_2; - f32 var_f20; - f32 var_f20_2; - f32 var_f20_3; - f32 var_f22; - f32 var_f22_2; - f32 var_f22_3; - f32 var_f6; - f32 var_f6_2; - f32 var_f8; + f32 dz; + f32 dx; - settings = *prevController; - if ((u32) (settings) + 2 >= 2U) { - if (settings == NULL) { - oldSettings->position.x = x; - oldSettings->position.y = y; - oldSettings->position.z = z; + f32 sp10; + f32 sp20; + + f32 x, y, z; + f32 temp2; + f32 temp7; + + /* + x f24 + y f30 + z f26 + */ + + s1 = oldSettings; + controller = *prevController; + x = x1; + y = y1; + z = z1; + if ((s32)controller != -2 && (s32)controller != -1) { + if (controller == NULL) { + s1->pos.x = x; + s1->pos.y = y; + s1->pos.z = z; } else { - switch (settings->type) { + switch (controller->type) { case 0: - if (settings->flag != 0) { - posBx = settings->posB.x; - posBz = settings->posB.z; - temp_f10 = -(settings->posA.z - posBz) + posBx; - temp_f8 = posBx - temp_f10; - temp_f6 = (settings->posA.x - posBx) + posBz; - temp_f12_2 = posBz - temp_f6; - temp_f4 = (((x - temp_f10) * temp_f8) + ((z - temp_f6) * temp_f12_2)) / (SQ(temp_f8) + SQ(temp_f12_2)); - oldSettings->position.x = (temp_f4 * temp_f8) + temp_f10; - oldSettings->position.y = y; - oldSettings->position.z = (temp_f4 * temp_f12_2) + temp_f6; - break; + if (controller->flag != 0) { + f32 temp_f10 = -(controller->posA.z - controller->posB.z) + controller->posB.x; + f32 temp_f6 = (controller->posA.x - controller->posB.x) + controller->posB.z; + + f32 temp_f8 = controller->posB.x - temp_f10; + f32 temp_f12_2 = controller->posB.z - temp_f6; + + f32 temp_f4 = (SQ(temp_f8) + SQ(temp_f12_2)); + temp_f4 = (((x - temp_f10) * temp_f8) + ((z - temp_f6) * temp_f12_2)) / temp_f4; + + s1->pos.x = temp_f4 * temp_f8 + temp_f10; + s1->pos.y = y; + s1->pos.z = temp_f4 * temp_f12_2 + temp_f6; + } else { + s1->pos.x = x; + s1->pos.y = y; + s1->pos.z = z; } - oldSettings->position.x = x; - oldSettings->position.y = y; - oldSettings->position.z = z; break; case 6: - posAx = settings->posA.x; - posBx = settings->posB.x; - temp_f8_2 = posBx - posAx; - posAz = settings->posA.z; - posBz = settings->posB.z; - temp_f6_2 = posBz - posAz; - temp_f4_2 = (((x - posAx) * temp_f8_2) + ((z - posAz) * temp_f6_2)) / ((temp_f8_2 * temp_f8_2) + (temp_f6_2 * temp_f6_2)); - var_f16 = (temp_f4_2 * temp_f8_2) + posAx; - temp_f8_3 = var_f16 - posAx; - var_f10 = (temp_f4_2 * temp_f6_2) + posAz; - temp_f6_3 = var_f10 - posAz; - temp_f20 = x - var_f16; - temp_f18 = z - var_f10; - if (((temp_f8_2 * temp_f8_3) + (temp_f6_2 * temp_f6_3)) < 0.0f) { - var_f16 = posAx; - var_f10 = posAz; - } else if (((temp_f8_2 * temp_f8_2) + (temp_f6_2 * temp_f6_2)) < ((temp_f8_3 * temp_f8_3) + (temp_f6_3 * temp_f6_3))) { - var_f16 = posBx; - var_f10 = posBz; + { + f32 ax, az, bx, bz, temp_f8_2, temp_f6_2; + f32 f22_1, f4_2, sp10, sp20, f14_1, f12_1; + f32 temp_f20, temp_f18; + f32 var1, var2; + f32 f4_1; + f32 var_f16, var_f10, temp_f8_3, temp_f6_3; + ax = controller->posA.x; + az = controller->posA.z; + bx = controller->posB.x; + bz = controller->posB.z; + temp_f8_2 = bx - ax; + temp_f6_2 = bz - az; + var1 = x - ax; + var2 = z - az; + + temp_f20 = temp_f8_2 * temp_f8_2; + temp_f18 = temp_f6_2 * temp_f6_2; + + f4_1 = temp_f20 + temp_f18; + f4_1 = (var1 * temp_f8_2 + var2 * temp_f6_2) / f4_1; + + var_f16 = f4_1 * temp_f8_2 + ax; + var_f10 = f4_1 * temp_f6_2 + az; + + f22_1 = controller->posA.x; + f4_2 = controller->posA.z; + sp10 = controller->posB.x; + sp20 = controller->posB.z; + + ax = sp10 - f22_1; + az = sp20 - f4_2; + + temp_f8_2 = var_f16 - f22_1; + temp_f6_2 = var_f10 - f4_2; + + temp_f20 = x - var_f16; + temp_f18 = z - var_f10; + + if (ax * temp_f8_2 + az * temp_f6_2 < 0.0f) { + var_f16 = f22_1; + var_f10 = f4_2; + } else if (SQ(temp_f8_2) + SQ(temp_f6_2) > SQ(ax) + SQ(az)) { + var_f16 = sp10; + var_f10 = sp20; + } + if (controller->flag == 0) { + var_f16 += temp_f20; + var_f10 += temp_f18; + } + s1->pos.x = var_f16; + s1->pos.y = y; + s1->pos.z = var_f10; } - if (settings->flag == 0) { - var_f16 += temp_f20; - var_f10 += temp_f18; - } - oldSettings->position.x = var_f16; - oldSettings->position.y = y; - oldSettings->position.z = var_f10; break; case 1: - if (settings->flag != 0) { - temp_f22 = x - settings->posA.x; - temp_f20_2 = z - settings->posA.z; - temp_f24 = (temp_f22 * temp_f22) + (temp_f20_2 * temp_f20_2); - if (temp_f24 != 0.0f) { - var_f6 = sqrtf(temp_f24); - temp_f4_3 = settings->posB.x - settings->posA.x; - temp_f0_2 = settings->posB.z - settings->posA.z; - temp_f24_2 = 1.0f / var_f6; - temp_f2 = sqrtf(SQ(temp_f4_3) + SQ(temp_f0_2)); - temp_f2_2 = settings->posA.x + (temp_f22 * temp_f2 * temp_f24_2); - temp_f4_4 = temp_f20_2 * temp_f2 * temp_f24_2; - oldSettings->position.x = temp_f2_2; - oldSettings->position.y = y; - oldSettings->position.z = settings->posA.z + temp_f4_4; + if (controller->flag != 0) { + dx = x - controller->posA.x; + dz = z - controller->posA.z; + x = SQ(dx) + SQ(dz); + if (x != 0.0f) { + f24_inv = 1.0f / sqrtf(x); + temp_f2 = sqrtf(SQ(controller->posB.x - controller->posA.x) + SQ(controller->posB.z - controller->posA.z)); + temp_f2_2 = dx * temp_f2 * f24_inv; + temp_f4_4 = dz * temp_f2 * f24_inv; + s1->pos.x = controller->posA.x + temp_f2_2; + s1->pos.y = y; + s1->pos.z = controller->posA.z + temp_f4_4; } } else { - oldSettings->position.x = x; - oldSettings->position.y = y; - oldSettings->position.z = z; + s1->pos.x = x; + s1->pos.y = y; + s1->pos.z = z; } break; case 2: @@ -380,56 +361,65 @@ void update_camera_from_controller( *prevController = (CameraControlSettings* )-1; break; case 3: - oldSettings->position.x = x; - oldSettings->position.y = y; - oldSettings->position.z = z; + s1->pos.x = x; + s1->pos.y = y; + s1->pos.z = z; + break; + case 4: break; } } } - settings = *newController; - if (settings == NULL) { - newSettings->position.x = tX; - newSettings->position.y = tY; - newSettings->position.z = tZ; + s1 = newSettings; + controller = *newController; + x = tX; + y = tY; + z = tZ; + + if (controller == NULL) { + s1->pos.x = x; + s1->pos.y = y; + s1->pos.z = z; } else { - switch (settings->type) { + switch (controller->type) { case 0: - newSettings->boomYaw = atan2(0.0f, 0.0f, settings->posB.x - settings->posA.x, settings->posB.z - settings->posA.z); - boomLength = settings->boomLength; + s1->boomYaw = atan2(0.0f, 0.0f, controller->posB.x - controller->posA.x, controller->posB.z - controller->posA.z); + boomLength = controller->boomLength; if (boomLength < 0.0f) { boomLength = -boomLength; } - newSettings->boomLength = boomLength; - newSettings->boomPitch = settings->boomPitch; - newSettings->viewPitch = settings->viewPitch; - if (settings->flag != 0) { - posBz = settings->posB.z; - posBx = settings->posB.x; - temp_f10_2 = -(settings->posA.z - posBz) + posBx; - temp_f8_4 = posBx - temp_f10_2; - temp_f6_4 = (settings->posA.x - posBx) + posBz; - temp_f12_5 = posBz - temp_f6_4; - temp_f4_5 = (((tX - temp_f10_2) * temp_f8_4) + ((tZ - temp_f6_4) * temp_f12_5)) / ((temp_f8_4 * temp_f8_4) + (temp_f12_5 * temp_f12_5)); - newSettings->position.y = tY; - newSettings->position.x = (temp_f4_5 * temp_f8_4) + temp_f10_2; - newSettings->position.z = (temp_f4_5 * temp_f12_5) + temp_f6_4; + s1->boomLength = boomLength; + s1->boomPitch = controller->boomPitch; + s1->viewPitch = controller->viewPitch; + if (controller->flag != 0) { + f32 temp_f10 = -(controller->posA.z - controller->posB.z) + controller->posB.x; + f32 temp_f6 = (controller->posA.x - controller->posB.x) + controller->posB.z; + + f32 temp_f8 = controller->posB.x - temp_f10; + f32 temp_f12_2 = controller->posB.z - temp_f6; + + f32 temp_f4 = (SQ(temp_f8) + SQ(temp_f12_2)); + temp_f4 = (((x - temp_f10) * temp_f8) + ((z - temp_f6) * temp_f12_2)) / temp_f4; + + s1->pos.x = temp_f4 * temp_f8 + temp_f10; + s1->pos.y = y; + s1->pos.z = temp_f4 * temp_f12_2 + temp_f6; } else { - newSettings->position.x = tX; - newSettings->position.y = tY; - newSettings->position.z = tZ; + s1->pos.x = x; + s1->pos.y = y; + s1->pos.z = z; } if (changingZone) { if (*interpAlpha != 1.0f) { prevSettings = *prevController; - if (((u32) (prevSettings + 2) >= 3U) && - prevSettings->type == settings->type && - prevSettings->boomLength == settings->boomLength && - prevSettings->boomPitch == settings->boomPitch && - prevSettings->viewPitch == settings->viewPitch && - prevSettings->flag != settings->flag) + if (((s32)prevSettings != -2 && (s32)prevSettings != -1 && (s32)prevSettings != NULL) && + prevSettings->type == controller->type && + prevSettings->boomLength == controller->boomLength && + prevSettings->boomPitch == controller->boomPitch && + prevSettings->viewPitch == controller->viewPitch && + prevSettings->flag != controller->flag) { *interpAlpha = 1.0f; } @@ -437,50 +427,79 @@ void update_camera_from_controller( } break; case 6: - newSettings->boomYaw = atan2(0.0f, 0.0f, settings->posB.z - settings->posA.z, -(settings->posB.x - settings->posA.x)); - boomLength = settings->boomLength; + temp7 = controller->posB.z - controller->posA.z; + dx = controller->posB.x - controller->posA.x; + s1->boomYaw = atan2(0.0f, 0.0f, temp7, -dx); + boomLength = controller->boomLength; if (boomLength < 0.0f) { boomLength = -boomLength; } - newSettings->boomLength = boomLength; - newSettings->boomPitch = settings->boomPitch; - newSettings->viewPitch = settings->viewPitch; - posAx = settings->posA.x; - posBx = settings->posB.x; - temp_f8_5 = posBx - posAx; - posAz = settings->posA.z; - posBz = settings->posB.z; - temp_f6_5 = posBz - posAz; - temp_f4_6 = (((tX - posAx) * temp_f8_5) + ((tZ - posAz) * temp_f6_5)) / ((temp_f8_5 * temp_f8_5) + (temp_f6_5 * temp_f6_5)); - var_f16_2 = (temp_f4_6 * temp_f8_5) + posAx; - temp_f8_6 = var_f16_2 - posAx; - var_f10_2 = (temp_f4_6 * temp_f6_5) + posAz; - temp_f6_6 = var_f10_2 - posAz; - temp_f20_3 = tX - var_f16_2; - temp_f18_2 = tZ - var_f10_2; - if (((temp_f8_5 * temp_f8_6) + (temp_f6_5 * temp_f6_6)) < 0.0f) { - var_f16_2 = posAx; - var_f10_2 = posAz; - } else if (((temp_f8_5 * temp_f8_5) + SQ(temp_f6_5)) < (SQ(temp_f8_6) + SQ(temp_f6_6))) { - var_f16_2 = posBx; - var_f10_2 = posBz; + s1->boomLength = boomLength; + s1->boomPitch = controller->boomPitch; + s1->viewPitch = controller->viewPitch; + { + f32 ax, az, bx, bz, temp_f8_2, temp_f6_2; + f32 f22_1, f4_2, sp10, sp20, f14_1, f12_1; + f32 temp_f20, temp_f18; + f32 var1, var2; + f32 f4_1; + f32 var_f16, var_f10, temp_f8_3, temp_f6_3; + ax = controller->posA.x; + az = controller->posA.z; + bx = controller->posB.x; + bz = controller->posB.z; + temp_f8_2 = bx - ax; + temp_f6_2 = bz - az; + var1 = x - ax; + var2 = z - az; + + temp_f20 = temp_f8_2 * temp_f8_2; + temp_f18 = temp_f6_2 * temp_f6_2; + + f4_1 = temp_f20 + temp_f18; + f4_1 = (var1 * temp_f8_2 + var2 * temp_f6_2) / f4_1; + + var_f16 = f4_1 * temp_f8_2 + ax; + var_f10 = f4_1 * temp_f6_2 + az; + + f22_1 = controller->posA.x; + f4_2 = controller->posA.z; + sp10 = controller->posB.x; + sp20 = controller->posB.z; + + ax = sp10 - f22_1; + az = sp20 - f4_2; + + temp_f8_2 = var_f16 - f22_1; + temp_f6_2 = var_f10 - f4_2; + + temp_f20 = x - var_f16; + temp_f18 = z - var_f10; + + if (ax * temp_f8_2 + az * temp_f6_2 < 0.0f) { + var_f16 = f22_1; + var_f10 = f4_2; + } else if (SQ(temp_f8_2) + SQ(temp_f6_2) > SQ(ax) + SQ(az)) { + var_f16 = sp10; + var_f10 = sp20; + } + if (controller->flag == 0) { + var_f16 += temp_f20; + var_f10 += temp_f18; + } + s1->pos.x = var_f16; + s1->pos.y = y; + s1->pos.z = var_f10; } - if (settings->flag == 0) { - var_f16_2 += temp_f20_3; - var_f10_2 += temp_f18_2; - } - newSettings->position.x = var_f16_2; - newSettings->position.y = tY; - newSettings->position.z = var_f10_2; if (changingZone) { if (*interpAlpha != 1.0f) { prevSettings = *prevController; - if (((u32) (prevSettings + 2) >= 3U) && - (prevSettings->type == settings->type) && - (prevSettings->boomLength == settings->boomLength) && - (prevSettings->boomPitch == settings->boomPitch) && - (prevSettings->viewPitch == settings->viewPitch) && - (prevSettings->flag != settings->flag)) + if (((s32)prevSettings != -2 && (s32)prevSettings != -1 && (s32)prevSettings != NULL) && + (prevSettings->type == controller->type) && + (prevSettings->boomLength == controller->boomLength) && + (prevSettings->boomPitch == controller->boomPitch) && + (prevSettings->viewPitch == controller->viewPitch) && + (prevSettings->flag != controller->flag)) { *interpAlpha = 1.0f; } @@ -488,51 +507,51 @@ void update_camera_from_controller( } break; case 1: - if (settings->boomLength < 0.0f) { - var_f22 = tX - settings->posA.x; - newSettings->boomLength = -settings->boomLength; - var_f20 = tZ - settings->posA.z; + // Camera faces toward or away from point A with the player in the center of the frame + if (controller->boomLength < 0.0f) { + // negative boom length means look *away* from point + dx = x - controller->posA.x; + dz = z - controller->posA.z; + s1->boomLength = -controller->boomLength; } else { - var_f22 = settings->posA.x - tX; - newSettings->boomLength = settings->boomLength; - var_f20 = settings->posA.z - tZ; + dx = controller->posA.x - x; + dz = controller->posA.z - z; + s1->boomLength = controller->boomLength; } - newSettings->boomYaw = atan2(0.0f, 0.0f, var_f22, var_f20); - newSettings->boomPitch = settings->boomPitch; - newSettings->viewPitch = settings->viewPitch; - if (settings->flag != 0) { - temp_f22_2 = tX - settings->posA.x; - temp_f20_4 = tZ - settings->posA.z; - temp_f24_3 = SQ(temp_f22_2) + SQ(temp_f20_4); - if (temp_f24_3 != 0.0f) { - var_f6_2 = sqrtf(temp_f24_3); - temp_f4_8 = settings->posB.x - settings->posA.x; - temp_f0_4 = settings->posB.z - settings->posA.z; - temp_f24_4 = 1.0f / var_f6_2; - temp_f2_3 = sqrtf((temp_f4_8 * temp_f4_8) + (temp_f0_4 * temp_f0_4)); - temp_f2_4 = settings->posA.x + (temp_f22_2 * temp_f2_3 * temp_f24_4); - temp_f4_9 = temp_f20_4 * temp_f2_3 * temp_f24_4; - newSettings->position.y = tY; - newSettings->position.x = temp_f2_4; - newSettings->position.z = settings->posA.z + temp_f4_9; + s1->boomYaw = atan2(0.0f, 0.0f, dx, dz); + s1->boomPitch = controller->boomPitch; + s1->viewPitch = controller->viewPitch; + if (controller->flag != 0) { + // constrain to fixed radius + dx = x - controller->posA.x; + dz = z - controller->posA.z; + x = SQ(dx) + SQ(dz); + if (x != 0.0f) { + f24_inv = 1.0f / sqrtf(x); + temp_f2_3 = sqrtf(SQ(controller->posB.x - controller->posA.x) + SQ(controller->posB.z - controller->posA.z)); + temp_f2_4 = dx * temp_f2_3 * f24_inv; + temp_f4_9 = dz * temp_f2_3 * f24_inv; + s1->pos.x = controller->posA.x + temp_f2_4; + s1->pos.y = y; + s1->pos.z = controller->posA.z + temp_f4_9; } } else { - newSettings->position.x = tX; - newSettings->position.y = tY; - newSettings->position.z = tZ; + s1->pos.x = x; + s1->pos.y = y; + s1->pos.z = z; } if (changingZone) { if (*interpAlpha != 1.0f) { prevSettings = *prevController; - if (((u32) (prevSettings + 2) >= 3U) && - (prevSettings->type == settings->type) && - (prevSettings->boomLength == settings->boomLength) && - (prevSettings->boomPitch == settings->boomPitch) && - (prevSettings->viewPitch == settings->viewPitch) && - (prevSettings->flag != settings->flag) && - (prevSettings->posA.x == settings->posA.x) && - (prevSettings->posA.z == settings->posA.z)) + if (((s32)prevSettings != -2 && (s32)prevSettings != -1 && (s32)prevSettings != NULL) && + (prevSettings->type == controller->type) && + (prevSettings->boomLength == controller->boomLength) && + (prevSettings->boomPitch == controller->boomPitch) && + (prevSettings->viewPitch == controller->viewPitch) && + (prevSettings->flag != controller->flag) && + (prevSettings->posA.x == controller->posA.x) && + (prevSettings->posA.z == controller->posA.z)) { *interpAlpha = 1.0f; } @@ -541,147 +560,190 @@ void update_camera_from_controller( } break; case 2: - if (settings->flag == 0) { - posAx = settings->posA.x; - posBx = settings->posB.x; - posAz = settings->posA.z; - posBz = settings->posB.z; - posAy = settings->posA.y; - posBy = settings->posB.y; - temp_f8_7 = posBx - posAy; - if ((posAx == posBx) && (posAz == posBz)) { - posAx = posAy; - posAz = posBy; + if (controller->flag == 0) { + + // Camera is prevented from moving past a fixed line + f32 posAx; // 18 + f32 posBx; // 16 + f32 posCx; // 4 + f32 posCz; // 14 + f32 posAz; // 10 + f32 posBz; // 12 + f32 Tx, Tz; + + posAx = controller->posA.x; // 18 + posAz = controller->posA.z; // 10 + + posBx = controller->posB.x; // 16 + posBz = controller->posB.z; // 12 + + posCx = controller->posA.y; // 4 + posCz = controller->posB.y; // 14 + + if (posAx == posBx && posAz == posBz) { + posAx = posCx; + posAz = posCz; } - if (temp_f8_7 != 0.0f) { - temp_f6_7 = posAz - posBz; - temp_f2_5 = posBz - posBy; - temp_f2_6 = (tZ - posBz) + (((posBx - tX) * temp_f2_5) / temp_f8_7); - temp_f0_5 = posBx - posAx; - temp_f4_11 = ((temp_f6_7 * temp_f2_5) / temp_f8_7) - temp_f0_5; - var_f8 = ((temp_f6_7 * temp_f2_6) / temp_f4_11) + tX; - var_f0_3 = ((temp_f0_5 * temp_f2_6) / temp_f4_11) + tZ; + + if ((posBx - posCx) == 0.0f) { + f32 BAx; + f32 BCx; + f32 BCz; + f32 ABz; + f32 Q; + f32 V; + f32 var1; + f32 var2; + + BAx = posBx - posAx; + BCx = posBx - posCx; + BCz = posBz - posCz; + ABz = posAz - posBz; + var1 = BCx * BAx; + var2 = (posBz - z) * BCx; + + Q = var1 / BCz - ABz; + V = (x - posBx) + var2 / BCz; + Tx = ABz * V / Q + x; + Tz = BAx * V / Q + z; } else { - temp_f6_8 = posBx - posAx; - temp_f10_3 = posAz - posBz; - temp_f8_8 = posBz - posBy; - temp_f0_6 = (tX - posBx) + (((posBz - tZ) * temp_f8_7) / temp_f8_8); - temp_f4_12 = ((temp_f8_7 * temp_f6_8) / temp_f8_8) - temp_f10_3; - var_f8 = ((temp_f10_3 * temp_f0_6) / temp_f4_12) + tX; - var_f0_3 = ((temp_f6_8 * temp_f0_6) / temp_f4_12) + tZ; + f32 BAx; + f32 BCx; + f32 BCz; + f32 ABz; + f32 Q; + f32 V; + f32 var1; + f32 var2; + + BAx = posBx - posAx; + BCx = posBx - posCx; + ABz = posAz - posBz; + BCz = posBz - posCz; + var1 = ABz * BCz; + var2 = (posBx - x) * BCz; + + Q = var1 / BCx - BAx; + V = (z - posBz) + var2 / BCx; + Tx = ABz * V / Q; + Tx += x; // permuter idea (score 15 -> 10) + Tz = BAx * V / Q + z; } - newSettings->position.x = var_f8; - newSettings->position.y = tY; - newSettings->position.z = var_f0_3; + s1->pos.x = Tx; + s1->pos.y = y; + s1->pos.z = Tz; if (changingMap) { - newSettings->boomYaw = atan2(0.0f, 0.0f, settings->posB.x - settings->posA.x, settings->posB.z - settings->posA.z); - boomLength = settings->boomLength; + s1->boomYaw = atan2(0.0f, 0.0f, controller->posB.x - controller->posA.x, controller->posB.z - controller->posA.z); + boomLength = controller->boomLength; if (boomLength < 0.0f) { boomLength = -boomLength; } - newSettings->boomLength = boomLength; - newSettings->boomPitch = settings->boomPitch; - newSettings->viewPitch = settings->viewPitch; + s1->boomLength = boomLength; + s1->boomPitch = controller->boomPitch; + s1->viewPitch = controller->viewPitch; } } else { if (changingMap) { - newSettings->boomYaw = atan2(0.0f, 0.0f, settings->posB.x - settings->posA.x, settings->posB.z - settings->posA.z); - boomLength = settings->boomLength; + s1->boomYaw = atan2(0.0f, 0.0f, controller->posB.x - controller->posA.x, controller->posB.z - controller->posA.z); + boomLength = controller->boomLength; if (boomLength < 0.0f) { boomLength = -boomLength; } - newSettings->boomLength = boomLength; - newSettings->boomPitch = settings->boomPitch; - newSettings->viewPitch = settings->viewPitch; - newSettings->position.x = settings->posB.x; - newSettings->position.z = settings->posB.z; + s1->boomLength = boomLength; + s1->boomPitch = controller->boomPitch; + s1->viewPitch = controller->viewPitch; + s1->pos.x = controller->posB.x; + s1->pos.z = controller->posB.z; } else if (changingZone) { - newSettings->position.x = oldSettings->position.x; - newSettings->position.z = oldSettings->position.z; + s1->pos.x = oldSettings->pos.x; + s1->pos.z = oldSettings->pos.z; } - newSettings->position.y = tY; + s1->pos.y = y; } *prevController = (CameraControlSettings*) -1; break; case 5: - if (settings->flag == 0) { - posAy = settings->posA.y; - temp_f6_9 = settings->posB.x - posAy; - posBy = settings->posB.y; - temp_f8_9 = settings->posB.z - posBy; - temp_f4_13 = (((tX - posAy) * temp_f6_9) + ((tZ - posBy) * temp_f8_9)) / ((temp_f6_9 * temp_f6_9) + (temp_f8_9 * temp_f8_9)); - temp_f2_7 = (temp_f4_13 * temp_f6_9) + posAy; - temp_f4_14 = (temp_f4_13 * temp_f8_9) + posBy; - newSettings->position.y = tY; - newSettings->position.x = temp_f2_7; - newSettings->position.z = temp_f4_14; - if (settings->boomLength < 0.0f) { - var_f22_2 = temp_f2_7 - settings->posA.x; - newSettings->boomLength = -settings->boomLength; - var_f20_2 = temp_f4_14 - settings->posA.z; + if (controller->flag == 0) { + f32 var3 = x - controller->posA.y; + f32 var4 = z - controller->posB.y; + f32 var1 = controller->posB.x - controller->posA.y; + f32 var2 = controller->posB.z - controller->posB.y; + temp_f4_13 = SQ(var1) + SQ(var2); + temp_f4_13 = (var3 * var1 + var4 * var2) / temp_f4_13; + temp_f2_7 = temp_f4_13 * var1 + controller->posA.y; + temp_f4_14 = temp_f4_13 * var2 + controller->posB.y; + + s1->pos.x = temp_f2_7; + s1->pos.y = y; + s1->pos.z = temp_f4_14; + + if (controller->boomLength < 0.0f) { + dx = temp_f2_7 - controller->posA.x; + dz = temp_f4_14 - controller->posA.z; + s1->boomLength = -controller->boomLength; } else { - var_f22_2 = settings->posA.x - temp_f2_7; - newSettings->boomLength = settings->boomLength; - var_f20_2 = settings->posA.z - temp_f4_14; + dx = controller->posA.x - temp_f2_7; + dz = controller->posA.z - temp_f4_14; + s1->boomLength = controller->boomLength; } - newSettings->boomYaw = atan2(0.0f, 0.0f, var_f22_2, var_f20_2); - newSettings->boomPitch = settings->boomPitch; - newSettings->viewPitch = settings->viewPitch; + s1->boomYaw = atan2(0.0f, 0.0f, dx, dz); + s1->boomPitch = controller->boomPitch; + s1->viewPitch = controller->viewPitch; } else { if (changingMap) { - if (settings->boomLength < 0.0f) { - var_f22_3 = settings->posB.x - settings->posA.x; - newSettings->boomLength = -settings->boomLength; - var_f20_3 = settings->posB.z - settings->posA.z; + if (controller->boomLength < 0.0f) { + dx = controller->posB.x - controller->posA.x; + dz = controller->posB.z - controller->posA.z; + s1->boomLength = -controller->boomLength; } else { - var_f22_3 = settings->posA.x - settings->posB.x; - newSettings->boomLength = settings->boomLength; - var_f20_3 = settings->posA.z - settings->posB.z; + dx = controller->posA.x - controller->posB.x; + dz = controller->posA.z - controller->posB.z; + s1->boomLength = controller->boomLength; } - newSettings->boomYaw = atan2(0.0f, 0.0f, var_f22_3, var_f20_3); - newSettings->boomPitch = settings->boomPitch; - newSettings->viewPitch = settings->viewPitch; - newSettings->position.x = settings->posB.x; - newSettings->position.z = settings->posB.z; + s1->boomYaw = atan2(0.0f, 0.0f, dx, dz); + s1->boomPitch = controller->boomPitch; + s1->viewPitch = controller->viewPitch; + s1->pos.x = controller->posB.x; + s1->pos.z = controller->posB.z; } else if (changingZone) { - newSettings->position.x = settings->posB.x; - newSettings->position.z = settings->posB.z; + s1->pos.x = controller->posB.x; + s1->pos.z = controller->posB.z; } - newSettings->position.y = tY; + s1->pos.y = y; } *prevController = (CameraControlSettings*) -1; break; case 3: - newSettings->position.x = tX; - newSettings->position.y = tY; - newSettings->position.z = tZ; + s1->pos.x = x; + s1->pos.y = y; + s1->pos.z = z; break; case 4: - newSettings->boomYaw = atan2(0.0f, 0.0f, settings->posB.x - settings->posA.x, settings->posB.z - settings->posA.z); - boomLength = settings->boomLength; + s1->boomYaw = atan2(0.0f, 0.0f, controller->posB.x - controller->posA.x, controller->posB.z - controller->posA.z); + boomLength = controller->boomLength; if (boomLength < 0.0f) { boomLength = -boomLength; } - newSettings->boomLength = boomLength; - newSettings->boomPitch = settings->boomPitch; - newSettings->viewPitch = settings->viewPitch; - newSettings->position.x = settings->posB.x; - newSettings->position.y = settings->posB.y; - newSettings->position.z = settings->posB.z; + s1->boomLength = boomLength; + s1->boomPitch = controller->boomPitch; + s1->viewPitch = controller->viewPitch; + s1->pos.x = controller->posB.x; + s1->pos.y = controller->posB.y; + s1->pos.z = controller->posB.z; *prevController = (CameraControlSettings*) -2; break; } if (changingZone && - ((settings->type == 5) || (oldSettings->boomYaw != newSettings->boomYaw)) && + ((controller->type == 5) || (oldSettings->boomYaw != newSettings->boomYaw)) && (fabsf(oldSettings->boomYaw - newSettings->boomYaw) < 3.0f) && (fabsf(oldSettings->boomLength - newSettings->boomLength) < 10.0f) && (fabsf(oldSettings->boomPitch - newSettings->boomPitch) < 1.0f) && (fabsf(oldSettings->viewPitch - newSettings->viewPitch) < 1.0f) && - (fabsf(oldSettings->position.x - newSettings->position.x) < 10.0f) && - (fabsf(oldSettings->position.y - newSettings->position.y) < 10.0f) && - (fabsf(oldSettings->position.z - newSettings->position.z) < 10.0f)) + (fabsf(oldSettings->pos.x - newSettings->pos.x) < 10.0f) && + (fabsf(oldSettings->pos.y - newSettings->pos.y) < 10.0f) && + (fabsf(oldSettings->pos.z - newSettings->pos.z) < 10.0f)) { *interpAlpha = 1.0f; } @@ -689,13 +751,13 @@ void update_camera_from_controller( if (*prevController == (CameraControlSettings* )-1) { if (changingZone) { - D_800A08E4 = oldSettings->position.x - newSettings->position.x; - D_800A08E8 = oldSettings->position.y - newSettings->position.y; - D_800A08EC = oldSettings->position.z - newSettings->position.z; + D_800A08E4 = oldSettings->pos.x - newSettings->pos.x; + D_800A08E8 = oldSettings->pos.y - newSettings->pos.y; + D_800A08EC = oldSettings->pos.z - newSettings->pos.z; } - oldSettings->position.x = newSettings->position.x + D_800A08E4; - oldSettings->position.y = newSettings->position.y + D_800A08E8; - oldSettings->position.z = newSettings->position.z + D_800A08EC; + oldSettings->pos.x = newSettings->pos.x + D_800A08E4; + oldSettings->pos.y = newSettings->pos.y + D_800A08E8; + oldSettings->pos.z = newSettings->pos.z + D_800A08EC; } } #else diff --git a/ver/cn/asm/nonmatchings/B0E0/update_camera_mode_unused.s b/ver/cn/asm/nonmatchings/B0E0/update_camera_mode_unused.s deleted file mode 100644 index cbe5e4d945..0000000000 --- a/ver/cn/asm/nonmatchings/B0E0/update_camera_mode_unused.s +++ /dev/null @@ -1,214 +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_unused -/* A790 8002F390 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* A794 8002F394 AFB00010 */ sw $s0, 0x10($sp) -/* A798 8002F398 0080802D */ daddu $s0, $a0, $zero -/* A79C 8002F39C AFBF0014 */ sw $ra, 0x14($sp) -/* A7A0 8002F3A0 F7BE0040 */ sdc1 $f30, 0x40($sp) -/* A7A4 8002F3A4 F7BC0038 */ sdc1 $f28, 0x38($sp) -/* A7A8 8002F3A8 F7BA0030 */ sdc1 $f26, 0x30($sp) -/* A7AC 8002F3AC F7B80028 */ sdc1 $f24, 0x28($sp) -/* A7B0 8002F3B0 F7B60020 */ sdc1 $f22, 0x20($sp) -/* A7B4 8002F3B4 F7B40018 */ sdc1 $f20, 0x18($sp) -/* A7B8 8002F3B8 86020006 */ lh $v0, 0x6($s0) -/* A7BC 8002F3BC 3C038011 */ lui $v1, %hi(gPlayerStatus) -/* A7C0 8002F3C0 2463D3A8 */ addiu $v1, $v1, %lo(gPlayerStatus) -/* A7C4 8002F3C4 14400004 */ bnez $v0, .LIQUE_8002F3D8 -/* A7C8 8002F3C8 00000000 */ nop -/* A7CC 8002F3CC 86020008 */ lh $v0, 0x8($s0) -/* A7D0 8002F3D0 1040000F */ beqz $v0, .LIQUE_8002F410 -/* A7D4 8002F3D4 00000000 */ nop -.LIQUE_8002F3D8: -/* A7D8 8002F3D8 C6000054 */ lwc1 $f0, 0x54($s0) -/* A7DC 8002F3DC C6020058 */ lwc1 $f2, 0x58($s0) -/* A7E0 8002F3E0 C604005C */ lwc1 $f4, 0x5C($s0) -/* A7E4 8002F3E4 24020064 */ addiu $v0, $zero, 0x64 -/* A7E8 8002F3E8 A6000006 */ sh $zero, 0x6($s0) -/* A7EC 8002F3EC A6000008 */ sh $zero, 0x8($s0) -/* A7F0 8002F3F0 A600001C */ sh $zero, 0x1C($s0) -/* A7F4 8002F3F4 A602001E */ sh $v0, 0x1E($s0) -/* A7F8 8002F3F8 A6020020 */ sh $v0, 0x20($s0) -/* A7FC 8002F3FC A6000022 */ sh $zero, 0x22($s0) -/* A800 8002F400 A6000024 */ sh $zero, 0x24($s0) -/* A804 8002F404 E6000048 */ swc1 $f0, 0x48($s0) -/* A808 8002F408 E602004C */ swc1 $f2, 0x4C($s0) -/* A80C 8002F40C E6040050 */ swc1 $f4, 0x50($s0) -.LIQUE_8002F410: -/* A810 8002F410 8C620000 */ lw $v0, 0x0($v1) -/* A814 8002F414 30420006 */ andi $v0, $v0, 0x6 -/* A818 8002F418 14400007 */ bnez $v0, .LIQUE_8002F438 -/* A81C 8002F41C 00000000 */ nop -/* A820 8002F420 C460002C */ lwc1 $f0, 0x2C($v1) -/* A824 8002F424 3C014270 */ lui $at, (0x42700000 >> 16) -/* A828 8002F428 44811000 */ mtc1 $at, $f2 -/* A82C 8002F42C 00000000 */ nop -/* A830 8002F430 46020000 */ add.s $f0, $f0, $f2 -/* A834 8002F434 E6000058 */ swc1 $f0, 0x58($s0) -.LIQUE_8002F438: -/* A838 8002F438 C4600028 */ lwc1 $f0, 0x28($v1) -/* A83C 8002F43C 3C0143C8 */ lui $at, (0x43C80000 >> 16) -/* A840 8002F440 44811000 */ mtc1 $at, $f2 -/* A844 8002F444 E6000054 */ swc1 $f0, 0x54($s0) -/* A848 8002F448 C4600030 */ lwc1 $f0, 0x30($v1) -/* A84C 8002F44C 46020000 */ add.s $f0, $f0, $f2 -/* A850 8002F450 8602001C */ lh $v0, 0x1C($s0) -/* A854 8002F454 14400062 */ bnez $v0, .LIQUE_8002F5E0 -/* A858 8002F458 E600005C */ swc1 $f0, 0x5C($s0) -/* A85C 8002F45C 86030020 */ lh $v1, 0x20($s0) -/* A860 8002F460 24022710 */ addiu $v0, $zero, 0x2710 -/* A864 8002F464 14600002 */ bnez $v1, .LIQUE_8002F470 -/* A868 8002F468 0043001A */ div $zero, $v0, $v1 -/* A86C 8002F46C 0007000D */ break 7 -.LIQUE_8002F470: -/* A870 8002F470 2401FFFF */ addiu $at, $zero, -0x1 -/* A874 8002F474 14610004 */ bne $v1, $at, .LIQUE_8002F488 -/* A878 8002F478 3C018000 */ lui $at, (0x80000000 >> 16) -/* A87C 8002F47C 14410002 */ bne $v0, $at, .LIQUE_8002F488 -/* A880 8002F480 00000000 */ nop -/* A884 8002F484 0006000D */ break 6 -.LIQUE_8002F488: -/* A888 8002F488 00002012 */ mflo $a0 -/* A88C 8002F48C C6000054 */ lwc1 $f0, 0x54($s0) -/* A890 8002F490 C6020058 */ lwc1 $f2, 0x58($s0) -/* A894 8002F494 C604005C */ lwc1 $f4, 0x5C($s0) -/* A898 8002F498 86020024 */ lh $v0, 0x24($s0) -/* A89C 8002F49C 8603001E */ lh $v1, 0x1E($s0) -/* A8A0 8002F4A0 E6000048 */ swc1 $f0, 0x48($s0) -/* A8A4 8002F4A4 44820000 */ mtc1 $v0, $f0 -/* A8A8 8002F4A8 00000000 */ nop -/* A8AC 8002F4AC 46800020 */ cvt.s.w $f0, $f0 -/* A8B0 8002F4B0 86020022 */ lh $v0, 0x22($s0) -/* A8B4 8002F4B4 E602004C */ swc1 $f2, 0x4C($s0) -/* A8B8 8002F4B8 E6040050 */ swc1 $f4, 0x50($s0) -/* A8BC 8002F4BC E6000084 */ swc1 $f0, 0x84($s0) -/* A8C0 8002F4C0 44820000 */ mtc1 $v0, $f0 -/* A8C4 8002F4C4 00000000 */ nop -/* A8C8 8002F4C8 46800020 */ cvt.s.w $f0, $f0 -/* A8CC 8002F4CC E6000074 */ swc1 $f0, 0x74($s0) -/* A8D0 8002F4D0 44830000 */ mtc1 $v1, $f0 -/* A8D4 8002F4D4 00000000 */ nop -/* A8D8 8002F4D8 46800020 */ cvt.s.w $f0, $f0 -/* A8DC 8002F4DC 04810002 */ bgez $a0, .LIQUE_8002F4E8 -/* A8E0 8002F4E0 E6000078 */ swc1 $f0, 0x78($s0) -/* A8E4 8002F4E4 24840003 */ addiu $a0, $a0, 0x3 -.LIQUE_8002F4E8: -/* A8E8 8002F4E8 C6020074 */ lwc1 $f2, 0x74($s0) -/* A8EC 8002F4EC 3C0140C9 */ lui $at, (0x40C90FD0 >> 16) -/* A8F0 8002F4F0 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF) -/* A8F4 8002F4F4 4481A000 */ mtc1 $at, $f20 -/* A8F8 8002F4F8 00041083 */ sra $v0, $a0, 2 -/* A8FC 8002F4FC 46141082 */ mul.s $f2, $f2, $f20 -/* A900 8002F500 00000000 */ nop -/* A904 8002F504 4480F000 */ mtc1 $zero, $f30 -/* A908 8002F508 3C0143B4 */ lui $at, (0x43B40000 >> 16) -/* A90C 8002F50C 4481B000 */ mtc1 $at, $f22 -/* A910 8002F510 44820000 */ mtc1 $v0, $f0 -/* A914 8002F514 00000000 */ nop -/* A918 8002F518 46800020 */ cvt.s.w $f0, $f0 -/* A91C 8002F51C E6000018 */ swc1 $f0, 0x18($s0) -/* A920 8002F520 46161683 */ div.s $f26, $f2, $f22 -/* A924 8002F524 0C00A78F */ jal sin_rad -/* A928 8002F528 4600D306 */ mov.s $f12, $f26 -/* A92C 8002F52C 46000706 */ mov.s $f28, $f0 -/* A930 8002F530 0C00A7A8 */ jal cos_rad -/* A934 8002F534 4600D306 */ mov.s $f12, $f26 -/* A938 8002F538 461E0202 */ mul.s $f8, $f0, $f30 -/* A93C 8002F53C 00000000 */ nop -/* A940 8002F540 4600F087 */ neg.s $f2, $f30 -/* A944 8002F544 4602E082 */ mul.s $f2, $f28, $f2 -/* A948 8002F548 00000000 */ nop -/* A94C 8002F54C C6180078 */ lwc1 $f24, 0x78($s0) -/* A950 8002F550 461CC102 */ mul.s $f4, $f24, $f28 -/* A954 8002F554 00000000 */ nop -/* A958 8002F558 4600C182 */ mul.s $f6, $f24, $f0 -/* A95C 8002F55C 00000000 */ nop -/* A960 8002F560 C6000084 */ lwc1 $f0, 0x84($s0) -/* A964 8002F564 46140002 */ mul.s $f0, $f0, $f20 -/* A968 8002F568 00000000 */ nop -/* A96C 8002F56C 4600F286 */ mov.s $f10, $f30 -/* A970 8002F570 46005506 */ mov.s $f20, $f10 -/* A974 8002F574 46044780 */ add.s $f30, $f8, $f4 -/* A978 8002F578 46061600 */ add.s $f24, $f2, $f6 -/* A97C 8002F57C 46160683 */ div.s $f26, $f0, $f22 -/* A980 8002F580 0C00A78F */ jal sin_rad -/* A984 8002F584 4600D306 */ mov.s $f12, $f26 -/* A988 8002F588 46000706 */ mov.s $f28, $f0 -/* A98C 8002F58C 0C00A7A8 */ jal cos_rad -/* A990 8002F590 4600D306 */ mov.s $f12, $f26 -/* A994 8002F594 46140182 */ mul.s $f6, $f0, $f20 -/* A998 8002F598 00000000 */ nop -/* A99C 8002F59C 4614E102 */ mul.s $f4, $f28, $f20 -/* A9A0 8002F5A0 00000000 */ nop -/* A9A4 8002F5A4 461CC082 */ mul.s $f2, $f24, $f28 -/* A9A8 8002F5A8 00000000 */ nop -/* A9AC 8002F5AC 4600C002 */ mul.s $f0, $f24, $f0 -/* A9B0 8002F5B0 00000000 */ nop -/* A9B4 8002F5B4 46023281 */ sub.s $f10, $f6, $f2 -/* A9B8 8002F5B8 46002100 */ add.s $f4, $f4, $f0 -/* A9BC 8002F5BC C600004C */ lwc1 $f0, 0x4C($s0) -/* A9C0 8002F5C0 461E0000 */ add.s $f0, $f0, $f30 -/* A9C4 8002F5C4 C6060048 */ lwc1 $f6, 0x48($s0) -/* A9C8 8002F5C8 460A3180 */ add.s $f6, $f6, $f10 -/* A9CC 8002F5CC C6020050 */ lwc1 $f2, 0x50($s0) -/* A9D0 8002F5D0 46041080 */ add.s $f2, $f2, $f4 -/* A9D4 8002F5D4 E6000040 */ swc1 $f0, 0x40($s0) -/* A9D8 8002F5D8 E606003C */ swc1 $f6, 0x3C($s0) -/* A9DC 8002F5DC E6020044 */ swc1 $f2, 0x44($s0) -.LIQUE_8002F5E0: -/* A9E0 8002F5E0 C60C003C */ lwc1 $f12, 0x3C($s0) -/* A9E4 8002F5E4 C60E0044 */ lwc1 $f14, 0x44($s0) -/* A9E8 8002F5E8 8E060048 */ lw $a2, 0x48($s0) -/* A9EC 8002F5EC 0C00A654 */ jal atan2 -/* A9F0 8002F5F0 8E070050 */ lw $a3, 0x50($s0) -/* A9F4 8002F5F4 C6040048 */ lwc1 $f4, 0x48($s0) -/* A9F8 8002F5F8 4480B000 */ mtc1 $zero, $f22 -/* A9FC 8002F5FC C602003C */ lwc1 $f2, 0x3C($s0) -/* AA00 8002F600 E600006C */ swc1 $f0, 0x6C($s0) -/* AA04 8002F604 46022501 */ sub.s $f20, $f4, $f2 -/* AA08 8002F608 C6040050 */ lwc1 $f4, 0x50($s0) -/* AA0C 8002F60C C6020044 */ lwc1 $f2, 0x44($s0) -/* AA10 8002F610 4600B306 */ mov.s $f12, $f22 -/* AA14 8002F614 46022601 */ sub.s $f24, $f4, $f2 -/* AA18 8002F618 C604004C */ lwc1 $f4, 0x4C($s0) -/* AA1C 8002F61C C6020040 */ lwc1 $f2, 0x40($s0) -/* AA20 8002F620 4406A000 */ mfc1 $a2, $f20 -/* AA24 8002F624 46022781 */ sub.s $f30, $f4, $f2 -/* AA28 8002F628 4407C000 */ mfc1 $a3, $f24 -/* AA2C 8002F62C 0C00A654 */ jal atan2 -/* AA30 8002F630 4600B386 */ mov.s $f14, $f22 -/* AA34 8002F634 4614A102 */ mul.s $f4, $f20, $f20 -/* AA38 8002F638 00000000 */ nop -/* AA3C 8002F63C 4618C082 */ mul.s $f2, $f24, $f24 -/* AA40 8002F640 00000000 */ nop -/* AA44 8002F644 46022300 */ add.s $f12, $f4, $f2 -/* AA48 8002F648 46000007 */ neg.s $f0, $f0 -/* AA4C 8002F64C E6000090 */ swc1 $f0, 0x90($s0) -/* AA50 8002F650 46006004 */ sqrt.s $f0, $f12 -/* AA54 8002F654 46000032 */ c.eq.s $f0, $f0 -/* AA58 8002F658 00000000 */ nop -/* AA5C 8002F65C 45030004 */ bc1tl .LIQUE_8002F670 -/* AA60 8002F660 4600B306 */ mov.s $f12, $f22 -/* AA64 8002F664 0C0183A0 */ jal sqrtf -/* AA68 8002F668 00000000 */ nop -/* AA6C 8002F66C 4600B306 */ mov.s $f12, $f22 -.LIQUE_8002F670: -/* AA70 8002F670 46000007 */ neg.s $f0, $f0 -/* AA74 8002F674 4406F000 */ mfc1 $a2, $f30 -/* AA78 8002F678 44070000 */ mfc1 $a3, $f0 -/* AA7C 8002F67C 0C00A654 */ jal atan2 -/* AA80 8002F680 46006386 */ mov.s $f14, $f12 -/* AA84 8002F684 E6000094 */ swc1 $f0, 0x94($s0) -/* AA88 8002F688 8FBF0014 */ lw $ra, 0x14($sp) -/* AA8C 8002F68C 8FB00010 */ lw $s0, 0x10($sp) -/* AA90 8002F690 D7BE0040 */ ldc1 $f30, 0x40($sp) -/* AA94 8002F694 D7BC0038 */ ldc1 $f28, 0x38($sp) -/* AA98 8002F698 D7BA0030 */ ldc1 $f26, 0x30($sp) -/* AA9C 8002F69C D7B80028 */ ldc1 $f24, 0x28($sp) -/* AAA0 8002F6A0 D7B60020 */ ldc1 $f22, 0x20($sp) -/* AAA4 8002F6A4 D7B40018 */ ldc1 $f20, 0x18($sp) -/* AAA8 8002F6A8 03E00008 */ jr $ra -/* AAAC 8002F6AC 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/ver/cn/asm/nonmatchings/camera/func_800322DC.s b/ver/cn/asm/nonmatchings/camera/func_800322DC.s deleted file mode 100644 index cae82a2375..0000000000 --- a/ver/cn/asm/nonmatchings/camera/func_800322DC.s +++ /dev/null @@ -1,208 +0,0 @@ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ - -/* Generated by spimdisasm 1.11.1 */ - -glabel calculate_segment_intersection -/* CD8C 8003198C 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* CD90 80031990 F7BC0030 */ sdc1 $f28, 0x30($sp) -/* CD94 80031994 AFA60048 */ sw $a2, 0x48($sp) -/* CD98 80031998 C7BC0048 */ lwc1 $f28, 0x48($sp) -/* CD9C 8003199C F7B80020 */ sdc1 $f24, 0x20($sp) -/* CDA0 800319A0 C7B80050 */ lwc1 $f24, 0x50($sp) -/* CDA4 800319A4 F7B40010 */ sdc1 $f20, 0x10($sp) -/* CDA8 800319A8 46006506 */ mov.s $f20, $f12 -/* CDAC 800319AC F7B60018 */ sdc1 $f22, 0x18($sp) -/* CDB0 800319B0 46007586 */ mov.s $f22, $f14 -/* CDB4 800319B4 F7BA0028 */ sdc1 $f26, 0x28($sp) -/* CDB8 800319B8 C7BA0054 */ lwc1 $f26, 0x54($sp) -/* CDBC 800319BC 4614E481 */ sub.s $f18, $f28, $f20 -/* CDC0 800319C0 C7A20058 */ lwc1 $f2, 0x58($sp) -/* CDC4 800319C4 C7A0005C */ lwc1 $f0, 0x5C($sp) -/* CDC8 800319C8 4616D181 */ sub.s $f6, $f26, $f22 -/* CDCC 800319CC F7BE0038 */ sdc1 $f30, 0x38($sp) -/* CDD0 800319D0 46160781 */ sub.s $f30, $f0, $f22 -/* CDD4 800319D4 AFA7004C */ sw $a3, 0x4C($sp) -/* CDD8 800319D8 46181401 */ sub.s $f16, $f2, $f24 -/* CDDC 800319DC C7BC004C */ lwc1 $f28, 0x4C($sp) -/* CDE0 800319E0 4616E301 */ sub.s $f12, $f28, $f22 -/* CDE4 800319E4 4614C701 */ sub.s $f28, $f24, $f20 -/* CDE8 800319E8 461A0381 */ sub.s $f14, $f0, $f26 -/* CDEC 800319EC E7BC0008 */ swc1 $f28, 0x8($sp) -/* CDF0 800319F0 46141701 */ sub.s $f28, $f2, $f20 -/* CDF4 800319F4 44802000 */ mtc1 $zero, $f4 -/* CDF8 800319F8 46009286 */ mov.s $f10, $f18 -/* CDFC 800319FC 46049032 */ c.eq.s $f18, $f4 -/* CE00 80031A00 46006207 */ neg.s $f8, $f12 -/* CE04 80031A04 45000005 */ bc1f .LIQUE_80031A1C -/* CE08 80031A08 E7BC0000 */ swc1 $f28, 0x0($sp) -/* CE0C 80031A0C 46046032 */ c.eq.s $f12, $f4 -/* CE10 80031A10 00000000 */ nop -/* CE14 80031A14 45010097 */ bc1t .LIQUE_80031C74 -/* CE18 80031A18 0000102D */ daddu $v0, $zero, $zero -.LIQUE_80031A1C: -/* CE1C 80031A1C 44800000 */ mtc1 $zero, $f0 -/* CE20 80031A20 00000000 */ nop -/* CE24 80031A24 46008032 */ c.eq.s $f16, $f0 -/* CE28 80031A28 00000000 */ nop -/* CE2C 80031A2C 45000005 */ bc1f .LIQUE_80031A44 -/* CE30 80031A30 00000000 */ nop -/* CE34 80031A34 46007032 */ c.eq.s $f14, $f0 -/* CE38 80031A38 00000000 */ nop -/* CE3C 80031A3C 4501008D */ bc1t .LIQUE_80031C74 -/* CE40 80031A40 0000102D */ daddu $v0, $zero, $zero -.LIQUE_80031A44: -/* CE44 80031A44 46065002 */ mul.s $f0, $f10, $f6 -/* CE48 80031A48 00000000 */ nop -/* CE4C 80031A4C C7BC0008 */ lwc1 $f28, 0x8($sp) -/* CE50 80031A50 461C4082 */ mul.s $f2, $f8, $f28 -/* CE54 80031A54 00000000 */ nop -/* CE58 80031A58 46001180 */ add.s $f6, $f2, $f0 -/* CE5C 80031A5C 44800000 */ mtc1 $zero, $f0 -/* CE60 80031A60 00000000 */ nop -/* CE64 80031A64 4600303C */ c.lt.s $f6, $f0 -/* CE68 80031A68 3C01BF80 */ lui $at, (0xBF800000 >> 16) -/* CE6C 80031A6C 44812000 */ mtc1 $at, $f4 -/* CE70 80031A70 45010007 */ bc1t .LIQUE_80031A90 -/* CE74 80031A74 00000000 */ nop -/* CE78 80031A78 4606003C */ c.lt.s $f0, $f6 -/* CE7C 80031A7C 00000000 */ nop -/* CE80 80031A80 45000003 */ bc1f .LIQUE_80031A90 -/* CE84 80031A84 46000106 */ mov.s $f4, $f0 -/* CE88 80031A88 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* CE8C 80031A8C 44812000 */ mtc1 $at, $f4 -.LIQUE_80031A90: -/* CE90 80031A90 461E5002 */ mul.s $f0, $f10, $f30 -/* CE94 80031A94 00000000 */ nop -/* CE98 80031A98 C7BC0000 */ lwc1 $f28, 0x0($sp) -/* CE9C 80031A9C 461C4082 */ mul.s $f2, $f8, $f28 -/* CEA0 80031AA0 00000000 */ nop -/* CEA4 80031AA4 46001080 */ add.s $f2, $f2, $f0 -/* CEA8 80031AA8 44800000 */ mtc1 $zero, $f0 -/* CEAC 80031AAC 00000000 */ nop -/* CEB0 80031AB0 4600103C */ c.lt.s $f2, $f0 -/* CEB4 80031AB4 00000000 */ nop -/* CEB8 80031AB8 45000005 */ bc1f .LIQUE_80031AD0 -/* CEBC 80031ABC 46002186 */ mov.s $f6, $f4 -/* CEC0 80031AC0 3C01BF80 */ lui $at, (0xBF800000 >> 16) -/* CEC4 80031AC4 44810000 */ mtc1 $at, $f0 -/* CEC8 80031AC8 0800C6BB */ j .LIQUE_80031AEC -/* CECC 80031ACC 00000000 */ nop -.LIQUE_80031AD0: -/* CED0 80031AD0 4602003C */ c.lt.s $f0, $f2 -/* CED4 80031AD4 00000000 */ nop -/* CED8 80031AD8 45000004 */ bc1f .LIQUE_80031AEC -/* CEDC 80031ADC 00000000 */ nop -/* CEE0 80031AE0 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* CEE4 80031AE4 44810000 */ mtc1 $at, $f0 -/* CEE8 80031AE8 00000000 */ nop -.LIQUE_80031AEC: -/* CEEC 80031AEC 46003032 */ c.eq.s $f6, $f0 -/* CEF0 80031AF0 00000000 */ nop -/* CEF4 80031AF4 4501005F */ bc1t .LIQUE_80031C74 -/* CEF8 80031AF8 0000102D */ daddu $v0, $zero, $zero -/* CEFC 80031AFC 46009085 */ abs.s $f2, $f18 -/* CF00 80031B00 46008005 */ abs.s $f0, $f16 -/* CF04 80031B04 4602003C */ c.lt.s $f0, $f2 -/* CF08 80031B08 00000000 */ nop -/* CF0C 80031B0C 4500001E */ bc1f .LIQUE_80031B88 -/* CF10 80031B10 00000000 */ nop -/* CF14 80031B14 460CA002 */ mul.s $f0, $f20, $f12 -/* CF18 80031B18 00000000 */ nop -/* CF1C 80031B1C 4612B182 */ mul.s $f6, $f22, $f18 -/* CF20 80031B20 00000000 */ nop -/* CF24 80031B24 461A9202 */ mul.s $f8, $f18, $f26 -/* CF28 80031B28 00000000 */ nop -/* CF2C 80031B2C 46186282 */ mul.s $f10, $f12, $f24 -/* CF30 80031B30 00000000 */ nop -/* CF34 80031B34 46106082 */ mul.s $f2, $f12, $f16 -/* CF38 80031B38 00000000 */ nop -/* CF3C 80031B3C 460E9102 */ mul.s $f4, $f18, $f14 -/* CF40 80031B40 00000000 */ nop -/* CF44 80031B44 46060001 */ sub.s $f0, $f0, $f6 -/* CF48 80031B48 46041081 */ sub.s $f2, $f2, $f4 -/* CF4C 80031B4C 46080000 */ add.s $f0, $f0, $f8 -/* CF50 80031B50 460A0181 */ sub.s $f6, $f0, $f10 -/* CF54 80031B54 46023183 */ div.s $f6, $f6, $f2 -/* CF58 80031B58 46068002 */ mul.s $f0, $f16, $f6 -/* CF5C 80031B5C 00000000 */ nop -/* CF60 80031B60 4600C000 */ add.s $f0, $f24, $f0 -/* CF64 80031B64 46140001 */ sub.s $f0, $f0, $f20 -/* CF68 80031B68 46120183 */ div.s $f6, $f0, $f18 -/* CF6C 80031B6C 46069002 */ mul.s $f0, $f18, $f6 -/* CF70 80031B70 00000000 */ nop -/* CF74 80031B74 46066082 */ mul.s $f2, $f12, $f6 -/* CF78 80031B78 00000000 */ nop -/* CF7C 80031B7C 4600A200 */ add.s $f8, $f20, $f0 -/* CF80 80031B80 0800C6FE */ j .LIQUE_80031BF8 -/* CF84 80031B84 4602B180 */ add.s $f6, $f22, $f2 -.LIQUE_80031B88: -/* CF88 80031B88 4610D002 */ mul.s $f0, $f26, $f16 -/* CF8C 80031B8C 00000000 */ nop -/* CF90 80031B90 460EA182 */ mul.s $f6, $f20, $f14 -/* CF94 80031B94 00000000 */ nop -/* CF98 80031B98 460ED202 */ mul.s $f8, $f26, $f14 -/* CF9C 80031B9C 00000000 */ nop -/* CFA0 80031BA0 4610B282 */ mul.s $f10, $f22, $f16 -/* CFA4 80031BA4 00000000 */ nop -/* CFA8 80031BA8 46106082 */ mul.s $f2, $f12, $f16 -/* CFAC 80031BAC 00000000 */ nop -/* CFB0 80031BB0 460E9102 */ mul.s $f4, $f18, $f14 -/* CFB4 80031BB4 00000000 */ nop -/* CFB8 80031BB8 46060000 */ add.s $f0, $f0, $f6 -/* CFBC 80031BBC 46041081 */ sub.s $f2, $f2, $f4 -/* CFC0 80031BC0 46080001 */ sub.s $f0, $f0, $f8 -/* CFC4 80031BC4 460A0181 */ sub.s $f6, $f0, $f10 -/* CFC8 80031BC8 46023183 */ div.s $f6, $f6, $f2 -/* CFCC 80031BCC 46069002 */ mul.s $f0, $f18, $f6 -/* CFD0 80031BD0 00000000 */ nop -/* CFD4 80031BD4 4600A000 */ add.s $f0, $f20, $f0 -/* CFD8 80031BD8 46180001 */ sub.s $f0, $f0, $f24 -/* CFDC 80031BDC 46100183 */ div.s $f6, $f0, $f16 -/* CFE0 80031BE0 46068002 */ mul.s $f0, $f16, $f6 -/* CFE4 80031BE4 00000000 */ nop -/* CFE8 80031BE8 46067082 */ mul.s $f2, $f14, $f6 -/* CFEC 80031BEC 00000000 */ nop -/* CFF0 80031BF0 4600C200 */ add.s $f8, $f24, $f0 -/* CFF4 80031BF4 4602D180 */ add.s $f6, $f26, $f2 -.LIQUE_80031BF8: -/* CFF8 80031BF8 46144101 */ sub.s $f4, $f8, $f20 -/* CFFC 80031BFC C7BC0048 */ lwc1 $f28, 0x48($sp) -/* D000 80031C00 461C4001 */ sub.s $f0, $f8, $f28 -/* D004 80031C04 46002102 */ mul.s $f4, $f4, $f0 -/* D008 80031C08 00000000 */ nop -/* D00C 80031C0C C7BC004C */ lwc1 $f28, 0x4C($sp) -/* D010 80031C10 461C3081 */ sub.s $f2, $f6, $f28 -/* D014 80031C14 46163001 */ sub.s $f0, $f6, $f22 -/* D018 80031C18 46020002 */ mul.s $f0, $f0, $f2 -/* D01C 80031C1C 00000000 */ nop -/* D020 80031C20 46002100 */ add.s $f4, $f4, $f0 -/* D024 80031C24 44800000 */ mtc1 $zero, $f0 -/* D028 80031C28 00000000 */ nop -/* D02C 80031C2C 4604003C */ c.lt.s $f0, $f4 -/* D030 80031C30 00000000 */ nop -/* D034 80031C34 4501000F */ bc1t .LIQUE_80031C74 -/* D038 80031C38 0000102D */ daddu $v0, $zero, $zero -/* D03C 80031C3C 46184081 */ sub.s $f2, $f8, $f24 -/* D040 80031C40 46021082 */ mul.s $f2, $f2, $f2 -/* D044 80031C44 00000000 */ nop -/* D048 80031C48 461A3001 */ sub.s $f0, $f6, $f26 -/* D04C 80031C4C 8FA30060 */ lw $v1, 0x60($sp) -/* D050 80031C50 46000002 */ mul.s $f0, $f0, $f0 -/* D054 80031C54 00000000 */ nop -/* D058 80031C58 E4680000 */ swc1 $f8, 0x0($v1) -/* D05C 80031C5C 8FA30064 */ lw $v1, 0x64($sp) -/* D060 80031C60 E4660000 */ swc1 $f6, 0x0($v1) -/* D064 80031C64 46001080 */ add.s $f2, $f2, $f0 -/* D068 80031C68 8FA30068 */ lw $v1, 0x68($sp) -/* D06C 80031C6C 24020001 */ addiu $v0, $zero, 0x1 -/* D070 80031C70 E4620000 */ swc1 $f2, 0x0($v1) -.LIQUE_80031C74: -/* D074 80031C74 D7BE0038 */ ldc1 $f30, 0x38($sp) -/* D078 80031C78 D7BC0030 */ ldc1 $f28, 0x30($sp) -/* D07C 80031C7C D7BA0028 */ ldc1 $f26, 0x28($sp) -/* D080 80031C80 D7B80020 */ ldc1 $f24, 0x20($sp) -/* D084 80031C84 D7B60018 */ ldc1 $f22, 0x18($sp) -/* D088 80031C88 D7B40010 */ ldc1 $f20, 0x10($sp) -/* D08C 80031C8C 03E00008 */ jr $ra -/* D090 80031C90 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/ver/cn/asm/nonmatchings/camera/func_800325E4.s b/ver/cn/asm/nonmatchings/camera/func_800325E4.s deleted file mode 100644 index f2dd706246..0000000000 --- a/ver/cn/asm/nonmatchings/camera/func_800325E4.s +++ /dev/null @@ -1,190 +0,0 @@ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ - -/* Generated by spimdisasm 1.11.1 */ - -glabel calculate_line_segment_intersection -/* D094 80031C94 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* D098 80031C98 F7BC0030 */ sdc1 $f28, 0x30($sp) -/* D09C 80031C9C 4486E000 */ mtc1 $a2, $f28 -/* D0A0 80031CA0 F7B60018 */ sdc1 $f22, 0x18($sp) -/* D0A4 80031CA4 C7B60050 */ lwc1 $f22, 0x50($sp) -/* D0A8 80031CA8 F7B40010 */ sdc1 $f20, 0x10($sp) -/* D0AC 80031CAC 46006506 */ mov.s $f20, $f12 -/* D0B0 80031CB0 F7BA0028 */ sdc1 $f26, 0x28($sp) -/* D0B4 80031CB4 46007686 */ mov.s $f26, $f14 -/* D0B8 80031CB8 F7B80020 */ sdc1 $f24, 0x20($sp) -/* D0BC 80031CBC 4614E481 */ sub.s $f18, $f28, $f20 -/* D0C0 80031CC0 C7B80054 */ lwc1 $f24, 0x54($sp) -/* D0C4 80031CC4 C7A0005C */ lwc1 $f0, 0x5C($sp) -/* D0C8 80031CC8 461AC181 */ sub.s $f6, $f24, $f26 -/* D0CC 80031CCC F7BE0038 */ sdc1 $f30, 0x38($sp) -/* D0D0 80031CD0 461A0781 */ sub.s $f30, $f0, $f26 -/* D0D4 80031CD4 C7A20058 */ lwc1 $f2, 0x58($sp) -/* D0D8 80031CD8 46161401 */ sub.s $f16, $f2, $f22 -/* D0DC 80031CDC 4487E000 */ mtc1 $a3, $f28 -/* D0E0 80031CE0 00000000 */ nop -/* D0E4 80031CE4 461AE301 */ sub.s $f12, $f28, $f26 -/* D0E8 80031CE8 4614B701 */ sub.s $f28, $f22, $f20 -/* D0EC 80031CEC 46180381 */ sub.s $f14, $f0, $f24 -/* D0F0 80031CF0 E7BC0008 */ swc1 $f28, 0x8($sp) -/* D0F4 80031CF4 46141701 */ sub.s $f28, $f2, $f20 -/* D0F8 80031CF8 44802000 */ mtc1 $zero, $f4 -/* D0FC 80031CFC 46009286 */ mov.s $f10, $f18 -/* D100 80031D00 46049032 */ c.eq.s $f18, $f4 -/* D104 80031D04 46006207 */ neg.s $f8, $f12 -/* D108 80031D08 45000005 */ bc1f .LIQUE_80031D20 -/* D10C 80031D0C E7BC0000 */ swc1 $f28, 0x0($sp) -/* D110 80031D10 46046032 */ c.eq.s $f12, $f4 -/* D114 80031D14 00000000 */ nop -/* D118 80031D18 45010086 */ bc1t .LIQUE_80031F34 -/* D11C 80031D1C 0000102D */ daddu $v0, $zero, $zero -.LIQUE_80031D20: -/* D120 80031D20 44800000 */ mtc1 $zero, $f0 -/* D124 80031D24 00000000 */ nop -/* D128 80031D28 46008032 */ c.eq.s $f16, $f0 -/* D12C 80031D2C 00000000 */ nop -/* D130 80031D30 45000005 */ bc1f .LIQUE_80031D48 -/* D134 80031D34 00000000 */ nop -/* D138 80031D38 46007032 */ c.eq.s $f14, $f0 -/* D13C 80031D3C 00000000 */ nop -/* D140 80031D40 4501007C */ bc1t .LIQUE_80031F34 -/* D144 80031D44 0000102D */ daddu $v0, $zero, $zero -.LIQUE_80031D48: -/* D148 80031D48 46065002 */ mul.s $f0, $f10, $f6 -/* D14C 80031D4C 00000000 */ nop -/* D150 80031D50 C7BC0008 */ lwc1 $f28, 0x8($sp) -/* D154 80031D54 461C4082 */ mul.s $f2, $f8, $f28 -/* D158 80031D58 00000000 */ nop -/* D15C 80031D5C 46001180 */ add.s $f6, $f2, $f0 -/* D160 80031D60 44800000 */ mtc1 $zero, $f0 -/* D164 80031D64 00000000 */ nop -/* D168 80031D68 4600303C */ c.lt.s $f6, $f0 -/* D16C 80031D6C 3C01BF80 */ lui $at, (0xBF800000 >> 16) -/* D170 80031D70 44812000 */ mtc1 $at, $f4 -/* D174 80031D74 45010007 */ bc1t .LIQUE_80031D94 -/* D178 80031D78 00000000 */ nop -/* D17C 80031D7C 4606003C */ c.lt.s $f0, $f6 -/* D180 80031D80 00000000 */ nop -/* D184 80031D84 45000003 */ bc1f .LIQUE_80031D94 -/* D188 80031D88 46000106 */ mov.s $f4, $f0 -/* D18C 80031D8C 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* D190 80031D90 44812000 */ mtc1 $at, $f4 -.LIQUE_80031D94: -/* D194 80031D94 461E5002 */ mul.s $f0, $f10, $f30 -/* D198 80031D98 00000000 */ nop -/* D19C 80031D9C C7BC0000 */ lwc1 $f28, 0x0($sp) -/* D1A0 80031DA0 461C4082 */ mul.s $f2, $f8, $f28 -/* D1A4 80031DA4 00000000 */ nop -/* D1A8 80031DA8 46001080 */ add.s $f2, $f2, $f0 -/* D1AC 80031DAC 44800000 */ mtc1 $zero, $f0 -/* D1B0 80031DB0 00000000 */ nop -/* D1B4 80031DB4 4600103C */ c.lt.s $f2, $f0 -/* D1B8 80031DB8 00000000 */ nop -/* D1BC 80031DBC 45000005 */ bc1f .LIQUE_80031DD4 -/* D1C0 80031DC0 46002186 */ mov.s $f6, $f4 -/* D1C4 80031DC4 3C01BF80 */ lui $at, (0xBF800000 >> 16) -/* D1C8 80031DC8 44810000 */ mtc1 $at, $f0 -/* D1CC 80031DCC 0800C77C */ j .LIQUE_80031DF0 -/* D1D0 80031DD0 00000000 */ nop -.LIQUE_80031DD4: -/* D1D4 80031DD4 4602003C */ c.lt.s $f0, $f2 -/* D1D8 80031DD8 00000000 */ nop -/* D1DC 80031DDC 45000004 */ bc1f .LIQUE_80031DF0 -/* D1E0 80031DE0 00000000 */ nop -/* D1E4 80031DE4 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* D1E8 80031DE8 44810000 */ mtc1 $at, $f0 -/* D1EC 80031DEC 00000000 */ nop -.LIQUE_80031DF0: -/* D1F0 80031DF0 46003032 */ c.eq.s $f6, $f0 -/* D1F4 80031DF4 00000000 */ nop -/* D1F8 80031DF8 4501004E */ bc1t .LIQUE_80031F34 -/* D1FC 80031DFC 0000102D */ daddu $v0, $zero, $zero -/* D200 80031E00 46009085 */ abs.s $f2, $f18 -/* D204 80031E04 46008005 */ abs.s $f0, $f16 -/* D208 80031E08 4602003C */ c.lt.s $f0, $f2 -/* D20C 80031E0C 00000000 */ nop -/* D210 80031E10 4500001E */ bc1f .LIQUE_80031E8C -/* D214 80031E14 00000000 */ nop -/* D218 80031E18 460CA002 */ mul.s $f0, $f20, $f12 -/* D21C 80031E1C 00000000 */ nop -/* D220 80031E20 4612D182 */ mul.s $f6, $f26, $f18 -/* D224 80031E24 00000000 */ nop -/* D228 80031E28 46189202 */ mul.s $f8, $f18, $f24 -/* D22C 80031E2C 00000000 */ nop -/* D230 80031E30 46166282 */ mul.s $f10, $f12, $f22 -/* D234 80031E34 00000000 */ nop -/* D238 80031E38 46106082 */ mul.s $f2, $f12, $f16 -/* D23C 80031E3C 00000000 */ nop -/* D240 80031E40 460E9102 */ mul.s $f4, $f18, $f14 -/* D244 80031E44 00000000 */ nop -/* D248 80031E48 46060001 */ sub.s $f0, $f0, $f6 -/* D24C 80031E4C 46041081 */ sub.s $f2, $f2, $f4 -/* D250 80031E50 46080000 */ add.s $f0, $f0, $f8 -/* D254 80031E54 460A0181 */ sub.s $f6, $f0, $f10 -/* D258 80031E58 46023183 */ div.s $f6, $f6, $f2 -/* D25C 80031E5C 46068002 */ mul.s $f0, $f16, $f6 -/* D260 80031E60 00000000 */ nop -/* D264 80031E64 4600B000 */ add.s $f0, $f22, $f0 -/* D268 80031E68 46140001 */ sub.s $f0, $f0, $f20 -/* D26C 80031E6C 46120183 */ div.s $f6, $f0, $f18 -/* D270 80031E70 46069002 */ mul.s $f0, $f18, $f6 -/* D274 80031E74 00000000 */ nop -/* D278 80031E78 46066082 */ mul.s $f2, $f12, $f6 -/* D27C 80031E7C 00000000 */ nop -/* D280 80031E80 4600A300 */ add.s $f12, $f20, $f0 -/* D284 80031E84 0800C7BF */ j .LIQUE_80031EFC -/* D288 80031E88 4602D180 */ add.s $f6, $f26, $f2 -.LIQUE_80031E8C: -/* D28C 80031E8C 4610C002 */ mul.s $f0, $f24, $f16 -/* D290 80031E90 00000000 */ nop -/* D294 80031E94 460EA182 */ mul.s $f6, $f20, $f14 -/* D298 80031E98 00000000 */ nop -/* D29C 80031E9C 460EC202 */ mul.s $f8, $f24, $f14 -/* D2A0 80031EA0 00000000 */ nop -/* D2A4 80031EA4 4610D282 */ mul.s $f10, $f26, $f16 -/* D2A8 80031EA8 00000000 */ nop -/* D2AC 80031EAC 46106082 */ mul.s $f2, $f12, $f16 -/* D2B0 80031EB0 00000000 */ nop -/* D2B4 80031EB4 460E9102 */ mul.s $f4, $f18, $f14 -/* D2B8 80031EB8 00000000 */ nop -/* D2BC 80031EBC 46060000 */ add.s $f0, $f0, $f6 -/* D2C0 80031EC0 46041081 */ sub.s $f2, $f2, $f4 -/* D2C4 80031EC4 46080001 */ sub.s $f0, $f0, $f8 -/* D2C8 80031EC8 460A0181 */ sub.s $f6, $f0, $f10 -/* D2CC 80031ECC 46023183 */ div.s $f6, $f6, $f2 -/* D2D0 80031ED0 46069002 */ mul.s $f0, $f18, $f6 -/* D2D4 80031ED4 00000000 */ nop -/* D2D8 80031ED8 4600A000 */ add.s $f0, $f20, $f0 -/* D2DC 80031EDC 46160001 */ sub.s $f0, $f0, $f22 -/* D2E0 80031EE0 46100183 */ div.s $f6, $f0, $f16 -/* D2E4 80031EE4 46068002 */ mul.s $f0, $f16, $f6 -/* D2E8 80031EE8 00000000 */ nop -/* D2EC 80031EEC 46067082 */ mul.s $f2, $f14, $f6 -/* D2F0 80031EF0 00000000 */ nop -/* D2F4 80031EF4 4600B300 */ add.s $f12, $f22, $f0 -/* D2F8 80031EF8 4602C180 */ add.s $f6, $f24, $f2 -.LIQUE_80031EFC: -/* D2FC 80031EFC 46166081 */ sub.s $f2, $f12, $f22 -/* D300 80031F00 46021082 */ mul.s $f2, $f2, $f2 -/* D304 80031F04 00000000 */ nop -/* D308 80031F08 46183001 */ sub.s $f0, $f6, $f24 -/* D30C 80031F0C 8FA30060 */ lw $v1, 0x60($sp) -/* D310 80031F10 46000002 */ mul.s $f0, $f0, $f0 -/* D314 80031F14 00000000 */ nop -/* D318 80031F18 E46C0000 */ swc1 $f12, 0x0($v1) -/* D31C 80031F1C 8FA30064 */ lw $v1, 0x64($sp) -/* D320 80031F20 E4660000 */ swc1 $f6, 0x0($v1) -/* D324 80031F24 46001080 */ add.s $f2, $f2, $f0 -/* D328 80031F28 8FA30068 */ lw $v1, 0x68($sp) -/* D32C 80031F2C 24020001 */ addiu $v0, $zero, 0x1 -/* D330 80031F30 E4620000 */ swc1 $f2, 0x0($v1) -.LIQUE_80031F34: -/* D334 80031F34 D7BE0038 */ ldc1 $f30, 0x38($sp) -/* D338 80031F38 D7BC0030 */ ldc1 $f28, 0x30($sp) -/* D33C 80031F3C D7BA0028 */ ldc1 $f26, 0x28($sp) -/* D340 80031F40 D7B80020 */ ldc1 $f24, 0x20($sp) -/* D344 80031F44 D7B60018 */ ldc1 $f22, 0x18($sp) -/* D348 80031F48 D7B40010 */ ldc1 $f20, 0x10($sp) -/* D34C 80031F4C 03E00008 */ jr $ra -/* D350 80031F50 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/ver/jp/asm/nonmatchings/B0E0/update_camera_mode_unused.s b/ver/jp/asm/nonmatchings/B0E0/update_camera_mode_unused.s deleted file mode 100644 index fe444c8ace..0000000000 --- a/ver/jp/asm/nonmatchings/B0E0/update_camera_mode_unused.s +++ /dev/null @@ -1,212 +0,0 @@ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ - -glabel update_camera_mode_unused -/* AD70 8002F970 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* AD74 8002F974 AFB00010 */ sw $s0, 0x10($sp) -/* AD78 8002F978 0080802D */ daddu $s0, $a0, $zero -/* AD7C 8002F97C AFBF0014 */ sw $ra, 0x14($sp) -/* AD80 8002F980 F7BE0040 */ sdc1 $f30, 0x40($sp) -/* AD84 8002F984 F7BC0038 */ sdc1 $f28, 0x38($sp) -/* AD88 8002F988 F7BA0030 */ sdc1 $f26, 0x30($sp) -/* AD8C 8002F98C F7B80028 */ sdc1 $f24, 0x28($sp) -/* AD90 8002F990 F7B60020 */ sdc1 $f22, 0x20($sp) -/* AD94 8002F994 F7B40018 */ sdc1 $f20, 0x18($sp) -/* AD98 8002F998 86020006 */ lh $v0, 0x6($s0) -/* AD9C 8002F99C 3C038011 */ lui $v1, %hi(gPlayerStatus) -/* ADA0 8002F9A0 2463F188 */ addiu $v1, $v1, %lo(gPlayerStatus) -/* ADA4 8002F9A4 14400004 */ bnez $v0, .LJP_8002F9B8 -/* ADA8 8002F9A8 00000000 */ nop -/* ADAC 8002F9AC 86020008 */ lh $v0, 0x8($s0) -/* ADB0 8002F9B0 1040000F */ beqz $v0, .LJP_8002F9F0 -/* ADB4 8002F9B4 00000000 */ nop -.LJP_8002F9B8: -/* ADB8 8002F9B8 C6000054 */ lwc1 $f0, 0x54($s0) -/* ADBC 8002F9BC C6020058 */ lwc1 $f2, 0x58($s0) -/* ADC0 8002F9C0 C604005C */ lwc1 $f4, 0x5C($s0) -/* ADC4 8002F9C4 24020064 */ addiu $v0, $zero, 0x64 -/* ADC8 8002F9C8 A6000006 */ sh $zero, 0x6($s0) -/* ADCC 8002F9CC A6000008 */ sh $zero, 0x8($s0) -/* ADD0 8002F9D0 A600001C */ sh $zero, 0x1C($s0) -/* ADD4 8002F9D4 A602001E */ sh $v0, 0x1E($s0) -/* ADD8 8002F9D8 A6020020 */ sh $v0, 0x20($s0) -/* ADDC 8002F9DC A6000022 */ sh $zero, 0x22($s0) -/* ADE0 8002F9E0 A6000024 */ sh $zero, 0x24($s0) -/* ADE4 8002F9E4 E6000048 */ swc1 $f0, 0x48($s0) -/* ADE8 8002F9E8 E602004C */ swc1 $f2, 0x4C($s0) -/* ADEC 8002F9EC E6040050 */ swc1 $f4, 0x50($s0) -.LJP_8002F9F0: -/* ADF0 8002F9F0 8C620000 */ lw $v0, 0x0($v1) -/* ADF4 8002F9F4 30420006 */ andi $v0, $v0, 0x6 -/* ADF8 8002F9F8 14400007 */ bnez $v0, .LJP_8002FA18 -/* ADFC 8002F9FC 00000000 */ nop -/* AE00 8002FA00 C460002C */ lwc1 $f0, 0x2C($v1) -/* AE04 8002FA04 3C014270 */ lui $at, (0x42700000 >> 16) -/* AE08 8002FA08 44811000 */ mtc1 $at, $f2 -/* AE0C 8002FA0C 00000000 */ nop -/* AE10 8002FA10 46020000 */ add.s $f0, $f0, $f2 -/* AE14 8002FA14 E6000058 */ swc1 $f0, 0x58($s0) -.LJP_8002FA18: -/* AE18 8002FA18 C4600028 */ lwc1 $f0, 0x28($v1) -/* AE1C 8002FA1C 3C0143C8 */ lui $at, (0x43C80000 >> 16) -/* AE20 8002FA20 44811000 */ mtc1 $at, $f2 -/* AE24 8002FA24 E6000054 */ swc1 $f0, 0x54($s0) -/* AE28 8002FA28 C4600030 */ lwc1 $f0, 0x30($v1) -/* AE2C 8002FA2C 46020000 */ add.s $f0, $f0, $f2 -/* AE30 8002FA30 8602001C */ lh $v0, 0x1C($s0) -/* AE34 8002FA34 14400062 */ bnez $v0, .LJP_8002FBC0 -/* AE38 8002FA38 E600005C */ swc1 $f0, 0x5C($s0) -/* AE3C 8002FA3C 86030020 */ lh $v1, 0x20($s0) -/* AE40 8002FA40 24022710 */ addiu $v0, $zero, 0x2710 -/* AE44 8002FA44 14600002 */ bnez $v1, .LJP_8002FA50 -/* AE48 8002FA48 0043001A */ div $zero, $v0, $v1 -/* AE4C 8002FA4C 0007000D */ break 7 -.LJP_8002FA50: -/* AE50 8002FA50 2401FFFF */ addiu $at, $zero, -0x1 -/* AE54 8002FA54 14610004 */ bne $v1, $at, .LJP_8002FA68 -/* AE58 8002FA58 3C018000 */ lui $at, (0x80000000 >> 16) -/* AE5C 8002FA5C 14410002 */ bne $v0, $at, .LJP_8002FA68 -/* AE60 8002FA60 00000000 */ nop -/* AE64 8002FA64 0006000D */ break 6 -.LJP_8002FA68: -/* AE68 8002FA68 00002012 */ mflo $a0 -/* AE6C 8002FA6C C6000054 */ lwc1 $f0, 0x54($s0) -/* AE70 8002FA70 C6020058 */ lwc1 $f2, 0x58($s0) -/* AE74 8002FA74 C604005C */ lwc1 $f4, 0x5C($s0) -/* AE78 8002FA78 86020024 */ lh $v0, 0x24($s0) -/* AE7C 8002FA7C 8603001E */ lh $v1, 0x1E($s0) -/* AE80 8002FA80 E6000048 */ swc1 $f0, 0x48($s0) -/* AE84 8002FA84 44820000 */ mtc1 $v0, $f0 -/* AE88 8002FA88 00000000 */ nop -/* AE8C 8002FA8C 46800020 */ cvt.s.w $f0, $f0 -/* AE90 8002FA90 86020022 */ lh $v0, 0x22($s0) -/* AE94 8002FA94 E602004C */ swc1 $f2, 0x4C($s0) -/* AE98 8002FA98 E6040050 */ swc1 $f4, 0x50($s0) -/* AE9C 8002FA9C E6000084 */ swc1 $f0, 0x84($s0) -/* AEA0 8002FAA0 44820000 */ mtc1 $v0, $f0 -/* AEA4 8002FAA4 00000000 */ nop -/* AEA8 8002FAA8 46800020 */ cvt.s.w $f0, $f0 -/* AEAC 8002FAAC E6000074 */ swc1 $f0, 0x74($s0) -/* AEB0 8002FAB0 44830000 */ mtc1 $v1, $f0 -/* AEB4 8002FAB4 00000000 */ nop -/* AEB8 8002FAB8 46800020 */ cvt.s.w $f0, $f0 -/* AEBC 8002FABC 04810002 */ bgez $a0, .LJP_8002FAC8 -/* AEC0 8002FAC0 E6000078 */ swc1 $f0, 0x78($s0) -/* AEC4 8002FAC4 24840003 */ addiu $a0, $a0, 0x3 -.LJP_8002FAC8: -/* AEC8 8002FAC8 C6020074 */ lwc1 $f2, 0x74($s0) -/* AECC 8002FACC 3C0140C9 */ lui $at, (0x40C90FD0 >> 16) -/* AED0 8002FAD0 34210FD0 */ ori $at, $at, (0x40C90FD0 & 0xFFFF) -/* AED4 8002FAD4 4481A000 */ mtc1 $at, $f20 -/* AED8 8002FAD8 00041083 */ sra $v0, $a0, 2 -/* AEDC 8002FADC 46141082 */ mul.s $f2, $f2, $f20 -/* AEE0 8002FAE0 00000000 */ nop -/* AEE4 8002FAE4 4480F000 */ mtc1 $zero, $f30 -/* AEE8 8002FAE8 3C0143B4 */ lui $at, (0x43B40000 >> 16) -/* AEEC 8002FAEC 4481B000 */ mtc1 $at, $f22 -/* AEF0 8002FAF0 44820000 */ mtc1 $v0, $f0 -/* AEF4 8002FAF4 00000000 */ nop -/* AEF8 8002FAF8 46800020 */ cvt.s.w $f0, $f0 -/* AEFC 8002FAFC E6000018 */ swc1 $f0, 0x18($s0) -/* AF00 8002FB00 46161683 */ div.s $f26, $f2, $f22 -/* AF04 8002FB04 0C00A84B */ jal sin_rad -/* AF08 8002FB08 4600D306 */ mov.s $f12, $f26 -/* AF0C 8002FB0C 46000706 */ mov.s $f28, $f0 -/* AF10 8002FB10 0C00A864 */ jal cos_rad -/* AF14 8002FB14 4600D306 */ mov.s $f12, $f26 -/* AF18 8002FB18 461E0202 */ mul.s $f8, $f0, $f30 -/* AF1C 8002FB1C 00000000 */ nop -/* AF20 8002FB20 4600F087 */ neg.s $f2, $f30 -/* AF24 8002FB24 4602E082 */ mul.s $f2, $f28, $f2 -/* AF28 8002FB28 00000000 */ nop -/* AF2C 8002FB2C C6180078 */ lwc1 $f24, 0x78($s0) -/* AF30 8002FB30 461CC102 */ mul.s $f4, $f24, $f28 -/* AF34 8002FB34 00000000 */ nop -/* AF38 8002FB38 4600C182 */ mul.s $f6, $f24, $f0 -/* AF3C 8002FB3C 00000000 */ nop -/* AF40 8002FB40 C6000084 */ lwc1 $f0, 0x84($s0) -/* AF44 8002FB44 46140002 */ mul.s $f0, $f0, $f20 -/* AF48 8002FB48 00000000 */ nop -/* AF4C 8002FB4C 4600F286 */ mov.s $f10, $f30 -/* AF50 8002FB50 46005506 */ mov.s $f20, $f10 -/* AF54 8002FB54 46044780 */ add.s $f30, $f8, $f4 -/* AF58 8002FB58 46061600 */ add.s $f24, $f2, $f6 -/* AF5C 8002FB5C 46160683 */ div.s $f26, $f0, $f22 -/* AF60 8002FB60 0C00A84B */ jal sin_rad -/* AF64 8002FB64 4600D306 */ mov.s $f12, $f26 -/* AF68 8002FB68 46000706 */ mov.s $f28, $f0 -/* AF6C 8002FB6C 0C00A864 */ jal cos_rad -/* AF70 8002FB70 4600D306 */ mov.s $f12, $f26 -/* AF74 8002FB74 46140182 */ mul.s $f6, $f0, $f20 -/* AF78 8002FB78 00000000 */ nop -/* AF7C 8002FB7C 4614E102 */ mul.s $f4, $f28, $f20 -/* AF80 8002FB80 00000000 */ nop -/* AF84 8002FB84 461CC082 */ mul.s $f2, $f24, $f28 -/* AF88 8002FB88 00000000 */ nop -/* AF8C 8002FB8C 4600C002 */ mul.s $f0, $f24, $f0 -/* AF90 8002FB90 00000000 */ nop -/* AF94 8002FB94 46023281 */ sub.s $f10, $f6, $f2 -/* AF98 8002FB98 46002100 */ add.s $f4, $f4, $f0 -/* AF9C 8002FB9C C600004C */ lwc1 $f0, 0x4C($s0) -/* AFA0 8002FBA0 461E0000 */ add.s $f0, $f0, $f30 -/* AFA4 8002FBA4 C6060048 */ lwc1 $f6, 0x48($s0) -/* AFA8 8002FBA8 460A3180 */ add.s $f6, $f6, $f10 -/* AFAC 8002FBAC C6020050 */ lwc1 $f2, 0x50($s0) -/* AFB0 8002FBB0 46041080 */ add.s $f2, $f2, $f4 -/* AFB4 8002FBB4 E6000040 */ swc1 $f0, 0x40($s0) -/* AFB8 8002FBB8 E606003C */ swc1 $f6, 0x3C($s0) -/* AFBC 8002FBBC E6020044 */ swc1 $f2, 0x44($s0) -.LJP_8002FBC0: -/* AFC0 8002FBC0 C60C003C */ lwc1 $f12, 0x3C($s0) -/* AFC4 8002FBC4 C60E0044 */ lwc1 $f14, 0x44($s0) -/* AFC8 8002FBC8 8E060048 */ lw $a2, 0x48($s0) -/* AFCC 8002FBCC 0C00A710 */ jal atan2 -/* AFD0 8002FBD0 8E070050 */ lw $a3, 0x50($s0) -/* AFD4 8002FBD4 C6040048 */ lwc1 $f4, 0x48($s0) -/* AFD8 8002FBD8 4480B000 */ mtc1 $zero, $f22 -/* AFDC 8002FBDC C602003C */ lwc1 $f2, 0x3C($s0) -/* AFE0 8002FBE0 E600006C */ swc1 $f0, 0x6C($s0) -/* AFE4 8002FBE4 46022501 */ sub.s $f20, $f4, $f2 -/* AFE8 8002FBE8 C6040050 */ lwc1 $f4, 0x50($s0) -/* AFEC 8002FBEC C6020044 */ lwc1 $f2, 0x44($s0) -/* AFF0 8002FBF0 4600B306 */ mov.s $f12, $f22 -/* AFF4 8002FBF4 46022601 */ sub.s $f24, $f4, $f2 -/* AFF8 8002FBF8 C604004C */ lwc1 $f4, 0x4C($s0) -/* AFFC 8002FBFC C6020040 */ lwc1 $f2, 0x40($s0) -/* B000 8002FC00 4406A000 */ mfc1 $a2, $f20 -/* B004 8002FC04 46022781 */ sub.s $f30, $f4, $f2 -/* B008 8002FC08 4407C000 */ mfc1 $a3, $f24 -/* B00C 8002FC0C 0C00A710 */ jal atan2 -/* B010 8002FC10 4600B386 */ mov.s $f14, $f22 -/* B014 8002FC14 4614A102 */ mul.s $f4, $f20, $f20 -/* B018 8002FC18 00000000 */ nop -/* B01C 8002FC1C 4618C082 */ mul.s $f2, $f24, $f24 -/* B020 8002FC20 00000000 */ nop -/* B024 8002FC24 46022300 */ add.s $f12, $f4, $f2 -/* B028 8002FC28 46000007 */ neg.s $f0, $f0 -/* B02C 8002FC2C E6000090 */ swc1 $f0, 0x90($s0) -/* B030 8002FC30 46006004 */ sqrt.s $f0, $f12 -/* B034 8002FC34 46000032 */ c.eq.s $f0, $f0 -/* B038 8002FC38 00000000 */ nop -/* B03C 8002FC3C 45030004 */ bc1tl .LJP_8002FC50 -/* B040 8002FC40 4600B306 */ mov.s $f12, $f22 -/* B044 8002FC44 0C0187B0 */ jal sqrtf -/* B048 8002FC48 00000000 */ nop -/* B04C 8002FC4C 4600B306 */ mov.s $f12, $f22 -.LJP_8002FC50: -/* B050 8002FC50 46000007 */ neg.s $f0, $f0 -/* B054 8002FC54 4406F000 */ mfc1 $a2, $f30 -/* B058 8002FC58 44070000 */ mfc1 $a3, $f0 -/* B05C 8002FC5C 0C00A710 */ jal atan2 -/* B060 8002FC60 46006386 */ mov.s $f14, $f12 -/* B064 8002FC64 E6000094 */ swc1 $f0, 0x94($s0) -/* B068 8002FC68 8FBF0014 */ lw $ra, 0x14($sp) -/* B06C 8002FC6C 8FB00010 */ lw $s0, 0x10($sp) -/* B070 8002FC70 D7BE0040 */ ldc1 $f30, 0x40($sp) -/* B074 8002FC74 D7BC0038 */ ldc1 $f28, 0x38($sp) -/* B078 8002FC78 D7BA0030 */ ldc1 $f26, 0x30($sp) -/* B07C 8002FC7C D7B80028 */ ldc1 $f24, 0x28($sp) -/* B080 8002FC80 D7B60020 */ ldc1 $f22, 0x20($sp) -/* B084 8002FC84 D7B40018 */ ldc1 $f20, 0x18($sp) -/* B088 8002FC88 03E00008 */ jr $ra -/* B08C 8002FC8C 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/ver/us/asm/nonmatchings/B0E0/update_camera_mode_unused.s b/ver/us/asm/nonmatchings/B0E0/update_camera_mode_unused.s deleted file mode 100644 index f8e9277eac..0000000000 --- a/ver/us/asm/nonmatchings/B0E0/update_camera_mode_unused.s +++ /dev/null @@ -1,212 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel update_camera_mode_unused -/* B0E0 8002FCE0 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* B0E4 8002FCE4 AFB00010 */ sw $s0, 0x10($sp) -/* B0E8 8002FCE8 0080802D */ daddu $s0, $a0, $zero -/* B0EC 8002FCEC AFBF0014 */ sw $ra, 0x14($sp) -/* B0F0 8002FCF0 F7BE0040 */ sdc1 $f30, 0x40($sp) -/* B0F4 8002FCF4 F7BC0038 */ sdc1 $f28, 0x38($sp) -/* B0F8 8002FCF8 F7BA0030 */ sdc1 $f26, 0x30($sp) -/* B0FC 8002FCFC F7B80028 */ sdc1 $f24, 0x28($sp) -/* B100 8002FD00 F7B60020 */ sdc1 $f22, 0x20($sp) -/* B104 8002FD04 F7B40018 */ sdc1 $f20, 0x18($sp) -/* B108 8002FD08 86020006 */ lh $v0, 6($s0) -/* B10C 8002FD0C 3C038011 */ lui $v1, %hi(gPlayerStatus) -/* B110 8002FD10 2463EFC8 */ addiu $v1, $v1, %lo(gPlayerStatus) -/* B114 8002FD14 14400004 */ bnez $v0, .L8002FD28 -/* B118 8002FD18 00000000 */ nop -/* B11C 8002FD1C 86020008 */ lh $v0, 8($s0) -/* B120 8002FD20 1040000F */ beqz $v0, .L8002FD60 -/* B124 8002FD24 00000000 */ nop -.L8002FD28: -/* B128 8002FD28 C6000054 */ lwc1 $f0, 0x54($s0) -/* B12C 8002FD2C C6020058 */ lwc1 $f2, 0x58($s0) -/* B130 8002FD30 C604005C */ lwc1 $f4, 0x5c($s0) -/* B134 8002FD34 24020064 */ addiu $v0, $zero, 0x64 -/* B138 8002FD38 A6000006 */ sh $zero, 6($s0) -/* B13C 8002FD3C A6000008 */ sh $zero, 8($s0) -/* B140 8002FD40 A600001C */ sh $zero, 0x1c($s0) -/* B144 8002FD44 A602001E */ sh $v0, 0x1e($s0) -/* B148 8002FD48 A6020020 */ sh $v0, 0x20($s0) -/* B14C 8002FD4C A6000022 */ sh $zero, 0x22($s0) -/* B150 8002FD50 A6000024 */ sh $zero, 0x24($s0) -/* B154 8002FD54 E6000048 */ swc1 $f0, 0x48($s0) -/* B158 8002FD58 E602004C */ swc1 $f2, 0x4c($s0) -/* B15C 8002FD5C E6040050 */ swc1 $f4, 0x50($s0) -.L8002FD60: -/* B160 8002FD60 8C620000 */ lw $v0, ($v1) -/* B164 8002FD64 30420006 */ andi $v0, $v0, 6 -/* B168 8002FD68 14400007 */ bnez $v0, .L8002FD88 -/* B16C 8002FD6C 00000000 */ nop -/* B170 8002FD70 C460002C */ lwc1 $f0, 0x2c($v1) -/* B174 8002FD74 3C014270 */ lui $at, 0x4270 -/* B178 8002FD78 44811000 */ mtc1 $at, $f2 -/* B17C 8002FD7C 00000000 */ nop -/* B180 8002FD80 46020000 */ add.s $f0, $f0, $f2 -/* B184 8002FD84 E6000058 */ swc1 $f0, 0x58($s0) -.L8002FD88: -/* B188 8002FD88 C4600028 */ lwc1 $f0, 0x28($v1) -/* B18C 8002FD8C 3C0143C8 */ lui $at, 0x43c8 -/* B190 8002FD90 44811000 */ mtc1 $at, $f2 -/* B194 8002FD94 E6000054 */ swc1 $f0, 0x54($s0) -/* B198 8002FD98 C4600030 */ lwc1 $f0, 0x30($v1) -/* B19C 8002FD9C 46020000 */ add.s $f0, $f0, $f2 -/* B1A0 8002FDA0 8602001C */ lh $v0, 0x1c($s0) -/* B1A4 8002FDA4 14400062 */ bnez $v0, .L8002FF30 -/* B1A8 8002FDA8 E600005C */ swc1 $f0, 0x5c($s0) -/* B1AC 8002FDAC 86030020 */ lh $v1, 0x20($s0) -/* B1B0 8002FDB0 24022710 */ addiu $v0, $zero, 0x2710 -/* B1B4 8002FDB4 14600002 */ bnez $v1, .L8002FDC0 -/* B1B8 8002FDB8 0043001A */ div $zero, $v0, $v1 -/* B1BC 8002FDBC 0007000D */ break 7 -.L8002FDC0: -/* B1C0 8002FDC0 2401FFFF */ addiu $at, $zero, -1 -/* B1C4 8002FDC4 14610004 */ bne $v1, $at, .L8002FDD8 -/* B1C8 8002FDC8 3C018000 */ lui $at, 0x8000 -/* B1CC 8002FDCC 14410002 */ bne $v0, $at, .L8002FDD8 -/* B1D0 8002FDD0 00000000 */ nop -/* B1D4 8002FDD4 0006000D */ break 6 -.L8002FDD8: -/* B1D8 8002FDD8 00002012 */ mflo $a0 -/* B1DC 8002FDDC C6000054 */ lwc1 $f0, 0x54($s0) -/* B1E0 8002FDE0 C6020058 */ lwc1 $f2, 0x58($s0) -/* B1E4 8002FDE4 C604005C */ lwc1 $f4, 0x5c($s0) -/* B1E8 8002FDE8 86020024 */ lh $v0, 0x24($s0) -/* B1EC 8002FDEC 8603001E */ lh $v1, 0x1e($s0) -/* B1F0 8002FDF0 E6000048 */ swc1 $f0, 0x48($s0) -/* B1F4 8002FDF4 44820000 */ mtc1 $v0, $f0 -/* B1F8 8002FDF8 00000000 */ nop -/* B1FC 8002FDFC 46800020 */ cvt.s.w $f0, $f0 -/* B200 8002FE00 86020022 */ lh $v0, 0x22($s0) -/* B204 8002FE04 E602004C */ swc1 $f2, 0x4c($s0) -/* B208 8002FE08 E6040050 */ swc1 $f4, 0x50($s0) -/* B20C 8002FE0C E6000084 */ swc1 $f0, 0x84($s0) -/* B210 8002FE10 44820000 */ mtc1 $v0, $f0 -/* B214 8002FE14 00000000 */ nop -/* B218 8002FE18 46800020 */ cvt.s.w $f0, $f0 -/* B21C 8002FE1C E6000074 */ swc1 $f0, 0x74($s0) -/* B220 8002FE20 44830000 */ mtc1 $v1, $f0 -/* B224 8002FE24 00000000 */ nop -/* B228 8002FE28 46800020 */ cvt.s.w $f0, $f0 -/* B22C 8002FE2C 04810002 */ bgez $a0, .L8002FE38 -/* B230 8002FE30 E6000078 */ swc1 $f0, 0x78($s0) -/* B234 8002FE34 24840003 */ addiu $a0, $a0, 3 -.L8002FE38: -/* B238 8002FE38 C6020074 */ lwc1 $f2, 0x74($s0) -/* B23C 8002FE3C 3C0140C9 */ lui $at, 0x40c9 -/* B240 8002FE40 34210FD0 */ ori $at, $at, 0xfd0 -/* B244 8002FE44 4481A000 */ mtc1 $at, $f20 -/* B248 8002FE48 00041083 */ sra $v0, $a0, 2 -/* B24C 8002FE4C 46141082 */ mul.s $f2, $f2, $f20 -/* B250 8002FE50 00000000 */ nop -/* B254 8002FE54 4480F000 */ mtc1 $zero, $f30 -/* B258 8002FE58 3C0143B4 */ lui $at, 0x43b4 -/* B25C 8002FE5C 4481B000 */ mtc1 $at, $f22 -/* B260 8002FE60 44820000 */ mtc1 $v0, $f0 -/* B264 8002FE64 00000000 */ nop -/* B268 8002FE68 46800020 */ cvt.s.w $f0, $f0 -/* B26C 8002FE6C E6000018 */ swc1 $f0, 0x18($s0) -/* B270 8002FE70 46161683 */ div.s $f26, $f2, $f22 -/* B274 8002FE74 0C00A85B */ jal sin_rad -/* B278 8002FE78 4600D306 */ mov.s $f12, $f26 -/* B27C 8002FE7C 46000706 */ mov.s $f28, $f0 -/* B280 8002FE80 0C00A874 */ jal cos_rad -/* B284 8002FE84 4600D306 */ mov.s $f12, $f26 -/* B288 8002FE88 461E0202 */ mul.s $f8, $f0, $f30 -/* B28C 8002FE8C 00000000 */ nop -/* B290 8002FE90 4600F087 */ neg.s $f2, $f30 -/* B294 8002FE94 4602E082 */ mul.s $f2, $f28, $f2 -/* B298 8002FE98 00000000 */ nop -/* B29C 8002FE9C C6180078 */ lwc1 $f24, 0x78($s0) -/* B2A0 8002FEA0 461CC102 */ mul.s $f4, $f24, $f28 -/* B2A4 8002FEA4 00000000 */ nop -/* B2A8 8002FEA8 4600C182 */ mul.s $f6, $f24, $f0 -/* B2AC 8002FEAC 00000000 */ nop -/* B2B0 8002FEB0 C6000084 */ lwc1 $f0, 0x84($s0) -/* B2B4 8002FEB4 46140002 */ mul.s $f0, $f0, $f20 -/* B2B8 8002FEB8 00000000 */ nop -/* B2BC 8002FEBC 4600F286 */ mov.s $f10, $f30 -/* B2C0 8002FEC0 46005506 */ mov.s $f20, $f10 -/* B2C4 8002FEC4 46044780 */ add.s $f30, $f8, $f4 -/* B2C8 8002FEC8 46061600 */ add.s $f24, $f2, $f6 -/* B2CC 8002FECC 46160683 */ div.s $f26, $f0, $f22 -/* B2D0 8002FED0 0C00A85B */ jal sin_rad -/* B2D4 8002FED4 4600D306 */ mov.s $f12, $f26 -/* B2D8 8002FED8 46000706 */ mov.s $f28, $f0 -/* B2DC 8002FEDC 0C00A874 */ jal cos_rad -/* B2E0 8002FEE0 4600D306 */ mov.s $f12, $f26 -/* B2E4 8002FEE4 46140182 */ mul.s $f6, $f0, $f20 -/* B2E8 8002FEE8 00000000 */ nop -/* B2EC 8002FEEC 4614E102 */ mul.s $f4, $f28, $f20 -/* B2F0 8002FEF0 00000000 */ nop -/* B2F4 8002FEF4 461CC082 */ mul.s $f2, $f24, $f28 -/* B2F8 8002FEF8 00000000 */ nop -/* B2FC 8002FEFC 4600C002 */ mul.s $f0, $f24, $f0 -/* B300 8002FF00 00000000 */ nop -/* B304 8002FF04 46023281 */ sub.s $f10, $f6, $f2 -/* B308 8002FF08 46002100 */ add.s $f4, $f4, $f0 -/* B30C 8002FF0C C600004C */ lwc1 $f0, 0x4c($s0) -/* B310 8002FF10 461E0000 */ add.s $f0, $f0, $f30 -/* B314 8002FF14 C6060048 */ lwc1 $f6, 0x48($s0) -/* B318 8002FF18 460A3180 */ add.s $f6, $f6, $f10 -/* B31C 8002FF1C C6020050 */ lwc1 $f2, 0x50($s0) -/* B320 8002FF20 46041080 */ add.s $f2, $f2, $f4 -/* B324 8002FF24 E6000040 */ swc1 $f0, 0x40($s0) -/* B328 8002FF28 E606003C */ swc1 $f6, 0x3c($s0) -/* B32C 8002FF2C E6020044 */ swc1 $f2, 0x44($s0) -.L8002FF30: -/* B330 8002FF30 C60C003C */ lwc1 $f12, 0x3c($s0) -/* B334 8002FF34 C60E0044 */ lwc1 $f14, 0x44($s0) -/* B338 8002FF38 8E060048 */ lw $a2, 0x48($s0) -/* B33C 8002FF3C 0C00A720 */ jal atan2 -/* B340 8002FF40 8E070050 */ lw $a3, 0x50($s0) -/* B344 8002FF44 C6040048 */ lwc1 $f4, 0x48($s0) -/* B348 8002FF48 4480B000 */ mtc1 $zero, $f22 -/* B34C 8002FF4C C602003C */ lwc1 $f2, 0x3c($s0) -/* B350 8002FF50 E600006C */ swc1 $f0, 0x6c($s0) -/* B354 8002FF54 46022501 */ sub.s $f20, $f4, $f2 -/* B358 8002FF58 C6040050 */ lwc1 $f4, 0x50($s0) -/* B35C 8002FF5C C6020044 */ lwc1 $f2, 0x44($s0) -/* B360 8002FF60 4600B306 */ mov.s $f12, $f22 -/* B364 8002FF64 46022601 */ sub.s $f24, $f4, $f2 -/* B368 8002FF68 C604004C */ lwc1 $f4, 0x4c($s0) -/* B36C 8002FF6C C6020040 */ lwc1 $f2, 0x40($s0) -/* B370 8002FF70 4406A000 */ mfc1 $a2, $f20 -/* B374 8002FF74 46022781 */ sub.s $f30, $f4, $f2 -/* B378 8002FF78 4407C000 */ mfc1 $a3, $f24 -/* B37C 8002FF7C 0C00A720 */ jal atan2 -/* B380 8002FF80 4600B386 */ mov.s $f14, $f22 -/* B384 8002FF84 4614A102 */ mul.s $f4, $f20, $f20 -/* B388 8002FF88 00000000 */ nop -/* B38C 8002FF8C 4618C082 */ mul.s $f2, $f24, $f24 -/* B390 8002FF90 00000000 */ nop -/* B394 8002FF94 46022300 */ add.s $f12, $f4, $f2 -/* B398 8002FF98 46000007 */ neg.s $f0, $f0 -/* B39C 8002FF9C E6000090 */ swc1 $f0, 0x90($s0) -/* B3A0 8002FFA0 46006004 */ sqrt.s $f0, $f12 -/* B3A4 8002FFA4 46000032 */ c.eq.s $f0, $f0 -/* B3A8 8002FFA8 00000000 */ nop -/* B3AC 8002FFAC 45030004 */ bc1tl .L8002FFC0 -/* B3B0 8002FFB0 4600B306 */ mov.s $f12, $f22 -/* B3B4 8002FFB4 0C0187BC */ jal sqrtf -/* B3B8 8002FFB8 00000000 */ nop -/* B3BC 8002FFBC 4600B306 */ mov.s $f12, $f22 -.L8002FFC0: -/* B3C0 8002FFC0 46000007 */ neg.s $f0, $f0 -/* B3C4 8002FFC4 4406F000 */ mfc1 $a2, $f30 -/* B3C8 8002FFC8 44070000 */ mfc1 $a3, $f0 -/* B3CC 8002FFCC 0C00A720 */ jal atan2 -/* B3D0 8002FFD0 46006386 */ mov.s $f14, $f12 -/* B3D4 8002FFD4 E6000094 */ swc1 $f0, 0x94($s0) -/* B3D8 8002FFD8 8FBF0014 */ lw $ra, 0x14($sp) -/* B3DC 8002FFDC 8FB00010 */ lw $s0, 0x10($sp) -/* B3E0 8002FFE0 D7BE0040 */ ldc1 $f30, 0x40($sp) -/* B3E4 8002FFE4 D7BC0038 */ ldc1 $f28, 0x38($sp) -/* B3E8 8002FFE8 D7BA0030 */ ldc1 $f26, 0x30($sp) -/* B3EC 8002FFEC D7B80028 */ ldc1 $f24, 0x28($sp) -/* B3F0 8002FFF0 D7B60020 */ ldc1 $f22, 0x20($sp) -/* B3F4 8002FFF4 D7B40018 */ ldc1 $f20, 0x18($sp) -/* B3F8 8002FFF8 03E00008 */ jr $ra -/* B3FC 8002FFFC 27BD0048 */ addiu $sp, $sp, 0x48