Matching effects (#771)

* Matching effects

* Updated fx_3D_main

* Changing color values to decimal
This commit is contained in:
mrshigure 2022-09-13 02:52:01 -07:00 committed by GitHub
parent 81c2817b09
commit 5592b4dae2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 917 additions and 2965 deletions

View File

@ -437,8 +437,19 @@ typedef struct GatherEnergyPinkFXData {
} GatherEnergyPinkFXData; // size = 0x60
typedef struct DropLeavesFXData {
/* 0x00 */ char todo[0];
} DropLeavesFXData; // size = unknown
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
} DropLeavesFXData; // size = 0x30
typedef struct DustFXData {
/* 0x00 */ s32 unk_00;
@ -775,8 +786,28 @@ typedef struct Effect3DFXData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Vec3f pos;
/* 0x00 */ char todo[0];
} Effect3DFXData; // size = unknown
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ f32 unk_44;
/* 0x48 */ f32 unk_48;
/* 0x4C */ f32 unk_4C;
/* 0x50 */ f32 unk_50;
/* 0x54 */ f32 unk_54;
/* 0x58 */ s32 unk_58;
/* 0x5C */ s32 unk_5C;
/* 0x60 */ s32 unk_60;
/* 0x64 */ s32 unk_64;
} Effect3DFXData; // size = 0x68
typedef struct BlastFXData {
/* 0x00 */ s16 unk_00;
@ -872,9 +903,28 @@ typedef struct SnowfallFXData {
} SnowfallFXData; // size = unknown
typedef struct Effect46FXData {
/* 0x00 */ char unk_00[0x24];
/* 0x04 */ s32 unk_24;
} Effect46FXData; // size = 0x44
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32* unk_04; // pointer to another struct?
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ s8 unk_44;
/* 0x45 */ s8 unk_45;
/* 0x46 */ s8 unk_46;
/* 0x47 */ char unk_47;
} Effect46FXData; // size = 0x48
typedef struct GatherMagicFXData {
/* 0x00 */ s32 unk_00;
@ -1281,8 +1331,35 @@ typedef struct ColdBreathFXData {
} ColdBreathFXData; // size = 0x44
typedef struct EmbersFXData {
/* 0x00 */ char todo[0];
} EmbersFXData; // size = unknown
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ s32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ f32 unk_44;
/* 0x48 */ f32 unk_48;
/* 0x4C */ f32 unk_4C;
/* 0x50 */ f32 unk_50;
/* 0x54 */ f32 unk_54;
/* 0x58 */ f32 unk_58;
/* 0x5C */ f32 unk_5C;
/* 0x60 */ f32 unk_60;
/* 0x64 */ s32 unk_64;
/* 0x68 */ f32 unk_68;
/* 0x6C */ f32 unk_6C;
} EmbersFXData; // size = 0x70
typedef struct HieroglyphsFXData {
/* 0x00 */ char todo[0];
@ -1324,7 +1401,35 @@ typedef struct Effect75FXData {
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
} Effect75FXData; // size = ?
/* 0x10 */ s32 unk_10;
/* 0x14 */ s32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ f32 unk_44;
/* 0x48 */ f32 unk_48;
/* 0x4C */ f32 unk_4C;
/* 0x50 */ f32 unk_50;
/* 0x54 */ f32 unk_54;
/* 0x58 */ f32 unk_58;
/* 0x5C */ f32 unk_5C;
/* 0x60 */ f32 unk_60;
/* 0x64 */ f32 unk_64;
/* 0x68 */ f32 unk_68;
/* 0x6C */ f32 unk_6C;
/* 0x70 */ f32 unk_70;
/* 0x74 */ f32 unk_74;
/* 0x78 */ f32 unk_78;
/* 0x7C */ f32 unk_7C;
} Effect75FXData; // size = 0x80
typedef struct Effect76FXData {
/* 0x00 */ char todo[0];

View File

@ -51,7 +51,7 @@ void emote_main(s32, s32, f32, f32, f32, f32, f32, s32, EffectInstance**);
FX_MAIN(sparkles_main);
EffectInstance* shape_spell_main(s32, f32, f32, f32, f32, f32, f32, s32);
void gather_energy_pink_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(drop_leaves_main);
void drop_leaves_main(s32, f32, f32, f32, s32);
EffectInstance* dust_main(s32, f32, f32, f32, s32);
FX_MAIN(shattering_stones_main);
FX_MAIN(smoke_ring_main);
@ -91,7 +91,7 @@ FX_MAIN(energy_shockwave_main);
FX_MAIN(shimmer_wave_main);
void aura_main(s32, f32, f32, f32, f32, EffectInstance**);
void bulb_glow_main(s32, f32, f32, f32, f32, EffectInstance**);
FX_MAIN(fx_3D_main);
void fx_3D_main(s32, f32, f32, f32, f32, f32, f32, s32, EffectInstance**);
void blast_main(s32, f32, f32, f32, f32, s32);
EffectInstance* fire_flower_main(s32, f32, f32, f32, s32);
FX_MAIN(recover_main);
@ -141,12 +141,12 @@ EffectInstance* tattle_window_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(shiny_flare_main);
FX_MAIN(huff_puff_breath_main);
EffectInstance* cold_breath_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(embers_main);
EffectInstance* embers_main(s32, f32, f32, f32, f32, f32, f32, s32, s32, f32, f32);
FX_MAIN(hieroglyphs_main);
FX_MAIN(misc_particles_main);
FX_MAIN(static_status_main);
FX_MAIN(moving_cloud_main);
FX_MAIN(fx_75_main);
EffectInstance* fx_75_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(firework_rocket_main);
EffectInstance* peach_star_beam_main(s32, f32, f32, f32, f32, s32);
EffectInstance* chapter_change_main(s32, f32, f32, f32, f32, s32);

View File

@ -2,7 +2,7 @@
#include "effects_internal.h"
extern Gfx* D_E00DE810[][5];
extern s32 D_E00DE84C[];
extern Gfx* D_E00DE84C[];
extern s8 D_E00DE858[];
extern u8 D_E00DE8B4[];
extern u8 D_E00DE910[];

View File

@ -1,14 +1,117 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_09001180[];
extern Gfx D_09001230[];
void drop_leaves_init(EffectInstance* effect);
void drop_leaves_render(EffectInstance* effect);
void drop_leaves_update(EffectInstance* effect);
void drop_leaves_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/drop_leaves", drop_leaves_main);
void drop_leaves_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4) {
EffectBlueprint bp;
EffectInstance* effect;
DropLeavesFXData* part;
s32 numParts = 5;
s32 i;
void drop_leaves_init(void) {
bp.init = drop_leaves_init;
bp.update = drop_leaves_update;
bp.renderWorld = drop_leaves_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_DROP_LEAVES;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
part = effect->data.dropLeaves = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.dropLeaves != NULL);
part->unk_00 = arg0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_28 = arg4;
part->unk_2C = 0;
part->unk_24 = 0;
part++;
for (i = 1; i < numParts; i++, part++) {
if (arg0 == 0) {
part->unk_04 = func_E0200000(50) - 25;
part->unk_08 = func_E0200000(50) - 25;
part->unk_0C = 0.0f;
part->unk_18 = func_E0200000(360);
part->unk_20 = func_E0200000(360);
part->unk_1C = func_E0200000(100) / 10.0f;
part->unk_10 = 0;
part->unk_14 = 0;
} else {
part->unk_04 = func_E0200000(10) - 5;
part->unk_08 = func_E0200000(10) + 5;
part->unk_0C = 10.0f;
part->unk_18 = func_E0200000(360);
part->unk_20 = func_E0200000(360);
part->unk_1C = func_E0200000(100) / 10.0f;
part->unk_10 = 0;
part->unk_14 = 2.0f;
}
}
}
INCLUDE_ASM(s32, "effects/drop_leaves", drop_leaves_update);
void drop_leaves_init(EffectInstance* effect) {
}
void drop_leaves_update(EffectInstance *effect) {
DropLeavesFXData* part = effect->data.dropLeaves;
s32 unk_00;
s32 unk_28;
s32 unk_2C;
f32 temp;
s32 i;
part->unk_28--;
part->unk_2C++;
if (part->unk_28 < 0) {
shim_remove_effect(effect);
return;
}
unk_00 = part->unk_00;
unk_28 = part->unk_28;
unk_2C = part->unk_2C;
if (unk_2C < 10) {
part->unk_24 += (255 - part->unk_24) * 0.3;
}
if (unk_28 < 10) {
part->unk_24 *= 0.8;
}
part++;
for (i = 1; i < effect->numParts; i++, part++) {
temp = shim_sin_deg(2.0f * part->unk_18) * 0.2;
part->unk_14 += -0.05f;
part->unk_10 += temp;
if (unk_00 == 0) {
part->unk_10 *= 0.94;
part->unk_14 *= shim_sin_deg(part->unk_18) * 0.05 + 0.95;
} else {
part->unk_14 += -0.05f;
part->unk_10 *= 0.92;
}
part->unk_1C += func_E0200044(50, unk_2C + i * 20) - 25;
part->unk_18 += shim_sin_deg(part->unk_1C) * 10.0f;
part->unk_20 += shim_cos_deg(part->unk_1C * 0.5f) * 10.0f;
part->unk_04 += part->unk_10;
part->unk_08 += part->unk_14;
}
}
void drop_leaves_render(EffectInstance* effect) {
RenderTask renderTask;
@ -23,4 +126,33 @@ void drop_leaves_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/drop_leaves", drop_leaves_appendGfx);
void drop_leaves_appendGfx(void* effect) {
DropLeavesFXData* part = ((EffectInstance*)effect)->data.dropLeaves;
Matrix4f sp18;
Matrix4f sp58;
Matrix4f sp98;
s32 i;
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, D_09001180);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 20, 100, 20, part->unk_24);
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, sp98);
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
shim_guTranslateF(sp58, part->unk_04, part->unk_08, part->unk_0C);
shim_guMtxCatF(sp58, sp98, sp18);
shim_guRotateF(sp58, part->unk_18, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guRotateF(sp58, part->unk_20, 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_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_09001230);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}

View File

