match update_camera_mode_4/6 (#919)

This commit is contained in:
MS-DOS1999 2023-01-24 00:46:51 +01:00 committed by GitHub
parent bfbb7d1f98
commit ebe5fbd0f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 148 additions and 527 deletions

View File

@ -777,8 +777,8 @@ typedef struct Camera {
/* 0x084 */ Vec3f trueRotation;
/* 0x090 */ f32 currentBlendedYawNegated;
/* 0x094 */ f32 currentPitch;
/* 0x098 */ s32 unk_98;
/* 0x09C */ s32 unk_9C;
/* 0x098 */ f32 unk_98;
/* 0x09C */ f32 unk_9C;
/* 0x0A0 */ Vp vp;
/* 0x0B0 */ Vp vpAlt;
/* 0x0C0 */ s32 unk_C0;

View File

@ -1,7 +1,108 @@
#include "common.h"
#include "camera.h"
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_4, Camera* camera);
void update_camera_mode_4(Camera* camera) {
f32 sinBoom;
f32 cosBoom;
f32 deltaX;
f32 deltaY;
f32 deltaZ;
f32 deltaX2;
f32 deltaY2;
f32 deltaZ2;
f32 boomYaw;
f32 boomLength;
f32 f0;
f32 f4;
f32 new_var;
f0 = camera->targetPos.x;
deltaX = camera->auxPitch;
if (f0 > deltaX) {
f0 = deltaX;
}
if (f0 < -deltaX) {
f0 = -deltaX;
}
camera->lookAt_obj_target.x = f0;
f4 = camera->targetPos.z;
deltaZ = camera->auxBoomLength;
if (f4 > deltaZ) {
f4 = deltaZ;
}
if (f4 < -deltaZ) {
f4 = -deltaZ;
}
camera->lookAt_obj_target.z = f4;
camera->unk_70 = 0.0f;
camera->currentBoomYaw = 0.0f;
camera->trueRotation.x = camera->unk_70;
camera->currentBoomLength = camera->lookAt_dist * D_8009A5EC;
camera->currentYOffset = camera->auxBoomPitch * D_8009A5EC;
if (camera->unk_06 != 0) {
camera->unk_06 = 0;
camera->unk_98 = 0.0f;
camera->unk_9C = 0.0f;
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);
deltaX = 0.0f;
deltaY = 0.0f;
deltaZ = camera->currentBoomLength;
deltaX2 = deltaX;
deltaY2 = deltaY;
boomYaw = deltaX = -deltaY2;
deltaZ2 = deltaZ;
new_var = boomYaw;
deltaX = deltaX2;
deltaY = cosBoom * deltaY2 + deltaZ2 * sinBoom;
deltaZ = sinBoom * new_var + deltaZ2 * cosBoom;
boomYaw = DEG_TO_RAD(camera->unk_70);
sinBoom = sin_rad(boomYaw);
cosBoom = cos_rad(boomYaw);
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->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);
deltaX = 0.0f;
deltaY = 0.0f;
deltaZ = camera->currentBoomLength;
deltaX2 = deltaX;
deltaY2 = deltaY;
boomYaw = deltaX = -deltaY2;
deltaZ2 = deltaZ;
new_var = boomYaw;
deltaX = deltaX2;
deltaY = cosBoom * deltaY2 + deltaZ2 * sinBoom;
deltaZ = sinBoom * new_var + deltaZ2 * cosBoom;
boomYaw = DEG_TO_RAD(camera->unk_70);
sinBoom = sin_rad(boomYaw);
cosBoom = cos_rad(boomYaw);
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);
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)));
}
INCLUDE_ASM(void, "9d10_len_1080", update_camera_mode_2, Camera* camera);

View File

