3 effect functions (#885)

* 3 funcs

* cleaning up
This commit is contained in:
Unnunu 2022-12-13 06:11:53 +03:00 committed by GitHub
parent e4283f3ea1
commit a85b573617
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 377 additions and 1068 deletions

View File

@ -8,28 +8,29 @@ void confetti_appendGfx(void* effect);
extern Gfx D_090009E8_38C588[];
extern Gfx D_09000A00_38C5A0[];
extern Gfx D_09000940_38C4E0[];
Gfx* D_E0088CC0[] = {
D_090009E8_38C588, D_090009E8_38C588, D_090009E8_38C588, D_09000A00_38C5A0,
D_090009E8_38C588, D_090009E8_38C588, D_090009E8_38C588
};
u8 D_E0088CDC[] = {
232, 160, 168,
168, 80, 88,
160, 168, 232,
72, 72, 232,
160, 232, 160,
96, 176, 120,
224, 224, 88,
176, 160, 56,
232, 160, 232,
176, 64, 160,
160, 216, 216,
88, 168, 168
Color_RGB8 D_E0088CDC[] = {
{ 232, 160, 168, },
{ 168, 80, 88, },
{ 160, 168, 232, },
{ 72, 72, 232, },
{ 160, 232, 160, },
{ 96, 176, 120, },
{ 224, 224, 88, },
{ 176, 160, 56, },
{ 232, 160, 232, },
{ 176, 64, 160, },
{ 160, 216, 216, },
{ 88, 168, 168, },
};
s8 D_E0088D00[] = { 0, 1, 2, 3, 2, 1, 0, 0 };
u8 D_E0088D00[] = { 0, 1, 2, 3, 2, 1, 0, 0 };
u8 D_E0088D08[] = { 0, 45, 0, 60 };
@ -238,4 +239,76 @@ void confetti_render(EffectInstance* effect) {
retTask = shim_queue_render_task(&renderTask);
}
INCLUDE_ASM(s32, "effects/confetti", confetti_appendGfx);
void confetti_appendGfx(void* effect) {
ConfettiFXData* part = ((EffectInstance*)effect)->data.confetti; //s3
Matrix4f sp18;
Matrix4f sp58;
s32 i;
s32 uly;
s32 width = 0x3C;
s32 height = 0x3C;
s32 ulx = 0;
s32 unk_28;
s32 unk_2C;
Gfx* spA0;
s32 spA4;
Gfx* savedGfxPos;
s32 unk_24;
Color_RGB8* color;
unk_24 = part->unk_24;
unk_2C = part->unk_2C;
unk_28 = part->unk_28;
spA0 = D_E0088CC0[part->unk_00];
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, D_09000940_38C4E0);
shim_guTranslateF(sp18, part->unk_04, part->unk_08, part->unk_0C);
shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
savedGfxPos = gMasterGfxPos++;
part++;
for (i = 0; i < unk_2C; i++, part++) {
color = &D_E0088CDC[i % 12];
if (part->unk_30 <= 0) {
shim_guTranslateF(sp18, part->unk_04, part->unk_08, part->unk_0C);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, color->r, color->g, color->b, unk_28);
switch ((unk_24 + i) % 3) {
case 0:
gDPSetCombineLERP(gMasterGfxPos++, TEXEL0, 0, PRIMITIVE, ENVIRONMENT, PRIMITIVE, 0, TEXEL0, 0, TEXEL0, ENVIRONMENT, PRIMITIVE, 0, PRIMITIVE, 0, TEXEL0, 0);
break;
case 1:
gDPSetCombineLERP(gMasterGfxPos++, TEXEL0, 0, PRIMITIVE, ENVIRONMENT, PRIMITIVE, 0, TEXEL0, 0, TEXEL0, 0, PRIMITIVE, ENVIRONMENT, PRIMITIVE, 0, TEXEL0, 0);
break;
case 2:
gDPSetCombineLERP(gMasterGfxPos++, TEXEL0, 0, PRIMITIVE, ENVIRONMENT, PRIMITIVE, 0, TEXEL0, 0, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, 0, TEXEL0, 0);
break;
}
uly = ((i + D_E0088D00[unk_24 % 6]) & 0xF) * 16;
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, ulx << 2, uly << 2,
(ulx << 2) + ((width >> 1) << 1), (uly << 2) + height);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, spA0);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
gSPEndDisplayList(gMasterGfxPos++);
gSPBranchList(savedGfxPos, gMasterGfxPos);
savedGfxPos++;
gSPDisplayList(gMasterGfxPos++, savedGfxPos);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -78,7 +78,129 @@ EffectInstance* energy_orb_wave_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32
void energy_orb_wave_init(EffectInstance* effect) {
}
INCLUDE_ASM(s32, "effects/energy_orb_wave", energy_orb_wave_update);
void energy_orb_wave_update(EffectInstance* effect) {
EnergyOrbWaveFXData* data = effect->data.energyOrbWave;
f32 var_float;
s32 unk_14;
s32 var_2;
s32 var_1;
s32 unk_1C;
u16 var_4;
s32 var_3;
if (effect->flags & EFFECT_INSTANCE_FLAGS_10) {
effect->flags &= ~EFFECT_INSTANCE_FLAGS_10;
data->unk_10 = 30;
}
if (data->unk_10 < 100) {
data->unk_10--;
}
data->unk_14++;
if (data->unk_10 < 0) {
shim_remove_effect(effect);
return;
}
unk_14 = data->unk_14;
unk_1C = data->unk_1C;
var_1 = 0xFF;
var_2 = 0xFF;
if (unk_14 < 16) {
var_1 = (unk_14 * 16) - 1;
}
if (data->unk_10 < 16) {
var_1 = var_1 * data->unk_10 / 16;
var_2 = data->unk_10 * 16;
}
switch (unk_1C) {
case 0:
data->unk_20 = 70;
data->unk_24 = 180;
data->unk_28 = 120;
var_float = shim_sin_deg(unk_14 * 2) * 10.0f + 190.0f;
data->unk_2C = ((s32) var_float * var_1) / 255;
break;
case 1:
var_3 = 255;
data->unk_20 = 70;
data->unk_24 = 255;
data->unk_28 = 230;
data->unk_2C = (var_1 * var_3) / 255;
break;
case 2:
data->unk_20 = 170;
data->unk_24 = 40;
data->unk_28 = 110;
var_float = shim_sin_deg(unk_14 * 2) * 10.0f + 190.0f;
data->unk_2C = ((s32) var_float * var_1) / 255;
break;
case 3:
var_4 = 255;
data->unk_20 = 220;
data->unk_24 = 40;
data->unk_28 = 170;
data->unk_2C = (var_1 * var_4) / 255;
break;
case 4:
data->unk_20 = 235;
data->unk_24 = 235;
data->unk_28 = 200;
var_float = shim_sin_deg(unk_14 * 2) * 15.0f + 215.0f;
data->unk_2C = ((s32) var_float * var_1) / 255;
break;
case 5:
var_4 = 255;
data->unk_20 = 235;
data->unk_24 = 235;
data->unk_28 = 200;
data->unk_2C = (var_1 * var_4) / 255;
break;
case 6:
var_4 = 127;
data->unk_20 = 70;
data->unk_24 = 180;
data->unk_28 = 120;
data->unk_2C = (var_2 * var_4) / 255;
data->scale *= 1.1;
break;
case 7:
var_4 = 160;
data->unk_20 = 162;
data->unk_24 = 189;
data->unk_28 = 174;
data->unk_2C = (var_2 * var_4) / 255;
data->scale *= 1.1;
break;
case 8:
var_4 = 127;
data->unk_20 = 170;
data->unk_24 = 40;
data->unk_28 = 110;
data->unk_2C = (var_2 * var_4) / 255;
data->scale *= 1.1;
break;
case 9:
var_4 = 160;
data->unk_20 = 180;
data->unk_24 = 178;
data->unk_28 = 174;
data->unk_2C = (var_2 * var_4) / 255;
data->scale *= 1.1;
break;
default:
var_4 = 160;
data->unk_20 = 50;
data->unk_24 = 50;
data->unk_28 = 255;
data->unk_2C = (var_2 * var_4) / 255;
data->scale += data->unk_34;
break;
}
}
void energy_orb_wave_render(EffectInstance* effect) {
EnergyOrbWaveFXData* effect82 = effect->data.energyOrbWave;

View File

@ -18,7 +18,7 @@ Gfx* D_E0122BA4[] = { D_09004E00_412090 };
typedef struct UnkStarSpiritsEnergy {
/* 0x00 */ u16 unk_00;
/* 0x02 */ char unk_02;
/* 0x02 */ u8 unk_03;
/* 0x03 */ u8 unk_03;
} UnkStarSpiritsEnergy; // size = 0x4
UnkStarSpiritsEnergy D_E0122BA8[] = {
@ -156,7 +156,171 @@ EffectInstance* star_spirits_energy_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3,
void star_spirits_energy_init(EffectInstance* effect) {
}
INCLUDE_ASM(s32, "effects/star_spirits_energy", star_spirits_energy_update);
void star_spirits_energy_update(EffectInstance* effect) {
StarSpiritsEnergyFXData* data = effect->data.starSpiritsEnergy;
s32 unk_04 = data->unk_04;
s32 unk_18;
s32 i;
f32 var_float_1;
f32 var_float_2;
f32 var_float_3;
u8 var_int_1;
u8 var_int_2;
u8 var_int_3;
if (effect->flags & EFFECT_INSTANCE_FLAGS_10) {
effect->flags &= ~EFFECT_INSTANCE_FLAGS_10;
data->unk_14 = 16;
}
if (data->unk_14 < 1000) {
data->unk_14--;
}
data->unk_18++;
if (data->unk_14 < 0) {
shim_remove_effect(effect);
return;
}
unk_18 = data->unk_18;
if (data->unk_14 < 16) {
data->unk_28 = data->unk_14 * 16;
}
switch (data->unk_70) {
case 0:
data->unk_50[0] = (unk_18 & 3) * 30 + 200;
data->unk_74++;
data->unk_40[0] = shim_sin_deg(unk_18 * 20) * 0.04 + 0.5;
if (data->unk_00 != 0) {
data->unk_08 += shim_sin_deg(unk_18);
data->unk_0C += shim_cos_deg(unk_18 * 1.235631);
if (data->unk_74 > 50) {
data->unk_74 = 0;
if (unk_04 == 3) {
data->unk_70 = 100;
} else {
data->unk_70 = 1;
}
}
}
break;
case 100:
switch (data->unk_74) {
case 0:
data->unk_40[3] = 4.0f;
data->unk_50[3] = 255;
break;
case 1:
data->unk_40[3] = 8.0f;
data->unk_50[3] = 255;
break;
default:
data->unk_40[3] = 0.0f;
data->unk_50[3] = 0;
break;
}
if (data->unk_74 < 30) {
var_float_1 = (f32) D_E0122BA8[data->unk_74].unk_00 * 0.01 + data->unk_74 * 0.3;
var_int_1 = D_E0122BA8[data->unk_74].unk_03;
} else {
var_float_1 = (f32) D_E0122BA8[29].unk_00 * 0.01 + data->unk_74 * 0.3;
var_int_1 = D_E0122BA8[29].unk_03;
}
data->unk_40[0] = data->unk_50[0] = 0;
data->unk_50[1] = var_int_1;
data->unk_50[2] = var_int_1;
data->unk_40[1] = var_float_1;
data->unk_40[2] = var_float_1 + 0.6;
data->unk_74++;
break;
case 1:
switch (data->unk_74) {
case 0:
data->unk_40[3] = 4.0f;
data->unk_50[3] = 255;
break;
case 1:
data->unk_40[3] = 8.0f;
data->unk_50[3] = 255;
break;
default:
data->unk_40[3] = 0.0f;
data->unk_50[3] = 0;
break;
}
var_float_2 = (f32) D_E0122BA8[data->unk_74].unk_00 * 0.01;
var_int_2 = D_E0122BA8[data->unk_74].unk_03;
data->unk_40[0] = data->unk_50[0] = 0;
data->unk_50[1] = var_int_2;
data->unk_50[2] = var_int_2;
data->unk_40[1] = var_float_2;
data->unk_40[2] = var_float_2 * 1.2 + 4.0;
data->unk_74++;
if (data->unk_74 >= 30) {
data->unk_74 = 0;
data->unk_70 = 4;
}
break;
case 4:
switch (29 - data->unk_74) {
case 0:
data->unk_40[3] = 4.0f;
data->unk_50[3] = 255;
break;
case 1:
data->unk_40[3] = 8.0f;
data->unk_50[3] = 255;
break;
default:
data->unk_40[3] = 0;
data->unk_50[3] = 0;
break;
}
var_float_3 = (f32) D_E0122C20[data->unk_74].unk_00 * 0.01;
var_int_3 = D_E0122C20[data->unk_74].unk_03;
data->unk_40[0] = data->unk_50[0] = 0;
data->unk_50[1] = var_int_3;
data->unk_50[2] = 0;
data->unk_40[1] = var_float_3;
data->unk_40[2] = 0.0f;
data->unk_74++;
if (data->unk_74 >= 30) {
data->unk_74 = 0;
data->unk_70 = 5;
}
break;
case 5:
default:
data->unk_40[0] = 0.0f;
data->unk_40[1] = 0.0f;
data->unk_40[2] = 0.0f;
data->unk_50[0] = 0;
data->unk_50[1] = 0;
data->unk_50[2] = 0;
data->unk_40[3] = 0;
data->unk_50[3] = 0;
data->unk_40[3] = 0;
data->unk_74++;
break;
}
for (i = 0; i < 4; i++) {
if (data->unk_50[i] > 255) {
data->unk_50[i] = 255;
}
if (data->unk_50[i] < 0) {
data->unk_50[i] = 0;
}
if (data->unk_40[i] < 0.0f) {
data->unk_40[i] = 0.0f;
}
}
}
void star_spirits_energy_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -1,326 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel confetti_appendGfx
/* 38B5D0 E00887E0 27BDFF30 */ addiu $sp, $sp, -0xd0
/* 38B5D4 E00887E4 0080382D */ daddu $a3, $a0, $zero
/* 38B5D8 E00887E8 3C08DB06 */ lui $t0, 0xdb06
/* 38B5DC E00887EC 35080024 */ ori $t0, $t0, 0x24
/* 38B5E0 E00887F0 27A40018 */ addiu $a0, $sp, 0x18
/* 38B5E4 E00887F4 AFB200B0 */ sw $s2, 0xb0($sp)
/* 38B5E8 E00887F8 3C120001 */ lui $s2, 1
/* 38B5EC E00887FC AFB500BC */ sw $s5, 0xbc($sp)
/* 38B5F0 E0088800 3C15800A */ lui $s5, %hi(gMasterGfxPos)
/* 38B5F4 E0088804 26B5A66C */ addiu $s5, $s5, %lo(gMasterGfxPos)
/* 38B5F8 E0088808 AFBF00CC */ sw $ra, 0xcc($sp)
/* 38B5FC E008880C AFBE00C8 */ sw $fp, 0xc8($sp)
/* 38B600 E0088810 AFB700C4 */ sw $s7, 0xc4($sp)
/* 38B604 E0088814 AFB600C0 */ sw $s6, 0xc0($sp)
/* 38B608 E0088818 AFB400B8 */ sw $s4, 0xb8($sp)
/* 38B60C E008881C AFB300B4 */ sw $s3, 0xb4($sp)
/* 38B610 E0088820 AFB100AC */ sw $s1, 0xac($sp)
/* 38B614 E0088824 AFB000A8 */ sw $s0, 0xa8($sp)
/* 38B618 E0088828 8EA30000 */ lw $v1, ($s5)
/* 38B61C E008882C 8CF3000C */ lw $s3, 0xc($a3)
/* 38B620 E0088830 0060302D */ daddu $a2, $v1, $zero
/* 38B624 E0088834 24630008 */ addiu $v1, $v1, 8
/* 38B628 E0088838 AEA30000 */ sw $v1, ($s5)
/* 38B62C E008883C 8E650000 */ lw $a1, ($s3)
/* 38B630 E0088840 24620008 */ addiu $v0, $v1, 8
/* 38B634 E0088844 AEA20000 */ sw $v0, ($s5)
/* 38B638 E0088848 8E7E0024 */ lw $fp, 0x24($s3)
/* 38B63C E008884C 8E69002C */ lw $t1, 0x2c($s3)
/* 38B640 E0088850 36521630 */ ori $s2, $s2, 0x1630
/* 38B644 E0088854 AFA9009C */ sw $t1, 0x9c($sp)
/* 38B648 E0088858 8E690028 */ lw $t1, 0x28($s3)
/* 38B64C E008885C 00052880 */ sll $a1, $a1, 2
/* 38B650 E0088860 AFA90098 */ sw $t1, 0x98($sp)
/* 38B654 E0088864 3C01E009 */ lui $at, %hi(D_E0088CC0)
/* 38B658 E0088868 00250821 */ addu $at, $at, $a1
/* 38B65C E008886C 8C258CC0 */ lw $a1, %lo(D_E0088CC0)($at)
/* 38B660 E0088870 3C02E700 */ lui $v0, 0xe700
/* 38B664 E0088874 AFA500A0 */ sw $a1, 0xa0($sp)
/* 38B668 E0088878 ACC20000 */ sw $v0, ($a2)
/* 38B66C E008887C ACC00004 */ sw $zero, 4($a2)
/* 38B670 E0088880 AC680000 */ sw $t0, ($v1)
/* 38B674 E0088884 8CE50010 */ lw $a1, 0x10($a3)
/* 38B678 E0088888 24620010 */ addiu $v0, $v1, 0x10
/* 38B67C E008888C AEA20000 */ sw $v0, ($s5)
/* 38B680 E0088890 8CA5001C */ lw $a1, 0x1c($a1)
/* 38B684 E0088894 3C02DE00 */ lui $v0, 0xde00
/* 38B688 E0088898 AC620008 */ sw $v0, 8($v1)
/* 38B68C E008889C 3C020900 */ lui $v0, 0x900
/* 38B690 E00888A0 24420940 */ addiu $v0, $v0, 0x940
/* 38B694 E00888A4 AC62000C */ sw $v0, 0xc($v1)
/* 38B698 E00888A8 3C028000 */ lui $v0, 0x8000
/* 38B69C E00888AC 00A22821 */ addu $a1, $a1, $v0
/* 38B6A0 E00888B0 AC650004 */ sw $a1, 4($v1)
/* 38B6A4 E00888B4 8E650004 */ lw $a1, 4($s3)
/* 38B6A8 E00888B8 8E660008 */ lw $a2, 8($s3)
/* 38B6AC E00888BC 8E67000C */ lw $a3, 0xc($s3)
/* 38B6B0 E00888C0 0C080108 */ jal shim_guTranslateF
/* 38B6B4 E00888C4 0000A02D */ daddu $s4, $zero, $zero
/* 38B6B8 E00888C8 27B00058 */ addiu $s0, $sp, 0x58
/* 38B6BC E00888CC 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 38B6C0 E00888D0 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 38B6C4 E00888D4 44800000 */ mtc1 $zero, $f0
/* 38B6C8 E00888D8 00031080 */ sll $v0, $v1, 2
/* 38B6CC E00888DC 00431021 */ addu $v0, $v0, $v1
/* 38B6D0 E00888E0 00021080 */ sll $v0, $v0, 2
/* 38B6D4 E00888E4 00431023 */ subu $v0, $v0, $v1
/* 38B6D8 E00888E8 000218C0 */ sll $v1, $v0, 3
/* 38B6DC E00888EC 00431021 */ addu $v0, $v0, $v1
/* 38B6E0 E00888F0 000210C0 */ sll $v0, $v0, 3
/* 38B6E4 E00888F4 44060000 */ mfc1 $a2, $f0
/* 38B6E8 E00888F8 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 38B6EC E00888FC 00220821 */ addu $at, $at, $v0
/* 38B6F0 E0088900 C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 38B6F4 E0088904 3C073F80 */ lui $a3, 0x3f80
/* 38B6F8 E0088908 46000007 */ neg.s $f0, $f0
/* 38B6FC E008890C 44050000 */ mfc1 $a1, $f0
/* 38B700 E0088910 0200202D */ daddu $a0, $s0, $zero
/* 38B704 E0088914 0C080104 */ jal shim_guRotateF
/* 38B708 E0088918 AFA60010 */ sw $a2, 0x10($sp)
/* 38B70C E008891C 0200202D */ daddu $a0, $s0, $zero
/* 38B710 E0088920 27A50018 */ addiu $a1, $sp, 0x18
/* 38B714 E0088924 0C080114 */ jal shim_guMtxCatF
/* 38B718 E0088928 00A0302D */ daddu $a2, $a1, $zero
/* 38B71C E008892C 27A40018 */ addiu $a0, $sp, 0x18
/* 38B720 E0088930 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 38B724 E0088934 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 38B728 E0088938 3C11800A */ lui $s1, %hi(gDisplayContext)
/* 38B72C E008893C 2631A674 */ addiu $s1, $s1, %lo(gDisplayContext)
/* 38B730 E0088940 96050000 */ lhu $a1, ($s0)
/* 38B734 E0088944 8E220000 */ lw $v0, ($s1)
/* 38B738 E0088948 00052980 */ sll $a1, $a1, 6
/* 38B73C E008894C 00B22821 */ addu $a1, $a1, $s2
/* 38B740 E0088950 0C080118 */ jal shim_guMtxF2L
/* 38B744 E0088954 00452821 */ addu $a1, $v0, $a1
/* 38B748 E0088958 3C04DA38 */ lui $a0, 0xda38
/* 38B74C E008895C 34840002 */ ori $a0, $a0, 2
/* 38B750 E0088960 8EA30000 */ lw $v1, ($s5)
/* 38B754 E0088964 96020000 */ lhu $v0, ($s0)
/* 38B758 E0088968 0060282D */ daddu $a1, $v1, $zero
/* 38B75C E008896C 24630008 */ addiu $v1, $v1, 8
/* 38B760 E0088970 0060B02D */ daddu $s6, $v1, $zero
/* 38B764 E0088974 24430001 */ addiu $v1, $v0, 1
/* 38B768 E0088978 3042FFFF */ andi $v0, $v0, 0xffff
/* 38B76C E008897C 00021180 */ sll $v0, $v0, 6
/* 38B770 E0088980 AEB60000 */ sw $s6, ($s5)
/* 38B774 E0088984 ACA40000 */ sw $a0, ($a1)
/* 38B778 E0088988 A6030000 */ sh $v1, ($s0)
/* 38B77C E008898C 8E230000 */ lw $v1, ($s1)
/* 38B780 E0088990 00521021 */ addu $v0, $v0, $s2
/* 38B784 E0088994 00621821 */ addu $v1, $v1, $v0
/* 38B788 E0088998 26C20008 */ addiu $v0, $s6, 8
/* 38B78C E008899C ACA30004 */ sw $v1, 4($a1)
/* 38B790 E00889A0 AEA20000 */ sw $v0, ($s5)
/* 38B794 E00889A4 8FA9009C */ lw $t1, 0x9c($sp)
/* 38B798 E00889A8 1920009B */ blez $t1, .LE0088C18
/* 38B79C E00889AC 26730034 */ addiu $s3, $s3, 0x34
/* 38B7A0 E00889B0 3C092AAA */ lui $t1, 0x2aaa
/* 38B7A4 E00889B4 3529AAAB */ ori $t1, $t1, 0xaaab
/* 38B7A8 E00889B8 AFA900A4 */ sw $t1, 0xa4($sp)
/* 38B7AC E00889BC 3C170001 */ lui $s7, 1
/* 38B7B0 E00889C0 36F71630 */ ori $s7, $s7, 0x1630
/* 38B7B4 E00889C4 02A0882D */ daddu $s1, $s5, $zero
/* 38B7B8 E00889C8 03C90018 */ mult $fp, $t1
/* 38B7BC E00889CC 3C15FC11 */ lui $s5, 0xfc11
/* 38B7C0 E00889D0 36B5B223 */ ori $s5, $s5, 0xb223
/* 38B7C4 E00889D4 2672000C */ addiu $s2, $s3, 0xc
/* 38B7C8 E00889D8 001E17C3 */ sra $v0, $fp, 0x1f
/* 38B7CC E00889DC 00004810 */ mfhi $t1
/* 38B7D0 E00889E0 01229823 */ subu $s3, $t1, $v0
.LE00889E4:
/* 38B7D4 E00889E4 8FA900A4 */ lw $t1, 0xa4($sp)
/* 38B7D8 E00889E8 02890018 */ mult $s4, $t1
/* 38B7DC E00889EC 001417C3 */ sra $v0, $s4, 0x1f
/* 38B7E0 E00889F0 00004810 */ mfhi $t1
/* 38B7E4 E00889F4 00091843 */ sra $v1, $t1, 1
/* 38B7E8 E00889F8 00621823 */ subu $v1, $v1, $v0
/* 38B7EC E00889FC 00031040 */ sll $v0, $v1, 1
/* 38B7F0 E0088A00 00431021 */ addu $v0, $v0, $v1
/* 38B7F4 E0088A04 00021080 */ sll $v0, $v0, 2
/* 38B7F8 E0088A08 02821023 */ subu $v0, $s4, $v0
/* 38B7FC E0088A0C 00021840 */ sll $v1, $v0, 1
/* 38B800 E0088A10 00621821 */ addu $v1, $v1, $v0
/* 38B804 E0088A14 3C09E009 */ lui $t1, %hi(D_E0088CDC)
/* 38B808 E0088A18 25298CDC */ addiu $t1, $t1, %lo(D_E0088CDC)
/* 38B80C E0088A1C 8E420024 */ lw $v0, 0x24($s2)
/* 38B810 E0088A20 1C400078 */ bgtz $v0, .LE0088C04
/* 38B814 E0088A24 00698021 */ addu $s0, $v1, $t1
/* 38B818 E0088A28 8E45FFF8 */ lw $a1, -8($s2)
/* 38B81C E0088A2C 8E46FFFC */ lw $a2, -4($s2)
/* 38B820 E0088A30 8E470000 */ lw $a3, ($s2)
/* 38B824 E0088A34 0C080108 */ jal shim_guTranslateF
/* 38B828 E0088A38 27A40018 */ addiu $a0, $sp, 0x18
/* 38B82C E0088A3C 27A40018 */ addiu $a0, $sp, 0x18
/* 38B830 E0088A40 3C058007 */ lui $a1, %hi(gMatrixListPos)
/* 38B834 E0088A44 94A541F0 */ lhu $a1, %lo(gMatrixListPos)($a1)
/* 38B838 E0088A48 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 38B83C E0088A4C 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 38B840 E0088A50 00052980 */ sll $a1, $a1, 6
/* 38B844 E0088A54 00B72821 */ addu $a1, $a1, $s7
/* 38B848 E0088A58 0C080118 */ jal shim_guMtxF2L
/* 38B84C E0088A5C 00452821 */ addu $a1, $v0, $a1
/* 38B850 E0088A60 3C065555 */ lui $a2, 0x5555
/* 38B854 E0088A64 34C65556 */ ori $a2, $a2, 0x5556
/* 38B858 E0088A68 8E270000 */ lw $a3, ($s1)
/* 38B85C E0088A6C 3C02FA00 */ lui $v0, 0xfa00
/* 38B860 E0088A70 00E0282D */ daddu $a1, $a3, $zero
/* 38B864 E0088A74 24E70008 */ addiu $a3, $a3, 8
/* 38B868 E0088A78 AE270000 */ sw $a3, ($s1)
/* 38B86C E0088A7C ACA20000 */ sw $v0, ($a1)
/* 38B870 E0088A80 92030000 */ lbu $v1, ($s0)
/* 38B874 E0088A84 92040001 */ lbu $a0, 1($s0)
/* 38B878 E0088A88 92020002 */ lbu $v0, 2($s0)
/* 38B87C E0088A8C 8FA90098 */ lw $t1, 0x98($sp)
/* 38B880 E0088A90 00031E00 */ sll $v1, $v1, 0x18
/* 38B884 E0088A94 00042400 */ sll $a0, $a0, 0x10
/* 38B888 E0088A98 00641825 */ or $v1, $v1, $a0
/* 38B88C E0088A9C 00021200 */ sll $v0, $v0, 8
/* 38B890 E0088AA0 00621825 */ or $v1, $v1, $v0
/* 38B894 E0088AA4 03D42021 */ addu $a0, $fp, $s4
/* 38B898 E0088AA8 00860018 */ mult $a0, $a2
/* 38B89C E0088AAC 312200FF */ andi $v0, $t1, 0xff
/* 38B8A0 E0088AB0 00621825 */ or $v1, $v1, $v0
/* 38B8A4 E0088AB4 ACA30004 */ sw $v1, 4($a1)
/* 38B8A8 E0088AB8 00041FC3 */ sra $v1, $a0, 0x1f
/* 38B8AC E0088ABC 00004810 */ mfhi $t1
/* 38B8B0 E0088AC0 01231823 */ subu $v1, $t1, $v1
/* 38B8B4 E0088AC4 00031040 */ sll $v0, $v1, 1
/* 38B8B8 E0088AC8 00431021 */ addu $v0, $v0, $v1
/* 38B8BC E0088ACC 00822023 */ subu $a0, $a0, $v0
/* 38B8C0 E0088AD0 24020001 */ addiu $v0, $zero, 1
/* 38B8C4 E0088AD4 1082000D */ beq $a0, $v0, .LE0088B0C
/* 38B8C8 E0088AD8 28820002 */ slti $v0, $a0, 2
/* 38B8CC E0088ADC 10400005 */ beqz $v0, .LE0088AF4
/* 38B8D0 E0088AE0 24020002 */ addiu $v0, $zero, 2
/* 38B8D4 E0088AE4 10800007 */ beqz $a0, .LE0088B04
/* 38B8D8 E0088AE8 3C06D838 */ lui $a2, 0xd838
/* 38B8DC E0088AEC 080222CE */ j .LE0088B38
/* 38B8E0 E0088AF0 34C60002 */ ori $a2, $a2, 2
.LE0088AF4:
/* 38B8E4 E0088AF4 10820008 */ beq $a0, $v0, .LE0088B18
/* 38B8E8 E0088AF8 3C06D838 */ lui $a2, 0xd838
/* 38B8EC E0088AFC 080222CE */ j .LE0088B38
/* 38B8F0 E0088B00 34C60002 */ ori $a2, $a2, 2
.LE0088B04:
/* 38B8F4 E0088B04 080222C7 */ j .LE0088B1C
/* 38B8F8 E0088B08 3C03F566 */ lui $v1, 0xf566
.LE0088B0C:
/* 38B8FC E0088B0C 3C03FF66 */ lui $v1, 0xff66
/* 38B900 E0088B10 080222C8 */ j .LE0088B20
/* 38B904 E0088B14 3463FF7F */ ori $v1, $v1, 0xff7f
.LE0088B18:
/* 38B908 E0088B18 3C03FF66 */ lui $v1, 0xff66
.LE0088B1C:
/* 38B90C E0088B1C 3463FFFF */ ori $v1, $v1, 0xffff
.LE0088B20:
/* 38B910 E0088B20 24E20008 */ addiu $v0, $a3, 8
/* 38B914 E0088B24 AE220000 */ sw $v0, ($s1)
/* 38B918 E0088B28 ACF50000 */ sw $s5, ($a3)
/* 38B91C E0088B2C ACE30004 */ sw $v1, 4($a3)
/* 38B920 E0088B30 3C06D838 */ lui $a2, 0xd838
/* 38B924 E0088B34 34C60002 */ ori $a2, $a2, 2
.LE0088B38:
/* 38B928 E0088B38 00131040 */ sll $v0, $s3, 1
/* 38B92C E0088B3C 00531021 */ addu $v0, $v0, $s3
/* 38B930 E0088B40 00021040 */ sll $v0, $v0, 1
/* 38B934 E0088B44 03C21023 */ subu $v0, $fp, $v0
/* 38B938 E0088B48 3C09E009 */ lui $t1, %hi(D_E0088D00)
/* 38B93C E0088B4C 25298D00 */ addiu $t1, $t1, %lo(D_E0088D00)
/* 38B940 E0088B50 00491021 */ addu $v0, $v0, $t1
/* 38B944 E0088B54 90430000 */ lbu $v1, ($v0)
/* 38B948 E0088B58 3C02F200 */ lui $v0, 0xf200
/* 38B94C E0088B5C 8E240000 */ lw $a0, ($s1)
/* 38B950 E0088B60 2409003C */ addiu $t1, $zero, 0x3c
/* 38B954 E0088B64 0080282D */ daddu $a1, $a0, $zero
/* 38B958 E0088B68 24840008 */ addiu $a0, $a0, 8
/* 38B95C E0088B6C 02831821 */ addu $v1, $s4, $v1
/* 38B960 E0088B70 3063000F */ andi $v1, $v1, 0xf
/* 38B964 E0088B74 00031980 */ sll $v1, $v1, 6
/* 38B968 E0088B78 00621025 */ or $v0, $v1, $v0
/* 38B96C E0088B7C 34420000 */ ori $v0, $v0, 0
/* 38B970 E0088B80 AE240000 */ sw $a0, ($s1)
/* 38B974 E0088B84 ACA20000 */ sw $v0, ($a1)
/* 38B978 E0088B88 00091300 */ sll $v0, $t1, 0xc
/* 38B97C E0088B8C 00691825 */ or $v1, $v1, $t1
/* 38B980 E0088B90 00431025 */ or $v0, $v0, $v1
/* 38B984 E0088B94 ACA20004 */ sw $v0, 4($a1)
/* 38B988 E0088B98 24820008 */ addiu $v0, $a0, 8
/* 38B98C E0088B9C 3C058007 */ lui $a1, %hi(gMatrixListPos)
/* 38B990 E0088BA0 24A541F0 */ addiu $a1, $a1, %lo(gMatrixListPos)
/* 38B994 E0088BA4 AE220000 */ sw $v0, ($s1)
/* 38B998 E0088BA8 94A20000 */ lhu $v0, ($a1)
/* 38B99C E0088BAC 3C03DA38 */ lui $v1, 0xda38
/* 38B9A0 E0088BB0 AC830000 */ sw $v1, ($a0)
/* 38B9A4 E0088BB4 24430001 */ addiu $v1, $v0, 1
/* 38B9A8 E0088BB8 3042FFFF */ andi $v0, $v0, 0xffff
/* 38B9AC E0088BBC 00021180 */ sll $v0, $v0, 6
/* 38B9B0 E0088BC0 A4A30000 */ sh $v1, ($a1)
/* 38B9B4 E0088BC4 3C03800A */ lui $v1, %hi(gDisplayContext)
/* 38B9B8 E0088BC8 8C63A674 */ lw $v1, %lo(gDisplayContext)($v1)
/* 38B9BC E0088BCC 00571021 */ addu $v0, $v0, $s7
/* 38B9C0 E0088BD0 00621821 */ addu $v1, $v1, $v0
/* 38B9C4 E0088BD4 24820010 */ addiu $v0, $a0, 0x10
/* 38B9C8 E0088BD8 AC830004 */ sw $v1, 4($a0)
/* 38B9CC E0088BDC AE220000 */ sw $v0, ($s1)
/* 38B9D0 E0088BE0 3C02DE00 */ lui $v0, 0xde00
/* 38B9D4 E0088BE4 AC820008 */ sw $v0, 8($a0)
/* 38B9D8 E0088BE8 8FA900A0 */ lw $t1, 0xa0($sp)
/* 38B9DC E0088BEC 24820018 */ addiu $v0, $a0, 0x18
/* 38B9E0 E0088BF0 AC89000C */ sw $t1, 0xc($a0)
/* 38B9E4 E0088BF4 AE220000 */ sw $v0, ($s1)
/* 38B9E8 E0088BF8 24020040 */ addiu $v0, $zero, 0x40
/* 38B9EC E0088BFC AC860010 */ sw $a2, 0x10($a0)
/* 38B9F0 E0088C00 AC820014 */ sw $v0, 0x14($a0)
.LE0088C04:
/* 38B9F4 E0088C04 26940001 */ addiu $s4, $s4, 1
/* 38B9F8 E0088C08 8FA9009C */ lw $t1, 0x9c($sp)
/* 38B9FC E0088C0C 0289102A */ slt $v0, $s4, $t1
/* 38BA00 E0088C10 1440FF74 */ bnez $v0, .LE00889E4
/* 38BA04 E0088C14 26520034 */ addiu $s2, $s2, 0x34
.LE0088C18:
/* 38BA08 E0088C18 3C06D838 */ lui $a2, 0xd838
/* 38BA0C E0088C1C 3C05800A */ lui $a1, %hi(gMasterGfxPos)
/* 38BA10 E0088C20 24A5A66C */ addiu $a1, $a1, %lo(gMasterGfxPos)
/* 38BA14 E0088C24 34C60002 */ ori $a2, $a2, 2
/* 38BA18 E0088C28 8CA30000 */ lw $v1, ($a1)
/* 38BA1C E0088C2C 3C02DF00 */ lui $v0, 0xdf00
/* 38BA20 E0088C30 0060202D */ daddu $a0, $v1, $zero
/* 38BA24 E0088C34 24630008 */ addiu $v1, $v1, 8
/* 38BA28 E0088C38 AC820000 */ sw $v0, ($a0)
/* 38BA2C E0088C3C 3C02DE01 */ lui $v0, 0xde01
/* 38BA30 E0088C40 AC800004 */ sw $zero, 4($a0)
/* 38BA34 E0088C44 AEC20000 */ sw $v0, ($s6)
/* 38BA38 E0088C48 AEC30004 */ sw $v1, 4($s6)
/* 38BA3C E0088C4C 26D60008 */ addiu $s6, $s6, 8
/* 38BA40 E0088C50 24620008 */ addiu $v0, $v1, 8
/* 38BA44 E0088C54 ACA30000 */ sw $v1, ($a1)
/* 38BA48 E0088C58 ACA20000 */ sw $v0, ($a1)
/* 38BA4C E0088C5C 3C02DE00 */ lui $v0, 0xde00
/* 38BA50 E0088C60 AC620000 */ sw $v0, ($v1)
/* 38BA54 E0088C64 24620010 */ addiu $v0, $v1, 0x10
/* 38BA58 E0088C68 AC760004 */ sw $s6, 4($v1)
/* 38BA5C E0088C6C ACA20000 */ sw $v0, ($a1)
/* 38BA60 E0088C70 24020040 */ addiu $v0, $zero, 0x40
/* 38BA64 E0088C74 AC62000C */ sw $v0, 0xc($v1)
/* 38BA68 E0088C78 24620018 */ addiu $v0, $v1, 0x18
/* 38BA6C E0088C7C AC660008 */ sw $a2, 8($v1)
/* 38BA70 E0088C80 ACA20000 */ sw $v0, ($a1)
/* 38BA74 E0088C84 3C02E700 */ lui $v0, 0xe700
/* 38BA78 E0088C88 AC620010 */ sw $v0, 0x10($v1)
/* 38BA7C E0088C8C AC600014 */ sw $zero, 0x14($v1)
/* 38BA80 E0088C90 8FBF00CC */ lw $ra, 0xcc($sp)
/* 38BA84 E0088C94 8FBE00C8 */ lw $fp, 0xc8($sp)
/* 38BA88 E0088C98 8FB700C4 */ lw $s7, 0xc4($sp)
/* 38BA8C E0088C9C 8FB600C0 */ lw $s6, 0xc0($sp)
/* 38BA90 E0088CA0 8FB500BC */ lw $s5, 0xbc($sp)
/* 38BA94 E0088CA4 8FB400B8 */ lw $s4, 0xb8($sp)
/* 38BA98 E0088CA8 8FB300B4 */ lw $s3, 0xb4($sp)
/* 38BA9C E0088CAC 8FB200B0 */ lw $s2, 0xb0($sp)
/* 38BAA0 E0088CB0 8FB100AC */ lw $s1, 0xac($sp)
/* 38BAA4 E0088CB4 8FB000A8 */ lw $s0, 0xa8($sp)
/* 38BAA8 E0088CB8 03E00008 */ jr $ra
/* 38BAAC E0088CBC 27BD00D0 */ addiu $sp, $sp, 0xd0

View File

@ -1,313 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_E00A4AF8
.word .LE00A427C_3A3A5C, .LE00A42CC_3A3AAC, .LE00A4304_3A3AE4, .LE00A4354_3A3B34, .LE00A4384_3A3B64, .LE00A440C_3A3BEC, .LE00A4438_3A3C18, .LE00A4480_3A3C60, .LE00A44C0_3A3CA0, .LE00A4508_3A3CE8
dlabel D_E00A4B20
.double 1.1
dlabel D_E00A4B28
.double 1.1
dlabel D_E00A4B30
.double 1.1
dlabel D_E00A4B38
.double 1.1
.section .text
glabel energy_orb_wave_update
/* 3A398C E00A41AC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 3A3990 E00A41B0 AFBF0018 */ sw $ra, 0x18($sp)
/* 3A3994 E00A41B4 AFB10014 */ sw $s1, 0x14($sp)
/* 3A3998 E00A41B8 AFB00010 */ sw $s0, 0x10($sp)
/* 3A399C E00A41BC 8C830000 */ lw $v1, ($a0)
/* 3A39A0 E00A41C0 8C90000C */ lw $s0, 0xc($a0)
/* 3A39A4 E00A41C4 30620010 */ andi $v0, $v1, 0x10
/* 3A39A8 E00A41C8 10400005 */ beqz $v0, .LE00A41E0
/* 3A39AC E00A41CC 2402FFEF */ addiu $v0, $zero, -0x11
/* 3A39B0 E00A41D0 00621024 */ and $v0, $v1, $v0
/* 3A39B4 E00A41D4 AC820000 */ sw $v0, ($a0)
/* 3A39B8 E00A41D8 2402001E */ addiu $v0, $zero, 0x1e
/* 3A39BC E00A41DC AE020010 */ sw $v0, 0x10($s0)
.LE00A41E0:
/* 3A39C0 E00A41E0 8E030010 */ lw $v1, 0x10($s0)
/* 3A39C4 E00A41E4 28620064 */ slti $v0, $v1, 0x64
/* 3A39C8 E00A41E8 10400002 */ beqz $v0, .LE00A41F4
/* 3A39CC E00A41EC 2462FFFF */ addiu $v0, $v1, -1
/* 3A39D0 E00A41F0 AE020010 */ sw $v0, 0x10($s0)
.LE00A41F4:
/* 3A39D4 E00A41F4 8E020014 */ lw $v0, 0x14($s0)
/* 3A39D8 E00A41F8 8E050010 */ lw $a1, 0x10($s0)
/* 3A39DC E00A41FC 24420001 */ addiu $v0, $v0, 1
/* 3A39E0 E00A4200 04A10005 */ bgez $a1, .LE00A4218
/* 3A39E4 E00A4204 AE020014 */ sw $v0, 0x14($s0)
/* 3A39E8 E00A4208 0C080128 */ jal shim_remove_effect
/* 3A39EC E00A420C 00000000 */ nop
/* 3A39F0 E00A4210 08029172 */ j .LE00A45C8
/* 3A39F4 E00A4214 00000000 */ nop
.LE00A4218:
/* 3A39F8 E00A4218 241100FF */ addiu $s1, $zero, 0xff
/* 3A39FC E00A421C 0040182D */ daddu $v1, $v0, $zero
/* 3A3A00 E00A4220 8E04001C */ lw $a0, 0x1c($s0)
/* 3A3A04 E00A4224 28620010 */ slti $v0, $v1, 0x10
/* 3A3A08 E00A4228 10400003 */ beqz $v0, .LE00A4238
/* 3A3A0C E00A422C 0220302D */ daddu $a2, $s1, $zero
/* 3A3A10 E00A4230 00031100 */ sll $v0, $v1, 4
/* 3A3A14 E00A4234 2451FFFF */ addiu $s1, $v0, -1
.LE00A4238:
/* 3A3A18 E00A4238 28A20010 */ slti $v0, $a1, 0x10
/* 3A3A1C E00A423C 10400008 */ beqz $v0, .LE00A4260
/* 3A3A20 E00A4240 2C82000A */ sltiu $v0, $a0, 0xa
/* 3A3A24 E00A4244 02250018 */ mult $s1, $a1
/* 3A3A28 E00A4248 00001012 */ mflo $v0
/* 3A3A2C E00A424C 04420001 */ bltzl $v0, .LE00A4254
/* 3A3A30 E00A4250 2442000F */ addiu $v0, $v0, 0xf
.LE00A4254:
/* 3A3A34 E00A4254 00028903 */ sra $s1, $v0, 4
/* 3A3A38 E00A4258 00053100 */ sll $a2, $a1, 4
/* 3A3A3C E00A425C 2C82000A */ sltiu $v0, $a0, 0xa
.LE00A4260:
/* 3A3A40 E00A4260 104000C4 */ beqz $v0, .LE00A4574
/* 3A3A44 E00A4264 00041080 */ sll $v0, $a0, 2
/* 3A3A48 E00A4268 3C01E00A */ lui $at, %hi(jtbl_E00A4AF8)
/* 3A3A4C E00A426C 00220821 */ addu $at, $at, $v0
/* 3A3A50 E00A4270 8C224AF8 */ lw $v0, %lo(jtbl_E00A4AF8)($at)
/* 3A3A54 E00A4274 00400008 */ jr $v0
/* 3A3A58 E00A4278 00000000 */ nop
.LE00A427C_3A3A5C:
/* 3A3A5C E00A427C 00031040 */ sll $v0, $v1, 1
/* 3A3A60 E00A4280 44826000 */ mtc1 $v0, $f12
/* 3A3A64 E00A4284 00000000 */ nop
/* 3A3A68 E00A4288 46806320 */ cvt.s.w $f12, $f12
/* 3A3A6C E00A428C 24020046 */ addiu $v0, $zero, 0x46
/* 3A3A70 E00A4290 AE020020 */ sw $v0, 0x20($s0)
/* 3A3A74 E00A4294 240200B4 */ addiu $v0, $zero, 0xb4
/* 3A3A78 E00A4298 AE020024 */ sw $v0, 0x24($s0)
/* 3A3A7C E00A429C 24020078 */ addiu $v0, $zero, 0x78
/* 3A3A80 E00A42A0 0C080140 */ jal shim_sin_deg
/* 3A3A84 E00A42A4 AE020028 */ sw $v0, 0x28($s0)
/* 3A3A88 E00A42A8 3C014120 */ lui $at, 0x4120
/* 3A3A8C E00A42AC 44811000 */ mtc1 $at, $f2
/* 3A3A90 E00A42B0 00000000 */ nop
/* 3A3A94 E00A42B4 46020002 */ mul.s $f0, $f0, $f2
/* 3A3A98 E00A42B8 00000000 */ nop
/* 3A3A9C E00A42BC 3C01433E */ lui $at, 0x433e
/* 3A3AA0 E00A42C0 44811000 */ mtc1 $at, $f2
/* 3A3AA4 E00A42C4 080290F4 */ j .LE00A43D0
/* 3A3AA8 E00A42C8 46020000 */ add.s $f0, $f0, $f2
.LE00A42CC_3A3AAC:
/* 3A3AAC E00A42CC 240500FF */ addiu $a1, $zero, 0xff
/* 3A3AB0 E00A42D0 02250018 */ mult $s1, $a1
/* 3A3AB4 E00A42D4 3C048080 */ lui $a0, 0x8080
/* 3A3AB8 E00A42D8 00001812 */ mflo $v1
/* 3A3ABC E00A42DC 34848081 */ ori $a0, $a0, 0x8081
/* 3A3AC0 E00A42E0 24020046 */ addiu $v0, $zero, 0x46
/* 3A3AC4 E00A42E4 00640018 */ mult $v1, $a0
/* 3A3AC8 E00A42E8 AE020020 */ sw $v0, 0x20($s0)
/* 3A3ACC E00A42EC 240200E6 */ addiu $v0, $zero, 0xe6
/* 3A3AD0 E00A42F0 AE050024 */ sw $a1, 0x24($s0)
/* 3A3AD4 E00A42F4 AE020028 */ sw $v0, 0x28($s0)
/* 3A3AD8 E00A42F8 00003010 */ mfhi $a2
/* 3A3ADC E00A42FC 0802916E */ j .LE00A45B8
/* 3A3AE0 E00A4300 00C31021 */ addu $v0, $a2, $v1
.LE00A4304_3A3AE4:
/* 3A3AE4 E00A4304 00031040 */ sll $v0, $v1, 1
/* 3A3AE8 E00A4308 44826000 */ mtc1 $v0, $f12
/* 3A3AEC E00A430C 00000000 */ nop
/* 3A3AF0 E00A4310 46806320 */ cvt.s.w $f12, $f12
/* 3A3AF4 E00A4314 240200AA */ addiu $v0, $zero, 0xaa
/* 3A3AF8 E00A4318 AE020020 */ sw $v0, 0x20($s0)
/* 3A3AFC E00A431C 24020028 */ addiu $v0, $zero, 0x28
/* 3A3B00 E00A4320 AE020024 */ sw $v0, 0x24($s0)
/* 3A3B04 E00A4324 2402006E */ addiu $v0, $zero, 0x6e
/* 3A3B08 E00A4328 0C080140 */ jal shim_sin_deg
/* 3A3B0C E00A432C AE020028 */ sw $v0, 0x28($s0)
/* 3A3B10 E00A4330 3C014120 */ lui $at, 0x4120
/* 3A3B14 E00A4334 44811000 */ mtc1 $at, $f2
/* 3A3B18 E00A4338 00000000 */ nop
/* 3A3B1C E00A433C 46020002 */ mul.s $f0, $f0, $f2
/* 3A3B20 E00A4340 00000000 */ nop
/* 3A3B24 E00A4344 3C01433E */ lui $at, 0x433e
/* 3A3B28 E00A4348 44811000 */ mtc1 $at, $f2
/* 3A3B2C E00A434C 080290F4 */ j .LE00A43D0
/* 3A3B30 E00A4350 46020000 */ add.s $f0, $f0, $f2
.LE00A4354_3A3B34:
/* 3A3B34 E00A4354 240300FF */ addiu $v1, $zero, 0xff
/* 3A3B38 E00A4358 02230018 */ mult $s1, $v1
/* 3A3B3C E00A435C 3C048080 */ lui $a0, 0x8080
/* 3A3B40 E00A4360 34848081 */ ori $a0, $a0, 0x8081
/* 3A3B44 E00A4364 00001812 */ mflo $v1
/* 3A3B48 E00A4368 240200DC */ addiu $v0, $zero, 0xdc
/* 3A3B4C E00A436C AE020020 */ sw $v0, 0x20($s0)
/* 3A3B50 E00A4370 00640018 */ mult $v1, $a0
/* 3A3B54 E00A4374 24020028 */ addiu $v0, $zero, 0x28
/* 3A3B58 E00A4378 AE020024 */ sw $v0, 0x24($s0)
/* 3A3B5C E00A437C 0802916B */ j .LE00A45AC
/* 3A3B60 E00A4380 240200AA */ addiu $v0, $zero, 0xaa
.LE00A4384_3A3B64:
/* 3A3B64 E00A4384 00031040 */ sll $v0, $v1, 1
/* 3A3B68 E00A4388 44826000 */ mtc1 $v0, $f12
/* 3A3B6C E00A438C 00000000 */ nop
/* 3A3B70 E00A4390 46806320 */ cvt.s.w $f12, $f12
/* 3A3B74 E00A4394 240200EB */ addiu $v0, $zero, 0xeb
/* 3A3B78 E00A4398 AE020020 */ sw $v0, 0x20($s0)
/* 3A3B7C E00A439C AE020024 */ sw $v0, 0x24($s0)
/* 3A3B80 E00A43A0 240200C8 */ addiu $v0, $zero, 0xc8
/* 3A3B84 E00A43A4 0C080140 */ jal shim_sin_deg
/* 3A3B88 E00A43A8 AE020028 */ sw $v0, 0x28($s0)
/* 3A3B8C E00A43AC 3C014170 */ lui $at, 0x4170
/* 3A3B90 E00A43B0 44811000 */ mtc1 $at, $f2
/* 3A3B94 E00A43B4 00000000 */ nop
/* 3A3B98 E00A43B8 46020002 */ mul.s $f0, $f0, $f2
/* 3A3B9C E00A43BC 00000000 */ nop
/* 3A3BA0 E00A43C0 3C014357 */ lui $at, 0x4357
/* 3A3BA4 E00A43C4 44811000 */ mtc1 $at, $f2
/* 3A3BA8 E00A43C8 00000000 */ nop
/* 3A3BAC E00A43CC 46020000 */ add.s $f0, $f0, $f2
.LE00A43D0:
/* 3A3BB0 E00A43D0 4600010D */ trunc.w.s $f4, $f0
/* 3A3BB4 E00A43D4 44022000 */ mfc1 $v0, $f4
/* 3A3BB8 E00A43D8 00000000 */ nop
/* 3A3BBC E00A43DC 00510018 */ mult $v0, $s1
/* 3A3BC0 E00A43E0 00001012 */ mflo $v0
/* 3A3BC4 E00A43E4 3C038080 */ lui $v1, 0x8080
/* 3A3BC8 E00A43E8 34638081 */ ori $v1, $v1, 0x8081
/* 3A3BCC E00A43EC 00430018 */ mult $v0, $v1
/* 3A3BD0 E00A43F0 00001810 */ mfhi $v1
/* 3A3BD4 E00A43F4 00621821 */ addu $v1, $v1, $v0
/* 3A3BD8 E00A43F8 000319C3 */ sra $v1, $v1, 7
/* 3A3BDC E00A43FC 000217C3 */ sra $v0, $v0, 0x1f
/* 3A3BE0 E00A4400 00621823 */ subu $v1, $v1, $v0
/* 3A3BE4 E00A4404 08029172 */ j .LE00A45C8
/* 3A3BE8 E00A4408 AE03002C */ sw $v1, 0x2c($s0)
.LE00A440C_3A3BEC:
/* 3A3BEC E00A440C 240300FF */ addiu $v1, $zero, 0xff
/* 3A3BF0 E00A4410 02230018 */ mult $s1, $v1
/* 3A3BF4 E00A4414 3C048080 */ lui $a0, 0x8080
/* 3A3BF8 E00A4418 00001812 */ mflo $v1
/* 3A3BFC E00A441C 34848081 */ ori $a0, $a0, 0x8081
/* 3A3C00 E00A4420 240200EB */ addiu $v0, $zero, 0xeb
/* 3A3C04 E00A4424 00640018 */ mult $v1, $a0
/* 3A3C08 E00A4428 AE020020 */ sw $v0, 0x20($s0)
/* 3A3C0C E00A442C AE020024 */ sw $v0, 0x24($s0)
/* 3A3C10 E00A4430 0802916B */ j .LE00A45AC
/* 3A3C14 E00A4434 240200C8 */ addiu $v0, $zero, 0xc8
.LE00A4438_3A3C18:
/* 3A3C18 E00A4438 C6000030 */ lwc1 $f0, 0x30($s0)
/* 3A3C1C E00A443C 3C01E00A */ lui $at, %hi(D_E00A4B20)
/* 3A3C20 E00A4440 D4224B20 */ ldc1 $f2, %lo(D_E00A4B20)($at)
/* 3A3C24 E00A4444 46000021 */ cvt.d.s $f0, $f0
/* 3A3C28 E00A4448 46220002 */ mul.d $f0, $f0, $f2
/* 3A3C2C E00A444C 00000000 */ nop
/* 3A3C30 E00A4450 2403007F */ addiu $v1, $zero, 0x7f
/* 3A3C34 E00A4454 00C30018 */ mult $a2, $v1
/* 3A3C38 E00A4458 3C048080 */ lui $a0, 0x8080
/* 3A3C3C E00A445C 34848081 */ ori $a0, $a0, 0x8081
/* 3A3C40 E00A4460 00001812 */ mflo $v1
/* 3A3C44 E00A4464 24020046 */ addiu $v0, $zero, 0x46
/* 3A3C48 E00A4468 AE020020 */ sw $v0, 0x20($s0)
/* 3A3C4C E00A446C 00640018 */ mult $v1, $a0
/* 3A3C50 E00A4470 240200B4 */ addiu $v0, $zero, 0xb4
/* 3A3C54 E00A4474 AE020024 */ sw $v0, 0x24($s0)
/* 3A3C58 E00A4478 08029153 */ j .LE00A454C
/* 3A3C5C E00A447C 24020078 */ addiu $v0, $zero, 0x78
.LE00A4480_3A3C60:
/* 3A3C60 E00A4480 C6000030 */ lwc1 $f0, 0x30($s0)
/* 3A3C64 E00A4484 3C01E00A */ lui $at, %hi(D_E00A4B28)
/* 3A3C68 E00A4488 D4224B28 */ ldc1 $f2, %lo(D_E00A4B28)($at)
/* 3A3C6C E00A448C 46000021 */ cvt.d.s $f0, $f0
/* 3A3C70 E00A4490 46220002 */ mul.d $f0, $f0, $f2
/* 3A3C74 E00A4494 00000000 */ nop
/* 3A3C78 E00A4498 240300A0 */ addiu $v1, $zero, 0xa0
/* 3A3C7C E00A449C 00C30018 */ mult $a2, $v1
/* 3A3C80 E00A44A0 3C048080 */ lui $a0, 0x8080
/* 3A3C84 E00A44A4 34848081 */ ori $a0, $a0, 0x8081
/* 3A3C88 E00A44A8 00001812 */ mflo $v1
/* 3A3C8C E00A44AC 240200A2 */ addiu $v0, $zero, 0xa2
/* 3A3C90 E00A44B0 AE020020 */ sw $v0, 0x20($s0)
/* 3A3C94 E00A44B4 00640018 */ mult $v1, $a0
/* 3A3C98 E00A44B8 08029151 */ j .LE00A4544
/* 3A3C9C E00A44BC 240200BD */ addiu $v0, $zero, 0xbd
.LE00A44C0_3A3CA0:
/* 3A3CA0 E00A44C0 C6000030 */ lwc1 $f0, 0x30($s0)
/* 3A3CA4 E00A44C4 3C01E00A */ lui $at, %hi(D_E00A4B30)
/* 3A3CA8 E00A44C8 D4224B30 */ ldc1 $f2, %lo(D_E00A4B30)($at)
/* 3A3CAC E00A44CC 46000021 */ cvt.d.s $f0, $f0
/* 3A3CB0 E00A44D0 46220002 */ mul.d $f0, $f0, $f2
/* 3A3CB4 E00A44D4 00000000 */ nop
/* 3A3CB8 E00A44D8 2403007F */ addiu $v1, $zero, 0x7f
/* 3A3CBC E00A44DC 00C30018 */ mult $a2, $v1
/* 3A3CC0 E00A44E0 3C048080 */ lui $a0, 0x8080
/* 3A3CC4 E00A44E4 34848081 */ ori $a0, $a0, 0x8081
/* 3A3CC8 E00A44E8 00001812 */ mflo $v1
/* 3A3CCC E00A44EC 240200AA */ addiu $v0, $zero, 0xaa
/* 3A3CD0 E00A44F0 AE020020 */ sw $v0, 0x20($s0)
/* 3A3CD4 E00A44F4 00640018 */ mult $v1, $a0
/* 3A3CD8 E00A44F8 24020028 */ addiu $v0, $zero, 0x28
/* 3A3CDC E00A44FC AE020024 */ sw $v0, 0x24($s0)
/* 3A3CE0 E00A4500 08029153 */ j .LE00A454C
/* 3A3CE4 E00A4504 2402006E */ addiu $v0, $zero, 0x6e
.LE00A4508_3A3CE8:
/* 3A3CE8 E00A4508 C6000030 */ lwc1 $f0, 0x30($s0)
/* 3A3CEC E00A450C 3C01E00A */ lui $at, %hi(D_E00A4B38)
/* 3A3CF0 E00A4510 D4224B38 */ ldc1 $f2, %lo(D_E00A4B38)($at)
/* 3A3CF4 E00A4514 46000021 */ cvt.d.s $f0, $f0
/* 3A3CF8 E00A4518 46220002 */ mul.d $f0, $f0, $f2
/* 3A3CFC E00A451C 00000000 */ nop
/* 3A3D00 E00A4520 240300A0 */ addiu $v1, $zero, 0xa0
/* 3A3D04 E00A4524 00C30018 */ mult $a2, $v1
/* 3A3D08 E00A4528 3C048080 */ lui $a0, 0x8080
/* 3A3D0C E00A452C 34848081 */ ori $a0, $a0, 0x8081
/* 3A3D10 E00A4530 00001812 */ mflo $v1
/* 3A3D14 E00A4534 240200B4 */ addiu $v0, $zero, 0xb4
/* 3A3D18 E00A4538 AE020020 */ sw $v0, 0x20($s0)
/* 3A3D1C E00A453C 00640018 */ mult $v1, $a0
/* 3A3D20 E00A4540 240200B2 */ addiu $v0, $zero, 0xb2
.LE00A4544:
/* 3A3D24 E00A4544 AE020024 */ sw $v0, 0x24($s0)
/* 3A3D28 E00A4548 240200AE */ addiu $v0, $zero, 0xae
.LE00A454C:
/* 3A3D2C E00A454C AE020028 */ sw $v0, 0x28($s0)
/* 3A3D30 E00A4550 00002810 */ mfhi $a1
/* 3A3D34 E00A4554 00A31021 */ addu $v0, $a1, $v1
/* 3A3D38 E00A4558 000211C3 */ sra $v0, $v0, 7
/* 3A3D3C E00A455C 00031FC3 */ sra $v1, $v1, 0x1f
/* 3A3D40 E00A4560 00431023 */ subu $v0, $v0, $v1
/* 3A3D44 E00A4564 46200020 */ cvt.s.d $f0, $f0
/* 3A3D48 E00A4568 AE02002C */ sw $v0, 0x2c($s0)
/* 3A3D4C E00A456C 08029172 */ j .LE00A45C8
/* 3A3D50 E00A4570 E6000030 */ swc1 $f0, 0x30($s0)
.LE00A4574:
/* 3A3D54 E00A4574 240300A0 */ addiu $v1, $zero, 0xa0
/* 3A3D58 E00A4578 00C30018 */ mult $a2, $v1
/* 3A3D5C E00A457C C6000030 */ lwc1 $f0, 0x30($s0)
/* 3A3D60 E00A4580 C6020034 */ lwc1 $f2, 0x34($s0)
/* 3A3D64 E00A4584 46020000 */ add.s $f0, $f0, $f2
/* 3A3D68 E00A4588 3C028080 */ lui $v0, 0x8080
/* 3A3D6C E00A458C 00001812 */ mflo $v1
/* 3A3D70 E00A4590 34428081 */ ori $v0, $v0, 0x8081
/* 3A3D74 E00A4594 E6000030 */ swc1 $f0, 0x30($s0)
/* 3A3D78 E00A4598 00620018 */ mult $v1, $v0
/* 3A3D7C E00A459C 24020032 */ addiu $v0, $zero, 0x32
/* 3A3D80 E00A45A0 AE020020 */ sw $v0, 0x20($s0)
/* 3A3D84 E00A45A4 AE020024 */ sw $v0, 0x24($s0)
/* 3A3D88 E00A45A8 240200FF */ addiu $v0, $zero, 0xff
.LE00A45AC:
/* 3A3D8C E00A45AC AE020028 */ sw $v0, 0x28($s0)
/* 3A3D90 E00A45B0 00002810 */ mfhi $a1
/* 3A3D94 E00A45B4 00A31021 */ addu $v0, $a1, $v1
.LE00A45B8:
/* 3A3D98 E00A45B8 000211C3 */ sra $v0, $v0, 7
/* 3A3D9C E00A45BC 00031FC3 */ sra $v1, $v1, 0x1f
/* 3A3DA0 E00A45C0 00431023 */ subu $v0, $v0, $v1
/* 3A3DA4 E00A45C4 AE02002C */ sw $v0, 0x2c($s0)
.LE00A45C8:
/* 3A3DA8 E00A45C8 8FBF0018 */ lw $ra, 0x18($sp)
/* 3A3DAC E00A45CC 8FB10014 */ lw $s1, 0x14($sp)
/* 3A3DB0 E00A45D0 8FB00010 */ lw $s0, 0x10($sp)
/* 3A3DB4 E00A45D4 03E00008 */ jr $ra
/* 3A3DB8 E00A45D8 27BD0020 */ addiu $sp, $sp, 0x20

View File

@ -1,411 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0122CA0
.double 0.04
dlabel D_E0122CA8
.double 1.235631
dlabel D_E0122CB0
.double 0.01
dlabel D_E0122CB8
.double 0.3
dlabel D_E0122CC0
.double 0.01
dlabel D_E0122CC8
.double 0.3
dlabel D_E0122CD0
.double 0.6
dlabel D_E0122CD8
.double 0.01
dlabel D_E0122CE0
.double 1.2
dlabel D_E0122CE8
.double 0.01
.section .text
glabel star_spirits_energy_update
/* 40C71C E012217C 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 40C720 E0122180 AFBF001C */ sw $ra, 0x1c($sp)
/* 40C724 E0122184 AFB20018 */ sw $s2, 0x18($sp)
/* 40C728 E0122188 AFB10014 */ sw $s1, 0x14($sp)
/* 40C72C E012218C AFB00010 */ sw $s0, 0x10($sp)
/* 40C730 E0122190 8C830000 */ lw $v1, ($a0)
/* 40C734 E0122194 8C90000C */ lw $s0, 0xc($a0)
/* 40C738 E0122198 30620010 */ andi $v0, $v1, 0x10
/* 40C73C E012219C 8E120004 */ lw $s2, 4($s0)
/* 40C740 E01221A0 10400005 */ beqz $v0, .LE01221B8
/* 40C744 E01221A4 2402FFEF */ addiu $v0, $zero, -0x11
/* 40C748 E01221A8 00621024 */ and $v0, $v1, $v0
/* 40C74C E01221AC AC820000 */ sw $v0, ($a0)
/* 40C750 E01221B0 24020010 */ addiu $v0, $zero, 0x10
/* 40C754 E01221B4 AE020014 */ sw $v0, 0x14($s0)
.LE01221B8:
/* 40C758 E01221B8 8E030014 */ lw $v1, 0x14($s0)
/* 40C75C E01221BC 286203E8 */ slti $v0, $v1, 0x3e8
/* 40C760 E01221C0 10400002 */ beqz $v0, .LE01221CC
/* 40C764 E01221C4 2462FFFF */ addiu $v0, $v1, -1
/* 40C768 E01221C8 AE020014 */ sw $v0, 0x14($s0)
.LE01221CC:
/* 40C76C E01221CC 8E020018 */ lw $v0, 0x18($s0)
/* 40C770 E01221D0 8E030014 */ lw $v1, 0x14($s0)
/* 40C774 E01221D4 24510001 */ addiu $s1, $v0, 1
/* 40C778 E01221D8 04610005 */ bgez $v1, .LE01221F0
/* 40C77C E01221DC AE110018 */ sw $s1, 0x18($s0)
/* 40C780 E01221E0 0C080128 */ jal shim_remove_effect
/* 40C784 E01221E4 00000000 */ nop
/* 40C788 E01221E8 080489AB */ j .LE01226AC
/* 40C78C E01221EC 00000000 */ nop
.LE01221F0:
/* 40C790 E01221F0 28620010 */ slti $v0, $v1, 0x10
/* 40C794 E01221F4 10400002 */ beqz $v0, .LE0122200
/* 40C798 E01221F8 00031100 */ sll $v0, $v1, 4
/* 40C79C E01221FC AE020028 */ sw $v0, 0x28($s0)
.LE0122200:
/* 40C7A0 E0122200 8E030070 */ lw $v1, 0x70($s0)
/* 40C7A4 E0122204 24020004 */ addiu $v0, $zero, 4
/* 40C7A8 E0122208 106200D5 */ beq $v1, $v0, .LE0122560
/* 40C7AC E012220C 28620005 */ slti $v0, $v1, 5
/* 40C7B0 E0122210 10400007 */ beqz $v0, .LE0122230
/* 40C7B4 E0122214 24020005 */ addiu $v0, $zero, 5
/* 40C7B8 E0122218 1060000B */ beqz $v1, .LE0122248
/* 40C7BC E012221C 24020001 */ addiu $v0, $zero, 1
/* 40C7C0 E0122220 10620096 */ beq $v1, $v0, .LE012247C
/* 40C7C4 E0122224 00000000 */ nop
/* 40C7C8 E0122228 0804898B */ j .LE012262C
/* 40C7CC E012222C 00000000 */ nop
.LE0122230:
/* 40C7D0 E0122230 106200FE */ beq $v1, $v0, .LE012262C
/* 40C7D4 E0122234 24020064 */ addiu $v0, $zero, 0x64
/* 40C7D8 E0122238 10620040 */ beq $v1, $v0, .LE012233C
/* 40C7DC E012223C 00000000 */ nop
/* 40C7E0 E0122240 0804898B */ j .LE012262C
/* 40C7E4 E0122244 00000000 */ nop
.LE0122248:
/* 40C7E8 E0122248 00111080 */ sll $v0, $s1, 2
/* 40C7EC E012224C 00511021 */ addu $v0, $v0, $s1
/* 40C7F0 E0122250 00021080 */ sll $v0, $v0, 2
/* 40C7F4 E0122254 44826000 */ mtc1 $v0, $f12
/* 40C7F8 E0122258 00000000 */ nop
/* 40C7FC E012225C 46806320 */ cvt.s.w $f12, $f12
/* 40C800 E0122260 32230003 */ andi $v1, $s1, 3
/* 40C804 E0122264 00031100 */ sll $v0, $v1, 4
/* 40C808 E0122268 00431023 */ subu $v0, $v0, $v1
/* 40C80C E012226C 00021040 */ sll $v0, $v0, 1
/* 40C810 E0122270 8E030074 */ lw $v1, 0x74($s0)
/* 40C814 E0122274 244200C8 */ addiu $v0, $v0, 0xc8
/* 40C818 E0122278 AE020050 */ sw $v0, 0x50($s0)
/* 40C81C E012227C 24630001 */ addiu $v1, $v1, 1
/* 40C820 E0122280 0C080140 */ jal shim_sin_deg
/* 40C824 E0122284 AE030074 */ sw $v1, 0x74($s0)
/* 40C828 E0122288 3C01E012 */ lui $at, %hi(D_E0122CA0)
/* 40C82C E012228C D4222CA0 */ ldc1 $f2, %lo(D_E0122CA0)($at)
/* 40C830 E0122290 46000021 */ cvt.d.s $f0, $f0
/* 40C834 E0122294 46220002 */ mul.d $f0, $f0, $f2
/* 40C838 E0122298 00000000 */ nop
/* 40C83C E012229C 3C013FE0 */ lui $at, 0x3fe0
/* 40C840 E01222A0 44811800 */ mtc1 $at, $f3
/* 40C844 E01222A4 44801000 */ mtc1 $zero, $f2
/* 40C848 E01222A8 00000000 */ nop
/* 40C84C E01222AC 46220000 */ add.d $f0, $f0, $f2
/* 40C850 E01222B0 8E020000 */ lw $v0, ($s0)
/* 40C854 E01222B4 46200020 */ cvt.s.d $f0, $f0
/* 40C858 E01222B8 104000E8 */ beqz $v0, .LE012265C
/* 40C85C E01222BC E6000040 */ swc1 $f0, 0x40($s0)
/* 40C860 E01222C0 44916000 */ mtc1 $s1, $f12
/* 40C864 E01222C4 00000000 */ nop
/* 40C868 E01222C8 0C080140 */ jal shim_sin_deg
/* 40C86C E01222CC 46806320 */ cvt.s.w $f12, $f12
/* 40C870 E01222D0 3C01E012 */ lui $at, %hi(D_E0122CA8)
/* 40C874 E01222D4 D4222CA8 */ ldc1 $f2, %lo(D_E0122CA8)($at)
/* 40C878 E01222D8 44916000 */ mtc1 $s1, $f12
/* 40C87C E01222DC 00000000 */ nop
/* 40C880 E01222E0 46806321 */ cvt.d.w $f12, $f12
/* 40C884 E01222E4 46226302 */ mul.d $f12, $f12, $f2
/* 40C888 E01222E8 00000000 */ nop
/* 40C88C E01222EC C6020008 */ lwc1 $f2, 8($s0)
/* 40C890 E01222F0 46001080 */ add.s $f2, $f2, $f0
/* 40C894 E01222F4 E6020008 */ swc1 $f2, 8($s0)
/* 40C898 E01222F8 0C080144 */ jal shim_cos_deg
/* 40C89C E01222FC 46206320 */ cvt.s.d $f12, $f12
/* 40C8A0 E0122300 C602000C */ lwc1 $f2, 0xc($s0)
/* 40C8A4 E0122304 8E020074 */ lw $v0, 0x74($s0)
/* 40C8A8 E0122308 46001080 */ add.s $f2, $f2, $f0
/* 40C8AC E012230C 28420033 */ slti $v0, $v0, 0x33
/* 40C8B0 E0122310 144000D2 */ bnez $v0, .LE012265C
/* 40C8B4 E0122314 E602000C */ swc1 $f2, 0xc($s0)
/* 40C8B8 E0122318 24020003 */ addiu $v0, $zero, 3
/* 40C8BC E012231C 16420004 */ bne $s2, $v0, .LE0122330
/* 40C8C0 E0122320 AE000074 */ sw $zero, 0x74($s0)
/* 40C8C4 E0122324 24020064 */ addiu $v0, $zero, 0x64
/* 40C8C8 E0122328 08048997 */ j .LE012265C
/* 40C8CC E012232C AE020070 */ sw $v0, 0x70($s0)
.LE0122330:
/* 40C8D0 E0122330 24020001 */ addiu $v0, $zero, 1
/* 40C8D4 E0122334 08048997 */ j .LE012265C
/* 40C8D8 E0122338 AE020070 */ sw $v0, 0x70($s0)
.LE012233C:
/* 40C8DC E012233C 8E030074 */ lw $v1, 0x74($s0)
/* 40C8E0 E0122340 10600005 */ beqz $v1, .LE0122358
/* 40C8E4 E0122344 24020001 */ addiu $v0, $zero, 1
/* 40C8E8 E0122348 10620007 */ beq $v1, $v0, .LE0122368
/* 40C8EC E012234C 240200FF */ addiu $v0, $zero, 0xff
/* 40C8F0 E0122350 080488DF */ j .LE012237C
/* 40C8F4 E0122354 AE00004C */ sw $zero, 0x4c($s0)
.LE0122358:
/* 40C8F8 E0122358 3C014080 */ lui $at, 0x4080
/* 40C8FC E012235C 44810000 */ mtc1 $at, $f0
/* 40C900 E0122360 080488DC */ j .LE0122370
/* 40C904 E0122364 240200FF */ addiu $v0, $zero, 0xff
.LE0122368:
/* 40C908 E0122368 3C014100 */ lui $at, 0x4100
/* 40C90C E012236C 44810000 */ mtc1 $at, $f0
.LE0122370:
/* 40C910 E0122370 AE02005C */ sw $v0, 0x5c($s0)
/* 40C914 E0122374 080488E0 */ j .LE0122380
/* 40C918 E0122378 E600004C */ swc1 $f0, 0x4c($s0)
.LE012237C:
/* 40C91C E012237C AE00005C */ sw $zero, 0x5c($s0)
.LE0122380:
/* 40C920 E0122380 8E040074 */ lw $a0, 0x74($s0)
/* 40C924 E0122384 2882001E */ slti $v0, $a0, 0x1e
/* 40C928 E0122388 10400017 */ beqz $v0, .LE01223E8
/* 40C92C E012238C 00041880 */ sll $v1, $a0, 2
/* 40C930 E0122390 3C02E012 */ lui $v0, %hi(D_E0122BA8)
/* 40C934 E0122394 24422BA8 */ addiu $v0, $v0, %lo(D_E0122BA8)
/* 40C938 E0122398 00621821 */ addu $v1, $v1, $v0
/* 40C93C E012239C 94620000 */ lhu $v0, ($v1)
/* 40C940 E01223A0 3C01E012 */ lui $at, %hi(D_E0122CB0)
/* 40C944 E01223A4 D4202CB0 */ ldc1 $f0, %lo(D_E0122CB0)($at)
/* 40C948 E01223A8 44821000 */ mtc1 $v0, $f2
/* 40C94C E01223AC 00000000 */ nop
/* 40C950 E01223B0 468010A0 */ cvt.s.w $f2, $f2
/* 40C954 E01223B4 460010A1 */ cvt.d.s $f2, $f2
/* 40C958 E01223B8 46201082 */ mul.d $f2, $f2, $f0
/* 40C95C E01223BC 00000000 */ nop
/* 40C960 E01223C0 3C01E012 */ lui $at, %hi(D_E0122CB8)
/* 40C964 E01223C4 D4242CB8 */ ldc1 $f4, %lo(D_E0122CB8)($at)
/* 40C968 E01223C8 44840000 */ mtc1 $a0, $f0
/* 40C96C E01223CC 00000000 */ nop
/* 40C970 E01223D0 46800021 */ cvt.d.w $f0, $f0
/* 40C974 E01223D4 46240002 */ mul.d $f0, $f0, $f4
/* 40C978 E01223D8 00000000 */ nop
/* 40C97C E01223DC 90620003 */ lbu $v0, 3($v1)
/* 40C980 E01223E0 0804890E */ j .LE0122438
/* 40C984 E01223E4 46201080 */ add.d $f2, $f2, $f0
.LE01223E8:
/* 40C988 E01223E8 3C03E012 */ lui $v1, %hi(D_E0122BA8)
/* 40C98C E01223EC 24632BA8 */ addiu $v1, $v1, %lo(D_E0122BA8)
/* 40C990 E01223F0 94620074 */ lhu $v0, 0x74($v1)
/* 40C994 E01223F4 3C01E012 */ lui $at, %hi(D_E0122CC0)
/* 40C998 E01223F8 D4202CC0 */ ldc1 $f0, %lo(D_E0122CC0)($at)
/* 40C99C E01223FC 44821000 */ mtc1 $v0, $f2
/* 40C9A0 E0122400 00000000 */ nop
/* 40C9A4 E0122404 468010A0 */ cvt.s.w $f2, $f2
/* 40C9A8 E0122408 460010A1 */ cvt.d.s $f2, $f2
/* 40C9AC E012240C 46201082 */ mul.d $f2, $f2, $f0
/* 40C9B0 E0122410 00000000 */ nop
/* 40C9B4 E0122414 3C01E012 */ lui $at, %hi(D_E0122CC8)
/* 40C9B8 E0122418 D4242CC8 */ ldc1 $f4, %lo(D_E0122CC8)($at)
/* 40C9BC E012241C 44840000 */ mtc1 $a0, $f0
/* 40C9C0 E0122420 00000000 */ nop
/* 40C9C4 E0122424 46800021 */ cvt.d.w $f0, $f0
/* 40C9C8 E0122428 46240002 */ mul.d $f0, $f0, $f4
/* 40C9CC E012242C 00000000 */ nop
/* 40C9D0 E0122430 46201080 */ add.d $f2, $f2, $f0
/* 40C9D4 E0122434 90620077 */ lbu $v0, 0x77($v1)
.LE0122438:
/* 40C9D8 E0122438 46201020 */ cvt.s.d $f0, $f2
/* 40C9DC E012243C 3C01E012 */ lui $at, %hi(D_E0122CD0)
/* 40C9E0 E0122440 D4222CD0 */ ldc1 $f2, %lo(D_E0122CD0)($at)
/* 40C9E4 E0122444 304200FF */ andi $v0, $v0, 0xff
/* 40C9E8 E0122448 AE020054 */ sw $v0, 0x54($s0)
/* 40C9EC E012244C AE020058 */ sw $v0, 0x58($s0)
/* 40C9F0 E0122450 8E020074 */ lw $v0, 0x74($s0)
/* 40C9F4 E0122454 E6000044 */ swc1 $f0, 0x44($s0)
/* 40C9F8 E0122458 46000021 */ cvt.d.s $f0, $f0
/* 40C9FC E012245C AE000050 */ sw $zero, 0x50($s0)
/* 40CA00 E0122460 AE000040 */ sw $zero, 0x40($s0)
/* 40CA04 E0122464 46220000 */ add.d $f0, $f0, $f2
/* 40CA08 E0122468 24420001 */ addiu $v0, $v0, 1
/* 40CA0C E012246C AE020074 */ sw $v0, 0x74($s0)
/* 40CA10 E0122470 46200020 */ cvt.s.d $f0, $f0
/* 40CA14 E0122474 08048997 */ j .LE012265C
/* 40CA18 E0122478 E6000048 */ swc1 $f0, 0x48($s0)
.LE012247C:
/* 40CA1C E012247C 8E020074 */ lw $v0, 0x74($s0)
/* 40CA20 E0122480 10400005 */ beqz $v0, .LE0122498
/* 40CA24 E0122484 00000000 */ nop
/* 40CA28 E0122488 10430007 */ beq $v0, $v1, .LE01224A8
/* 40CA2C E012248C 240200FF */ addiu $v0, $zero, 0xff
/* 40CA30 E0122490 0804892F */ j .LE01224BC
/* 40CA34 E0122494 AE00004C */ sw $zero, 0x4c($s0)
.LE0122498:
/* 40CA38 E0122498 3C014080 */ lui $at, 0x4080
/* 40CA3C E012249C 44810000 */ mtc1 $at, $f0
/* 40CA40 E01224A0 0804892C */ j .LE01224B0
/* 40CA44 E01224A4 240200FF */ addiu $v0, $zero, 0xff
.LE01224A8:
/* 40CA48 E01224A8 3C014100 */ lui $at, 0x4100
/* 40CA4C E01224AC 44810000 */ mtc1 $at, $f0
.LE01224B0:
/* 40CA50 E01224B0 AE02005C */ sw $v0, 0x5c($s0)
/* 40CA54 E01224B4 08048930 */ j .LE01224C0
/* 40CA58 E01224B8 E600004C */ swc1 $f0, 0x4c($s0)
.LE01224BC:
/* 40CA5C E01224BC AE00005C */ sw $zero, 0x5c($s0)
.LE01224C0:
/* 40CA60 E01224C0 8E030074 */ lw $v1, 0x74($s0)
/* 40CA64 E01224C4 3C02E012 */ lui $v0, %hi(D_E0122BA8)
/* 40CA68 E01224C8 24422BA8 */ addiu $v0, $v0, %lo(D_E0122BA8)
/* 40CA6C E01224CC 00031880 */ sll $v1, $v1, 2
/* 40CA70 E01224D0 00621821 */ addu $v1, $v1, $v0
/* 40CA74 E01224D4 94620000 */ lhu $v0, ($v1)
/* 40CA78 E01224D8 3C01E012 */ lui $at, %hi(D_E0122CD8)
/* 40CA7C E01224DC D4202CD8 */ ldc1 $f0, %lo(D_E0122CD8)($at)
/* 40CA80 E01224E0 44821000 */ mtc1 $v0, $f2
/* 40CA84 E01224E4 00000000 */ nop
/* 40CA88 E01224E8 468010A0 */ cvt.s.w $f2, $f2
/* 40CA8C E01224EC 460010A1 */ cvt.d.s $f2, $f2
/* 40CA90 E01224F0 46201082 */ mul.d $f2, $f2, $f0
/* 40CA94 E01224F4 00000000 */ nop
/* 40CA98 E01224F8 3C01E012 */ lui $at, %hi(D_E0122CE0)
/* 40CA9C E01224FC D4242CE0 */ ldc1 $f4, %lo(D_E0122CE0)($at)
/* 40CAA0 E0122500 90630003 */ lbu $v1, 3($v1)
/* 40CAA4 E0122504 AE000050 */ sw $zero, 0x50($s0)
/* 40CAA8 E0122508 AE000040 */ sw $zero, 0x40($s0)
/* 40CAAC E012250C 462010A0 */ cvt.s.d $f2, $f2
/* 40CAB0 E0122510 46001021 */ cvt.d.s $f0, $f2
/* 40CAB4 E0122514 46240002 */ mul.d $f0, $f0, $f4
/* 40CAB8 E0122518 00000000 */ nop
/* 40CABC E012251C 8E020074 */ lw $v0, 0x74($s0)
/* 40CAC0 E0122520 306300FF */ andi $v1, $v1, 0xff
/* 40CAC4 E0122524 AE030054 */ sw $v1, 0x54($s0)
/* 40CAC8 E0122528 AE030058 */ sw $v1, 0x58($s0)
/* 40CACC E012252C 3C014010 */ lui $at, 0x4010
/* 40CAD0 E0122530 44812800 */ mtc1 $at, $f5
/* 40CAD4 E0122534 44802000 */ mtc1 $zero, $f4
/* 40CAD8 E0122538 24420001 */ addiu $v0, $v0, 1
/* 40CADC E012253C AE020074 */ sw $v0, 0x74($s0)
/* 40CAE0 E0122540 46240000 */ add.d $f0, $f0, $f4
/* 40CAE4 E0122544 2842001E */ slti $v0, $v0, 0x1e
/* 40CAE8 E0122548 E6020044 */ swc1 $f2, 0x44($s0)
/* 40CAEC E012254C 46200020 */ cvt.s.d $f0, $f0
/* 40CAF0 E0122550 14400042 */ bnez $v0, .LE012265C
/* 40CAF4 E0122554 E6000048 */ swc1 $f0, 0x48($s0)
/* 40CAF8 E0122558 08048988 */ j .LE0122620
/* 40CAFC E012255C 24020004 */ addiu $v0, $zero, 4
.LE0122560:
/* 40CB00 E0122560 8E030074 */ lw $v1, 0x74($s0)
/* 40CB04 E0122564 2402001D */ addiu $v0, $zero, 0x1d
/* 40CB08 E0122568 00431823 */ subu $v1, $v0, $v1
/* 40CB0C E012256C 10600005 */ beqz $v1, .LE0122584
/* 40CB10 E0122570 24020001 */ addiu $v0, $zero, 1
/* 40CB14 E0122574 10620007 */ beq $v1, $v0, .LE0122594
/* 40CB18 E0122578 240200FF */ addiu $v0, $zero, 0xff
/* 40CB1C E012257C 0804896A */ j .LE01225A8
/* 40CB20 E0122580 AE00004C */ sw $zero, 0x4c($s0)
.LE0122584:
/* 40CB24 E0122584 3C014080 */ lui $at, 0x4080
/* 40CB28 E0122588 44810000 */ mtc1 $at, $f0
/* 40CB2C E012258C 08048967 */ j .LE012259C
/* 40CB30 E0122590 240200FF */ addiu $v0, $zero, 0xff
.LE0122594:
/* 40CB34 E0122594 3C014100 */ lui $at, 0x4100
/* 40CB38 E0122598 44810000 */ mtc1 $at, $f0
.LE012259C:
/* 40CB3C E012259C AE02005C */ sw $v0, 0x5c($s0)
/* 40CB40 E01225A0 0804896B */ j .LE01225AC
/* 40CB44 E01225A4 E600004C */ swc1 $f0, 0x4c($s0)
.LE01225A8:
/* 40CB48 E01225A8 AE00005C */ sw $zero, 0x5c($s0)
.LE01225AC:
/* 40CB4C E01225AC 3C03E012 */ lui $v1, %hi(D_E0122C20)
/* 40CB50 E01225B0 24632C20 */ addiu $v1, $v1, %lo(D_E0122C20)
/* 40CB54 E01225B4 8E020074 */ lw $v0, 0x74($s0)
/* 40CB58 E01225B8 3C01E012 */ lui $at, %hi(D_E0122CE8)
/* 40CB5C E01225BC D4222CE8 */ ldc1 $f2, %lo(D_E0122CE8)($at)
/* 40CB60 E01225C0 00021080 */ sll $v0, $v0, 2
/* 40CB64 E01225C4 00431021 */ addu $v0, $v0, $v1
/* 40CB68 E01225C8 94430000 */ lhu $v1, ($v0)
/* 40CB6C E01225CC 90440003 */ lbu $a0, 3($v0)
/* 40CB70 E01225D0 8E020074 */ lw $v0, 0x74($s0)
/* 40CB74 E01225D4 AE000050 */ sw $zero, 0x50($s0)
/* 40CB78 E01225D8 AE000040 */ sw $zero, 0x40($s0)
/* 40CB7C E01225DC 44830000 */ mtc1 $v1, $f0
/* 40CB80 E01225E0 00000000 */ nop
/* 40CB84 E01225E4 46800020 */ cvt.s.w $f0, $f0
/* 40CB88 E01225E8 46000021 */ cvt.d.s $f0, $f0
/* 40CB8C E01225EC 46220002 */ mul.d $f0, $f0, $f2
/* 40CB90 E01225F0 00000000 */ nop
/* 40CB94 E01225F4 AE000058 */ sw $zero, 0x58($s0)
/* 40CB98 E01225F8 AE000048 */ sw $zero, 0x48($s0)
/* 40CB9C E01225FC 24420001 */ addiu $v0, $v0, 1
/* 40CBA0 E0122600 308400FF */ andi $a0, $a0, 0xff
/* 40CBA4 E0122604 AE020074 */ sw $v0, 0x74($s0)
/* 40CBA8 E0122608 2842001E */ slti $v0, $v0, 0x1e
/* 40CBAC E012260C AE040054 */ sw $a0, 0x54($s0)
/* 40CBB0 E0122610 46200020 */ cvt.s.d $f0, $f0
/* 40CBB4 E0122614 14400011 */ bnez $v0, .LE012265C
/* 40CBB8 E0122618 E6000044 */ swc1 $f0, 0x44($s0)
/* 40CBBC E012261C 24020005 */ addiu $v0, $zero, 5
.LE0122620:
/* 40CBC0 E0122620 AE000074 */ sw $zero, 0x74($s0)
/* 40CBC4 E0122624 08048997 */ j .LE012265C
/* 40CBC8 E0122628 AE020070 */ sw $v0, 0x70($s0)
.LE012262C:
/* 40CBCC E012262C 8E020074 */ lw $v0, 0x74($s0)
/* 40CBD0 E0122630 AE000040 */ sw $zero, 0x40($s0)
/* 40CBD4 E0122634 AE000044 */ sw $zero, 0x44($s0)
/* 40CBD8 E0122638 AE000048 */ sw $zero, 0x48($s0)
/* 40CBDC E012263C AE000050 */ sw $zero, 0x50($s0)
/* 40CBE0 E0122640 AE000054 */ sw $zero, 0x54($s0)
/* 40CBE4 E0122644 AE000058 */ sw $zero, 0x58($s0)
/* 40CBE8 E0122648 AE00004C */ sw $zero, 0x4c($s0)
/* 40CBEC E012264C AE00005C */ sw $zero, 0x5c($s0)
/* 40CBF0 E0122650 AE00004C */ sw $zero, 0x4c($s0)
/* 40CBF4 E0122654 24420001 */ addiu $v0, $v0, 1
/* 40CBF8 E0122658 AE020074 */ sw $v0, 0x74($s0)
.LE012265C:
/* 40CBFC E012265C 0000202D */ daddu $a0, $zero, $zero
/* 40CC00 E0122660 240500FF */ addiu $a1, $zero, 0xff
/* 40CC04 E0122664 44801000 */ mtc1 $zero, $f2
/* 40CC08 E0122668 0200182D */ daddu $v1, $s0, $zero
.LE012266C:
/* 40CC0C E012266C 8C620050 */ lw $v0, 0x50($v1)
/* 40CC10 E0122670 28420100 */ slti $v0, $v0, 0x100
/* 40CC14 E0122674 50400001 */ beql $v0, $zero, .LE012267C
/* 40CC18 E0122678 AC650050 */ sw $a1, 0x50($v1)
.LE012267C:
/* 40CC1C E012267C 8C620050 */ lw $v0, 0x50($v1)
/* 40CC20 E0122680 04420001 */ bltzl $v0, .LE0122688
/* 40CC24 E0122684 AC600050 */ sw $zero, 0x50($v1)
.LE0122688:
/* 40CC28 E0122688 C4600040 */ lwc1 $f0, 0x40($v1)
/* 40CC2C E012268C 4602003C */ c.lt.s $f0, $f2
/* 40CC30 E0122690 00000000 */ nop
/* 40CC34 E0122694 45030001 */ bc1tl .LE012269C
/* 40CC38 E0122698 E4620040 */ swc1 $f2, 0x40($v1)
.LE012269C:
/* 40CC3C E012269C 24840001 */ addiu $a0, $a0, 1
/* 40CC40 E01226A0 28820004 */ slti $v0, $a0, 4
/* 40CC44 E01226A4 1440FFF1 */ bnez $v0, .LE012266C
/* 40CC48 E01226A8 24630004 */ addiu $v1, $v1, 4
.LE01226AC:
/* 40CC4C E01226AC 8FBF001C */ lw $ra, 0x1c($sp)
/* 40CC50 E01226B0 8FB20018 */ lw $s2, 0x18($sp)
/* 40CC54 E01226B4 8FB10014 */ lw $s1, 0x14($sp)
/* 40CC58 E01226B8 8FB00010 */ lw $s0, 0x10($sp)
/* 40CC5C E01226BC 03E00008 */ jr $ra
/* 40CC60 E01226C0 27BD0020 */ addiu $sp, $sp, 0x20