@ -1,11 +1,16 @@
#include "common.h"
#include "effects_internal.h"
void dust_appendGfx(void* effect);
extern Gfx D_09000CC0[];
extern Gfx D_09000D68[];
extern Gfx D_09000E18[];
extern Gfx D_09000E38[];
extern Gfx D_09000E58[];
void dust_init(EffectInstance* effect);
void dust_render(EffectInstance* effect);
void dust_update(EffectInstance* effect);
void dust_appendGfx(void* effect);
EffectInstance* dust_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4) {
EffectBlueprint bp;
@ -120,4 +125,44 @@ void dust_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/dust", dust_appendGfx);
void dust_appendGfx(void* effect) {
DustFXData* part = ((EffectInstance*)effect)->data.dust;
s32 unk_00;
Matrix4f sp18;
Matrix4f sp58;
Matrix4f sp98;
Mtx* matrix;
s32 i;
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, part->unk_00 == 0 ? D_09000CC0 : D_09000D68);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, part->unk_30, part->unk_34, part->unk_38, part->unk_18);
gDPSetEnvColor(gMasterGfxPos++, part->unk_3C, part->unk_40, part->unk_44, 0);
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, sp98);
unk_00 = part->unk_00;
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
matrix = &gDisplayContext->matrixStack[gMatrixListPos++];
shim_guScaleF(sp18, part->unk_20, part->unk_1C, part->unk_20);
shim_guMtxF2L(sp18, matrix);
shim_guTranslateF(sp58, part->unk_04, part->unk_08, part->unk_0C);
shim_guMtxCatF(sp58, sp98, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPMatrix(gMasterGfxPos++, matrix, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
if (unk_00 < 2) {
gSPDisplayList(gMasterGfxPos++, (i % 2) ? D_09000E18 : D_09000E38);
} else {
gSPDisplayList(gMasterGfxPos++, D_09000E58);
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}

View File

@ -1,14 +1,206 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_09000240[];
extern Gfx D_090002E8[];
void fx_3D_init(EffectInstance* effect);
void fx_3D_update(EffectInstance* effect);
void fx_3D_render(EffectInstance* effect);
void fx_3D_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/effect_3D", fx_3D_main);
void fx_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, s32 arg7, EffectInstance** outEffect) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
Effect3DFXData* part;
f32 temp_f22 = arg4;
f32 temp_f24 = arg5;
f32 temp_f26 = arg6;
s32 numParts = arg7;
f32 temp_f12;
f32 temp_f28;
f32 temp_f30;
f32 sp70;
Matrix4f sp30;
s32 i;
void fx_3D_init(void) {
if (numParts != 0) {
numParts++;
temp_f12 = SQ(temp_f22) + SQ(temp_f24) + SQ(temp_f26);
if (temp_f12 != 0.0f) {
temp_f12 = -1.0f / shim_sqrtf(temp_f12);
temp_f22 *= temp_f12;
temp_f24 *= temp_f12;
temp_f26 *= temp_f12;
if (temp_f22 != 0.0f) {
sp70 = 1.0f;
temp_f30 = -temp_f24 / temp_f22;
temp_f28 = 0.0f;
} else if (temp_f24 != 0.0f) {
sp70 = -temp_f22 / temp_f24;
temp_f30 = 1.0f;
temp_f28 = 0.0f;
} else {
sp70 = 0.0f;
temp_f30 = 1.0f;
temp_f28 = -temp_f22 / temp_f26;
}
temp_f12 = SQ(temp_f30) + SQ(sp70) + SQ(temp_f28);
if (temp_f12 != 0.0f) {
temp_f12 = 1.0f / shim_sqrtf(temp_f12);
temp_f30 *= temp_f12;
sp70 *= temp_f12;
temp_f28 *= temp_f12;
temp_f30 *= 8.0f;
sp70 *= 8.0f;
temp_f28 *= 8.0f;
temp_f22 *= 8.0f;
temp_f24 *= 8.0f;
temp_f26 *= 8.0f;
bpPtr->unk_00 = 0;
bpPtr->init = fx_3D_init;
bpPtr->update = fx_3D_update;
bpPtr->renderWorld = fx_3D_render;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_3D;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data.unk_3D = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.unk_3D != NULL);
part->unk_04 = 0;
part->unk_00 = arg0;
part->pos.x = arg1;
part->pos.y = arg2;
part->pos.z = arg3;
part->unk_5C = 10;
part->unk_60 = 0;
part++;
for (i = 1; i < numParts; i++, part++) {
part->pos.x = 0;
part->pos.y = 0;
part->pos.z = 0;
shim_guRotateF(sp30, i * 72, temp_f22, temp_f24, temp_f26);
part->unk_14 = part->unk_20 = 2.0f * temp_f22;
part->unk_18 = part->unk_24 = 2.0f * temp_f24;
part->unk_1C = part->unk_28 = 2.0f * temp_f26;
part->unk_38 = -temp_f22 * 0.05 * 4.0;
part->unk_3C = -temp_f24 * 0.05 * 4.0;
part->unk_40 = -temp_f26 * 0.05 * 4.0;
part->unk_2C = (sp30[0][0] * temp_f30 + sp30[1][0] * sp70 + sp30[2][0] * temp_f28) * 0.1 * 4.0;
part->unk_30 = (sp30[0][1] * temp_f30 + sp30[1][1] * sp70 + sp30[2][1] * temp_f28) * 0.1 * 4.0;
part->unk_34 = (sp30[0][2] * temp_f30 + sp30[1][2] * sp70 + sp30[2][2] * temp_f28) * 0.1 * 4.0;
part->unk_44 = 0.5f;
part->unk_48 = 4.0f;
part->unk_50 = 20.0f;
part->unk_4C = part->unk_54 = func_E0200000(360);
part->unk_58 = 255;
part->unk_64 = ((i - 1) / 5) * 2;
part->unk_5C = 10;
}
*outEffect = effect;
}
}
}
}
INCLUDE_ASM(s32, "effects/effect_3D", fx_3D_update);
void fx_3D_init(EffectInstance* effect) {
}
void fx_3D_update(EffectInstance* effect) {
Effect3DFXData* part = effect->data.unk_3D;
s32 unk_04 = part->unk_04;
s32 unk_5C;
s32 saved_5C;
s32 i;
part->unk_5C--;
part->unk_60++;
if (part->unk_5C < 0 && unk_04 == 2) {
shim_remove_effect(effect);
return;
}
saved_5C = part->unk_5C;
part++;
for (i = 1; i < effect->numParts; i++, part++) {
if (part->unk_64 <= 0 || --part->unk_64 <= 0) {
unk_5C = --part->unk_5C;
if (unk_5C < 0) {
if (unk_04 == 0) {
part->unk_58 = 255;
part->pos.x = 0.0f;
part->pos.y = 0.0f;
part->pos.z = 0.0f;
part->unk_14 = part->unk_20;
part->unk_18 = part->unk_24;
part->unk_1C = part->unk_28;
part->unk_44 = 0.5f;
part->unk_48 = 4.0f;
part->unk_50 = 20.0f;
part->unk_4C = part->unk_54;
part->unk_5C = 9;
unk_5C = 9;
} else {
part->pos.x = 0.0f;
part->pos.y = 0.0f;
part->pos.z = 0.0f;
part->unk_14 = 0.0f;
part->unk_18 = 0.0f;
part->unk_1C = 0.0f;
part->unk_58 = 0;
part->unk_5C = 0;
}
}
if (unk_5C - 4 < 3U) {
part->unk_14 += part->unk_2C;
part->unk_18 += part->unk_30;
part->unk_1C += part->unk_34;
}
if (unk_5C < 8) {
part->unk_44 += (3.0 - part->unk_44) * 0.03 * 8.0;
part->unk_48 += (0.5 - part->unk_48) * 0.03 * 6.0;
}
part->unk_14 += part->unk_38;
part->unk_18 += part->unk_3C;
part->unk_1C += part->unk_40;
if (part->unk_18 < 0.0f) {
part->unk_50 *= 0.2;
part->unk_14 *= 0.225;
part->unk_18 *= 0.45;
part->unk_1C *= 0.225;
part->unk_58 *= 0.8;
}
part->pos.x += part->unk_14;
part->pos.y += part->unk_18;
part->pos.z += part->unk_1C;
part->unk_4C += part->unk_50;
}
}
if (saved_5C < 0) {
part = effect->data.unk_3D;
part->unk_5C = 10;
part->unk_60 = 0;
}
}
void fx_3D_render(EffectInstance* effect) {
RenderTask renderTask;
@ -26,4 +218,39 @@ void fx_3D_render(EffectInstance* effect) {
void func_E007A884(void) {
}
INCLUDE_ASM(s32, "effects/effect_3D", fx_3D_appendGfx);
void fx_3D_appendGfx(void* effect) {
Effect3DFXData* part = ((EffectInstance*)effect)->data.unk_3D;
Matrix4f sp18;
Matrix4f sp58;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, D_09000240);
shim_guTranslateF(sp18, part->pos.x, part->pos.y, part->pos.z);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 200, 255, 255, part->unk_58);
shim_guTranslateF(sp18, part->pos.x, part->pos.y, part->pos.z);
shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guScaleF(sp58, part->unk_44, part->unk_48, part->unk_44);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guRotateF(sp58, part->unk_4C, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_090002E8);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -1,6 +1,9 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_090003A0[];
extern Gfx D_09000420[];
void fx_46_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/effect_46", fx_46_main);
@ -8,7 +11,63 @@ INCLUDE_ASM(s32, "effects/effect_46", fx_46_main);
void fx_46_init(void) {
}
INCLUDE_ASM(s32, "effects/effect_46", fx_46_update);
void fx_46_update(EffectInstance* effect) {
Effect46FXData* part = effect->data.unk_46;
s32 unk_00;
s32 unk_24;
s32 i;
part->unk_24--;
part->unk_28++;
if (part->unk_24 < 0) {
shim_remove_effect(effect);
return;
}
unk_00 = part->unk_00;
unk_24 = part->unk_24;
if (unk_00 == 8) {
if (unk_24 >= 6) {
part->unk_1C += (255 - part->unk_1C) * 0.05;
}
part->unk_14 = (part->unk_18 * unk_24) / part->unk_20;
if (unk_24 < 10) {
part->unk_1C = unk_24 * 0x19;
}
} else {
if (unk_24 >= 6) {
part->unk_1C += (100 - part->unk_1C) * 0.3;
}
if (unk_24 < 10) {
part->unk_1C *= 0.8;
part->unk_14 += (2.0f * part->unk_18 - part->unk_14) * 0.1;
}
}
part->unk_08 = part->unk_04[10];
part->unk_0C = part->unk_04[11];
part->unk_10 = part->unk_04[12];
part++;
for (i = 1; i < effect->numParts; i++, part++) {
if (unk_00 == 8) {
if (i % 2) {
part->unk_3C += (40.0f - part->unk_3C) * 0.2;
} else {
part->unk_3C += (-40.0f - part->unk_3C) * 0.2;
}
part->unk_2C += part->unk_38;
part->unk_30 += part->unk_3C;
part->unk_34 += part->unk_40;
} else if (unk_24 < 10) {
part->unk_30 += (part->unk_3C * unk_24) / 10.0f;
} else {
part->unk_30 += part->unk_3C;
}
}
}
void fx_46_render(EffectInstance* effect) {
RenderTask renderTask;
@ -23,4 +82,51 @@ void fx_46_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/effect_46", fx_46_appendGfx);
void fx_46_appendGfx(void* effect) {
Effect46FXData* part = ((EffectInstance*)effect)->data.unk_46;
s32 unk_00;
s32 unk_1C = part->unk_1C;
f32 unk_14 = part->unk_14;
f32 unk_18 = part->unk_18;
Matrix4f sp20;
Matrix4f sp60;
s32 i;
unk_00 = part->unk_00;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, D_09000420);
shim_guTranslateF(sp20, part->unk_08, part->unk_0C, part->unk_10);
shim_guRotateF(sp60, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
f32 (*matrix)[4] = sp60; // required to match
shim_guPositionF(sp20, part->unk_2C, 0.0f, part->unk_34, unk_14 * part->unk_14, part->unk_08, part->unk_0C, part->unk_10);
shim_guRotateF(matrix, part->unk_30, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(matrix, sp20, sp20);
if (unk_00 < 8) {
shim_guTranslateF(matrix, 3.0f - (unk_14 - unk_18) * 3.0f / unk_18, 0.0f, 0.0f);
} else {
shim_guTranslateF(matrix, 2.0f, 0.0f, 0.0f);
}
shim_guMtxCatF(matrix, sp20, sp20);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, part->unk_44, part->unk_45, part->unk_46, unk_1C);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_090003A0);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}

View File

@ -1,18 +1,153 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_09001910[];
extern Gfx D_09001A00[];
extern Gfx D_09001A20[];
Gfx* D_E00EAA50[2] = { D_09001A00, D_09001A20 };
Gfx* D_E00EAA58[2] = { D_09001910, NULL };
void fx_75_init(EffectInstance* effect);
void fx_75_update(EffectInstance* effect);
void fx_75_render(EffectInstance* effect);
void fx_75_appendGfx(void* effect);
s32 D_E00EAA50[2] = { 0x09001A00, 0x09001A20 };
EffectInstance* fx_75_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectBlueprint bp;
EffectInstance* effect;
Effect75FXData* data;
s32 numParts = 1;
s32 i;
s32 D_E00EAA58[2] = { 0x09001910, 0x00000000 };
bp.init = fx_75_init;
bp.update = fx_75_update;
bp.renderWorld = fx_75_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_75;
INCLUDE_ASM(s32, "effects/effect_75", fx_75_main);
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.unk_75 = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.unk_75 != NULL);
void fx_75_init(void) {
data->unk_00 = arg0;
data->unk_14 = 0;
if (arg5 <= 0) {
data->unk_10 = 1000;
} else {
data->unk_10 = arg5;
}
data->unk_24 = 0;
data->unk_04 = arg1;
data->unk_08 = arg2;
data->unk_0C = arg3;
data->unk_3C = arg4;
data->unk_18 = 0;
data->unk_1C = 180;
data->unk_20 = 220;
data->unk_28 = 0;
data->unk_2C = 0;
data->unk_30 = 0;
data->unk_34 = 0;
data->unk_38 = 0;
data->unk_40 = 0;
data->unk_44 = 0;
data->unk_50 = 0;
data->unk_54 = 0;
data->unk_48 = 1.0f;
data->unk_68 = 1.0f;
data->unk_4C = 0.9f;
data->unk_6C = 0.9f;
data->unk_58 = -2.0f;
data->unk_70 = -2.0f;
data->unk_5C = 1.25f;
data->unk_74 = 1.25f;
data->unk_60 = 190.0f;
data->unk_78 = 190.0f;
data->unk_64 = 220.0f;
data->unk_7C = 220.0f;
return effect;
}
INCLUDE_ASM(s32, "effects/effect_75", fx_75_update);
void fx_75_init(EffectInstance* effect) {
}
void fx_75_update(EffectInstance* effect) {
Effect75FXData* data = effect->data.unk_75;
s32 unk_14;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
data->unk_10 = 0x10;
}
if (data->unk_10 < 1000) {
data->unk_10--;
}
data->unk_14++;
if (data->unk_14 > 108000) {
data->unk_14 = 0;
}
if (data->unk_10 < 0) {
shim_remove_effect(effect);
return;
}
unk_14 = data->unk_14;
if (data->unk_10 < 16) {
data->unk_24 = data->unk_10 * 16;
}
if (unk_14 < 16) {
data->unk_24 = unk_14 * 16 + 15;
}
data->unk_48 += (data->unk_68 - data->unk_48) * 0.1;
data->unk_4C += (data->unk_6C - data->unk_4C) * 0.1;
data->unk_58 += (data->unk_70 - data->unk_58) * 0.1;
data->unk_5C += (data->unk_74 - data->unk_5C) * 0.1;
data->unk_60 += (data->unk_78 - data->unk_60) * 0.1;
data->unk_64 += (data->unk_7C - data->unk_64) * 0.1;
data->unk_40 += 2.0f * data->unk_48;
data->unk_44 += 2.0f * data->unk_4C;
data->unk_50 += 2.0f * data->unk_58;
data->unk_54 += 2.0f * data->unk_5C;
if (data->unk_40 < 0.0f) {
data->unk_40 += 256.0f;
}
if (data->unk_44 < 0.0f) {
data->unk_44 += 256.0f;
}
if (data->unk_50 < 0.0f) {
data->unk_50 += 256.0f;
}
if (data->unk_54 < 0.0f) {
data->unk_54 += 256.0f;
}
if (data->unk_40 > 256.0f) {
data->unk_40 -= 256.0f;
}
if (data->unk_44 > 256.0f) {
data->unk_44 -= 256.0f;
}
if (data->unk_50 > 256.0f) {
data->unk_50 -= 256.0f;
}
if (data->unk_54 > 256.0f) {
data->unk_54 -= 256.0f;
}
data->unk_34 = data->unk_60 + (shim_sin_deg(unk_14 * 20) * (data->unk_64 - data->unk_60) + (data->unk_64 - data->unk_60)) * 0.5;
}
void fx_75_render(EffectInstance* effect) {
Effect75FXData* data = effect->data.unk_75;
@ -50,4 +185,36 @@ void fx_75_render(EffectInstance* effect) {
void func_E00EA664(void) {
}
INCLUDE_ASM(s32, "effects/effect_75", fx_75_appendGfx);
void fx_75_appendGfx(void* effect) {
Effect75FXData* data = ((EffectInstance*)effect)->data.unk_75;
Camera* camera = &gCameras[gCurrentCameraID];
s32 unk_00 = data->unk_00;
s32 temp_40 = data->unk_40 * 4.0f;
s32 temp_44 = data->unk_44 * 4.0f;
s32 temp_50 = data->unk_50 * 4.0f;
s32 temp_54 = data->unk_54 * 4.0f;
Matrix4f sp18;
Matrix4f sp58;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guTranslateF(sp18, data->unk_04, data->unk_08, data->unk_0C);
shim_guScaleF(sp58, data->unk_3C, data->unk_3C, data->unk_3C);
shim_guMtxCatF(sp58, sp18, sp18);
if (unk_00 == 1) {
shim_guRotateF(sp58, 180.0f, 0.0f, 0.0f, 1.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);
gSPMatrix(gMasterGfxPos++, camera->unkMatrix, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, data->unk_18, data->unk_1C, data->unk_20, data->unk_34);
gDPSetEnvColor(gMasterGfxPos++, data->unk_28, data->unk_2C, data->unk_30, data->unk_24 * data->unk_38 / 255);
gSPDisplayList(gMasterGfxPos++, D_E00EAA58[0]);
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, temp_40, temp_44, temp_40 + 252, temp_44 + 252);
gDPSetTileSize(gMasterGfxPos++, 1, temp_50, temp_54, temp_50 + 252, temp_54 + 252);
gSPDisplayList(gMasterGfxPos++, D_E00EAA50[unk_00]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}

View File

@ -1,6 +1,8 @@
#include "common.h"
#include "effects_internal.h"
extern f32 D_E00E0A48[];
void embers_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/embers", embers_main);
@ -8,7 +10,82 @@ INCLUDE_ASM(s32, "effects/embers", embers_main);
void embers_init(void) {
}
INCLUDE_ASM(s32, "effects/embers", embers_update);
void embers_update(EffectInstance* effect) {
EmbersFXData* part = effect->data.embers;
f32 unk_10;
f32 unk_14;
s32 unk_1C;
f32 unk_68;
f32 unk_6C;
s32 i;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
part->unk_18 = 0x10;
}
if (part->unk_18 < 1000) {
part->unk_18--;
}
part->unk_1C++;
if (part->unk_1C > 324000) {
part->unk_1C = 256;
}
if (part->unk_18 < 0) {
shim_remove_effect(effect);
return;
}
unk_1C = part->unk_1C;
if (part->unk_18 < 16) {
part->unk_2C = part->unk_18 * 16;
}
if (unk_1C < 16) {
part->unk_2C = unk_1C * 16 + 15;
}
unk_10 = part->unk_10;
unk_14 = part->unk_14;
unk_68 = part->unk_68;
unk_6C = part->unk_6C;
part++;
for (i = 1; i < effect->numParts; i++, part++) {
part->unk_64++;
if (part->unk_64 >= 30) {
part->unk_64 = 0;
}
if (part->unk_64 >= 0) {
if (part->unk_64 == 0) {
part->unk_04 = shim_rand_int(unk_10) - unk_10 * 0.5;
part->unk_08 = shim_rand_int(unk_14);
part->unk_0C = 0.0f;
part->unk_44 = (f32) (shim_rand_int(20) - 10) * 0.05;
part->unk_48 = (shim_rand_int(40) - 1) * unk_68 * 0.05;
part->unk_4C = 0.0f;
part->unk_50 = (f32) (shim_rand_int(20) - 10) * 0.05;
part->unk_54 = (shim_rand_int(30) - 1) * unk_6C * 0.05;
part->unk_58 = 0.0f;
part->unk_5C = shim_rand_int(15);
part->unk_60 = shim_rand_int(15);
}
part->unk_40 = D_E00E0A48[part->unk_64];
part->unk_04 += part->unk_44;
part->unk_08 += part->unk_48;
part->unk_0C += part->unk_4C;
part->unk_5C += 0.1;
part->unk_60 += 0.3;
part->unk_44 += (part->unk_50 - part->unk_44) * 0.04;
part->unk_48 += (part->unk_54 - part->unk_48) * 0.04;
part->unk_4C += (part->unk_58 - part->unk_4C) * 0.04;
}
}
}
void embers_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -1,179 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel drop_leaves_appendGfx
/* 33D31C E002852C 27BDFEF0 */ addiu $sp, $sp, -0x110
/* 33D320 E0028530 AFB700F4 */ sw $s7, 0xf4($sp)
/* 33D324 E0028534 0080B82D */ daddu $s7, $a0, $zero
/* 33D328 E0028538 3C02DB06 */ lui $v0, 0xdb06
/* 33D32C E002853C 34420024 */ ori $v0, $v0, 0x24
/* 33D330 E0028540 3C061464 */ lui $a2, 0x1464
/* 33D334 E0028544 34C61400 */ ori $a2, $a2, 0x1400
/* 33D338 E0028548 AFB300E4 */ sw $s3, 0xe4($sp)
/* 33D33C E002854C 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 33D340 E0028550 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 33D344 E0028554 AFBF00F8 */ sw $ra, 0xf8($sp)
/* 33D348 E0028558 AFB600F0 */ sw $s6, 0xf0($sp)
/* 33D34C E002855C AFB500EC */ sw $s5, 0xec($sp)
/* 33D350 E0028560 AFB400E8 */ sw $s4, 0xe8($sp)
/* 33D354 E0028564 AFB200E0 */ sw $s2, 0xe0($sp)
/* 33D358 E0028568 AFB100DC */ sw $s1, 0xdc($sp)
/* 33D35C E002856C AFB000D8 */ sw $s0, 0xd8($sp)
/* 33D360 E0028570 F7B60108 */ sdc1 $f22, 0x108($sp)
/* 33D364 E0028574 F7B40100 */ sdc1 $f20, 0x100($sp)
/* 33D368 E0028578 8E650000 */ lw $a1, ($s3)
/* 33D36C E002857C 8EF0000C */ lw $s0, 0xc($s7)
/* 33D370 E0028580 00A0202D */ daddu $a0, $a1, $zero
/* 33D374 E0028584 24A50008 */ addiu $a1, $a1, 8
/* 33D378 E0028588 AE650000 */ sw $a1, ($s3)
/* 33D37C E002858C AC820000 */ sw $v0, ($a0)
/* 33D380 E0028590 24A20008 */ addiu $v0, $a1, 8
/* 33D384 E0028594 AE620000 */ sw $v0, ($s3)
/* 33D388 E0028598 8EE30010 */ lw $v1, 0x10($s7)
/* 33D38C E002859C 24A20010 */ addiu $v0, $a1, 0x10
/* 33D390 E00285A0 AE620000 */ sw $v0, ($s3)
/* 33D394 E00285A4 8C62001C */ lw $v0, 0x1c($v1)
/* 33D398 E00285A8 3C038000 */ lui $v1, 0x8000
/* 33D39C E00285AC 00431021 */ addu $v0, $v0, $v1
/* 33D3A0 E00285B0 AC820004 */ sw $v0, 4($a0)
/* 33D3A4 E00285B4 3C02DE00 */ lui $v0, 0xde00
/* 33D3A8 E00285B8 ACA20000 */ sw $v0, ($a1)
/* 33D3AC E00285BC 3C020900 */ lui $v0, 0x900
/* 33D3B0 E00285C0 24421180 */ addiu $v0, $v0, 0x1180
/* 33D3B4 E00285C4 ACA20004 */ sw $v0, 4($a1)
/* 33D3B8 E00285C8 3C02FA00 */ lui $v0, 0xfa00
/* 33D3BC E00285CC ACA20008 */ sw $v0, 8($a1)
/* 33D3C0 E00285D0 92020027 */ lbu $v0, 0x27($s0)
/* 33D3C4 E00285D4 24120001 */ addiu $s2, $zero, 1
/* 33D3C8 E00285D8 00461025 */ or $v0, $v0, $a2
/* 33D3CC E00285DC ACA2000C */ sw $v0, 0xc($a1)
/* 33D3D0 E00285E0 8E050004 */ lw $a1, 4($s0)
/* 33D3D4 E00285E4 8E060008 */ lw $a2, 8($s0)
/* 33D3D8 E00285E8 8E07000C */ lw $a3, 0xc($s0)
/* 33D3DC E00285EC 0C080108 */ jal shim_guTranslateF
/* 33D3E0 E00285F0 27A40018 */ addiu $a0, $sp, 0x18
/* 33D3E4 E00285F4 27B10058 */ addiu $s1, $sp, 0x58
/* 33D3E8 E00285F8 4480A000 */ mtc1 $zero, $f20
/* 33D3EC E00285FC 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 33D3F0 E0028600 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 33D3F4 E0028604 3C013F80 */ lui $at, 0x3f80
/* 33D3F8 E0028608 4481B000 */ mtc1 $at, $f22
/* 33D3FC E002860C 00031080 */ sll $v0, $v1, 2
/* 33D400 E0028610 00431021 */ addu $v0, $v0, $v1
/* 33D404 E0028614 00021080 */ sll $v0, $v0, 2
/* 33D408 E0028618 00431023 */ subu $v0, $v0, $v1
/* 33D40C E002861C 000218C0 */ sll $v1, $v0, 3
/* 33D410 E0028620 00431021 */ addu $v0, $v0, $v1
/* 33D414 E0028624 000210C0 */ sll $v0, $v0, 3
/* 33D418 E0028628 4406A000 */ mfc1 $a2, $f20
/* 33D41C E002862C 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 33D420 E0028630 00220821 */ addu $at, $at, $v0
/* 33D424 E0028634 C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 33D428 E0028638 4407B000 */ mfc1 $a3, $f22
/* 33D42C E002863C 46000007 */ neg.s $f0, $f0
/* 33D430 E0028640 44050000 */ mfc1 $a1, $f0
/* 33D434 E0028644 0220202D */ daddu $a0, $s1, $zero
/* 33D438 E0028648 0C080104 */ jal shim_guRotateF
/* 33D43C E002864C E7B40010 */ swc1 $f20, 0x10($sp)
/* 33D440 E0028650 0220202D */ daddu $a0, $s1, $zero
/* 33D444 E0028654 27A50018 */ addiu $a1, $sp, 0x18
/* 33D448 E0028658 0C080114 */ jal shim_guMtxCatF
/* 33D44C E002865C 27A60098 */ addiu $a2, $sp, 0x98
/* 33D450 E0028660 8EE20008 */ lw $v0, 8($s7)
/* 33D454 E0028664 0242102A */ slt $v0, $s2, $v0
/* 33D458 E0028668 1040004E */ beqz $v0, .LE00287A4
/* 33D45C E002866C 26100030 */ addiu $s0, $s0, 0x30
/* 33D460 E0028670 3C16800A */ lui $s6, %hi(gDisplayContext)
/* 33D464 E0028674 26D6A674 */ addiu $s6, $s6, %lo(gDisplayContext)
/* 33D468 E0028678 3C158007 */ lui $s5, %hi(gMatrixListPos)
/* 33D46C E002867C 26B541F0 */ addiu $s5, $s5, %lo(gMatrixListPos)
/* 33D470 E0028680 3C140001 */ lui $s4, 1
/* 33D474 E0028684 36941630 */ ori $s4, $s4, 0x1630
/* 33D478 E0028688 26100020 */ addiu $s0, $s0, 0x20
.LE002868C:
/* 33D47C E002868C 0220202D */ daddu $a0, $s1, $zero
/* 33D480 E0028690 8E05FFE4 */ lw $a1, -0x1c($s0)
/* 33D484 E0028694 8E06FFE8 */ lw $a2, -0x18($s0)
/* 33D488 E0028698 8E07FFEC */ lw $a3, -0x14($s0)
/* 33D48C E002869C 0C080108 */ jal shim_guTranslateF
/* 33D490 E00286A0 26520001 */ addiu $s2, $s2, 1
/* 33D494 E00286A4 0220202D */ daddu $a0, $s1, $zero
/* 33D498 E00286A8 27A50098 */ addiu $a1, $sp, 0x98
/* 33D49C E00286AC 0C080114 */ jal shim_guMtxCatF
/* 33D4A0 E00286B0 27A60018 */ addiu $a2, $sp, 0x18
/* 33D4A4 E00286B4 E7B60010 */ swc1 $f22, 0x10($sp)
/* 33D4A8 E00286B8 8E05FFF8 */ lw $a1, -8($s0)
/* 33D4AC E00286BC 4406A000 */ mfc1 $a2, $f20
/* 33D4B0 E00286C0 4407A000 */ mfc1 $a3, $f20
/* 33D4B4 E00286C4 0C080104 */ jal shim_guRotateF
/* 33D4B8 E00286C8 0220202D */ daddu $a0, $s1, $zero
/* 33D4BC E00286CC 0220202D */ daddu $a0, $s1, $zero
/* 33D4C0 E00286D0 27A50018 */ addiu $a1, $sp, 0x18
/* 33D4C4 E00286D4 0C080114 */ jal shim_guMtxCatF
/* 33D4C8 E00286D8 00A0302D */ daddu $a2, $a1, $zero
/* 33D4CC E00286DC 0220202D */ daddu $a0, $s1, $zero
/* 33D4D0 E00286E0 E7B40010 */ swc1 $f20, 0x10($sp)
/* 33D4D4 E00286E4 8E050000 */ lw $a1, ($s0)
/* 33D4D8 E00286E8 4406A000 */ mfc1 $a2, $f20
/* 33D4DC E00286EC 4407B000 */ mfc1 $a3, $f22
/* 33D4E0 E00286F0 0C080104 */ jal shim_guRotateF
/* 33D4E4 E00286F4 26100030 */ addiu $s0, $s0, 0x30
/* 33D4E8 E00286F8 0220202D */ daddu $a0, $s1, $zero
/* 33D4EC E00286FC 27A50018 */ addiu $a1, $sp, 0x18
/* 33D4F0 E0028700 0C080114 */ jal shim_guMtxCatF
/* 33D4F4 E0028704 00A0302D */ daddu $a2, $a1, $zero
/* 33D4F8 E0028708 27A40018 */ addiu $a0, $sp, 0x18
/* 33D4FC E002870C 96A50000 */ lhu $a1, ($s5)
/* 33D500 E0028710 8EC20000 */ lw $v0, ($s6)
/* 33D504 E0028714 00052980 */ sll $a1, $a1, 6
/* 33D508 E0028718 00B42821 */ addu $a1, $a1, $s4
/* 33D50C E002871C 0C080118 */ jal shim_guMtxF2L
/* 33D510 E0028720 00452821 */ addu $a1, $v0, $a1
/* 33D514 E0028724 3C06D838 */ lui $a2, 0xd838
/* 33D518 E0028728 8E640000 */ lw $a0, ($s3)
/* 33D51C E002872C 34C60002 */ ori $a2, $a2, 2
/* 33D520 E0028730 0080282D */ daddu $a1, $a0, $zero
/* 33D524 E0028734 24840008 */ addiu $a0, $a0, 8
/* 33D528 E0028738 AE640000 */ sw $a0, ($s3)
/* 33D52C E002873C 96A20000 */ lhu $v0, ($s5)
/* 33D530 E0028740 3C03DA38 */ lui $v1, 0xda38
/* 33D534 E0028744 ACA30000 */ sw $v1, ($a1)
/* 33D538 E0028748 24430001 */ addiu $v1, $v0, 1
/* 33D53C E002874C 3042FFFF */ andi $v0, $v0, 0xffff
/* 33D540 E0028750 00021180 */ sll $v0, $v0, 6
/* 33D544 E0028754 A6A30000 */ sh $v1, ($s5)
/* 33D548 E0028758 8EC30000 */ lw $v1, ($s6)
/* 33D54C E002875C 00541021 */ addu $v0, $v0, $s4
/* 33D550 E0028760 00621821 */ addu $v1, $v1, $v0
/* 33D554 E0028764 24820008 */ addiu $v0, $a0, 8
/* 33D558 E0028768 ACA30004 */ sw $v1, 4($a1)
/* 33D55C E002876C AE620000 */ sw $v0, ($s3)
/* 33D560 E0028770 3C02DE00 */ lui $v0, 0xde00
/* 33D564 E0028774 AC820000 */ sw $v0, ($a0)
/* 33D568 E0028778 3C020900 */ lui $v0, 0x900
/* 33D56C E002877C 24421230 */ addiu $v0, $v0, 0x1230
/* 33D570 E0028780 AC820004 */ sw $v0, 4($a0)
/* 33D574 E0028784 24020040 */ addiu $v0, $zero, 0x40
/* 33D578 E0028788 AC860008 */ sw $a2, 8($a0)
/* 33D57C E002878C AC82000C */ sw $v0, 0xc($a0)
/* 33D580 E0028790 8EE20008 */ lw $v0, 8($s7)
/* 33D584 E0028794 24840010 */ addiu $a0, $a0, 0x10
/* 33D588 E0028798 0242102A */ slt $v0, $s2, $v0
/* 33D58C E002879C 1440FFBB */ bnez $v0, .LE002868C
/* 33D590 E00287A0 AE640000 */ sw $a0, ($s3)
.LE00287A4:
/* 33D594 E00287A4 8FBF00F8 */ lw $ra, 0xf8($sp)
/* 33D598 E00287A8 8FB700F4 */ lw $s7, 0xf4($sp)
/* 33D59C E00287AC 8FB600F0 */ lw $s6, 0xf0($sp)
/* 33D5A0 E00287B0 8FB500EC */ lw $s5, 0xec($sp)
/* 33D5A4 E00287B4 8FB400E8 */ lw $s4, 0xe8($sp)
/* 33D5A8 E00287B8 8FB300E4 */ lw $s3, 0xe4($sp)
/* 33D5AC E00287BC 8FB200E0 */ lw $s2, 0xe0($sp)
/* 33D5B0 E00287C0 8FB100DC */ lw $s1, 0xdc($sp)
/* 33D5B4 E00287C4 8FB000D8 */ lw $s0, 0xd8($sp)
/* 33D5B8 E00287C8 D7B60108 */ ldc1 $f22, 0x108($sp)
/* 33D5BC E00287CC D7B40100 */ ldc1 $f20, 0x100($sp)
/* 33D5C0 E00287D0 03E00008 */ jr $ra
/* 33D5C4 E00287D4 27BD0110 */ addiu $sp, $sp, 0x110
/* 33D5C8 E00287D8 00000000 */ nop
/* 33D5CC E00287DC 00000000 */ nop

View File

@ -1,154 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel drop_leaves_main
/* 33CDF0 E0028000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 33CDF4 E0028004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 33CDF8 E0028008 4485A000 */ mtc1 $a1, $f20
/* 33CDFC E002800C AFB30034 */ sw $s3, 0x34($sp)
/* 33CE00 E0028010 0080982D */ daddu $s3, $a0, $zero
/* 33CE04 E0028014 F7B60048 */ sdc1 $f22, 0x48($sp)
/* 33CE08 E0028018 4486B000 */ mtc1 $a2, $f22
/* 33CE0C E002801C 27A40010 */ addiu $a0, $sp, 0x10
/* 33CE10 E0028020 F7B80050 */ sdc1 $f24, 0x50($sp)
/* 33CE14 E0028024 4487C000 */ mtc1 $a3, $f24
/* 33CE18 E0028028 3C02E003 */ lui $v0, %hi(drop_leaves_init)
/* 33CE1C E002802C 24428240 */ addiu $v0, $v0, %lo(drop_leaves_init)
/* 33CE20 E0028030 AFA20018 */ sw $v0, 0x18($sp)
/* 33CE24 E0028034 3C02E003 */ lui $v0, %hi(drop_leaves_update)
/* 33CE28 E0028038 24428248 */ addiu $v0, $v0, %lo(drop_leaves_update)
/* 33CE2C E002803C AFA2001C */ sw $v0, 0x1c($sp)
/* 33CE30 E0028040 3C02E003 */ lui $v0, %hi(drop_leaves_render)
/* 33CE34 E0028044 244284E8 */ addiu $v0, $v0, %lo(drop_leaves_render)
/* 33CE38 E0028048 AFA20020 */ sw $v0, 0x20($sp)
/* 33CE3C E002804C 24020014 */ addiu $v0, $zero, 0x14
/* 33CE40 E0028050 AFBF0038 */ sw $ra, 0x38($sp)
/* 33CE44 E0028054 AFB20030 */ sw $s2, 0x30($sp)
/* 33CE48 E0028058 AFB1002C */ sw $s1, 0x2c($sp)
/* 33CE4C E002805C AFB00028 */ sw $s0, 0x28($sp)
/* 33CE50 E0028060 AFA00010 */ sw $zero, 0x10($sp)
/* 33CE54 E0028064 AFA00024 */ sw $zero, 0x24($sp)
/* 33CE58 E0028068 0C080124 */ jal shim_create_effect_instance
/* 33CE5C E002806C AFA20014 */ sw $v0, 0x14($sp)
/* 33CE60 E0028070 240400F0 */ addiu $a0, $zero, 0xf0
/* 33CE64 E0028074 24120005 */ addiu $s2, $zero, 5
/* 33CE68 E0028078 0040802D */ daddu $s0, $v0, $zero
/* 33CE6C E002807C 0C08012C */ jal shim_general_heap_malloc
/* 33CE70 E0028080 AE120008 */ sw $s2, 8($s0)
/* 33CE74 E0028084 0040182D */ daddu $v1, $v0, $zero
/* 33CE78 E0028088 14600003 */ bnez $v1, .LE0028098
/* 33CE7C E002808C AE03000C */ sw $v1, 0xc($s0)
.LE0028090:
/* 33CE80 E0028090 0800A024 */ j .LE0028090
/* 33CE84 E0028094 00000000 */ nop
.LE0028098:
/* 33CE88 E0028098 AC730000 */ sw $s3, ($v1)
/* 33CE8C E002809C E4740004 */ swc1 $f20, 4($v1)
/* 33CE90 E00280A0 E4760008 */ swc1 $f22, 8($v1)
/* 33CE94 E00280A4 E478000C */ swc1 $f24, 0xc($v1)
/* 33CE98 E00280A8 8FA20068 */ lw $v0, 0x68($sp)
/* 33CE9C E00280AC 24110001 */ addiu $s1, $zero, 1
/* 33CEA0 E00280B0 AC60002C */ sw $zero, 0x2c($v1)
/* 33CEA4 E00280B4 AC600024 */ sw $zero, 0x24($v1)
/* 33CEA8 E00280B8 AC620028 */ sw $v0, 0x28($v1)
/* 33CEAC E00280BC 0232102A */ slt $v0, $s1, $s2
/* 33CEB0 E00280C0 10400055 */ beqz $v0, .LE0028218
/* 33CEB4 E00280C4 24630030 */ addiu $v1, $v1, 0x30
/* 33CEB8 E00280C8 3C014120 */ lui $at, 0x4120
/* 33CEBC E00280CC 4481A000 */ mtc1 $at, $f20
/* 33CEC0 E00280D0 24700014 */ addiu $s0, $v1, 0x14
.LE00280D4:
/* 33CEC4 E00280D4 16600026 */ bnez $s3, .LE0028170
/* 33CEC8 E00280D8 00000000 */ nop
/* 33CECC E00280DC 0C080000 */ jal func_E0200000
/* 33CED0 E00280E0 24040032 */ addiu $a0, $zero, 0x32
/* 33CED4 E00280E4 24040032 */ addiu $a0, $zero, 0x32
/* 33CED8 E00280E8 2442FFE7 */ addiu $v0, $v0, -0x19
/* 33CEDC E00280EC 44820000 */ mtc1 $v0, $f0
/* 33CEE0 E00280F0 00000000 */ nop
/* 33CEE4 E00280F4 46800020 */ cvt.s.w $f0, $f0
/* 33CEE8 E00280F8 0C080000 */ jal func_E0200000
/* 33CEEC E00280FC E600FFF0 */ swc1 $f0, -0x10($s0)
/* 33CEF0 E0028100 24040168 */ addiu $a0, $zero, 0x168
/* 33CEF4 E0028104 2442FFE7 */ addiu $v0, $v0, -0x19
/* 33CEF8 E0028108 44820000 */ mtc1 $v0, $f0
/* 33CEFC E002810C 00000000 */ nop
/* 33CF00 E0028110 46800020 */ cvt.s.w $f0, $f0
/* 33CF04 E0028114 E600FFF4 */ swc1 $f0, -0xc($s0)
/* 33CF08 E0028118 0C080000 */ jal func_E0200000
/* 33CF0C E002811C AE00FFF8 */ sw $zero, -8($s0)
/* 33CF10 E0028120 24040168 */ addiu $a0, $zero, 0x168
/* 33CF14 E0028124 44820000 */ mtc1 $v0, $f0
/* 33CF18 E0028128 00000000 */ nop
/* 33CF1C E002812C 46800020 */ cvt.s.w $f0, $f0
/* 33CF20 E0028130 0C080000 */ jal func_E0200000
/* 33CF24 E0028134 E6000004 */ swc1 $f0, 4($s0)
/* 33CF28 E0028138 24040064 */ addiu $a0, $zero, 0x64
/* 33CF2C E002813C 44820000 */ mtc1 $v0, $f0
/* 33CF30 E0028140 00000000 */ nop
/* 33CF34 E0028144 46800020 */ cvt.s.w $f0, $f0
/* 33CF38 E0028148 0C080000 */ jal func_E0200000
/* 33CF3C E002814C E600000C */ swc1 $f0, 0xc($s0)
/* 33CF40 E0028150 44820000 */ mtc1 $v0, $f0
/* 33CF44 E0028154 00000000 */ nop
/* 33CF48 E0028158 46800020 */ cvt.s.w $f0, $f0
/* 33CF4C E002815C 46140003 */ div.s $f0, $f0, $f20
/* 33CF50 E0028160 E6000008 */ swc1 $f0, 8($s0)
/* 33CF54 E0028164 AE00FFFC */ sw $zero, -4($s0)
/* 33CF58 E0028168 0800A082 */ j .LE0028208
/* 33CF5C E002816C AE000000 */ sw $zero, ($s0)
.LE0028170:
/* 33CF60 E0028170 0C080000 */ jal func_E0200000
/* 33CF64 E0028174 2404000A */ addiu $a0, $zero, 0xa
/* 33CF68 E0028178 2404000A */ addiu $a0, $zero, 0xa
/* 33CF6C E002817C 2442FFFB */ addiu $v0, $v0, -5
/* 33CF70 E0028180 44820000 */ mtc1 $v0, $f0
/* 33CF74 E0028184 00000000 */ nop
/* 33CF78 E0028188 46800020 */ cvt.s.w $f0, $f0
/* 33CF7C E002818C 0C080000 */ jal func_E0200000
/* 33CF80 E0028190 E600FFF0 */ swc1 $f0, -0x10($s0)
/* 33CF84 E0028194 24040168 */ addiu $a0, $zero, 0x168
/* 33CF88 E0028198 24420005 */ addiu $v0, $v0, 5
/* 33CF8C E002819C 44820000 */ mtc1 $v0, $f0
/* 33CF90 E00281A0 00000000 */ nop
/* 33CF94 E00281A4 46800020 */ cvt.s.w $f0, $f0
/* 33CF98 E00281A8 E600FFF4 */ swc1 $f0, -0xc($s0)
/* 33CF9C E00281AC 0C080000 */ jal func_E0200000
/* 33CFA0 E00281B0 E614FFF8 */ swc1 $f20, -8($s0)
/* 33CFA4 E00281B4 24040168 */ addiu $a0, $zero, 0x168
/* 33CFA8 E00281B8 44820000 */ mtc1 $v0, $f0
/* 33CFAC E00281BC 00000000 */ nop
/* 33CFB0 E00281C0 46800020 */ cvt.s.w $f0, $f0
/* 33CFB4 E00281C4 0C080000 */ jal func_E0200000
/* 33CFB8 E00281C8 E6000004 */ swc1 $f0, 4($s0)
/* 33CFBC E00281CC 24040064 */ addiu $a0, $zero, 0x64
/* 33CFC0 E00281D0 44820000 */ mtc1 $v0, $f0
/* 33CFC4 E00281D4 00000000 */ nop
/* 33CFC8 E00281D8 46800020 */ cvt.s.w $f0, $f0
/* 33CFCC E00281DC 0C080000 */ jal func_E0200000
/* 33CFD0 E00281E0 E600000C */ swc1 $f0, 0xc($s0)
/* 33CFD4 E00281E4 44820000 */ mtc1 $v0, $f0
/* 33CFD8 E00281E8 00000000 */ nop
/* 33CFDC E00281EC 46800020 */ cvt.s.w $f0, $f0
/* 33CFE0 E00281F0 3C014000 */ lui $at, 0x4000
/* 33CFE4 E00281F4 44811000 */ mtc1 $at, $f2
/* 33CFE8 E00281F8 46140003 */ div.s $f0, $f0, $f20
/* 33CFEC E00281FC E6000008 */ swc1 $f0, 8($s0)
/* 33CFF0 E0028200 AE00FFFC */ sw $zero, -4($s0)
/* 33CFF4 E0028204 E6020000 */ swc1 $f2, ($s0)
.LE0028208:
/* 33CFF8 E0028208 26310001 */ addiu $s1, $s1, 1
/* 33CFFC E002820C 0232102A */ slt $v0, $s1, $s2
/* 33D000 E0028210 1440FFB0 */ bnez $v0, .LE00280D4
/* 33D004 E0028214 26100030 */ addiu $s0, $s0, 0x30
.LE0028218:
/* 33D008 E0028218 8FBF0038 */ lw $ra, 0x38($sp)
/* 33D00C E002821C 8FB30034 */ lw $s3, 0x34($sp)
/* 33D010 E0028220 8FB20030 */ lw $s2, 0x30($sp)
/* 33D014 E0028224 8FB1002C */ lw $s1, 0x2c($sp)
/* 33D018 E0028228 8FB00028 */ lw $s0, 0x28($sp)
/* 33D01C E002822C D7B80050 */ ldc1 $f24, 0x50($sp)
/* 33D020 E0028230 D7B60048 */ ldc1 $f22, 0x48($sp)
/* 33D024 E0028234 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 33D028 E0028238 03E00008 */ jr $ra
/* 33D02C E002823C 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,204 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00287E0
.double 0.3
dlabel D_E00287E8
.double 0.8
dlabel D_E00287F0
.double 0.2
dlabel D_E00287F8
.double 0.94
dlabel D_E0028800
.double 0.05
dlabel D_E0028808
.double 0.95
dlabel D_E0028810
.double 0.92, 0.0
.section .text
glabel drop_leaves_update
/* 33D038 E0028248 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 33D03C E002824C AFB3001C */ sw $s3, 0x1c($sp)
/* 33D040 E0028250 0080982D */ daddu $s3, $a0, $zero
/* 33D044 E0028254 AFBF0024 */ sw $ra, 0x24($sp)
/* 33D048 E0028258 AFB40020 */ sw $s4, 0x20($sp)
/* 33D04C E002825C AFB20018 */ sw $s2, 0x18($sp)
/* 33D050 E0028260 AFB10014 */ sw $s1, 0x14($sp)
/* 33D054 E0028264 AFB00010 */ sw $s0, 0x10($sp)
/* 33D058 E0028268 F7B60030 */ sdc1 $f22, 0x30($sp)
/* 33D05C E002826C F7B40028 */ sdc1 $f20, 0x28($sp)
/* 33D060 E0028270 8E64000C */ lw $a0, 0xc($s3)
/* 33D064 E0028274 8C820028 */ lw $v0, 0x28($a0)
/* 33D068 E0028278 8C85002C */ lw $a1, 0x2c($a0)
/* 33D06C E002827C 2442FFFF */ addiu $v0, $v0, -1
/* 33D070 E0028280 AC820028 */ sw $v0, 0x28($a0)
/* 33D074 E0028284 0040302D */ daddu $a2, $v0, $zero
/* 33D078 E0028288 24A20001 */ addiu $v0, $a1, 1
/* 33D07C E002828C 04C10005 */ bgez $a2, .LE00282A4
/* 33D080 E0028290 AC82002C */ sw $v0, 0x2c($a0)
/* 33D084 E0028294 0C080128 */ jal shim_remove_effect
/* 33D088 E0028298 0260202D */ daddu $a0, $s3, $zero
/* 33D08C E002829C 0800A130 */ j .LE00284C0
/* 33D090 E00282A0 00000000 */ nop
.LE00282A4:
/* 33D094 E00282A4 8C940000 */ lw $s4, ($a0)
/* 33D098 E00282A8 2842000A */ slti $v0, $v0, 0xa
/* 33D09C E00282AC 10400010 */ beqz $v0, .LE00282F0
/* 33D0A0 E00282B0 240200FF */ addiu $v0, $zero, 0xff
/* 33D0A4 E00282B4 8C830024 */ lw $v1, 0x24($a0)
/* 33D0A8 E00282B8 3C01E003 */ lui $at, %hi(D_E00287E0)
/* 33D0AC E00282BC D42087E0 */ ldc1 $f0, %lo(D_E00287E0)($at)
/* 33D0B0 E00282C0 00431023 */ subu $v0, $v0, $v1
/* 33D0B4 E00282C4 44821000 */ mtc1 $v0, $f2
/* 33D0B8 E00282C8 00000000 */ nop
/* 33D0BC E00282CC 468010A1 */ cvt.d.w $f2, $f2
/* 33D0C0 E00282D0 46201082 */ mul.d $f2, $f2, $f0
/* 33D0C4 E00282D4 00000000 */ nop
/* 33D0C8 E00282D8 44830000 */ mtc1 $v1, $f0
/* 33D0CC E00282DC 00000000 */ nop
/* 33D0D0 E00282E0 46800021 */ cvt.d.w $f0, $f0
/* 33D0D4 E00282E4 46220000 */ add.d $f0, $f0, $f2
/* 33D0D8 E00282E8 4620020D */ trunc.w.d $f8, $f0
/* 33D0DC E00282EC E4880024 */ swc1 $f8, 0x24($a0)
.LE00282F0:
/* 33D0E0 E00282F0 28C2000A */ slti $v0, $a2, 0xa
/* 33D0E4 E00282F4 10400009 */ beqz $v0, .LE002831C
/* 33D0E8 E00282F8 00000000 */ nop
/* 33D0EC E00282FC 3C01E003 */ lui $at, %hi(D_E00287E8)
/* 33D0F0 E0028300 D42287E8 */ ldc1 $f2, %lo(D_E00287E8)($at)
/* 33D0F4 E0028304 C4800024 */ lwc1 $f0, 0x24($a0)
/* 33D0F8 E0028308 46800021 */ cvt.d.w $f0, $f0
/* 33D0FC E002830C 46220002 */ mul.d $f0, $f0, $f2
/* 33D100 E0028310 00000000 */ nop
/* 33D104 E0028314 4620020D */ trunc.w.d $f8, $f0
/* 33D108 E0028318 E4880024 */ swc1 $f8, 0x24($a0)
.LE002831C:
/* 33D10C E002831C 8E620008 */ lw $v0, 8($s3)
/* 33D110 E0028320 24110001 */ addiu $s1, $zero, 1
/* 33D114 E0028324 0222102A */ slt $v0, $s1, $v0
/* 33D118 E0028328 10400065 */ beqz $v0, .LE00284C0
/* 33D11C E002832C 24840030 */ addiu $a0, $a0, 0x30
/* 33D120 E0028330 24900008 */ addiu $s0, $a0, 8
/* 33D124 E0028334 24B20015 */ addiu $s2, $a1, 0x15
/* 33D128 E0028338 3C01BD4C */ lui $at, 0xbd4c
/* 33D12C E002833C 3421CCCD */ ori $at, $at, 0xcccd
/* 33D130 E0028340 4481B000 */ mtc1 $at, $f22
/* 33D134 E0028344 3C014120 */ lui $at, 0x4120
/* 33D138 E0028348 4481A000 */ mtc1 $at, $f20
.LE002834C:
/* 33D13C E002834C C60C0010 */ lwc1 $f12, 0x10($s0)
/* 33D140 E0028350 0C080140 */ jal shim_sin_deg
/* 33D144 E0028354 460C6300 */ add.s $f12, $f12, $f12
/* 33D148 E0028358 3C01E003 */ lui $at, %hi(D_E00287F0)
/* 33D14C E002835C D42287F0 */ ldc1 $f2, %lo(D_E00287F0)($at)
/* 33D150 E0028360 46000021 */ cvt.d.s $f0, $f0
/* 33D154 E0028364 46220002 */ mul.d $f0, $f0, $f2
/* 33D158 E0028368 00000000 */ nop
/* 33D15C E002836C C602000C */ lwc1 $f2, 0xc($s0)
/* 33D160 E0028370 46161080 */ add.s $f2, $f2, $f22
/* 33D164 E0028374 C6040008 */ lwc1 $f4, 8($s0)
/* 33D168 E0028378 46200020 */ cvt.s.d $f0, $f0
/* 33D16C E002837C 46002000 */ add.s $f0, $f4, $f0
/* 33D170 E0028380 E602000C */ swc1 $f2, 0xc($s0)
/* 33D174 E0028384 16800019 */ bnez $s4, .LE00283EC
/* 33D178 E0028388 E6000008 */ swc1 $f0, 8($s0)
/* 33D17C E002838C 3C01E003 */ lui $at, %hi(D_E00287F8)
/* 33D180 E0028390 D42287F8 */ ldc1 $f2, %lo(D_E00287F8)($at)
/* 33D184 E0028394 46000021 */ cvt.d.s $f0, $f0
/* 33D188 E0028398 46220002 */ mul.d $f0, $f0, $f2
/* 33D18C E002839C 00000000 */ nop
/* 33D190 E00283A0 C60C0010 */ lwc1 $f12, 0x10($s0)
/* 33D194 E00283A4 46200020 */ cvt.s.d $f0, $f0
/* 33D198 E00283A8 0C080140 */ jal shim_sin_deg
/* 33D19C E00283AC E6000008 */ swc1 $f0, 8($s0)
/* 33D1A0 E00283B0 3C01E003 */ lui $at, %hi(D_E0028800)
/* 33D1A4 E00283B4 D4228800 */ ldc1 $f2, %lo(D_E0028800)($at)
/* 33D1A8 E00283B8 46000021 */ cvt.d.s $f0, $f0
/* 33D1AC E00283BC 46220002 */ mul.d $f0, $f0, $f2
/* 33D1B0 E00283C0 00000000 */ nop
/* 33D1B4 E00283C4 3C01E003 */ lui $at, %hi(D_E0028808)
/* 33D1B8 E00283C8 D4248808 */ ldc1 $f4, %lo(D_E0028808)($at)
/* 33D1BC E00283CC C602000C */ lwc1 $f2, 0xc($s0)
/* 33D1C0 E00283D0 46240000 */ add.d $f0, $f0, $f4
/* 33D1C4 E00283D4 460010A1 */ cvt.d.s $f2, $f2
/* 33D1C8 E00283D8 46201082 */ mul.d $f2, $f2, $f0
/* 33D1CC E00283DC 00000000 */ nop
/* 33D1D0 E00283E0 462010A0 */ cvt.s.d $f2, $f2
/* 33D1D4 E00283E4 0800A106 */ j .LE0028418
/* 33D1D8 E00283E8 E602000C */ swc1 $f2, 0xc($s0)
.LE00283EC:
/* 33D1DC E00283EC C6000008 */ lwc1 $f0, 8($s0)
/* 33D1E0 E00283F0 3C01E003 */ lui $at, %hi(D_E0028810)
/* 33D1E4 E00283F4 D4228810 */ ldc1 $f2, %lo(D_E0028810)($at)
/* 33D1E8 E00283F8 46000021 */ cvt.d.s $f0, $f0
/* 33D1EC E00283FC 46220002 */ mul.d $f0, $f0, $f2
/* 33D1F0 E0028400 00000000 */ nop
/* 33D1F4 E0028404 C602000C */ lwc1 $f2, 0xc($s0)
/* 33D1F8 E0028408 46161080 */ add.s $f2, $f2, $f22
/* 33D1FC E002840C E602000C */ swc1 $f2, 0xc($s0)
/* 33D200 E0028410 46200020 */ cvt.s.d $f0, $f0
/* 33D204 E0028414 E6000008 */ swc1 $f0, 8($s0)
.LE0028418:
/* 33D208 E0028418 24040032 */ addiu $a0, $zero, 0x32
/* 33D20C E002841C 0C080011 */ jal func_E0200044
/* 33D210 E0028420 0240282D */ daddu $a1, $s2, $zero
/* 33D214 E0028424 2442FFE7 */ addiu $v0, $v0, -0x19
/* 33D218 E0028428 C60C0014 */ lwc1 $f12, 0x14($s0)
/* 33D21C E002842C 44820000 */ mtc1 $v0, $f0
/* 33D220 E0028430 00000000 */ nop
/* 33D224 E0028434 46800020 */ cvt.s.w $f0, $f0
/* 33D228 E0028438 46006300 */ add.s $f12, $f12, $f0
/* 33D22C E002843C 0C080140 */ jal shim_sin_deg
/* 33D230 E0028440 E60C0014 */ swc1 $f12, 0x14($s0)
/* 33D234 E0028444 46140002 */ mul.s $f0, $f0, $f20
/* 33D238 E0028448 00000000 */ nop
/* 33D23C E002844C C6020014 */ lwc1 $f2, 0x14($s0)
/* 33D240 E0028450 3C013F00 */ lui $at, 0x3f00
/* 33D244 E0028454 44816000 */ mtc1 $at, $f12
/* 33D248 E0028458 00000000 */ nop
/* 33D24C E002845C 460C1302 */ mul.s $f12, $f2, $f12
/* 33D250 E0028460 00000000 */ nop
/* 33D254 E0028464 C6020010 */ lwc1 $f2, 0x10($s0)
/* 33D258 E0028468 46001080 */ add.s $f2, $f2, $f0
/* 33D25C E002846C 0C080144 */ jal shim_cos_deg
/* 33D260 E0028470 E6020010 */ swc1 $f2, 0x10($s0)
/* 33D264 E0028474 46140002 */ mul.s $f0, $f0, $f20
/* 33D268 E0028478 00000000 */ nop
/* 33D26C E002847C C606FFFC */ lwc1 $f6, -4($s0)
/* 33D270 E0028480 C6020008 */ lwc1 $f2, 8($s0)
/* 33D274 E0028484 C6040000 */ lwc1 $f4, ($s0)
/* 33D278 E0028488 46023180 */ add.s $f6, $f6, $f2
/* 33D27C E002848C C602000C */ lwc1 $f2, 0xc($s0)
/* 33D280 E0028490 26520014 */ addiu $s2, $s2, 0x14
/* 33D284 E0028494 46022100 */ add.s $f4, $f4, $f2
/* 33D288 E0028498 C6020018 */ lwc1 $f2, 0x18($s0)
/* 33D28C E002849C 26310001 */ addiu $s1, $s1, 1
/* 33D290 E00284A0 46001080 */ add.s $f2, $f2, $f0
/* 33D294 E00284A4 E606FFFC */ swc1 $f6, -4($s0)
/* 33D298 E00284A8 E6040000 */ swc1 $f4, ($s0)
/* 33D29C E00284AC E6020018 */ swc1 $f2, 0x18($s0)
/* 33D2A0 E00284B0 8E620008 */ lw $v0, 8($s3)
/* 33D2A4 E00284B4 0222102A */ slt $v0, $s1, $v0
/* 33D2A8 E00284B8 1440FFA4 */ bnez $v0, .LE002834C
/* 33D2AC E00284BC 26100030 */ addiu $s0, $s0, 0x30
.LE00284C0:
/* 33D2B0 E00284C0 8FBF0024 */ lw $ra, 0x24($sp)
/* 33D2B4 E00284C4 8FB40020 */ lw $s4, 0x20($sp)
/* 33D2B8 E00284C8 8FB3001C */ lw $s3, 0x1c($sp)
/* 33D2BC E00284CC 8FB20018 */ lw $s2, 0x18($sp)
/* 33D2C0 E00284D0 8FB10014 */ lw $s1, 0x14($sp)
/* 33D2C4 E00284D4 8FB00010 */ lw $s0, 0x10($sp)
/* 33D2C8 E00284D8 D7B60030 */ ldc1 $f22, 0x30($sp)
/* 33D2CC E00284DC D7B40028 */ ldc1 $f20, 0x28($sp)
/* 33D2D0 E00284E0 03E00008 */ jr $ra
/* 33D2D4 E00284E4 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,225 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel dust_appendGfx
/* 33EC84 E002A3C4 27BDFEF8 */ addiu $sp, $sp, -0x108
/* 33EC88 E002A3C8 3C02DB06 */ lui $v0, 0xdb06
/* 33EC8C E002A3CC 34420024 */ ori $v0, $v0, 0x24
/* 33EC90 E002A3D0 AFB200E8 */ sw $s2, 0xe8($sp)
/* 33EC94 E002A3D4 3C12800A */ lui $s2, %hi(gMasterGfxPos)
/* 33EC98 E002A3D8 2652A66C */ addiu $s2, $s2, %lo(gMasterGfxPos)
/* 33EC9C E002A3DC AFBF0104 */ sw $ra, 0x104($sp)
/* 33ECA0 E002A3E0 AFBE0100 */ sw $fp, 0x100($sp)
/* 33ECA4 E002A3E4 AFB700FC */ sw $s7, 0xfc($sp)
/* 33ECA8 E002A3E8 AFB600F8 */ sw $s6, 0xf8($sp)
/* 33ECAC E002A3EC AFB500F4 */ sw $s5, 0xf4($sp)
/* 33ECB0 E002A3F0 AFB400F0 */ sw $s4, 0xf0($sp)
/* 33ECB4 E002A3F4 AFB300EC */ sw $s3, 0xec($sp)
/* 33ECB8 E002A3F8 AFB100E4 */ sw $s1, 0xe4($sp)
/* 33ECBC E002A3FC AFB000E0 */ sw $s0, 0xe0($sp)
/* 33ECC0 E002A400 AFA40108 */ sw $a0, 0x108($sp)
/* 33ECC4 E002A404 8E490000 */ lw $t1, ($s2)
/* 33ECC8 E002A408 8C90000C */ lw $s0, 0xc($a0)
/* 33ECCC E002A40C 0120202D */ daddu $a0, $t1, $zero
/* 33ECD0 E002A410 AC820000 */ sw $v0, ($a0)
/* 33ECD4 E002A414 8FAB0108 */ lw $t3, 0x108($sp)
/* 33ECD8 E002A418 3C050900 */ lui $a1, 0x900
/* 33ECDC E002A41C 24A50D68 */ addiu $a1, $a1, 0xd68
/* 33ECE0 E002A420 8D620010 */ lw $v0, 0x10($t3)
/* 33ECE4 E002A424 25290008 */ addiu $t1, $t1, 8
/* 33ECE8 E002A428 AE490000 */ sw $t1, ($s2)
/* 33ECEC E002A42C 8C42001C */ lw $v0, 0x1c($v0)
/* 33ECF0 E002A430 3C038000 */ lui $v1, 0x8000
/* 33ECF4 E002A434 00431021 */ addu $v0, $v0, $v1
/* 33ECF8 E002A438 AC820004 */ sw $v0, 4($a0)
/* 33ECFC E002A43C 3C02DE00 */ lui $v0, 0xde00
/* 33ED00 E002A440 AD220000 */ sw $v0, ($t1)
/* 33ED04 E002A444 8E020000 */ lw $v0, ($s0)
/* 33ED08 E002A448 252A0008 */ addiu $t2, $t1, 8
/* 33ED0C E002A44C 14400003 */ bnez $v0, .LE002A45C
/* 33ED10 E002A450 AE4A0000 */ sw $t2, ($s2)
/* 33ED14 E002A454 3C050900 */ lui $a1, 0x900
/* 33ED18 E002A458 24A50CC0 */ addiu $a1, $a1, 0xcc0
.LE002A45C:
/* 33ED1C E002A45C 25280010 */ addiu $t0, $t1, 0x10
/* 33ED20 E002A460 3C02FA00 */ lui $v0, 0xfa00
/* 33ED24 E002A464 AD250004 */ sw $a1, 4($t1)
/* 33ED28 E002A468 AE480000 */ sw $t0, ($s2)
/* 33ED2C E002A46C AD220008 */ sw $v0, 8($t1)
/* 33ED30 E002A470 92020033 */ lbu $v0, 0x33($s0)
/* 33ED34 E002A474 92050037 */ lbu $a1, 0x37($s0)
/* 33ED38 E002A478 9206003B */ lbu $a2, 0x3b($s0)
/* 33ED3C E002A47C 9207001B */ lbu $a3, 0x1b($s0)
/* 33ED40 E002A480 25230018 */ addiu $v1, $t1, 0x18
/* 33ED44 E002A484 AE430000 */ sw $v1, ($s2)
/* 33ED48 E002A488 00021600 */ sll $v0, $v0, 0x18
/* 33ED4C E002A48C 00052C00 */ sll $a1, $a1, 0x10
/* 33ED50 E002A490 00451025 */ or $v0, $v0, $a1
/* 33ED54 E002A494 00063200 */ sll $a2, $a2, 8
/* 33ED58 E002A498 00461025 */ or $v0, $v0, $a2
/* 33ED5C E002A49C 00471025 */ or $v0, $v0, $a3
/* 33ED60 E002A4A0 AD420004 */ sw $v0, 4($t2)
/* 33ED64 E002A4A4 3C02FB00 */ lui $v0, 0xfb00
/* 33ED68 E002A4A8 AD220010 */ sw $v0, 0x10($t1)
/* 33ED6C E002A4AC 9202003F */ lbu $v0, 0x3f($s0)
/* 33ED70 E002A4B0 92050043 */ lbu $a1, 0x43($s0)
/* 33ED74 E002A4B4 92030047 */ lbu $v1, 0x47($s0)
/* 33ED78 E002A4B8 00021600 */ sll $v0, $v0, 0x18
/* 33ED7C E002A4BC 00052C00 */ sll $a1, $a1, 0x10
/* 33ED80 E002A4C0 00451025 */ or $v0, $v0, $a1
/* 33ED84 E002A4C4 00031A00 */ sll $v1, $v1, 8
/* 33ED88 E002A4C8 00431025 */ or $v0, $v0, $v1
/* 33ED8C E002A4CC AD020004 */ sw $v0, 4($t0)
/* 33ED90 E002A4D0 8E050004 */ lw $a1, 4($s0)
/* 33ED94 E002A4D4 8E060008 */ lw $a2, 8($s0)
/* 33ED98 E002A4D8 8E07000C */ lw $a3, 0xc($s0)
/* 33ED9C E002A4DC 0C080108 */ jal shim_guTranslateF
/* 33EDA0 E002A4E0 27A40018 */ addiu $a0, $sp, 0x18
/* 33EDA4 E002A4E4 27B10058 */ addiu $s1, $sp, 0x58
/* 33EDA8 E002A4E8 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 33EDAC E002A4EC 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 33EDB0 E002A4F0 44800000 */ mtc1 $zero, $f0
/* 33EDB4 E002A4F4 00031080 */ sll $v0, $v1, 2
/* 33EDB8 E002A4F8 00431021 */ addu $v0, $v0, $v1
/* 33EDBC E002A4FC 00021080 */ sll $v0, $v0, 2
/* 33EDC0 E002A500 00431023 */ subu $v0, $v0, $v1
/* 33EDC4 E002A504 000218C0 */ sll $v1, $v0, 3
/* 33EDC8 E002A508 00431021 */ addu $v0, $v0, $v1
/* 33EDCC E002A50C 000210C0 */ sll $v0, $v0, 3
/* 33EDD0 E002A510 44060000 */ mfc1 $a2, $f0
/* 33EDD4 E002A514 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 33EDD8 E002A518 00220821 */ addu $at, $at, $v0
/* 33EDDC E002A51C C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 33EDE0 E002A520 3C073F80 */ lui $a3, 0x3f80
/* 33EDE4 E002A524 46000007 */ neg.s $f0, $f0
/* 33EDE8 E002A528 44050000 */ mfc1 $a1, $f0
/* 33EDEC E002A52C 0220202D */ daddu $a0, $s1, $zero
/* 33EDF0 E002A530 0C080104 */ jal shim_guRotateF
/* 33EDF4 E002A534 AFA60010 */ sw $a2, 0x10($sp)
/* 33EDF8 E002A538 0220202D */ daddu $a0, $s1, $zero
/* 33EDFC E002A53C 27A50018 */ addiu $a1, $sp, 0x18
/* 33EE00 E002A540 0C080114 */ jal shim_guMtxCatF
/* 33EE04 E002A544 27A60098 */ addiu $a2, $sp, 0x98
/* 33EE08 E002A548 8E0B0000 */ lw $t3, ($s0)
/* 33EE0C E002A54C AFAB00D8 */ sw $t3, 0xd8($sp)
/* 33EE10 E002A550 8FAB0108 */ lw $t3, 0x108($sp)
/* 33EE14 E002A554 24130001 */ addiu $s3, $zero, 1
/* 33EE18 E002A558 8D620008 */ lw $v0, 8($t3)
/* 33EE1C E002A55C 0262102A */ slt $v0, $s3, $v0
/* 33EE20 E002A560 10400061 */ beqz $v0, .LE002A6E8
/* 33EE24 E002A564 26100048 */ addiu $s0, $s0, 0x48
/* 33EE28 E002A568 3C17800A */ lui $s7, %hi(gDisplayContext)
/* 33EE2C E002A56C 26F7A674 */ addiu $s7, $s7, %lo(gDisplayContext)
/* 33EE30 E002A570 3C148007 */ lui $s4, %hi(gMatrixListPos)
/* 33EE34 E002A574 269441F0 */ addiu $s4, $s4, %lo(gMatrixListPos)
/* 33EE38 E002A578 3C150001 */ lui $s5, 1
/* 33EE3C E002A57C 36B51630 */ ori $s5, $s5, 0x1630
/* 33EE40 E002A580 0220B02D */ daddu $s6, $s1, $zero
/* 33EE44 E002A584 3C1EDE00 */ lui $fp, 0xde00
/* 33EE48 E002A588 2611000C */ addiu $s1, $s0, 0xc
.LE002A58C:
/* 33EE4C E002A58C 27A40018 */ addiu $a0, $sp, 0x18
/* 33EE50 E002A590 8E250014 */ lw $a1, 0x14($s1)
/* 33EE54 E002A594 8E260010 */ lw $a2, 0x10($s1)
/* 33EE58 E002A598 96820000 */ lhu $v0, ($s4)
/* 33EE5C E002A59C 00A0382D */ daddu $a3, $a1, $zero
/* 33EE60 E002A5A0 24430001 */ addiu $v1, $v0, 1
/* 33EE64 E002A5A4 3042FFFF */ andi $v0, $v0, 0xffff
/* 33EE68 E002A5A8 00021180 */ sll $v0, $v0, 6
/* 33EE6C E002A5AC A6830000 */ sh $v1, ($s4)
/* 33EE70 E002A5B0 8EF00000 */ lw $s0, ($s7)
/* 33EE74 E002A5B4 00551021 */ addu $v0, $v0, $s5
/* 33EE78 E002A5B8 0C080110 */ jal shim_guScaleF
/* 33EE7C E002A5BC 02028021 */ addu $s0, $s0, $v0
/* 33EE80 E002A5C0 27A40018 */ addiu $a0, $sp, 0x18
/* 33EE84 E002A5C4 0C080118 */ jal shim_guMtxF2L
/* 33EE88 E002A5C8 0200282D */ daddu $a1, $s0, $zero
/* 33EE8C E002A5CC 8E25FFF8 */ lw $a1, -8($s1)
/* 33EE90 E002A5D0 8E26FFFC */ lw $a2, -4($s1)
/* 33EE94 E002A5D4 8E270000 */ lw $a3, ($s1)
/* 33EE98 E002A5D8 0C080108 */ jal shim_guTranslateF
/* 33EE9C E002A5DC 02C0202D */ daddu $a0, $s6, $zero
/* 33EEA0 E002A5E0 02C0202D */ daddu $a0, $s6, $zero
/* 33EEA4 E002A5E4 27A50098 */ addiu $a1, $sp, 0x98
/* 33EEA8 E002A5E8 0C080114 */ jal shim_guMtxCatF
/* 33EEAC E002A5EC 27A60018 */ addiu $a2, $sp, 0x18
/* 33EEB0 E002A5F0 27A40018 */ addiu $a0, $sp, 0x18
/* 33EEB4 E002A5F4 96850000 */ lhu $a1, ($s4)
/* 33EEB8 E002A5F8 8EE20000 */ lw $v0, ($s7)
/* 33EEBC E002A5FC 00052980 */ sll $a1, $a1, 6
/* 33EEC0 E002A600 00B52821 */ addu $a1, $a1, $s5
/* 33EEC4 E002A604 0C080118 */ jal shim_guMtxF2L
/* 33EEC8 E002A608 00452821 */ addu $a1, $v0, $a1
/* 33EECC E002A60C 3C05DA38 */ lui $a1, 0xda38
/* 33EED0 E002A610 8E460000 */ lw $a2, ($s2)
/* 33EED4 E002A614 34A50001 */ ori $a1, $a1, 1
/* 33EED8 E002A618 00C0202D */ daddu $a0, $a2, $zero
/* 33EEDC E002A61C 24C60008 */ addiu $a2, $a2, 8
/* 33EEE0 E002A620 AE460000 */ sw $a2, ($s2)
/* 33EEE4 E002A624 96820000 */ lhu $v0, ($s4)
/* 33EEE8 E002A628 3C03DA38 */ lui $v1, 0xda38
/* 33EEEC E002A62C AC830000 */ sw $v1, ($a0)
/* 33EEF0 E002A630 24430001 */ addiu $v1, $v0, 1
/* 33EEF4 E002A634 3042FFFF */ andi $v0, $v0, 0xffff
/* 33EEF8 E002A638 00021180 */ sll $v0, $v0, 6
/* 33EEFC E002A63C A6830000 */ sh $v1, ($s4)
/* 33EF00 E002A640 8EE30000 */ lw $v1, ($s7)
/* 33EF04 E002A644 00551021 */ addu $v0, $v0, $s5
/* 33EF08 E002A648 00621821 */ addu $v1, $v1, $v0
/* 33EF0C E002A64C 24C20008 */ addiu $v0, $a2, 8
/* 33EF10 E002A650 AC830004 */ sw $v1, 4($a0)
/* 33EF14 E002A654 AE420000 */ sw $v0, ($s2)
/* 33EF18 E002A658 ACC50000 */ sw $a1, ($a2)
/* 33EF1C E002A65C ACD00004 */ sw $s0, 4($a2)
/* 33EF20 E002A660 8FAB00D8 */ lw $t3, 0xd8($sp)
/* 33EF24 E002A664 29620002 */ slti $v0, $t3, 2
/* 33EF28 E002A668 1040000B */ beqz $v0, .LE002A698
/* 33EF2C E002A66C 24C20010 */ addiu $v0, $a2, 0x10
/* 33EF30 E002A670 3C030900 */ lui $v1, 0x900
/* 33EF34 E002A674 24630E38 */ addiu $v1, $v1, 0xe38
/* 33EF38 E002A678 AE420000 */ sw $v0, ($s2)
/* 33EF3C E002A67C 32620001 */ andi $v0, $s3, 1
/* 33EF40 E002A680 10400003 */ beqz $v0, .LE002A690
/* 33EF44 E002A684 ACDE0008 */ sw $fp, 8($a2)
/* 33EF48 E002A688 3C030900 */ lui $v1, 0x900
/* 33EF4C E002A68C 24630E18 */ addiu $v1, $v1, 0xe18
.LE002A690:
/* 33EF50 E002A690 0800A9AB */ j .LE002A6AC
/* 33EF54 E002A694 ACC3000C */ sw $v1, 0xc($a2)
.LE002A698:
/* 33EF58 E002A698 AE420000 */ sw $v0, ($s2)
/* 33EF5C E002A69C 3C020900 */ lui $v0, 0x900
/* 33EF60 E002A6A0 24420E58 */ addiu $v0, $v0, 0xe58
/* 33EF64 E002A6A4 ACDE0008 */ sw $fp, 8($a2)
/* 33EF68 E002A6A8 ACC2000C */ sw $v0, 0xc($a2)
.LE002A6AC:
/* 33EF6C E002A6AC 3C02D838 */ lui $v0, 0xd838
/* 33EF70 E002A6B0 34420002 */ ori $v0, $v0, 2
/* 33EF74 E002A6B4 8E440000 */ lw $a0, ($s2)
/* 33EF78 E002A6B8 26730001 */ addiu $s3, $s3, 1
/* 33EF7C E002A6BC 0080182D */ daddu $v1, $a0, $zero
/* 33EF80 E002A6C0 AC620000 */ sw $v0, ($v1)
/* 33EF84 E002A6C4 24020040 */ addiu $v0, $zero, 0x40
/* 33EF88 E002A6C8 AC620004 */ sw $v0, 4($v1)
/* 33EF8C E002A6CC 8FAB0108 */ lw $t3, 0x108($sp)
/* 33EF90 E002A6D0 26310048 */ addiu $s1, $s1, 0x48
/* 33EF94 E002A6D4 8D620008 */ lw $v0, 8($t3)
/* 33EF98 E002A6D8 24840008 */ addiu $a0, $a0, 8
/* 33EF9C E002A6DC 0262102A */ slt $v0, $s3, $v0
/* 33EFA0 E002A6E0 1440FFAA */ bnez $v0, .LE002A58C
/* 33EFA4 E002A6E4 AE440000 */ sw $a0, ($s2)
.LE002A6E8:
/* 33EFA8 E002A6E8 8FBF0104 */ lw $ra, 0x104($sp)
/* 33EFAC E002A6EC 8FBE0100 */ lw $fp, 0x100($sp)
/* 33EFB0 E002A6F0 8FB700FC */ lw $s7, 0xfc($sp)
/* 33EFB4 E002A6F4 8FB600F8 */ lw $s6, 0xf8($sp)
/* 33EFB8 E002A6F8 8FB500F4 */ lw $s5, 0xf4($sp)
/* 33EFBC E002A6FC 8FB400F0 */ lw $s4, 0xf0($sp)
/* 33EFC0 E002A700 8FB300EC */ lw $s3, 0xec($sp)
/* 33EFC4 E002A704 8FB200E8 */ lw $s2, 0xe8($sp)
/* 33EFC8 E002A708 8FB100E4 */ lw $s1, 0xe4($sp)
/* 33EFCC E002A70C 8FB000E0 */ lw $s0, 0xe0($sp)
/* 33EFD0 E002A710 03E00008 */ jr $ra
/* 33EFD4 E002A714 27BD0108 */ addiu $sp, $sp, 0x108
/* 33EFD8 E002A718 00000000 */ nop
/* 33EFDC E002A71C 00000000 */ nop

View File

@ -1,227 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel fx_3D_appendGfx
/* 37CDCC E007A88C 27BDFF30 */ addiu $sp, $sp, -0xd0
/* 37CDD0 E007A890 AFBE00B8 */ sw $fp, 0xb8($sp)
/* 37CDD4 E007A894 0080F02D */ daddu $fp, $a0, $zero
/* 37CDD8 E007A898 3C06DB06 */ lui $a2, 0xdb06
/* 37CDDC E007A89C 34C60024 */ ori $a2, $a2, 0x24
/* 37CDE0 E007A8A0 27A40018 */ addiu $a0, $sp, 0x18
/* 37CDE4 E007A8A4 AFB00098 */ sw $s0, 0x98($sp)
/* 37CDE8 E007A8A8 3C100001 */ lui $s0, 1
/* 37CDEC E007A8AC 36101630 */ ori $s0, $s0, 0x1630
/* 37CDF0 E007A8B0 AFB500AC */ sw $s5, 0xac($sp)
/* 37CDF4 E007A8B4 24150001 */ addiu $s5, $zero, 1
/* 37CDF8 E007A8B8 AFB1009C */ sw $s1, 0x9c($sp)
/* 37CDFC E007A8BC 3C11800A */ lui $s1, %hi(gMasterGfxPos)
/* 37CE00 E007A8C0 2631A66C */ addiu $s1, $s1, %lo(gMasterGfxPos)
/* 37CE04 E007A8C4 3C02E700 */ lui $v0, 0xe700
/* 37CE08 E007A8C8 AFBF00BC */ sw $ra, 0xbc($sp)
/* 37CE0C E007A8CC AFB700B4 */ sw $s7, 0xb4($sp)
/* 37CE10 E007A8D0 AFB600B0 */ sw $s6, 0xb0($sp)
/* 37CE14 E007A8D4 AFB400A8 */ sw $s4, 0xa8($sp)
/* 37CE18 E007A8D8 AFB300A4 */ sw $s3, 0xa4($sp)
/* 37CE1C E007A8DC AFB200A0 */ sw $s2, 0xa0($sp)
/* 37CE20 E007A8E0 F7B600C8 */ sdc1 $f22, 0xc8($sp)
/* 37CE24 E007A8E4 F7B400C0 */ sdc1 $f20, 0xc0($sp)
/* 37CE28 E007A8E8 8E230000 */ lw $v1, ($s1)
/* 37CE2C E007A8EC 8FD2000C */ lw $s2, 0xc($fp)
/* 37CE30 E007A8F0 0060282D */ daddu $a1, $v1, $zero
/* 37CE34 E007A8F4 24630008 */ addiu $v1, $v1, 8
/* 37CE38 E007A8F8 AE230000 */ sw $v1, ($s1)
/* 37CE3C E007A8FC ACA20000 */ sw $v0, ($a1)
/* 37CE40 E007A900 24620008 */ addiu $v0, $v1, 8
/* 37CE44 E007A904 ACA00004 */ sw $zero, 4($a1)
/* 37CE48 E007A908 AE220000 */ sw $v0, ($s1)
/* 37CE4C E007A90C AC660000 */ sw $a2, ($v1)
/* 37CE50 E007A910 8FC50010 */ lw $a1, 0x10($fp)
/* 37CE54 E007A914 24620010 */ addiu $v0, $v1, 0x10
/* 37CE58 E007A918 AE220000 */ sw $v0, ($s1)
/* 37CE5C E007A91C 8CA5001C */ lw $a1, 0x1c($a1)
/* 37CE60 E007A920 3C02DE00 */ lui $v0, 0xde00
/* 37CE64 E007A924 AC620008 */ sw $v0, 8($v1)
/* 37CE68 E007A928 3C020900 */ lui $v0, 0x900
/* 37CE6C E007A92C 24420240 */ addiu $v0, $v0, 0x240
/* 37CE70 E007A930 AC62000C */ sw $v0, 0xc($v1)
/* 37CE74 E007A934 3C028000 */ lui $v0, 0x8000
/* 37CE78 E007A938 00A22821 */ addu $a1, $a1, $v0
/* 37CE7C E007A93C AC650004 */ sw $a1, 4($v1)
/* 37CE80 E007A940 8E450008 */ lw $a1, 8($s2)
/* 37CE84 E007A944 8E46000C */ lw $a2, 0xc($s2)
/* 37CE88 E007A948 8E470010 */ lw $a3, 0x10($s2)
/* 37CE8C E007A94C 0C080108 */ jal shim_guTranslateF
/* 37CE90 E007A950 26520068 */ addiu $s2, $s2, 0x68
/* 37CE94 E007A954 27A40018 */ addiu $a0, $sp, 0x18
/* 37CE98 E007A958 3C148007 */ lui $s4, %hi(gMatrixListPos)
/* 37CE9C E007A95C 269441F0 */ addiu $s4, $s4, %lo(gMatrixListPos)
/* 37CEA0 E007A960 3C16800A */ lui $s6, %hi(gDisplayContext)
/* 37CEA4 E007A964 26D6A674 */ addiu $s6, $s6, %lo(gDisplayContext)
/* 37CEA8 E007A968 96850000 */ lhu $a1, ($s4)
/* 37CEAC E007A96C 8EC20000 */ lw $v0, ($s6)
/* 37CEB0 E007A970 00052980 */ sll $a1, $a1, 6
/* 37CEB4 E007A974 00B02821 */ addu $a1, $a1, $s0
/* 37CEB8 E007A978 0C080118 */ jal shim_guMtxF2L
/* 37CEBC E007A97C 00452821 */ addu $a1, $v0, $a1
/* 37CEC0 E007A980 3C03DA38 */ lui $v1, 0xda38
/* 37CEC4 E007A984 34630002 */ ori $v1, $v1, 2
/* 37CEC8 E007A988 8E220000 */ lw $v0, ($s1)
/* 37CECC E007A98C 96840000 */ lhu $a0, ($s4)
/* 37CED0 E007A990 0040282D */ daddu $a1, $v0, $zero
/* 37CED4 E007A994 24420008 */ addiu $v0, $v0, 8
/* 37CED8 E007A998 AE220000 */ sw $v0, ($s1)
/* 37CEDC E007A99C 3082FFFF */ andi $v0, $a0, 0xffff
/* 37CEE0 E007A9A0 00021180 */ sll $v0, $v0, 6
/* 37CEE4 E007A9A4 ACA30000 */ sw $v1, ($a1)
/* 37CEE8 E007A9A8 8EC30000 */ lw $v1, ($s6)
/* 37CEEC E007A9AC 00501021 */ addu $v0, $v0, $s0
/* 37CEF0 E007A9B0 00621821 */ addu $v1, $v1, $v0
/* 37CEF4 E007A9B4 ACA30004 */ sw $v1, 4($a1)
/* 37CEF8 E007A9B8 8FC20008 */ lw $v0, 8($fp)
/* 37CEFC E007A9BC 00952021 */ addu $a0, $a0, $s5
/* 37CF00 E007A9C0 02A2102A */ slt $v0, $s5, $v0
/* 37CF04 E007A9C4 1040006F */ beqz $v0, .LE007AB84
/* 37CF08 E007A9C8 A6840000 */ sh $a0, ($s4)
/* 37CF0C E007A9CC 0220982D */ daddu $s3, $s1, $zero
/* 37CF10 E007A9D0 27B10058 */ addiu $s1, $sp, 0x58
/* 37CF14 E007A9D4 02C0B82D */ daddu $s7, $s6, $zero
/* 37CF18 E007A9D8 0280B02D */ daddu $s6, $s4, $zero
/* 37CF1C E007A9DC 3C140001 */ lui $s4, 1
/* 37CF20 E007A9E0 36941630 */ ori $s4, $s4, 0x1630
/* 37CF24 E007A9E4 2650004C */ addiu $s0, $s2, 0x4c
/* 37CF28 E007A9E8 4480A000 */ mtc1 $zero, $f20
/* 37CF2C E007A9EC 3C013F80 */ lui $at, 0x3f80
/* 37CF30 E007A9F0 4481B000 */ mtc1 $at, $f22
.LE007A9F4:
/* 37CF34 E007A9F4 3C05C8FF */ lui $a1, 0xc8ff
/* 37CF38 E007A9F8 8E620000 */ lw $v0, ($s3)
/* 37CF3C E007A9FC 34A5FF00 */ ori $a1, $a1, 0xff00
/* 37CF40 E007AA00 0040182D */ daddu $v1, $v0, $zero
/* 37CF44 E007AA04 24420008 */ addiu $v0, $v0, 8
/* 37CF48 E007AA08 AE620000 */ sw $v0, ($s3)
/* 37CF4C E007AA0C 3C02FA00 */ lui $v0, 0xfa00
/* 37CF50 E007AA10 AC620000 */ sw $v0, ($v1)
/* 37CF54 E007AA14 9202000F */ lbu $v0, 0xf($s0)
/* 37CF58 E007AA18 27A40018 */ addiu $a0, $sp, 0x18
/* 37CF5C E007AA1C 00451025 */ or $v0, $v0, $a1
/* 37CF60 E007AA20 AC620004 */ sw $v0, 4($v1)
/* 37CF64 E007AA24 8E05FFBC */ lw $a1, -0x44($s0)
/* 37CF68 E007AA28 8E06FFC0 */ lw $a2, -0x40($s0)
/* 37CF6C E007AA2C 8E07FFC4 */ lw $a3, -0x3c($s0)
/* 37CF70 E007AA30 0C080108 */ jal shim_guTranslateF
/* 37CF74 E007AA34 26B50001 */ addiu $s5, $s5, 1
/* 37CF78 E007AA38 3C08800B */ lui $t0, %hi(gCameras)
/* 37CF7C E007AA3C 25081D80 */ addiu $t0, $t0, %lo(gCameras)
/* 37CF80 E007AA40 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 37CF84 E007AA44 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 37CF88 E007AA48 4406A000 */ mfc1 $a2, $f20
/* 37CF8C E007AA4C 00031080 */ sll $v0, $v1, 2
/* 37CF90 E007AA50 00431021 */ addu $v0, $v0, $v1
/* 37CF94 E007AA54 00021080 */ sll $v0, $v0, 2
/* 37CF98 E007AA58 00431023 */ subu $v0, $v0, $v1
/* 37CF9C E007AA5C 000218C0 */ sll $v1, $v0, 3
/* 37CFA0 E007AA60 00431021 */ addu $v0, $v0, $v1
/* 37CFA4 E007AA64 000210C0 */ sll $v0, $v0, 3
/* 37CFA8 E007AA68 00481021 */ addu $v0, $v0, $t0
/* 37CFAC E007AA6C C440006C */ lwc1 $f0, 0x6c($v0)
/* 37CFB0 E007AA70 4407B000 */ mfc1 $a3, $f22
/* 37CFB4 E007AA74 46000007 */ neg.s $f0, $f0
/* 37CFB8 E007AA78 44050000 */ mfc1 $a1, $f0
/* 37CFBC E007AA7C 0220202D */ daddu $a0, $s1, $zero
/* 37CFC0 E007AA80 0C080104 */ jal shim_guRotateF
/* 37CFC4 E007AA84 E7B40010 */ swc1 $f20, 0x10($sp)
/* 37CFC8 E007AA88 0220202D */ daddu $a0, $s1, $zero
/* 37CFCC E007AA8C 27A50018 */ addiu $a1, $sp, 0x18
/* 37CFD0 E007AA90 0C080114 */ jal shim_guMtxCatF
/* 37CFD4 E007AA94 00A0302D */ daddu $a2, $a1, $zero
/* 37CFD8 E007AA98 0220202D */ daddu $a0, $s1, $zero
/* 37CFDC E007AA9C 8E05FFF8 */ lw $a1, -8($s0)
/* 37CFE0 E007AAA0 8E06FFFC */ lw $a2, -4($s0)
/* 37CFE4 E007AAA4 0C080110 */ jal shim_guScaleF
/* 37CFE8 E007AAA8 00A0382D */ daddu $a3, $a1, $zero
/* 37CFEC E007AAAC 0220202D */ daddu $a0, $s1, $zero
/* 37CFF0 E007AAB0 27A50018 */ addiu $a1, $sp, 0x18
/* 37CFF4 E007AAB4 0C080114 */ jal shim_guMtxCatF
/* 37CFF8 E007AAB8 00A0302D */ daddu $a2, $a1, $zero
/* 37CFFC E007AABC 0220202D */ daddu $a0, $s1, $zero
/* 37D000 E007AAC0 E7B60010 */ swc1 $f22, 0x10($sp)
/* 37D004 E007AAC4 8E050000 */ lw $a1, ($s0)
/* 37D008 E007AAC8 4406A000 */ mfc1 $a2, $f20
/* 37D00C E007AACC 4407A000 */ mfc1 $a3, $f20
/* 37D010 E007AAD0 0C080104 */ jal shim_guRotateF
/* 37D014 E007AAD4 26100068 */ addiu $s0, $s0, 0x68
/* 37D018 E007AAD8 0220202D */ daddu $a0, $s1, $zero
/* 37D01C E007AADC 27A50018 */ addiu $a1, $sp, 0x18
/* 37D020 E007AAE0 0C080114 */ jal shim_guMtxCatF
/* 37D024 E007AAE4 00A0302D */ daddu $a2, $a1, $zero
/* 37D028 E007AAE8 27A40018 */ addiu $a0, $sp, 0x18
/* 37D02C E007AAEC 96C50000 */ lhu $a1, ($s6)
/* 37D030 E007AAF0 8EE20000 */ lw $v0, ($s7)
/* 37D034 E007AAF4 00052980 */ sll $a1, $a1, 6
/* 37D038 E007AAF8 00B42821 */ addu $a1, $a1, $s4
/* 37D03C E007AAFC 0C080118 */ jal shim_guMtxF2L
/* 37D040 E007AB00 00452821 */ addu $a1, $v0, $a1
/* 37D044 E007AB04 3C06D838 */ lui $a2, 0xd838
/* 37D048 E007AB08 8E640000 */ lw $a0, ($s3)
/* 37D04C E007AB0C 34C60002 */ ori $a2, $a2, 2
/* 37D050 E007AB10 0080282D */ daddu $a1, $a0, $zero
/* 37D054 E007AB14 24840008 */ addiu $a0, $a0, 8
/* 37D058 E007AB18 AE640000 */ sw $a0, ($s3)
/* 37D05C E007AB1C 96C20000 */ lhu $v0, ($s6)
/* 37D060 E007AB20 3C03DA38 */ lui $v1, 0xda38
/* 37D064 E007AB24 ACA30000 */ sw $v1, ($a1)
/* 37D068 E007AB28 24430001 */ addiu $v1, $v0, 1
/* 37D06C E007AB2C 3042FFFF */ andi $v0, $v0, 0xffff
/* 37D070 E007AB30 00021180 */ sll $v0, $v0, 6
/* 37D074 E007AB34 A6C30000 */ sh $v1, ($s6)
/* 37D078 E007AB38 8EE30000 */ lw $v1, ($s7)
/* 37D07C E007AB3C 00541021 */ addu $v0, $v0, $s4
/* 37D080 E007AB40 00621821 */ addu $v1, $v1, $v0
/* 37D084 E007AB44 24820008 */ addiu $v0, $a0, 8
/* 37D088 E007AB48 ACA30004 */ sw $v1, 4($a1)
/* 37D08C E007AB4C AE620000 */ sw $v0, ($s3)
/* 37D090 E007AB50 3C02DE00 */ lui $v0, 0xde00
/* 37D094 E007AB54 AC820000 */ sw $v0, ($a0)
/* 37D098 E007AB58 3C020900 */ lui $v0, 0x900
/* 37D09C E007AB5C 244202E8 */ addiu $v0, $v0, 0x2e8
/* 37D0A0 E007AB60 AC820004 */ sw $v0, 4($a0)
/* 37D0A4 E007AB64 24020040 */ addiu $v0, $zero, 0x40
/* 37D0A8 E007AB68 AC860008 */ sw $a2, 8($a0)
/* 37D0AC E007AB6C AC82000C */ sw $v0, 0xc($a0)
/* 37D0B0 E007AB70 8FC20008 */ lw $v0, 8($fp)
/* 37D0B4 E007AB74 24840010 */ addiu $a0, $a0, 0x10
/* 37D0B8 E007AB78 02A2102A */ slt $v0, $s5, $v0
/* 37D0BC E007AB7C 1440FF9D */ bnez $v0, .LE007A9F4
/* 37D0C0 E007AB80 AE640000 */ sw $a0, ($s3)
.LE007AB84:
/* 37D0C4 E007AB84 3C03D838 */ lui $v1, 0xd838
/* 37D0C8 E007AB88 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 37D0CC E007AB8C 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 37D0D0 E007AB90 8C820000 */ lw $v0, ($a0)
/* 37D0D4 E007AB94 34630002 */ ori $v1, $v1, 2
/* 37D0D8 E007AB98 0040282D */ daddu $a1, $v0, $zero
/* 37D0DC E007AB9C 24420008 */ addiu $v0, $v0, 8
/* 37D0E0 E007ABA0 AC820000 */ sw $v0, ($a0)
/* 37D0E4 E007ABA4 ACA30000 */ sw $v1, ($a1)
/* 37D0E8 E007ABA8 24030040 */ addiu $v1, $zero, 0x40
/* 37D0EC E007ABAC ACA30004 */ sw $v1, 4($a1)
/* 37D0F0 E007ABB0 24430008 */ addiu $v1, $v0, 8
/* 37D0F4 E007ABB4 AC830000 */ sw $v1, ($a0)
/* 37D0F8 E007ABB8 3C03E700 */ lui $v1, 0xe700
/* 37D0FC E007ABBC AC430000 */ sw $v1, ($v0)
/* 37D100 E007ABC0 AC400004 */ sw $zero, 4($v0)
/* 37D104 E007ABC4 8FBF00BC */ lw $ra, 0xbc($sp)
/* 37D108 E007ABC8 8FBE00B8 */ lw $fp, 0xb8($sp)
/* 37D10C E007ABCC 8FB700B4 */ lw $s7, 0xb4($sp)
/* 37D110 E007ABD0 8FB600B0 */ lw $s6, 0xb0($sp)
/* 37D114 E007ABD4 8FB500AC */ lw $s5, 0xac($sp)
/* 37D118 E007ABD8 8FB400A8 */ lw $s4, 0xa8($sp)
/* 37D11C E007ABDC 8FB300A4 */ lw $s3, 0xa4($sp)
/* 37D120 E007ABE0 8FB200A0 */ lw $s2, 0xa0($sp)
/* 37D124 E007ABE4 8FB1009C */ lw $s1, 0x9c($sp)
/* 37D128 E007ABE8 8FB00098 */ lw $s0, 0x98($sp)
/* 37D12C E007ABEC D7B600C8 */ ldc1 $f22, 0xc8($sp)
/* 37D130 E007ABF0 D7B400C0 */ ldc1 $f20, 0xc0($sp)
/* 37D134 E007ABF4 03E00008 */ jr $ra
/* 37D138 E007ABF8 27BD00D0 */ addiu $sp, $sp, 0xd0
/* 37D13C E007ABFC 00000000 */ nop

View File

@ -1,343 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E007AC00
.double 0.05
dlabel D_E007AC08
.double 0.1
.section .text
glabel fx_3D_main
/* 37C540 E007A000 27BDFF40 */ addiu $sp, $sp, -0xc0
/* 37C544 E007A004 F7B60098 */ sdc1 $f22, 0x98($sp)
/* 37C548 E007A008 C7B600D0 */ lwc1 $f22, 0xd0($sp)
/* 37C54C E007A00C F7B800A0 */ sdc1 $f24, 0xa0($sp)
/* 37C550 E007A010 C7B800D4 */ lwc1 $f24, 0xd4($sp)
/* 37C554 E007A014 F7BA00A8 */ sdc1 $f26, 0xa8($sp)
/* 37C558 E007A018 C7BA00D8 */ lwc1 $f26, 0xd8($sp)
/* 37C55C E007A01C AFB20080 */ sw $s2, 0x80($sp)
/* 37C560 E007A020 8FB200DC */ lw $s2, 0xdc($sp)
/* 37C564 E007A024 AFB1007C */ sw $s1, 0x7c($sp)
/* 37C568 E007A028 0080882D */ daddu $s1, $a0, $zero
/* 37C56C E007A02C AFB00078 */ sw $s0, 0x78($sp)
/* 37C570 E007A030 27B00018 */ addiu $s0, $sp, 0x18
/* 37C574 E007A034 AFBF008C */ sw $ra, 0x8c($sp)
/* 37C578 E007A038 AFB40088 */ sw $s4, 0x88($sp)
/* 37C57C E007A03C AFB30084 */ sw $s3, 0x84($sp)
/* 37C580 E007A040 F7BE00B8 */ sdc1 $f30, 0xb8($sp)
/* 37C584 E007A044 F7BC00B0 */ sdc1 $f28, 0xb0($sp)
/* 37C588 E007A048 F7B40090 */ sdc1 $f20, 0x90($sp)
/* 37C58C E007A04C AFA500C4 */ sw $a1, 0xc4($sp)
/* 37C590 E007A050 AFA600C8 */ sw $a2, 0xc8($sp)
/* 37C594 E007A054 1240011D */ beqz $s2, .LE007A4CC
/* 37C598 E007A058 AFA700CC */ sw $a3, 0xcc($sp)
/* 37C59C E007A05C 4616B002 */ mul.s $f0, $f22, $f22
/* 37C5A0 E007A060 00000000 */ nop
/* 37C5A4 E007A064 4618C082 */ mul.s $f2, $f24, $f24
/* 37C5A8 E007A068 00000000 */ nop
/* 37C5AC E007A06C 461AD102 */ mul.s $f4, $f26, $f26
/* 37C5B0 E007A070 00000000 */ nop
/* 37C5B4 E007A074 46020000 */ add.s $f0, $f0, $f2
/* 37C5B8 E007A078 46040300 */ add.s $f12, $f0, $f4
/* 37C5BC E007A07C 4480A000 */ mtc1 $zero, $f20
/* 37C5C0 E007A080 00000000 */ nop
/* 37C5C4 E007A084 46146032 */ c.eq.s $f12, $f20
/* 37C5C8 E007A088 00000000 */ nop
/* 37C5CC E007A08C 4501010F */ bc1t .LE007A4CC
/* 37C5D0 E007A090 26520001 */ addiu $s2, $s2, 1
/* 37C5D4 E007A094 0C080154 */ jal shim_sqrtf
/* 37C5D8 E007A098 00000000 */ nop
/* 37C5DC E007A09C 3C01BF80 */ lui $at, 0xbf80
/* 37C5E0 E007A0A0 44811000 */ mtc1 $at, $f2
/* 37C5E4 E007A0A4 00000000 */ nop
/* 37C5E8 E007A0A8 46001303 */ div.s $f12, $f2, $f0
/* 37C5EC E007A0AC 460CB582 */ mul.s $f22, $f22, $f12
/* 37C5F0 E007A0B0 00000000 */ nop
/* 37C5F4 E007A0B4 460CC602 */ mul.s $f24, $f24, $f12
/* 37C5F8 E007A0B8 00000000 */ nop
/* 37C5FC E007A0BC 460CD682 */ mul.s $f26, $f26, $f12
/* 37C600 E007A0C0 00000000 */ nop
/* 37C604 E007A0C4 4614B032 */ c.eq.s $f22, $f20
/* 37C608 E007A0C8 00000000 */ nop
/* 37C60C E007A0CC 45010007 */ bc1t .LE007A0EC
/* 37C610 E007A0D0 4600A706 */ mov.s $f28, $f20
/* 37C614 E007A0D4 4600C007 */ neg.s $f0, $f24
/* 37C618 E007A0D8 46160783 */ div.s $f30, $f0, $f22
/* 37C61C E007A0DC 3C013F80 */ lui $at, 0x3f80
/* 37C620 E007A0E0 44817000 */ mtc1 $at, $f14
/* 37C624 E007A0E4 0801E849 */ j .LE007A124
/* 37C628 E007A0E8 E7AE0070 */ swc1 $f14, 0x70($sp)
.LE007A0EC:
/* 37C62C E007A0EC 4614C032 */ c.eq.s $f24, $f20
/* 37C630 E007A0F0 00000000 */ nop
/* 37C634 E007A0F4 45010007 */ bc1t .LE007A114
/* 37C638 E007A0F8 4600B007 */ neg.s $f0, $f22
/* 37C63C E007A0FC 46180003 */ div.s $f0, $f0, $f24
/* 37C640 E007A100 3C013F80 */ lui $at, 0x3f80
/* 37C644 E007A104 4481F000 */ mtc1 $at, $f30
/* 37C648 E007A108 4600A706 */ mov.s $f28, $f20
/* 37C64C E007A10C 0801E849 */ j .LE007A124
/* 37C650 E007A110 E7A00070 */ swc1 $f0, 0x70($sp)
.LE007A114:
/* 37C654 E007A114 3C013F80 */ lui $at, 0x3f80
/* 37C658 E007A118 4481F000 */ mtc1 $at, $f30
/* 37C65C E007A11C 461A0703 */ div.s $f28, $f0, $f26
/* 37C660 E007A120 E7B40070 */ swc1 $f20, 0x70($sp)
.LE007A124:
/* 37C664 E007A124 461EF002 */ mul.s $f0, $f30, $f30
/* 37C668 E007A128 00000000 */ nop
/* 37C66C E007A12C 461CE102 */ mul.s $f4, $f28, $f28
/* 37C670 E007A130 00000000 */ nop
/* 37C674 E007A134 C7B00070 */ lwc1 $f16, 0x70($sp)
/* 37C678 E007A138 46008386 */ mov.s $f14, $f16
/* 37C67C E007A13C 460E8082 */ mul.s $f2, $f16, $f14
/* 37C680 E007A140 00000000 */ nop
/* 37C684 E007A144 46020000 */ add.s $f0, $f0, $f2
/* 37C688 E007A148 46040300 */ add.s $f12, $f0, $f4
/* 37C68C E007A14C 44800000 */ mtc1 $zero, $f0
/* 37C690 E007A150 00000000 */ nop
/* 37C694 E007A154 46006032 */ c.eq.s $f12, $f0
/* 37C698 E007A158 00000000 */ nop
/* 37C69C E007A15C 450100DB */ bc1t .LE007A4CC
/* 37C6A0 E007A160 00000000 */ nop
/* 37C6A4 E007A164 0C080154 */ jal shim_sqrtf
/* 37C6A8 E007A168 00000000 */ nop
/* 37C6AC E007A16C 3C013F80 */ lui $at, 0x3f80
/* 37C6B0 E007A170 44811000 */ mtc1 $at, $f2
/* 37C6B4 E007A174 00000000 */ nop
/* 37C6B8 E007A178 46001303 */ div.s $f12, $f2, $f0
/* 37C6BC E007A17C 460CF782 */ mul.s $f30, $f30, $f12
/* 37C6C0 E007A180 00000000 */ nop
/* 37C6C4 E007A184 C7B00070 */ lwc1 $f16, 0x70($sp)
/* 37C6C8 E007A188 460C8402 */ mul.s $f16, $f16, $f12
/* 37C6CC E007A18C 00000000 */ nop
/* 37C6D0 E007A190 460CE702 */ mul.s $f28, $f28, $f12
/* 37C6D4 E007A194 00000000 */ nop
/* 37C6D8 E007A198 3C014100 */ lui $at, 0x4100
/* 37C6DC E007A19C 44810000 */ mtc1 $at, $f0
/* 37C6E0 E007A1A0 00000000 */ nop
/* 37C6E4 E007A1A4 4600B582 */ mul.s $f22, $f22, $f0
/* 37C6E8 E007A1A8 00000000 */ nop
/* 37C6EC E007A1AC 4600C602 */ mul.s $f24, $f24, $f0
/* 37C6F0 E007A1B0 00000000 */ nop
/* 37C6F4 E007A1B4 4600D682 */ mul.s $f26, $f26, $f0
/* 37C6F8 E007A1B8 00000000 */ nop
/* 37C6FC E007A1BC 4600F782 */ mul.s $f30, $f30, $f0
/* 37C700 E007A1C0 00000000 */ nop
/* 37C704 E007A1C4 0200202D */ daddu $a0, $s0, $zero
/* 37C708 E007A1C8 3C02E008 */ lui $v0, %hi(fx_3D_init)
/* 37C70C E007A1CC 2442A504 */ addiu $v0, $v0, %lo(fx_3D_init)
/* 37C710 E007A1D0 AC820008 */ sw $v0, 8($a0)
/* 37C714 E007A1D4 46008402 */ mul.s $f16, $f16, $f0
/* 37C718 E007A1D8 00000000 */ nop
/* 37C71C E007A1DC 3C02E008 */ lui $v0, %hi(fx_3D_update)
/* 37C720 E007A1E0 2442A50C */ addiu $v0, $v0, %lo(fx_3D_update)
/* 37C724 E007A1E4 AC82000C */ sw $v0, 0xc($a0)
/* 37C728 E007A1E8 3C02E008 */ lui $v0, %hi(fx_3D_render)
/* 37C72C E007A1EC 2442A840 */ addiu $v0, $v0, %lo(fx_3D_render)
/* 37C730 E007A1F0 AC800000 */ sw $zero, ($a0)
/* 37C734 E007A1F4 4600E702 */ mul.s $f28, $f28, $f0
/* 37C738 E007A1F8 00000000 */ nop
/* 37C73C E007A1FC E7B00070 */ swc1 $f16, 0x70($sp)
/* 37C740 E007A200 AC820010 */ sw $v0, 0x10($a0)
/* 37C744 E007A204 2402003D */ addiu $v0, $zero, 0x3d
/* 37C748 E007A208 AC800014 */ sw $zero, 0x14($a0)
/* 37C74C E007A20C 0C080124 */ jal shim_create_effect_instance
/* 37C750 E007A210 AC820004 */ sw $v0, 4($a0)
/* 37C754 E007A214 00122040 */ sll $a0, $s2, 1
/* 37C758 E007A218 00922021 */ addu $a0, $a0, $s2
/* 37C75C E007A21C 00042080 */ sll $a0, $a0, 2
/* 37C760 E007A220 00922021 */ addu $a0, $a0, $s2
/* 37C764 E007A224 000420C0 */ sll $a0, $a0, 3
/* 37C768 E007A228 0040A02D */ daddu $s4, $v0, $zero
/* 37C76C E007A22C 0C08012C */ jal shim_general_heap_malloc
/* 37C770 E007A230 AE920008 */ sw $s2, 8($s4)
/* 37C774 E007A234 0040182D */ daddu $v1, $v0, $zero
/* 37C778 E007A238 14600003 */ bnez $v1, .LE007A248
/* 37C77C E007A23C AE83000C */ sw $v1, 0xc($s4)
.LE007A240:
/* 37C780 E007A240 0801E890 */ j .LE007A240
/* 37C784 E007A244 00000000 */ nop
.LE007A248:
/* 37C788 E007A248 AC600004 */ sw $zero, 4($v1)
/* 37C78C E007A24C AC710000 */ sw $s1, ($v1)
/* 37C790 E007A250 C7AE00C4 */ lwc1 $f14, 0xc4($sp)
/* 37C794 E007A254 E46E0008 */ swc1 $f14, 8($v1)
/* 37C798 E007A258 C7B000C8 */ lwc1 $f16, 0xc8($sp)
/* 37C79C E007A25C 2402000A */ addiu $v0, $zero, 0xa
/* 37C7A0 E007A260 E470000C */ swc1 $f16, 0xc($v1)
/* 37C7A4 E007A264 C7AE00CC */ lwc1 $f14, 0xcc($sp)
/* 37C7A8 E007A268 24110001 */ addiu $s1, $zero, 1
/* 37C7AC E007A26C E46E0010 */ swc1 $f14, 0x10($v1)
/* 37C7B0 E007A270 AC62005C */ sw $v0, 0x5c($v1)
/* 37C7B4 E007A274 AC600060 */ sw $zero, 0x60($v1)
/* 37C7B8 E007A278 0232102A */ slt $v0, $s1, $s2
/* 37C7BC E007A27C 10400091 */ beqz $v0, .LE007A4C4
/* 37C7C0 E007A280 24630068 */ addiu $v1, $v1, 0x68
/* 37C7C4 E007A284 2470005C */ addiu $s0, $v1, 0x5c
/* 37C7C8 E007A288 24130048 */ addiu $s3, $zero, 0x48
/* 37C7CC E007A28C 3C014010 */ lui $at, 0x4010
/* 37C7D0 E007A290 4481A800 */ mtc1 $at, $f21
/* 37C7D4 E007A294 4480A000 */ mtc1 $zero, $f20
.LE007A298:
/* 37C7D8 E007A298 44938000 */ mtc1 $s3, $f16
/* 37C7DC E007A29C 00000000 */ nop
/* 37C7E0 E007A2A0 46808420 */ cvt.s.w $f16, $f16
/* 37C7E4 E007A2A4 4406B000 */ mfc1 $a2, $f22
/* 37C7E8 E007A2A8 4407C000 */ mfc1 $a3, $f24
/* 37C7EC E007A2AC 44058000 */ mfc1 $a1, $f16
/* 37C7F0 E007A2B0 27A40030 */ addiu $a0, $sp, 0x30
/* 37C7F4 E007A2B4 AE00FFAC */ sw $zero, -0x54($s0)
/* 37C7F8 E007A2B8 AE00FFB0 */ sw $zero, -0x50($s0)
/* 37C7FC E007A2BC AE00FFB4 */ sw $zero, -0x4c($s0)
/* 37C800 E007A2C0 0C080104 */ jal shim_guRotateF
/* 37C804 E007A2C4 E7BA0010 */ swc1 $f26, 0x10($sp)
/* 37C808 E007A2C8 3C01E008 */ lui $at, %hi(D_E007AC00)
/* 37C80C E007A2CC D42EAC00 */ ldc1 $f14, %lo(D_E007AC00)($at)
/* 37C810 E007A2D0 4600B107 */ neg.s $f4, $f22
/* 37C814 E007A2D4 46002121 */ cvt.d.s $f4, $f4
/* 37C818 E007A2D8 462E2102 */ mul.d $f4, $f4, $f14
/* 37C81C E007A2DC 00000000 */ nop
/* 37C820 E007A2E0 4600C087 */ neg.s $f2, $f24
/* 37C824 E007A2E4 460010A1 */ cvt.d.s $f2, $f2
/* 37C828 E007A2E8 462E1082 */ mul.d $f2, $f2, $f14
/* 37C82C E007A2EC 00000000 */ nop
/* 37C830 E007A2F0 4600D007 */ neg.s $f0, $f26
/* 37C834 E007A2F4 46000021 */ cvt.d.s $f0, $f0
/* 37C838 E007A2F8 462E0002 */ mul.d $f0, $f0, $f14
/* 37C83C E007A2FC 00000000 */ nop
/* 37C840 E007A300 46342102 */ mul.d $f4, $f4, $f20
/* 37C844 E007A304 00000000 */ nop
/* 37C848 E007A308 46341082 */ mul.d $f2, $f2, $f20
/* 37C84C E007A30C 00000000 */ nop
/* 37C850 E007A310 4616B180 */ add.s $f6, $f22, $f22
/* 37C854 E007A314 4618C200 */ add.s $f8, $f24, $f24
/* 37C858 E007A318 461AD280 */ add.s $f10, $f26, $f26
/* 37C85C E007A31C E606FFC4 */ swc1 $f6, -0x3c($s0)
/* 37C860 E007A320 46340002 */ mul.d $f0, $f0, $f20
/* 37C864 E007A324 00000000 */ nop
/* 37C868 E007A328 E606FFB8 */ swc1 $f6, -0x48($s0)
/* 37C86C E007A32C E608FFC8 */ swc1 $f8, -0x38($s0)
/* 37C870 E007A330 E608FFBC */ swc1 $f8, -0x44($s0)
/* 37C874 E007A334 E60AFFCC */ swc1 $f10, -0x34($s0)
/* 37C878 E007A338 E60AFFC0 */ swc1 $f10, -0x40($s0)
/* 37C87C E007A33C 46202120 */ cvt.s.d $f4, $f4
/* 37C880 E007A340 462010A0 */ cvt.s.d $f2, $f2
/* 37C884 E007A344 46200020 */ cvt.s.d $f0, $f0
/* 37C888 E007A348 E604FFDC */ swc1 $f4, -0x24($s0)
/* 37C88C E007A34C E602FFE0 */ swc1 $f2, -0x20($s0)
/* 37C890 E007A350 E600FFE4 */ swc1 $f0, -0x1c($s0)
/* 37C894 E007A354 C7A00030 */ lwc1 $f0, 0x30($sp)
/* 37C898 E007A358 461E0002 */ mul.s $f0, $f0, $f30
/* 37C89C E007A35C 00000000 */ nop
/* 37C8A0 E007A360 C7A40040 */ lwc1 $f4, 0x40($sp)
/* 37C8A4 E007A364 C7B00070 */ lwc1 $f16, 0x70($sp)
/* 37C8A8 E007A368 46102102 */ mul.s $f4, $f4, $f16
/* 37C8AC E007A36C 00000000 */ nop
/* 37C8B0 E007A370 C7A20050 */ lwc1 $f2, 0x50($sp)
/* 37C8B4 E007A374 461C1082 */ mul.s $f2, $f2, $f28
/* 37C8B8 E007A378 00000000 */ nop
/* 37C8BC E007A37C 46040000 */ add.s $f0, $f0, $f4
/* 37C8C0 E007A380 46020000 */ add.s $f0, $f0, $f2
/* 37C8C4 E007A384 3C01E008 */ lui $at, %hi(D_E007AC08)
/* 37C8C8 E007A388 D42EAC08 */ ldc1 $f14, %lo(D_E007AC08)($at)
/* 37C8CC E007A38C 46000021 */ cvt.d.s $f0, $f0
/* 37C8D0 E007A390 462E0002 */ mul.d $f0, $f0, $f14
/* 37C8D4 E007A394 00000000 */ nop
/* 37C8D8 E007A398 46340002 */ mul.d $f0, $f0, $f20
/* 37C8DC E007A39C 00000000 */ nop
/* 37C8E0 E007A3A0 46200020 */ cvt.s.d $f0, $f0
/* 37C8E4 E007A3A4 E600FFD0 */ swc1 $f0, -0x30($s0)
/* 37C8E8 E007A3A8 C7A00034 */ lwc1 $f0, 0x34($sp)
/* 37C8EC E007A3AC 461E0002 */ mul.s $f0, $f0, $f30
/* 37C8F0 E007A3B0 00000000 */ nop
/* 37C8F4 E007A3B4 C7A40044 */ lwc1 $f4, 0x44($sp)
/* 37C8F8 E007A3B8 46102102 */ mul.s $f4, $f4, $f16
/* 37C8FC E007A3BC 00000000 */ nop
/* 37C900 E007A3C0 C7A20054 */ lwc1 $f2, 0x54($sp)
/* 37C904 E007A3C4 461C1082 */ mul.s $f2, $f2, $f28
/* 37C908 E007A3C8 00000000 */ nop
/* 37C90C E007A3CC 46040000 */ add.s $f0, $f0, $f4
/* 37C910 E007A3D0 46020000 */ add.s $f0, $f0, $f2
/* 37C914 E007A3D4 46000021 */ cvt.d.s $f0, $f0
/* 37C918 E007A3D8 462E0002 */ mul.d $f0, $f0, $f14
/* 37C91C E007A3DC 00000000 */ nop
/* 37C920 E007A3E0 46340002 */ mul.d $f0, $f0, $f20
/* 37C924 E007A3E4 00000000 */ nop
/* 37C928 E007A3E8 46200020 */ cvt.s.d $f0, $f0
/* 37C92C E007A3EC E600FFD4 */ swc1 $f0, -0x2c($s0)
/* 37C930 E007A3F0 C7A00038 */ lwc1 $f0, 0x38($sp)
/* 37C934 E007A3F4 461E0002 */ mul.s $f0, $f0, $f30
/* 37C938 E007A3F8 00000000 */ nop
/* 37C93C E007A3FC C7A40048 */ lwc1 $f4, 0x48($sp)
/* 37C940 E007A400 46102102 */ mul.s $f4, $f4, $f16
/* 37C944 E007A404 00000000 */ nop
/* 37C948 E007A408 C7A20058 */ lwc1 $f2, 0x58($sp)
/* 37C94C E007A40C 461C1082 */ mul.s $f2, $f2, $f28
/* 37C950 E007A410 00000000 */ nop
/* 37C954 E007A414 46040000 */ add.s $f0, $f0, $f4
/* 37C958 E007A418 46020000 */ add.s $f0, $f0, $f2
/* 37C95C E007A41C 46000021 */ cvt.d.s $f0, $f0
/* 37C960 E007A420 462E0002 */ mul.d $f0, $f0, $f14
/* 37C964 E007A424 00000000 */ nop
/* 37C968 E007A428 26730048 */ addiu $s3, $s3, 0x48
/* 37C96C E007A42C 46340002 */ mul.d $f0, $f0, $f20
/* 37C970 E007A430 00000000 */ nop
/* 37C974 E007A434 3C0141A0 */ lui $at, 0x41a0
/* 37C978 E007A438 44813000 */ mtc1 $at, $f6
/* 37C97C E007A43C 3C014080 */ lui $at, 0x4080
/* 37C980 E007A440 44812000 */ mtc1 $at, $f4
/* 37C984 E007A444 3C013F00 */ lui $at, 0x3f00
/* 37C988 E007A448 44811000 */ mtc1 $at, $f2
/* 37C98C E007A44C 24040168 */ addiu $a0, $zero, 0x168
/* 37C990 E007A450 E606FFF4 */ swc1 $f6, -0xc($s0)
/* 37C994 E007A454 E604FFEC */ swc1 $f4, -0x14($s0)
/* 37C998 E007A458 E602FFE8 */ swc1 $f2, -0x18($s0)
/* 37C99C E007A45C 46200020 */ cvt.s.d $f0, $f0
/* 37C9A0 E007A460 0C080000 */ jal func_E0200000
/* 37C9A4 E007A464 E600FFD8 */ swc1 $f0, -0x28($s0)
/* 37C9A8 E007A468 3C046666 */ lui $a0, 0x6666
/* 37C9AC E007A46C 34846667 */ ori $a0, $a0, 0x6667
/* 37C9B0 E007A470 2623FFFF */ addiu $v1, $s1, -1
/* 37C9B4 E007A474 26310001 */ addiu $s1, $s1, 1
/* 37C9B8 E007A478 44820000 */ mtc1 $v0, $f0
/* 37C9BC E007A47C 00000000 */ nop
/* 37C9C0 E007A480 46800020 */ cvt.s.w $f0, $f0
/* 37C9C4 E007A484 240200FF */ addiu $v0, $zero, 0xff
/* 37C9C8 E007A488 AE02FFFC */ sw $v0, -4($s0)
/* 37C9CC E007A48C 2402000A */ addiu $v0, $zero, 0xa
/* 37C9D0 E007A490 00640018 */ mult $v1, $a0
/* 37C9D4 E007A494 00031FC3 */ sra $v1, $v1, 0x1f
/* 37C9D8 E007A498 E600FFF8 */ swc1 $f0, -8($s0)
/* 37C9DC E007A49C E600FFF0 */ swc1 $f0, -0x10($s0)
/* 37C9E0 E007A4A0 AE020000 */ sw $v0, ($s0)
/* 37C9E4 E007A4A4 00004010 */ mfhi $t0
/* 37C9E8 E007A4A8 00081043 */ sra $v0, $t0, 1
/* 37C9EC E007A4AC 00431023 */ subu $v0, $v0, $v1
/* 37C9F0 E007A4B0 00021040 */ sll $v0, $v0, 1
/* 37C9F4 E007A4B4 AE020008 */ sw $v0, 8($s0)
/* 37C9F8 E007A4B8 0232102A */ slt $v0, $s1, $s2
/* 37C9FC E007A4BC 1440FF76 */ bnez $v0, .LE007A298
/* 37CA00 E007A4C0 26100068 */ addiu $s0, $s0, 0x68
.LE007A4C4:
/* 37CA04 E007A4C4 8FA200E0 */ lw $v0, 0xe0($sp)
/* 37CA08 E007A4C8 AC540000 */ sw $s4, ($v0)
.LE007A4CC:
/* 37CA0C E007A4CC 8FBF008C */ lw $ra, 0x8c($sp)
/* 37CA10 E007A4D0 8FB40088 */ lw $s4, 0x88($sp)
/* 37CA14 E007A4D4 8FB30084 */ lw $s3, 0x84($sp)
/* 37CA18 E007A4D8 8FB20080 */ lw $s2, 0x80($sp)
/* 37CA1C E007A4DC 8FB1007C */ lw $s1, 0x7c($sp)
/* 37CA20 E007A4E0 8FB00078 */ lw $s0, 0x78($sp)
/* 37CA24 E007A4E4 D7BE00B8 */ ldc1 $f30, 0xb8($sp)
/* 37CA28 E007A4E8 D7BC00B0 */ ldc1 $f28, 0xb0($sp)
/* 37CA2C E007A4EC D7BA00A8 */ ldc1 $f26, 0xa8($sp)
/* 37CA30 E007A4F0 D7B800A0 */ ldc1 $f24, 0xa0($sp)
/* 37CA34 E007A4F4 D7B60098 */ ldc1 $f22, 0x98($sp)
/* 37CA38 E007A4F8 D7B40090 */ ldc1 $f20, 0x90($sp)
/* 37CA3C E007A4FC 03E00008 */ jr $ra
/* 37CA40 E007A500 27BD00C0 */ addiu $sp, $sp, 0xc0

View File

@ -1,239 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E007AC10
.double 0.03
dlabel D_E007AC18
.double 0.225
dlabel D_E007AC20
.double 0.2
dlabel D_E007AC28
.double 0.45
dlabel D_E007AC30
.double 0.8, 0.0
.section .text
glabel fx_3D_update
/* 37CA4C E007A50C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 37CA50 E007A510 AFBF0010 */ sw $ra, 0x10($sp)
/* 37CA54 E007A514 8C85000C */ lw $a1, 0xc($a0)
/* 37CA58 E007A518 8CA2005C */ lw $v0, 0x5c($a1)
/* 37CA5C E007A51C 8CA30060 */ lw $v1, 0x60($a1)
/* 37CA60 E007A520 8CA70004 */ lw $a3, 4($a1)
/* 37CA64 E007A524 2442FFFF */ addiu $v0, $v0, -1
/* 37CA68 E007A528 24630001 */ addiu $v1, $v1, 1
/* 37CA6C E007A52C ACA2005C */ sw $v0, 0x5c($a1)
/* 37CA70 E007A530 04410008 */ bgez $v0, .LE007A554
/* 37CA74 E007A534 ACA30060 */ sw $v1, 0x60($a1)
/* 37CA78 E007A538 24020002 */ addiu $v0, $zero, 2
/* 37CA7C E007A53C 14E20005 */ bne $a3, $v0, .LE007A554
/* 37CA80 E007A540 00000000 */ nop
/* 37CA84 E007A544 0C080128 */ jal shim_remove_effect
/* 37CA88 E007A548 00000000 */ nop
/* 37CA8C E007A54C 0801EA0D */ j .LE007A834
/* 37CA90 E007A550 00000000 */ nop
.LE007A554:
/* 37CA94 E007A554 8CA8005C */ lw $t0, 0x5c($a1)
/* 37CA98 E007A558 8C820008 */ lw $v0, 8($a0)
/* 37CA9C E007A55C 24060001 */ addiu $a2, $zero, 1
/* 37CAA0 E007A560 00C2102A */ slt $v0, $a2, $v0
/* 37CAA4 E007A564 104000AE */ beqz $v0, .LE007A820
/* 37CAA8 E007A568 24A50068 */ addiu $a1, $a1, 0x68
/* 37CAAC E007A56C 24A3004C */ addiu $v1, $a1, 0x4c
/* 37CAB0 E007A570 3C01E008 */ lui $at, %hi(D_E007AC10)
/* 37CAB4 E007A574 D430AC10 */ ldc1 $f16, %lo(D_E007AC10)($at)
/* 37CAB8 E007A578 3C01E008 */ lui $at, %hi(D_E007AC18)
/* 37CABC E007A57C D42EAC18 */ ldc1 $f14, %lo(D_E007AC18)($at)
.LE007A580:
/* 37CAC0 E007A580 8C620018 */ lw $v0, 0x18($v1)
/* 37CAC4 E007A584 18400003 */ blez $v0, .LE007A594
/* 37CAC8 E007A588 2442FFFF */ addiu $v0, $v0, -1
/* 37CACC E007A58C 1C40009F */ bgtz $v0, .LE007A80C
/* 37CAD0 E007A590 AC620018 */ sw $v0, 0x18($v1)
.LE007A594:
/* 37CAD4 E007A594 8C620010 */ lw $v0, 0x10($v1)
/* 37CAD8 E007A598 2442FFFF */ addiu $v0, $v0, -1
/* 37CADC E007A59C 0040282D */ daddu $a1, $v0, $zero
/* 37CAE0 E007A5A0 04A10024 */ bgez $a1, .LE007A634
/* 37CAE4 E007A5A4 AC650010 */ sw $a1, 0x10($v1)
/* 37CAE8 E007A5A8 54E0001B */ bnel $a3, $zero, .LE007A618
/* 37CAEC E007A5AC AC60FFBC */ sw $zero, -0x44($v1)
/* 37CAF0 E007A5B0 24050009 */ addiu $a1, $zero, 9
/* 37CAF4 E007A5B4 C460FFD4 */ lwc1 $f0, -0x2c($v1)
/* 37CAF8 E007A5B8 C462FFD8 */ lwc1 $f2, -0x28($v1)
/* 37CAFC E007A5BC C464FFDC */ lwc1 $f4, -0x24($v1)
/* 37CB00 E007A5C0 3C013F00 */ lui $at, 0x3f00
/* 37CB04 E007A5C4 44813000 */ mtc1 $at, $f6
/* 37CB08 E007A5C8 3C014080 */ lui $at, 0x4080
/* 37CB0C E007A5CC 44814000 */ mtc1 $at, $f8
/* 37CB10 E007A5D0 3C0141A0 */ lui $at, 0x41a0
/* 37CB14 E007A5D4 44815000 */ mtc1 $at, $f10
/* 37CB18 E007A5D8 C46C0008 */ lwc1 $f12, 8($v1)
/* 37CB1C E007A5DC 240200FF */ addiu $v0, $zero, 0xff
/* 37CB20 E007A5E0 AC62000C */ sw $v0, 0xc($v1)
/* 37CB24 E007A5E4 00A0102D */ daddu $v0, $a1, $zero
/* 37CB28 E007A5E8 AC60FFBC */ sw $zero, -0x44($v1)
/* 37CB2C E007A5EC AC60FFC0 */ sw $zero, -0x40($v1)
/* 37CB30 E007A5F0 AC60FFC4 */ sw $zero, -0x3c($v1)
/* 37CB34 E007A5F4 AC620010 */ sw $v0, 0x10($v1)
/* 37CB38 E007A5F8 E460FFC8 */ swc1 $f0, -0x38($v1)
/* 37CB3C E007A5FC E462FFCC */ swc1 $f2, -0x34($v1)
/* 37CB40 E007A600 E464FFD0 */ swc1 $f4, -0x30($v1)
/* 37CB44 E007A604 E466FFF8 */ swc1 $f6, -8($v1)
/* 37CB48 E007A608 E468FFFC */ swc1 $f8, -4($v1)
/* 37CB4C E007A60C E46A0004 */ swc1 $f10, 4($v1)
/* 37CB50 E007A610 0801E98D */ j .LE007A634
/* 37CB54 E007A614 E46C0000 */ swc1 $f12, ($v1)
.LE007A618:
/* 37CB58 E007A618 AC60FFC0 */ sw $zero, -0x40($v1)
/* 37CB5C E007A61C AC60FFC4 */ sw $zero, -0x3c($v1)
/* 37CB60 E007A620 AC60FFC8 */ sw $zero, -0x38($v1)
/* 37CB64 E007A624 AC60FFCC */ sw $zero, -0x34($v1)
/* 37CB68 E007A628 AC60FFD0 */ sw $zero, -0x30($v1)
/* 37CB6C E007A62C AC60000C */ sw $zero, 0xc($v1)
/* 37CB70 E007A630 AC600010 */ sw $zero, 0x10($v1)
.LE007A634:
/* 37CB74 E007A634 24A2FFFC */ addiu $v0, $a1, -4
/* 37CB78 E007A638 2C420003 */ sltiu $v0, $v0, 3
/* 37CB7C E007A63C 1040000D */ beqz $v0, .LE007A674
/* 37CB80 E007A640 28A20008 */ slti $v0, $a1, 8
/* 37CB84 E007A644 C466FFC8 */ lwc1 $f6, -0x38($v1)
/* 37CB88 E007A648 C460FFE0 */ lwc1 $f0, -0x20($v1)
/* 37CB8C E007A64C C464FFCC */ lwc1 $f4, -0x34($v1)
/* 37CB90 E007A650 46003180 */ add.s $f6, $f6, $f0
/* 37CB94 E007A654 C460FFE4 */ lwc1 $f0, -0x1c($v1)
/* 37CB98 E007A658 C462FFD0 */ lwc1 $f2, -0x30($v1)
/* 37CB9C E007A65C 46002100 */ add.s $f4, $f4, $f0
/* 37CBA0 E007A660 C460FFE8 */ lwc1 $f0, -0x18($v1)
/* 37CBA4 E007A664 46001080 */ add.s $f2, $f2, $f0
/* 37CBA8 E007A668 E466FFC8 */ swc1 $f6, -0x38($v1)
/* 37CBAC E007A66C E464FFCC */ swc1 $f4, -0x34($v1)
/* 37CBB0 E007A670 E462FFD0 */ swc1 $f2, -0x30($v1)
.LE007A674:
/* 37CBB4 E007A674 10400023 */ beqz $v0, .LE007A704
/* 37CBB8 E007A678 00000000 */ nop
/* 37CBBC E007A67C C468FFF8 */ lwc1 $f8, -8($v1)
/* 37CBC0 E007A680 3C014008 */ lui $at, 0x4008
/* 37CBC4 E007A684 44813800 */ mtc1 $at, $f7
/* 37CBC8 E007A688 44803000 */ mtc1 $zero, $f6
/* 37CBCC E007A68C 46004221 */ cvt.d.s $f8, $f8
/* 37CBD0 E007A690 46283181 */ sub.d $f6, $f6, $f8
/* 37CBD4 E007A694 46303182 */ mul.d $f6, $f6, $f16
/* 37CBD8 E007A698 00000000 */ nop
/* 37CBDC E007A69C 3C014020 */ lui $at, 0x4020
/* 37CBE0 E007A6A0 44810800 */ mtc1 $at, $f1
/* 37CBE4 E007A6A4 44800000 */ mtc1 $zero, $f0
/* 37CBE8 E007A6A8 00000000 */ nop
/* 37CBEC E007A6AC 46203182 */ mul.d $f6, $f6, $f0
/* 37CBF0 E007A6B0 00000000 */ nop
/* 37CBF4 E007A6B4 C464FFFC */ lwc1 $f4, -4($v1)
/* 37CBF8 E007A6B8 3C013FE0 */ lui $at, 0x3fe0
/* 37CBFC E007A6BC 44810800 */ mtc1 $at, $f1
/* 37CC00 E007A6C0 44800000 */ mtc1 $zero, $f0
/* 37CC04 E007A6C4 46002121 */ cvt.d.s $f4, $f4
/* 37CC08 E007A6C8 46240001 */ sub.d $f0, $f0, $f4
/* 37CC0C E007A6CC 46300002 */ mul.d $f0, $f0, $f16
/* 37CC10 E007A6D0 00000000 */ nop
/* 37CC14 E007A6D4 3C014018 */ lui $at, 0x4018
/* 37CC18 E007A6D8 44811800 */ mtc1 $at, $f3
/* 37CC1C E007A6DC 44801000 */ mtc1 $zero, $f2
/* 37CC20 E007A6E0 00000000 */ nop
/* 37CC24 E007A6E4 46220002 */ mul.d $f0, $f0, $f2
/* 37CC28 E007A6E8 00000000 */ nop
/* 37CC2C E007A6EC 46264200 */ add.d $f8, $f8, $f6
/* 37CC30 E007A6F0 46202100 */ add.d $f4, $f4, $f0
/* 37CC34 E007A6F4 46204220 */ cvt.s.d $f8, $f8
/* 37CC38 E007A6F8 E468FFF8 */ swc1 $f8, -8($v1)
/* 37CC3C E007A6FC 46202120 */ cvt.s.d $f4, $f4
/* 37CC40 E007A700 E464FFFC */ swc1 $f4, -4($v1)
.LE007A704:
/* 37CC44 E007A704 C466FFC8 */ lwc1 $f6, -0x38($v1)
/* 37CC48 E007A708 C460FFEC */ lwc1 $f0, -0x14($v1)
/* 37CC4C E007A70C C462FFCC */ lwc1 $f2, -0x34($v1)
/* 37CC50 E007A710 46003180 */ add.s $f6, $f6, $f0
/* 37CC54 E007A714 C460FFF0 */ lwc1 $f0, -0x10($v1)
/* 37CC58 E007A718 C464FFD0 */ lwc1 $f4, -0x30($v1)
/* 37CC5C E007A71C 46001080 */ add.s $f2, $f2, $f0
/* 37CC60 E007A720 C460FFF4 */ lwc1 $f0, -0xc($v1)
/* 37CC64 E007A724 46002100 */ add.s $f4, $f4, $f0
/* 37CC68 E007A728 44800000 */ mtc1 $zero, $f0
/* 37CC6C E007A72C E466FFC8 */ swc1 $f6, -0x38($v1)
/* 37CC70 E007A730 4600103C */ c.lt.s $f2, $f0
/* 37CC74 E007A734 E462FFCC */ swc1 $f2, -0x34($v1)
/* 37CC78 E007A738 45000024 */ bc1f .LE007A7CC
/* 37CC7C E007A73C E464FFD0 */ swc1 $f4, -0x30($v1)
/* 37CC80 E007A740 460031A1 */ cvt.d.s $f6, $f6
/* 37CC84 E007A744 462E3182 */ mul.d $f6, $f6, $f14
/* 37CC88 E007A748 00000000 */ nop
/* 37CC8C E007A74C C4680004 */ lwc1 $f8, 4($v1)
/* 37CC90 E007A750 3C01E008 */ lui $at, %hi(D_E007AC20)
/* 37CC94 E007A754 D420AC20 */ ldc1 $f0, %lo(D_E007AC20)($at)
/* 37CC98 E007A758 46004221 */ cvt.d.s $f8, $f8
/* 37CC9C E007A75C 46204202 */ mul.d $f8, $f8, $f0
/* 37CCA0 E007A760 00000000 */ nop
/* 37CCA4 E007A764 46001106 */ mov.s $f4, $f2
/* 37CCA8 E007A768 3C01E008 */ lui $at, %hi(D_E007AC28)
/* 37CCAC E007A76C D420AC28 */ ldc1 $f0, %lo(D_E007AC28)($at)
/* 37CCB0 E007A770 46002121 */ cvt.d.s $f4, $f4
/* 37CCB4 E007A774 46202102 */ mul.d $f4, $f4, $f0
/* 37CCB8 E007A778 00000000 */ nop
/* 37CCBC E007A77C 3C01E008 */ lui $at, %hi(D_E007AC30)
/* 37CCC0 E007A780 D420AC30 */ ldc1 $f0, %lo(D_E007AC30)($at)
/* 37CCC4 E007A784 C462000C */ lwc1 $f2, 0xc($v1)
/* 37CCC8 E007A788 468010A1 */ cvt.d.w $f2, $f2
/* 37CCCC E007A78C 46201082 */ mul.d $f2, $f2, $f0
/* 37CCD0 E007A790 00000000 */ nop
/* 37CCD4 E007A794 C460FFD0 */ lwc1 $f0, -0x30($v1)
/* 37CCD8 E007A798 46000021 */ cvt.d.s $f0, $f0
/* 37CCDC E007A79C 462E0002 */ mul.d $f0, $f0, $f14
/* 37CCE0 E007A7A0 00000000 */ nop
/* 37CCE4 E007A7A4 462031A0 */ cvt.s.d $f6, $f6
/* 37CCE8 E007A7A8 E466FFC8 */ swc1 $f6, -0x38($v1)
/* 37CCEC E007A7AC 46204220 */ cvt.s.d $f8, $f8
/* 37CCF0 E007A7B0 E4680004 */ swc1 $f8, 4($v1)
/* 37CCF4 E007A7B4 46202120 */ cvt.s.d $f4, $f4
/* 37CCF8 E007A7B8 E464FFCC */ swc1 $f4, -0x34($v1)
/* 37CCFC E007A7BC 4620148D */ trunc.w.d $f18, $f2
/* 37CD00 E007A7C0 E472000C */ swc1 $f18, 0xc($v1)
/* 37CD04 E007A7C4 46200020 */ cvt.s.d $f0, $f0
/* 37CD08 E007A7C8 E460FFD0 */ swc1 $f0, -0x30($v1)
.LE007A7CC:
/* 37CD0C E007A7CC C468FFBC */ lwc1 $f8, -0x44($v1)
/* 37CD10 E007A7D0 C460FFC8 */ lwc1 $f0, -0x38($v1)
/* 37CD14 E007A7D4 C466FFC0 */ lwc1 $f6, -0x40($v1)
/* 37CD18 E007A7D8 46004200 */ add.s $f8, $f8, $f0
/* 37CD1C E007A7DC C460FFCC */ lwc1 $f0, -0x34($v1)
/* 37CD20 E007A7E0 C464FFC4 */ lwc1 $f4, -0x3c($v1)
/* 37CD24 E007A7E4 46003180 */ add.s $f6, $f6, $f0
/* 37CD28 E007A7E8 C460FFD0 */ lwc1 $f0, -0x30($v1)
/* 37CD2C E007A7EC C4620004 */ lwc1 $f2, 4($v1)
/* 37CD30 E007A7F0 46002100 */ add.s $f4, $f4, $f0
/* 37CD34 E007A7F4 C4600000 */ lwc1 $f0, ($v1)
/* 37CD38 E007A7F8 E468FFBC */ swc1 $f8, -0x44($v1)
/* 37CD3C E007A7FC 46020000 */ add.s $f0, $f0, $f2
/* 37CD40 E007A800 E466FFC0 */ swc1 $f6, -0x40($v1)
/* 37CD44 E007A804 E464FFC4 */ swc1 $f4, -0x3c($v1)
/* 37CD48 E007A808 E4600000 */ swc1 $f0, ($v1)
.LE007A80C:
/* 37CD4C E007A80C 24C60001 */ addiu $a2, $a2, 1
/* 37CD50 E007A810 8C820008 */ lw $v0, 8($a0)
/* 37CD54 E007A814 00C2102A */ slt $v0, $a2, $v0
/* 37CD58 E007A818 1440FF59 */ bnez $v0, .LE007A580
/* 37CD5C E007A81C 24630068 */ addiu $v1, $v1, 0x68
.LE007A820:
/* 37CD60 E007A820 05010004 */ bgez $t0, .LE007A834
/* 37CD64 E007A824 2402000A */ addiu $v0, $zero, 0xa
/* 37CD68 E007A828 8C85000C */ lw $a1, 0xc($a0)
/* 37CD6C E007A82C ACA2005C */ sw $v0, 0x5c($a1)
/* 37CD70 E007A830 ACA00060 */ sw $zero, 0x60($a1)
.LE007A834:
/* 37CD74 E007A834 8FBF0010 */ lw $ra, 0x10($sp)
/* 37CD78 E007A838 03E00008 */ jr $ra
/* 37CD7C E007A83C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,261 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel fx_46_appendGfx
/* 38E4FC E008C6FC 27BDFF10 */ addiu $sp, $sp, -0xf0
/* 38E500 E008C700 AFBE00C8 */ sw $fp, 0xc8($sp)
/* 38E504 E008C704 0080F02D */ daddu $fp, $a0, $zero
/* 38E508 E008C708 3C06DB06 */ lui $a2, 0xdb06
/* 38E50C E008C70C 34C60024 */ ori $a2, $a2, 0x24
/* 38E510 E008C710 27A40020 */ addiu $a0, $sp, 0x20
/* 38E514 E008C714 AFB000A8 */ sw $s0, 0xa8($sp)
/* 38E518 E008C718 3C100001 */ lui $s0, 1
/* 38E51C E008C71C 36101630 */ ori $s0, $s0, 0x1630
/* 38E520 E008C720 AFB300B4 */ sw $s3, 0xb4($sp)
/* 38E524 E008C724 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 38E528 E008C728 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 38E52C E008C72C AFBF00CC */ sw $ra, 0xcc($sp)
/* 38E530 E008C730 AFB700C4 */ sw $s7, 0xc4($sp)
/* 38E534 E008C734 AFB600C0 */ sw $s6, 0xc0($sp)
/* 38E538 E008C738 AFB500BC */ sw $s5, 0xbc($sp)
/* 38E53C E008C73C AFB400B8 */ sw $s4, 0xb8($sp)
/* 38E540 E008C740 AFB200B0 */ sw $s2, 0xb0($sp)
/* 38E544 E008C744 AFB100AC */ sw $s1, 0xac($sp)
/* 38E548 E008C748 F7BA00E8 */ sdc1 $f26, 0xe8($sp)
/* 38E54C E008C74C F7B800E0 */ sdc1 $f24, 0xe0($sp)
/* 38E550 E008C750 F7B600D8 */ sdc1 $f22, 0xd8($sp)
/* 38E554 E008C754 F7B400D0 */ sdc1 $f20, 0xd0($sp)
/* 38E558 E008C758 8E630000 */ lw $v1, ($s3)
/* 38E55C E008C75C 8FD1000C */ lw $s1, 0xc($fp)
/* 38E560 E008C760 0060282D */ daddu $a1, $v1, $zero
/* 38E564 E008C764 24630008 */ addiu $v1, $v1, 8
/* 38E568 E008C768 AE630000 */ sw $v1, ($s3)
/* 38E56C E008C76C 8E28001C */ lw $t0, 0x1c($s1)
/* 38E570 E008C770 AFA800A4 */ sw $t0, 0xa4($sp)
/* 38E574 E008C774 C6380014 */ lwc1 $f24, 0x14($s1)
/* 38E578 E008C778 C6360018 */ lwc1 $f22, 0x18($s1)
/* 38E57C E008C77C 8E280000 */ lw $t0, ($s1)
/* 38E580 E008C780 3C02E700 */ lui $v0, 0xe700
/* 38E584 E008C784 AFA800A0 */ sw $t0, 0xa0($sp)
/* 38E588 E008C788 ACA20000 */ sw $v0, ($a1)
/* 38E58C E008C78C 24620008 */ addiu $v0, $v1, 8
/* 38E590 E008C790 ACA00004 */ sw $zero, 4($a1)
/* 38E594 E008C794 AE620000 */ sw $v0, ($s3)
/* 38E598 E008C798 AC660000 */ sw $a2, ($v1)
/* 38E59C E008C79C 8FC50010 */ lw $a1, 0x10($fp)
/* 38E5A0 E008C7A0 24620010 */ addiu $v0, $v1, 0x10
/* 38E5A4 E008C7A4 AE620000 */ sw $v0, ($s3)
/* 38E5A8 E008C7A8 8CA5001C */ lw $a1, 0x1c($a1)
/* 38E5AC E008C7AC 3C02DE00 */ lui $v0, 0xde00
/* 38E5B0 E008C7B0 AC620008 */ sw $v0, 8($v1)
/* 38E5B4 E008C7B4 3C020900 */ lui $v0, 0x900
/* 38E5B8 E008C7B8 24420420 */ addiu $v0, $v0, 0x420
/* 38E5BC E008C7BC AC62000C */ sw $v0, 0xc($v1)
/* 38E5C0 E008C7C0 3C028000 */ lui $v0, 0x8000
/* 38E5C4 E008C7C4 00A22821 */ addu $a1, $a1, $v0
/* 38E5C8 E008C7C8 AC650004 */ sw $a1, 4($v1)
/* 38E5CC E008C7CC 8E250008 */ lw $a1, 8($s1)
/* 38E5D0 E008C7D0 8E26000C */ lw $a2, 0xc($s1)
/* 38E5D4 E008C7D4 8E270010 */ lw $a3, 0x10($s1)
/* 38E5D8 E008C7D8 4480A000 */ mtc1 $zero, $f20
/* 38E5DC E008C7DC 0C080108 */ jal shim_guTranslateF
/* 38E5E0 E008C7E0 24160001 */ addiu $s6, $zero, 1
/* 38E5E4 E008C7E4 27B20060 */ addiu $s2, $sp, 0x60
/* 38E5E8 E008C7E8 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 38E5EC E008C7EC 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 38E5F0 E008C7F0 4406A000 */ mfc1 $a2, $f20
/* 38E5F4 E008C7F4 00031080 */ sll $v0, $v1, 2
/* 38E5F8 E008C7F8 00431021 */ addu $v0, $v0, $v1
/* 38E5FC E008C7FC 00021080 */ sll $v0, $v0, 2
/* 38E600 E008C800 00431023 */ subu $v0, $v0, $v1
/* 38E604 E008C804 000218C0 */ sll $v1, $v0, 3
/* 38E608 E008C808 00431021 */ addu $v0, $v0, $v1
/* 38E60C E008C80C 000210C0 */ sll $v0, $v0, 3
/* 38E610 E008C810 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 38E614 E008C814 00220821 */ addu $at, $at, $v0
/* 38E618 E008C818 C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 38E61C E008C81C 3C073F80 */ lui $a3, 0x3f80
/* 38E620 E008C820 46000007 */ neg.s $f0, $f0
/* 38E624 E008C824 44050000 */ mfc1 $a1, $f0
/* 38E628 E008C828 0240202D */ daddu $a0, $s2, $zero
/* 38E62C E008C82C 0C080104 */ jal shim_guRotateF
/* 38E630 E008C830 E7B40010 */ swc1 $f20, 0x10($sp)
/* 38E634 E008C834 0240202D */ daddu $a0, $s2, $zero
/* 38E638 E008C838 27A50020 */ addiu $a1, $sp, 0x20
/* 38E63C E008C83C 0C080114 */ jal shim_guMtxCatF
/* 38E640 E008C840 00A0302D */ daddu $a2, $a1, $zero
/* 38E644 E008C844 27A40020 */ addiu $a0, $sp, 0x20
/* 38E648 E008C848 3C148007 */ lui $s4, %hi(gMatrixListPos)
/* 38E64C E008C84C 269441F0 */ addiu $s4, $s4, %lo(gMatrixListPos)
/* 38E650 E008C850 3C15800A */ lui $s5, %hi(gDisplayContext)
/* 38E654 E008C854 26B5A674 */ addiu $s5, $s5, %lo(gDisplayContext)
/* 38E658 E008C858 96850000 */ lhu $a1, ($s4)
/* 38E65C E008C85C 8EA20000 */ lw $v0, ($s5)
/* 38E660 E008C860 00052980 */ sll $a1, $a1, 6
/* 38E664 E008C864 00B02821 */ addu $a1, $a1, $s0
/* 38E668 E008C868 0C080118 */ jal shim_guMtxF2L
/* 38E66C E008C86C 00452821 */ addu $a1, $v0, $a1
/* 38E670 E008C870 8E620000 */ lw $v0, ($s3)
/* 38E674 E008C874 26310048 */ addiu $s1, $s1, 0x48
/* 38E678 E008C878 0040282D */ daddu $a1, $v0, $zero
/* 38E67C E008C87C 24420008 */ addiu $v0, $v0, 8
/* 38E680 E008C880 AE620000 */ sw $v0, ($s3)
/* 38E684 E008C884 96840000 */ lhu $a0, ($s4)
/* 38E688 E008C888 3C02DA38 */ lui $v0, 0xda38
/* 38E68C E008C88C ACA20000 */ sw $v0, ($a1)
/* 38E690 E008C890 8EA30000 */ lw $v1, ($s5)
/* 38E694 E008C894 3082FFFF */ andi $v0, $a0, 0xffff
/* 38E698 E008C898 00021180 */ sll $v0, $v0, 6
/* 38E69C E008C89C 00501021 */ addu $v0, $v0, $s0
/* 38E6A0 E008C8A0 00621821 */ addu $v1, $v1, $v0
/* 38E6A4 E008C8A4 ACA30004 */ sw $v1, 4($a1)
/* 38E6A8 E008C8A8 8FC20008 */ lw $v0, 8($fp)
/* 38E6AC E008C8AC 00962021 */ addu $a0, $a0, $s6
/* 38E6B0 E008C8B0 02C2102A */ slt $v0, $s6, $v0
/* 38E6B4 E008C8B4 10400073 */ beqz $v0, .LE008CA84
/* 38E6B8 E008C8B8 A6840000 */ sh $a0, ($s4)
/* 38E6BC E008C8BC 3C014040 */ lui $at, 0x4040
/* 38E6C0 E008C8C0 4481D000 */ mtc1 $at, $f26
/* 38E6C4 E008C8C4 02A0B82D */ daddu $s7, $s5, $zero
/* 38E6C8 E008C8C8 0280A82D */ daddu $s5, $s4, $zero
/* 38E6CC E008C8CC 3C140001 */ lui $s4, 1
/* 38E6D0 E008C8D0 36941630 */ ori $s4, $s4, 0x1630
/* 38E6D4 E008C8D4 26300046 */ addiu $s0, $s1, 0x46
.LE008C8D8:
/* 38E6D8 E008C8D8 C600FFCE */ lwc1 $f0, -0x32($s0)
/* 38E6DC E008C8DC 4600C002 */ mul.s $f0, $f24, $f0
/* 38E6E0 E008C8E0 00000000 */ nop
/* 38E6E4 E008C8E4 4406A000 */ mfc1 $a2, $f20
/* 38E6E8 E008C8E8 E7A00010 */ swc1 $f0, 0x10($sp)
/* 38E6EC E008C8EC C600FFC2 */ lwc1 $f0, -0x3e($s0)
/* 38E6F0 E008C8F0 E7A00014 */ swc1 $f0, 0x14($sp)
/* 38E6F4 E008C8F4 C600FFC6 */ lwc1 $f0, -0x3a($s0)
/* 38E6F8 E008C8F8 E7A00018 */ swc1 $f0, 0x18($sp)
/* 38E6FC E008C8FC C600FFCA */ lwc1 $f0, -0x36($s0)
/* 38E700 E008C900 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 38E704 E008C904 8E05FFE6 */ lw $a1, -0x1a($s0)
/* 38E708 E008C908 8E07FFEE */ lw $a3, -0x12($s0)
/* 38E70C E008C90C 0C080180 */ jal shim_guPositionF
/* 38E710 E008C910 27A40020 */ addiu $a0, $sp, 0x20
/* 38E714 E008C914 E7B40010 */ swc1 $f20, 0x10($sp)
/* 38E718 E008C918 8E05FFEA */ lw $a1, -0x16($s0)
/* 38E71C E008C91C 4406A000 */ mfc1 $a2, $f20
/* 38E720 E008C920 3C073F80 */ lui $a3, 0x3f80
/* 38E724 E008C924 0C080104 */ jal shim_guRotateF
/* 38E728 E008C928 0240202D */ daddu $a0, $s2, $zero
/* 38E72C E008C92C 0240202D */ daddu $a0, $s2, $zero
/* 38E730 E008C930 27A50020 */ addiu $a1, $sp, 0x20
/* 38E734 E008C934 0C080114 */ jal shim_guMtxCatF
/* 38E738 E008C938 00A0302D */ daddu $a2, $a1, $zero
/* 38E73C E008C93C 8FA800A0 */ lw $t0, 0xa0($sp)
/* 38E740 E008C940 29020008 */ slti $v0, $t0, 8
/* 38E744 E008C944 1040000B */ beqz $v0, .LE008C974
/* 38E748 E008C948 00000000 */ nop
/* 38E74C E008C94C 4616C001 */ sub.s $f0, $f24, $f22
/* 38E750 E008C950 461A0002 */ mul.s $f0, $f0, $f26
/* 38E754 E008C954 00000000 */ nop
/* 38E758 E008C958 46160003 */ div.s $f0, $f0, $f22
/* 38E75C E008C95C 4600D001 */ sub.s $f0, $f26, $f0
/* 38E760 E008C960 4406A000 */ mfc1 $a2, $f20
/* 38E764 E008C964 4407A000 */ mfc1 $a3, $f20
/* 38E768 E008C968 44050000 */ mfc1 $a1, $f0
/* 38E76C E008C96C 08023260 */ j .LE008C980
/* 38E770 E008C970 00000000 */ nop
.LE008C974:
/* 38E774 E008C974 3C054000 */ lui $a1, 0x4000
/* 38E778 E008C978 4406A000 */ mfc1 $a2, $f20
/* 38E77C E008C97C 4407A000 */ mfc1 $a3, $f20
.LE008C980:
/* 38E780 E008C980 0C080108 */ jal shim_guTranslateF
/* 38E784 E008C984 0240202D */ daddu $a0, $s2, $zero
/* 38E788 E008C988 0240202D */ daddu $a0, $s2, $zero
/* 38E78C E008C98C 27A50020 */ addiu $a1, $sp, 0x20
/* 38E790 E008C990 0C080114 */ jal shim_guMtxCatF
/* 38E794 E008C994 00A0302D */ daddu $a2, $a1, $zero
/* 38E798 E008C998 27A40020 */ addiu $a0, $sp, 0x20
/* 38E79C E008C99C 26D60001 */ addiu $s6, $s6, 1
/* 38E7A0 E008C9A0 8E630000 */ lw $v1, ($s3)
/* 38E7A4 E008C9A4 96A50000 */ lhu $a1, ($s5)
/* 38E7A8 E008C9A8 8EE20000 */ lw $v0, ($s7)
/* 38E7AC E008C9AC 0060382D */ daddu $a3, $v1, $zero
/* 38E7B0 E008C9B0 24630008 */ addiu $v1, $v1, 8
/* 38E7B4 E008C9B4 00052980 */ sll $a1, $a1, 6
/* 38E7B8 E008C9B8 00B42821 */ addu $a1, $a1, $s4
/* 38E7BC E008C9BC 00452821 */ addu $a1, $v0, $a1
/* 38E7C0 E008C9C0 3C02FA00 */ lui $v0, 0xfa00
/* 38E7C4 E008C9C4 AE630000 */ sw $v1, ($s3)
/* 38E7C8 E008C9C8 ACE20000 */ sw $v0, ($a3)
/* 38E7CC E008C9CC 9203FFFE */ lbu $v1, -2($s0)
/* 38E7D0 E008C9D0 9202FFFF */ lbu $v0, -1($s0)
/* 38E7D4 E008C9D4 92060000 */ lbu $a2, ($s0)
/* 38E7D8 E008C9D8 26100048 */ addiu $s0, $s0, 0x48
/* 38E7DC E008C9DC 8FA800A4 */ lw $t0, 0xa4($sp)
/* 38E7E0 E008C9E0 00031E00 */ sll $v1, $v1, 0x18
/* 38E7E4 E008C9E4 00021400 */ sll $v0, $v0, 0x10
/* 38E7E8 E008C9E8 00621825 */ or $v1, $v1, $v0
/* 38E7EC E008C9EC 00063200 */ sll $a2, $a2, 8
/* 38E7F0 E008C9F0 00661825 */ or $v1, $v1, $a2
/* 38E7F4 E008C9F4 310200FF */ andi $v0, $t0, 0xff
/* 38E7F8 E008C9F8 00621825 */ or $v1, $v1, $v0
/* 38E7FC E008C9FC 0C080118 */ jal shim_guMtxF2L
/* 38E800 E008CA00 ACE30004 */ sw $v1, 4($a3)
/* 38E804 E008CA04 3C06D838 */ lui $a2, 0xd838
/* 38E808 E008CA08 8E640000 */ lw $a0, ($s3)
/* 38E80C E008CA0C 34C60002 */ ori $a2, $a2, 2
/* 38E810 E008CA10 0080282D */ daddu $a1, $a0, $zero
/* 38E814 E008CA14 24840008 */ addiu $a0, $a0, 8
/* 38E818 E008CA18 AE640000 */ sw $a0, ($s3)
/* 38E81C E008CA1C 96A20000 */ lhu $v0, ($s5)
/* 38E820 E008CA20 3C03DA38 */ lui $v1, 0xda38
/* 38E824 E008CA24 ACA30000 */ sw $v1, ($a1)
/* 38E828 E008CA28 24430001 */ addiu $v1, $v0, 1
/* 38E82C E008CA2C 3042FFFF */ andi $v0, $v0, 0xffff
/* 38E830 E008CA30 00021180 */ sll $v0, $v0, 6
/* 38E834 E008CA34 A6A30000 */ sh $v1, ($s5)
/* 38E838 E008CA38 8EE30000 */ lw $v1, ($s7)
/* 38E83C E008CA3C 00541021 */ addu $v0, $v0, $s4
/* 38E840 E008CA40 00621821 */ addu $v1, $v1, $v0
/* 38E844 E008CA44 24820008 */ addiu $v0, $a0, 8
/* 38E848 E008CA48 ACA30004 */ sw $v1, 4($a1)
/* 38E84C E008CA4C AE620000 */ sw $v0, ($s3)
/* 38E850 E008CA50 3C02DE00 */ lui $v0, 0xde00
/* 38E854 E008CA54 AC820000 */ sw $v0, ($a0)
/* 38E858 E008CA58 3C020900 */ lui $v0, 0x900
/* 38E85C E008CA5C 244203A0 */ addiu $v0, $v0, 0x3a0
/* 38E860 E008CA60 AC820004 */ sw $v0, 4($a0)
/* 38E864 E008CA64 24020040 */ addiu $v0, $zero, 0x40
/* 38E868 E008CA68 AC860008 */ sw $a2, 8($a0)
/* 38E86C E008CA6C AC82000C */ sw $v0, 0xc($a0)
/* 38E870 E008CA70 8FC20008 */ lw $v0, 8($fp)
/* 38E874 E008CA74 24840010 */ addiu $a0, $a0, 0x10
/* 38E878 E008CA78 02C2102A */ slt $v0, $s6, $v0
/* 38E87C E008CA7C 1440FF96 */ bnez $v0, .LE008C8D8
/* 38E880 E008CA80 AE640000 */ sw $a0, ($s3)
.LE008CA84:
/* 38E884 E008CA84 3C05D838 */ lui $a1, 0xd838
/* 38E888 E008CA88 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 38E88C E008CA8C 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 38E890 E008CA90 8C620000 */ lw $v0, ($v1)
/* 38E894 E008CA94 34A50002 */ ori $a1, $a1, 2
/* 38E898 E008CA98 0040202D */ daddu $a0, $v0, $zero
/* 38E89C E008CA9C 24420008 */ addiu $v0, $v0, 8
/* 38E8A0 E008CAA0 AC620000 */ sw $v0, ($v1)
/* 38E8A4 E008CAA4 24020040 */ addiu $v0, $zero, 0x40
/* 38E8A8 E008CAA8 AC850000 */ sw $a1, ($a0)
/* 38E8AC E008CAAC AC820004 */ sw $v0, 4($a0)
/* 38E8B0 E008CAB0 8FBF00CC */ lw $ra, 0xcc($sp)
/* 38E8B4 E008CAB4 8FBE00C8 */ lw $fp, 0xc8($sp)
/* 38E8B8 E008CAB8 8FB700C4 */ lw $s7, 0xc4($sp)
/* 38E8BC E008CABC 8FB600C0 */ lw $s6, 0xc0($sp)
/* 38E8C0 E008CAC0 8FB500BC */ lw $s5, 0xbc($sp)
/* 38E8C4 E008CAC4 8FB400B8 */ lw $s4, 0xb8($sp)
/* 38E8C8 E008CAC8 8FB300B4 */ lw $s3, 0xb4($sp)
/* 38E8CC E008CACC 8FB200B0 */ lw $s2, 0xb0($sp)
/* 38E8D0 E008CAD0 8FB100AC */ lw $s1, 0xac($sp)
/* 38E8D4 E008CAD4 8FB000A8 */ lw $s0, 0xa8($sp)
/* 38E8D8 E008CAD8 D7BA00E8 */ ldc1 $f26, 0xe8($sp)
/* 38E8DC E008CADC D7B800E0 */ ldc1 $f24, 0xe0($sp)
/* 38E8E0 E008CAE0 D7B600D8 */ ldc1 $f22, 0xd8($sp)
/* 38E8E4 E008CAE4 D7B400D0 */ ldc1 $f20, 0xd0($sp)
/* 38E8E8 E008CAE8 03E00008 */ jr $ra
/* 38E8EC E008CAEC 27BD00F0 */ addiu $sp, $sp, 0xf0

View File

@ -1,210 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E008CB60
.double 0.05
dlabel D_E008CB68
.double 0.3
dlabel D_E008CB70
.double 0.8
dlabel D_E008CB78
.double 0.1
dlabel D_E008CB80
.double 0.2, 0.0
.section .text
glabel fx_46_update
/* 38E1FC E008C3FC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 38E200 E008C400 AFBF0010 */ sw $ra, 0x10($sp)
/* 38E204 E008C404 8C85000C */ lw $a1, 0xc($a0)
/* 38E208 E008C408 8CA20024 */ lw $v0, 0x24($a1)
/* 38E20C E008C40C 2442FFFF */ addiu $v0, $v0, -1
/* 38E210 E008C410 ACA20024 */ sw $v0, 0x24($a1)
/* 38E214 E008C414 8CA20028 */ lw $v0, 0x28($a1)
/* 38E218 E008C418 8CA30024 */ lw $v1, 0x24($a1)
/* 38E21C E008C41C 24420001 */ addiu $v0, $v0, 1
/* 38E220 E008C420 04610005 */ bgez $v1, .LE008C438
/* 38E224 E008C424 ACA20028 */ sw $v0, 0x28($a1)
/* 38E228 E008C428 0C080128 */ jal shim_remove_effect
/* 38E22C E008C42C 00000000 */ nop
/* 38E230 E008C430 080231AB */ j .LE008C6AC
/* 38E234 E008C434 00000000 */ nop
.LE008C438:
/* 38E238 E008C438 8CA80000 */ lw $t0, ($a1)
/* 38E23C E008C43C 24020008 */ addiu $v0, $zero, 8
/* 38E240 E008C440 15020025 */ bne $t0, $v0, .LE008C4D8
/* 38E244 E008C444 0060382D */ daddu $a3, $v1, $zero
/* 38E248 E008C448 28E20006 */ slti $v0, $a3, 6
/* 38E24C E008C44C 14400010 */ bnez $v0, .LE008C490
/* 38E250 E008C450 240200FF */ addiu $v0, $zero, 0xff
/* 38E254 E008C454 8CA3001C */ lw $v1, 0x1c($a1)
/* 38E258 E008C458 3C01E009 */ lui $at, %hi(D_E008CB60)
/* 38E25C E008C45C D420CB60 */ ldc1 $f0, %lo(D_E008CB60)($at)
/* 38E260 E008C460 00431023 */ subu $v0, $v0, $v1
/* 38E264 E008C464 44821000 */ mtc1 $v0, $f2
/* 38E268 E008C468 00000000 */ nop
/* 38E26C E008C46C 468010A1 */ cvt.d.w $f2, $f2
/* 38E270 E008C470 46201082 */ mul.d $f2, $f2, $f0
/* 38E274 E008C474 00000000 */ nop
/* 38E278 E008C478 44830000 */ mtc1 $v1, $f0
/* 38E27C E008C47C 00000000 */ nop
/* 38E280 E008C480 46800021 */ cvt.d.w $f0, $f0
/* 38E284 E008C484 46220000 */ add.d $f0, $f0, $f2
/* 38E288 E008C488 4620040D */ trunc.w.d $f16, $f0
/* 38E28C E008C48C E4B0001C */ swc1 $f16, 0x1c($a1)
.LE008C490:
/* 38E290 E008C490 C4A00018 */ lwc1 $f0, 0x18($a1)
/* 38E294 E008C494 44871000 */ mtc1 $a3, $f2
/* 38E298 E008C498 00000000 */ nop
/* 38E29C E008C49C 468010A0 */ cvt.s.w $f2, $f2
/* 38E2A0 E008C4A0 46020002 */ mul.s $f0, $f0, $f2
/* 38E2A4 E008C4A4 00000000 */ nop
/* 38E2A8 E008C4A8 28E2000A */ slti $v0, $a3, 0xa
/* 38E2AC E008C4AC C4A20020 */ lwc1 $f2, 0x20($a1)
/* 38E2B0 E008C4B0 468010A0 */ cvt.s.w $f2, $f2
/* 38E2B4 E008C4B4 46020003 */ div.s $f0, $f0, $f2
/* 38E2B8 E008C4B8 10400032 */ beqz $v0, .LE008C584
/* 38E2BC E008C4BC E4A00014 */ swc1 $f0, 0x14($a1)
/* 38E2C0 E008C4C0 00071040 */ sll $v0, $a3, 1
/* 38E2C4 E008C4C4 00471021 */ addu $v0, $v0, $a3
/* 38E2C8 E008C4C8 000210C0 */ sll $v0, $v0, 3
/* 38E2CC E008C4CC 00471021 */ addu $v0, $v0, $a3
/* 38E2D0 E008C4D0 08023161 */ j .LE008C584
/* 38E2D4 E008C4D4 ACA2001C */ sw $v0, 0x1c($a1)
.LE008C4D8:
/* 38E2D8 E008C4D8 28E20006 */ slti $v0, $a3, 6
/* 38E2DC E008C4DC 14400012 */ bnez $v0, .LE008C528
/* 38E2E0 E008C4E0 28E2000A */ slti $v0, $a3, 0xa
/* 38E2E4 E008C4E4 24020064 */ addiu $v0, $zero, 0x64
/* 38E2E8 E008C4E8 8CA3001C */ lw $v1, 0x1c($a1)
/* 38E2EC E008C4EC 3C01E009 */ lui $at, %hi(D_E008CB68)
/* 38E2F0 E008C4F0 D420CB68 */ ldc1 $f0, %lo(D_E008CB68)($at)
/* 38E2F4 E008C4F4 00431023 */ subu $v0, $v0, $v1
/* 38E2F8 E008C4F8 44821000 */ mtc1 $v0, $f2
/* 38E2FC E008C4FC 00000000 */ nop
/* 38E300 E008C500 468010A1 */ cvt.d.w $f2, $f2
/* 38E304 E008C504 46201082 */ mul.d $f2, $f2, $f0
/* 38E308 E008C508 00000000 */ nop
/* 38E30C E008C50C 44830000 */ mtc1 $v1, $f0
/* 38E310 E008C510 00000000 */ nop
/* 38E314 E008C514 46800021 */ cvt.d.w $f0, $f0
/* 38E318 E008C518 46220000 */ add.d $f0, $f0, $f2
/* 38E31C E008C51C 4620040D */ trunc.w.d $f16, $f0
/* 38E320 E008C520 E4B0001C */ swc1 $f16, 0x1c($a1)
/* 38E324 E008C524 28E2000A */ slti $v0, $a3, 0xa
.LE008C528:
/* 38E328 E008C528 10400016 */ beqz $v0, .LE008C584
/* 38E32C E008C52C 00000000 */ nop
/* 38E330 E008C530 3C01E009 */ lui $at, %hi(D_E008CB70)
/* 38E334 E008C534 D420CB70 */ ldc1 $f0, %lo(D_E008CB70)($at)
/* 38E338 E008C538 C4A6001C */ lwc1 $f6, 0x1c($a1)
/* 38E33C E008C53C 468031A1 */ cvt.d.w $f6, $f6
/* 38E340 E008C540 46203182 */ mul.d $f6, $f6, $f0
/* 38E344 E008C544 00000000 */ nop
/* 38E348 E008C548 C4A00018 */ lwc1 $f0, 0x18($a1)
/* 38E34C E008C54C 46000000 */ add.s $f0, $f0, $f0
/* 38E350 E008C550 C4A20014 */ lwc1 $f2, 0x14($a1)
/* 38E354 E008C554 46020001 */ sub.s $f0, $f0, $f2
/* 38E358 E008C558 3C01E009 */ lui $at, %hi(D_E008CB78)
/* 38E35C E008C55C D424CB78 */ ldc1 $f4, %lo(D_E008CB78)($at)
/* 38E360 E008C560 46000021 */ cvt.d.s $f0, $f0
/* 38E364 E008C564 46240002 */ mul.d $f0, $f0, $f4
/* 38E368 E008C568 00000000 */ nop
/* 38E36C E008C56C 460010A1 */ cvt.d.s $f2, $f2
/* 38E370 E008C570 46201080 */ add.d $f2, $f2, $f0
/* 38E374 E008C574 4620340D */ trunc.w.d $f16, $f6
/* 38E378 E008C578 E4B0001C */ swc1 $f16, 0x1c($a1)
/* 38E37C E008C57C 462010A0 */ cvt.s.d $f2, $f2
/* 38E380 E008C580 E4A20014 */ swc1 $f2, 0x14($a1)
.LE008C584:
/* 38E384 E008C584 8CA20004 */ lw $v0, 4($a1)
/* 38E388 E008C588 C4400028 */ lwc1 $f0, 0x28($v0)
/* 38E38C E008C58C E4A00008 */ swc1 $f0, 8($a1)
/* 38E390 E008C590 C440002C */ lwc1 $f0, 0x2c($v0)
/* 38E394 E008C594 E4A0000C */ swc1 $f0, 0xc($a1)
/* 38E398 E008C598 C4400030 */ lwc1 $f0, 0x30($v0)
/* 38E39C E008C59C 24060001 */ addiu $a2, $zero, 1
/* 38E3A0 E008C5A0 E4A00010 */ swc1 $f0, 0x10($a1)
/* 38E3A4 E008C5A4 8C820008 */ lw $v0, 8($a0)
/* 38E3A8 E008C5A8 00C2102A */ slt $v0, $a2, $v0
/* 38E3AC E008C5AC 1040003F */ beqz $v0, .LE008C6AC
/* 38E3B0 E008C5B0 24A50048 */ addiu $a1, $a1, 0x48
/* 38E3B4 E008C5B4 240A0008 */ addiu $t2, $zero, 8
/* 38E3B8 E008C5B8 28E9000A */ slti $t1, $a3, 0xa
/* 38E3BC E008C5BC 24A30030 */ addiu $v1, $a1, 0x30
/* 38E3C0 E008C5C0 3C014220 */ lui $at, 0x4220
/* 38E3C4 E008C5C4 44817000 */ mtc1 $at, $f14
/* 38E3C8 E008C5C8 3C01E009 */ lui $at, %hi(D_E008CB80)
/* 38E3CC E008C5CC D428CB80 */ ldc1 $f8, %lo(D_E008CB80)($at)
/* 38E3D0 E008C5D0 3C01C220 */ lui $at, 0xc220
/* 38E3D4 E008C5D4 44816000 */ mtc1 $at, $f12
/* 38E3D8 E008C5D8 3C014120 */ lui $at, 0x4120
/* 38E3DC E008C5DC 44815000 */ mtc1 $at, $f10
.LE008C5E0:
/* 38E3E0 E008C5E0 150A001C */ bne $t0, $t2, .LE008C654
/* 38E3E4 E008C5E4 30C20001 */ andi $v0, $a2, 1
/* 38E3E8 E008C5E8 10400004 */ beqz $v0, .LE008C5FC
/* 38E3EC E008C5EC 00000000 */ nop
/* 38E3F0 E008C5F0 C460000C */ lwc1 $f0, 0xc($v1)
/* 38E3F4 E008C5F4 08023181 */ j .LE008C604
/* 38E3F8 E008C5F8 46007081 */ sub.s $f2, $f14, $f0
.LE008C5FC:
/* 38E3FC E008C5FC C460000C */ lwc1 $f0, 0xc($v1)
/* 38E400 E008C600 46006081 */ sub.s $f2, $f12, $f0
.LE008C604:
/* 38E404 E008C604 460010A1 */ cvt.d.s $f2, $f2
/* 38E408 E008C608 46281082 */ mul.d $f2, $f2, $f8
/* 38E40C E008C60C 00000000 */ nop
/* 38E410 E008C610 46000021 */ cvt.d.s $f0, $f0
/* 38E414 E008C614 46220000 */ add.d $f0, $f0, $f2
/* 38E418 E008C618 46200020 */ cvt.s.d $f0, $f0
/* 38E41C E008C61C E460000C */ swc1 $f0, 0xc($v1)
/* 38E420 E008C620 C466FFFC */ lwc1 $f6, -4($v1)
/* 38E424 E008C624 C4600008 */ lwc1 $f0, 8($v1)
/* 38E428 E008C628 C4640000 */ lwc1 $f4, ($v1)
/* 38E42C E008C62C 46003180 */ add.s $f6, $f6, $f0
/* 38E430 E008C630 C460000C */ lwc1 $f0, 0xc($v1)
/* 38E434 E008C634 C4620004 */ lwc1 $f2, 4($v1)
/* 38E438 E008C638 46002100 */ add.s $f4, $f4, $f0
/* 38E43C E008C63C C4600010 */ lwc1 $f0, 0x10($v1)
/* 38E440 E008C640 46001080 */ add.s $f2, $f2, $f0
/* 38E444 E008C644 E466FFFC */ swc1 $f6, -4($v1)
/* 38E448 E008C648 E4640000 */ swc1 $f4, ($v1)
/* 38E44C E008C64C 080231A6 */ j .LE008C698
/* 38E450 E008C650 E4620004 */ swc1 $f2, 4($v1)
.LE008C654:
/* 38E454 E008C654 1120000C */ beqz $t1, .LE008C688
/* 38E458 E008C658 00000000 */ nop
/* 38E45C E008C65C C460000C */ lwc1 $f0, 0xc($v1)
/* 38E460 E008C660 44871000 */ mtc1 $a3, $f2
/* 38E464 E008C664 00000000 */ nop
/* 38E468 E008C668 468010A0 */ cvt.s.w $f2, $f2
/* 38E46C E008C66C 46020002 */ mul.s $f0, $f0, $f2
/* 38E470 E008C670 00000000 */ nop
/* 38E474 E008C674 C4620000 */ lwc1 $f2, ($v1)
/* 38E478 E008C678 460A0003 */ div.s $f0, $f0, $f10
/* 38E47C E008C67C 46001080 */ add.s $f2, $f2, $f0
/* 38E480 E008C680 080231A6 */ j .LE008C698
/* 38E484 E008C684 E4620000 */ swc1 $f2, ($v1)
.LE008C688:
/* 38E488 E008C688 C4600000 */ lwc1 $f0, ($v1)
/* 38E48C E008C68C C462000C */ lwc1 $f2, 0xc($v1)
/* 38E490 E008C690 46020000 */ add.s $f0, $f0, $f2
/* 38E494 E008C694 E4600000 */ swc1 $f0, ($v1)
.LE008C698:
/* 38E498 E008C698 24C60001 */ addiu $a2, $a2, 1
/* 38E49C E008C69C 8C820008 */ lw $v0, 8($a0)
/* 38E4A0 E008C6A0 00C2102A */ slt $v0, $a2, $v0
/* 38E4A4 E008C6A4 1440FFCE */ bnez $v0, .LE008C5E0
/* 38E4A8 E008C6A8 24630048 */ addiu $v1, $v1, 0x48
.LE008C6AC:
/* 38E4AC E008C6AC 8FBF0010 */ lw $ra, 0x10($sp)
/* 38E4B0 E008C6B0 03E00008 */ jr $ra
/* 38E4B4 E008C6B4 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,254 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel fx_75_appendGfx
/* 3E254C E00EA66C 27BDFF38 */ addiu $sp, $sp, -0xc8
/* 3E2550 E00EA670 0080302D */ daddu $a2, $a0, $zero
/* 3E2554 E00EA674 3C07DB06 */ lui $a3, 0xdb06
/* 3E2558 E00EA678 34E70024 */ ori $a3, $a3, 0x24
/* 3E255C E00EA67C AFB400B0 */ sw $s4, 0xb0($sp)
/* 3E2560 E00EA680 3C14800A */ lui $s4, %hi(gMasterGfxPos)
/* 3E2564 E00EA684 2694A66C */ addiu $s4, $s4, %lo(gMasterGfxPos)
/* 3E2568 E00EA688 AFBF00C4 */ sw $ra, 0xc4($sp)
/* 3E256C E00EA68C AFBE00C0 */ sw $fp, 0xc0($sp)
/* 3E2570 E00EA690 AFB700BC */ sw $s7, 0xbc($sp)
/* 3E2574 E00EA694 AFB600B8 */ sw $s6, 0xb8($sp)
/* 3E2578 E00EA698 AFB500B4 */ sw $s5, 0xb4($sp)
/* 3E257C E00EA69C AFB300AC */ sw $s3, 0xac($sp)
/* 3E2580 E00EA6A0 AFB200A8 */ sw $s2, 0xa8($sp)
/* 3E2584 E00EA6A4 AFB100A4 */ sw $s1, 0xa4($sp)
/* 3E2588 E00EA6A8 AFB000A0 */ sw $s0, 0xa0($sp)
/* 3E258C E00EA6AC 8E830000 */ lw $v1, ($s4)
/* 3E2590 E00EA6B0 8CD3000C */ lw $s3, 0xc($a2)
/* 3E2594 E00EA6B4 3C014080 */ lui $at, 0x4080
/* 3E2598 E00EA6B8 44810000 */ mtc1 $at, $f0
/* 3E259C E00EA6BC 0060282D */ daddu $a1, $v1, $zero
/* 3E25A0 E00EA6C0 24630008 */ addiu $v1, $v1, 8
/* 3E25A4 E00EA6C4 AE830000 */ sw $v1, ($s4)
/* 3E25A8 E00EA6C8 8E6B0000 */ lw $t3, ($s3)
/* 3E25AC E00EA6CC 27A40018 */ addiu $a0, $sp, 0x18
/* 3E25B0 E00EA6D0 AFAB0098 */ sw $t3, 0x98($sp)
/* 3E25B4 E00EA6D4 C6620040 */ lwc1 $f2, 0x40($s3)
/* 3E25B8 E00EA6D8 3C02E700 */ lui $v0, 0xe700
/* 3E25BC E00EA6DC 46001082 */ mul.s $f2, $f2, $f0
/* 3E25C0 E00EA6E0 00000000 */ nop
/* 3E25C4 E00EA6E4 3C08800B */ lui $t0, %hi(gCameras)
/* 3E25C8 E00EA6E8 25081D80 */ addiu $t0, $t0, %lo(gCameras)
/* 3E25CC E00EA6EC C6640044 */ lwc1 $f4, 0x44($s3)
/* 3E25D0 E00EA6F0 C6660050 */ lwc1 $f6, 0x50($s3)
/* 3E25D4 E00EA6F4 C6680054 */ lwc1 $f8, 0x54($s3)
/* 3E25D8 E00EA6F8 46002102 */ mul.s $f4, $f4, $f0
/* 3E25DC E00EA6FC 00000000 */ nop
/* 3E25E0 E00EA700 ACA20000 */ sw $v0, ($a1)
/* 3E25E4 E00EA704 24620008 */ addiu $v0, $v1, 8
/* 3E25E8 E00EA708 ACA00004 */ sw $zero, 4($a1)
/* 3E25EC E00EA70C AE820000 */ sw $v0, ($s4)
/* 3E25F0 E00EA710 46003182 */ mul.s $f6, $f6, $f0
/* 3E25F4 E00EA714 00000000 */ nop
/* 3E25F8 E00EA718 AC670000 */ sw $a3, ($v1)
/* 3E25FC E00EA71C 8CC20010 */ lw $v0, 0x10($a2)
/* 3E2600 E00EA720 3C058000 */ lui $a1, 0x8000
/* 3E2604 E00EA724 8C42001C */ lw $v0, 0x1c($v0)
/* 3E2608 E00EA728 46004202 */ mul.s $f8, $f8, $f0
/* 3E260C E00EA72C 00000000 */ nop
/* 3E2610 E00EA730 00451021 */ addu $v0, $v0, $a1
/* 3E2614 E00EA734 AC620004 */ sw $v0, 4($v1)
/* 3E2618 E00EA738 8E650004 */ lw $a1, 4($s3)
/* 3E261C E00EA73C 8E660008 */ lw $a2, 8($s3)
/* 3E2620 E00EA740 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 3E2624 E00EA744 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 3E2628 E00EA748 8E67000C */ lw $a3, 0xc($s3)
/* 3E262C E00EA74C 00031080 */ sll $v0, $v1, 2
/* 3E2630 E00EA750 00431021 */ addu $v0, $v0, $v1
/* 3E2634 E00EA754 00021080 */ sll $v0, $v0, 2
/* 3E2638 E00EA758 00431023 */ subu $v0, $v0, $v1
/* 3E263C E00EA75C 000218C0 */ sll $v1, $v0, 3
/* 3E2640 E00EA760 00431021 */ addu $v0, $v0, $v1
/* 3E2644 E00EA764 000210C0 */ sll $v0, $v0, 3
/* 3E2648 E00EA768 4600128D */ trunc.w.s $f10, $f2
/* 3E264C E00EA76C 44165000 */ mfc1 $s6, $f10
/* 3E2650 E00EA770 4600228D */ trunc.w.s $f10, $f4
/* 3E2654 E00EA774 44175000 */ mfc1 $s7, $f10
/* 3E2658 E00EA778 4600328D */ trunc.w.s $f10, $f6
/* 3E265C E00EA77C 441E5000 */ mfc1 $fp, $f10
/* 3E2660 E00EA780 4600428D */ trunc.w.s $f10, $f8
/* 3E2664 E00EA784 E7AA009C */ swc1 $f10, 0x9c($sp)
/* 3E2668 E00EA788 0C080108 */ jal shim_guTranslateF
/* 3E266C E00EA78C 0048A821 */ addu $s5, $v0, $t0
/* 3E2670 E00EA790 27B00058 */ addiu $s0, $sp, 0x58
/* 3E2674 E00EA794 8E65003C */ lw $a1, 0x3c($s3)
/* 3E2678 E00EA798 0200202D */ daddu $a0, $s0, $zero
/* 3E267C E00EA79C 00A0302D */ daddu $a2, $a1, $zero
/* 3E2680 E00EA7A0 0C080110 */ jal shim_guScaleF
/* 3E2684 E00EA7A4 00A0382D */ daddu $a3, $a1, $zero
/* 3E2688 E00EA7A8 0200202D */ daddu $a0, $s0, $zero
/* 3E268C E00EA7AC 27A50018 */ addiu $a1, $sp, 0x18
/* 3E2690 E00EA7B0 0C080114 */ jal shim_guMtxCatF
/* 3E2694 E00EA7B4 00A0302D */ daddu $a2, $a1, $zero
/* 3E2698 E00EA7B8 8FAB0098 */ lw $t3, 0x98($sp)
/* 3E269C E00EA7BC 24020001 */ addiu $v0, $zero, 1
/* 3E26A0 E00EA7C0 1562000F */ bne $t3, $v0, .LE00EA800
/* 3E26A4 E00EA7C4 3C120001 */ lui $s2, 1
/* 3E26A8 E00EA7C8 0200202D */ daddu $a0, $s0, $zero
/* 3E26AC E00EA7CC 44800000 */ mtc1 $zero, $f0
/* 3E26B0 E00EA7D0 3C054334 */ lui $a1, 0x4334
/* 3E26B4 E00EA7D4 44060000 */ mfc1 $a2, $f0
/* 3E26B8 E00EA7D8 3C013F80 */ lui $at, 0x3f80
/* 3E26BC E00EA7DC 44810000 */ mtc1 $at, $f0
/* 3E26C0 E00EA7E0 00C0382D */ daddu $a3, $a2, $zero
/* 3E26C4 E00EA7E4 0C080104 */ jal shim_guRotateF
/* 3E26C8 E00EA7E8 E7A00010 */ swc1 $f0, 0x10($sp)
/* 3E26CC E00EA7EC 0200202D */ daddu $a0, $s0, $zero
/* 3E26D0 E00EA7F0 27A50018 */ addiu $a1, $sp, 0x18
/* 3E26D4 E00EA7F4 0C080114 */ jal shim_guMtxCatF
/* 3E26D8 E00EA7F8 00A0302D */ daddu $a2, $a1, $zero
/* 3E26DC E00EA7FC 3C120001 */ lui $s2, 1
.LE00EA800:
/* 3E26E0 E00EA800 36521630 */ ori $s2, $s2, 0x1630
/* 3E26E4 E00EA804 27A40018 */ addiu $a0, $sp, 0x18
/* 3E26E8 E00EA808 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 3E26EC E00EA80C 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 3E26F0 E00EA810 3C11800A */ lui $s1, %hi(gDisplayContext)
/* 3E26F4 E00EA814 2631A674 */ addiu $s1, $s1, %lo(gDisplayContext)
/* 3E26F8 E00EA818 96050000 */ lhu $a1, ($s0)
/* 3E26FC E00EA81C 8E220000 */ lw $v0, ($s1)
/* 3E2700 E00EA820 00052980 */ sll $a1, $a1, 6
/* 3E2704 E00EA824 00B22821 */ addu $a1, $a1, $s2
/* 3E2708 E00EA828 0C080118 */ jal shim_guMtxF2L
/* 3E270C E00EA82C 00452821 */ addu $a1, $v0, $a1
/* 3E2710 E00EA830 3C03DA38 */ lui $v1, 0xda38
/* 3E2714 E00EA834 34630002 */ ori $v1, $v1, 2
/* 3E2718 E00EA838 3C06DA38 */ lui $a2, 0xda38
/* 3E271C E00EA83C 34C60001 */ ori $a2, $a2, 1
/* 3E2720 E00EA840 3C098080 */ lui $t1, 0x8080
/* 3E2724 E00EA844 35298081 */ ori $t1, $t1, 0x8081
/* 3E2728 E00EA848 8E850000 */ lw $a1, ($s4)
/* 3E272C E00EA84C 96020000 */ lhu $v0, ($s0)
/* 3E2730 E00EA850 00A0202D */ daddu $a0, $a1, $zero
/* 3E2734 E00EA854 24A50008 */ addiu $a1, $a1, 8
/* 3E2738 E00EA858 AE850000 */ sw $a1, ($s4)
/* 3E273C E00EA85C AC830000 */ sw $v1, ($a0)
/* 3E2740 E00EA860 24430001 */ addiu $v1, $v0, 1
/* 3E2744 E00EA864 3042FFFF */ andi $v0, $v0, 0xffff
/* 3E2748 E00EA868 00021180 */ sll $v0, $v0, 6
/* 3E274C E00EA86C A6030000 */ sh $v1, ($s0)
/* 3E2750 E00EA870 8E230000 */ lw $v1, ($s1)
/* 3E2754 E00EA874 00521021 */ addu $v0, $v0, $s2
/* 3E2758 E00EA878 00621821 */ addu $v1, $v1, $v0
/* 3E275C E00EA87C 24A20008 */ addiu $v0, $a1, 8
/* 3E2760 E00EA880 AC830004 */ sw $v1, 4($a0)
/* 3E2764 E00EA884 AE820000 */ sw $v0, ($s4)
/* 3E2768 E00EA888 24A20010 */ addiu $v0, $a1, 0x10
/* 3E276C E00EA88C ACA60000 */ sw $a2, ($a1)
/* 3E2770 E00EA890 AE820000 */ sw $v0, ($s4)
/* 3E2774 E00EA894 8EA30204 */ lw $v1, 0x204($s5)
/* 3E2778 E00EA898 3C02FA00 */ lui $v0, 0xfa00
/* 3E277C E00EA89C ACA20008 */ sw $v0, 8($a1)
/* 3E2780 E00EA8A0 ACA30004 */ sw $v1, 4($a1)
/* 3E2784 E00EA8A4 9262001B */ lbu $v0, 0x1b($s3)
/* 3E2788 E00EA8A8 9264001F */ lbu $a0, 0x1f($s3)
/* 3E278C E00EA8AC 92660023 */ lbu $a2, 0x23($s3)
/* 3E2790 E00EA8B0 92670037 */ lbu $a3, 0x37($s3)
/* 3E2794 E00EA8B4 24A30018 */ addiu $v1, $a1, 0x18
/* 3E2798 E00EA8B8 AE830000 */ sw $v1, ($s4)
/* 3E279C E00EA8BC 3C03FB00 */ lui $v1, 0xfb00
/* 3E27A0 E00EA8C0 ACA30010 */ sw $v1, 0x10($a1)
/* 3E27A4 E00EA8C4 00021600 */ sll $v0, $v0, 0x18
/* 3E27A8 E00EA8C8 00042400 */ sll $a0, $a0, 0x10
/* 3E27AC E00EA8CC 00441025 */ or $v0, $v0, $a0
/* 3E27B0 E00EA8D0 00063200 */ sll $a2, $a2, 8
/* 3E27B4 E00EA8D4 00461025 */ or $v0, $v0, $a2
/* 3E27B8 E00EA8D8 00471025 */ or $v0, $v0, $a3
/* 3E27BC E00EA8DC ACA2000C */ sw $v0, 0xc($a1)
/* 3E27C0 E00EA8E0 9264002B */ lbu $a0, 0x2b($s3)
/* 3E27C4 E00EA8E4 9266002F */ lbu $a2, 0x2f($s3)
/* 3E27C8 E00EA8E8 92670033 */ lbu $a3, 0x33($s3)
/* 3E27CC E00EA8EC 24A20020 */ addiu $v0, $a1, 0x20
/* 3E27D0 E00EA8F0 AE820000 */ sw $v0, ($s4)
/* 3E27D4 E00EA8F4 8E630024 */ lw $v1, 0x24($s3)
/* 3E27D8 E00EA8F8 8E620038 */ lw $v0, 0x38($s3)
/* 3E27DC E00EA8FC 3C0AD838 */ lui $t2, 0xd838
/* 3E27E0 E00EA900 00620018 */ mult $v1, $v0
/* 3E27E4 E00EA904 3C08DE00 */ lui $t0, 0xde00
/* 3E27E8 E00EA908 ACA80018 */ sw $t0, 0x18($a1)
/* 3E27EC E00EA90C 24A20028 */ addiu $v0, $a1, 0x28
/* 3E27F0 E00EA910 00042600 */ sll $a0, $a0, 0x18
/* 3E27F4 E00EA914 00001812 */ mflo $v1
/* 3E27F8 E00EA918 00063400 */ sll $a2, $a2, 0x10
/* 3E27FC E00EA91C 00862025 */ or $a0, $a0, $a2
/* 3E2800 E00EA920 00690018 */ mult $v1, $t1
/* 3E2804 E00EA924 00073A00 */ sll $a3, $a3, 8
/* 3E2808 E00EA928 00872025 */ or $a0, $a0, $a3
/* 3E280C E00EA92C 3C06F200 */ lui $a2, 0xf200
/* 3E2810 E00EA930 AE820000 */ sw $v0, ($s4)
/* 3E2814 E00EA934 00001010 */ mfhi $v0
/* 3E2818 E00EA938 00431021 */ addu $v0, $v0, $v1
/* 3E281C E00EA93C 000211C3 */ sra $v0, $v0, 7
/* 3E2820 E00EA940 00031FC3 */ sra $v1, $v1, 0x1f
/* 3E2824 E00EA944 00431023 */ subu $v0, $v0, $v1
/* 3E2828 E00EA948 304200FF */ andi $v0, $v0, 0xff
/* 3E282C E00EA94C 00822025 */ or $a0, $a0, $v0
/* 3E2830 E00EA950 32C30FFF */ andi $v1, $s6, 0xfff
/* 3E2834 E00EA954 00031B00 */ sll $v1, $v1, 0xc
/* 3E2838 E00EA958 32E20FFF */ andi $v0, $s7, 0xfff
/* 3E283C E00EA95C 00461025 */ or $v0, $v0, $a2
/* 3E2840 E00EA960 00621825 */ or $v1, $v1, $v0
/* 3E2844 E00EA964 26C200FC */ addiu $v0, $s6, 0xfc
/* 3E2848 E00EA968 30420FFF */ andi $v0, $v0, 0xfff
/* 3E284C E00EA96C ACA40014 */ sw $a0, 0x14($a1)
/* 3E2850 E00EA970 3C04E00F */ lui $a0, %hi(D_E00EAA58)
/* 3E2854 E00EA974 8C84AA58 */ lw $a0, %lo(D_E00EAA58)($a0)
/* 3E2858 E00EA978 00021300 */ sll $v0, $v0, 0xc
/* 3E285C E00EA97C ACA30020 */ sw $v1, 0x20($a1)
/* 3E2860 E00EA980 26E300FC */ addiu $v1, $s7, 0xfc
/* 3E2864 E00EA984 30630FFF */ andi $v1, $v1, 0xfff
/* 3E2868 E00EA988 00431025 */ or $v0, $v0, $v1
/* 3E286C E00EA98C ACA20024 */ sw $v0, 0x24($a1)
/* 3E2870 E00EA990 24A20030 */ addiu $v0, $a1, 0x30
/* 3E2874 E00EA994 33C30FFF */ andi $v1, $fp, 0xfff
/* 3E2878 E00EA998 00031B00 */ sll $v1, $v1, 0xc
/* 3E287C E00EA99C ACA4001C */ sw $a0, 0x1c($a1)
/* 3E2880 E00EA9A0 AE820000 */ sw $v0, ($s4)
/* 3E2884 E00EA9A4 8FAB009C */ lw $t3, 0x9c($sp)
/* 3E2888 E00EA9A8 3C040100 */ lui $a0, 0x100
/* 3E288C E00EA9AC 31620FFF */ andi $v0, $t3, 0xfff
/* 3E2890 E00EA9B0 00461025 */ or $v0, $v0, $a2
/* 3E2894 E00EA9B4 00621825 */ or $v1, $v1, $v0
/* 3E2898 E00EA9B8 27C200FC */ addiu $v0, $fp, 0xfc
/* 3E289C E00EA9BC 30420FFF */ andi $v0, $v0, 0xfff
/* 3E28A0 E00EA9C0 00021300 */ sll $v0, $v0, 0xc
/* 3E28A4 E00EA9C4 ACA30028 */ sw $v1, 0x28($a1)
/* 3E28A8 E00EA9C8 256300FC */ addiu $v1, $t3, 0xfc
/* 3E28AC E00EA9CC 30630FFF */ andi $v1, $v1, 0xfff
/* 3E28B0 E00EA9D0 00641825 */ or $v1, $v1, $a0
/* 3E28B4 E00EA9D4 00431025 */ or $v0, $v0, $v1
/* 3E28B8 E00EA9D8 ACA2002C */ sw $v0, 0x2c($a1)
/* 3E28BC E00EA9DC 24A20038 */ addiu $v0, $a1, 0x38
/* 3E28C0 E00EA9E0 AE820000 */ sw $v0, ($s4)
/* 3E28C4 E00EA9E4 ACA80030 */ sw $t0, 0x30($a1)
/* 3E28C8 E00EA9E8 8FAB0098 */ lw $t3, 0x98($sp)
/* 3E28CC E00EA9EC 354A0002 */ ori $t2, $t2, 2
/* 3E28D0 E00EA9F0 000B1080 */ sll $v0, $t3, 2
/* 3E28D4 E00EA9F4 3C03E00F */ lui $v1, %hi(D_E00EAA50)
/* 3E28D8 E00EA9F8 00621821 */ addu $v1, $v1, $v0
/* 3E28DC E00EA9FC 8C63AA50 */ lw $v1, %lo(D_E00EAA50)($v1)
/* 3E28E0 E00EAA00 24A20040 */ addiu $v0, $a1, 0x40
/* 3E28E4 E00EAA04 AE820000 */ sw $v0, ($s4)
/* 3E28E8 E00EAA08 24020040 */ addiu $v0, $zero, 0x40
/* 3E28EC E00EAA0C ACAA0038 */ sw $t2, 0x38($a1)
/* 3E28F0 E00EAA10 ACA2003C */ sw $v0, 0x3c($a1)
/* 3E28F4 E00EAA14 ACA30034 */ sw $v1, 0x34($a1)
/* 3E28F8 E00EAA18 8FBF00C4 */ lw $ra, 0xc4($sp)
/* 3E28FC E00EAA1C 8FBE00C0 */ lw $fp, 0xc0($sp)
/* 3E2900 E00EAA20 8FB700BC */ lw $s7, 0xbc($sp)
/* 3E2904 E00EAA24 8FB600B8 */ lw $s6, 0xb8($sp)
/* 3E2908 E00EAA28 8FB500B4 */ lw $s5, 0xb4($sp)
/* 3E290C E00EAA2C 8FB400B0 */ lw $s4, 0xb0($sp)
/* 3E2910 E00EAA30 8FB300AC */ lw $s3, 0xac($sp)
/* 3E2914 E00EAA34 8FB200A8 */ lw $s2, 0xa8($sp)
/* 3E2918 E00EAA38 8FB100A4 */ lw $s1, 0xa4($sp)
/* 3E291C E00EAA3C 8FB000A0 */ lw $s0, 0xa0($sp)
/* 3E2920 E00EAA40 03E00008 */ jr $ra
/* 3E2924 E00EAA44 27BD00C8 */ addiu $sp, $sp, 0xc8
/* 3E2928 E00EAA48 00000000 */ nop
/* 3E292C E00EAA4C 00000000 */ nop

View File

@ -1,108 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel fx_75_main
/* 3E1EE0 E00EA000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3E1EE4 E00EA004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3E1EE8 E00EA008 4485A000 */ mtc1 $a1, $f20
/* 3E1EEC E00EA00C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3E1EF0 E00EA010 4486B000 */ mtc1 $a2, $f22
/* 3E1EF4 E00EA014 AFB20030 */ sw $s2, 0x30($sp)
/* 3E1EF8 E00EA018 0080902D */ daddu $s2, $a0, $zero
/* 3E1EFC E00EA01C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3E1F00 E00EA020 4487C000 */ mtc1 $a3, $f24
/* 3E1F04 E00EA024 27A40010 */ addiu $a0, $sp, 0x10
/* 3E1F08 E00EA028 AFB1002C */ sw $s1, 0x2c($sp)
/* 3E1F0C E00EA02C 8FB10064 */ lw $s1, 0x64($sp)
/* 3E1F10 E00EA030 3C02E00F */ lui $v0, %hi(fx_75_init)
/* 3E1F14 E00EA034 2442A190 */ addiu $v0, $v0, %lo(fx_75_init)
/* 3E1F18 E00EA038 AFA20018 */ sw $v0, 0x18($sp)
/* 3E1F1C E00EA03C 3C02E00F */ lui $v0, %hi(fx_75_update)
/* 3E1F20 E00EA040 2442A198 */ addiu $v0, $v0, %lo(fx_75_update)
/* 3E1F24 E00EA044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3E1F28 E00EA048 3C02E00F */ lui $v0, %hi(fx_75_render)
/* 3E1F2C E00EA04C 2442A520 */ addiu $v0, $v0, %lo(fx_75_render)
/* 3E1F30 E00EA050 AFA20020 */ sw $v0, 0x20($sp)
/* 3E1F34 E00EA054 24020075 */ addiu $v0, $zero, 0x75
/* 3E1F38 E00EA058 AFBF0034 */ sw $ra, 0x34($sp)
/* 3E1F3C E00EA05C AFB00028 */ sw $s0, 0x28($sp)
/* 3E1F40 E00EA060 AFA00010 */ sw $zero, 0x10($sp)
/* 3E1F44 E00EA064 AFA00024 */ sw $zero, 0x24($sp)
/* 3E1F48 E00EA068 0C080124 */ jal shim_create_effect_instance
/* 3E1F4C E00EA06C AFA20014 */ sw $v0, 0x14($sp)
/* 3E1F50 E00EA070 24040080 */ addiu $a0, $zero, 0x80
/* 3E1F54 E00EA074 24030001 */ addiu $v1, $zero, 1
/* 3E1F58 E00EA078 0040802D */ daddu $s0, $v0, $zero
/* 3E1F5C E00EA07C 0C08012C */ jal shim_general_heap_malloc
/* 3E1F60 E00EA080 AE030008 */ sw $v1, 8($s0)
/* 3E1F64 E00EA084 0040202D */ daddu $a0, $v0, $zero
/* 3E1F68 E00EA088 14800003 */ bnez $a0, .LE00EA098
/* 3E1F6C E00EA08C AE02000C */ sw $v0, 0xc($s0)
.LE00EA090:
/* 3E1F70 E00EA090 0803A824 */ j .LE00EA090
/* 3E1F74 E00EA094 00000000 */ nop
.LE00EA098:
/* 3E1F78 E00EA098 AC920000 */ sw $s2, ($a0)
/* 3E1F7C E00EA09C 1E200004 */ bgtz $s1, .LE00EA0B0
/* 3E1F80 E00EA0A0 AC800014 */ sw $zero, 0x14($a0)
/* 3E1F84 E00EA0A4 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3E1F88 E00EA0A8 0803A82D */ j .LE00EA0B4
/* 3E1F8C E00EA0AC AC820010 */ sw $v0, 0x10($a0)
.LE00EA0B0:
/* 3E1F90 E00EA0B0 AC910010 */ sw $s1, 0x10($a0)
.LE00EA0B4:
/* 3E1F94 E00EA0B4 0200102D */ daddu $v0, $s0, $zero
/* 3E1F98 E00EA0B8 AC800024 */ sw $zero, 0x24($a0)
/* 3E1F9C E00EA0BC E4940004 */ swc1 $f20, 4($a0)
/* 3E1FA0 E00EA0C0 E4960008 */ swc1 $f22, 8($a0)
/* 3E1FA4 E00EA0C4 E498000C */ swc1 $f24, 0xc($a0)
/* 3E1FA8 E00EA0C8 C7A00060 */ lwc1 $f0, 0x60($sp)
/* 3E1FAC E00EA0CC 3C013F66 */ lui $at, 0x3f66
/* 3E1FB0 E00EA0D0 34216666 */ ori $at, $at, 0x6666
/* 3E1FB4 E00EA0D4 44811000 */ mtc1 $at, $f2
/* 3E1FB8 E00EA0D8 3C01C000 */ lui $at, 0xc000
/* 3E1FBC E00EA0DC 44812000 */ mtc1 $at, $f4
/* 3E1FC0 E00EA0E0 3C013FA0 */ lui $at, 0x3fa0
/* 3E1FC4 E00EA0E4 44813000 */ mtc1 $at, $f6
/* 3E1FC8 E00EA0E8 3C01433E */ lui $at, 0x433e
/* 3E1FCC E00EA0EC 44814000 */ mtc1 $at, $f8
/* 3E1FD0 E00EA0F0 3C01435C */ lui $at, 0x435c
/* 3E1FD4 E00EA0F4 44815000 */ mtc1 $at, $f10
/* 3E1FD8 E00EA0F8 240300B4 */ addiu $v1, $zero, 0xb4
/* 3E1FDC E00EA0FC AC83001C */ sw $v1, 0x1c($a0)
/* 3E1FE0 E00EA100 E480003C */ swc1 $f0, 0x3c($a0)
/* 3E1FE4 E00EA104 3C013F80 */ lui $at, 0x3f80
/* 3E1FE8 E00EA108 44810000 */ mtc1 $at, $f0
/* 3E1FEC E00EA10C 240300DC */ addiu $v1, $zero, 0xdc
/* 3E1FF0 E00EA110 AC800018 */ sw $zero, 0x18($a0)
/* 3E1FF4 E00EA114 AC830020 */ sw $v1, 0x20($a0)
/* 3E1FF8 E00EA118 AC800028 */ sw $zero, 0x28($a0)
/* 3E1FFC E00EA11C AC80002C */ sw $zero, 0x2c($a0)
/* 3E2000 E00EA120 AC800030 */ sw $zero, 0x30($a0)
/* 3E2004 E00EA124 AC800034 */ sw $zero, 0x34($a0)
/* 3E2008 E00EA128 AC800038 */ sw $zero, 0x38($a0)
/* 3E200C E00EA12C AC800040 */ sw $zero, 0x40($a0)
/* 3E2010 E00EA130 AC800044 */ sw $zero, 0x44($a0)
/* 3E2014 E00EA134 AC800050 */ sw $zero, 0x50($a0)
/* 3E2018 E00EA138 AC800054 */ sw $zero, 0x54($a0)
/* 3E201C E00EA13C E482004C */ swc1 $f2, 0x4c($a0)
/* 3E2020 E00EA140 E482006C */ swc1 $f2, 0x6c($a0)
/* 3E2024 E00EA144 E4840058 */ swc1 $f4, 0x58($a0)
/* 3E2028 E00EA148 E4840070 */ swc1 $f4, 0x70($a0)
/* 3E202C E00EA14C E486005C */ swc1 $f6, 0x5c($a0)
/* 3E2030 E00EA150 E4860074 */ swc1 $f6, 0x74($a0)
/* 3E2034 E00EA154 E4880060 */ swc1 $f8, 0x60($a0)
/* 3E2038 E00EA158 E4880078 */ swc1 $f8, 0x78($a0)
/* 3E203C E00EA15C E48A0064 */ swc1 $f10, 0x64($a0)
/* 3E2040 E00EA160 E48A007C */ swc1 $f10, 0x7c($a0)
/* 3E2044 E00EA164 E4800048 */ swc1 $f0, 0x48($a0)
/* 3E2048 E00EA168 E4800068 */ swc1 $f0, 0x68($a0)
/* 3E204C E00EA16C 8FBF0034 */ lw $ra, 0x34($sp)
/* 3E2050 E00EA170 8FB20030 */ lw $s2, 0x30($sp)
/* 3E2054 E00EA174 8FB1002C */ lw $s1, 0x2c($sp)
/* 3E2058 E00EA178 8FB00028 */ lw $s0, 0x28($sp)
/* 3E205C E00EA17C D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3E2060 E00EA180 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3E2064 E00EA184 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3E2068 E00EA188 03E00008 */ jr $ra
/* 3E206C E00EA18C 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,250 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00EAA60
.double 0.1
.section .text
glabel fx_75_update
/* 3E2078 E00EA198 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 3E207C E00EA19C AFBF0014 */ sw $ra, 0x14($sp)
/* 3E2080 E00EA1A0 AFB00010 */ sw $s0, 0x10($sp)
/* 3E2084 E00EA1A4 F7BA0030 */ sdc1 $f26, 0x30($sp)
/* 3E2088 E00EA1A8 F7B80028 */ sdc1 $f24, 0x28($sp)
/* 3E208C E00EA1AC F7B60020 */ sdc1 $f22, 0x20($sp)
/* 3E2090 E00EA1B0 F7B40018 */ sdc1 $f20, 0x18($sp)
/* 3E2094 E00EA1B4 8C830000 */ lw $v1, ($a0)
/* 3E2098 E00EA1B8 8C90000C */ lw $s0, 0xc($a0)
/* 3E209C E00EA1BC 30620010 */ andi $v0, $v1, 0x10
/* 3E20A0 E00EA1C0 10400005 */ beqz $v0, .LE00EA1D8
/* 3E20A4 E00EA1C4 2402FFEF */ addiu $v0, $zero, -0x11
/* 3E20A8 E00EA1C8 00621024 */ and $v0, $v1, $v0
/* 3E20AC E00EA1CC AC820000 */ sw $v0, ($a0)
/* 3E20B0 E00EA1D0 24020010 */ addiu $v0, $zero, 0x10
/* 3E20B4 E00EA1D4 AE020010 */ sw $v0, 0x10($s0)
.LE00EA1D8:
/* 3E20B8 E00EA1D8 8E030010 */ lw $v1, 0x10($s0)
/* 3E20BC E00EA1DC 286203E8 */ slti $v0, $v1, 0x3e8
/* 3E20C0 E00EA1E0 10400002 */ beqz $v0, .LE00EA1EC
/* 3E20C4 E00EA1E4 2462FFFF */ addiu $v0, $v1, -1
/* 3E20C8 E00EA1E8 AE020010 */ sw $v0, 0x10($s0)
.LE00EA1EC:
/* 3E20CC E00EA1EC 3C030001 */ lui $v1, 1
/* 3E20D0 E00EA1F0 8E020014 */ lw $v0, 0x14($s0)
/* 3E20D4 E00EA1F4 3463A5E0 */ ori $v1, $v1, 0xa5e0
/* 3E20D8 E00EA1F8 24420001 */ addiu $v0, $v0, 1
/* 3E20DC E00EA1FC 0062182A */ slt $v1, $v1, $v0
/* 3E20E0 E00EA200 10600002 */ beqz $v1, .LE00EA20C
/* 3E20E4 E00EA204 AE020014 */ sw $v0, 0x14($s0)
/* 3E20E8 E00EA208 AE000014 */ sw $zero, 0x14($s0)
.LE00EA20C:
/* 3E20EC E00EA20C 8E030010 */ lw $v1, 0x10($s0)
/* 3E20F0 E00EA210 04610005 */ bgez $v1, .LE00EA228
/* 3E20F4 E00EA214 28620010 */ slti $v0, $v1, 0x10
/* 3E20F8 E00EA218 0C080128 */ jal shim_remove_effect
/* 3E20FC E00EA21C 00000000 */ nop
/* 3E2100 E00EA220 0803A940 */ j .LE00EA500
/* 3E2104 E00EA224 00000000 */ nop
.LE00EA228:
/* 3E2108 E00EA228 8E040014 */ lw $a0, 0x14($s0)
/* 3E210C E00EA22C 10400002 */ beqz $v0, .LE00EA238
/* 3E2110 E00EA230 00031100 */ sll $v0, $v1, 4
/* 3E2114 E00EA234 AE020024 */ sw $v0, 0x24($s0)
.LE00EA238:
/* 3E2118 E00EA238 28820010 */ slti $v0, $a0, 0x10
/* 3E211C E00EA23C 10400003 */ beqz $v0, .LE00EA24C
/* 3E2120 E00EA240 00041100 */ sll $v0, $a0, 4
/* 3E2124 E00EA244 2442000F */ addiu $v0, $v0, 0xf
/* 3E2128 E00EA248 AE020024 */ sw $v0, 0x24($s0)
.LE00EA24C:
/* 3E212C E00EA24C C6120048 */ lwc1 $f18, 0x48($s0)
/* 3E2130 E00EA250 C60E0068 */ lwc1 $f14, 0x68($s0)
/* 3E2134 E00EA254 46127381 */ sub.s $f14, $f14, $f18
/* 3E2138 E00EA258 3C01E00F */ lui $at, %hi(D_E00EAA60)
/* 3E213C E00EA25C D438AA60 */ ldc1 $f24, %lo(D_E00EAA60)($at)
/* 3E2140 E00EA260 460073A1 */ cvt.d.s $f14, $f14
/* 3E2144 E00EA264 46387382 */ mul.d $f14, $f14, $f24
/* 3E2148 E00EA268 00000000 */ nop
/* 3E214C E00EA26C C60C004C */ lwc1 $f12, 0x4c($s0)
/* 3E2150 E00EA270 C608006C */ lwc1 $f8, 0x6c($s0)
/* 3E2154 E00EA274 460C4201 */ sub.s $f8, $f8, $f12
/* 3E2158 E00EA278 46004221 */ cvt.d.s $f8, $f8
/* 3E215C E00EA27C 46384202 */ mul.d $f8, $f8, $f24
/* 3E2160 E00EA280 00000000 */ nop
/* 3E2164 E00EA284 C60A0058 */ lwc1 $f10, 0x58($s0)
/* 3E2168 E00EA288 C6040070 */ lwc1 $f4, 0x70($s0)
/* 3E216C E00EA28C 460A2101 */ sub.s $f4, $f4, $f10
/* 3E2170 E00EA290 46002121 */ cvt.d.s $f4, $f4
/* 3E2174 E00EA294 46382102 */ mul.d $f4, $f4, $f24
/* 3E2178 E00EA298 00000000 */ nop
/* 3E217C E00EA29C C610005C */ lwc1 $f16, 0x5c($s0)
/* 3E2180 E00EA2A0 C6060074 */ lwc1 $f6, 0x74($s0)
/* 3E2184 E00EA2A4 46103181 */ sub.s $f6, $f6, $f16
/* 3E2188 E00EA2A8 460031A1 */ cvt.d.s $f6, $f6
/* 3E218C E00EA2AC 46383182 */ mul.d $f6, $f6, $f24
/* 3E2190 E00EA2B0 00000000 */ nop
/* 3E2194 E00EA2B4 C6140060 */ lwc1 $f20, 0x60($s0)
/* 3E2198 E00EA2B8 C6020078 */ lwc1 $f2, 0x78($s0)
/* 3E219C E00EA2BC 46141081 */ sub.s $f2, $f2, $f20
/* 3E21A0 E00EA2C0 460010A1 */ cvt.d.s $f2, $f2
/* 3E21A4 E00EA2C4 46381082 */ mul.d $f2, $f2, $f24
/* 3E21A8 E00EA2C8 00000000 */ nop
/* 3E21AC E00EA2CC C6160064 */ lwc1 $f22, 0x64($s0)
/* 3E21B0 E00EA2D0 C600007C */ lwc1 $f0, 0x7c($s0)
/* 3E21B4 E00EA2D4 46160001 */ sub.s $f0, $f0, $f22
/* 3E21B8 E00EA2D8 46000021 */ cvt.d.s $f0, $f0
/* 3E21BC E00EA2DC 46380002 */ mul.d $f0, $f0, $f24
/* 3E21C0 E00EA2E0 00000000 */ nop
/* 3E21C4 E00EA2E4 460094A1 */ cvt.d.s $f18, $f18
/* 3E21C8 E00EA2E8 462E9480 */ add.d $f18, $f18, $f14
/* 3E21CC E00EA2EC 46006321 */ cvt.d.s $f12, $f12
/* 3E21D0 E00EA2F0 46286300 */ add.d $f12, $f12, $f8
/* 3E21D4 E00EA2F4 460052A1 */ cvt.d.s $f10, $f10
/* 3E21D8 E00EA2F8 46245280 */ add.d $f10, $f10, $f4
/* 3E21DC E00EA2FC 46008421 */ cvt.d.s $f16, $f16
/* 3E21E0 E00EA300 4600A521 */ cvt.d.s $f20, $f20
/* 3E21E4 E00EA304 46268400 */ add.d $f16, $f16, $f6
/* 3E21E8 E00EA308 4600B5A1 */ cvt.d.s $f22, $f22
/* 3E21EC E00EA30C C6060040 */ lwc1 $f6, 0x40($s0)
/* 3E21F0 E00EA310 4622A500 */ add.d $f20, $f20, $f2
/* 3E21F4 E00EA314 C6080044 */ lwc1 $f8, 0x44($s0)
/* 3E21F8 E00EA318 C6040050 */ lwc1 $f4, 0x50($s0)
/* 3E21FC E00EA31C 4620B580 */ add.d $f22, $f22, $f0
/* 3E2200 E00EA320 462094A0 */ cvt.s.d $f18, $f18
/* 3E2204 E00EA324 46206320 */ cvt.s.d $f12, $f12
/* 3E2208 E00EA328 E6120048 */ swc1 $f18, 0x48($s0)
/* 3E220C E00EA32C 46009086 */ mov.s $f2, $f18
/* 3E2210 E00EA330 46021080 */ add.s $f2, $f2, $f2
/* 3E2214 E00EA334 E60C004C */ swc1 $f12, 0x4c($s0)
/* 3E2218 E00EA338 46006006 */ mov.s $f0, $f12
/* 3E221C E00EA33C 46000000 */ add.s $f0, $f0, $f0
/* 3E2220 E00EA340 462052A0 */ cvt.s.d $f10, $f10
/* 3E2224 E00EA344 46208420 */ cvt.s.d $f16, $f16
/* 3E2228 E00EA348 46023180 */ add.s $f6, $f6, $f2
/* 3E222C E00EA34C 4620A520 */ cvt.s.d $f20, $f20
/* 3E2230 E00EA350 4620B5A0 */ cvt.s.d $f22, $f22
/* 3E2234 E00EA354 46004200 */ add.s $f8, $f8, $f0
/* 3E2238 E00EA358 E60A0058 */ swc1 $f10, 0x58($s0)
/* 3E223C E00EA35C 46005006 */ mov.s $f0, $f10
/* 3E2240 E00EA360 46000000 */ add.s $f0, $f0, $f0
/* 3E2244 E00EA364 E610005C */ swc1 $f16, 0x5c($s0)
/* 3E2248 E00EA368 E6140060 */ swc1 $f20, 0x60($s0)
/* 3E224C E00EA36C 46002100 */ add.s $f4, $f4, $f0
/* 3E2250 E00EA370 E6160064 */ swc1 $f22, 0x64($s0)
/* 3E2254 E00EA374 46008006 */ mov.s $f0, $f16
/* 3E2258 E00EA378 46000000 */ add.s $f0, $f0, $f0
/* 3E225C E00EA37C C6020054 */ lwc1 $f2, 0x54($s0)
/* 3E2260 E00EA380 44805000 */ mtc1 $zero, $f10
/* 3E2264 E00EA384 46001080 */ add.s $f2, $f2, $f0
/* 3E2268 E00EA388 E6060040 */ swc1 $f6, 0x40($s0)
/* 3E226C E00EA38C E6080044 */ swc1 $f8, 0x44($s0)
/* 3E2270 E00EA390 460A303C */ c.lt.s $f6, $f10
/* 3E2274 E00EA394 E6040050 */ swc1 $f4, 0x50($s0)
/* 3E2278 E00EA398 45000006 */ bc1f .LE00EA3B4
/* 3E227C E00EA39C E6020054 */ swc1 $f2, 0x54($s0)
/* 3E2280 E00EA3A0 3C014380 */ lui $at, 0x4380
/* 3E2284 E00EA3A4 44810000 */ mtc1 $at, $f0
/* 3E2288 E00EA3A8 00000000 */ nop
/* 3E228C E00EA3AC 46003000 */ add.s $f0, $f6, $f0
/* 3E2290 E00EA3B0 E6000040 */ swc1 $f0, 0x40($s0)
.LE00EA3B4:
/* 3E2294 E00EA3B4 C6020044 */ lwc1 $f2, 0x44($s0)
/* 3E2298 E00EA3B8 460A103C */ c.lt.s $f2, $f10
/* 3E229C E00EA3BC 00000000 */ nop
/* 3E22A0 E00EA3C0 45000006 */ bc1f .LE00EA3DC
/* 3E22A4 E00EA3C4 00000000 */ nop
/* 3E22A8 E00EA3C8 3C014380 */ lui $at, 0x4380
/* 3E22AC E00EA3CC 44810000 */ mtc1 $at, $f0
/* 3E22B0 E00EA3D0 00000000 */ nop
/* 3E22B4 E00EA3D4 46001000 */ add.s $f0, $f2, $f0
/* 3E22B8 E00EA3D8 E6000044 */ swc1 $f0, 0x44($s0)
.LE00EA3DC:
/* 3E22BC E00EA3DC C6020050 */ lwc1 $f2, 0x50($s0)
/* 3E22C0 E00EA3E0 460A103C */ c.lt.s $f2, $f10
/* 3E22C4 E00EA3E4 00000000 */ nop
/* 3E22C8 E00EA3E8 45000006 */ bc1f .LE00EA404
/* 3E22CC E00EA3EC 00000000 */ nop
/* 3E22D0 E00EA3F0 3C014380 */ lui $at, 0x4380
/* 3E22D4 E00EA3F4 44810000 */ mtc1 $at, $f0
/* 3E22D8 E00EA3F8 00000000 */ nop
/* 3E22DC E00EA3FC 46001000 */ add.s $f0, $f2, $f0
/* 3E22E0 E00EA400 E6000050 */ swc1 $f0, 0x50($s0)
.LE00EA404:
/* 3E22E4 E00EA404 C6020054 */ lwc1 $f2, 0x54($s0)
/* 3E22E8 E00EA408 460A103C */ c.lt.s $f2, $f10
/* 3E22EC E00EA40C 00000000 */ nop
/* 3E22F0 E00EA410 45000006 */ bc1f .LE00EA42C
/* 3E22F4 E00EA414 00000000 */ nop
/* 3E22F8 E00EA418 3C014380 */ lui $at, 0x4380
/* 3E22FC E00EA41C 44810000 */ mtc1 $at, $f0
/* 3E2300 E00EA420 00000000 */ nop
/* 3E2304 E00EA424 46001000 */ add.s $f0, $f2, $f0
/* 3E2308 E00EA428 E6000054 */ swc1 $f0, 0x54($s0)
.LE00EA42C:
/* 3E230C E00EA42C C6000040 */ lwc1 $f0, 0x40($s0)
/* 3E2310 E00EA430 3C014380 */ lui $at, 0x4380
/* 3E2314 E00EA434 44811000 */ mtc1 $at, $f2
/* 3E2318 E00EA438 00000000 */ nop
/* 3E231C E00EA43C 4600103C */ c.lt.s $f2, $f0
/* 3E2320 E00EA440 00000000 */ nop
/* 3E2324 E00EA444 45000003 */ bc1f .LE00EA454
/* 3E2328 E00EA448 00000000 */ nop
/* 3E232C E00EA44C 46020001 */ sub.s $f0, $f0, $f2
/* 3E2330 E00EA450 E6000040 */ swc1 $f0, 0x40($s0)
.LE00EA454:
/* 3E2334 E00EA454 C6000044 */ lwc1 $f0, 0x44($s0)
/* 3E2338 E00EA458 4600103C */ c.lt.s $f2, $f0
/* 3E233C E00EA45C 00000000 */ nop
/* 3E2340 E00EA460 45000003 */ bc1f .LE00EA470
/* 3E2344 E00EA464 00000000 */ nop
/* 3E2348 E00EA468 46020001 */ sub.s $f0, $f0, $f2
/* 3E234C E00EA46C E6000044 */ swc1 $f0, 0x44($s0)
.LE00EA470:
/* 3E2350 E00EA470 C6000050 */ lwc1 $f0, 0x50($s0)
/* 3E2354 E00EA474 4600103C */ c.lt.s $f2, $f0
/* 3E2358 E00EA478 00000000 */ nop
/* 3E235C E00EA47C 45000003 */ bc1f .LE00EA48C
/* 3E2360 E00EA480 00000000 */ nop
/* 3E2364 E00EA484 46020001 */ sub.s $f0, $f0, $f2
/* 3E2368 E00EA488 E6000050 */ swc1 $f0, 0x50($s0)
.LE00EA48C:
/* 3E236C E00EA48C C6000054 */ lwc1 $f0, 0x54($s0)
/* 3E2370 E00EA490 4600103C */ c.lt.s $f2, $f0
/* 3E2374 E00EA494 00000000 */ nop
/* 3E2378 E00EA498 45000003 */ bc1f .LE00EA4A8
/* 3E237C E00EA49C 00041080 */ sll $v0, $a0, 2
/* 3E2380 E00EA4A0 46020001 */ sub.s $f0, $f0, $f2
/* 3E2384 E00EA4A4 E6000054 */ swc1 $f0, 0x54($s0)
.LE00EA4A8:
/* 3E2388 E00EA4A8 00441021 */ addu $v0, $v0, $a0
/* 3E238C E00EA4AC 00021080 */ sll $v0, $v0, 2
/* 3E2390 E00EA4B0 44826000 */ mtc1 $v0, $f12
/* 3E2394 E00EA4B4 00000000 */ nop
/* 3E2398 E00EA4B8 0C080140 */ jal shim_sin_deg
/* 3E239C E00EA4BC 46806320 */ cvt.s.w $f12, $f12
/* 3E23A0 E00EA4C0 C6040060 */ lwc1 $f4, 0x60($s0)
/* 3E23A4 E00EA4C4 C6020064 */ lwc1 $f2, 0x64($s0)
/* 3E23A8 E00EA4C8 46041081 */ sub.s $f2, $f2, $f4
/* 3E23AC E00EA4CC 46020002 */ mul.s $f0, $f0, $f2
/* 3E23B0 E00EA4D0 00000000 */ nop
/* 3E23B4 E00EA4D4 46020000 */ add.s $f0, $f0, $f2
/* 3E23B8 E00EA4D8 3C013FE0 */ lui $at, 0x3fe0
/* 3E23BC E00EA4DC 44811800 */ mtc1 $at, $f3
/* 3E23C0 E00EA4E0 44801000 */ mtc1 $zero, $f2
/* 3E23C4 E00EA4E4 46000021 */ cvt.d.s $f0, $f0
/* 3E23C8 E00EA4E8 46220002 */ mul.d $f0, $f0, $f2
/* 3E23CC E00EA4EC 00000000 */ nop
/* 3E23D0 E00EA4F0 46002121 */ cvt.d.s $f4, $f4
/* 3E23D4 E00EA4F4 46202100 */ add.d $f4, $f4, $f0
/* 3E23D8 E00EA4F8 4620268D */ trunc.w.d $f26, $f4
/* 3E23DC E00EA4FC E61A0034 */ swc1 $f26, 0x34($s0)
.LE00EA500:
/* 3E23E0 E00EA500 8FBF0014 */ lw $ra, 0x14($sp)
/* 3E23E4 E00EA504 8FB00010 */ lw $s0, 0x10($sp)
/* 3E23E8 E00EA508 D7BA0030 */ ldc1 $f26, 0x30($sp)
/* 3E23EC E00EA50C D7B80028 */ ldc1 $f24, 0x28($sp)
/* 3E23F0 E00EA510 D7B60020 */ ldc1 $f22, 0x20($sp)
/* 3E23F4 E00EA514 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 3E23F8 E00EA518 03E00008 */ jr $ra
/* 3E23FC E00EA51C 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,277 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00E0AC0
.double 0.05
dlabel D_E00E0AC8
.double 0.04
dlabel D_E00E0AD0
.double 0.1
dlabel D_E00E0AD8
.double 0.3
.section .text
glabel embers_update
/* 3DB638 E00E01D8 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 3DB63C E00E01DC AFB20020 */ sw $s2, 0x20($sp)
/* 3DB640 E00E01E0 0080902D */ daddu $s2, $a0, $zero
/* 3DB644 E00E01E4 AFBF0028 */ sw $ra, 0x28($sp)
/* 3DB648 E00E01E8 AFB30024 */ sw $s3, 0x24($sp)
/* 3DB64C E00E01EC AFB1001C */ sw $s1, 0x1c($sp)
/* 3DB650 E00E01F0 AFB00018 */ sw $s0, 0x18($sp)
/* 3DB654 E00E01F4 F7BE0058 */ sdc1 $f30, 0x58($sp)
/* 3DB658 E00E01F8 F7BC0050 */ sdc1 $f28, 0x50($sp)
/* 3DB65C E00E01FC F7BA0048 */ sdc1 $f26, 0x48($sp)
/* 3DB660 E00E0200 F7B80040 */ sdc1 $f24, 0x40($sp)
/* 3DB664 E00E0204 F7B60038 */ sdc1 $f22, 0x38($sp)
/* 3DB668 E00E0208 F7B40030 */ sdc1 $f20, 0x30($sp)
/* 3DB66C E00E020C 8E430000 */ lw $v1, ($s2)
/* 3DB670 E00E0210 8E44000C */ lw $a0, 0xc($s2)
/* 3DB674 E00E0214 30620010 */ andi $v0, $v1, 0x10
/* 3DB678 E00E0218 10400005 */ beqz $v0, .LE00E0230
/* 3DB67C E00E021C 2402FFEF */ addiu $v0, $zero, -0x11
/* 3DB680 E00E0220 00621024 */ and $v0, $v1, $v0
/* 3DB684 E00E0224 AE420000 */ sw $v0, ($s2)
/* 3DB688 E00E0228 24020010 */ addiu $v0, $zero, 0x10
/* 3DB68C E00E022C AC820018 */ sw $v0, 0x18($a0)
.LE00E0230:
/* 3DB690 E00E0230 8C830018 */ lw $v1, 0x18($a0)
/* 3DB694 E00E0234 286203E8 */ slti $v0, $v1, 0x3e8
/* 3DB698 E00E0238 10400002 */ beqz $v0, .LE00E0244
/* 3DB69C E00E023C 2462FFFF */ addiu $v0, $v1, -1
/* 3DB6A0 E00E0240 AC820018 */ sw $v0, 0x18($a0)
.LE00E0244:
/* 3DB6A4 E00E0244 3C030004 */ lui $v1, 4
/* 3DB6A8 E00E0248 8C82001C */ lw $v0, 0x1c($a0)
/* 3DB6AC E00E024C 3463F1A0 */ ori $v1, $v1, 0xf1a0
/* 3DB6B0 E00E0250 24420001 */ addiu $v0, $v0, 1
/* 3DB6B4 E00E0254 0062182A */ slt $v1, $v1, $v0
/* 3DB6B8 E00E0258 10600003 */ beqz $v1, .LE00E0268
/* 3DB6BC E00E025C AC82001C */ sw $v0, 0x1c($a0)
/* 3DB6C0 E00E0260 24020100 */ addiu $v0, $zero, 0x100
/* 3DB6C4 E00E0264 AC82001C */ sw $v0, 0x1c($a0)
.LE00E0268:
/* 3DB6C8 E00E0268 8C830018 */ lw $v1, 0x18($a0)
/* 3DB6CC E00E026C 04610005 */ bgez $v1, .LE00E0284
/* 3DB6D0 E00E0270 28620010 */ slti $v0, $v1, 0x10
/* 3DB6D4 E00E0274 0C080128 */ jal shim_remove_effect
/* 3DB6D8 E00E0278 0240202D */ daddu $a0, $s2, $zero
/* 3DB6DC E00E027C 0803815F */ j .LE00E057C
/* 3DB6E0 E00E0280 00000000 */ nop
.LE00E0284:
/* 3DB6E4 E00E0284 8C85001C */ lw $a1, 0x1c($a0)
/* 3DB6E8 E00E0288 10400002 */ beqz $v0, .LE00E0294
/* 3DB6EC E00E028C 00031100 */ sll $v0, $v1, 4
/* 3DB6F0 E00E0290 AC82002C */ sw $v0, 0x2c($a0)
.LE00E0294:
/* 3DB6F4 E00E0294 28A20010 */ slti $v0, $a1, 0x10
/* 3DB6F8 E00E0298 10400003 */ beqz $v0, .LE00E02A8
/* 3DB6FC E00E029C 00051100 */ sll $v0, $a1, 4
/* 3DB700 E00E02A0 2442000F */ addiu $v0, $v0, 0xf
/* 3DB704 E00E02A4 AC82002C */ sw $v0, 0x2c($a0)
.LE00E02A8:
/* 3DB708 E00E02A8 C4980010 */ lwc1 $f24, 0x10($a0)
/* 3DB70C E00E02AC C49E0014 */ lwc1 $f30, 0x14($a0)
/* 3DB710 E00E02B0 C49C0068 */ lwc1 $f28, 0x68($a0)
/* 3DB714 E00E02B4 C49A006C */ lwc1 $f26, 0x6c($a0)
/* 3DB718 E00E02B8 E7BA0010 */ swc1 $f26, 0x10($sp)
/* 3DB71C E00E02BC 8E420008 */ lw $v0, 8($s2)
/* 3DB720 E00E02C0 24110001 */ addiu $s1, $zero, 1
/* 3DB724 E00E02C4 0222102A */ slt $v0, $s1, $v0
/* 3DB728 E00E02C8 104000AC */ beqz $v0, .LE00E057C
/* 3DB72C E00E02CC 24840070 */ addiu $a0, $a0, 0x70
/* 3DB730 E00E02D0 3C13E00E */ lui $s3, %hi(D_E00E0A48)
/* 3DB734 E00E02D4 26730A48 */ addiu $s3, $s3, %lo(D_E00E0A48)
/* 3DB738 E00E02D8 2490004C */ addiu $s0, $a0, 0x4c
/* 3DB73C E00E02DC 3C01E00E */ lui $at, %hi(D_E00E0AC0)
/* 3DB740 E00E02E0 D4340AC0 */ ldc1 $f20, %lo(D_E00E0AC0)($at)
/* 3DB744 E00E02E4 3C01E00E */ lui $at, %hi(D_E00E0AC8)
/* 3DB748 E00E02E8 D4360AC8 */ ldc1 $f22, %lo(D_E00E0AC8)($at)
.LE00E02EC:
/* 3DB74C E00E02EC 8E020018 */ lw $v0, 0x18($s0)
/* 3DB750 E00E02F0 24420001 */ addiu $v0, $v0, 1
/* 3DB754 E00E02F4 AE020018 */ sw $v0, 0x18($s0)
/* 3DB758 E00E02F8 2842001E */ slti $v0, $v0, 0x1e
/* 3DB75C E00E02FC 50400001 */ beql $v0, $zero, .LE00E0304
/* 3DB760 E00E0300 AE000018 */ sw $zero, 0x18($s0)
.LE00E0304:
/* 3DB764 E00E0304 8E020018 */ lw $v0, 0x18($s0)
/* 3DB768 E00E0308 04420098 */ bltzl $v0, .LE00E056C
/* 3DB76C E00E030C 26310001 */ addiu $s1, $s1, 1
/* 3DB770 E00E0310 14400058 */ bnez $v0, .LE00E0474
/* 3DB774 E00E0314 00000000 */ nop
/* 3DB778 E00E0318 4600C68D */ trunc.w.s $f26, $f24
/* 3DB77C E00E031C 4404D000 */ mfc1 $a0, $f26
/* 3DB780 E00E0320 0C080138 */ jal shim_rand_int
/* 3DB784 E00E0324 00000000 */ nop
/* 3DB788 E00E0328 3C013FE0 */ lui $at, 0x3fe0
/* 3DB78C E00E032C 44810800 */ mtc1 $at, $f1
/* 3DB790 E00E0330 44800000 */ mtc1 $zero, $f0
/* 3DB794 E00E0334 4600C0A1 */ cvt.d.s $f2, $f24
/* 3DB798 E00E0338 46201082 */ mul.d $f2, $f2, $f0
/* 3DB79C E00E033C 00000000 */ nop
/* 3DB7A0 E00E0340 44820000 */ mtc1 $v0, $f0
/* 3DB7A4 E00E0344 00000000 */ nop
/* 3DB7A8 E00E0348 46800021 */ cvt.d.w $f0, $f0
/* 3DB7AC E00E034C 46220001 */ sub.d $f0, $f0, $f2
/* 3DB7B0 E00E0350 4600F68D */ trunc.w.s $f26, $f30
/* 3DB7B4 E00E0354 4404D000 */ mfc1 $a0, $f26
/* 3DB7B8 E00E0358 46200020 */ cvt.s.d $f0, $f0
/* 3DB7BC E00E035C 0C080138 */ jal shim_rand_int
/* 3DB7C0 E00E0360 E600FFB8 */ swc1 $f0, -0x48($s0)
/* 3DB7C4 E00E0364 24040014 */ addiu $a0, $zero, 0x14
/* 3DB7C8 E00E0368 44820000 */ mtc1 $v0, $f0
/* 3DB7CC E00E036C 00000000 */ nop
/* 3DB7D0 E00E0370 46800020 */ cvt.s.w $f0, $f0
/* 3DB7D4 E00E0374 E600FFBC */ swc1 $f0, -0x44($s0)
/* 3DB7D8 E00E0378 0C080138 */ jal shim_rand_int
/* 3DB7DC E00E037C AE00FFC0 */ sw $zero, -0x40($s0)
/* 3DB7E0 E00E0380 2442FFF6 */ addiu $v0, $v0, -0xa
/* 3DB7E4 E00E0384 44820000 */ mtc1 $v0, $f0
/* 3DB7E8 E00E0388 00000000 */ nop
/* 3DB7EC E00E038C 46800020 */ cvt.s.w $f0, $f0
/* 3DB7F0 E00E0390 46000021 */ cvt.d.s $f0, $f0
/* 3DB7F4 E00E0394 46340002 */ mul.d $f0, $f0, $f20
/* 3DB7F8 E00E0398 00000000 */ nop
/* 3DB7FC E00E039C 24040028 */ addiu $a0, $zero, 0x28
/* 3DB800 E00E03A0 46200020 */ cvt.s.d $f0, $f0
/* 3DB804 E00E03A4 0C080138 */ jal shim_rand_int
/* 3DB808 E00E03A8 E600FFF8 */ swc1 $f0, -8($s0)
/* 3DB80C E00E03AC 2442FFFF */ addiu $v0, $v0, -1
/* 3DB810 E00E03B0 44820000 */ mtc1 $v0, $f0
/* 3DB814 E00E03B4 00000000 */ nop
/* 3DB818 E00E03B8 46800020 */ cvt.s.w $f0, $f0
/* 3DB81C E00E03BC 461C0002 */ mul.s $f0, $f0, $f28
/* 3DB820 E00E03C0 00000000 */ nop
/* 3DB824 E00E03C4 46000021 */ cvt.d.s $f0, $f0
/* 3DB828 E00E03C8 46340002 */ mul.d $f0, $f0, $f20
/* 3DB82C E00E03CC 00000000 */ nop
/* 3DB830 E00E03D0 24040014 */ addiu $a0, $zero, 0x14
/* 3DB834 E00E03D4 AE000000 */ sw $zero, ($s0)
/* 3DB838 E00E03D8 46200020 */ cvt.s.d $f0, $f0
/* 3DB83C E00E03DC 0C080138 */ jal shim_rand_int
/* 3DB840 E00E03E0 E600FFFC */ swc1 $f0, -4($s0)
/* 3DB844 E00E03E4 2442FFF6 */ addiu $v0, $v0, -0xa
/* 3DB848 E00E03E8 44820000 */ mtc1 $v0, $f0
/* 3DB84C E00E03EC 00000000 */ nop
/* 3DB850 E00E03F0 46800020 */ cvt.s.w $f0, $f0
/* 3DB854 E00E03F4 46000021 */ cvt.d.s $f0, $f0
/* 3DB858 E00E03F8 46340002 */ mul.d $f0, $f0, $f20
/* 3DB85C E00E03FC 00000000 */ nop
/* 3DB860 E00E0400 2404001E */ addiu $a0, $zero, 0x1e
/* 3DB864 E00E0404 46200020 */ cvt.s.d $f0, $f0
/* 3DB868 E00E0408 0C080138 */ jal shim_rand_int
/* 3DB86C E00E040C E6000004 */ swc1 $f0, 4($s0)
/* 3DB870 E00E0410 2442FFFF */ addiu $v0, $v0, -1
/* 3DB874 E00E0414 C7BA0010 */ lwc1 $f26, 0x10($sp)
/* 3DB878 E00E0418 44820000 */ mtc1 $v0, $f0
/* 3DB87C E00E041C 00000000 */ nop
/* 3DB880 E00E0420 46800020 */ cvt.s.w $f0, $f0
/* 3DB884 E00E0424 461A0002 */ mul.s $f0, $f0, $f26
/* 3DB888 E00E0428 00000000 */ nop
/* 3DB88C E00E042C 46000021 */ cvt.d.s $f0, $f0
/* 3DB890 E00E0430 46340002 */ mul.d $f0, $f0, $f20
/* 3DB894 E00E0434 00000000 */ nop
/* 3DB898 E00E0438 2404000F */ addiu $a0, $zero, 0xf
/* 3DB89C E00E043C AE00000C */ sw $zero, 0xc($s0)
/* 3DB8A0 E00E0440 46200020 */ cvt.s.d $f0, $f0
/* 3DB8A4 E00E0444 0C080138 */ jal shim_rand_int
/* 3DB8A8 E00E0448 E6000008 */ swc1 $f0, 8($s0)
/* 3DB8AC E00E044C 2404000F */ addiu $a0, $zero, 0xf
/* 3DB8B0 E00E0450 44820000 */ mtc1 $v0, $f0
/* 3DB8B4 E00E0454 00000000 */ nop
/* 3DB8B8 E00E0458 46800020 */ cvt.s.w $f0, $f0
/* 3DB8BC E00E045C 0C080138 */ jal shim_rand_int
/* 3DB8C0 E00E0460 E6000010 */ swc1 $f0, 0x10($s0)
/* 3DB8C4 E00E0464 44820000 */ mtc1 $v0, $f0
/* 3DB8C8 E00E0468 00000000 */ nop
/* 3DB8CC E00E046C 46800020 */ cvt.s.w $f0, $f0
/* 3DB8D0 E00E0470 E6000014 */ swc1 $f0, 0x14($s0)
.LE00E0474:
/* 3DB8D4 E00E0474 C610FFF8 */ lwc1 $f16, -8($s0)
/* 3DB8D8 E00E0478 C60A0004 */ lwc1 $f10, 4($s0)
/* 3DB8DC E00E047C 46105281 */ sub.s $f10, $f10, $f16
/* 3DB8E0 E00E0480 460052A1 */ cvt.d.s $f10, $f10
/* 3DB8E4 E00E0484 46365282 */ mul.d $f10, $f10, $f22
/* 3DB8E8 E00E0488 00000000 */ nop
/* 3DB8EC E00E048C C60EFFFC */ lwc1 $f14, -4($s0)
/* 3DB8F0 E00E0490 C60C0008 */ lwc1 $f12, 8($s0)
/* 3DB8F4 E00E0494 460E6301 */ sub.s $f12, $f12, $f14
/* 3DB8F8 E00E0498 46006321 */ cvt.d.s $f12, $f12
/* 3DB8FC E00E049C 46366302 */ mul.d $f12, $f12, $f22
/* 3DB900 E00E04A0 00000000 */ nop
/* 3DB904 E00E04A4 C6060000 */ lwc1 $f6, ($s0)
/* 3DB908 E00E04A8 C608000C */ lwc1 $f8, 0xc($s0)
/* 3DB90C E00E04AC 46064201 */ sub.s $f8, $f8, $f6
/* 3DB910 E00E04B0 46004221 */ cvt.d.s $f8, $f8
/* 3DB914 E00E04B4 46364202 */ mul.d $f8, $f8, $f22
/* 3DB918 E00E04B8 00000000 */ nop
/* 3DB91C E00E04BC 8E020018 */ lw $v0, 0x18($s0)
/* 3DB920 E00E04C0 C600FFB8 */ lwc1 $f0, -0x48($s0)
/* 3DB924 E00E04C4 C612FFBC */ lwc1 $f18, -0x44($s0)
/* 3DB928 E00E04C8 00021080 */ sll $v0, $v0, 2
/* 3DB92C E00E04CC 00531021 */ addu $v0, $v0, $s3
/* 3DB930 E00E04D0 46008086 */ mov.s $f2, $f16
/* 3DB934 E00E04D4 C4440000 */ lwc1 $f4, ($v0)
/* 3DB938 E00E04D8 46020000 */ add.s $f0, $f0, $f2
/* 3DB93C E00E04DC C6020010 */ lwc1 $f2, 0x10($s0)
/* 3DB940 E00E04E0 46008421 */ cvt.d.s $f16, $f16
/* 3DB944 E00E04E4 E604FFF4 */ swc1 $f4, -0xc($s0)
/* 3DB948 E00E04E8 E600FFB8 */ swc1 $f0, -0x48($s0)
/* 3DB94C E00E04EC 46007006 */ mov.s $f0, $f14
/* 3DB950 E00E04F0 46009480 */ add.s $f18, $f18, $f0
/* 3DB954 E00E04F4 C604FFC0 */ lwc1 $f4, -0x40($s0)
/* 3DB958 E00E04F8 46003006 */ mov.s $f0, $f6
/* 3DB95C E00E04FC 46002100 */ add.s $f4, $f4, $f0
/* 3DB960 E00E0500 3C01E00E */ lui $at, %hi(D_E00E0AD0)
/* 3DB964 E00E0504 D4200AD0 */ ldc1 $f0, %lo(D_E00E0AD0)($at)
/* 3DB968 E00E0508 460010A1 */ cvt.d.s $f2, $f2
/* 3DB96C E00E050C 46201080 */ add.d $f2, $f2, $f0
/* 3DB970 E00E0510 C6000014 */ lwc1 $f0, 0x14($s0)
/* 3DB974 E00E0514 460073A1 */ cvt.d.s $f14, $f14
/* 3DB978 E00E0518 E604FFC0 */ swc1 $f4, -0x40($s0)
/* 3DB97C E00E051C 3C01E00E */ lui $at, %hi(D_E00E0AD8)
/* 3DB980 E00E0520 D4240AD8 */ ldc1 $f4, %lo(D_E00E0AD8)($at)
/* 3DB984 E00E0524 46000021 */ cvt.d.s $f0, $f0
/* 3DB988 E00E0528 46240000 */ add.d $f0, $f0, $f4
/* 3DB98C E00E052C 460031A1 */ cvt.d.s $f6, $f6
/* 3DB990 E00E0530 E612FFBC */ swc1 $f18, -0x44($s0)
/* 3DB994 E00E0534 462A8400 */ add.d $f16, $f16, $f10
/* 3DB998 E00E0538 462010A0 */ cvt.s.d $f2, $f2
/* 3DB99C E00E053C E6020010 */ swc1 $f2, 0x10($s0)
/* 3DB9A0 E00E0540 462C7380 */ add.d $f14, $f14, $f12
/* 3DB9A4 E00E0544 46200020 */ cvt.s.d $f0, $f0
/* 3DB9A8 E00E0548 E6000014 */ swc1 $f0, 0x14($s0)
/* 3DB9AC E00E054C 46283180 */ add.d $f6, $f6, $f8
/* 3DB9B0 E00E0550 46208420 */ cvt.s.d $f16, $f16
/* 3DB9B4 E00E0554 462073A0 */ cvt.s.d $f14, $f14
/* 3DB9B8 E00E0558 462031A0 */ cvt.s.d $f6, $f6
/* 3DB9BC E00E055C E610FFF8 */ swc1 $f16, -8($s0)
/* 3DB9C0 E00E0560 E60EFFFC */ swc1 $f14, -4($s0)
/* 3DB9C4 E00E0564 E6060000 */ swc1 $f6, ($s0)
/* 3DB9C8 E00E0568 26310001 */ addiu $s1, $s1, 1
.LE00E056C:
/* 3DB9CC E00E056C 8E420008 */ lw $v0, 8($s2)
/* 3DB9D0 E00E0570 0222102A */ slt $v0, $s1, $v0
/* 3DB9D4 E00E0574 1440FF5D */ bnez $v0, .LE00E02EC
/* 3DB9D8 E00E0578 26100070 */ addiu $s0, $s0, 0x70
.LE00E057C:
/* 3DB9DC E00E057C 8FBF0028 */ lw $ra, 0x28($sp)
/* 3DB9E0 E00E0580 8FB30024 */ lw $s3, 0x24($sp)
/* 3DB9E4 E00E0584 8FB20020 */ lw $s2, 0x20($sp)
/* 3DB9E8 E00E0588 8FB1001C */ lw $s1, 0x1c($sp)
/* 3DB9EC E00E058C 8FB00018 */ lw $s0, 0x18($sp)
/* 3DB9F0 E00E0590 D7BE0058 */ ldc1 $f30, 0x58($sp)
/* 3DB9F4 E00E0594 D7BC0050 */ ldc1 $f28, 0x50($sp)
/* 3DB9F8 E00E0598 D7BA0048 */ ldc1 $f26, 0x48($sp)
/* 3DB9FC E00E059C D7B80040 */ ldc1 $f24, 0x40($sp)
/* 3DBA00 E00E05A0 D7B60038 */ ldc1 $f22, 0x38($sp)
/* 3DBA04 E00E05A4 D7B40030 */ ldc1 $f20, 0x30($sp)
/* 3DBA08 E00E05A8 03E00008 */ jr $ra
/* 3DBA0C E00E05AC 27BD0060 */ addiu $sp, $sp, 0x60

View File

@ -92,6 +92,30 @@ D_090018F8 = 0x090018F8;
D_09001918 = 0x09001918;
D_09001938 = 0x09001938;
// effect_drop_leaves
D_09001180 = 0x09001180;
D_09001230 = 0x09001230;
// effect_dust
D_09000CC0 = 0x09000CC0;
D_09000D68 = 0x09000D68;
D_09000E18 = 0x09000E18;
D_09000E38 = 0x09000E38;
D_09000E58 = 0x09000E58;
// effect_3D
D_09000240 = 0x09000240;
D_090002E8 = 0x090002E8;
// effect_46
D_090003A0 = 0x090003A0;
D_09000420 = 0x09000420;
// effect_75
D_09001910 = 0x09001910;
D_09001A00 = 0x09001A00;
D_09001A20 = 0x09001A20;
// effect_134
D_09000800 = 0x09000800;
D_09000BA8 = 0x09000BA8;