@ -1,23 +1,21 @@
#include "common.h"
void update_camera_mode_6(Camera* camera);
// types, floats, and other shtuff
#ifdef NON_EQUIVALENT
void update_camera_mode_6(Camera* camera) {
f32 xDiff, yDiff, zDiff;
f32 sinBoom;
f32 cosBoom;
f32 deltaX;
f32 deltaY;
f32 deltaZ;
f32 deltaX2;
f32 deltaY2;
f32 deltaZ2;
f32 boomYaw;
f32 sinBoomYaw;
f32 cosBoomYaw;
f32 trueRotX;
f32 sinRotX;
f32 cosRotX;
f32 temp_f24_2;
f32 temp_f30;
s32 var_v1;
f32 new_var;
if (camera->unk_06 != 0 || camera->changingMap) {
if (camera->unk_06 != 0 || camera->isChangingMap) {
camera->unk_06 = 0;
camera->changingMap = 0;
camera->isChangingMap = FALSE;
camera->auxPitch = 0;
camera->auxBoomLength = 100;
camera->lookAt_dist = 100;
@ -31,41 +29,46 @@ void update_camera_mode_6(Camera* camera) {
camera->lookAt_obj.y = camera->lookAt_obj_target.y;
camera->lookAt_obj.z = camera->lookAt_obj_target.z;
}
if (camera->auxPitch == 0) {
var_v1 = 10000 / camera->lookAt_dist;
camera->lookAt_obj.x = camera->lookAt_obj_target.x + camera->targetPos.x;
camera->lookAt_obj.y = camera->lookAt_obj_target.y + camera->targetPos.y + camera->auxBoomZOffset * 0.00390625;
camera->lookAt_obj.z = camera->lookAt_obj_target.z + camera->targetPos.z;
camera->trueRotation.x = camera->auxBoomYaw;
camera->currentBoomYaw = camera->auxBoomPitch;
camera->currentBoomLength = camera->auxBoomLength;
camera->lookAt_obj.x = camera->lookAt_obj_target.x + camera->targetPos.x;
camera->lookAt_obj.y = (camera->lookAt_obj_target.y + camera->targetPos.y) + (camera->auxBoomZOffset * 0.00390625);
camera->lookAt_obj.z = camera->lookAt_obj_target.z + camera->targetPos.z;
if (var_v1 < 0) {
var_v1 += 3;
}
camera->vfov = (var_v1 >> 2);
camera->vfov = (10000 / camera->lookAt_dist) / 4;
boomYaw = DEG_TO_RAD(camera->currentBoomYaw);
sinBoomYaw = sin_rad(boomYaw);
cosBoomYaw = cos_rad(boomYaw);
temp_f30 = (cosBoomYaw * 0.0f) + (camera->currentBoomLength * sinBoomYaw);
temp_f24_2 = (sinBoomYaw * -0.0f) + (camera->currentBoomLength * cosBoomYaw);
trueRotX = DEG_TO_RAD(camera->trueRotation.x);
sinRotX = sin_rad(trueRotX);
cosRotX = cos_rad(trueRotX);
camera->lookAt_eye.x = camera->lookAt_obj.x + ((cosRotX * 0.0f) - (temp_f24_2 * sinRotX));
camera->lookAt_eye.y = camera->lookAt_obj.y + temp_f30;
camera->lookAt_eye.z = camera->lookAt_obj.z + ((sinRotX * 0.0f) + (temp_f24_2 * cosRotX));
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;
new_var = boomYaw;
deltaX = deltaX2;
deltaY = cosBoom * deltaY2 + deltaZ2 * sinBoom;
deltaZ = sinBoom * new_var + 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);
xDiff = camera->lookAt_obj.x - camera->lookAt_eye.x;
yDiff = camera->lookAt_obj.y - camera->lookAt_eye.y;
zDiff = camera->lookAt_obj.z - camera->lookAt_eye.z;
camera->currentBlendedYawNegated = -atan2(0.0f, 0.0f, xDiff, zDiff);
camera->currentPitch = atan2(0.0f, 0.0f, yDiff, -sqrtf((xDiff * xDiff) + (zDiff * zDiff)));
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)));
gBattleStatus.camLookatObjPos.x = camera->lookAt_obj.x;
gBattleStatus.camLookatObjPos.y = camera->lookAt_obj.y;
gBattleStatus.camLookatObjPos.z = camera->lookAt_obj.z;
}
#else
INCLUDE_ASM(void, "ad90_len_2880", update_camera_mode_6, Camera* camera);
#endif

View File

