diff --git a/include/common_structs.h b/include/common_structs.h index 09ab28d00e..336657211f 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -85,9 +85,9 @@ typedef struct PartnerData { } PartnerData; // size = 0x08 typedef struct HeapNode { - /* 0x00 */ UNK_PTR next; + /* 0x00 */ struct HeapNode* next; /* 0x04 */ s32 length; - /* 0x08 */ s16 allocated; + /* 0x08 */ u16 allocated; /* 0x0A */ s16 entryID; /* 0x0C */ s32 capacity; } HeapNode; // size = 0x10 diff --git a/include/macros.h b/include/macros.h index 34b0086cc5..98bd1f5f90 100644 --- a/include/macros.h +++ b/include/macros.h @@ -40,8 +40,9 @@ #define MAX_ITEM_ENTITIES 256 // Alternative to libultra's M_PI: non-float version; more digits cause issues -#define PI 3.141592f -#define TAU 6.28318f +#define PI 3.141592f +#define PI_D 3.141592 +#define TAU 6.28318f #define SPRITE_WORLD_SCALE 0.71428573f @@ -63,6 +64,8 @@ } #define SQ(x) (x*x) +#define CUBE(x) (x*x*x) +#define QUART(x) (x*x*x*x) // Fixed-point short literal #define F16(f) (s16)(f * 327.67f) diff --git a/src/43F0.c b/src/43F0.c index a7c532c083..833f449ed7 100644 --- a/src/43F0.c +++ b/src/43F0.c @@ -14,9 +14,11 @@ f32 D_80074274[] = { 0.984808f, 0.987688f, 0.990268f, 0.992546f, 0.994522f, 0.996195f, 0.997564f, 0.99863f, 0.999391f, 0.999848f, 1.0f }; -s8 D_800743E0[] = { - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x00, 0x00, +u8 D_800743E0[] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', + 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', + 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; @@ -110,7 +112,52 @@ s32 sign(s32 val) { return sign; } -INCLUDE_ASM(s32, "43F0", int_to_string); +// D_800743E0 index needs to add the upper 32 bits from func_8006DDC0 ret +#ifdef NON_MATCHING + +typedef struct { + u8 unk_00[39]; + u8 unk_39; +} Unk_struct_43F0; + +u32 func_8006DDC0(s64 arg0, s64 arg1); +u64 func_8006D800(s64 arg0, s64 arg1); + +char *int_to_string(s32 arg01, char *arg1, s32 arg2) { + Unk_struct_43F0 unk_struct; + s32 phi_s4 = 0x26; + s32 phi_fp = 0; + s64 arg0 = arg01; + + if (arg0 < 0) { + phi_fp = 1; + arg0 *= -1; + } + unk_struct.unk_39 = 0; + + while (TRUE) { + u8 (*new_var)[]; + + unk_struct.unk_00[phi_s4] = (*(new_var = &D_800743E0))[func_8006DDC0(arg0, arg2)]; + arg0 = func_8006D800(arg0, arg2); + if (arg0 == 0 || phi_s4 == 0) { + break; + } + phi_s4--; + } + + if (phi_fp) { + phi_s4--; + unk_struct.unk_00[phi_s4] = 0x2D; + } + + strcpy(arg1, &unk_struct.unk_00[phi_s4]); + + return arg1; +} +#else +INCLUDE_ASM(char*, "43F0", int_to_string, s32 arg01, char *arg1, s32 arg2); +#endif // should maybe be called bzero void mem_clear(s8* data, s32 numBytes) { @@ -300,7 +347,46 @@ f32 get_clamped_angle_diff(f32 a, f32 b) { return b - a; } -INCLUDE_ASM(f32, "43F0", atan2, f32 startX, f32 startZ, f32 endX, f32 endZ); +f32 atan2(f32 startX, f32 startZ, f32 endX, f32 endZ) { + f32 xDiff = endX - startX; + f32 zDiff = endZ - startZ; + f32 absXDiff = fabsf(xDiff); + f32 absZDiff = fabsf(zDiff); + f32 temp_f20; + + if (absZDiff < absXDiff) { + temp_f20 = (absZDiff / absXDiff) * 45.0f; + temp_f20 *= D_80074414[round(2.0f * temp_f20)]; + if (xDiff >= 0.0f) { + if (zDiff >= 0.0f) { + return temp_f20 + 90.0f; + } else { + return 90.0f - temp_f20; + } + } + if (zDiff >= 0.0f) { + return 270.0f - temp_f20; + } else { + return temp_f20 + 270.0f; + } + } else { + if (absZDiff == 0.0f) { + return 0.0f; + } + temp_f20 = (absXDiff / absZDiff) * 45.0f; + temp_f20 *= D_80074414[round(2.0f * temp_f20)]; + if (zDiff >= 0.0f) { + if (xDiff >= 0.0f) { + return 180.0f - temp_f20; + } else { + return temp_f20 + 180.0f; + } + } else if (!(xDiff >= 0.0f)) { + return 360.0f - temp_f20; + } + } + return temp_f20; +} f32 get_player_normal_yaw(void) { return atan2(0, 0, gGameStatusPtr->playerTraceNormal.x, gGameStatusPtr->playerTraceNormal.z); @@ -379,34 +465,106 @@ f32 cos_deg(f32 angle) { return coss(_wrap_trig_lookup_value(angle * 182.04445f)) * 3.051851e-05; } -INCLUDE_ASM(f32, "43F0", update_lerp, Easing easing, f32 start, f32 end, s32 elapsed, s32 duration); +f32 update_lerp(s32 easing, f32 start, f32 end, s32 elapsed, s32 duration) { + s32 val1s; + f32 temp_f4; -//void func_8002A904(u8 arg0, u8 arg1, u8 arg2, u8 arg3, u16 arg4, u16 arg5, u16 arg6, u16 arg7); -INCLUDE_ASM(void, "43F0", func_8002A904, u8 arg0, u8 arg1, u8 arg2, u8 arg3, u16 arg4, u16 arg5, u16 arg6, - u16 arg7); + if (duration == 0) { + return end; + } -INCLUDE_ASM(s32, "43F0", func_8002AAC4); -// void func_8002AAC4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u16 arg4, u16 arg5, u16 arg6, u16 arg7) { -// s16 phi_t0; -// s16 phi_t1; -// s16 phi_t2; -// s16 phi_t3; + switch (easing) { + case EASING_LINEAR: + return start + ((end - start) * elapsed / duration); + case EASING_QUADRATIC_IN: + return start + (SQ(elapsed) * (end - start) / SQ(duration)); + case EASING_CUBIC_IN: + return start + (CUBE(elapsed) * (end - start) / CUBE(duration)); + case EASING_QUARTIC_IN: + return start + (QUART(elapsed) * (end - start) / QUART(duration)); + case EASING_COS_SLOW_OVERSHOOT: + return end - (((end - start) * cos_rad(((f32)elapsed / duration) * PI_D * 4.0) * (duration - elapsed) * (duration - elapsed)) / SQ((f32)duration)); + case EASING_COS_FAST_OVERSHOOT: + return end - (((end - start) * cos_rad((((f32)SQ(elapsed) / duration) * PI_D * 4.0) / 15.0) * (duration - elapsed) * (duration - elapsed)) / SQ((f32)duration)); + case EASING_QUADRATIC_OUT: + val1s = duration - elapsed; + return (start + (end - start)) - ((SQ(val1s) * (end - start))) / SQ(duration); + case EASING_CUBIC_OUT: + val1s = duration - elapsed; + return (start + (end - start)) - ((CUBE(val1s) * (end - start))) / CUBE(duration); + case EASING_QUARTIC_OUT: + val1s = duration - elapsed; + return (start + (end - start)) - ((QUART(val1s) * (end - start))) / QUART(duration); + case EASING_COS_BOUNCE: + temp_f4 = cos_rad((((f32)SQ(elapsed) / duration) * PI_D * 4.0) / 40.0) * (duration - elapsed) * (duration - elapsed) / SQ((f32)duration); + if (temp_f4 < 0.0f) { + temp_f4 = -temp_f4; + } + return end - ((end - start) * temp_f4); + case EASING_COS_IN_OUT: + return start + ((end - start) * (1.0 - cos_rad(((f32)elapsed * PI_D) / (f32)duration)) * 0.5); + case EASING_SIN_OUT: + return start + ((end - start) * sin_rad(((f32)elapsed * 1.570796) / (f32)duration)); + case EASING_COS_IN: + return start + ((end - start) * (1.0 - cos_rad(((f32)elapsed * 1.570796) / (f32)duration))); + } -// phi_t0 = arg0; -// phi_t2 = arg2; -// if (arg2 < arg0) { -// phi_t0 = arg2; -// phi_t2 = arg0; -// } + return 0.0f; +} -// phi_t1 = arg1; -// phi_t3 = arg3; -// if (arg3 < arg1) { -// phi_t1 = arg3; -// phi_t3 = arg1; -// } +void func_8002A904(u8 r, u8 g, u8 b, u8 a, u16 left, u16 top, u16 right, u16 bottom) { + gDPPipeSync(gMasterGfxPos++); + gSPDisplayList(gMasterGfxPos++, D_80074580); -// func_8002A904(arg4, arg5, arg6, arg7, phi_t0, phi_t1, phi_t2, phi_t3); -// } + if (a == 255) { + gDPSetRenderMode(gMasterGfxPos++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + gDPSetCombineLERP(gMasterGfxPos++, 0, 0, 0, PRIMITIVE, 0, 0, 0, 1, 0, 0, 0, PRIMITIVE, 0, 0, 0, 1); + } else { + gDPSetRenderMode(gMasterGfxPos++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetCombineMode(gMasterGfxPos++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + } -INCLUDE_ASM(s32, "43F0", func_8002AB5C); + gDPSetPrimColor(gMasterGfxPos++, 0, 0, r, g, b, a); + gDPFillRectangle(gMasterGfxPos++, left, top, right, bottom); + + gDPPipeSync(gMasterGfxPos++); + gDPSetRenderMode(gMasterGfxPos++, G_RM_TEX_EDGE, G_RM_TEX_EDGE2); + gDPSetCombineMode(gMasterGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); + +} + +void func_8002AAC4(s16 left, s16 top, s16 right, s16 bottom, u16 r, u16 g, u16 b, u16 a) { + u16 temp; + + if (right < left) { + temp = right; + right = left; + left = temp; + } + + if (bottom < top) { + temp = bottom; + bottom = top; + top = temp; + } + + func_8002A904(r, g, b, a, left, top, right, bottom); +} + +void func_8002AB5C(s16 left, s16 top, s16 right, s16 bottom, u16 r, u16 g, u16 b, u16 a) { + u16 temp; + + if (right < left) { + temp = right; + right = left; + left = temp; + } + + if (bottom < top) { + temp = bottom; + bottom = top; + top = temp; + } + + func_8002A904(r, g, b, a, left, top, right, bottom); +} diff --git a/ver/us/asm/nonmatchings/43F0/atan2.s b/ver/us/asm/nonmatchings/43F0/atan2.s deleted file mode 100644 index fe2ba8a196..0000000000 --- a/ver/us/asm/nonmatchings/43F0/atan2.s +++ /dev/null @@ -1,114 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel atan2 -/* 5080 80029C80 44863000 */ mtc1 $a2, $f6 -/* 5084 80029C84 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 5088 80029C88 F7BA0030 */ sdc1 $f26, 0x30($sp) -/* 508C 80029C8C 460C3681 */ sub.s $f26, $f6, $f12 -/* 5090 80029C90 44873000 */ mtc1 $a3, $f6 -/* 5094 80029C94 AFBF0010 */ sw $ra, 0x10($sp) -/* 5098 80029C98 F7B80028 */ sdc1 $f24, 0x28($sp) -/* 509C 80029C9C 460E3601 */ sub.s $f24, $f6, $f14 -/* 50A0 80029CA0 F7B60020 */ sdc1 $f22, 0x20($sp) -/* 50A4 80029CA4 F7B40018 */ sdc1 $f20, 0x18($sp) -/* 50A8 80029CA8 4600D105 */ abs.s $f4, $f26 -/* 50AC 80029CAC 4600C005 */ abs.s $f0, $f24 -/* 50B0 80029CB0 4604003C */ c.lt.s $f0, $f4 -/* 50B4 80029CB4 00000000 */ nop -/* 50B8 80029CB8 45000029 */ bc1f .L80029D60 -/* 50BC 80029CBC 00000000 */ nop -/* 50C0 80029CC0 3C014234 */ lui $at, 0x4234 -/* 50C4 80029CC4 44811000 */ mtc1 $at, $f2 -/* 50C8 80029CC8 46040003 */ div.s $f0, $f0, $f4 -/* 50CC 80029CCC 46020502 */ mul.s $f20, $f0, $f2 -/* 50D0 80029CD0 00000000 */ nop -/* 50D4 80029CD4 0C00A6B1 */ jal round -/* 50D8 80029CD8 4614A300 */ add.s $f12, $f20, $f20 -/* 50DC 80029CDC 00021080 */ sll $v0, $v0, 2 -/* 50E0 80029CE0 3C018007 */ lui $at, %hi(D_80074414) -/* 50E4 80029CE4 00220821 */ addu $at, $at, $v0 -/* 50E8 80029CE8 C4204414 */ lwc1 $f0, %lo(D_80074414)($at) -/* 50EC 80029CEC 4600A502 */ mul.s $f20, $f20, $f0 -/* 50F0 80029CF0 00000000 */ nop -/* 50F4 80029CF4 44800000 */ mtc1 $zero, $f0 -/* 50F8 80029CF8 00000000 */ nop -/* 50FC 80029CFC 461A003E */ c.le.s $f0, $f26 -/* 5100 80029D00 00000000 */ nop -/* 5104 80029D04 4500000D */ bc1f .L80029D3C -/* 5108 80029D08 00000000 */ nop -/* 510C 80029D0C 4618003E */ c.le.s $f0, $f24 -/* 5110 80029D10 00000000 */ nop -/* 5114 80029D14 45000005 */ bc1f .L80029D2C -/* 5118 80029D18 00000000 */ nop -/* 511C 80029D1C 3C0142B4 */ lui $at, 0x42b4 -/* 5120 80029D20 44810000 */ mtc1 $at, $f0 -/* 5124 80029D24 0800A781 */ j .L80029E04 -/* 5128 80029D28 4600A000 */ add.s $f0, $f20, $f0 -.L80029D2C: -/* 512C 80029D2C 3C0142B4 */ lui $at, 0x42b4 -/* 5130 80029D30 44810000 */ mtc1 $at, $f0 -/* 5134 80029D34 0800A781 */ j .L80029E04 -/* 5138 80029D38 46140001 */ sub.s $f0, $f0, $f20 -.L80029D3C: -/* 513C 80029D3C 4618003E */ c.le.s $f0, $f24 -/* 5140 80029D40 3C014387 */ lui $at, 0x4387 -/* 5144 80029D44 44810000 */ mtc1 $at, $f0 -/* 5148 80029D48 4503002E */ bc1tl .L80029E04 -/* 514C 80029D4C 46140001 */ sub.s $f0, $f0, $f20 -/* 5150 80029D50 3C014387 */ lui $at, 0x4387 -/* 5154 80029D54 44810000 */ mtc1 $at, $f0 -/* 5158 80029D58 0800A781 */ j .L80029E04 -/* 515C 80029D5C 4600A000 */ add.s $f0, $f20, $f0 -.L80029D60: -/* 5160 80029D60 4480B000 */ mtc1 $zero, $f22 -/* 5164 80029D64 00000000 */ nop -/* 5168 80029D68 46160032 */ c.eq.s $f0, $f22 -/* 516C 80029D6C 00000000 */ nop -/* 5170 80029D70 45020003 */ bc1fl .L80029D80 -/* 5174 80029D74 46002003 */ div.s $f0, $f4, $f0 -/* 5178 80029D78 0800A781 */ j .L80029E04 -/* 517C 80029D7C 4600B006 */ mov.s $f0, $f22 -.L80029D80: -/* 5180 80029D80 3C014234 */ lui $at, 0x4234 -/* 5184 80029D84 44811000 */ mtc1 $at, $f2 -/* 5188 80029D88 00000000 */ nop -/* 518C 80029D8C 46020502 */ mul.s $f20, $f0, $f2 -/* 5190 80029D90 00000000 */ nop -/* 5194 80029D94 0C00A6B1 */ jal round -/* 5198 80029D98 4614A300 */ add.s $f12, $f20, $f20 -/* 519C 80029D9C 00021080 */ sll $v0, $v0, 2 -/* 51A0 80029DA0 3C018007 */ lui $at, %hi(D_80074414) -/* 51A4 80029DA4 00220821 */ addu $at, $at, $v0 -/* 51A8 80029DA8 C4204414 */ lwc1 $f0, %lo(D_80074414)($at) -/* 51AC 80029DAC 4618B03E */ c.le.s $f22, $f24 -/* 51B0 80029DB0 4600A502 */ mul.s $f20, $f20, $f0 -/* 51B4 80029DB4 00000000 */ nop -/* 51B8 80029DB8 4500000A */ bc1f .L80029DE4 -/* 51BC 80029DBC 00000000 */ nop -/* 51C0 80029DC0 461AB03E */ c.le.s $f22, $f26 -/* 51C4 80029DC4 3C014334 */ lui $at, 0x4334 -/* 51C8 80029DC8 44810000 */ mtc1 $at, $f0 -/* 51CC 80029DCC 4503000D */ bc1tl .L80029E04 -/* 51D0 80029DD0 46140001 */ sub.s $f0, $f0, $f20 -/* 51D4 80029DD4 3C014334 */ lui $at, 0x4334 -/* 51D8 80029DD8 44810000 */ mtc1 $at, $f0 -/* 51DC 80029DDC 0800A781 */ j .L80029E04 -/* 51E0 80029DE0 4600A000 */ add.s $f0, $f20, $f0 -.L80029DE4: -/* 51E4 80029DE4 461AB03E */ c.le.s $f22, $f26 -/* 51E8 80029DE8 00000000 */ nop -/* 51EC 80029DEC 45010005 */ bc1t .L80029E04 -/* 51F0 80029DF0 4600A006 */ mov.s $f0, $f20 -/* 51F4 80029DF4 3C0143B4 */ lui $at, 0x43b4 -/* 51F8 80029DF8 44810000 */ mtc1 $at, $f0 -/* 51FC 80029DFC 00000000 */ nop -/* 5200 80029E00 46140001 */ sub.s $f0, $f0, $f20 -.L80029E04: -/* 5204 80029E04 8FBF0010 */ lw $ra, 0x10($sp) -/* 5208 80029E08 D7BA0030 */ ldc1 $f26, 0x30($sp) -/* 520C 80029E0C D7B80028 */ ldc1 $f24, 0x28($sp) -/* 5210 80029E10 D7B60020 */ ldc1 $f22, 0x20($sp) -/* 5214 80029E14 D7B40018 */ ldc1 $f20, 0x18($sp) -/* 5218 80029E18 03E00008 */ jr $ra -/* 521C 80029E1C 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/ver/us/asm/nonmatchings/43F0/func_8002A904.s b/ver/us/asm/nonmatchings/43F0/func_8002A904.s deleted file mode 100644 index de049ad7dd..0000000000 --- a/ver/us/asm/nonmatchings/43F0/func_8002A904.s +++ /dev/null @@ -1,118 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_8002A904 -/* 5D04 8002A904 27BDFFF8 */ addiu $sp, $sp, -8 -/* 5D08 8002A908 0080602D */ daddu $t4, $a0, $zero -/* 5D0C 8002A90C 00A0682D */ daddu $t5, $a1, $zero -/* 5D10 8002A910 00E0582D */ daddu $t3, $a3, $zero -/* 5D14 8002A914 3C08800A */ lui $t0, %hi(gMasterGfxPos) -/* 5D18 8002A918 2508A66C */ addiu $t0, $t0, %lo(gMasterGfxPos) -/* 5D1C 8002A91C 3C02E700 */ lui $v0, 0xe700 -/* 5D20 8002A920 AFB00000 */ sw $s0, ($sp) -/* 5D24 8002A924 8D070000 */ lw $a3, ($t0) -/* 5D28 8002A928 97B9001A */ lhu $t9, 0x1a($sp) -/* 5D2C 8002A92C 97B0001E */ lhu $s0, 0x1e($sp) -/* 5D30 8002A930 97AF0022 */ lhu $t7, 0x22($sp) -/* 5D34 8002A934 97B80026 */ lhu $t8, 0x26($sp) -/* 5D38 8002A938 00E0182D */ daddu $v1, $a3, $zero -/* 5D3C 8002A93C 24E70008 */ addiu $a3, $a3, 8 -/* 5D40 8002A940 AD070000 */ sw $a3, ($t0) -/* 5D44 8002A944 AC620000 */ sw $v0, ($v1) -/* 5D48 8002A948 24E20008 */ addiu $v0, $a3, 8 -/* 5D4C 8002A94C AC600004 */ sw $zero, 4($v1) -/* 5D50 8002A950 AD020000 */ sw $v0, ($t0) -/* 5D54 8002A954 3C02DE00 */ lui $v0, 0xde00 -/* 5D58 8002A958 ACE20000 */ sw $v0, ($a3) -/* 5D5C 8002A95C 3C028007 */ lui $v0, %hi(D_80074580) -/* 5D60 8002A960 24424580 */ addiu $v0, $v0, %lo(D_80074580) -/* 5D64 8002A964 316300FF */ andi $v1, $t3, 0xff -/* 5D68 8002A968 ACE20004 */ sw $v0, 4($a3) -/* 5D6C 8002A96C 240200FF */ addiu $v0, $zero, 0xff -/* 5D70 8002A970 1462000A */ bne $v1, $v0, .L8002A99C -/* 5D74 8002A974 00C0702D */ daddu $t6, $a2, $zero -/* 5D78 8002A978 3C05E200 */ lui $a1, 0xe200 -/* 5D7C 8002A97C 34A5001C */ ori $a1, $a1, 0x1c -/* 5D80 8002A980 3C030F0A */ lui $v1, 0xf0a -/* 5D84 8002A984 34634000 */ ori $v1, $v1, 0x4000 -/* 5D88 8002A988 3C06FCFF */ lui $a2, 0xfcff -/* 5D8C 8002A98C 34C6FFFF */ ori $a2, $a2, 0xffff -/* 5D90 8002A990 3C04FFFD */ lui $a0, 0xfffd -/* 5D94 8002A994 0800AA6F */ j .L8002A9BC -/* 5D98 8002A998 3484FCFE */ ori $a0, $a0, 0xfcfe -.L8002A99C: -/* 5D9C 8002A99C 3C05E200 */ lui $a1, 0xe200 -/* 5DA0 8002A9A0 34A5001C */ ori $a1, $a1, 0x1c -/* 5DA4 8002A9A4 3C030050 */ lui $v1, 0x50 -/* 5DA8 8002A9A8 34634240 */ ori $v1, $v1, 0x4240 -/* 5DAC 8002A9AC 3C06FCFF */ lui $a2, 0xfcff -/* 5DB0 8002A9B0 34C6FFFF */ ori $a2, $a2, 0xffff -/* 5DB4 8002A9B4 3C04FFFD */ lui $a0, 0xfffd -/* 5DB8 8002A9B8 3484F6FB */ ori $a0, $a0, 0xf6fb -.L8002A9BC: -/* 5DBC 8002A9BC 24E20010 */ addiu $v0, $a3, 0x10 -/* 5DC0 8002A9C0 AD020000 */ sw $v0, ($t0) -/* 5DC4 8002A9C4 24E20018 */ addiu $v0, $a3, 0x18 -/* 5DC8 8002A9C8 ACE50008 */ sw $a1, 8($a3) -/* 5DCC 8002A9CC ACE3000C */ sw $v1, 0xc($a3) -/* 5DD0 8002A9D0 AD020000 */ sw $v0, ($t0) -/* 5DD4 8002A9D4 ACE60010 */ sw $a2, 0x10($a3) -/* 5DD8 8002A9D8 ACE40014 */ sw $a0, 0x14($a3) -/* 5DDC 8002A9DC 3C09E200 */ lui $t1, 0xe200 -/* 5DE0 8002A9E0 3529001C */ ori $t1, $t1, 0x1c -/* 5DE4 8002A9E4 3C070F0A */ lui $a3, 0xf0a -/* 5DE8 8002A9E8 34E77008 */ ori $a3, $a3, 0x7008 -/* 5DEC 8002A9EC 3C0AFCFF */ lui $t2, 0xfcff -/* 5DF0 8002A9F0 354AFFFF */ ori $t2, $t2, 0xffff -/* 5DF4 8002A9F4 3C08FFFC */ lui $t0, 0xfffc -/* 5DF8 8002A9F8 3C06800A */ lui $a2, %hi(gMasterGfxPos) -/* 5DFC 8002A9FC 24C6A66C */ addiu $a2, $a2, %lo(gMasterGfxPos) -/* 5E00 8002AA00 3508F279 */ ori $t0, $t0, 0xf279 -/* 5E04 8002AA04 3C02FA00 */ lui $v0, 0xfa00 -/* 5E08 8002AA08 8CC50000 */ lw $a1, ($a2) -/* 5E0C 8002AA0C 000C1E00 */ sll $v1, $t4, 0x18 -/* 5E10 8002AA10 00A0202D */ daddu $a0, $a1, $zero -/* 5E14 8002AA14 24A50008 */ addiu $a1, $a1, 8 -/* 5E18 8002AA18 ACC50000 */ sw $a1, ($a2) -/* 5E1C 8002AA1C AC820000 */ sw $v0, ($a0) -/* 5E20 8002AA20 31A200FF */ andi $v0, $t5, 0xff -/* 5E24 8002AA24 00021400 */ sll $v0, $v0, 0x10 -/* 5E28 8002AA28 00621825 */ or $v1, $v1, $v0 -/* 5E2C 8002AA2C 31C200FF */ andi $v0, $t6, 0xff -/* 5E30 8002AA30 00021200 */ sll $v0, $v0, 8 -/* 5E34 8002AA34 00621825 */ or $v1, $v1, $v0 -/* 5E38 8002AA38 316200FF */ andi $v0, $t3, 0xff -/* 5E3C 8002AA3C 00621825 */ or $v1, $v1, $v0 -/* 5E40 8002AA40 24A20008 */ addiu $v0, $a1, 8 -/* 5E44 8002AA44 AC830004 */ sw $v1, 4($a0) -/* 5E48 8002AA48 31E403FF */ andi $a0, $t7, 0x3ff -/* 5E4C 8002AA4C 00042380 */ sll $a0, $a0, 0xe -/* 5E50 8002AA50 ACC20000 */ sw $v0, ($a2) -/* 5E54 8002AA54 330203FF */ andi $v0, $t8, 0x3ff -/* 5E58 8002AA58 00021080 */ sll $v0, $v0, 2 -/* 5E5C 8002AA5C 3C03F600 */ lui $v1, 0xf600 -/* 5E60 8002AA60 00431025 */ or $v0, $v0, $v1 -/* 5E64 8002AA64 00822025 */ or $a0, $a0, $v0 -/* 5E68 8002AA68 332303FF */ andi $v1, $t9, 0x3ff -/* 5E6C 8002AA6C 00031B80 */ sll $v1, $v1, 0xe -/* 5E70 8002AA70 320203FF */ andi $v0, $s0, 0x3ff -/* 5E74 8002AA74 00021080 */ sll $v0, $v0, 2 -/* 5E78 8002AA78 00621825 */ or $v1, $v1, $v0 -/* 5E7C 8002AA7C 24A20010 */ addiu $v0, $a1, 0x10 -/* 5E80 8002AA80 ACA40000 */ sw $a0, ($a1) -/* 5E84 8002AA84 ACA30004 */ sw $v1, 4($a1) -/* 5E88 8002AA88 ACC20000 */ sw $v0, ($a2) -/* 5E8C 8002AA8C 3C02E700 */ lui $v0, 0xe700 -/* 5E90 8002AA90 ACA20008 */ sw $v0, 8($a1) -/* 5E94 8002AA94 24A20018 */ addiu $v0, $a1, 0x18 -/* 5E98 8002AA98 ACA0000C */ sw $zero, 0xc($a1) -/* 5E9C 8002AA9C ACC20000 */ sw $v0, ($a2) -/* 5EA0 8002AAA0 24A20020 */ addiu $v0, $a1, 0x20 -/* 5EA4 8002AAA4 ACA90010 */ sw $t1, 0x10($a1) -/* 5EA8 8002AAA8 ACA70014 */ sw $a3, 0x14($a1) -/* 5EAC 8002AAAC ACC20000 */ sw $v0, ($a2) -/* 5EB0 8002AAB0 ACAA0018 */ sw $t2, 0x18($a1) -/* 5EB4 8002AAB4 ACA8001C */ sw $t0, 0x1c($a1) -/* 5EB8 8002AAB8 8FB00000 */ lw $s0, ($sp) -/* 5EBC 8002AABC 03E00008 */ jr $ra -/* 5EC0 8002AAC0 27BD0008 */ addiu $sp, $sp, 8 diff --git a/ver/us/asm/nonmatchings/43F0/func_8002AAC4.s b/ver/us/asm/nonmatchings/43F0/func_8002AAC4.s deleted file mode 100644 index 3c3ee30e0e..0000000000 --- a/ver/us/asm/nonmatchings/43F0/func_8002AAC4.s +++ /dev/null @@ -1,44 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_8002AAC4 -/* 5EC4 8002AAC4 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 5EC8 8002AAC8 0080402D */ daddu $t0, $a0, $zero -/* 5ECC 8002AACC 00A0482D */ daddu $t1, $a1, $zero -/* 5ED0 8002AAD0 00C0502D */ daddu $t2, $a2, $zero -/* 5ED4 8002AAD4 00E0582D */ daddu $t3, $a3, $zero -/* 5ED8 8002AAD8 00061C00 */ sll $v1, $a2, 0x10 -/* 5EDC 8002AADC 00041400 */ sll $v0, $a0, 0x10 -/* 5EE0 8002AAE0 97AC003A */ lhu $t4, 0x3a($sp) -/* 5EE4 8002AAE4 97AD003E */ lhu $t5, 0x3e($sp) -/* 5EE8 8002AAE8 97AE0042 */ lhu $t6, 0x42($sp) -/* 5EEC 8002AAEC 97AF0046 */ lhu $t7, 0x46($sp) -/* 5EF0 8002AAF0 0062182A */ slt $v1, $v1, $v0 -/* 5EF4 8002AAF4 10600003 */ beqz $v1, .L8002AB04 -/* 5EF8 8002AAF8 AFBF0020 */ sw $ra, 0x20($sp) -/* 5EFC 8002AAFC 0080502D */ daddu $t2, $a0, $zero -/* 5F00 8002AB00 00C0402D */ daddu $t0, $a2, $zero -.L8002AB04: -/* 5F04 8002AB04 00071400 */ sll $v0, $a3, 0x10 -/* 5F08 8002AB08 00051C00 */ sll $v1, $a1, 0x10 -/* 5F0C 8002AB0C 0043102A */ slt $v0, $v0, $v1 -/* 5F10 8002AB10 10400003 */ beqz $v0, .L8002AB20 -/* 5F14 8002AB14 3102FFFF */ andi $v0, $t0, 0xffff -/* 5F18 8002AB18 00A0582D */ daddu $t3, $a1, $zero -/* 5F1C 8002AB1C 00E0482D */ daddu $t1, $a3, $zero -.L8002AB20: -/* 5F20 8002AB20 AFA20010 */ sw $v0, 0x10($sp) -/* 5F24 8002AB24 3122FFFF */ andi $v0, $t1, 0xffff -/* 5F28 8002AB28 AFA20014 */ sw $v0, 0x14($sp) -/* 5F2C 8002AB2C 3142FFFF */ andi $v0, $t2, 0xffff -/* 5F30 8002AB30 AFA20018 */ sw $v0, 0x18($sp) -/* 5F34 8002AB34 3162FFFF */ andi $v0, $t3, 0xffff -/* 5F38 8002AB38 318400FF */ andi $a0, $t4, 0xff -/* 5F3C 8002AB3C 31A500FF */ andi $a1, $t5, 0xff -/* 5F40 8002AB40 31C600FF */ andi $a2, $t6, 0xff -/* 5F44 8002AB44 31E700FF */ andi $a3, $t7, 0xff -/* 5F48 8002AB48 0C00AA41 */ jal func_8002A904 -/* 5F4C 8002AB4C AFA2001C */ sw $v0, 0x1c($sp) -/* 5F50 8002AB50 8FBF0020 */ lw $ra, 0x20($sp) -/* 5F54 8002AB54 03E00008 */ jr $ra -/* 5F58 8002AB58 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/ver/us/asm/nonmatchings/43F0/func_8002AB5C.s b/ver/us/asm/nonmatchings/43F0/func_8002AB5C.s deleted file mode 100644 index d1addcdc03..0000000000 --- a/ver/us/asm/nonmatchings/43F0/func_8002AB5C.s +++ /dev/null @@ -1,47 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_8002AB5C -/* 5F5C 8002AB5C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 5F60 8002AB60 0080402D */ daddu $t0, $a0, $zero -/* 5F64 8002AB64 00A0482D */ daddu $t1, $a1, $zero -/* 5F68 8002AB68 00C0502D */ daddu $t2, $a2, $zero -/* 5F6C 8002AB6C 00E0582D */ daddu $t3, $a3, $zero -/* 5F70 8002AB70 00061C00 */ sll $v1, $a2, 0x10 -/* 5F74 8002AB74 00041400 */ sll $v0, $a0, 0x10 -/* 5F78 8002AB78 97AC003A */ lhu $t4, 0x3a($sp) -/* 5F7C 8002AB7C 97AD003E */ lhu $t5, 0x3e($sp) -/* 5F80 8002AB80 97AE0042 */ lhu $t6, 0x42($sp) -/* 5F84 8002AB84 97AF0046 */ lhu $t7, 0x46($sp) -/* 5F88 8002AB88 0062182A */ slt $v1, $v1, $v0 -/* 5F8C 8002AB8C 10600003 */ beqz $v1, .L8002AB9C -/* 5F90 8002AB90 AFBF0020 */ sw $ra, 0x20($sp) -/* 5F94 8002AB94 0080502D */ daddu $t2, $a0, $zero -/* 5F98 8002AB98 00C0402D */ daddu $t0, $a2, $zero -.L8002AB9C: -/* 5F9C 8002AB9C 00071400 */ sll $v0, $a3, 0x10 -/* 5FA0 8002ABA0 00051C00 */ sll $v1, $a1, 0x10 -/* 5FA4 8002ABA4 0043102A */ slt $v0, $v0, $v1 -/* 5FA8 8002ABA8 10400003 */ beqz $v0, .L8002ABB8 -/* 5FAC 8002ABAC 3102FFFF */ andi $v0, $t0, 0xffff -/* 5FB0 8002ABB0 00A0582D */ daddu $t3, $a1, $zero -/* 5FB4 8002ABB4 00E0482D */ daddu $t1, $a3, $zero -.L8002ABB8: -/* 5FB8 8002ABB8 AFA20010 */ sw $v0, 0x10($sp) -/* 5FBC 8002ABBC 3122FFFF */ andi $v0, $t1, 0xffff -/* 5FC0 8002ABC0 AFA20014 */ sw $v0, 0x14($sp) -/* 5FC4 8002ABC4 3142FFFF */ andi $v0, $t2, 0xffff -/* 5FC8 8002ABC8 AFA20018 */ sw $v0, 0x18($sp) -/* 5FCC 8002ABCC 3162FFFF */ andi $v0, $t3, 0xffff -/* 5FD0 8002ABD0 318400FF */ andi $a0, $t4, 0xff -/* 5FD4 8002ABD4 31A500FF */ andi $a1, $t5, 0xff -/* 5FD8 8002ABD8 31C600FF */ andi $a2, $t6, 0xff -/* 5FDC 8002ABDC 31E700FF */ andi $a3, $t7, 0xff -/* 5FE0 8002ABE0 0C00AA41 */ jal func_8002A904 -/* 5FE4 8002ABE4 AFA2001C */ sw $v0, 0x1c($sp) -/* 5FE8 8002ABE8 8FBF0020 */ lw $ra, 0x20($sp) -/* 5FEC 8002ABEC 03E00008 */ jr $ra -/* 5FF0 8002ABF0 27BD0028 */ addiu $sp, $sp, 0x28 -/* 5FF4 8002ABF4 00000000 */ nop -/* 5FF8 8002ABF8 00000000 */ nop -/* 5FFC 8002ABFC 00000000 */ nop diff --git a/ver/us/asm/nonmatchings/43F0/update_lerp.s b/ver/us/asm/nonmatchings/43F0/update_lerp.s deleted file mode 100644 index 6bbde6ba00..0000000000 --- a/ver/us/asm/nonmatchings/43F0/update_lerp.s +++ /dev/null @@ -1,392 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -.section .rodata - -glabel jtbl_80097D90 -.word L8002A40C_580C, L8002A438_5838, L8002A44C_584C, L8002A460_5860, L8002A5E0_59E0, L8002A620_5A20, L8002A648_5A48, L8002A4E8_58E8, L8002A534_5934, L8002A6D8_5AD8, L8002A798_5B98, L8002A820_5C20, L8002A870_5C70, 0 - -glabel D_80097DC8 -.double 3.141592 - -glabel D_80097DD0 -.double 3.141592 - -glabel D_80097DD8 -.double 3.141592 - -glabel D_80097DE0 -.double 3.141592 - -glabel D_80097DE8 -.double 1.570796 - -glabel D_80097DF0 -.double 1.570796, 0.0 - -.section .text - -glabel update_lerp -/* 57B4 8002A3B4 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 57B8 8002A3B8 F7B60028 */ sdc1 $f22, 0x28($sp) -/* 57BC 8002A3BC 4485B000 */ mtc1 $a1, $f22 -/* 57C0 8002A3C0 F7B80030 */ sdc1 $f24, 0x30($sp) -/* 57C4 8002A3C4 4486C000 */ mtc1 $a2, $f24 -/* 57C8 8002A3C8 AFB00010 */ sw $s0, 0x10($sp) -/* 57CC 8002A3CC 8FB00048 */ lw $s0, 0x48($sp) -/* 57D0 8002A3D0 AFB10014 */ sw $s1, 0x14($sp) -/* 57D4 8002A3D4 AFBF0018 */ sw $ra, 0x18($sp) -/* 57D8 8002A3D8 F7B40020 */ sdc1 $f20, 0x20($sp) -/* 57DC 8002A3DC 16000003 */ bnez $s0, .L8002A3EC -/* 57E0 8002A3E0 00E0882D */ daddu $s1, $a3, $zero -/* 57E4 8002A3E4 0800AA39 */ j .L8002A8E4 -/* 57E8 8002A3E8 4600C006 */ mov.s $f0, $f24 -.L8002A3EC: -/* 57EC 8002A3EC 2C82000D */ sltiu $v0, $a0, 0xd -/* 57F0 8002A3F0 1040013B */ beqz $v0, .L8002A8E0 -/* 57F4 8002A3F4 00041080 */ sll $v0, $a0, 2 -/* 57F8 8002A3F8 3C018009 */ lui $at, %hi(jtbl_80097D90) -/* 57FC 8002A3FC 00220821 */ addu $at, $at, $v0 -/* 5800 8002A400 8C227D90 */ lw $v0, %lo(jtbl_80097D90)($at) -/* 5804 8002A404 00400008 */ jr $v0 -/* 5808 8002A408 00000000 */ nop -glabel L8002A40C_580C -/* 580C 8002A40C 4616C001 */ sub.s $f0, $f24, $f22 -/* 5810 8002A410 44911000 */ mtc1 $s1, $f2 -/* 5814 8002A414 00000000 */ nop -/* 5818 8002A418 468010A0 */ cvt.s.w $f2, $f2 -/* 581C 8002A41C 46020002 */ mul.s $f0, $f0, $f2 -/* 5820 8002A420 00000000 */ nop -/* 5824 8002A424 44901000 */ mtc1 $s0, $f2 -/* 5828 8002A428 00000000 */ nop -/* 582C 8002A42C 468010A0 */ cvt.s.w $f2, $f2 -/* 5830 8002A430 0800A938 */ j .L8002A4E0 -/* 5834 8002A434 46020003 */ div.s $f0, $f0, $f2 -glabel L8002A438_5838 -/* 5838 8002A438 02310018 */ mult $s1, $s1 -/* 583C 8002A43C 00004012 */ mflo $t0 -/* 5840 8002A440 00000000 */ nop -/* 5844 8002A444 0800A92D */ j .L8002A4B4 -/* 5848 8002A448 02100018 */ mult $s0, $s0 -glabel L8002A44C_584C -/* 584C 8002A44C 02310018 */ mult $s1, $s1 -/* 5850 8002A450 00004012 */ mflo $t0 -/* 5854 8002A454 00000000 */ nop -/* 5858 8002A458 0800A925 */ j .L8002A494 -/* 585C 8002A45C 02100018 */ mult $s0, $s0 -glabel L8002A460_5860 -/* 5860 8002A460 02310018 */ mult $s1, $s1 -/* 5864 8002A464 00004012 */ mflo $t0 -/* 5868 8002A468 00000000 */ nop -/* 586C 8002A46C 00000000 */ nop -/* 5870 8002A470 02100018 */ mult $s0, $s0 -/* 5874 8002A474 00001012 */ mflo $v0 -/* 5878 8002A478 00000000 */ nop -/* 587C 8002A47C 00000000 */ nop -/* 5880 8002A480 01110018 */ mult $t0, $s1 -/* 5884 8002A484 00004012 */ mflo $t0 -/* 5888 8002A488 00000000 */ nop -/* 588C 8002A48C 00000000 */ nop -/* 5890 8002A490 00500018 */ mult $v0, $s0 -.L8002A494: -/* 5894 8002A494 00001012 */ mflo $v0 -/* 5898 8002A498 00000000 */ nop -/* 589C 8002A49C 00000000 */ nop -/* 58A0 8002A4A0 01110018 */ mult $t0, $s1 -/* 58A4 8002A4A4 00004012 */ mflo $t0 -/* 58A8 8002A4A8 00000000 */ nop -/* 58AC 8002A4AC 00000000 */ nop -/* 58B0 8002A4B0 00500018 */ mult $v0, $s0 -.L8002A4B4: -/* 58B4 8002A4B4 4616C081 */ sub.s $f2, $f24, $f22 -/* 58B8 8002A4B8 44880000 */ mtc1 $t0, $f0 -/* 58BC 8002A4BC 00000000 */ nop -/* 58C0 8002A4C0 46800020 */ cvt.s.w $f0, $f0 -/* 58C4 8002A4C4 46020002 */ mul.s $f0, $f0, $f2 -/* 58C8 8002A4C8 00000000 */ nop -/* 58CC 8002A4CC 00001012 */ mflo $v0 -/* 58D0 8002A4D0 44821000 */ mtc1 $v0, $f2 -/* 58D4 8002A4D4 00000000 */ nop -/* 58D8 8002A4D8 468010A0 */ cvt.s.w $f2, $f2 -/* 58DC 8002A4DC 46020003 */ div.s $f0, $f0, $f2 -.L8002A4E0: -/* 58E0 8002A4E0 0800AA39 */ j .L8002A8E4 -/* 58E4 8002A4E4 4600B000 */ add.s $f0, $f22, $f0 -glabel L8002A4E8_58E8 -/* 58E8 8002A4E8 44916000 */ mtc1 $s1, $f12 -/* 58EC 8002A4EC 00000000 */ nop -/* 58F0 8002A4F0 46806320 */ cvt.s.w $f12, $f12 -/* 58F4 8002A4F4 4490A000 */ mtc1 $s0, $f20 -/* 58F8 8002A4F8 00000000 */ nop -/* 58FC 8002A4FC 4680A520 */ cvt.s.w $f20, $f20 -/* 5900 8002A500 46146303 */ div.s $f12, $f12, $f20 -/* 5904 8002A504 3C018009 */ lui $at, %hi(D_80097DC8) -/* 5908 8002A508 D4207DC8 */ ldc1 $f0, %lo(D_80097DC8)($at) -/* 590C 8002A50C 46006321 */ cvt.d.s $f12, $f12 -/* 5910 8002A510 46206302 */ mul.d $f12, $f12, $f0 -/* 5914 8002A514 00000000 */ nop -/* 5918 8002A518 3C014010 */ lui $at, 0x4010 -/* 591C 8002A51C 44810800 */ mtc1 $at, $f1 -/* 5920 8002A520 44800000 */ mtc1 $zero, $f0 -/* 5924 8002A524 00000000 */ nop -/* 5928 8002A528 46206302 */ mul.d $f12, $f12, $f0 -/* 592C 8002A52C 0800A966 */ j .L8002A598 -/* 5930 8002A530 00000000 */ nop -glabel L8002A534_5934 -/* 5934 8002A534 02310018 */ mult $s1, $s1 -/* 5938 8002A538 4490A000 */ mtc1 $s0, $f20 -/* 593C 8002A53C 00000000 */ nop -/* 5940 8002A540 4680A520 */ cvt.s.w $f20, $f20 -/* 5944 8002A544 3C018009 */ lui $at, %hi(D_80097DD0) -/* 5948 8002A548 D4207DD0 */ ldc1 $f0, %lo(D_80097DD0)($at) -/* 594C 8002A54C 00001812 */ mflo $v1 -/* 5950 8002A550 44836000 */ mtc1 $v1, $f12 -/* 5954 8002A554 00000000 */ nop -/* 5958 8002A558 46806320 */ cvt.s.w $f12, $f12 -/* 595C 8002A55C 46146303 */ div.s $f12, $f12, $f20 -/* 5960 8002A560 46006321 */ cvt.d.s $f12, $f12 -/* 5964 8002A564 46206302 */ mul.d $f12, $f12, $f0 -/* 5968 8002A568 00000000 */ nop -/* 596C 8002A56C 3C014010 */ lui $at, 0x4010 -/* 5970 8002A570 44810800 */ mtc1 $at, $f1 -/* 5974 8002A574 44800000 */ mtc1 $zero, $f0 -/* 5978 8002A578 00000000 */ nop -/* 597C 8002A57C 46206302 */ mul.d $f12, $f12, $f0 -/* 5980 8002A580 00000000 */ nop -/* 5984 8002A584 3C01402E */ lui $at, 0x402e -/* 5988 8002A588 44810800 */ mtc1 $at, $f1 -/* 598C 8002A58C 44800000 */ mtc1 $zero, $f0 -/* 5990 8002A590 00000000 */ nop -/* 5994 8002A594 46206303 */ div.d $f12, $f12, $f0 -.L8002A598: -/* 5998 8002A598 0C00A874 */ jal cos_rad -/* 599C 8002A59C 46206320 */ cvt.s.d $f12, $f12 -/* 59A0 8002A5A0 4614A502 */ mul.s $f20, $f20, $f20 -/* 59A4 8002A5A4 00000000 */ nop -/* 59A8 8002A5A8 4616C081 */ sub.s $f2, $f24, $f22 -/* 59AC 8002A5AC 46001082 */ mul.s $f2, $f2, $f0 -/* 59B0 8002A5B0 00000000 */ nop -/* 59B4 8002A5B4 02111023 */ subu $v0, $s0, $s1 -/* 59B8 8002A5B8 44820000 */ mtc1 $v0, $f0 -/* 59BC 8002A5BC 00000000 */ nop -/* 59C0 8002A5C0 46800020 */ cvt.s.w $f0, $f0 -/* 59C4 8002A5C4 46001082 */ mul.s $f2, $f2, $f0 -/* 59C8 8002A5C8 00000000 */ nop -/* 59CC 8002A5CC 46001082 */ mul.s $f2, $f2, $f0 -/* 59D0 8002A5D0 00000000 */ nop -/* 59D4 8002A5D4 46141083 */ div.s $f2, $f2, $f20 -/* 59D8 8002A5D8 0800AA39 */ j .L8002A8E4 -/* 59DC 8002A5DC 4602C001 */ sub.s $f0, $f24, $f2 -glabel L8002A5E0_59E0 -/* 59E0 8002A5E0 02113823 */ subu $a3, $s0, $s1 -/* 59E4 8002A5E4 00E70018 */ mult $a3, $a3 -/* 59E8 8002A5E8 4616C101 */ sub.s $f4, $f24, $f22 -/* 59EC 8002A5EC 00001812 */ mflo $v1 -/* 59F0 8002A5F0 44830000 */ mtc1 $v1, $f0 -/* 59F4 8002A5F4 00000000 */ nop -/* 59F8 8002A5F8 46800020 */ cvt.s.w $f0, $f0 -/* 59FC 8002A5FC 46040002 */ mul.s $f0, $f0, $f4 -/* 5A00 8002A600 00000000 */ nop -/* 5A04 8002A604 02100018 */ mult $s0, $s0 -/* 5A08 8002A608 00001812 */ mflo $v1 -/* 5A0C 8002A60C 44831000 */ mtc1 $v1, $f2 -/* 5A10 8002A610 00000000 */ nop -/* 5A14 8002A614 468010A0 */ cvt.s.w $f2, $f2 -/* 5A18 8002A618 0800A9B3 */ j .L8002A6CC -/* 5A1C 8002A61C 4604B100 */ add.s $f4, $f22, $f4 -glabel L8002A620_5A20 -/* 5A20 8002A620 02113823 */ subu $a3, $s0, $s1 -/* 5A24 8002A624 00E70018 */ mult $a3, $a3 -/* 5A28 8002A628 00001012 */ mflo $v0 -/* 5A2C 8002A62C 00000000 */ nop -/* 5A30 8002A630 00000000 */ nop -/* 5A34 8002A634 00470018 */ mult $v0, $a3 -/* 5A38 8002A638 00004012 */ mflo $t0 -/* 5A3C 8002A63C 00000000 */ nop -/* 5A40 8002A640 0800A9A4 */ j .L8002A690 -/* 5A44 8002A644 02100018 */ mult $s0, $s0 -glabel L8002A648_5A48 -/* 5A48 8002A648 02113823 */ subu $a3, $s0, $s1 -/* 5A4C 8002A64C 00E70018 */ mult $a3, $a3 -/* 5A50 8002A650 00001012 */ mflo $v0 -/* 5A54 8002A654 00000000 */ nop -/* 5A58 8002A658 00000000 */ nop -/* 5A5C 8002A65C 00470018 */ mult $v0, $a3 -/* 5A60 8002A660 00004012 */ mflo $t0 -/* 5A64 8002A664 00000000 */ nop -/* 5A68 8002A668 00000000 */ nop -/* 5A6C 8002A66C 02100018 */ mult $s0, $s0 -/* 5A70 8002A670 00001012 */ mflo $v0 -/* 5A74 8002A674 00000000 */ nop -/* 5A78 8002A678 00000000 */ nop -/* 5A7C 8002A67C 01070018 */ mult $t0, $a3 -/* 5A80 8002A680 00004012 */ mflo $t0 -/* 5A84 8002A684 00000000 */ nop -/* 5A88 8002A688 00000000 */ nop -/* 5A8C 8002A68C 00500018 */ mult $v0, $s0 -.L8002A690: -/* 5A90 8002A690 4616C101 */ sub.s $f4, $f24, $f22 -/* 5A94 8002A694 44880000 */ mtc1 $t0, $f0 -/* 5A98 8002A698 00000000 */ nop -/* 5A9C 8002A69C 46800020 */ cvt.s.w $f0, $f0 -/* 5AA0 8002A6A0 46040002 */ mul.s $f0, $f0, $f4 -/* 5AA4 8002A6A4 00000000 */ nop -/* 5AA8 8002A6A8 00001012 */ mflo $v0 -/* 5AAC 8002A6AC 00000000 */ nop -/* 5AB0 8002A6B0 00000000 */ nop -/* 5AB4 8002A6B4 00500018 */ mult $v0, $s0 -/* 5AB8 8002A6B8 4604B100 */ add.s $f4, $f22, $f4 -/* 5ABC 8002A6BC 00001012 */ mflo $v0 -/* 5AC0 8002A6C0 44821000 */ mtc1 $v0, $f2 -/* 5AC4 8002A6C4 00000000 */ nop -/* 5AC8 8002A6C8 468010A0 */ cvt.s.w $f2, $f2 -.L8002A6CC: -/* 5ACC 8002A6CC 46020003 */ div.s $f0, $f0, $f2 -/* 5AD0 8002A6D0 0800AA39 */ j .L8002A8E4 -/* 5AD4 8002A6D4 46002001 */ sub.s $f0, $f4, $f0 -glabel L8002A6D8_5AD8 -/* 5AD8 8002A6D8 02310018 */ mult $s1, $s1 -/* 5ADC 8002A6DC 4490A000 */ mtc1 $s0, $f20 -/* 5AE0 8002A6E0 00000000 */ nop -/* 5AE4 8002A6E4 4680A520 */ cvt.s.w $f20, $f20 -/* 5AE8 8002A6E8 3C018009 */ lui $at, %hi(D_80097DD8) -/* 5AEC 8002A6EC D4207DD8 */ ldc1 $f0, %lo(D_80097DD8)($at) -/* 5AF0 8002A6F0 00001812 */ mflo $v1 -/* 5AF4 8002A6F4 44836000 */ mtc1 $v1, $f12 -/* 5AF8 8002A6F8 00000000 */ nop -/* 5AFC 8002A6FC 46806320 */ cvt.s.w $f12, $f12 -/* 5B00 8002A700 46146303 */ div.s $f12, $f12, $f20 -/* 5B04 8002A704 46006321 */ cvt.d.s $f12, $f12 -/* 5B08 8002A708 46206302 */ mul.d $f12, $f12, $f0 -/* 5B0C 8002A70C 00000000 */ nop -/* 5B10 8002A710 3C014010 */ lui $at, 0x4010 -/* 5B14 8002A714 44810800 */ mtc1 $at, $f1 -/* 5B18 8002A718 44800000 */ mtc1 $zero, $f0 -/* 5B1C 8002A71C 00000000 */ nop -/* 5B20 8002A720 46206302 */ mul.d $f12, $f12, $f0 -/* 5B24 8002A724 00000000 */ nop -/* 5B28 8002A728 3C014044 */ lui $at, 0x4044 -/* 5B2C 8002A72C 44810800 */ mtc1 $at, $f1 -/* 5B30 8002A730 44800000 */ mtc1 $zero, $f0 -/* 5B34 8002A734 00000000 */ nop -/* 5B38 8002A738 46206303 */ div.d $f12, $f12, $f0 -/* 5B3C 8002A73C 0C00A874 */ jal cos_rad -/* 5B40 8002A740 46206320 */ cvt.s.d $f12, $f12 -/* 5B44 8002A744 02111023 */ subu $v0, $s0, $s1 -/* 5B48 8002A748 44821000 */ mtc1 $v0, $f2 -/* 5B4C 8002A74C 00000000 */ nop -/* 5B50 8002A750 468010A0 */ cvt.s.w $f2, $f2 -/* 5B54 8002A754 46020002 */ mul.s $f0, $f0, $f2 -/* 5B58 8002A758 00000000 */ nop -/* 5B5C 8002A75C 4614A502 */ mul.s $f20, $f20, $f20 -/* 5B60 8002A760 00000000 */ nop -/* 5B64 8002A764 46020002 */ mul.s $f0, $f0, $f2 -/* 5B68 8002A768 00000000 */ nop -/* 5B6C 8002A76C 44801000 */ mtc1 $zero, $f2 -/* 5B70 8002A770 46140103 */ div.s $f4, $f0, $f20 -/* 5B74 8002A774 4602203C */ c.lt.s $f4, $f2 -/* 5B78 8002A778 00000000 */ nop -/* 5B7C 8002A77C 45030001 */ bc1tl .L8002A784 -/* 5B80 8002A780 46002107 */ neg.s $f4, $f4 -.L8002A784: -/* 5B84 8002A784 4616C001 */ sub.s $f0, $f24, $f22 -/* 5B88 8002A788 46040002 */ mul.s $f0, $f0, $f4 -/* 5B8C 8002A78C 00000000 */ nop -/* 5B90 8002A790 0800AA39 */ j .L8002A8E4 -/* 5B94 8002A794 4600C001 */ sub.s $f0, $f24, $f0 -glabel L8002A798_5B98 -/* 5B98 8002A798 44916000 */ mtc1 $s1, $f12 -/* 5B9C 8002A79C 00000000 */ nop -/* 5BA0 8002A7A0 46806320 */ cvt.s.w $f12, $f12 -/* 5BA4 8002A7A4 3C018009 */ lui $at, %hi(D_80097DE0) -/* 5BA8 8002A7A8 D4207DE0 */ ldc1 $f0, %lo(D_80097DE0)($at) -/* 5BAC 8002A7AC 46006321 */ cvt.d.s $f12, $f12 -/* 5BB0 8002A7B0 46206302 */ mul.d $f12, $f12, $f0 -/* 5BB4 8002A7B4 00000000 */ nop -/* 5BB8 8002A7B8 44900000 */ mtc1 $s0, $f0 -/* 5BBC 8002A7BC 00000000 */ nop -/* 5BC0 8002A7C0 46800020 */ cvt.s.w $f0, $f0 -/* 5BC4 8002A7C4 46000021 */ cvt.d.s $f0, $f0 -/* 5BC8 8002A7C8 46206303 */ div.d $f12, $f12, $f0 -/* 5BCC 8002A7CC 0C00A874 */ jal cos_rad -/* 5BD0 8002A7D0 46206320 */ cvt.s.d $f12, $f12 -/* 5BD4 8002A7D4 4616C081 */ sub.s $f2, $f24, $f22 -/* 5BD8 8002A7D8 3C013FF0 */ lui $at, 0x3ff0 -/* 5BDC 8002A7DC 44812800 */ mtc1 $at, $f5 -/* 5BE0 8002A7E0 44802000 */ mtc1 $zero, $f4 -/* 5BE4 8002A7E4 46000021 */ cvt.d.s $f0, $f0 -/* 5BE8 8002A7E8 46202101 */ sub.d $f4, $f4, $f0 -/* 5BEC 8002A7EC 460010A1 */ cvt.d.s $f2, $f2 -/* 5BF0 8002A7F0 46241082 */ mul.d $f2, $f2, $f4 -/* 5BF4 8002A7F4 00000000 */ nop -/* 5BF8 8002A7F8 3C013FE0 */ lui $at, 0x3fe0 -/* 5BFC 8002A7FC 44810800 */ mtc1 $at, $f1 -/* 5C00 8002A800 44800000 */ mtc1 $zero, $f0 -/* 5C04 8002A804 00000000 */ nop -/* 5C08 8002A808 46201082 */ mul.d $f2, $f2, $f0 -/* 5C0C 8002A80C 00000000 */ nop -/* 5C10 8002A810 4600B021 */ cvt.d.s $f0, $f22 -/* 5C14 8002A814 46220000 */ add.d $f0, $f0, $f2 -/* 5C18 8002A818 0800AA39 */ j .L8002A8E4 -/* 5C1C 8002A81C 46200020 */ cvt.s.d $f0, $f0 -glabel L8002A820_5C20 -/* 5C20 8002A820 44916000 */ mtc1 $s1, $f12 -/* 5C24 8002A824 00000000 */ nop -/* 5C28 8002A828 46806320 */ cvt.s.w $f12, $f12 -/* 5C2C 8002A82C 3C018009 */ lui $at, %hi(D_80097DE8) -/* 5C30 8002A830 D4207DE8 */ ldc1 $f0, %lo(D_80097DE8)($at) -/* 5C34 8002A834 46006321 */ cvt.d.s $f12, $f12 -/* 5C38 8002A838 46206302 */ mul.d $f12, $f12, $f0 -/* 5C3C 8002A83C 00000000 */ nop -/* 5C40 8002A840 44900000 */ mtc1 $s0, $f0 -/* 5C44 8002A844 00000000 */ nop -/* 5C48 8002A848 46800020 */ cvt.s.w $f0, $f0 -/* 5C4C 8002A84C 46000021 */ cvt.d.s $f0, $f0 -/* 5C50 8002A850 46206303 */ div.d $f12, $f12, $f0 -/* 5C54 8002A854 0C00A85B */ jal sin_rad -/* 5C58 8002A858 46206320 */ cvt.s.d $f12, $f12 -/* 5C5C 8002A85C 4616C081 */ sub.s $f2, $f24, $f22 -/* 5C60 8002A860 46001082 */ mul.s $f2, $f2, $f0 -/* 5C64 8002A864 00000000 */ nop -/* 5C68 8002A868 0800AA39 */ j .L8002A8E4 -/* 5C6C 8002A86C 4602B000 */ add.s $f0, $f22, $f2 -glabel L8002A870_5C70 -/* 5C70 8002A870 44916000 */ mtc1 $s1, $f12 -/* 5C74 8002A874 00000000 */ nop -/* 5C78 8002A878 46806320 */ cvt.s.w $f12, $f12 -/* 5C7C 8002A87C 3C018009 */ lui $at, %hi(D_80097DF0) -/* 5C80 8002A880 D4207DF0 */ ldc1 $f0, %lo(D_80097DF0)($at) -/* 5C84 8002A884 46006321 */ cvt.d.s $f12, $f12 -/* 5C88 8002A888 46206302 */ mul.d $f12, $f12, $f0 -/* 5C8C 8002A88C 00000000 */ nop -/* 5C90 8002A890 44900000 */ mtc1 $s0, $f0 -/* 5C94 8002A894 00000000 */ nop -/* 5C98 8002A898 46800020 */ cvt.s.w $f0, $f0 -/* 5C9C 8002A89C 46000021 */ cvt.d.s $f0, $f0 -/* 5CA0 8002A8A0 46206303 */ div.d $f12, $f12, $f0 -/* 5CA4 8002A8A4 0C00A874 */ jal cos_rad -/* 5CA8 8002A8A8 46206320 */ cvt.s.d $f12, $f12 -/* 5CAC 8002A8AC 4616C101 */ sub.s $f4, $f24, $f22 -/* 5CB0 8002A8B0 3C013FF0 */ lui $at, 0x3ff0 -/* 5CB4 8002A8B4 44811800 */ mtc1 $at, $f3 -/* 5CB8 8002A8B8 44801000 */ mtc1 $zero, $f2 -/* 5CBC 8002A8BC 46000021 */ cvt.d.s $f0, $f0 -/* 5CC0 8002A8C0 46201081 */ sub.d $f2, $f2, $f0 -/* 5CC4 8002A8C4 46002121 */ cvt.d.s $f4, $f4 -/* 5CC8 8002A8C8 46222102 */ mul.d $f4, $f4, $f2 -/* 5CCC 8002A8CC 00000000 */ nop -/* 5CD0 8002A8D0 4600B021 */ cvt.d.s $f0, $f22 -/* 5CD4 8002A8D4 46240000 */ add.d $f0, $f0, $f4 -/* 5CD8 8002A8D8 0800AA39 */ j .L8002A8E4 -/* 5CDC 8002A8DC 46200020 */ cvt.s.d $f0, $f0 -.L8002A8E0: -/* 5CE0 8002A8E0 44800000 */ mtc1 $zero, $f0 -.L8002A8E4: -/* 5CE4 8002A8E4 8FBF0018 */ lw $ra, 0x18($sp) -/* 5CE8 8002A8E8 8FB10014 */ lw $s1, 0x14($sp) -/* 5CEC 8002A8EC 8FB00010 */ lw $s0, 0x10($sp) -/* 5CF0 8002A8F0 D7B80030 */ ldc1 $f24, 0x30($sp) -/* 5CF4 8002A8F4 D7B60028 */ ldc1 $f22, 0x28($sp) -/* 5CF8 8002A8F8 D7B40020 */ ldc1 $f20, 0x20($sp) -/* 5CFC 8002A8FC 03E00008 */ jr $ra -/* 5D00 8002A900 27BD0038 */ addiu $sp, $sp, 0x38