@ -1,260 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel update_camera_mode_4
/* 9D10 8002E910 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 9D14 8002E914 AFB00010 */ sw $s0, 0x10($sp)
/* 9D18 8002E918 0080802D */ daddu $s0, $a0, $zero
/* 9D1C 8002E91C AFBF0014 */ sw $ra, 0x14($sp)
/* 9D20 8002E920 F7BE0040 */ sdc1 $f30, 0x40($sp)
/* 9D24 8002E924 F7BC0038 */ sdc1 $f28, 0x38($sp)
/* 9D28 8002E928 F7BA0030 */ sdc1 $f26, 0x30($sp)
/* 9D2C 8002E92C F7B80028 */ sdc1 $f24, 0x28($sp)
/* 9D30 8002E930 F7B60020 */ sdc1 $f22, 0x20($sp)
/* 9D34 8002E934 F7B40018 */ sdc1 $f20, 0x18($sp)
/* 9D38 8002E938 8602001C */ lh $v0, 0x1c($s0)
/* 9D3C 8002E93C C6000060 */ lwc1 $f0, 0x60($s0)
/* 9D40 8002E940 4482B000 */ mtc1 $v0, $f22
/* 9D44 8002E944 00000000 */ nop
/* 9D48 8002E948 4680B5A0 */ cvt.s.w $f22, $f22
/* 9D4C 8002E94C 4600B03C */ c.lt.s $f22, $f0
/* 9D50 8002E950 00000000 */ nop
/* 9D54 8002E954 45030001 */ bc1tl .L8002E95C
/* 9D58 8002E958 4600B006 */ mov.s $f0, $f22
.L8002E95C:
/* 9D5C 8002E95C 4600B107 */ neg.s $f4, $f22
/* 9D60 8002E960 4604003C */ c.lt.s $f0, $f4
/* 9D64 8002E964 00000000 */ nop
/* 9D68 8002E968 45030001 */ bc1tl .L8002E970
/* 9D6C 8002E96C 46002006 */ mov.s $f0, $f4
.L8002E970:
/* 9D70 8002E970 C6080068 */ lwc1 $f8, 0x68($s0)
/* 9D74 8002E974 8602001E */ lh $v0, 0x1e($s0)
/* 9D78 8002E978 4482C000 */ mtc1 $v0, $f24
/* 9D7C 8002E97C 00000000 */ nop
/* 9D80 8002E980 4680C620 */ cvt.s.w $f24, $f24
/* 9D84 8002E984 4608C03C */ c.lt.s $f24, $f8
/* 9D88 8002E988 00000000 */ nop
/* 9D8C 8002E98C 45000002 */ bc1f .L8002E998
/* 9D90 8002E990 E6000054 */ swc1 $f0, 0x54($s0)
/* 9D94 8002E994 4600C206 */ mov.s $f8, $f24
.L8002E998:
/* 9D98 8002E998 4600C007 */ neg.s $f0, $f24
/* 9D9C 8002E99C 4600403C */ c.lt.s $f8, $f0
/* 9DA0 8002E9A0 00000000 */ nop
/* 9DA4 8002E9A4 45030001 */ bc1tl .L8002E9AC
/* 9DA8 8002E9A8 46000206 */ mov.s $f8, $f0
.L8002E9AC:
/* 9DAC 8002E9AC 86020020 */ lh $v0, 0x20($s0)
/* 9DB0 8002E9B0 3C01800A */ lui $at, %hi(D_8009A5EC)
/* 9DB4 8002E9B4 C424A5EC */ lwc1 $f4, %lo(D_8009A5EC)($at)
/* 9DB8 8002E9B8 AE000070 */ sw $zero, 0x70($s0)
/* 9DBC 8002E9BC 44821000 */ mtc1 $v0, $f2
/* 9DC0 8002E9C0 00000000 */ nop
/* 9DC4 8002E9C4 468010A0 */ cvt.s.w $f2, $f2
/* 9DC8 8002E9C8 46041082 */ mul.s $f2, $f2, $f4
/* 9DCC 8002E9CC 00000000 */ nop
/* 9DD0 8002E9D0 86020022 */ lh $v0, 0x22($s0)
/* 9DD4 8002E9D4 C6060070 */ lwc1 $f6, 0x70($s0)
/* 9DD8 8002E9D8 44820000 */ mtc1 $v0, $f0
/* 9DDC 8002E9DC 00000000 */ nop
/* 9DE0 8002E9E0 46800020 */ cvt.s.w $f0, $f0
/* 9DE4 8002E9E4 86020006 */ lh $v0, 6($s0)
/* 9DE8 8002E9E8 46040002 */ mul.s $f0, $f0, $f4
/* 9DEC 8002E9EC 00000000 */ nop
/* 9DF0 8002E9F0 E608005C */ swc1 $f8, 0x5c($s0)
/* 9DF4 8002E9F4 AE000074 */ sw $zero, 0x74($s0)
/* 9DF8 8002E9F8 E6060084 */ swc1 $f6, 0x84($s0)
/* 9DFC 8002E9FC E6020078 */ swc1 $f2, 0x78($s0)
/* 9E00 8002EA00 10400047 */ beqz $v0, .L8002EB20
/* 9E04 8002EA04 E600007C */ swc1 $f0, 0x7c($s0)
/* 9E08 8002EA08 4480F000 */ mtc1 $zero, $f30
/* 9E0C 8002EA0C C6020074 */ lwc1 $f2, 0x74($s0)
/* 9E10 8002EA10 3C0140C9 */ lui $at, 0x40c9
/* 9E14 8002EA14 34210FD0 */ ori $at, $at, 0xfd0
/* 9E18 8002EA18 4481B000 */ mtc1 $at, $f22
/* 9E1C 8002EA1C C6080054 */ lwc1 $f8, 0x54($s0)
/* 9E20 8002EA20 C6000058 */ lwc1 $f0, 0x58($s0)
/* 9E24 8002EA24 C604007C */ lwc1 $f4, 0x7c($s0)
/* 9E28 8002EA28 C606005C */ lwc1 $f6, 0x5c($s0)
/* 9E2C 8002EA2C 3C0143B4 */ lui $at, 0x43b4
/* 9E30 8002EA30 4481A000 */ mtc1 $at, $f20
/* 9E34 8002EA34 46161082 */ mul.s $f2, $f2, $f22
/* 9E38 8002EA38 00000000 */ nop
/* 9E3C 8002EA3C A6000006 */ sh $zero, 6($s0)
/* 9E40 8002EA40 E61E0098 */ swc1 $f30, 0x98($s0)
/* 9E44 8002EA44 E61E009C */ swc1 $f30, 0x9c($s0)
/* 9E48 8002EA48 46040000 */ add.s $f0, $f0, $f4
/* 9E4C 8002EA4C E6080048 */ swc1 $f8, 0x48($s0)
/* 9E50 8002EA50 E6060050 */ swc1 $f6, 0x50($s0)
/* 9E54 8002EA54 E600004C */ swc1 $f0, 0x4c($s0)
/* 9E58 8002EA58 46141683 */ div.s $f26, $f2, $f20
/* 9E5C 8002EA5C 0C00A85B */ jal sin_rad
/* 9E60 8002EA60 4600D306 */ mov.s $f12, $f26
/* 9E64 8002EA64 46000706 */ mov.s $f28, $f0
/* 9E68 8002EA68 0C00A874 */ jal cos_rad
/* 9E6C 8002EA6C 4600D306 */ mov.s $f12, $f26
/* 9E70 8002EA70 46000286 */ mov.s $f10, $f0
/* 9E74 8002EA74 461E5202 */ mul.s $f8, $f10, $f30
/* 9E78 8002EA78 00000000 */ nop
/* 9E7C 8002EA7C 4600F087 */ neg.s $f2, $f30
/* 9E80 8002EA80 4602E082 */ mul.s $f2, $f28, $f2
/* 9E84 8002EA84 00000000 */ nop
/* 9E88 8002EA88 C6180078 */ lwc1 $f24, 0x78($s0)
/* 9E8C 8002EA8C 461CC102 */ mul.s $f4, $f24, $f28
/* 9E90 8002EA90 00000000 */ nop
/* 9E94 8002EA94 460AC182 */ mul.s $f6, $f24, $f10
/* 9E98 8002EA98 00000000 */ nop
/* 9E9C 8002EA9C C6000070 */ lwc1 $f0, 0x70($s0)
/* 9EA0 8002EAA0 46160002 */ mul.s $f0, $f0, $f22
/* 9EA4 8002EAA4 00000000 */ nop
/* 9EA8 8002EAA8 4600F286 */ mov.s $f10, $f30
/* 9EAC 8002EAAC 46005586 */ mov.s $f22, $f10
/* 9EB0 8002EAB0 46044780 */ add.s $f30, $f8, $f4
/* 9EB4 8002EAB4 46140683 */ div.s $f26, $f0, $f20
/* 9EB8 8002EAB8 4600D306 */ mov.s $f12, $f26
/* 9EBC 8002EABC 0C00A85B */ jal sin_rad
/* 9EC0 8002EAC0 46061600 */ add.s $f24, $f2, $f6
/* 9EC4 8002EAC4 46000706 */ mov.s $f28, $f0
/* 9EC8 8002EAC8 0C00A874 */ jal cos_rad
/* 9ECC 8002EACC 4600D306 */ mov.s $f12, $f26
/* 9ED0 8002EAD0 46000286 */ mov.s $f10, $f0
/* 9ED4 8002EAD4 46165182 */ mul.s $f6, $f10, $f22
/* 9ED8 8002EAD8 00000000 */ nop
/* 9EDC 8002EADC 4616E102 */ mul.s $f4, $f28, $f22
/* 9EE0 8002EAE0 00000000 */ nop
/* 9EE4 8002EAE4 461CC082 */ mul.s $f2, $f24, $f28
/* 9EE8 8002EAE8 00000000 */ nop
/* 9EEC 8002EAEC 460AC002 */ mul.s $f0, $f24, $f10
/* 9EF0 8002EAF0 00000000 */ nop
/* 9EF4 8002EAF4 46023281 */ sub.s $f10, $f6, $f2
/* 9EF8 8002EAF8 46002180 */ add.s $f6, $f4, $f0
/* 9EFC 8002EAFC C600004C */ lwc1 $f0, 0x4c($s0)
/* 9F00 8002EB00 461E0000 */ add.s $f0, $f0, $f30
/* 9F04 8002EB04 C6040048 */ lwc1 $f4, 0x48($s0)
/* 9F08 8002EB08 460A2100 */ add.s $f4, $f4, $f10
/* 9F0C 8002EB0C C6020050 */ lwc1 $f2, 0x50($s0)
/* 9F10 8002EB10 46061080 */ add.s $f2, $f2, $f6
/* 9F14 8002EB14 E6000040 */ swc1 $f0, 0x40($s0)
/* 9F18 8002EB18 E604003C */ swc1 $f4, 0x3c($s0)
/* 9F1C 8002EB1C E6020044 */ swc1 $f2, 0x44($s0)
.L8002EB20:
/* 9F20 8002EB20 4480F000 */ mtc1 $zero, $f30
/* 9F24 8002EB24 C6020074 */ lwc1 $f2, 0x74($s0)
/* 9F28 8002EB28 3C0140C9 */ lui $at, 0x40c9
/* 9F2C 8002EB2C 34210FD0 */ ori $at, $at, 0xfd0
/* 9F30 8002EB30 4481B000 */ mtc1 $at, $f22
/* 9F34 8002EB34 C6080054 */ lwc1 $f8, 0x54($s0)
/* 9F38 8002EB38 46161082 */ mul.s $f2, $f2, $f22
/* 9F3C 8002EB3C 00000000 */ nop
/* 9F40 8002EB40 C6000058 */ lwc1 $f0, 0x58($s0)
/* 9F44 8002EB44 C604007C */ lwc1 $f4, 0x7c($s0)
/* 9F48 8002EB48 C606005C */ lwc1 $f6, 0x5c($s0)
/* 9F4C 8002EB4C 3C0143B4 */ lui $at, 0x43b4
/* 9F50 8002EB50 4481A000 */ mtc1 $at, $f20
/* 9F54 8002EB54 46040000 */ add.s $f0, $f0, $f4
/* 9F58 8002EB58 E6080048 */ swc1 $f8, 0x48($s0)
/* 9F5C 8002EB5C E6060050 */ swc1 $f6, 0x50($s0)
/* 9F60 8002EB60 E600004C */ swc1 $f0, 0x4c($s0)
/* 9F64 8002EB64 46141683 */ div.s $f26, $f2, $f20
/* 9F68 8002EB68 0C00A85B */ jal sin_rad
/* 9F6C 8002EB6C 4600D306 */ mov.s $f12, $f26
/* 9F70 8002EB70 46000706 */ mov.s $f28, $f0
/* 9F74 8002EB74 0C00A874 */ jal cos_rad
/* 9F78 8002EB78 4600D306 */ mov.s $f12, $f26
/* 9F7C 8002EB7C 46000286 */ mov.s $f10, $f0
/* 9F80 8002EB80 461E5202 */ mul.s $f8, $f10, $f30
/* 9F84 8002EB84 00000000 */ nop
/* 9F88 8002EB88 4600F087 */ neg.s $f2, $f30
/* 9F8C 8002EB8C 4602E082 */ mul.s $f2, $f28, $f2
/* 9F90 8002EB90 00000000 */ nop
/* 9F94 8002EB94 C6180078 */ lwc1 $f24, 0x78($s0)
/* 9F98 8002EB98 461CC102 */ mul.s $f4, $f24, $f28
/* 9F9C 8002EB9C 00000000 */ nop
/* 9FA0 8002EBA0 460AC182 */ mul.s $f6, $f24, $f10
/* 9FA4 8002EBA4 00000000 */ nop
/* 9FA8 8002EBA8 C6000070 */ lwc1 $f0, 0x70($s0)
/* 9FAC 8002EBAC 46160002 */ mul.s $f0, $f0, $f22
/* 9FB0 8002EBB0 00000000 */ nop
/* 9FB4 8002EBB4 4600F286 */ mov.s $f10, $f30
/* 9FB8 8002EBB8 46005586 */ mov.s $f22, $f10
/* 9FBC 8002EBBC 46044780 */ add.s $f30, $f8, $f4
/* 9FC0 8002EBC0 46140683 */ div.s $f26, $f0, $f20
/* 9FC4 8002EBC4 4600D306 */ mov.s $f12, $f26
/* 9FC8 8002EBC8 0C00A85B */ jal sin_rad
/* 9FCC 8002EBCC 46061600 */ add.s $f24, $f2, $f6
/* 9FD0 8002EBD0 46000706 */ mov.s $f28, $f0
/* 9FD4 8002EBD4 0C00A874 */ jal cos_rad
/* 9FD8 8002EBD8 4600D306 */ mov.s $f12, $f26
/* 9FDC 8002EBDC 46000286 */ mov.s $f10, $f0
/* 9FE0 8002EBE0 46165102 */ mul.s $f4, $f10, $f22
/* 9FE4 8002EBE4 00000000 */ nop
/* 9FE8 8002EBE8 4616E182 */ mul.s $f6, $f28, $f22
/* 9FEC 8002EBEC 00000000 */ nop
/* 9FF0 8002EBF0 461CC002 */ mul.s $f0, $f24, $f28
/* 9FF4 8002EBF4 00000000 */ nop
/* 9FF8 8002EBF8 460AC082 */ mul.s $f2, $f24, $f10
/* 9FFC 8002EBFC 00000000 */ nop
/* A000 8002EC00 46002281 */ sub.s $f10, $f4, $f0
/* A004 8002EC04 46023180 */ add.s $f6, $f6, $f2
/* A008 8002EC08 C602004C */ lwc1 $f2, 0x4c($s0)
/* A00C 8002EC0C 461E1080 */ add.s $f2, $f2, $f30
/* A010 8002EC10 C6000048 */ lwc1 $f0, 0x48($s0)
/* A014 8002EC14 8E060048 */ lw $a2, 0x48($s0)
/* A018 8002EC18 460A0000 */ add.s $f0, $f0, $f10
/* A01C 8002EC1C C60E0050 */ lwc1 $f14, 0x50($s0)
/* A020 8002EC20 8E070050 */ lw $a3, 0x50($s0)
/* A024 8002EC24 46067380 */ add.s $f14, $f14, $f6
/* A028 8002EC28 E6020040 */ swc1 $f2, 0x40($s0)
/* A02C 8002EC2C E600003C */ swc1 $f0, 0x3c($s0)
/* A030 8002EC30 46000306 */ mov.s $f12, $f0
/* A034 8002EC34 0C00A720 */ jal atan2
/* A038 8002EC38 E60E0044 */ swc1 $f14, 0x44($s0)
/* A03C 8002EC3C 4600B506 */ mov.s $f20, $f22
/* A040 8002EC40 C6040048 */ lwc1 $f4, 0x48($s0)
/* A044 8002EC44 C602003C */ lwc1 $f2, 0x3c($s0)
/* A048 8002EC48 4600A306 */ mov.s $f12, $f20
/* A04C 8002EC4C 46022581 */ sub.s $f22, $f4, $f2
/* A050 8002EC50 C6040050 */ lwc1 $f4, 0x50($s0)
/* A054 8002EC54 C6020044 */ lwc1 $f2, 0x44($s0)
/* A058 8002EC58 4600A386 */ mov.s $f14, $f20
/* A05C 8002EC5C 46022601 */ sub.s $f24, $f4, $f2
/* A060 8002EC60 C604004C */ lwc1 $f4, 0x4c($s0)
/* A064 8002EC64 C6020040 */ lwc1 $f2, 0x40($s0)
/* A068 8002EC68 4406B000 */ mfc1 $a2, $f22
/* A06C 8002EC6C 4407C000 */ mfc1 $a3, $f24
/* A070 8002EC70 46022781 */ sub.s $f30, $f4, $f2
/* A074 8002EC74 0C00A720 */ jal atan2
/* A078 8002EC78 E600006C */ swc1 $f0, 0x6c($s0)
/* A07C 8002EC7C 4616B102 */ mul.s $f4, $f22, $f22
/* A080 8002EC80 00000000 */ nop
/* A084 8002EC84 4618C082 */ mul.s $f2, $f24, $f24
/* A088 8002EC88 00000000 */ nop
/* A08C 8002EC8C 46022300 */ add.s $f12, $f4, $f2
/* A090 8002EC90 46000007 */ neg.s $f0, $f0
/* A094 8002EC94 E6000090 */ swc1 $f0, 0x90($s0)
/* A098 8002EC98 46006004 */ sqrt.s $f0, $f12
/* A09C 8002EC9C 46000032 */ c.eq.s $f0, $f0
/* A0A0 8002ECA0 00000000 */ nop
/* A0A4 8002ECA4 45030004 */ bc1tl .L8002ECB8
/* A0A8 8002ECA8 4600A306 */ mov.s $f12, $f20
/* A0AC 8002ECAC 0C0187BC */ jal sqrtf
/* A0B0 8002ECB0 00000000 */ nop
/* A0B4 8002ECB4 4600A306 */ mov.s $f12, $f20
.L8002ECB8:
/* A0B8 8002ECB8 46000007 */ neg.s $f0, $f0
/* A0BC 8002ECBC 4406F000 */ mfc1 $a2, $f30
/* A0C0 8002ECC0 44070000 */ mfc1 $a3, $f0
/* A0C4 8002ECC4 0C00A720 */ jal atan2
/* A0C8 8002ECC8 46006386 */ mov.s $f14, $f12
/* A0CC 8002ECCC E6000094 */ swc1 $f0, 0x94($s0)
/* A0D0 8002ECD0 8FBF0014 */ lw $ra, 0x14($sp)
/* A0D4 8002ECD4 8FB00010 */ lw $s0, 0x10($sp)
/* A0D8 8002ECD8 D7BE0040 */ ldc1 $f30, 0x40($sp)
/* A0DC 8002ECDC D7BC0038 */ ldc1 $f28, 0x38($sp)
/* A0E0 8002ECE0 D7BA0030 */ ldc1 $f26, 0x30($sp)
/* A0E4 8002ECE4 D7B80028 */ ldc1 $f24, 0x28($sp)
/* A0E8 8002ECE8 D7B60020 */ ldc1 $f22, 0x20($sp)
/* A0EC 8002ECEC D7B40018 */ ldc1 $f20, 0x18($sp)
/* A0F0 8002ECF0 03E00008 */ jr $ra
/* A0F4 8002ECF4 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -1,223 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel update_camera_mode_6
/* AD90 8002F990 27BDFFB8 */ addiu $sp, $sp, -0x48
/* AD94 8002F994 AFB00010 */ sw $s0, 0x10($sp)
/* AD98 8002F998 0080802D */ daddu $s0, $a0, $zero
/* AD9C 8002F99C AFBF0014 */ sw $ra, 0x14($sp)
/* ADA0 8002F9A0 F7BE0040 */ sdc1 $f30, 0x40($sp)
/* ADA4 8002F9A4 F7BC0038 */ sdc1 $f28, 0x38($sp)
/* ADA8 8002F9A8 F7BA0030 */ sdc1 $f26, 0x30($sp)
/* ADAC 8002F9AC F7B80028 */ sdc1 $f24, 0x28($sp)
/* ADB0 8002F9B0 F7B60020 */ sdc1 $f22, 0x20($sp)
/* ADB4 8002F9B4 F7B40018 */ sdc1 $f20, 0x18($sp)
/* ADB8 8002F9B8 86020006 */ lh $v0, 6($s0)
/* ADBC 8002F9BC 14400004 */ bnez $v0, .L8002F9D0
/* ADC0 8002F9C0 00000000 */ nop
/* ADC4 8002F9C4 86020008 */ lh $v0, 8($s0)
/* ADC8 8002F9C8 10400013 */ beqz $v0, .L8002FA18
/* ADCC 8002F9CC 00000000 */ nop
.L8002F9D0:
/* ADD0 8002F9D0 C6000054 */ lwc1 $f0, 0x54($s0)
/* ADD4 8002F9D4 C6020058 */ lwc1 $f2, 0x58($s0)
/* ADD8 8002F9D8 C604005C */ lwc1 $f4, 0x5c($s0)
/* ADDC 8002F9DC 24020064 */ addiu $v0, $zero, 0x64
/* ADE0 8002F9E0 A6000006 */ sh $zero, 6($s0)
/* ADE4 8002F9E4 A6000008 */ sh $zero, 8($s0)
/* ADE8 8002F9E8 A600001C */ sh $zero, 0x1c($s0)
/* ADEC 8002F9EC A602001E */ sh $v0, 0x1e($s0)
/* ADF0 8002F9F0 A6020020 */ sh $v0, 0x20($s0)
/* ADF4 8002F9F4 A6000022 */ sh $zero, 0x22($s0)
/* ADF8 8002F9F8 A6000024 */ sh $zero, 0x24($s0)
/* ADFC 8002F9FC A6000026 */ sh $zero, 0x26($s0)
/* AE00 8002FA00 AE000060 */ sw $zero, 0x60($s0)
/* AE04 8002FA04 AE000064 */ sw $zero, 0x64($s0)
/* AE08 8002FA08 AE000068 */ sw $zero, 0x68($s0)
/* AE0C 8002FA0C E6000048 */ swc1 $f0, 0x48($s0)
/* AE10 8002FA10 E602004C */ swc1 $f2, 0x4c($s0)
/* AE14 8002FA14 E6040050 */ swc1 $f4, 0x50($s0)
.L8002FA18:
/* AE18 8002FA18 8602001C */ lh $v0, 0x1c($s0)
/* AE1C 8002FA1C 14400073 */ bnez $v0, .L8002FBEC
/* AE20 8002FA20 24022710 */ addiu $v0, $zero, 0x2710
/* AE24 8002FA24 86030020 */ lh $v1, 0x20($s0)
/* AE28 8002FA28 14600002 */ bnez $v1, .L8002FA34
/* AE2C 8002FA2C 0043001A */ div $zero, $v0, $v1
/* AE30 8002FA30 0007000D */ break 7
.L8002FA34:
/* AE34 8002FA34 2401FFFF */ addiu $at, $zero, -1
/* AE38 8002FA38 14610004 */ bne $v1, $at, .L8002FA4C
/* AE3C 8002FA3C 3C018000 */ lui $at, 0x8000
/* AE40 8002FA40 14410002 */ bne $v0, $at, .L8002FA4C
/* AE44 8002FA44 00000000 */ nop
/* AE48 8002FA48 0006000D */ break 6
.L8002FA4C:
/* AE4C 8002FA4C 00001812 */ mflo $v1
/* AE50 8002FA50 3C013F70 */ lui $at, 0x3f70
/* AE54 8002FA54 44810800 */ mtc1 $at, $f1
/* AE58 8002FA58 44800000 */ mtc1 $zero, $f0
/* AE5C 8002FA5C C60A0054 */ lwc1 $f10, 0x54($s0)
/* AE60 8002FA60 C6020060 */ lwc1 $f2, 0x60($s0)
/* AE64 8002FA64 C6040064 */ lwc1 $f4, 0x64($s0)
/* AE68 8002FA68 C606005C */ lwc1 $f6, 0x5c($s0)
/* AE6C 8002FA6C 86020026 */ lh $v0, 0x26($s0)
/* AE70 8002FA70 46025280 */ add.s $f10, $f10, $f2
/* AE74 8002FA74 44824000 */ mtc1 $v0, $f8
/* AE78 8002FA78 00000000 */ nop
/* AE7C 8002FA7C 46804221 */ cvt.d.w $f8, $f8
/* AE80 8002FA80 86020024 */ lh $v0, 0x24($s0)
/* AE84 8002FA84 46204202 */ mul.d $f8, $f8, $f0
/* AE88 8002FA88 00000000 */ nop
/* AE8C 8002FA8C 44820000 */ mtc1 $v0, $f0
/* AE90 8002FA90 00000000 */ nop
/* AE94 8002FA94 46800020 */ cvt.s.w $f0, $f0
/* AE98 8002FA98 E6000084 */ swc1 $f0, 0x84($s0)
/* AE9C 8002FA9C C6000058 */ lwc1 $f0, 0x58($s0)
/* AEA0 8002FAA0 86020022 */ lh $v0, 0x22($s0)
/* AEA4 8002FAA4 E60A0048 */ swc1 $f10, 0x48($s0)
/* AEA8 8002FAA8 44821000 */ mtc1 $v0, $f2
/* AEAC 8002FAAC 00000000 */ nop
/* AEB0 8002FAB0 468010A0 */ cvt.s.w $f2, $f2
/* AEB4 8002FAB4 46040000 */ add.s $f0, $f0, $f4
/* AEB8 8002FAB8 E6020074 */ swc1 $f2, 0x74($s0)
/* AEBC 8002FABC C6020068 */ lwc1 $f2, 0x68($s0)
/* AEC0 8002FAC0 8602001E */ lh $v0, 0x1e($s0)
/* AEC4 8002FAC4 46023180 */ add.s $f6, $f6, $f2
/* AEC8 8002FAC8 44822000 */ mtc1 $v0, $f4
/* AECC 8002FACC 00000000 */ nop
/* AED0 8002FAD0 46802120 */ cvt.s.w $f4, $f4
/* AED4 8002FAD4 46000021 */ cvt.d.s $f0, $f0
/* AED8 8002FAD8 46280000 */ add.d $f0, $f0, $f8
/* AEDC 8002FADC E6040078 */ swc1 $f4, 0x78($s0)
/* AEE0 8002FAE0 E6060050 */ swc1 $f6, 0x50($s0)
/* AEE4 8002FAE4 46200020 */ cvt.s.d $f0, $f0
/* AEE8 8002FAE8 04610002 */ bgez $v1, .L8002FAF4
/* AEEC 8002FAEC E600004C */ swc1 $f0, 0x4c($s0)
/* AEF0 8002FAF0 24630003 */ addiu $v1, $v1, 3
.L8002FAF4:
/* AEF4 8002FAF4 C6020074 */ lwc1 $f2, 0x74($s0)
/* AEF8 8002FAF8 3C0140C9 */ lui $at, 0x40c9
/* AEFC 8002FAFC 34210FD0 */ ori $at, $at, 0xfd0
/* AF00 8002FB00 4481A000 */ mtc1 $at, $f20
/* AF04 8002FB04 00031083 */ sra $v0, $v1, 2
/* AF08 8002FB08 46141082 */ mul.s $f2, $f2, $f20
/* AF0C 8002FB0C 00000000 */ nop
/* AF10 8002FB10 4480F000 */ mtc1 $zero, $f30
/* AF14 8002FB14 3C0143B4 */ lui $at, 0x43b4
/* AF18 8002FB18 4481B000 */ mtc1 $at, $f22
/* AF1C 8002FB1C 44820000 */ mtc1 $v0, $f0
/* AF20 8002FB20 00000000 */ nop
/* AF24 8002FB24 46800020 */ cvt.s.w $f0, $f0
/* AF28 8002FB28 E6000018 */ swc1 $f0, 0x18($s0)
/* AF2C 8002FB2C 46161683 */ div.s $f26, $f2, $f22
/* AF30 8002FB30 0C00A85B */ jal sin_rad
/* AF34 8002FB34 4600D306 */ mov.s $f12, $f26
/* AF38 8002FB38 46000706 */ mov.s $f28, $f0
/* AF3C 8002FB3C 0C00A874 */ jal cos_rad
/* AF40 8002FB40 4600D306 */ mov.s $f12, $f26
/* AF44 8002FB44 461E0202 */ mul.s $f8, $f0, $f30
/* AF48 8002FB48 00000000 */ nop
/* AF4C 8002FB4C 4600F087 */ neg.s $f2, $f30
/* AF50 8002FB50 4602E082 */ mul.s $f2, $f28, $f2
/* AF54 8002FB54 00000000 */ nop
/* AF58 8002FB58 C6180078 */ lwc1 $f24, 0x78($s0)
/* AF5C 8002FB5C 461CC102 */ mul.s $f4, $f24, $f28
/* AF60 8002FB60 00000000 */ nop
/* AF64 8002FB64 4600C182 */ mul.s $f6, $f24, $f0
/* AF68 8002FB68 00000000 */ nop
/* AF6C 8002FB6C C6000084 */ lwc1 $f0, 0x84($s0)
/* AF70 8002FB70 46140002 */ mul.s $f0, $f0, $f20
/* AF74 8002FB74 00000000 */ nop
/* AF78 8002FB78 4600F286 */ mov.s $f10, $f30
/* AF7C 8002FB7C 46005506 */ mov.s $f20, $f10
/* AF80 8002FB80 46044780 */ add.s $f30, $f8, $f4
/* AF84 8002FB84 46061600 */ add.s $f24, $f2, $f6
/* AF88 8002FB88 46160683 */ div.s $f26, $f0, $f22
/* AF8C 8002FB8C 0C00A85B */ jal sin_rad
/* AF90 8002FB90 4600D306 */ mov.s $f12, $f26
/* AF94 8002FB94 46000706 */ mov.s $f28, $f0
/* AF98 8002FB98 0C00A874 */ jal cos_rad
/* AF9C 8002FB9C 4600D306 */ mov.s $f12, $f26
/* AFA0 8002FBA0 46140182 */ mul.s $f6, $f0, $f20
/* AFA4 8002FBA4 00000000 */ nop
/* AFA8 8002FBA8 4614E102 */ mul.s $f4, $f28, $f20
/* AFAC 8002FBAC 00000000 */ nop
/* AFB0 8002FBB0 461CC082 */ mul.s $f2, $f24, $f28
/* AFB4 8002FBB4 00000000 */ nop
/* AFB8 8002FBB8 4600C002 */ mul.s $f0, $f24, $f0
/* AFBC 8002FBBC 00000000 */ nop
/* AFC0 8002FBC0 46023281 */ sub.s $f10, $f6, $f2
/* AFC4 8002FBC4 46002100 */ add.s $f4, $f4, $f0
/* AFC8 8002FBC8 C600004C */ lwc1 $f0, 0x4c($s0)
/* AFCC 8002FBCC 461E0000 */ add.s $f0, $f0, $f30
/* AFD0 8002FBD0 C6060048 */ lwc1 $f6, 0x48($s0)
/* AFD4 8002FBD4 460A3180 */ add.s $f6, $f6, $f10
/* AFD8 8002FBD8 C6020050 */ lwc1 $f2, 0x50($s0)
/* AFDC 8002FBDC 46041080 */ add.s $f2, $f2, $f4
/* AFE0 8002FBE0 E6000040 */ swc1 $f0, 0x40($s0)
/* AFE4 8002FBE4 E606003C */ swc1 $f6, 0x3c($s0)
/* AFE8 8002FBE8 E6020044 */ swc1 $f2, 0x44($s0)
.L8002FBEC:
/* AFEC 8002FBEC C60C003C */ lwc1 $f12, 0x3c($s0)
/* AFF0 8002FBF0 C60E0044 */ lwc1 $f14, 0x44($s0)
/* AFF4 8002FBF4 8E060048 */ lw $a2, 0x48($s0)
/* AFF8 8002FBF8 0C00A720 */ jal atan2
/* AFFC 8002FBFC 8E070050 */ lw $a3, 0x50($s0)
/* B000 8002FC00 C6040048 */ lwc1 $f4, 0x48($s0)
/* B004 8002FC04 4480B000 */ mtc1 $zero, $f22
/* B008 8002FC08 C602003C */ lwc1 $f2, 0x3c($s0)
/* B00C 8002FC0C E600006C */ swc1 $f0, 0x6c($s0)
/* B010 8002FC10 46022501 */ sub.s $f20, $f4, $f2
/* B014 8002FC14 C6040050 */ lwc1 $f4, 0x50($s0)
/* B018 8002FC18 C6020044 */ lwc1 $f2, 0x44($s0)
/* B01C 8002FC1C 4600B306 */ mov.s $f12, $f22
/* B020 8002FC20 46022601 */ sub.s $f24, $f4, $f2
/* B024 8002FC24 C604004C */ lwc1 $f4, 0x4c($s0)
/* B028 8002FC28 C6020040 */ lwc1 $f2, 0x40($s0)
/* B02C 8002FC2C 4406A000 */ mfc1 $a2, $f20
/* B030 8002FC30 46022781 */ sub.s $f30, $f4, $f2
/* B034 8002FC34 4407C000 */ mfc1 $a3, $f24
/* B038 8002FC38 0C00A720 */ jal atan2
/* B03C 8002FC3C 4600B386 */ mov.s $f14, $f22
/* B040 8002FC40 4614A102 */ mul.s $f4, $f20, $f20
/* B044 8002FC44 00000000 */ nop
/* B048 8002FC48 4618C082 */ mul.s $f2, $f24, $f24
/* B04C 8002FC4C 00000000 */ nop
/* B050 8002FC50 46022300 */ add.s $f12, $f4, $f2
/* B054 8002FC54 46000007 */ neg.s $f0, $f0
/* B058 8002FC58 E6000090 */ swc1 $f0, 0x90($s0)
/* B05C 8002FC5C 46006004 */ sqrt.s $f0, $f12
/* B060 8002FC60 46000032 */ c.eq.s $f0, $f0
/* B064 8002FC64 00000000 */ nop
/* B068 8002FC68 45030004 */ bc1tl .L8002FC7C
/* B06C 8002FC6C 4600B306 */ mov.s $f12, $f22
/* B070 8002FC70 0C0187BC */ jal sqrtf
/* B074 8002FC74 00000000 */ nop
/* B078 8002FC78 4600B306 */ mov.s $f12, $f22
.L8002FC7C:
/* B07C 8002FC7C 46000007 */ neg.s $f0, $f0
/* B080 8002FC80 4406F000 */ mfc1 $a2, $f30
/* B084 8002FC84 44070000 */ mfc1 $a3, $f0
/* B088 8002FC88 0C00A720 */ jal atan2
/* B08C 8002FC8C 46006386 */ mov.s $f14, $f12
/* B090 8002FC90 E6000094 */ swc1 $f0, 0x94($s0)
/* B094 8002FC94 C6000048 */ lwc1 $f0, 0x48($s0)
/* B098 8002FC98 3C02800E */ lui $v0, %hi(gBattleStatus)
/* B09C 8002FC9C 2442C070 */ addiu $v0, $v0, %lo(gBattleStatus)
/* B0A0 8002FCA0 E44000CC */ swc1 $f0, 0xcc($v0)
/* B0A4 8002FCA4 C600004C */ lwc1 $f0, 0x4c($s0)
/* B0A8 8002FCA8 E44000D0 */ swc1 $f0, 0xd0($v0)
/* B0AC 8002FCAC C6000050 */ lwc1 $f0, 0x50($s0)
/* B0B0 8002FCB0 E44000D4 */ swc1 $f0, 0xd4($v0)
/* B0B4 8002FCB4 8FBF0014 */ lw $ra, 0x14($sp)
/* B0B8 8002FCB8 8FB00010 */ lw $s0, 0x10($sp)
/* B0BC 8002FCBC D7BE0040 */ ldc1 $f30, 0x40($sp)
/* B0C0 8002FCC0 D7BC0038 */ ldc1 $f28, 0x38($sp)
/* B0C4 8002FCC4 D7BA0030 */ ldc1 $f26, 0x30($sp)
/* B0C8 8002FCC8 D7B80028 */ ldc1 $f24, 0x28($sp)
/* B0CC 8002FCCC D7B60020 */ ldc1 $f22, 0x20($sp)
/* B0D0 8002FCD0 D7B40018 */ ldc1 $f20, 0x18($sp)
/* B0D4 8002FCD4 03E00008 */ jr $ra
/* B0D8 8002FCD8 27BD0048 */ addiu $sp, $sp, 0x48
/* B0DC 8002FCDC 00000000 */ nop