[Effects] A few functions (#850)

* [Effects] A few functions

* Addressing PR comments
This commit is contained in:
mrshigure 2022-11-04 17:43:44 -07:00 committed by GitHub
parent 3f08935b05
commit 9da8f0a56a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 826 additions and 2282 deletions

View File

@ -1061,8 +1061,34 @@ typedef struct FireBreathFXData {
} FireBreathFXData; // size = 0x7C } FireBreathFXData; // size = 0x7C
typedef struct ShimmerBurstFXData { typedef struct ShimmerBurstFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ s32 unk_00;
} ShimmerBurstFXData; // size = unknown /* 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 */ f32 unk_24;
/* 0x28 */ f32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ s32 unk_3C;
/* 0x40 */ s32 unk_40;
/* 0x44 */ s32 unk_44;
/* 0x48 */ s32 unk_48;
/* 0x4C */ s32 unk_4C;
/* 0x50 */ s32 unk_50;
/* 0x54 */ s32 unk_54;
/* 0x58 */ s32 unk_58;
/* 0x5C */ s32 unk_5C;
/* 0x60 */ f32 unk_60;
/* 0x64 */ f32 unk_64;
/* 0x68 */ f32 unk_68;
} ShimmerBurstFXData; // size = 0x6C
typedef struct EnergyShockwaveFXData { typedef struct EnergyShockwaveFXData {
/* 0x00 */ s32 unk_00; /* 0x00 */ s32 unk_00;
@ -1685,8 +1711,20 @@ typedef struct WaterBlockFXData {
} WaterBlockFXData; // size = unknown } WaterBlockFXData; // size = unknown
typedef struct WaterfallFXData { typedef struct WaterfallFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ s32 unk_00;
} WaterfallFXData; // size = unknown /* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 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 */ f32 unk_28;
/* 0x2C */ f32 unk_2C[12];
/* 0x5C */ f32 unk_5C[12];
} WaterfallFXData; // size = 0x8C
typedef struct WaterFountainFXData { typedef struct WaterFountainFXData {
/* 0x00 */ s32 unk_00; /* 0x00 */ s32 unk_00;
@ -1707,8 +1745,23 @@ typedef struct WaterFountainFXData {
} WaterFountainFXData; // size = 0x44 } WaterFountainFXData; // size = 0x44
typedef struct UnderwaterFXData { typedef struct UnderwaterFXData {
/* 0x00 */ char todo[0]; /* 0x000 */ s32 unk_00;
} UnderwaterFXData; // size = unknown /* 0x004 */ f32 unk_04;
/* 0x008 */ f32 unk_08;
/* 0x00C */ f32 unk_0C;
/* 0x010 */ s32 unk_10;
/* 0x014 */ s32 unk_14;
/* 0x018 */ f32 unk_18;
/* 0x01C */ u8 unk_1C;
/* 0x01D */ u8 unk_1D;
/* 0x01E */ u8 unk_1E;
/* 0x01F */ u8 unk_1F;
/* 0x020 */ u8 unk_20;
/* 0x021 */ u8 unk_21;
/* 0x022 */ u8 unk_22;
/* 0x023 */ s8 unk_23[19][13];
/* 0x11A */ s16 unk_11A[19][13];
} UnderwaterFXData; // size = 0x308
typedef struct LightningBoltFXData { typedef struct LightningBoltFXData {
/* 0x000 */ s32 type; /* 0x000 */ s32 type;

View File

@ -87,7 +87,7 @@ void ending_decals_main(s32, f32, f32, f32, f32, EffectInstance**);
void light_rays_main(s32, f32, f32, f32, f32, EffectInstance**); void light_rays_main(s32, f32, f32, f32, f32, EffectInstance**);
EffectInstance* lightning_main(s32, f32, f32, f32, f32, f32); EffectInstance* lightning_main(s32, f32, f32, f32, f32, f32);
EffectInstance* fire_breath_main(s32, f32, f32, f32, f32, f32, f32, s32, s32, s32); EffectInstance* fire_breath_main(s32, f32, f32, f32, f32, f32, f32, s32, s32, s32);
FX_MAIN(shimmer_burst_main); EffectInstance* shimmer_burst_main(s32, f32, f32, f32, f32, s32);
void energy_shockwave_main(s32, f32, f32, f32, f32, s32); void energy_shockwave_main(s32, f32, f32, f32, f32, s32);
EffectInstance* shimmer_wave_main(s32, f32, f32, f32, f32, f32, s32, s32); EffectInstance* shimmer_wave_main(s32, f32, f32, f32, f32, f32, s32, s32);
void aura_main(s32, f32, f32, f32, f32, EffectInstance**); void aura_main(s32, f32, f32, f32, f32, EffectInstance**);
@ -122,9 +122,9 @@ EffectInstance* snaking_static_main(s32, f32, f32, f32, f32, s32);
EffectInstance* thunderbolt_ring_main(s32, f32, f32, f32, f32, s32); EffectInstance* thunderbolt_ring_main(s32, f32, f32, f32, f32, s32);
EffectInstance* squirt_main(s32, f32, f32, f32, f32, f32, f32, f32, s32); EffectInstance* squirt_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
FX_MAIN(water_block_main); FX_MAIN(water_block_main);
FX_MAIN(waterfall_main); EffectInstance* waterfall_main(s32, f32, f32, f32, f32, s32);
EffectInstance* water_fountain_main(s32, f32, f32, f32, f32, s32); EffectInstance* water_fountain_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(underwater_main); EffectInstance* underwater_main(s32, f32, f32, f32, f32, s32);
EffectInstance* lightning_bolt_main(s32, f32, f32, f32, f32, f32, f32, f32, s32); EffectInstance* lightning_bolt_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
FX_MAIN(water_splash_main); FX_MAIN(water_splash_main);
EffectInstance* snowman_doll_main(s32, f32, f32, f32, f32, s32); EffectInstance* snowman_doll_main(s32, f32, f32, f32, f32, s32);

View File

@ -118,8 +118,8 @@ EffectTableEntry gEffectTable[] = {
/* 0x58 */ FX_ENTRY(thunderbolt_ring, effect_gfx_thunderbolt_ring), /* 0x58 */ FX_ENTRY(thunderbolt_ring, effect_gfx_thunderbolt_ring),
/* 0x59 */ FX_ENTRY(squirt, _3B5340), /* 0x59 */ FX_ENTRY(squirt, _3B5340),
/* 0x5A */ FX_ENTRY(water_block, _3B6BF0), /* 0x5A */ FX_ENTRY(water_block, _3B6BF0),
/* 0x5B */ FX_ENTRY(waterfall, _3B78D0), /* 0x5B */ FX_ENTRY(waterfall, effect_gfx_waterfall),
/* 0x5C */ FX_ENTRY(water_fountain, _3B8860), /* 0x5C */ FX_ENTRY(water_fountain, effect_gfx_water_fountain),
/* 0x5D */ FX_ENTRY(underwater, _3B9A70), /* 0x5D */ FX_ENTRY(underwater, _3B9A70),
/* 0x5E */ FX_ENTRY(lightning_bolt, effect_gfx_lightning_bolt), /* 0x5E */ FX_ENTRY(lightning_bolt, effect_gfx_lightning_bolt),
/* 0x5F */ FX_ENTRY(water_splash, effect_gfx_water_splash), /* 0x5F */ FX_ENTRY(water_splash, effect_gfx_water_splash),

View File

@ -0,0 +1,8 @@
#include "effects/gfx/D_09000000_3B8860.png.inc.c"
#include "effects/gfx/D_09000200_3B8A60.vtx.inc.c"
#include "effects/gfx/D_09000240_3B8AA0.vtx.inc.c"
#include "effects/gfx/D_09000280_3B8AE0.gfx.inc.c"
#include "effects/gfx/D_09000328_3B8B88.gfx.inc.c"
#include "effects/gfx/D_09000348_3B8BA8.gfx.inc.c"

View File

@ -0,0 +1,2 @@
#include "effects/gfx/D_09000000_3B78D0.png.inc.c"
#include "effects/gfx/D_09000200_3B7AD0.gfx.inc.c"

View File

@ -1,14 +1,187 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern Gfx D_09000F20_338EE0[];
extern Gfx D_090011C8_339188[];
extern Gfx D_090011E0_3391A0[];
extern Gfx D_090011F8_3391B8[];
extern Gfx D_09001210_3391D0[];
extern Gfx D_09001228_3391E8[];
extern Gfx D_09001240_339200[];
extern Gfx D_09001258_339218[];
extern Gfx D_09001270_339230[];
Gfx* D_E0070CD0[] = {
D_09001210_3391D0, D_09001228_3391E8, D_09001240_339200, D_09001258_339218,
D_09001270_339230, D_090011C8_339188, D_090011E0_3391A0, D_090011F8_3391B8
};
f32 D_E0070CF0[] = {
0.2f, 0.4f, 0.8f, 1.3f, 1.5f, 1.3f, 0.9f, 0.6f, 0.4f, 0.3f,
0.2f, 0.4f, 0.8f, 1.3f, 1.5f, 1.3f, 0.9f, 0.6f, 0.4f, 0.3f
};
s32 D_E0070D70[] = {
0xC8FAFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFAC8, 0x00000000, 0x00000000, 0x00000000
};
void shimmer_burst_init(EffectInstance* effect);
void shimmer_burst_update(EffectInstance* effect);
void shimmer_burst_render(EffectInstance* effect);
void shimmer_burst_appendGfx(void* effect); void shimmer_burst_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/shimmer_burst", shimmer_burst_main); EffectInstance* shimmer_burst_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectBlueprint bp;
EffectInstance* effect;
ShimmerBurstFXData* part;
s32 numParts = 61;
s32 temp30 = 30;
f32 temp;
s32 i;
void shimmer_burst_init(void) { bp.init = shimmer_burst_init;
bp.update = shimmer_burst_update;
bp.renderWorld = shimmer_burst_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_SHIMMER_BURST;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
part = effect->data.shimmerBurst = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.shimmerBurst != NULL);
part->unk_00 = arg0;
part->unk_3C = 0;
if (arg5 <= 0) {
part->unk_38 = 1000;
} else {
part->unk_38 = arg5;
}
part->unk_4C = 255;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_60 = arg4;
part->unk_10 = temp30;
part->unk_14 = temp30;
part->unk_40 = 255;
part->unk_44 = 255;
part->unk_48 = 255;
if (arg0 == 0) {
part->unk_50 = 215;
part->unk_54 = 255;
part->unk_58 = 235;
part->unk_5C = 255;
} else {
part->unk_50 = 255;
part->unk_54 = 127;
part->unk_58 = 255;
part->unk_5C = 255;
} }
INCLUDE_ASM(s32, "effects/shimmer_burst", shimmer_burst_update); part++;
if (arg5 < 20) {
temp = 20.0f / (numParts - 1);
} else {
temp = (f32) arg5 / (numParts - 1);
}
for (i = 1; i < numParts; i++, part++) {
part->unk_30 = (s32) (-(f32) i * temp) - 1;
}
return effect;
}
void shimmer_burst_init(EffectInstance* effect) {
}
void shimmer_burst_update(EffectInstance* effect) {
ShimmerBurstFXData* part = effect->data.shimmerBurst;
s32 unk_00 = part->unk_00;
f32 unk_10;
f32 unk_14;
s32 i;
if (effect->flags & EFFECT_INSTANCE_FLAGS_10) {
effect->flags &= ~EFFECT_INSTANCE_FLAGS_10;
part->unk_38 = 16;
}
if (part->unk_38 < 1000) {
part->unk_38--;
}
part->unk_3C++;
if (part->unk_38 < 0) {
shim_remove_effect(effect);
return;
}
if (part->unk_38 < 8) {
part->unk_4C = part->unk_38 * 32;
}
unk_10 = part->unk_10;
unk_14 = part->unk_14;
part++;
for (i = 1; i < effect->numParts; i++, part++) {
part->unk_30++;
if (part->unk_30 >= ARRAY_COUNT(D_E0070CF0)) {
part->unk_30 = 0;
}
if (part->unk_30 >= 0) {
if (part->unk_30 == 0) {
f32 rand1 = shim_rand_int(359);
f32 rand2 = shim_rand_int(359);
if (unk_00 == 0) {
part->unk_04 = unk_10 * shim_sin_deg(rand1) * shim_cos_deg(rand2);
part->unk_08 = unk_14 * shim_cos_deg(rand1) * shim_cos_deg(rand2);
part->unk_0C = unk_10 * shim_sin_deg(rand2);
part->unk_18 = part->unk_04 * 0.4;
part->unk_1C = part->unk_08 * 0.4;
part->unk_20 = part->unk_0C * 0.4;
part->unk_24 = part->unk_18 * 0.1;
part->unk_28 = part->unk_1C * 0.1;
part->unk_2C = part->unk_20 * 0.1;
} else {
part->unk_04 = shim_rand_int(unk_10) - unk_10 * 0.5;
part->unk_08 = shim_rand_int(unk_14) - unk_14 * 0.5;
part->unk_0C = shim_rand_int(unk_10) - unk_10 * 0.5;
part->unk_18 = part->unk_04 * 0.3;
part->unk_1C = part->unk_08 * 0.3;
part->unk_20 = part->unk_0C * 0.3;
part->unk_24 = part->unk_18 * 0.02;
part->unk_28 = part->unk_1C * 0.02;
part->unk_2C = part->unk_20 * 0.02;
}
part->unk_64 = shim_rand_int(15);
part->unk_68 = shim_rand_int(15);
part->unk_34 = 0.0f;
part->unk_4C = 255;
}
part->unk_60 = D_E0070CF0[part->unk_30];
part->unk_34 += 4.0f;
part->unk_04 += part->unk_18;
part->unk_08 += part->unk_1C;
part->unk_0C += part->unk_20;
part->unk_64 += 0.2;
part->unk_68 += 0.6;
part->unk_18 += (part->unk_24 - part->unk_18) * 0.04;
part->unk_1C += (part->unk_28 - part->unk_1C) * 0.04;
part->unk_20 += (part->unk_2C - part->unk_20) * 0.04;
}
}
}
void shimmer_burst_render(EffectInstance* effect) { void shimmer_burst_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;
@ -26,4 +199,61 @@ void shimmer_burst_render(EffectInstance* effect) {
void func_E0070738(void) { void func_E0070738(void) {
} }
INCLUDE_ASM(s32, "effects/shimmer_burst", shimmer_burst_appendGfx); void shimmer_burst_appendGfx(void* effect) {
ShimmerBurstFXData* part = ((EffectInstance*)effect)->data.shimmerBurst;
s32 unk_50 = part->unk_50;
s32 unk_54 = part->unk_54;
s32 unk_58 = part->unk_58;
f32 temp_f20 = part->unk_4C / 255.0f;
Gfx* savedGfxPos;
Matrix4f sp20;
Matrix4f sp60;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guTranslateF(sp20, part->unk_04, part->unk_08, part->unk_0C);
shim_guScaleF(sp60, part->unk_60, part->unk_60, part->unk_60);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetEnvColor(gMasterGfxPos++, part->unk_40, part->unk_44, part->unk_48, part->unk_5C);
gSPDisplayList(gMasterGfxPos++, D_09000F20_338EE0);
savedGfxPos = gMasterGfxPos;
gMasterGfxPos++;
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
if (part->unk_30 >= 0) {
shim_guPositionF(sp20, 0.0f, 0.0f, part->unk_34, part->unk_60 * temp_f20, part->unk_04, part->unk_08, part->unk_0C);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, unk_50, unk_54, unk_58, part->unk_4C * temp_f20);
gSPDisplayList(gMasterGfxPos++, D_E0070CD0[i & 7]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
gSPEndDisplayList(gMasterGfxPos++);
gSPBranchList(savedGfxPos, gMasterGfxPos);
gSPDisplayList(gMasterGfxPos++, savedGfxPos + 1);
shim_guRotateF(sp20, 120.0f, 0.4f, 0.0f, 0.8f);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, savedGfxPos + 1);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
shim_guRotateF(sp20, -120.0f, 0.4f, 0.0f, 0.8f);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, savedGfxPos + 1);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}

View File

@ -1,14 +1,135 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
void underwater_init(EffectInstance* effect);
void underwater_update(EffectInstance* effect);
void underwater_render(EffectInstance* effect);
void underwater_appendGfx(void* effect); void underwater_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/underwater", underwater_main); EffectInstance* underwater_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectBlueprint bp;
EffectInstance* effect;
UnderwaterFXData* data;
s32 numParts = 1;
s32 i;
s32 j;
void underwater_init(void) { bp.init = underwater_init;
bp.update = underwater_update;
bp.renderWorld = underwater_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_UNDERWATER;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.underwater = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.underwater != NULL);
data->unk_00 = arg0;
data->unk_14 = 0;
if (arg5 <= 0) {
data->unk_10 = 1000;
} else {
data->unk_10 = arg5;
}
data->unk_1F = 0;
data->unk_04 = arg1;
data->unk_08 = arg2;
data->unk_0C = arg3;
data->unk_18 = arg4;
data->unk_1C = 10;
data->unk_1D = 110;
data->unk_1E = 255;
data->unk_20 = 190;
data->unk_21 = 220;
data->unk_22 = 255;
for (i = 0; i < ARRAY_COUNT(data->unk_23); i++) {
for (j = 0; j < ARRAY_COUNT(data->unk_23[0]); j++) {
data->unk_23[i][j] = 0;
data->unk_11A[i][j] = 0;
}
} }
INCLUDE_ASM(s32, "effects/underwater", underwater_update); return effect;
}
void underwater_init(EffectInstance* effect) {
}
void underwater_update(EffectInstance* effect) {
UnderwaterFXData* data = effect->data.underwater;
s32 unk_10;
s32 unk_14;
s32 var_a0;
f32 factor;
s32 i;
s32 j;
if (effect->flags & EFFECT_INSTANCE_FLAGS_10) {
effect->flags &= ~EFFECT_INSTANCE_FLAGS_10;
data->unk_10 = 32;
}
if (data->unk_10 < 1000) {
data->unk_10--;
}
data->unk_14++;
if (data->unk_10 < 0) {
shim_remove_effect(effect);
return;
}
unk_10 = data->unk_10;
unk_14 = data->unk_14;
var_a0 = 255;
if (unk_10 < 32) {
var_a0 = unk_10 * 8;
}
if (unk_14 < 16) {
var_a0 = unk_14 * 16 + 15;
}
data->unk_1F = (f32) var_a0;
factor = (f32) var_a0 / 255.0f;
for (i = 1; i < ARRAY_COUNT(data->unk_23) - 1; i++) {
data->unk_23[i][6] = shim_sin_deg(-((unk_14 - i) * 20)) * -64.0f * factor;
}
for (i = 1; i < ARRAY_COUNT(data->unk_23) - 1; i++) {
for (j = 1; j < ARRAY_COUNT(data->unk_23[0]) - 1; j++) {
f32 m11 = data->unk_23[i][j] * 4.0f;
f32 m21 = data->unk_23[i + 1][j];
f32 m01 = data->unk_23[i - 1][j];
f32 m12 = data->unk_23[i][j + 1];
f32 m10 = data->unk_23[i][j - 1];
f32 m22 = data->unk_23[i + 1][j + 1];
f32 m02 = data->unk_23[i - 1][j + 1];
f32 m20 = data->unk_23[i + 1][j - 1];
f32 m00 = data->unk_23[i - 1][j - 1];
f32 temp1 = m21 + m01 + m12 + m10 - m11;
f32 temp2 = (m22 + m02 + m20 + m00) * 0.5;
data->unk_11A[i][j] += temp1 + temp2 - m11 * 0.7;
data->unk_11A[i][j] *= 0.98;
if (unk_10 < 32) {
data->unk_23[i][j] *= factor;
}
}
}
for (i = 1; i < ARRAY_COUNT(data->unk_23) - 1; i++) {
for (j = 1; j < ARRAY_COUNT(data->unk_23[0]) - 1; j++) {
data->unk_23[i][j] += data->unk_11A[i][j] * 0.02;
}
}
}
void underwater_render(EffectInstance* effect) { void underwater_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;

View File

@ -1,18 +1,125 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
s32 D_E00B88F0[] = { 0x27BD0108, 0x00000000, 0x00000000, 0x00000000 }; typedef struct UnkStruct {
/* 0x00 */ s8 unk_00;
/* 0x01 */ s8 unk_01;
/* 0x02 */ s16 unk_02;
/* 0x04 */ s16 unk_04;
/* 0x06 */ s16 unk_06;
/* 0x08 */ u8 unk_08;
/* 0x09 */ char unk_09[1];
} UnkStruct; // size = 0xA
s32 D_E00B8900[] = { 0x0000001E, 0x008C0000, 0xFF000006, 0x001E0078, 0x0000FA00, 0x010C001E, 0x006EFFFB, 0xF0000111, 0x00320064, 0xFFECF000, 0x0216003C, 0x005AFFE2, 0xF000021A, 0x0046005A, 0xFFD8F000, 0x031C0050, 0x0055FFCE, 0xF0000420, 0x005A005A, 0xFFC4F000, 0x05230064, 0x0064FFBA, 0xF0000726, 0x006E006E, 0xFFB0F000, 0x08280078, 0x0078FFA6, 0xF0000B2A, 0x00820082, 0xFF9CF000, 0x0E2B0096, 0x0096FF92, 0xF000122C, 0x00BE00BE, 0xFF88F000, 0x152D00E6, 0x00E6FF7E, 0xF000182E, 0x010E010E, 0xFF74F000, 0x1B2F0136, 0x0136FF6A, 0xF0001E30, 0x015E015E, 0xFF60C800, 0x2131017C, 0x017CFF56, 0x8C002432, 0x01900190, 0xFF4C2800, 0x0000001E, 0x008C0000, 0xFF000006, 0x001E0078, 0x0000F000, 0xFF0C001E, 0x006E0005, 0xE600FF11, 0x00320064, 0x0014DC00, 0xFE16003C, 0x005A001E, 0xD200FE1A, 0x0046005A, 0x0028C800, 0xFD1C0050, 0x00550032, 0xBE00FC20, 0x005A0050, 0x003CB400, 0xFB230064, 0x004D0046, 0xAA00F926, 0x006E0041, 0x0050A000, 0xF8280078, 0x0036005A, 0x9600F52A, 0x0082003C, 0x00648C00, 0xF22B008C, 0x0046006E, 0x8200EE2C, 0x00960050, 0x00787800, 0xEB2D00A0, 0x005A0082, 0x6E00E82E, 0x00AA0064, 0x008C5A00, 0xE52F00B4, 0x006E0096, 0x5000E230, 0x00BE0078, 0x00A04600, 0xDF3100C8, 0x008200AA, 0x1E00DC32, 0x00D2008C, 0x00B40A00, 0x0000001E, 0x008C0000, 0xFF000006, 0x001E0078, 0x0000F000, 0x000C001E, 0x006E0005, 0xE6000011, 0x00320064, 0x0014DC00, 0x0016003C, 0x005A001E, 0xD200001A, 0x0046005A, 0x0028C800, 0x001C0050, 0x00550032, 0xBE000020, 0x005A0050, 0x003CB400, 0x00230064, 0x004D0046, 0xAA000026, 0x006E0041, 0x0050A000, 0x00280078, 0x0036005A, 0x9600002A, 0x0082003C, 0x00648C00, 0x002B008C, 0x0046006E, 0x8200002C, 0x00960050, 0x00787800, 0x002D00A0, 0x005A0082, 0x6E00002E, 0x00AA0064, 0x008C5A00, 0x002F00B4, 0x006E0096, 0x50000030, 0x00BE0078, 0x00A04600, 0x003100C8, 0x008200AA, 0x1E000032, 0x00D2008C, 0x00B40A00 }; extern Gfx D_09000280_3B8AE0[];
extern Gfx D_09000328_3B8B88[];
extern Gfx D_09000348_3B8BA8[];
s32 D_E00B8B58[] = { 0x0000001E, 0x008C0000, 0xFF000006, 0x001E0078, 0x0000F000, 0x010C001E, 0x006EFFFB, 0xE6000111, 0x00320064, 0xFFECDC00, 0x0216003C, 0x005AFFE2, 0xD200021A, 0x0046005A, 0xFFD8C800, 0x031C0050, 0x0055FFCE, 0xBE000420, 0x005A0050, 0xFFC4B400, 0x05230064, 0x004DFFBA, 0x78000726, 0x006E0041, 0xFFB05000, 0x08280078, 0x0036FFA6, 0x28000000, 0x001E008C, 0x0000FF00, 0x0006001E, 0x00780000, 0xF000FF0C, 0x001E006E, 0x0005E600, 0xFF110032, 0x00640014, 0xDC00FE16, 0x003C005A, 0x001ED200, 0xFE1A0046, 0x005A0028, 0xC800FD1C, 0x00500055, 0x0032BE00, 0xFC20005A, 0x0050003C, 0xB400FB23, 0x0064004D, 0x00467800, 0xF926006E, 0x00410050, 0x5000F828, 0x00780036, 0x005A2800, 0x0000001E, 0x008C0000, 0xFF000006, 0x001E0078, 0x0000F000, 0x000C001E, 0x006E0005, 0xE6000011, 0x00320064, 0x0014DC00, 0x0016003C, 0x005A001E, 0xD200001A, 0x0046005A, 0x0028C800, 0x001C0050, 0x00550032, 0xBE000020, 0x005A0050, 0x003CB400, 0x00240064, 0x004D0046, 0x78000027, 0x006E0041, 0x00505000, 0x002A0078, 0x0036005A, 0x28000000 }; UnkStruct D_E00B8900[] = {
{ 0, 0, 30, 140, 0, 255, { 0 } },
{ 0, 6, 30, 120, 0, 250, { 0 } },
{ 1, 12, 30, 110, -5, 240, { 0 } },
{ 1, 17, 50, 100, -20, 240, { 0 } },
{ 2, 22, 60, 90, -30, 240, { 0 } },
{ 2, 26, 70, 90, -40, 240, { 0 } },
{ 3, 28, 80, 85, -50, 240, { 0 } },
{ 4, 32, 90, 90, -60, 240, { 0 } },
{ 5, 35, 100, 100, -70, 240, { 0 } },
{ 7, 38, 110, 110, -80, 240, { 0 } },
{ 8, 40, 120, 120, -90, 240, { 0 } },
{ 11, 42, 130, 130, -100, 240, { 0 } },
{ 14, 43, 150, 150, -110, 240, { 0 } },
{ 18, 44, 190, 190, -120, 240, { 0 } },
{ 21, 45, 230, 230, -130, 240, { 0 } },
{ 24, 46, 270, 270, -140, 240, { 0 } },
{ 27, 47, 310, 310, -150, 240, { 0 } },
{ 30, 48, 350, 350, -160, 200, { 0 } },
{ 33, 49, 380, 380, -170, 140, { 0 } },
{ 36, 50, 400, 400, -180, 40, { 0 } },
{ 0, 0, 30, 140, 0, 255, { 0 } },
{ 0, 6, 30, 120, 0, 240, { 0 } },
{ -1, 12, 30, 110, 5, 230, { 0 } },
{ -1, 17, 50, 100, 20, 220, { 0 } },
{ -2, 22, 60, 90, 30, 210, { 0 } },
{ -2, 26, 70, 90, 40, 200, { 0 } },
{ -3, 28, 80, 85, 50, 190, { 0 } },
{ -4, 32, 90, 80, 60, 180, { 0 } },
{ -5, 35, 100, 77, 70, 170, { 0 } },
{ -7, 38, 110, 65, 80, 160, { 0 } },
{ -8, 40, 120, 54, 90, 150, { 0 } },
{ -11, 42, 130, 60, 100, 140, { 0 } },
{ -14, 43, 140, 70, 110, 130, { 0 } },
{ -18, 44, 150, 80, 120, 120, { 0 } },
{ -21, 45, 160, 90, 130, 110, { 0 } },
{ -24, 46, 170, 100, 140, 90, { 0 } },
{ -27, 47, 180, 110, 150, 80, { 0 } },
{ -30, 48, 190, 120, 160, 70, { 0 } },
{ -33, 49, 200, 130, 170, 30, { 0 } },
{ -36, 50, 210, 140, 180, 10, { 0 } },
{ 0, 0, 30, 140, 0, 255, { 0 } },
{ 0, 6, 30, 120, 0, 240, { 0 } },
{ 0, 12, 30, 110, 5, 230, { 0 } },
{ 0, 17, 50, 100, 20, 220, { 0 } },
{ 0, 22, 60, 90, 30, 210, { 0 } },
{ 0, 26, 70, 90, 40, 200, { 0 } },
{ 0, 28, 80, 85, 50, 190, { 0 } },
{ 0, 32, 90, 80, 60, 180, { 0 } },
{ 0, 35, 100, 77, 70, 170, { 0 } },
{ 0, 38, 110, 65, 80, 160, { 0 } },
{ 0, 40, 120, 54, 90, 150, { 0 } },
{ 0, 42, 130, 60, 100, 140, { 0 } },
{ 0, 43, 140, 70, 110, 130, { 0 } },
{ 0, 44, 150, 80, 120, 120, { 0 } },
{ 0, 45, 160, 90, 130, 110, { 0 } },
{ 0, 46, 170, 100, 140, 90, { 0 } },
{ 0, 47, 180, 110, 150, 80, { 0 } },
{ 0, 48, 190, 120, 160, 70, { 0 } },
{ 0, 49, 200, 130, 170, 30, { 0 } },
{ 0, 50, 210, 140, 180, 10, { 0 } }
};
s32 D_E00B8CA4[] = { 0x00000000, 0x00000028, 0x00000037, 0x000000BE, 0x00000014, 0x00000082, 0x0000010E, 0x0000012C, 0x00000000, 0x00000000, 0x00000000 }; UnkStruct D_E00B8B58[] = {
{ 0, 0, 30, 140, 0, 255, { 0 } },
{ 0, 6, 30, 120, 0, 240, { 0 } },
{ 1, 12, 30, 110, -5, 230, { 0 } },
{ 1, 17, 50, 100, -20, 220, { 0 } },
{ 2, 22, 60, 90, -30, 210, { 0 } },
{ 2, 26, 70, 90, -40, 200, { 0 } },
{ 3, 28, 80, 85, -50, 190, { 0 } },
{ 4, 32, 90, 80, -60, 180, { 0 } },
{ 5, 35, 100, 77, -70, 120, { 0 } },
{ 7, 38, 110, 65, -80, 80, { 0 } },
{ 8, 40, 120, 54, -90, 40, { 0 } },
{ 0, 0, 30, 140, 0, 255, { 0 } },
{ 0, 6, 30, 120, 0, 240, { 0 } },
{ -1, 12, 30, 110, 5, 230, { 0 } },
{ -1, 17, 50, 100, 20, 220, { 0 } },
{ -2, 22, 60, 90, 30, 210, { 0 } },
{ -2, 26, 70, 90, 40, 200, { 0 } },
{ -3, 28, 80, 85, 50, 190, { 0 } },
{ -4, 32, 90, 80, 60, 180, { 0 } },
{ -5, 35, 100, 77, 70, 120, { 0 } },
{ -7, 38, 110, 65, 80, 80, { 0 } },
{ -8, 40, 120, 54, 90, 40, { 0 } },
{ 0, 0, 30, 140, 0, 255, { 0 } },
{ 0, 6, 30, 120, 0, 240, { 0 } },
{ 0, 12, 30, 110, 5, 230, { 0 } },
{ 0, 17, 50, 100, 20, 220, { 0 } },
{ 0, 22, 60, 90, 30, 210, { 0 } },
{ 0, 26, 70, 90, 40, 200, { 0 } },
{ 0, 28, 80, 85, 50, 190, { 0 } },
{ 0, 32, 90, 80, 60, 180, { 0 } },
{ 0, 36, 100, 77, 70, 120, { 0 } },
{ 0, 39, 110, 65, 80, 80, { 0 } },
{ 0, 42, 120, 54, 90, 40, { 0 } }
};
s32 D_E00B8CA4[] = { 0, 40, 55, 190, 20, 130, 270, 300 };
void water_fountain_appendGfx(void* effect);
void water_fountain_init(EffectInstance* effect); void water_fountain_init(EffectInstance* effect);
void water_fountain_update(EffectInstance* effect); void water_fountain_update(EffectInstance* effect);
void water_fountain_render(EffectInstance* effect); void water_fountain_render(EffectInstance* effect);
void water_fountain_appendGfx(void* effect);
EffectInstance* water_fountain_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, s32 arg5) { EffectInstance* water_fountain_main(s32 arg0, f32 posX, f32 posY, f32 posZ, f32 arg4, s32 arg5) {
EffectBlueprint effectBp; EffectBlueprint effectBp;
@ -98,4 +205,87 @@ void water_fountain_render(EffectInstance* effect) {
void func_E00B8200(void) { void func_E00B8200(void) {
} }
INCLUDE_ASM(s32, "effects/water_fountain", water_fountain_appendGfx); void water_fountain_appendGfx(void *effect) {
WaterFountainFXData* data = ((EffectInstance*)effect)->data.waterFountain;
Camera* camera = &gCameras[gCurrentCameraID];
s32 lifeTime = data->lifeTime;
s32 timeLeft = data->timeLeft;
s32 sp9C;
s32 unk_24 = data->unk_24;
s32 unk_00 = data->unk_00;
s32 unk_18 = data->unk_18;
s32 unk_1C = data->unk_1C;
s32 unk_20 = data->unk_20;
s32 spB0;
s32 var_s6;
s32 temp;
UnkStruct* basePtr;
Matrix4f sp18;
Matrix4f sp58;
s32 i;
s32 j;
if (unk_00 == 0) {
spB0 = 3;
basePtr = D_E00B8900;
var_s6 = 20;
} else {
var_s6 = 11;
spB0 = 3;
basePtr = D_E00B8B58;
}
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guTranslateF(sp18, data->pos.x, data->pos.y, data->pos.z);
shim_guScaleF(sp58, data->unk_34, data->unk_34, data->unk_34);
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);
gSPDisplayList(gMasterGfxPos++, D_09000280_3B8AE0);
shim_guRotateF(sp18, data->unk_38, 0.0f, 0.0f, 1.0f);
shim_guScaleF(sp58, data->unk_3C, data->unk_40, 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);
gDPSetEnvColor(gMasterGfxPos++, data->unk_28, data->unk_2C, data->unk_30, unk_24);
temp = sp9C + 1;
if (timeLeft >= var_s6 - temp) {
gDPSetPrimColor(gMasterGfxPos++, 0, 0, unk_18, unk_1C, unk_20, unk_24);
gSPDisplayList(gMasterGfxPos++, D_09000348_3B8BA8);
}
for (i = 0; i < var_s6 / 2; i++) {
for (j = 0; j < spB0; j++) {
s32 idx = (lifeTime + i * 2) % var_s6;
UnkStruct* ptr = &basePtr[j * var_s6];
if (lifeTime * 5 >= idx) {
s32 temp2 = idx + 1;
if (timeLeft >= var_s6 - temp2) {
shim_guTranslateF(sp18, (f32) ptr[idx].unk_00, (f32) ptr[idx].unk_01 + 10.0f, 0.0f);
shim_guScaleF(sp58, (f32) basePtr[idx].unk_02 * 0.01, (f32) basePtr[idx].unk_04 * 0.01, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guRotateF(sp58, (f32) ptr[idx].unk_06 + D_E00B8CA4[(j + i) & 7], 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);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, unk_18, unk_1C, unk_20, (unk_24 * basePtr[idx].unk_08) >> 8);
gSPDisplayList(gMasterGfxPos++, D_09000328_3B8B88);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
}
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -1,14 +1,105 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern Gfx D_09000200_3B7AD0[];
void waterfall_init(EffectInstance* effect);
void waterfall_update(EffectInstance* effect);
void waterfall_render(EffectInstance* effect);
void waterfall_appendGfx(void* effect); void waterfall_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/waterfall", waterfall_main); EffectInstance* waterfall_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
s32 arg5
) {
EffectBlueprint bp;
EffectInstance* effect;
WaterfallFXData* data;
s32 numParts = 1;
s32 i;
void waterfall_init(void) { bp.init = waterfall_init;
bp.update = waterfall_update;
bp.renderWorld = waterfall_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_WATERFALL;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.waterfall = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.waterfall != NULL);
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_28 = arg4;
data->unk_18 = 20;
data->unk_1C = 120;
data->unk_20 = 255;
for (i = 0; i < 12; i++) {
data->unk_2C[i] = 0;
data->unk_5C[i] = (f32) shim_rand_int(10) * 0.01 + -1.0;
} }
INCLUDE_ASM(s32, "effects/waterfall", waterfall_update); return effect;
}
void waterfall_init(EffectInstance* effect) {
}
void waterfall_update(EffectInstance* effect) {
WaterfallFXData* data = effect->data.waterfall;
s32 unk_14;
s32 i;
if (effect->flags & EFFECT_INSTANCE_FLAGS_10) {
effect->flags &= ~EFFECT_INSTANCE_FLAGS_10;
data->unk_10 = 16;
}
if (data->unk_10 < 1000) {
data->unk_10--;
}
data->unk_14++;
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;
}
for (i = 0; i < 12; i++) {
data->unk_2C[i] += data->unk_5C[i];
data->unk_5C[i] += -0.1;
if (data->unk_5C[i] > 5.0f) {
data->unk_5C[i] += (5.0 - data->unk_5C[i]) * 0.1;
}
}
}
void waterfall_render(EffectInstance* effect) { void waterfall_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;
@ -25,4 +116,72 @@ void waterfall_render(EffectInstance* effect) {
void func_E00B62D8(void) { void func_E00B62D8(void) {
} }
INCLUDE_ASM(s32, "effects/waterfall", waterfall_appendGfx); void waterfall_appendGfx(void* effect) {
WaterfallFXData* data = ((EffectInstance*)effect)->data.waterfall;
Camera* camera = &gCameras[gCurrentCameraID];
s32 unk_14 = data->unk_14;
s32 unk_24 = data->unk_24;
f32 scale = data->unk_28 * 0.1;
s32 savedIdx;
Vtx_t* vtx;
Gfx* savedGfxPos;
Matrix4f sp10;
Matrix4f sp50;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guTranslateF(sp10, data->unk_04, data->unk_08, data->unk_0C);
shim_guScaleF(sp50, scale, scale, scale);
shim_guMtxCatF(sp50, sp10, sp10);
shim_guMtxF2L(sp10, &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, unk_24);
gSPDisplayList(gMasterGfxPos++, D_09000200_3B7AD0);
gSPBranchList(gMasterGfxPos, &gMasterGfxPos[49]);
savedGfxPos = gMasterGfxPos + 1;
gMasterGfxPos = &gMasterGfxPos[49];
vtx = (Vtx_t*) savedGfxPos;
for (i = 0; i < ARRAY_COUNT(data->unk_2C); i++) {
vtx->ob[0] = i * 50 - 300;
vtx->ob[1] = 600;
vtx->ob[2] = 0;
vtx->tc[0] = (unk_14 + i * 4) * 32;
vtx->tc[1] = (s32) data->unk_2C[i] * 32;
vtx->cn[0] = 255;
vtx->cn[1] = 255;
vtx->cn[2] = 255;
vtx->cn[3] = -i * 20 - 1;
vtx++;
vtx->ob[0] = i * 50 - 300;
vtx->ob[1] = (data->unk_2C[i] + 60.0f) * 10.0f;
vtx->ob[2] = 0;
vtx->tc[0] = (unk_14 + i * 4) * 32;
vtx->tc[1] = 1024;
vtx->cn[0] = 255;
vtx->cn[1] = 255;
vtx->cn[2] = 255;
vtx->cn[3] = -i * 20 - 1;
vtx++;
}
savedIdx = i;
gSPVertex(gMasterGfxPos++, savedGfxPos, i * 2, 0);
for (i = 0; i < savedIdx - 1; i++) {
s32 i2 = i * 2;
gSP2Triangles(gMasterGfxPos++,
i2 , i2 + 2, i2 + 1, i2,
i2 + 1, i2 + 2, i2 + 3, i2);
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}

View File

@ -1,9 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E0070CD0
.word 0x09001210, 0x09001228, 0x09001240, 0x09001258, 0x09001270, 0x090011C8, 0x090011E0, 0x090011F8
dlabel D_E0070CF0
.word 0x3E4CCCCD, 0x3ECCCCCD, 0x3F4CCCCD, 0x3FA66666, 0x3FC00000, 0x3FA66666, 0x3F666666, 0x3F19999A, 0x3ECCCCCD, 0x3E99999A, 0x3E4CCCCD, 0x3ECCCCCD, 0x3F4CCCCD, 0x3FA66666, 0x3FC00000, 0x3FA66666, 0x3F666666, 0x3F19999A, 0x3ECCCCCD, 0x3E99999A, 0xC8FAFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFAC8, 0x00000000, 0x00000000, 0x00000000

View File

@ -1,365 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel shimmer_burst_appendGfx
/* 3747F0 E0070740 27BDFF10 */ addiu $sp, $sp, -0xf0
/* 3747F4 E0070744 3C06DB06 */ lui $a2, 0xdb06
/* 3747F8 E0070748 34C60024 */ ori $a2, $a2, 0x24
/* 3747FC E007074C AFA400F0 */ sw $a0, 0xf0($sp)
/* 374800 E0070750 27A40020 */ addiu $a0, $sp, 0x20
/* 374804 E0070754 AFB100B4 */ sw $s1, 0xb4($sp)
/* 374808 E0070758 3C110001 */ lui $s1, 1
/* 37480C E007075C 36311630 */ ori $s1, $s1, 0x1630
/* 374810 E0070760 AFB500C4 */ sw $s5, 0xc4($sp)
/* 374814 E0070764 3C15800A */ lui $s5, %hi(gMasterGfxPos)
/* 374818 E0070768 26B5A66C */ addiu $s5, $s5, %lo(gMasterGfxPos)
/* 37481C E007076C AFBF00D4 */ sw $ra, 0xd4($sp)
/* 374820 E0070770 AFBE00D0 */ sw $fp, 0xd0($sp)
/* 374824 E0070774 AFB700CC */ sw $s7, 0xcc($sp)
/* 374828 E0070778 AFB600C8 */ sw $s6, 0xc8($sp)
/* 37482C E007077C AFB400C0 */ sw $s4, 0xc0($sp)
/* 374830 E0070780 AFB300BC */ sw $s3, 0xbc($sp)
/* 374834 E0070784 AFB200B8 */ sw $s2, 0xb8($sp)
/* 374838 E0070788 AFB000B0 */ sw $s0, 0xb0($sp)
/* 37483C E007078C F7B800E8 */ sdc1 $f24, 0xe8($sp)
/* 374840 E0070790 F7B600E0 */ sdc1 $f22, 0xe0($sp)
/* 374844 E0070794 F7B400D8 */ sdc1 $f20, 0xd8($sp)
/* 374848 E0070798 8EA50000 */ lw $a1, ($s5)
/* 37484C E007079C 8FAA00F0 */ lw $t2, 0xf0($sp)
/* 374850 E00707A0 00A0182D */ daddu $v1, $a1, $zero
/* 374854 E00707A4 8D52000C */ lw $s2, 0xc($t2)
/* 374858 E00707A8 24A50008 */ addiu $a1, $a1, 8
/* 37485C E00707AC AEA50000 */ sw $a1, ($s5)
/* 374860 E00707B0 8E4A0050 */ lw $t2, 0x50($s2)
/* 374864 E00707B4 C642004C */ lwc1 $f2, 0x4c($s2)
/* 374868 E00707B8 468010A0 */ cvt.s.w $f2, $f2
/* 37486C E00707BC AFAA00A0 */ sw $t2, 0xa0($sp)
/* 374870 E00707C0 8E4A0054 */ lw $t2, 0x54($s2)
/* 374874 E00707C4 24130001 */ addiu $s3, $zero, 1
/* 374878 E00707C8 AFAA00A4 */ sw $t2, 0xa4($sp)
/* 37487C E00707CC 8E4A0058 */ lw $t2, 0x58($s2)
/* 374880 E00707D0 3C02E700 */ lui $v0, 0xe700
/* 374884 E00707D4 AFAA00A8 */ sw $t2, 0xa8($sp)
/* 374888 E00707D8 AC620000 */ sw $v0, ($v1)
/* 37488C E00707DC AC600004 */ sw $zero, 4($v1)
/* 374890 E00707E0 ACA60000 */ sw $a2, ($a1)
/* 374894 E00707E4 8FAA00F0 */ lw $t2, 0xf0($sp)
/* 374898 E00707E8 3C01437F */ lui $at, 0x437f
/* 37489C E00707EC 44810000 */ mtc1 $at, $f0
/* 3748A0 E00707F0 8D430010 */ lw $v1, 0x10($t2)
/* 3748A4 E00707F4 24A20008 */ addiu $v0, $a1, 8
/* 3748A8 E00707F8 AEA20000 */ sw $v0, ($s5)
/* 3748AC E00707FC 8C62001C */ lw $v0, 0x1c($v1)
/* 3748B0 E0070800 3C038000 */ lui $v1, 0x8000
/* 3748B4 E0070804 00431021 */ addu $v0, $v0, $v1
/* 3748B8 E0070808 ACA20004 */ sw $v0, 4($a1)
/* 3748BC E007080C 8E450004 */ lw $a1, 4($s2)
/* 3748C0 E0070810 8E460008 */ lw $a2, 8($s2)
/* 3748C4 E0070814 8E47000C */ lw $a3, 0xc($s2)
/* 3748C8 E0070818 0C080108 */ jal shim_guTranslateF
/* 3748CC E007081C 46001503 */ div.s $f20, $f2, $f0
/* 3748D0 E0070820 27B00060 */ addiu $s0, $sp, 0x60
/* 3748D4 E0070824 8E450060 */ lw $a1, 0x60($s2)
/* 3748D8 E0070828 0200202D */ daddu $a0, $s0, $zero
/* 3748DC E007082C 00A0302D */ daddu $a2, $a1, $zero
/* 3748E0 E0070830 0C080110 */ jal shim_guScaleF
/* 3748E4 E0070834 00A0382D */ daddu $a3, $a1, $zero
/* 3748E8 E0070838 0200202D */ daddu $a0, $s0, $zero
/* 3748EC E007083C 27A50020 */ addiu $a1, $sp, 0x20
/* 3748F0 E0070840 0C080114 */ jal shim_guMtxCatF
/* 3748F4 E0070844 00A0302D */ daddu $a2, $a1, $zero
/* 3748F8 E0070848 27A40020 */ addiu $a0, $sp, 0x20
/* 3748FC E007084C 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 374900 E0070850 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 374904 E0070854 3C16800A */ lui $s6, %hi(gDisplayContext)
/* 374908 E0070858 26D6A674 */ addiu $s6, $s6, %lo(gDisplayContext)
/* 37490C E007085C 96050000 */ lhu $a1, ($s0)
/* 374910 E0070860 8EC20000 */ lw $v0, ($s6)
/* 374914 E0070864 00052980 */ sll $a1, $a1, 6
/* 374918 E0070868 00B12821 */ addu $a1, $a1, $s1
/* 37491C E007086C 0C080118 */ jal shim_guMtxF2L
/* 374920 E0070870 00452821 */ addu $a1, $v0, $a1
/* 374924 E0070874 3C03DA38 */ lui $v1, 0xda38
/* 374928 E0070878 34630002 */ ori $v1, $v1, 2
/* 37492C E007087C 8EA40000 */ lw $a0, ($s5)
/* 374930 E0070880 96020000 */ lhu $v0, ($s0)
/* 374934 E0070884 0080282D */ daddu $a1, $a0, $zero
/* 374938 E0070888 24840008 */ addiu $a0, $a0, 8
/* 37493C E007088C AEA40000 */ sw $a0, ($s5)
/* 374940 E0070890 ACA30000 */ sw $v1, ($a1)
/* 374944 E0070894 00531821 */ addu $v1, $v0, $s3
/* 374948 E0070898 3042FFFF */ andi $v0, $v0, 0xffff
/* 37494C E007089C 00021180 */ sll $v0, $v0, 6
/* 374950 E00708A0 00511021 */ addu $v0, $v0, $s1
/* 374954 E00708A4 A6030000 */ sh $v1, ($s0)
/* 374958 E00708A8 8EC30000 */ lw $v1, ($s6)
/* 37495C E00708AC 24870010 */ addiu $a3, $a0, 0x10
/* 374960 E00708B0 00621821 */ addu $v1, $v1, $v0
/* 374964 E00708B4 24820008 */ addiu $v0, $a0, 8
/* 374968 E00708B8 ACA30004 */ sw $v1, 4($a1)
/* 37496C E00708BC AEA20000 */ sw $v0, ($s5)
/* 374970 E00708C0 3C02FB00 */ lui $v0, 0xfb00
/* 374974 E00708C4 AC820000 */ sw $v0, ($a0)
/* 374978 E00708C8 92430043 */ lbu $v1, 0x43($s2)
/* 37497C E00708CC 92450047 */ lbu $a1, 0x47($s2)
/* 374980 E00708D0 9246004B */ lbu $a2, 0x4b($s2)
/* 374984 E00708D4 9248005F */ lbu $t0, 0x5f($s2)
/* 374988 E00708D8 3C02DE00 */ lui $v0, 0xde00
/* 37498C E00708DC AEA70000 */ sw $a3, ($s5)
/* 374990 E00708E0 AC820008 */ sw $v0, 8($a0)
/* 374994 E00708E4 3C020900 */ lui $v0, 0x900
/* 374998 E00708E8 24420F20 */ addiu $v0, $v0, 0xf20
/* 37499C E00708EC AC82000C */ sw $v0, 0xc($a0)
/* 3749A0 E00708F0 24820018 */ addiu $v0, $a0, 0x18
/* 3749A4 E00708F4 AEA20000 */ sw $v0, ($s5)
/* 3749A8 E00708F8 00031E00 */ sll $v1, $v1, 0x18
/* 3749AC E00708FC 00052C00 */ sll $a1, $a1, 0x10
/* 3749B0 E0070900 00651825 */ or $v1, $v1, $a1
/* 3749B4 E0070904 00063200 */ sll $a2, $a2, 8
/* 3749B8 E0070908 00661825 */ or $v1, $v1, $a2
/* 3749BC E007090C 00681825 */ or $v1, $v1, $t0
/* 3749C0 E0070910 AC830004 */ sw $v1, 4($a0)
/* 3749C4 E0070914 8FAA00F0 */ lw $t2, 0xf0($sp)
/* 3749C8 E0070918 00E0A02D */ daddu $s4, $a3, $zero
/* 3749CC E007091C 8D420008 */ lw $v0, 8($t2)
/* 3749D0 E0070920 0262102A */ slt $v0, $s3, $v0
/* 3749D4 E0070924 1040006E */ beqz $v0, .LE0070AE0
/* 3749D8 E0070928 2652006C */ addiu $s2, $s2, 0x6c
/* 3749DC E007092C 02C0F02D */ daddu $fp, $s6, $zero
/* 3749E0 E0070930 0200B82D */ daddu $s7, $s0, $zero
/* 3749E4 E0070934 3C160001 */ lui $s6, 1
/* 3749E8 E0070938 36D61630 */ ori $s6, $s6, 0x1630
/* 3749EC E007093C 02A0882D */ daddu $s1, $s5, $zero
/* 3749F0 E0070940 2650004C */ addiu $s0, $s2, 0x4c
/* 3749F4 E0070944 8FAA00A0 */ lw $t2, 0xa0($sp)
/* 3749F8 E0070948 4480C000 */ mtc1 $zero, $f24
/* 3749FC E007094C 000A1600 */ sll $v0, $t2, 0x18
/* 374A00 E0070950 8FAA00A4 */ lw $t2, 0xa4($sp)
/* 374A04 E0070954 3C014F00 */ lui $at, 0x4f00
/* 374A08 E0070958 4481B000 */ mtc1 $at, $f22
/* 374A0C E007095C 314300FF */ andi $v1, $t2, 0xff
/* 374A10 E0070960 00031C00 */ sll $v1, $v1, 0x10
/* 374A14 E0070964 8FAA00A8 */ lw $t2, 0xa8($sp)
/* 374A18 E0070968 00431025 */ or $v0, $v0, $v1
/* 374A1C E007096C 314300FF */ andi $v1, $t2, 0xff
/* 374A20 E0070970 00031A00 */ sll $v1, $v1, 8
/* 374A24 E0070974 0043A825 */ or $s5, $v0, $v1
.LE0070978:
/* 374A28 E0070978 8E02FFE4 */ lw $v0, -0x1c($s0)
/* 374A2C E007097C 04400052 */ bltz $v0, .LE0070AC8
/* 374A30 E0070980 00000000 */ nop
/* 374A34 E0070984 C6000014 */ lwc1 $f0, 0x14($s0)
/* 374A38 E0070988 46140002 */ mul.s $f0, $f0, $f20
/* 374A3C E007098C 00000000 */ nop
/* 374A40 E0070990 4405C000 */ mfc1 $a1, $f24
/* 374A44 E0070994 4406C000 */ mfc1 $a2, $f24
/* 374A48 E0070998 E7A00010 */ swc1 $f0, 0x10($sp)
/* 374A4C E007099C C600FFB8 */ lwc1 $f0, -0x48($s0)
/* 374A50 E00709A0 E7A00014 */ swc1 $f0, 0x14($sp)
/* 374A54 E00709A4 C600FFBC */ lwc1 $f0, -0x44($s0)
/* 374A58 E00709A8 E7A00018 */ swc1 $f0, 0x18($sp)
/* 374A5C E00709AC C600FFC0 */ lwc1 $f0, -0x40($s0)
/* 374A60 E00709B0 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 374A64 E00709B4 8E07FFE8 */ lw $a3, -0x18($s0)
/* 374A68 E00709B8 0C080180 */ jal shim_guPositionF
/* 374A6C E00709BC 27A40020 */ addiu $a0, $sp, 0x20
/* 374A70 E00709C0 27A40020 */ addiu $a0, $sp, 0x20
/* 374A74 E00709C4 96E50000 */ lhu $a1, ($s7)
/* 374A78 E00709C8 8FC20000 */ lw $v0, ($fp)
/* 374A7C E00709CC 00052980 */ sll $a1, $a1, 6
/* 374A80 E00709D0 00B62821 */ addu $a1, $a1, $s6
/* 374A84 E00709D4 0C080118 */ jal shim_guMtxF2L
/* 374A88 E00709D8 00452821 */ addu $a1, $v0, $a1
/* 374A8C E00709DC 8E240000 */ lw $a0, ($s1)
/* 374A90 E00709E0 0080302D */ daddu $a2, $a0, $zero
/* 374A94 E00709E4 24840008 */ addiu $a0, $a0, 8
/* 374A98 E00709E8 AE240000 */ sw $a0, ($s1)
/* 374A9C E00709EC 96E50000 */ lhu $a1, ($s7)
/* 374AA0 E00709F0 3C02DA38 */ lui $v0, 0xda38
/* 374AA4 E00709F4 ACC20000 */ sw $v0, ($a2)
/* 374AA8 E00709F8 8FC30000 */ lw $v1, ($fp)
/* 374AAC E00709FC 30A2FFFF */ andi $v0, $a1, 0xffff
/* 374AB0 E0070A00 00021180 */ sll $v0, $v0, 6
/* 374AB4 E0070A04 00561021 */ addu $v0, $v0, $s6
/* 374AB8 E0070A08 00621821 */ addu $v1, $v1, $v0
/* 374ABC E0070A0C 3C02FA00 */ lui $v0, 0xfa00
/* 374AC0 E0070A10 24A50001 */ addiu $a1, $a1, 1
/* 374AC4 E0070A14 ACC30004 */ sw $v1, 4($a2)
/* 374AC8 E0070A18 AC820000 */ sw $v0, ($a0)
/* 374ACC E0070A1C C6000000 */ lwc1 $f0, ($s0)
/* 374AD0 E0070A20 46800020 */ cvt.s.w $f0, $f0
/* 374AD4 E0070A24 46140002 */ mul.s $f0, $f0, $f20
/* 374AD8 E0070A28 00000000 */ nop
/* 374ADC E0070A2C 24820008 */ addiu $v0, $a0, 8
/* 374AE0 E0070A30 24840004 */ addiu $a0, $a0, 4
/* 374AE4 E0070A34 A6E50000 */ sh $a1, ($s7)
/* 374AE8 E0070A38 4600B03E */ c.le.s $f22, $f0
/* 374AEC E0070A3C 00000000 */ nop
/* 374AF0 E0070A40 45010005 */ bc1t .LE0070A58
/* 374AF4 E0070A44 AE220000 */ sw $v0, ($s1)
/* 374AF8 E0070A48 4600010D */ trunc.w.s $f4, $f0
/* 374AFC E0070A4C 44052000 */ mfc1 $a1, $f4
/* 374B00 E0070A50 0801C29D */ j .LE0070A74
/* 374B04 E0070A54 3C06D838 */ lui $a2, 0xd838
.LE0070A58:
/* 374B08 E0070A58 46160001 */ sub.s $f0, $f0, $f22
/* 374B0C E0070A5C 3C028000 */ lui $v0, 0x8000
/* 374B10 E0070A60 4600010D */ trunc.w.s $f4, $f0
/* 374B14 E0070A64 44052000 */ mfc1 $a1, $f4
/* 374B18 E0070A68 00000000 */ nop
/* 374B1C E0070A6C 00A22825 */ or $a1, $a1, $v0
/* 374B20 E0070A70 3C06D838 */ lui $a2, 0xd838
.LE0070A74:
/* 374B24 E0070A74 34C60002 */ ori $a2, $a2, 2
/* 374B28 E0070A78 30A200FF */ andi $v0, $a1, 0xff
/* 374B2C E0070A7C 8E230000 */ lw $v1, ($s1)
/* 374B30 E0070A80 02A21025 */ or $v0, $s5, $v0
/* 374B34 E0070A84 AC820000 */ sw $v0, ($a0)
/* 374B38 E0070A88 3C02DE00 */ lui $v0, 0xde00
/* 374B3C E0070A8C 0060282D */ daddu $a1, $v1, $zero
/* 374B40 E0070A90 24630008 */ addiu $v1, $v1, 8
/* 374B44 E0070A94 AE230000 */ sw $v1, ($s1)
/* 374B48 E0070A98 ACA20000 */ sw $v0, ($a1)
/* 374B4C E0070A9C 32620007 */ andi $v0, $s3, 7
/* 374B50 E0070AA0 00021080 */ sll $v0, $v0, 2
/* 374B54 E0070AA4 3C04E007 */ lui $a0, %hi(D_E0070CD0)
/* 374B58 E0070AA8 00822021 */ addu $a0, $a0, $v0
/* 374B5C E0070AAC 8C840CD0 */ lw $a0, %lo(D_E0070CD0)($a0)
/* 374B60 E0070AB0 24620008 */ addiu $v0, $v1, 8
/* 374B64 E0070AB4 AE220000 */ sw $v0, ($s1)
/* 374B68 E0070AB8 24020040 */ addiu $v0, $zero, 0x40
/* 374B6C E0070ABC ACA40004 */ sw $a0, 4($a1)
/* 374B70 E0070AC0 AC660000 */ sw $a2, ($v1)
/* 374B74 E0070AC4 AC620004 */ sw $v0, 4($v1)
.LE0070AC8:
/* 374B78 E0070AC8 8FAA00F0 */ lw $t2, 0xf0($sp)
/* 374B7C E0070ACC 26730001 */ addiu $s3, $s3, 1
/* 374B80 E0070AD0 8D420008 */ lw $v0, 8($t2)
/* 374B84 E0070AD4 0262102A */ slt $v0, $s3, $v0
/* 374B88 E0070AD8 1440FFA7 */ bnez $v0, .LE0070978
/* 374B8C E0070ADC 2610006C */ addiu $s0, $s0, 0x6c
.LE0070AE0:
/* 374B90 E0070AE0 27A40020 */ addiu $a0, $sp, 0x20
/* 374B94 E0070AE4 3C150001 */ lui $s5, 1
/* 374B98 E0070AE8 36B51630 */ ori $s5, $s5, 0x1630
/* 374B9C E0070AEC 3C1ED838 */ lui $fp, 0xd838
/* 374BA0 E0070AF0 37DE0002 */ ori $fp, $fp, 2
/* 374BA4 E0070AF4 3C10800A */ lui $s0, %hi(gMasterGfxPos)
/* 374BA8 E0070AF8 2610A66C */ addiu $s0, $s0, %lo(gMasterGfxPos)
/* 374BAC E0070AFC 3C02DF00 */ lui $v0, 0xdf00
/* 374BB0 E0070B00 3C16DE00 */ lui $s6, 0xde00
/* 374BB4 E0070B04 8E030000 */ lw $v1, ($s0)
/* 374BB8 E0070B08 3C0542F0 */ lui $a1, 0x42f0
/* 374BBC E0070B0C 3C013ECC */ lui $at, 0x3ecc
/* 374BC0 E0070B10 3421CCCD */ ori $at, $at, 0xcccd
/* 374BC4 E0070B14 4481A000 */ mtc1 $at, $f20
/* 374BC8 E0070B18 4480B000 */ mtc1 $zero, $f22
/* 374BCC E0070B1C 3C013F4C */ lui $at, 0x3f4c
/* 374BD0 E0070B20 3421CCCD */ ori $at, $at, 0xcccd
/* 374BD4 E0070B24 4481C000 */ mtc1 $at, $f24
/* 374BD8 E0070B28 0060402D */ daddu $t0, $v1, $zero
/* 374BDC E0070B2C 4406A000 */ mfc1 $a2, $f20
/* 374BE0 E0070B30 4407B000 */ mfc1 $a3, $f22
/* 374BE4 E0070B34 24630008 */ addiu $v1, $v1, 8
/* 374BE8 E0070B38 AE030000 */ sw $v1, ($s0)
/* 374BEC E0070B3C AD020000 */ sw $v0, ($t0)
/* 374BF0 E0070B40 3C02DE01 */ lui $v0, 0xde01
/* 374BF4 E0070B44 AD000004 */ sw $zero, 4($t0)
/* 374BF8 E0070B48 AE820000 */ sw $v0, ($s4)
/* 374BFC E0070B4C 24620008 */ addiu $v0, $v1, 8
/* 374C00 E0070B50 AE830004 */ sw $v1, 4($s4)
/* 374C04 E0070B54 26940008 */ addiu $s4, $s4, 8
/* 374C08 E0070B58 AE020000 */ sw $v0, ($s0)
/* 374C0C E0070B5C AC760000 */ sw $s6, ($v1)
/* 374C10 E0070B60 AC740004 */ sw $s4, 4($v1)
/* 374C14 E0070B64 0C080104 */ jal shim_guRotateF
/* 374C18 E0070B68 E7B80010 */ swc1 $f24, 0x10($sp)
/* 374C1C E0070B6C 27A40020 */ addiu $a0, $sp, 0x20
/* 374C20 E0070B70 3C118007 */ lui $s1, %hi(gMatrixListPos)
/* 374C24 E0070B74 263141F0 */ addiu $s1, $s1, %lo(gMatrixListPos)
/* 374C28 E0070B78 3C13800A */ lui $s3, %hi(gDisplayContext)
/* 374C2C E0070B7C 2673A674 */ addiu $s3, $s3, %lo(gDisplayContext)
/* 374C30 E0070B80 96250000 */ lhu $a1, ($s1)
/* 374C34 E0070B84 8E620000 */ lw $v0, ($s3)
/* 374C38 E0070B88 00052980 */ sll $a1, $a1, 6
/* 374C3C E0070B8C 00B52821 */ addu $a1, $a1, $s5
/* 374C40 E0070B90 0C080118 */ jal shim_guMtxF2L
/* 374C44 E0070B94 00452821 */ addu $a1, $v0, $a1
/* 374C48 E0070B98 27A40020 */ addiu $a0, $sp, 0x20
/* 374C4C E0070B9C 3C17DA38 */ lui $s7, 0xda38
/* 374C50 E0070BA0 8E080000 */ lw $t0, ($s0)
/* 374C54 E0070BA4 3C05C2F0 */ lui $a1, 0xc2f0
/* 374C58 E0070BA8 4406A000 */ mfc1 $a2, $f20
/* 374C5C E0070BAC 4407B000 */ mfc1 $a3, $f22
/* 374C60 E0070BB0 0100482D */ daddu $t1, $t0, $zero
/* 374C64 E0070BB4 25080008 */ addiu $t0, $t0, 8
/* 374C68 E0070BB8 AE080000 */ sw $t0, ($s0)
/* 374C6C E0070BBC 96220000 */ lhu $v0, ($s1)
/* 374C70 E0070BC0 24120040 */ addiu $s2, $zero, 0x40
/* 374C74 E0070BC4 AD370000 */ sw $s7, ($t1)
/* 374C78 E0070BC8 24430001 */ addiu $v1, $v0, 1
/* 374C7C E0070BCC 3042FFFF */ andi $v0, $v0, 0xffff
/* 374C80 E0070BD0 00021180 */ sll $v0, $v0, 6
/* 374C84 E0070BD4 A6230000 */ sh $v1, ($s1)
/* 374C88 E0070BD8 8E630000 */ lw $v1, ($s3)
/* 374C8C E0070BDC 00551021 */ addu $v0, $v0, $s5
/* 374C90 E0070BE0 00621821 */ addu $v1, $v1, $v0
/* 374C94 E0070BE4 25020008 */ addiu $v0, $t0, 8
/* 374C98 E0070BE8 AD230004 */ sw $v1, 4($t1)
/* 374C9C E0070BEC AE020000 */ sw $v0, ($s0)
/* 374CA0 E0070BF0 25020010 */ addiu $v0, $t0, 0x10
/* 374CA4 E0070BF4 AD160000 */ sw $s6, ($t0)
/* 374CA8 E0070BF8 AD140004 */ sw $s4, 4($t0)
/* 374CAC E0070BFC AE020000 */ sw $v0, ($s0)
/* 374CB0 E0070C00 AD1E0008 */ sw $fp, 8($t0)
/* 374CB4 E0070C04 AD12000C */ sw $s2, 0xc($t0)
/* 374CB8 E0070C08 0C080104 */ jal shim_guRotateF
/* 374CBC E0070C0C E7B80010 */ swc1 $f24, 0x10($sp)
/* 374CC0 E0070C10 27A40020 */ addiu $a0, $sp, 0x20
/* 374CC4 E0070C14 96250000 */ lhu $a1, ($s1)
/* 374CC8 E0070C18 8E620000 */ lw $v0, ($s3)
/* 374CCC E0070C1C 00052980 */ sll $a1, $a1, 6
/* 374CD0 E0070C20 00B52821 */ addu $a1, $a1, $s5
/* 374CD4 E0070C24 0C080118 */ jal shim_guMtxF2L
/* 374CD8 E0070C28 00452821 */ addu $a1, $v0, $a1
/* 374CDC E0070C2C 8E040000 */ lw $a0, ($s0)
/* 374CE0 E0070C30 96220000 */ lhu $v0, ($s1)
/* 374CE4 E0070C34 0080282D */ daddu $a1, $a0, $zero
/* 374CE8 E0070C38 24840008 */ addiu $a0, $a0, 8
/* 374CEC E0070C3C 24430001 */ addiu $v1, $v0, 1
/* 374CF0 E0070C40 3042FFFF */ andi $v0, $v0, 0xffff
/* 374CF4 E0070C44 00021180 */ sll $v0, $v0, 6
/* 374CF8 E0070C48 AE040000 */ sw $a0, ($s0)
/* 374CFC E0070C4C ACB70000 */ sw $s7, ($a1)
/* 374D00 E0070C50 A6230000 */ sh $v1, ($s1)
/* 374D04 E0070C54 8E630000 */ lw $v1, ($s3)
/* 374D08 E0070C58 00551021 */ addu $v0, $v0, $s5
/* 374D0C E0070C5C 00621821 */ addu $v1, $v1, $v0
/* 374D10 E0070C60 24820008 */ addiu $v0, $a0, 8
/* 374D14 E0070C64 ACA30004 */ sw $v1, 4($a1)
/* 374D18 E0070C68 AE020000 */ sw $v0, ($s0)
/* 374D1C E0070C6C 24820010 */ addiu $v0, $a0, 0x10
/* 374D20 E0070C70 AC960000 */ sw $s6, ($a0)
/* 374D24 E0070C74 AC940004 */ sw $s4, 4($a0)
/* 374D28 E0070C78 AE020000 */ sw $v0, ($s0)
/* 374D2C E0070C7C 24820018 */ addiu $v0, $a0, 0x18
/* 374D30 E0070C80 AC9E0008 */ sw $fp, 8($a0)
/* 374D34 E0070C84 AC92000C */ sw $s2, 0xc($a0)
/* 374D38 E0070C88 AE020000 */ sw $v0, ($s0)
/* 374D3C E0070C8C AC9E0010 */ sw $fp, 0x10($a0)
/* 374D40 E0070C90 AC920014 */ sw $s2, 0x14($a0)
/* 374D44 E0070C94 8FBF00D4 */ lw $ra, 0xd4($sp)
/* 374D48 E0070C98 8FBE00D0 */ lw $fp, 0xd0($sp)
/* 374D4C E0070C9C 8FB700CC */ lw $s7, 0xcc($sp)
/* 374D50 E0070CA0 8FB600C8 */ lw $s6, 0xc8($sp)
/* 374D54 E0070CA4 8FB500C4 */ lw $s5, 0xc4($sp)
/* 374D58 E0070CA8 8FB400C0 */ lw $s4, 0xc0($sp)
/* 374D5C E0070CAC 8FB300BC */ lw $s3, 0xbc($sp)
/* 374D60 E0070CB0 8FB200B8 */ lw $s2, 0xb8($sp)
/* 374D64 E0070CB4 8FB100B4 */ lw $s1, 0xb4($sp)
/* 374D68 E0070CB8 8FB000B0 */ lw $s0, 0xb0($sp)
/* 374D6C E0070CBC D7B800E8 */ ldc1 $f24, 0xe8($sp)
/* 374D70 E0070CC0 D7B600E0 */ ldc1 $f22, 0xe0($sp)
/* 374D74 E0070CC4 D7B400D8 */ ldc1 $f20, 0xd8($sp)
/* 374D78 E0070CC8 03E00008 */ jr $ra
/* 374D7C E0070CCC 27BD00F0 */ addiu $sp, $sp, 0xf0

View File

@ -1,137 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel shimmer_burst_main
/* 3740B0 E0070000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 3740B4 E0070004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 3740B8 E0070008 4485A000 */ mtc1 $a1, $f20
/* 3740BC E007000C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 3740C0 E0070010 4486B000 */ mtc1 $a2, $f22
/* 3740C4 E0070014 AFB30034 */ sw $s3, 0x34($sp)
/* 3740C8 E0070018 0080982D */ daddu $s3, $a0, $zero
/* 3740CC E007001C F7B80050 */ sdc1 $f24, 0x50($sp)
/* 3740D0 E0070020 4487C000 */ mtc1 $a3, $f24
/* 3740D4 E0070024 27A40010 */ addiu $a0, $sp, 0x10
/* 3740D8 E0070028 AFB20030 */ sw $s2, 0x30($sp)
/* 3740DC E007002C 8FB2006C */ lw $s2, 0x6c($sp)
/* 3740E0 E0070030 3C02E007 */ lui $v0, %hi(shimmer_burst_init)
/* 3740E4 E0070034 244201EC */ addiu $v0, $v0, %lo(shimmer_burst_init)
/* 3740E8 E0070038 AFA20018 */ sw $v0, 0x18($sp)
/* 3740EC E007003C 3C02E007 */ lui $v0, %hi(shimmer_burst_update)
/* 3740F0 E0070040 244201F4 */ addiu $v0, $v0, %lo(shimmer_burst_update)
/* 3740F4 E0070044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3740F8 E0070048 3C02E007 */ lui $v0, %hi(shimmer_burst_render)
/* 3740FC E007004C 244206F0 */ addiu $v0, $v0, %lo(shimmer_burst_render)
/* 374100 E0070050 AFA20020 */ sw $v0, 0x20($sp)
/* 374104 E0070054 24020038 */ addiu $v0, $zero, 0x38
/* 374108 E0070058 AFBF0038 */ sw $ra, 0x38($sp)
/* 37410C E007005C AFB1002C */ sw $s1, 0x2c($sp)
/* 374110 E0070060 AFB00028 */ sw $s0, 0x28($sp)
/* 374114 E0070064 AFA00010 */ sw $zero, 0x10($sp)
/* 374118 E0070068 AFA00024 */ sw $zero, 0x24($sp)
/* 37411C E007006C 0C080124 */ jal shim_create_effect_instance
/* 374120 E0070070 AFA20014 */ sw $v0, 0x14($sp)
/* 374124 E0070074 240419BC */ addiu $a0, $zero, 0x19bc
/* 374128 E0070078 2411003D */ addiu $s1, $zero, 0x3d
/* 37412C E007007C 0040802D */ daddu $s0, $v0, $zero
/* 374130 E0070080 0C08012C */ jal shim_general_heap_malloc
/* 374134 E0070084 AE110008 */ sw $s1, 8($s0)
/* 374138 E0070088 0040182D */ daddu $v1, $v0, $zero
/* 37413C E007008C 14600003 */ bnez $v1, .LE007009C
/* 374140 E0070090 AE03000C */ sw $v1, 0xc($s0)
.LE0070094:
/* 374144 E0070094 0801C025 */ j .LE0070094
/* 374148 E0070098 00000000 */ nop
.LE007009C:
/* 37414C E007009C AC730000 */ sw $s3, ($v1)
/* 374150 E00700A0 1E400004 */ bgtz $s2, .LE00700B4
/* 374154 E00700A4 AC60003C */ sw $zero, 0x3c($v1)
/* 374158 E00700A8 240203E8 */ addiu $v0, $zero, 0x3e8
/* 37415C E00700AC 0801C02E */ j .LE00700B8
/* 374160 E00700B0 AC620038 */ sw $v0, 0x38($v1)
.LE00700B4:
/* 374164 E00700B4 AC720038 */ sw $s2, 0x38($v1)
.LE00700B8:
/* 374168 E00700B8 240400FF */ addiu $a0, $zero, 0xff
/* 37416C E00700BC AC64004C */ sw $a0, 0x4c($v1)
/* 374170 E00700C0 E4740004 */ swc1 $f20, 4($v1)
/* 374174 E00700C4 E4760008 */ swc1 $f22, 8($v1)
/* 374178 E00700C8 E478000C */ swc1 $f24, 0xc($v1)
/* 37417C E00700CC C7A00068 */ lwc1 $f0, 0x68($sp)
/* 374180 E00700D0 2402001E */ addiu $v0, $zero, 0x1e
/* 374184 E00700D4 AC640040 */ sw $a0, 0x40($v1)
/* 374188 E00700D8 AC640044 */ sw $a0, 0x44($v1)
/* 37418C E00700DC AC640048 */ sw $a0, 0x48($v1)
/* 374190 E00700E0 E4600060 */ swc1 $f0, 0x60($v1)
/* 374194 E00700E4 44820000 */ mtc1 $v0, $f0
/* 374198 E00700E8 00000000 */ nop
/* 37419C E00700EC 46800020 */ cvt.s.w $f0, $f0
/* 3741A0 E00700F0 E4600010 */ swc1 $f0, 0x10($v1)
/* 3741A4 E00700F4 16600007 */ bnez $s3, .LE0070114
/* 3741A8 E00700F8 E4600014 */ swc1 $f0, 0x14($v1)
/* 3741AC E00700FC 240200D7 */ addiu $v0, $zero, 0xd7
/* 3741B0 E0070100 AC620050 */ sw $v0, 0x50($v1)
/* 3741B4 E0070104 240200EB */ addiu $v0, $zero, 0xeb
/* 3741B8 E0070108 AC640054 */ sw $a0, 0x54($v1)
/* 3741BC E007010C 0801C049 */ j .LE0070124
/* 3741C0 E0070110 AC620058 */ sw $v0, 0x58($v1)
.LE0070114:
/* 3741C4 E0070114 2402007F */ addiu $v0, $zero, 0x7f
/* 3741C8 E0070118 AC640050 */ sw $a0, 0x50($v1)
/* 3741CC E007011C AC620054 */ sw $v0, 0x54($v1)
/* 3741D0 E0070120 AC640058 */ sw $a0, 0x58($v1)
.LE0070124:
/* 3741D4 E0070124 AC64005C */ sw $a0, 0x5c($v1)
/* 3741D8 E0070128 2A420014 */ slti $v0, $s2, 0x14
/* 3741DC E007012C 10400009 */ beqz $v0, .LE0070154
/* 3741E0 E0070130 2463006C */ addiu $v1, $v1, 0x6c
/* 3741E4 E0070134 2622FFFF */ addiu $v0, $s1, -1
/* 3741E8 E0070138 3C0141A0 */ lui $at, 0x41a0
/* 3741EC E007013C 44811000 */ mtc1 $at, $f2
/* 3741F0 E0070140 44820000 */ mtc1 $v0, $f0
/* 3741F4 E0070144 00000000 */ nop
/* 3741F8 E0070148 46800020 */ cvt.s.w $f0, $f0
/* 3741FC E007014C 0801C05D */ j .LE0070174
/* 374200 E0070150 46001083 */ div.s $f2, $f2, $f0
.LE0070154:
/* 374204 E0070154 44920000 */ mtc1 $s2, $f0
/* 374208 E0070158 00000000 */ nop
/* 37420C E007015C 46800020 */ cvt.s.w $f0, $f0
/* 374210 E0070160 2622FFFF */ addiu $v0, $s1, -1
/* 374214 E0070164 44821000 */ mtc1 $v0, $f2
/* 374218 E0070168 00000000 */ nop
/* 37421C E007016C 468010A0 */ cvt.s.w $f2, $f2
/* 374220 E0070170 46020083 */ div.s $f2, $f0, $f2
.LE0070174:
/* 374224 E0070174 24040001 */ addiu $a0, $zero, 1
/* 374228 E0070178 0091102A */ slt $v0, $a0, $s1
/* 37422C E007017C 10400011 */ beqz $v0, .LE00701C4
/* 374230 E0070180 0200102D */ daddu $v0, $s0, $zero
.LE0070184:
/* 374234 E0070184 44840000 */ mtc1 $a0, $f0
/* 374238 E0070188 00000000 */ nop
/* 37423C E007018C 46800020 */ cvt.s.w $f0, $f0
/* 374240 E0070190 46000007 */ neg.s $f0, $f0
/* 374244 E0070194 46020002 */ mul.s $f0, $f0, $f2
/* 374248 E0070198 00000000 */ nop
/* 37424C E007019C 24840001 */ addiu $a0, $a0, 1
/* 374250 E00701A0 4600010D */ trunc.w.s $f4, $f0
/* 374254 E00701A4 44022000 */ mfc1 $v0, $f4
/* 374258 E00701A8 00000000 */ nop
/* 37425C E00701AC 2442FFFF */ addiu $v0, $v0, -1
/* 374260 E00701B0 AC620030 */ sw $v0, 0x30($v1)
/* 374264 E00701B4 0091102A */ slt $v0, $a0, $s1
/* 374268 E00701B8 1440FFF2 */ bnez $v0, .LE0070184
/* 37426C E00701BC 2463006C */ addiu $v1, $v1, 0x6c
/* 374270 E00701C0 0200102D */ daddu $v0, $s0, $zero
.LE00701C4:
/* 374274 E00701C4 8FBF0038 */ lw $ra, 0x38($sp)
/* 374278 E00701C8 8FB30034 */ lw $s3, 0x34($sp)
/* 37427C E00701CC 8FB20030 */ lw $s2, 0x30($sp)
/* 374280 E00701D0 8FB1002C */ lw $s1, 0x2c($sp)
/* 374284 E00701D4 8FB00028 */ lw $s0, 0x28($sp)
/* 374288 E00701D8 D7B80050 */ ldc1 $f24, 0x50($sp)
/* 37428C E00701DC D7B60048 */ ldc1 $f22, 0x48($sp)
/* 374290 E00701E0 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 374294 E00701E4 03E00008 */ jr $ra
/* 374298 E00701E8 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,359 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0070D60
.double 0.02
dlabel D_E0070D68
.double 0.04
dlabel D_E0070D70
.double 0.4
dlabel D_E0070D78
.double 0.1
dlabel D_E0070D80
.double 0.3
dlabel D_E0070D88
.double 0.2
dlabel D_E0070D90
.double 0.6, 0.0
.section .text
glabel shimmer_burst_update
/* 3742A4 E00701F4 27BDFF98 */ addiu $sp, $sp, -0x68
/* 3742A8 E00701F8 AFB20028 */ sw $s2, 0x28($sp)
/* 3742AC E00701FC 0080902D */ daddu $s2, $a0, $zero
/* 3742B0 E0070200 AFBF0034 */ sw $ra, 0x34($sp)
/* 3742B4 E0070204 AFB40030 */ sw $s4, 0x30($sp)
/* 3742B8 E0070208 AFB3002C */ sw $s3, 0x2c($sp)
/* 3742BC E007020C AFB10024 */ sw $s1, 0x24($sp)
/* 3742C0 E0070210 AFB00020 */ sw $s0, 0x20($sp)
/* 3742C4 E0070214 F7BE0060 */ sdc1 $f30, 0x60($sp)
/* 3742C8 E0070218 F7BC0058 */ sdc1 $f28, 0x58($sp)
/* 3742CC E007021C F7BA0050 */ sdc1 $f26, 0x50($sp)
/* 3742D0 E0070220 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3742D4 E0070224 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3742D8 E0070228 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3742DC E007022C 8E440000 */ lw $a0, ($s2)
/* 3742E0 E0070230 8E43000C */ lw $v1, 0xc($s2)
/* 3742E4 E0070234 30820010 */ andi $v0, $a0, 0x10
/* 3742E8 E0070238 8C740000 */ lw $s4, ($v1)
/* 3742EC E007023C 10400005 */ beqz $v0, .LE0070254
/* 3742F0 E0070240 2402FFEF */ addiu $v0, $zero, -0x11
/* 3742F4 E0070244 00821024 */ and $v0, $a0, $v0
/* 3742F8 E0070248 AE420000 */ sw $v0, ($s2)
/* 3742FC E007024C 24020010 */ addiu $v0, $zero, 0x10
/* 374300 E0070250 AC620038 */ sw $v0, 0x38($v1)
.LE0070254:
/* 374304 E0070254 8C640038 */ lw $a0, 0x38($v1)
/* 374308 E0070258 288203E8 */ slti $v0, $a0, 0x3e8
/* 37430C E007025C 10400002 */ beqz $v0, .LE0070268
/* 374310 E0070260 2482FFFF */ addiu $v0, $a0, -1
/* 374314 E0070264 AC620038 */ sw $v0, 0x38($v1)
.LE0070268:
/* 374318 E0070268 8C62003C */ lw $v0, 0x3c($v1)
/* 37431C E007026C 8C640038 */ lw $a0, 0x38($v1)
/* 374320 E0070270 24420001 */ addiu $v0, $v0, 1
/* 374324 E0070274 04810005 */ bgez $a0, .LE007028C
/* 374328 E0070278 AC62003C */ sw $v0, 0x3c($v1)
/* 37432C E007027C 0C080128 */ jal shim_remove_effect
/* 374330 E0070280 0240202D */ daddu $a0, $s2, $zero
/* 374334 E0070284 0801C1AE */ j .LE00706B8
/* 374338 E0070288 00000000 */ nop
.LE007028C:
/* 37433C E007028C 28820008 */ slti $v0, $a0, 8
/* 374340 E0070290 10400002 */ beqz $v0, .LE007029C
/* 374344 E0070294 00041140 */ sll $v0, $a0, 5
/* 374348 E0070298 AC62004C */ sw $v0, 0x4c($v1)
.LE007029C:
/* 37434C E007029C C47A0010 */ lwc1 $f26, 0x10($v1)
/* 374350 E00702A0 C4780014 */ lwc1 $f24, 0x14($v1)
/* 374354 E00702A4 E7B80010 */ swc1 $f24, 0x10($sp)
/* 374358 E00702A8 8E420008 */ lw $v0, 8($s2)
/* 37435C E00702AC 24110001 */ addiu $s1, $zero, 1
/* 374360 E00702B0 0222102A */ slt $v0, $s1, $v0
/* 374364 E00702B4 10400100 */ beqz $v0, .LE00706B8
/* 374368 E00702B8 2463006C */ addiu $v1, $v1, 0x6c
/* 37436C E00702BC 4600D60D */ trunc.w.s $f24, $f26
/* 374370 E00702C0 4413C000 */ mfc1 $s3, $f24
/* 374374 E00702C4 24700020 */ addiu $s0, $v1, 0x20
/* 374378 E00702C8 3C01E007 */ lui $at, %hi(D_E0070D60)
/* 37437C E00702CC D43E0D60 */ ldc1 $f30, %lo(D_E0070D60)($at)
/* 374380 E00702D0 3C01E007 */ lui $at, %hi(D_E0070D68)
/* 374384 E00702D4 D43C0D68 */ ldc1 $f28, %lo(D_E0070D68)($at)
.LE00702D8:
/* 374388 E00702D8 8E020010 */ lw $v0, 0x10($s0)
/* 37438C E00702DC 24420001 */ addiu $v0, $v0, 1
/* 374390 E00702E0 AE020010 */ sw $v0, 0x10($s0)
/* 374394 E00702E4 28420014 */ slti $v0, $v0, 0x14
/* 374398 E00702E8 50400001 */ beql $v0, $zero, .LE00702F0
/* 37439C E00702EC AE000010 */ sw $zero, 0x10($s0)
.LE00702F0:
/* 3743A0 E00702F0 8E020010 */ lw $v0, 0x10($s0)
/* 3743A4 E00702F4 044200EC */ bltzl $v0, .LE00706A8
/* 3743A8 E00702F8 26310001 */ addiu $s1, $s1, 1
/* 3743AC E00702FC 144000A6 */ bnez $v0, .LE0070598
/* 3743B0 E0070300 00000000 */ nop
/* 3743B4 E0070304 0C080138 */ jal shim_rand_int
/* 3743B8 E0070308 24040167 */ addiu $a0, $zero, 0x167
/* 3743BC E007030C 24040167 */ addiu $a0, $zero, 0x167
/* 3743C0 E0070310 4482C000 */ mtc1 $v0, $f24
/* 3743C4 E0070314 00000000 */ nop
/* 3743C8 E0070318 4680C620 */ cvt.s.w $f24, $f24
/* 3743CC E007031C 0C080138 */ jal shim_rand_int
/* 3743D0 E0070320 E7B80018 */ swc1 $f24, 0x18($sp)
/* 3743D4 E0070324 4482B000 */ mtc1 $v0, $f22
/* 3743D8 E0070328 00000000 */ nop
/* 3743DC E007032C 1680003F */ bnez $s4, .LE007042C
/* 3743E0 E0070330 4680B5A0 */ cvt.s.w $f22, $f22
/* 3743E4 E0070334 0C080140 */ jal shim_sin_deg
/* 3743E8 E0070338 C7AC0018 */ lwc1 $f12, 0x18($sp)
/* 3743EC E007033C 4600B306 */ mov.s $f12, $f22
/* 3743F0 E0070340 0C080144 */ jal shim_cos_deg
/* 3743F4 E0070344 46000506 */ mov.s $f20, $f0
/* 3743F8 E0070348 4614D502 */ mul.s $f20, $f26, $f20
/* 3743FC E007034C 00000000 */ nop
/* 374400 E0070350 4600A502 */ mul.s $f20, $f20, $f0
/* 374404 E0070354 00000000 */ nop
/* 374408 E0070358 C7AC0018 */ lwc1 $f12, 0x18($sp)
/* 37440C E007035C 0C080144 */ jal shim_cos_deg
/* 374410 E0070360 E614FFE4 */ swc1 $f20, -0x1c($s0)
/* 374414 E0070364 4600B306 */ mov.s $f12, $f22
/* 374418 E0070368 0C080144 */ jal shim_cos_deg
/* 37441C E007036C 46000506 */ mov.s $f20, $f0
/* 374420 E0070370 C7B80010 */ lwc1 $f24, 0x10($sp)
/* 374424 E0070374 4614C502 */ mul.s $f20, $f24, $f20
/* 374428 E0070378 00000000 */ nop
/* 37442C E007037C 4600A502 */ mul.s $f20, $f20, $f0
/* 374430 E0070380 00000000 */ nop
/* 374434 E0070384 4600B306 */ mov.s $f12, $f22
/* 374438 E0070388 0C080140 */ jal shim_sin_deg
/* 37443C E007038C E614FFE8 */ swc1 $f20, -0x18($s0)
/* 374440 E0070390 C602FFE4 */ lwc1 $f2, -0x1c($s0)
/* 374444 E0070394 3C01E007 */ lui $at, %hi(D_E0070D70)
/* 374448 E0070398 D4380D70 */ ldc1 $f24, %lo(D_E0070D70)($at)
/* 37444C E007039C 460010A1 */ cvt.d.s $f2, $f2
/* 374450 E00703A0 46381082 */ mul.d $f2, $f2, $f24
/* 374454 E00703A4 00000000 */ nop
/* 374458 E00703A8 C604FFE8 */ lwc1 $f4, -0x18($s0)
/* 37445C E00703AC 46002121 */ cvt.d.s $f4, $f4
/* 374460 E00703B0 46382102 */ mul.d $f4, $f4, $f24
/* 374464 E00703B4 00000000 */ nop
/* 374468 E00703B8 4600D002 */ mul.s $f0, $f26, $f0
/* 37446C E00703BC 00000000 */ nop
/* 374470 E00703C0 E600FFEC */ swc1 $f0, -0x14($s0)
/* 374474 E00703C4 46000021 */ cvt.d.s $f0, $f0
/* 374478 E00703C8 46380002 */ mul.d $f0, $f0, $f24
/* 37447C E00703CC 00000000 */ nop
/* 374480 E00703D0 3C01E007 */ lui $at, %hi(D_E0070D78)
/* 374484 E00703D4 D4380D78 */ ldc1 $f24, %lo(D_E0070D78)($at)
/* 374488 E00703D8 462010A0 */ cvt.s.d $f2, $f2
/* 37448C E00703DC E602FFF8 */ swc1 $f2, -8($s0)
/* 374490 E00703E0 46001186 */ mov.s $f6, $f2
/* 374494 E00703E4 460031A1 */ cvt.d.s $f6, $f6
/* 374498 E00703E8 46383182 */ mul.d $f6, $f6, $f24
/* 37449C E00703EC 00000000 */ nop
/* 3744A0 E00703F0 46202120 */ cvt.s.d $f4, $f4
/* 3744A4 E00703F4 E604FFFC */ swc1 $f4, -4($s0)
/* 3744A8 E00703F8 46002086 */ mov.s $f2, $f4
/* 3744AC E00703FC 460010A1 */ cvt.d.s $f2, $f2
/* 3744B0 E0070400 46381082 */ mul.d $f2, $f2, $f24
/* 3744B4 E0070404 00000000 */ nop
/* 3744B8 E0070408 46200020 */ cvt.s.d $f0, $f0
/* 3744BC E007040C E6000000 */ swc1 $f0, ($s0)
/* 3744C0 E0070410 46000021 */ cvt.d.s $f0, $f0
/* 3744C4 E0070414 46380002 */ mul.d $f0, $f0, $f24
/* 3744C8 E0070418 00000000 */ nop
/* 3744CC E007041C 462031A0 */ cvt.s.d $f6, $f6
/* 3744D0 E0070420 462010A0 */ cvt.s.d $f2, $f2
/* 3744D4 E0070424 0801C154 */ j .LE0070550
/* 3744D8 E0070428 E6060004 */ swc1 $f6, 4($s0)
.LE007042C:
/* 3744DC E007042C 0C080138 */ jal shim_rand_int
/* 3744E0 E0070430 0260202D */ daddu $a0, $s3, $zero
/* 3744E4 E0070434 3C013FE0 */ lui $at, 0x3fe0
/* 3744E8 E0070438 4481C800 */ mtc1 $at, $f25
/* 3744EC E007043C 4480C000 */ mtc1 $zero, $f24
/* 3744F0 E0070440 4600D521 */ cvt.d.s $f20, $f26
/* 3744F4 E0070444 4638A502 */ mul.d $f20, $f20, $f24
/* 3744F8 E0070448 00000000 */ nop
/* 3744FC E007044C 44820000 */ mtc1 $v0, $f0
/* 374500 E0070450 00000000 */ nop
/* 374504 E0070454 46800021 */ cvt.d.w $f0, $f0
/* 374508 E0070458 C7B80010 */ lwc1 $f24, 0x10($sp)
/* 37450C E007045C 46340001 */ sub.d $f0, $f0, $f20
/* 374510 E0070460 4600C60D */ trunc.w.s $f24, $f24
/* 374514 E0070464 4404C000 */ mfc1 $a0, $f24
/* 374518 E0070468 46200020 */ cvt.s.d $f0, $f0
/* 37451C E007046C 0C080138 */ jal shim_rand_int
/* 374520 E0070470 E600FFE4 */ swc1 $f0, -0x1c($s0)
/* 374524 E0070474 C7B80010 */ lwc1 $f24, 0x10($sp)
/* 374528 E0070478 4600C0A1 */ cvt.d.s $f2, $f24
/* 37452C E007047C 3C013FE0 */ lui $at, 0x3fe0
/* 374530 E0070480 4481C800 */ mtc1 $at, $f25
/* 374534 E0070484 4480C000 */ mtc1 $zero, $f24
/* 374538 E0070488 00000000 */ nop
/* 37453C E007048C 46381082 */ mul.d $f2, $f2, $f24
/* 374540 E0070490 00000000 */ nop
/* 374544 E0070494 44820000 */ mtc1 $v0, $f0
/* 374548 E0070498 00000000 */ nop
/* 37454C E007049C 46800021 */ cvt.d.w $f0, $f0
/* 374550 E00704A0 46220001 */ sub.d $f0, $f0, $f2
/* 374554 E00704A4 0260202D */ daddu $a0, $s3, $zero
/* 374558 E00704A8 46200020 */ cvt.s.d $f0, $f0
/* 37455C E00704AC 0C080138 */ jal shim_rand_int
/* 374560 E00704B0 E600FFE8 */ swc1 $f0, -0x18($s0)
/* 374564 E00704B4 C602FFE4 */ lwc1 $f2, -0x1c($s0)
/* 374568 E00704B8 3C01E007 */ lui $at, %hi(D_E0070D80)
/* 37456C E00704BC D4380D80 */ ldc1 $f24, %lo(D_E0070D80)($at)
/* 374570 E00704C0 460010A1 */ cvt.d.s $f2, $f2
/* 374574 E00704C4 46381082 */ mul.d $f2, $f2, $f24
/* 374578 E00704C8 00000000 */ nop
/* 37457C E00704CC C606FFE8 */ lwc1 $f6, -0x18($s0)
/* 374580 E00704D0 460031A1 */ cvt.d.s $f6, $f6
/* 374584 E00704D4 46383182 */ mul.d $f6, $f6, $f24
/* 374588 E00704D8 00000000 */ nop
/* 37458C E00704DC 44820000 */ mtc1 $v0, $f0
/* 374590 E00704E0 00000000 */ nop
/* 374594 E00704E4 46800021 */ cvt.d.w $f0, $f0
/* 374598 E00704E8 46340001 */ sub.d $f0, $f0, $f20
/* 37459C E00704EC 46200020 */ cvt.s.d $f0, $f0
/* 3745A0 E00704F0 E600FFEC */ swc1 $f0, -0x14($s0)
/* 3745A4 E00704F4 46000021 */ cvt.d.s $f0, $f0
/* 3745A8 E00704F8 46380002 */ mul.d $f0, $f0, $f24
/* 3745AC E00704FC 00000000 */ nop
/* 3745B0 E0070500 462010A0 */ cvt.s.d $f2, $f2
/* 3745B4 E0070504 E602FFF8 */ swc1 $f2, -8($s0)
/* 3745B8 E0070508 46001106 */ mov.s $f4, $f2
/* 3745BC E007050C 46002121 */ cvt.d.s $f4, $f4
/* 3745C0 E0070510 463E2102 */ mul.d $f4, $f4, $f30
/* 3745C4 E0070514 00000000 */ nop
/* 3745C8 E0070518 462031A0 */ cvt.s.d $f6, $f6
/* 3745CC E007051C E606FFFC */ swc1 $f6, -4($s0)
/* 3745D0 E0070520 46003086 */ mov.s $f2, $f6
/* 3745D4 E0070524 460010A1 */ cvt.d.s $f2, $f2
/* 3745D8 E0070528 463E1082 */ mul.d $f2, $f2, $f30
/* 3745DC E007052C 00000000 */ nop
/* 3745E0 E0070530 46200020 */ cvt.s.d $f0, $f0
/* 3745E4 E0070534 E6000000 */ swc1 $f0, ($s0)
/* 3745E8 E0070538 46000021 */ cvt.d.s $f0, $f0
/* 3745EC E007053C 463E0002 */ mul.d $f0, $f0, $f30
/* 3745F0 E0070540 00000000 */ nop
/* 3745F4 E0070544 46202120 */ cvt.s.d $f4, $f4
/* 3745F8 E0070548 462010A0 */ cvt.s.d $f2, $f2
/* 3745FC E007054C E6040004 */ swc1 $f4, 4($s0)
.LE0070550:
/* 374600 E0070550 E6020008 */ swc1 $f2, 8($s0)
/* 374604 E0070554 46200020 */ cvt.s.d $f0, $f0
/* 374608 E0070558 E600000C */ swc1 $f0, 0xc($s0)
/* 37460C E007055C 0C080138 */ jal shim_rand_int
/* 374610 E0070560 2404000F */ addiu $a0, $zero, 0xf
/* 374614 E0070564 2404000F */ addiu $a0, $zero, 0xf
/* 374618 E0070568 44820000 */ mtc1 $v0, $f0
/* 37461C E007056C 00000000 */ nop
/* 374620 E0070570 46800020 */ cvt.s.w $f0, $f0
/* 374624 E0070574 0C080138 */ jal shim_rand_int
/* 374628 E0070578 E6000044 */ swc1 $f0, 0x44($s0)
/* 37462C E007057C 44820000 */ mtc1 $v0, $f0
/* 374630 E0070580 00000000 */ nop
/* 374634 E0070584 46800020 */ cvt.s.w $f0, $f0
/* 374638 E0070588 240200FF */ addiu $v0, $zero, 0xff
/* 37463C E007058C E6000048 */ swc1 $f0, 0x48($s0)
/* 374640 E0070590 AE000014 */ sw $zero, 0x14($s0)
/* 374644 E0070594 AE02002C */ sw $v0, 0x2c($s0)
.LE0070598:
/* 374648 E0070598 C610FFF8 */ lwc1 $f16, -8($s0)
/* 37464C E007059C C60A0004 */ lwc1 $f10, 4($s0)
/* 374650 E00705A0 46105281 */ sub.s $f10, $f10, $f16
/* 374654 E00705A4 460052A1 */ cvt.d.s $f10, $f10
/* 374658 E00705A8 463C5282 */ mul.d $f10, $f10, $f28
/* 37465C E00705AC 00000000 */ nop
/* 374660 E00705B0 C60EFFFC */ lwc1 $f14, -4($s0)
/* 374664 E00705B4 C60C0008 */ lwc1 $f12, 8($s0)
/* 374668 E00705B8 460E6301 */ sub.s $f12, $f12, $f14
/* 37466C E00705BC 46006321 */ cvt.d.s $f12, $f12
/* 374670 E00705C0 463C6302 */ mul.d $f12, $f12, $f28
/* 374674 E00705C4 00000000 */ nop
/* 374678 E00705C8 C6060000 */ lwc1 $f6, ($s0)
/* 37467C E00705CC C608000C */ lwc1 $f8, 0xc($s0)
/* 374680 E00705D0 46064201 */ sub.s $f8, $f8, $f6
/* 374684 E00705D4 46004221 */ cvt.d.s $f8, $f8
/* 374688 E00705D8 463C4202 */ mul.d $f8, $f8, $f28
/* 37468C E00705DC 00000000 */ nop
/* 374690 E00705E0 8E020010 */ lw $v0, 0x10($s0)
/* 374694 E00705E4 C6160014 */ lwc1 $f22, 0x14($s0)
/* 374698 E00705E8 3C014080 */ lui $at, 0x4080
/* 37469C E00705EC 44810000 */ mtc1 $at, $f0
/* 3746A0 E00705F0 C604FFE4 */ lwc1 $f4, -0x1c($s0)
/* 3746A4 E00705F4 C614FFE8 */ lwc1 $f20, -0x18($s0)
/* 3746A8 E00705F8 C612FFEC */ lwc1 $f18, -0x14($s0)
/* 3746AC E00705FC 4600B580 */ add.s $f22, $f22, $f0
/* 3746B0 E0070600 00021080 */ sll $v0, $v0, 2
/* 3746B4 E0070604 46008006 */ mov.s $f0, $f16
/* 3746B8 E0070608 46002100 */ add.s $f4, $f4, $f0
/* 3746BC E007060C 46007006 */ mov.s $f0, $f14
/* 3746C0 E0070610 46008421 */ cvt.d.s $f16, $f16
/* 3746C4 E0070614 3C01E007 */ lui $at, %hi(D_E0070CF0)
/* 3746C8 E0070618 00220821 */ addu $at, $at, $v0
/* 3746CC E007061C C4220CF0 */ lwc1 $f2, %lo(D_E0070CF0)($at)
/* 3746D0 E0070620 4600A500 */ add.s $f20, $f20, $f0
/* 3746D4 E0070624 E6020040 */ swc1 $f2, 0x40($s0)
/* 3746D8 E0070628 46003086 */ mov.s $f2, $f6
/* 3746DC E007062C 46029480 */ add.s $f18, $f18, $f2
/* 3746E0 E0070630 C6020044 */ lwc1 $f2, 0x44($s0)
/* 3746E4 E0070634 3C01E007 */ lui $at, %hi(D_E0070D88)
/* 3746E8 E0070638 D4200D88 */ ldc1 $f0, %lo(D_E0070D88)($at)
/* 3746EC E007063C 460010A1 */ cvt.d.s $f2, $f2
/* 3746F0 E0070640 46201080 */ add.d $f2, $f2, $f0
/* 3746F4 E0070644 C6000048 */ lwc1 $f0, 0x48($s0)
/* 3746F8 E0070648 460073A1 */ cvt.d.s $f14, $f14
/* 3746FC E007064C E604FFE4 */ swc1 $f4, -0x1c($s0)
/* 374700 E0070650 3C01E007 */ lui $at, %hi(D_E0070D90)
/* 374704 E0070654 D4240D90 */ ldc1 $f4, %lo(D_E0070D90)($at)
/* 374708 E0070658 460031A1 */ cvt.d.s $f6, $f6
/* 37470C E007065C E6160014 */ swc1 $f22, 0x14($s0)
/* 374710 E0070660 46000021 */ cvt.d.s $f0, $f0
/* 374714 E0070664 46240000 */ add.d $f0, $f0, $f4
/* 374718 E0070668 E614FFE8 */ swc1 $f20, -0x18($s0)
/* 37471C E007066C E612FFEC */ swc1 $f18, -0x14($s0)
/* 374720 E0070670 462A8400 */ add.d $f16, $f16, $f10
/* 374724 E0070674 462010A0 */ cvt.s.d $f2, $f2
/* 374728 E0070678 E6020044 */ swc1 $f2, 0x44($s0)
/* 37472C E007067C 462C7380 */ add.d $f14, $f14, $f12
/* 374730 E0070680 46200020 */ cvt.s.d $f0, $f0
/* 374734 E0070684 E6000048 */ swc1 $f0, 0x48($s0)
/* 374738 E0070688 46283180 */ add.d $f6, $f6, $f8
/* 37473C E007068C 46208420 */ cvt.s.d $f16, $f16
/* 374740 E0070690 462073A0 */ cvt.s.d $f14, $f14
/* 374744 E0070694 462031A0 */ cvt.s.d $f6, $f6
/* 374748 E0070698 E610FFF8 */ swc1 $f16, -8($s0)
/* 37474C E007069C E60EFFFC */ swc1 $f14, -4($s0)
/* 374750 E00706A0 E6060000 */ swc1 $f6, ($s0)
/* 374754 E00706A4 26310001 */ addiu $s1, $s1, 1
.LE00706A8:
/* 374758 E00706A8 8E420008 */ lw $v0, 8($s2)
/* 37475C E00706AC 0222102A */ slt $v0, $s1, $v0
/* 374760 E00706B0 1440FF09 */ bnez $v0, .LE00702D8
/* 374764 E00706B4 2610006C */ addiu $s0, $s0, 0x6c
.LE00706B8:
/* 374768 E00706B8 8FBF0034 */ lw $ra, 0x34($sp)
/* 37476C E00706BC 8FB40030 */ lw $s4, 0x30($sp)
/* 374770 E00706C0 8FB3002C */ lw $s3, 0x2c($sp)
/* 374774 E00706C4 8FB20028 */ lw $s2, 0x28($sp)
/* 374778 E00706C8 8FB10024 */ lw $s1, 0x24($sp)
/* 37477C E00706CC 8FB00020 */ lw $s0, 0x20($sp)
/* 374780 E00706D0 D7BE0060 */ ldc1 $f30, 0x60($sp)
/* 374784 E00706D4 D7BC0058 */ ldc1 $f28, 0x58($sp)
/* 374788 E00706D8 D7BA0050 */ ldc1 $f26, 0x50($sp)
/* 37478C E00706DC D7B80048 */ ldc1 $f24, 0x48($sp)
/* 374790 E00706E0 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 374794 E00706E4 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 374798 E00706E8 03E00008 */ jr $ra
/* 37479C E00706EC 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -1,101 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel underwater_main
/* 3B8BD0 E00BA000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3B8BD4 E00BA004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3B8BD8 E00BA008 4485A000 */ mtc1 $a1, $f20
/* 3B8BDC E00BA00C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3B8BE0 E00BA010 4486B000 */ mtc1 $a2, $f22
/* 3B8BE4 E00BA014 AFB20030 */ sw $s2, 0x30($sp)
/* 3B8BE8 E00BA018 0080902D */ daddu $s2, $a0, $zero
/* 3B8BEC E00BA01C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3B8BF0 E00BA020 4487C000 */ mtc1 $a3, $f24
/* 3B8BF4 E00BA024 27A40010 */ addiu $a0, $sp, 0x10
/* 3B8BF8 E00BA028 AFB1002C */ sw $s1, 0x2c($sp)
/* 3B8BFC E00BA02C 8FB10064 */ lw $s1, 0x64($sp)
/* 3B8C00 E00BA030 3C02E00C */ lui $v0, %hi(underwater_init)
/* 3B8C04 E00BA034 2442A16C */ addiu $v0, $v0, %lo(underwater_init)
/* 3B8C08 E00BA038 AFA20018 */ sw $v0, 0x18($sp)
/* 3B8C0C E00BA03C 3C02E00C */ lui $v0, %hi(underwater_update)
/* 3B8C10 E00BA040 2442A174 */ addiu $v0, $v0, %lo(underwater_update)
/* 3B8C14 E00BA044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3B8C18 E00BA048 3C02E00C */ lui $v0, %hi(underwater_render)
/* 3B8C1C E00BA04C 2442A5DC */ addiu $v0, $v0, %lo(underwater_render)
/* 3B8C20 E00BA050 AFA20020 */ sw $v0, 0x20($sp)
/* 3B8C24 E00BA054 2402005D */ addiu $v0, $zero, 0x5d
/* 3B8C28 E00BA058 AFBF0034 */ sw $ra, 0x34($sp)
/* 3B8C2C E00BA05C AFB00028 */ sw $s0, 0x28($sp)
/* 3B8C30 E00BA060 AFA00010 */ sw $zero, 0x10($sp)
/* 3B8C34 E00BA064 AFA00024 */ sw $zero, 0x24($sp)
/* 3B8C38 E00BA068 0C080124 */ jal shim_create_effect_instance
/* 3B8C3C E00BA06C AFA20014 */ sw $v0, 0x14($sp)
/* 3B8C40 E00BA070 24040308 */ addiu $a0, $zero, 0x308
/* 3B8C44 E00BA074 24030001 */ addiu $v1, $zero, 1
/* 3B8C48 E00BA078 0040802D */ daddu $s0, $v0, $zero
/* 3B8C4C E00BA07C 0C08012C */ jal shim_general_heap_malloc
/* 3B8C50 E00BA080 AE030008 */ sw $v1, 8($s0)
/* 3B8C54 E00BA084 0040302D */ daddu $a2, $v0, $zero
/* 3B8C58 E00BA088 14C00003 */ bnez $a2, .LE00BA098
/* 3B8C5C E00BA08C AE02000C */ sw $v0, 0xc($s0)
.LE00BA090:
/* 3B8C60 E00BA090 0802E824 */ j .LE00BA090
/* 3B8C64 E00BA094 00000000 */ nop
.LE00BA098:
/* 3B8C68 E00BA098 ACD20000 */ sw $s2, ($a2)
/* 3B8C6C E00BA09C 1E200004 */ bgtz $s1, .LE00BA0B0
/* 3B8C70 E00BA0A0 ACC00014 */ sw $zero, 0x14($a2)
/* 3B8C74 E00BA0A4 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3B8C78 E00BA0A8 0802E82D */ j .LE00BA0B4
/* 3B8C7C E00BA0AC ACC20010 */ sw $v0, 0x10($a2)
.LE00BA0B0:
/* 3B8C80 E00BA0B0 ACD10010 */ sw $s1, 0x10($a2)
.LE00BA0B4:
/* 3B8C84 E00BA0B4 0000482D */ daddu $t1, $zero, $zero
/* 3B8C88 E00BA0B8 0120402D */ daddu $t0, $t1, $zero
/* 3B8C8C E00BA0BC 0120382D */ daddu $a3, $t1, $zero
/* 3B8C90 E00BA0C0 A0C0001F */ sb $zero, 0x1f($a2)
/* 3B8C94 E00BA0C4 E4D40004 */ swc1 $f20, 4($a2)
/* 3B8C98 E00BA0C8 E4D60008 */ swc1 $f22, 8($a2)
/* 3B8C9C E00BA0CC E4D8000C */ swc1 $f24, 0xc($a2)
/* 3B8CA0 E00BA0D0 C7A00060 */ lwc1 $f0, 0x60($sp)
/* 3B8CA4 E00BA0D4 2402000A */ addiu $v0, $zero, 0xa
/* 3B8CA8 E00BA0D8 A0C2001C */ sb $v0, 0x1c($a2)
/* 3B8CAC E00BA0DC 2402006E */ addiu $v0, $zero, 0x6e
/* 3B8CB0 E00BA0E0 240300FF */ addiu $v1, $zero, 0xff
/* 3B8CB4 E00BA0E4 A0C2001D */ sb $v0, 0x1d($a2)
/* 3B8CB8 E00BA0E8 240200BE */ addiu $v0, $zero, 0xbe
/* 3B8CBC E00BA0EC A0C20020 */ sb $v0, 0x20($a2)
/* 3B8CC0 E00BA0F0 240200DC */ addiu $v0, $zero, 0xdc
/* 3B8CC4 E00BA0F4 A0C3001E */ sb $v1, 0x1e($a2)
/* 3B8CC8 E00BA0F8 A0C20021 */ sb $v0, 0x21($a2)
/* 3B8CCC E00BA0FC A0C30022 */ sb $v1, 0x22($a2)
/* 3B8CD0 E00BA100 E4C00018 */ swc1 $f0, 0x18($a2)
.LE00BA104:
/* 3B8CD4 E00BA104 0000202D */ daddu $a0, $zero, $zero
/* 3B8CD8 E00BA108 0100282D */ daddu $a1, $t0, $zero
.LE00BA10C:
/* 3B8CDC E00BA10C 00C51021 */ addu $v0, $a2, $a1
/* 3B8CE0 E00BA110 00871821 */ addu $v1, $a0, $a3
/* 3B8CE4 E00BA114 24840001 */ addiu $a0, $a0, 1
/* 3B8CE8 E00BA118 00C31821 */ addu $v1, $a2, $v1
/* 3B8CEC E00BA11C A0600023 */ sb $zero, 0x23($v1)
/* 3B8CF0 E00BA120 A440011A */ sh $zero, 0x11a($v0)
/* 3B8CF4 E00BA124 2882000D */ slti $v0, $a0, 0xd
/* 3B8CF8 E00BA128 1440FFF8 */ bnez $v0, .LE00BA10C
/* 3B8CFC E00BA12C 24A50002 */ addiu $a1, $a1, 2
/* 3B8D00 E00BA130 2508001A */ addiu $t0, $t0, 0x1a
/* 3B8D04 E00BA134 25290001 */ addiu $t1, $t1, 1
/* 3B8D08 E00BA138 29220013 */ slti $v0, $t1, 0x13
/* 3B8D0C E00BA13C 1440FFF1 */ bnez $v0, .LE00BA104
/* 3B8D10 E00BA140 24E7000D */ addiu $a3, $a3, 0xd
/* 3B8D14 E00BA144 0200102D */ daddu $v0, $s0, $zero
/* 3B8D18 E00BA148 8FBF0034 */ lw $ra, 0x34($sp)
/* 3B8D1C E00BA14C 8FB20030 */ lw $s2, 0x30($sp)
/* 3B8D20 E00BA150 8FB1002C */ lw $s1, 0x2c($sp)
/* 3B8D24 E00BA154 8FB00028 */ lw $s0, 0x28($sp)
/* 3B8D28 E00BA158 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3B8D2C E00BA15C D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3B8D30 E00BA160 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3B8D34 E00BA164 03E00008 */ jr $ra
/* 3B8D38 E00BA168 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,311 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00BAE80
.double 0.7
dlabel D_E00BAE88
.double 0.98
dlabel D_E00BAE90
.double 0.02
.section .text
glabel underwater_update
/* 3B8D44 E00BA174 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 3B8D48 E00BA178 AFBF0024 */ sw $ra, 0x24($sp)
/* 3B8D4C E00BA17C AFB40020 */ sw $s4, 0x20($sp)
/* 3B8D50 E00BA180 AFB3001C */ sw $s3, 0x1c($sp)
/* 3B8D54 E00BA184 AFB20018 */ sw $s2, 0x18($sp)
/* 3B8D58 E00BA188 AFB10014 */ sw $s1, 0x14($sp)
/* 3B8D5C E00BA18C AFB00010 */ sw $s0, 0x10($sp)
/* 3B8D60 E00BA190 F7B60030 */ sdc1 $f22, 0x30($sp)
/* 3B8D64 E00BA194 F7B40028 */ sdc1 $f20, 0x28($sp)
/* 3B8D68 E00BA198 8C830000 */ lw $v1, ($a0)
/* 3B8D6C E00BA19C 8C90000C */ lw $s0, 0xc($a0)
/* 3B8D70 E00BA1A0 30620010 */ andi $v0, $v1, 0x10
/* 3B8D74 E00BA1A4 10400005 */ beqz $v0, .LE00BA1BC
/* 3B8D78 E00BA1A8 2402FFEF */ addiu $v0, $zero, -0x11
/* 3B8D7C E00BA1AC 00621024 */ and $v0, $v1, $v0
/* 3B8D80 E00BA1B0 AC820000 */ sw $v0, ($a0)
/* 3B8D84 E00BA1B4 24020020 */ addiu $v0, $zero, 0x20
/* 3B8D88 E00BA1B8 AE020010 */ sw $v0, 0x10($s0)
.LE00BA1BC:
/* 3B8D8C E00BA1BC 8E030010 */ lw $v1, 0x10($s0)
/* 3B8D90 E00BA1C0 286203E8 */ slti $v0, $v1, 0x3e8
/* 3B8D94 E00BA1C4 10400002 */ beqz $v0, .LE00BA1D0
/* 3B8D98 E00BA1C8 2462FFFF */ addiu $v0, $v1, -1
/* 3B8D9C E00BA1CC AE020010 */ sw $v0, 0x10($s0)
.LE00BA1D0:
/* 3B8DA0 E00BA1D0 8E020014 */ lw $v0, 0x14($s0)
/* 3B8DA4 E00BA1D4 8E030010 */ lw $v1, 0x10($s0)
/* 3B8DA8 E00BA1D8 24420001 */ addiu $v0, $v0, 1
/* 3B8DAC E00BA1DC 04610005 */ bgez $v1, .LE00BA1F4
/* 3B8DB0 E00BA1E0 AE020014 */ sw $v0, 0x14($s0)
/* 3B8DB4 E00BA1E4 0C080128 */ jal shim_remove_effect
/* 3B8DB8 E00BA1E8 00000000 */ nop
/* 3B8DBC E00BA1EC 0802E96D */ j .LE00BA5B4
/* 3B8DC0 E00BA1F0 00000000 */ nop
.LE00BA1F4:
/* 3B8DC4 E00BA1F4 0060A02D */ daddu $s4, $v1, $zero
/* 3B8DC8 E00BA1F8 0040982D */ daddu $s3, $v0, $zero
/* 3B8DCC E00BA1FC 2A820020 */ slti $v0, $s4, 0x20
/* 3B8DD0 E00BA200 10400002 */ beqz $v0, .LE00BA20C
/* 3B8DD4 E00BA204 240400FF */ addiu $a0, $zero, 0xff
/* 3B8DD8 E00BA208 001420C0 */ sll $a0, $s4, 3
.LE00BA20C:
/* 3B8DDC E00BA20C 2A620010 */ slti $v0, $s3, 0x10
/* 3B8DE0 E00BA210 10400002 */ beqz $v0, .LE00BA21C
/* 3B8DE4 E00BA214 00131100 */ sll $v0, $s3, 4
/* 3B8DE8 E00BA218 2444000F */ addiu $a0, $v0, 0xf
.LE00BA21C:
/* 3B8DEC E00BA21C 3C014F00 */ lui $at, 0x4f00
/* 3B8DF0 E00BA220 44811000 */ mtc1 $at, $f2
/* 3B8DF4 E00BA224 44840000 */ mtc1 $a0, $f0
/* 3B8DF8 E00BA228 00000000 */ nop
/* 3B8DFC E00BA22C 46800020 */ cvt.s.w $f0, $f0
/* 3B8E00 E00BA230 4600103E */ c.le.s $f2, $f0
/* 3B8E04 E00BA234 00000000 */ nop
/* 3B8E08 E00BA238 45010005 */ bc1t .LE00BA250
/* 3B8E0C E00BA23C 2605001F */ addiu $a1, $s0, 0x1f
/* 3B8E10 E00BA240 4600038D */ trunc.w.s $f14, $f0
/* 3B8E14 E00BA244 44037000 */ mfc1 $v1, $f14
/* 3B8E18 E00BA248 0802E89B */ j .LE00BA26C
/* 3B8E1C E00BA24C 24120001 */ addiu $s2, $zero, 1
.LE00BA250:
/* 3B8E20 E00BA250 46020001 */ sub.s $f0, $f0, $f2
/* 3B8E24 E00BA254 3C028000 */ lui $v0, 0x8000
/* 3B8E28 E00BA258 4600038D */ trunc.w.s $f14, $f0
/* 3B8E2C E00BA25C 44037000 */ mfc1 $v1, $f14
/* 3B8E30 E00BA260 00000000 */ nop
/* 3B8E34 E00BA264 00621825 */ or $v1, $v1, $v0
/* 3B8E38 E00BA268 24120001 */ addiu $s2, $zero, 1
.LE00BA26C:
/* 3B8E3C E00BA26C 2611000D */ addiu $s1, $s0, 0xd
/* 3B8E40 E00BA270 3C01C280 */ lui $at, 0xc280
/* 3B8E44 E00BA274 4481B000 */ mtc1 $at, $f22
/* 3B8E48 E00BA278 3C01437F */ lui $at, 0x437f
/* 3B8E4C E00BA27C 44811000 */ mtc1 $at, $f2
/* 3B8E50 E00BA280 44840000 */ mtc1 $a0, $f0
/* 3B8E54 E00BA284 00000000 */ nop
/* 3B8E58 E00BA288 46800020 */ cvt.s.w $f0, $f0
/* 3B8E5C E00BA28C A0A30000 */ sb $v1, ($a1)
/* 3B8E60 E00BA290 46020503 */ div.s $f20, $f0, $f2
.LE00BA294:
/* 3B8E64 E00BA294 02721823 */ subu $v1, $s3, $s2
/* 3B8E68 E00BA298 00031080 */ sll $v0, $v1, 2
/* 3B8E6C E00BA29C 00431021 */ addu $v0, $v0, $v1
/* 3B8E70 E00BA2A0 00021080 */ sll $v0, $v0, 2
/* 3B8E74 E00BA2A4 00021023 */ negu $v0, $v0
/* 3B8E78 E00BA2A8 44826000 */ mtc1 $v0, $f12
/* 3B8E7C E00BA2AC 00000000 */ nop
/* 3B8E80 E00BA2B0 46806320 */ cvt.s.w $f12, $f12
/* 3B8E84 E00BA2B4 0C080140 */ jal shim_sin_deg
/* 3B8E88 E00BA2B8 26520001 */ addiu $s2, $s2, 1
/* 3B8E8C E00BA2BC 46160002 */ mul.s $f0, $f0, $f22
/* 3B8E90 E00BA2C0 00000000 */ nop
/* 3B8E94 E00BA2C4 46140002 */ mul.s $f0, $f0, $f20
/* 3B8E98 E00BA2C8 00000000 */ nop
/* 3B8E9C E00BA2CC 4600038D */ trunc.w.s $f14, $f0
/* 3B8EA0 E00BA2D0 44027000 */ mfc1 $v0, $f14
/* 3B8EA4 E00BA2D4 00000000 */ nop
/* 3B8EA8 E00BA2D8 A2220029 */ sb $v0, 0x29($s1)
/* 3B8EAC E00BA2DC 2A420012 */ slti $v0, $s2, 0x12
/* 3B8EB0 E00BA2E0 1440FFEC */ bnez $v0, .LE00BA294
/* 3B8EB4 E00BA2E4 2631000D */ addiu $s1, $s1, 0xd
/* 3B8EB8 E00BA2E8 24120001 */ addiu $s2, $zero, 1
/* 3B8EBC E00BA2EC 240F001A */ addiu $t7, $zero, 0x1a
/* 3B8EC0 E00BA2F0 240EFFFF */ addiu $t6, $zero, -1
/* 3B8EC4 E00BA2F4 240D0019 */ addiu $t5, $zero, 0x19
/* 3B8EC8 E00BA2F8 0000602D */ daddu $t4, $zero, $zero
/* 3B8ECC E00BA2FC 01E0582D */ daddu $t3, $t7, $zero
/* 3B8ED0 E00BA300 240A000D */ addiu $t2, $zero, 0xd
.LE00BA304:
/* 3B8ED4 E00BA304 24050001 */ addiu $a1, $zero, 1
/* 3B8ED8 E00BA308 0140382D */ daddu $a3, $t2, $zero
/* 3B8EDC E00BA30C 0160482D */ daddu $t1, $t3, $zero
/* 3B8EE0 E00BA310 0180402D */ daddu $t0, $t4, $zero
/* 3B8EE4 E00BA314 01A0982D */ daddu $s3, $t5, $zero
/* 3B8EE8 E00BA318 01C0882D */ daddu $s1, $t6, $zero
/* 3B8EEC E00BA31C 25E60002 */ addiu $a2, $t7, 2
.LE00BA320:
/* 3B8EF0 E00BA320 25220001 */ addiu $v0, $t1, 1
/* 3B8EF4 E00BA324 00A21021 */ addu $v0, $a1, $v0
/* 3B8EF8 E00BA328 02021021 */ addu $v0, $s0, $v0
/* 3B8EFC E00BA32C 00A72021 */ addu $a0, $a1, $a3
/* 3B8F00 E00BA330 00B31821 */ addu $v1, $a1, $s3
/* 3B8F04 E00BA334 02031821 */ addu $v1, $s0, $v1
/* 3B8F08 E00BA338 80420023 */ lb $v0, 0x23($v0)
/* 3B8F0C E00BA33C 80630023 */ lb $v1, 0x23($v1)
/* 3B8F10 E00BA340 44822000 */ mtc1 $v0, $f4
/* 3B8F14 E00BA344 00000000 */ nop
/* 3B8F18 E00BA348 46802120 */ cvt.s.w $f4, $f4
/* 3B8F1C E00BA34C 25020001 */ addiu $v0, $t0, 1
/* 3B8F20 E00BA350 00A21021 */ addu $v0, $a1, $v0
/* 3B8F24 E00BA354 02021021 */ addu $v0, $s0, $v0
/* 3B8F28 E00BA358 80420023 */ lb $v0, 0x23($v0)
/* 3B8F2C E00BA35C 44831000 */ mtc1 $v1, $f2
/* 3B8F30 E00BA360 00000000 */ nop
/* 3B8F34 E00BA364 468010A0 */ cvt.s.w $f2, $f2
/* 3B8F38 E00BA368 44820000 */ mtc1 $v0, $f0
/* 3B8F3C E00BA36C 00000000 */ nop
/* 3B8F40 E00BA370 46800020 */ cvt.s.w $f0, $f0
/* 3B8F44 E00BA374 00B11021 */ addu $v0, $a1, $s1
/* 3B8F48 E00BA378 46002100 */ add.s $f4, $f4, $f0
/* 3B8F4C E00BA37C 02021021 */ addu $v0, $s0, $v0
/* 3B8F50 E00BA380 80420023 */ lb $v0, 0x23($v0)
/* 3B8F54 E00BA384 46022100 */ add.s $f4, $f4, $f2
/* 3B8F58 E00BA388 02042021 */ addu $a0, $s0, $a0
/* 3B8F5C E00BA38C 44820000 */ mtc1 $v0, $f0
/* 3B8F60 E00BA390 00000000 */ nop
/* 3B8F64 E00BA394 46800020 */ cvt.s.w $f0, $f0
/* 3B8F68 E00BA398 46002100 */ add.s $f4, $f4, $f0
/* 3B8F6C E00BA39C 80830023 */ lb $v1, 0x23($a0)
/* 3B8F70 E00BA3A0 3C013FE0 */ lui $at, 0x3fe0
/* 3B8F74 E00BA3A4 44810800 */ mtc1 $at, $f1
/* 3B8F78 E00BA3A8 44800000 */ mtc1 $zero, $f0
/* 3B8F7C E00BA3AC 46002121 */ cvt.d.s $f4, $f4
/* 3B8F80 E00BA3B0 46202102 */ mul.d $f4, $f4, $f0
/* 3B8F84 E00BA3B4 00000000 */ nop
/* 3B8F88 E00BA3B8 44835000 */ mtc1 $v1, $f10
/* 3B8F8C E00BA3BC 00000000 */ nop
/* 3B8F90 E00BA3C0 468052A0 */ cvt.s.w $f10, $f10
/* 3B8F94 E00BA3C4 00A81821 */ addu $v1, $a1, $t0
/* 3B8F98 E00BA3C8 02031821 */ addu $v1, $s0, $v1
/* 3B8F9C E00BA3CC 00A91021 */ addu $v0, $a1, $t1
/* 3B8FA0 E00BA3D0 02021021 */ addu $v0, $s0, $v0
/* 3B8FA4 E00BA3D4 3C014080 */ lui $at, 0x4080
/* 3B8FA8 E00BA3D8 44810000 */ mtc1 $at, $f0
/* 3B8FAC E00BA3DC 80420023 */ lb $v0, 0x23($v0)
/* 3B8FB0 E00BA3E0 46005282 */ mul.s $f10, $f10, $f0
/* 3B8FB4 E00BA3E4 00000000 */ nop
/* 3B8FB8 E00BA3E8 44821000 */ mtc1 $v0, $f2
/* 3B8FBC E00BA3EC 00000000 */ nop
/* 3B8FC0 E00BA3F0 468010A0 */ cvt.s.w $f2, $f2
/* 3B8FC4 E00BA3F4 24E20001 */ addiu $v0, $a3, 1
/* 3B8FC8 E00BA3F8 00A21021 */ addu $v0, $a1, $v0
/* 3B8FCC E00BA3FC 3C01E00C */ lui $at, %hi(D_E00BAE80)
/* 3B8FD0 E00BA400 D420AE80 */ ldc1 $f0, %lo(D_E00BAE80)($at)
/* 3B8FD4 E00BA404 460051A1 */ cvt.d.s $f6, $f10
/* 3B8FD8 E00BA408 46203182 */ mul.d $f6, $f6, $f0
/* 3B8FDC E00BA40C 00000000 */ nop
/* 3B8FE0 E00BA410 02021021 */ addu $v0, $s0, $v0
/* 3B8FE4 E00BA414 80420023 */ lb $v0, 0x23($v0)
/* 3B8FE8 E00BA418 80630023 */ lb $v1, 0x23($v1)
/* 3B8FEC E00BA41C 44824000 */ mtc1 $v0, $f8
/* 3B8FF0 E00BA420 00000000 */ nop
/* 3B8FF4 E00BA424 46804220 */ cvt.s.w $f8, $f8
/* 3B8FF8 E00BA428 24E2FFFF */ addiu $v0, $a3, -1
/* 3B8FFC E00BA42C 00A21021 */ addu $v0, $a1, $v0
/* 3B9000 E00BA430 44830000 */ mtc1 $v1, $f0
/* 3B9004 E00BA434 00000000 */ nop
/* 3B9008 E00BA438 46800020 */ cvt.s.w $f0, $f0
/* 3B900C E00BA43C 46001080 */ add.s $f2, $f2, $f0
/* 3B9010 E00BA440 02021021 */ addu $v0, $s0, $v0
/* 3B9014 E00BA444 80420023 */ lb $v0, 0x23($v0)
/* 3B9018 E00BA448 46081080 */ add.s $f2, $f2, $f8
/* 3B901C E00BA44C 44820000 */ mtc1 $v0, $f0
/* 3B9020 E00BA450 00000000 */ nop
/* 3B9024 E00BA454 46800020 */ cvt.s.w $f0, $f0
/* 3B9028 E00BA458 46001080 */ add.s $f2, $f2, $f0
/* 3B902C E00BA45C 460A1081 */ sub.s $f2, $f2, $f10
/* 3B9030 E00BA460 46202120 */ cvt.s.d $f4, $f4
/* 3B9034 E00BA464 46041080 */ add.s $f2, $f2, $f4
/* 3B9038 E00BA468 02061821 */ addu $v1, $s0, $a2
/* 3B903C E00BA46C 8462011A */ lh $v0, 0x11a($v1)
/* 3B9040 E00BA470 460010A1 */ cvt.d.s $f2, $f2
/* 3B9044 E00BA474 46261081 */ sub.d $f2, $f2, $f6
/* 3B9048 E00BA478 44820000 */ mtc1 $v0, $f0
/* 3B904C E00BA47C 00000000 */ nop
/* 3B9050 E00BA480 46800021 */ cvt.d.w $f0, $f0
/* 3B9054 E00BA484 46220000 */ add.d $f0, $f0, $f2
/* 3B9058 E00BA488 3C01E00C */ lui $at, %hi(D_E00BAE88)
/* 3B905C E00BA48C D422AE88 */ ldc1 $f2, %lo(D_E00BAE88)($at)
/* 3B9060 E00BA490 4620038D */ trunc.w.d $f14, $f0
/* 3B9064 E00BA494 44027000 */ mfc1 $v0, $f14
/* 3B9068 E00BA498 00000000 */ nop
/* 3B906C E00BA49C 00021400 */ sll $v0, $v0, 0x10
/* 3B9070 E00BA4A0 00021403 */ sra $v0, $v0, 0x10
/* 3B9074 E00BA4A4 44820000 */ mtc1 $v0, $f0
/* 3B9078 E00BA4A8 00000000 */ nop
/* 3B907C E00BA4AC 46800021 */ cvt.d.w $f0, $f0
/* 3B9080 E00BA4B0 46220002 */ mul.d $f0, $f0, $f2
/* 3B9084 E00BA4B4 00000000 */ nop
/* 3B9088 E00BA4B8 4620038D */ trunc.w.d $f14, $f0
/* 3B908C E00BA4BC 44027000 */ mfc1 $v0, $f14
/* 3B9090 E00BA4C0 00000000 */ nop
/* 3B9094 E00BA4C4 A462011A */ sh $v0, 0x11a($v1)
/* 3B9098 E00BA4C8 2A820020 */ slti $v0, $s4, 0x20
/* 3B909C E00BA4CC 1040000B */ beqz $v0, .LE00BA4FC
/* 3B90A0 E00BA4D0 24A50001 */ addiu $a1, $a1, 1
/* 3B90A4 E00BA4D4 80820023 */ lb $v0, 0x23($a0)
/* 3B90A8 E00BA4D8 44820000 */ mtc1 $v0, $f0
/* 3B90AC E00BA4DC 00000000 */ nop
/* 3B90B0 E00BA4E0 46800020 */ cvt.s.w $f0, $f0
/* 3B90B4 E00BA4E4 46140002 */ mul.s $f0, $f0, $f20
/* 3B90B8 E00BA4E8 00000000 */ nop
/* 3B90BC E00BA4EC 4600038D */ trunc.w.s $f14, $f0
/* 3B90C0 E00BA4F0 44027000 */ mfc1 $v0, $f14
/* 3B90C4 E00BA4F4 00000000 */ nop
/* 3B90C8 E00BA4F8 A0820023 */ sb $v0, 0x23($a0)
.LE00BA4FC:
/* 3B90CC E00BA4FC 28A2000C */ slti $v0, $a1, 0xc
/* 3B90D0 E00BA500 1440FF87 */ bnez $v0, .LE00BA320
/* 3B90D4 E00BA504 24C60002 */ addiu $a2, $a2, 2
/* 3B90D8 E00BA508 25EF001A */ addiu $t7, $t7, 0x1a
/* 3B90DC E00BA50C 25CE000D */ addiu $t6, $t6, 0xd
/* 3B90E0 E00BA510 25AD000D */ addiu $t5, $t5, 0xd
/* 3B90E4 E00BA514 258C000D */ addiu $t4, $t4, 0xd
/* 3B90E8 E00BA518 256B000D */ addiu $t3, $t3, 0xd
/* 3B90EC E00BA51C 26520001 */ addiu $s2, $s2, 1
/* 3B90F0 E00BA520 2A420012 */ slti $v0, $s2, 0x12
/* 3B90F4 E00BA524 1440FF77 */ bnez $v0, .LE00BA304
/* 3B90F8 E00BA528 254A000D */ addiu $t2, $t2, 0xd
/* 3B90FC E00BA52C 24120001 */ addiu $s2, $zero, 1
/* 3B9100 E00BA530 3C01E00C */ lui $at, %hi(D_E00BAE90)
/* 3B9104 E00BA534 D424AE90 */ ldc1 $f4, %lo(D_E00BAE90)($at)
/* 3B9108 E00BA538 2407001A */ addiu $a3, $zero, 0x1a
/* 3B910C E00BA53C 2406000D */ addiu $a2, $zero, 0xd
.LE00BA540:
/* 3B9110 E00BA540 24050001 */ addiu $a1, $zero, 1
/* 3B9114 E00BA544 24E40002 */ addiu $a0, $a3, 2
.LE00BA548:
/* 3B9118 E00BA548 02041021 */ addu $v0, $s0, $a0
/* 3B911C E00BA54C 8442011A */ lh $v0, 0x11a($v0)
/* 3B9120 E00BA550 44821000 */ mtc1 $v0, $f2
/* 3B9124 E00BA554 00000000 */ nop
/* 3B9128 E00BA558 468010A1 */ cvt.d.w $f2, $f2
/* 3B912C E00BA55C 46241082 */ mul.d $f2, $f2, $f4
/* 3B9130 E00BA560 00000000 */ nop
/* 3B9134 E00BA564 00A61821 */ addu $v1, $a1, $a2
/* 3B9138 E00BA568 02031821 */ addu $v1, $s0, $v1
/* 3B913C E00BA56C 80620023 */ lb $v0, 0x23($v1)
/* 3B9140 E00BA570 44820000 */ mtc1 $v0, $f0
/* 3B9144 E00BA574 00000000 */ nop
/* 3B9148 E00BA578 46800021 */ cvt.d.w $f0, $f0
/* 3B914C E00BA57C 46220000 */ add.d $f0, $f0, $f2
/* 3B9150 E00BA580 24A50001 */ addiu $a1, $a1, 1
/* 3B9154 E00BA584 4620038D */ trunc.w.d $f14, $f0
/* 3B9158 E00BA588 44027000 */ mfc1 $v0, $f14
/* 3B915C E00BA58C 00000000 */ nop
/* 3B9160 E00BA590 A0620023 */ sb $v0, 0x23($v1)
/* 3B9164 E00BA594 28A2000C */ slti $v0, $a1, 0xc
/* 3B9168 E00BA598 1440FFEB */ bnez $v0, .LE00BA548
/* 3B916C E00BA59C 24840002 */ addiu $a0, $a0, 2
/* 3B9170 E00BA5A0 24E7001A */ addiu $a3, $a3, 0x1a
/* 3B9174 E00BA5A4 26520001 */ addiu $s2, $s2, 1
/* 3B9178 E00BA5A8 2A420012 */ slti $v0, $s2, 0x12
/* 3B917C E00BA5AC 1440FFE4 */ bnez $v0, .LE00BA540
/* 3B9180 E00BA5B0 24C6000D */ addiu $a2, $a2, 0xd
.LE00BA5B4:
/* 3B9184 E00BA5B4 8FBF0024 */ lw $ra, 0x24($sp)
/* 3B9188 E00BA5B8 8FB40020 */ lw $s4, 0x20($sp)
/* 3B918C E00BA5BC 8FB3001C */ lw $s3, 0x1c($sp)
/* 3B9190 E00BA5C0 8FB20018 */ lw $s2, 0x18($sp)
/* 3B9194 E00BA5C4 8FB10014 */ lw $s1, 0x14($sp)
/* 3B9198 E00BA5C8 8FB00010 */ lw $s0, 0x10($sp)
/* 3B919C E00BA5CC D7B60030 */ ldc1 $f22, 0x30($sp)
/* 3B91A0 E00BA5D0 D7B40028 */ ldc1 $f20, 0x28($sp)
/* 3B91A4 E00BA5D4 03E00008 */ jr $ra
/* 3B91A8 E00BA5D8 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,462 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00B8CD0
.double 0.01
.section .text
glabel water_fountain_appendGfx
/* 3B7D88 E00B8208 27BDFEF8 */ addiu $sp, $sp, -0x108
/* 3B7D8C E00B820C 0080302D */ daddu $a2, $a0, $zero
/* 3B7D90 E00B8210 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 3B7D94 E00B8214 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 3B7D98 E00B8218 3C04800B */ lui $a0, %hi(gCameras)
/* 3B7D9C E00B821C 24841D80 */ addiu $a0, $a0, %lo(gCameras)
/* 3B7DA0 E00B8220 AFBF00EC */ sw $ra, 0xec($sp)
/* 3B7DA4 E00B8224 AFBE00E8 */ sw $fp, 0xe8($sp)
/* 3B7DA8 E00B8228 AFB700E4 */ sw $s7, 0xe4($sp)
/* 3B7DAC E00B822C AFB600E0 */ sw $s6, 0xe0($sp)
/* 3B7DB0 E00B8230 AFB500DC */ sw $s5, 0xdc($sp)
/* 3B7DB4 E00B8234 AFB400D8 */ sw $s4, 0xd8($sp)
/* 3B7DB8 E00B8238 AFB300D4 */ sw $s3, 0xd4($sp)
/* 3B7DBC E00B823C AFB200D0 */ sw $s2, 0xd0($sp)
/* 3B7DC0 E00B8240 AFB100CC */ sw $s1, 0xcc($sp)
/* 3B7DC4 E00B8244 AFB000C8 */ sw $s0, 0xc8($sp)
/* 3B7DC8 E00B8248 F7B80100 */ sdc1 $f24, 0x100($sp)
/* 3B7DCC E00B824C F7B600F8 */ sdc1 $f22, 0xf8($sp)
/* 3B7DD0 E00B8250 F7B400F0 */ sdc1 $f20, 0xf0($sp)
/* 3B7DD4 E00B8254 8CD3000C */ lw $s3, 0xc($a2)
/* 3B7DD8 E00B8258 00031080 */ sll $v0, $v1, 2
/* 3B7DDC E00B825C 00431021 */ addu $v0, $v0, $v1
/* 3B7DE0 E00B8260 00021080 */ sll $v0, $v0, 2
/* 3B7DE4 E00B8264 00431023 */ subu $v0, $v0, $v1
/* 3B7DE8 E00B8268 000218C0 */ sll $v1, $v0, 3
/* 3B7DEC E00B826C 00431021 */ addu $v0, $v0, $v1
/* 3B7DF0 E00B8270 8E7E0014 */ lw $fp, 0x14($s3)
/* 3B7DF4 E00B8274 8E6A0010 */ lw $t2, 0x10($s3)
/* 3B7DF8 E00B8278 000210C0 */ sll $v0, $v0, 3
/* 3B7DFC E00B827C AFAA0098 */ sw $t2, 0x98($sp)
/* 3B7E00 E00B8280 8E6A0024 */ lw $t2, 0x24($s3)
/* 3B7E04 E00B8284 0044B821 */ addu $s7, $v0, $a0
/* 3B7E08 E00B8288 AFAA00A0 */ sw $t2, 0xa0($sp)
/* 3B7E0C E00B828C 8E6A0018 */ lw $t2, 0x18($s3)
/* 3B7E10 E00B8290 8E620000 */ lw $v0, ($s3)
/* 3B7E14 E00B8294 AFAA00A4 */ sw $t2, 0xa4($sp)
/* 3B7E18 E00B8298 8E6A001C */ lw $t2, 0x1c($s3)
/* 3B7E1C E00B829C AFAA00A8 */ sw $t2, 0xa8($sp)
/* 3B7E20 E00B82A0 8E6A0020 */ lw $t2, 0x20($s3)
/* 3B7E24 E00B82A4 14400007 */ bnez $v0, .LE00B82C4
/* 3B7E28 E00B82A8 AFAA00AC */ sw $t2, 0xac($sp)
/* 3B7E2C E00B82AC 240A0003 */ addiu $t2, $zero, 3
/* 3B7E30 E00B82B0 AFAA00B0 */ sw $t2, 0xb0($sp)
/* 3B7E34 E00B82B4 3C0AE00C */ lui $t2, %hi(D_E00B8900)
/* 3B7E38 E00B82B8 254A8900 */ addiu $t2, $t2, %lo(D_E00B8900)
/* 3B7E3C E00B82BC 0802E0B6 */ j .LE00B82D8
/* 3B7E40 E00B82C0 24160014 */ addiu $s6, $zero, 0x14
.LE00B82C4:
/* 3B7E44 E00B82C4 2416000B */ addiu $s6, $zero, 0xb
/* 3B7E48 E00B82C8 240A0003 */ addiu $t2, $zero, 3
/* 3B7E4C E00B82CC AFAA00B0 */ sw $t2, 0xb0($sp)
/* 3B7E50 E00B82D0 3C0AE00C */ lui $t2, %hi(D_E00B8B58)
/* 3B7E54 E00B82D4 254A8B58 */ addiu $t2, $t2, %lo(D_E00B8B58)
.LE00B82D8:
/* 3B7E58 E00B82D8 AFAA00B4 */ sw $t2, 0xb4($sp)
/* 3B7E5C E00B82DC 3C05DB06 */ lui $a1, 0xdb06
/* 3B7E60 E00B82E0 34A50024 */ ori $a1, $a1, 0x24
/* 3B7E64 E00B82E4 27A40018 */ addiu $a0, $sp, 0x18
/* 3B7E68 E00B82E8 3C14800A */ lui $s4, %hi(gMasterGfxPos)
/* 3B7E6C E00B82EC 2694A66C */ addiu $s4, $s4, %lo(gMasterGfxPos)
/* 3B7E70 E00B82F0 3C120001 */ lui $s2, 1
/* 3B7E74 E00B82F4 8E880000 */ lw $t0, ($s4)
/* 3B7E78 E00B82F8 3C02E700 */ lui $v0, 0xe700
/* 3B7E7C E00B82FC 0100182D */ daddu $v1, $t0, $zero
/* 3B7E80 E00B8300 25080008 */ addiu $t0, $t0, 8
/* 3B7E84 E00B8304 AC620000 */ sw $v0, ($v1)
/* 3B7E88 E00B8308 AC600004 */ sw $zero, 4($v1)
/* 3B7E8C E00B830C AD050000 */ sw $a1, ($t0)
/* 3B7E90 E00B8310 8CC20010 */ lw $v0, 0x10($a2)
/* 3B7E94 E00B8314 36521630 */ ori $s2, $s2, 0x1630
/* 3B7E98 E00B8318 AE880000 */ sw $t0, ($s4)
/* 3B7E9C E00B831C 8C42001C */ lw $v0, 0x1c($v0)
/* 3B7EA0 E00B8320 3C038000 */ lui $v1, 0x8000
/* 3B7EA4 E00B8324 00431021 */ addu $v0, $v0, $v1
/* 3B7EA8 E00B8328 AD020004 */ sw $v0, 4($t0)
/* 3B7EAC E00B832C 8E650004 */ lw $a1, 4($s3)
/* 3B7EB0 E00B8330 8E660008 */ lw $a2, 8($s3)
/* 3B7EB4 E00B8334 8E67000C */ lw $a3, 0xc($s3)
/* 3B7EB8 E00B8338 25080008 */ addiu $t0, $t0, 8
/* 3B7EBC E00B833C 0C080108 */ jal shim_guTranslateF
/* 3B7EC0 E00B8340 AE880000 */ sw $t0, ($s4)
/* 3B7EC4 E00B8344 27B50058 */ addiu $s5, $sp, 0x58
/* 3B7EC8 E00B8348 8E650034 */ lw $a1, 0x34($s3)
/* 3B7ECC E00B834C 02A0202D */ daddu $a0, $s5, $zero
/* 3B7ED0 E00B8350 00A0302D */ daddu $a2, $a1, $zero
/* 3B7ED4 E00B8354 0C080110 */ jal shim_guScaleF
/* 3B7ED8 E00B8358 00A0382D */ daddu $a3, $a1, $zero
/* 3B7EDC E00B835C 02A0202D */ daddu $a0, $s5, $zero
/* 3B7EE0 E00B8360 27A50018 */ addiu $a1, $sp, 0x18
/* 3B7EE4 E00B8364 0C080114 */ jal shim_guMtxCatF
/* 3B7EE8 E00B8368 00A0302D */ daddu $a2, $a1, $zero
/* 3B7EEC E00B836C 27A40018 */ addiu $a0, $sp, 0x18
/* 3B7EF0 E00B8370 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 3B7EF4 E00B8374 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 3B7EF8 E00B8378 3C11800A */ lui $s1, %hi(gDisplayContext)
/* 3B7EFC E00B837C 2631A674 */ addiu $s1, $s1, %lo(gDisplayContext)
/* 3B7F00 E00B8380 96050000 */ lhu $a1, ($s0)
/* 3B7F04 E00B8384 8E220000 */ lw $v0, ($s1)
/* 3B7F08 E00B8388 00052980 */ sll $a1, $a1, 6
/* 3B7F0C E00B838C 00B22821 */ addu $a1, $a1, $s2
/* 3B7F10 E00B8390 0C080118 */ jal shim_guMtxF2L
/* 3B7F14 E00B8394 00452821 */ addu $a1, $v0, $a1
/* 3B7F18 E00B8398 3C03DA38 */ lui $v1, 0xda38
/* 3B7F1C E00B839C 34630002 */ ori $v1, $v1, 2
/* 3B7F20 E00B83A0 3C09DA38 */ lui $t1, 0xda38
/* 3B7F24 E00B83A4 35290001 */ ori $t1, $t1, 1
/* 3B7F28 E00B83A8 27A40018 */ addiu $a0, $sp, 0x18
/* 3B7F2C E00B83AC 4480B000 */ mtc1 $zero, $f22
/* 3B7F30 E00B83B0 8E880000 */ lw $t0, ($s4)
/* 3B7F34 E00B83B4 96020000 */ lhu $v0, ($s0)
/* 3B7F38 E00B83B8 3C013F80 */ lui $at, 0x3f80
/* 3B7F3C E00B83BC 4481A000 */ mtc1 $at, $f20
/* 3B7F40 E00B83C0 0100282D */ daddu $a1, $t0, $zero
/* 3B7F44 E00B83C4 25080008 */ addiu $t0, $t0, 8
/* 3B7F48 E00B83C8 AE880000 */ sw $t0, ($s4)
/* 3B7F4C E00B83CC ACA30000 */ sw $v1, ($a1)
/* 3B7F50 E00B83D0 24430001 */ addiu $v1, $v0, 1
/* 3B7F54 E00B83D4 3042FFFF */ andi $v0, $v0, 0xffff
/* 3B7F58 E00B83D8 00021180 */ sll $v0, $v0, 6
/* 3B7F5C E00B83DC 4406B000 */ mfc1 $a2, $f22
/* 3B7F60 E00B83E0 00521021 */ addu $v0, $v0, $s2
/* 3B7F64 E00B83E4 A6030000 */ sh $v1, ($s0)
/* 3B7F68 E00B83E8 8E230000 */ lw $v1, ($s1)
/* 3B7F6C E00B83EC 4407B000 */ mfc1 $a3, $f22
/* 3B7F70 E00B83F0 00621821 */ addu $v1, $v1, $v0
/* 3B7F74 E00B83F4 25020008 */ addiu $v0, $t0, 8
/* 3B7F78 E00B83F8 ACA30004 */ sw $v1, 4($a1)
/* 3B7F7C E00B83FC AE820000 */ sw $v0, ($s4)
/* 3B7F80 E00B8400 AD090000 */ sw $t1, ($t0)
/* 3B7F84 E00B8404 8EE30204 */ lw $v1, 0x204($s7)
/* 3B7F88 E00B8408 3C17DE00 */ lui $s7, 0xde00
/* 3B7F8C E00B840C 3C020900 */ lui $v0, 0x900
/* 3B7F90 E00B8410 24420280 */ addiu $v0, $v0, 0x280
/* 3B7F94 E00B8414 AD170008 */ sw $s7, 8($t0)
/* 3B7F98 E00B8418 AD02000C */ sw $v0, 0xc($t0)
/* 3B7F9C E00B841C AD030004 */ sw $v1, 4($t0)
/* 3B7FA0 E00B8420 E7B40010 */ swc1 $f20, 0x10($sp)
/* 3B7FA4 E00B8424 8E650038 */ lw $a1, 0x38($s3)
/* 3B7FA8 E00B8428 25080010 */ addiu $t0, $t0, 0x10
/* 3B7FAC E00B842C 0C080104 */ jal shim_guRotateF
/* 3B7FB0 E00B8430 AE880000 */ sw $t0, ($s4)
/* 3B7FB4 E00B8434 8E65003C */ lw $a1, 0x3c($s3)
/* 3B7FB8 E00B8438 8E660040 */ lw $a2, 0x40($s3)
/* 3B7FBC E00B843C 4407A000 */ mfc1 $a3, $f20
/* 3B7FC0 E00B8440 0C080110 */ jal shim_guScaleF
/* 3B7FC4 E00B8444 02A0202D */ daddu $a0, $s5, $zero
/* 3B7FC8 E00B8448 02A0202D */ daddu $a0, $s5, $zero
/* 3B7FCC E00B844C 27A50018 */ addiu $a1, $sp, 0x18
/* 3B7FD0 E00B8450 0C080114 */ jal shim_guMtxCatF
/* 3B7FD4 E00B8454 00A0302D */ daddu $a2, $a1, $zero
/* 3B7FD8 E00B8458 27A40018 */ addiu $a0, $sp, 0x18
/* 3B7FDC E00B845C 96050000 */ lhu $a1, ($s0)
/* 3B7FE0 E00B8460 8E220000 */ lw $v0, ($s1)
/* 3B7FE4 E00B8464 00052980 */ sll $a1, $a1, 6
/* 3B7FE8 E00B8468 00B22821 */ addu $a1, $a1, $s2
/* 3B7FEC E00B846C 0C080118 */ jal shim_guMtxF2L
/* 3B7FF0 E00B8470 00452821 */ addu $a1, $v0, $a1
/* 3B7FF4 E00B8474 8E850000 */ lw $a1, ($s4)
/* 3B7FF8 E00B8478 00A0202D */ daddu $a0, $a1, $zero
/* 3B7FFC E00B847C 24A50008 */ addiu $a1, $a1, 8
/* 3B8000 E00B8480 AE850000 */ sw $a1, ($s4)
/* 3B8004 E00B8484 96020000 */ lhu $v0, ($s0)
/* 3B8008 E00B8488 3C03DA38 */ lui $v1, 0xda38
/* 3B800C E00B848C AC830000 */ sw $v1, ($a0)
/* 3B8010 E00B8490 24430001 */ addiu $v1, $v0, 1
/* 3B8014 E00B8494 3042FFFF */ andi $v0, $v0, 0xffff
/* 3B8018 E00B8498 00021180 */ sll $v0, $v0, 6
/* 3B801C E00B849C A6030000 */ sh $v1, ($s0)
/* 3B8020 E00B84A0 8E230000 */ lw $v1, ($s1)
/* 3B8024 E00B84A4 00521021 */ addu $v0, $v0, $s2
/* 3B8028 E00B84A8 00621821 */ addu $v1, $v1, $v0
/* 3B802C E00B84AC 24A20008 */ addiu $v0, $a1, 8
/* 3B8030 E00B84B0 AC830004 */ sw $v1, 4($a0)
/* 3B8034 E00B84B4 AE820000 */ sw $v0, ($s4)
/* 3B8038 E00B84B8 3C02FB00 */ lui $v0, 0xfb00
/* 3B803C E00B84BC ACA20000 */ sw $v0, ($a1)
/* 3B8040 E00B84C0 9262002B */ lbu $v0, 0x2b($s3)
/* 3B8044 E00B84C4 9264002F */ lbu $a0, 0x2f($s3)
/* 3B8048 E00B84C8 92630033 */ lbu $v1, 0x33($s3)
/* 3B804C E00B84CC 8FAA00A0 */ lw $t2, 0xa0($sp)
/* 3B8050 E00B84D0 00021600 */ sll $v0, $v0, 0x18
/* 3B8054 E00B84D4 00042400 */ sll $a0, $a0, 0x10
/* 3B8058 E00B84D8 00441025 */ or $v0, $v0, $a0
/* 3B805C E00B84DC 00031A00 */ sll $v1, $v1, 8
/* 3B8060 E00B84E0 00431025 */ or $v0, $v0, $v1
/* 3B8064 E00B84E4 314400FF */ andi $a0, $t2, 0xff
/* 3B8068 E00B84E8 00441025 */ or $v0, $v0, $a0
/* 3B806C E00B84EC ACA20004 */ sw $v0, 4($a1)
/* 3B8070 E00B84F0 8FAA009C */ lw $t2, 0x9c($sp)
/* 3B8074 E00B84F4 25420001 */ addiu $v0, $t2, 1
/* 3B8078 E00B84F8 8FAA0098 */ lw $t2, 0x98($sp)
/* 3B807C E00B84FC 02C21023 */ subu $v0, $s6, $v0
/* 3B8080 E00B8500 0142102A */ slt $v0, $t2, $v0
/* 3B8084 E00B8504 14400018 */ bnez $v0, .LE00B8568
/* 3B8088 E00B8508 00161042 */ srl $v0, $s6, 1
/* 3B808C E00B850C 24A20010 */ addiu $v0, $a1, 0x10
/* 3B8090 E00B8510 AE820000 */ sw $v0, ($s4)
/* 3B8094 E00B8514 3C02FA00 */ lui $v0, 0xfa00
/* 3B8098 E00B8518 ACA20008 */ sw $v0, 8($a1)
/* 3B809C E00B851C 8FAA00A4 */ lw $t2, 0xa4($sp)
/* 3B80A0 E00B8520 000A1E00 */ sll $v1, $t2, 0x18
/* 3B80A4 E00B8524 8FAA00A8 */ lw $t2, 0xa8($sp)
/* 3B80A8 E00B8528 314200FF */ andi $v0, $t2, 0xff
/* 3B80AC E00B852C 00021400 */ sll $v0, $v0, 0x10
/* 3B80B0 E00B8530 8FAA00AC */ lw $t2, 0xac($sp)
/* 3B80B4 E00B8534 00621825 */ or $v1, $v1, $v0
/* 3B80B8 E00B8538 314200FF */ andi $v0, $t2, 0xff
/* 3B80BC E00B853C 00021200 */ sll $v0, $v0, 8
/* 3B80C0 E00B8540 00621825 */ or $v1, $v1, $v0
/* 3B80C4 E00B8544 00641825 */ or $v1, $v1, $a0
/* 3B80C8 E00B8548 24A20018 */ addiu $v0, $a1, 0x18
/* 3B80CC E00B854C ACA3000C */ sw $v1, 0xc($a1)
/* 3B80D0 E00B8550 AE820000 */ sw $v0, ($s4)
/* 3B80D4 E00B8554 3C020900 */ lui $v0, 0x900
/* 3B80D8 E00B8558 24420348 */ addiu $v0, $v0, 0x348
/* 3B80DC E00B855C ACB70010 */ sw $s7, 0x10($a1)
/* 3B80E0 E00B8560 ACA20014 */ sw $v0, 0x14($a1)
/* 3B80E4 E00B8564 00161042 */ srl $v0, $s6, 1
.LE00B8568:
/* 3B80E8 E00B8568 184000BF */ blez $v0, .LE00B8868
/* 3B80EC E00B856C 0000B82D */ daddu $s7, $zero, $zero
/* 3B80F0 E00B8570 001E1080 */ sll $v0, $fp, 2
/* 3B80F4 E00B8574 4600B506 */ mov.s $f20, $f22
/* 3B80F8 E00B8578 3C01E00C */ lui $at, %hi(D_E00B8CD0)
/* 3B80FC E00B857C D4368CD0 */ ldc1 $f22, %lo(D_E00B8CD0)($at)
/* 3B8100 E00B8580 005E1021 */ addu $v0, $v0, $fp
/* 3B8104 E00B8584 AFA200BC */ sw $v0, 0xbc($sp)
/* 3B8108 E00B8588 AFBE00C4 */ sw $fp, 0xc4($sp)
.LE00B858C:
/* 3B810C E00B858C 8FAA00B0 */ lw $t2, 0xb0($sp)
/* 3B8110 E00B8590 114000AE */ beqz $t2, .LE00B884C
/* 3B8114 E00B8594 0000902D */ daddu $s2, $zero, $zero
/* 3B8118 E00B8598 3C1E0001 */ lui $fp, 1
/* 3B811C E00B859C 37DE1630 */ ori $fp, $fp, 0x1630
/* 3B8120 E00B85A0 3C14800A */ lui $s4, %hi(gMasterGfxPos)
/* 3B8124 E00B85A4 2694A66C */ addiu $s4, $s4, %lo(gMasterGfxPos)
/* 3B8128 E00B85A8 8FAA00C4 */ lw $t2, 0xc4($sp)
/* 3B812C E00B85AC 0240982D */ daddu $s3, $s2, $zero
/* 3B8130 E00B85B0 AFAA00B8 */ sw $t2, 0xb8($sp)
/* 3B8134 E00B85B4 8FAA00A4 */ lw $t2, 0xa4($sp)
/* 3B8138 E00B85B8 3C013F80 */ lui $at, 0x3f80
/* 3B813C E00B85BC 4481C000 */ mtc1 $at, $f24
/* 3B8140 E00B85C0 000A5600 */ sll $t2, $t2, 0x18
/* 3B8144 E00B85C4 AFAA00C0 */ sw $t2, 0xc0($sp)
.LE00B85C8:
/* 3B8148 E00B85C8 8FAA00B8 */ lw $t2, 0xb8($sp)
/* 3B814C E00B85CC 16C00002 */ bnez $s6, .LE00B85D8
/* 3B8150 E00B85D0 0156001A */ div $zero, $t2, $s6
/* 3B8154 E00B85D4 0007000D */ break 7
.LE00B85D8:
/* 3B8158 E00B85D8 2401FFFF */ addiu $at, $zero, -1
/* 3B815C E00B85DC 16C10004 */ bne $s6, $at, .LE00B85F0
/* 3B8160 E00B85E0 3C018000 */ lui $at, 0x8000
/* 3B8164 E00B85E4 15410002 */ bne $t2, $at, .LE00B85F0
/* 3B8168 E00B85E8 00000000 */ nop
/* 3B816C E00B85EC 0006000D */ break 6
.LE00B85F0:
/* 3B8170 E00B85F0 00001810 */ mfhi $v1
/* 3B8174 E00B85F4 00131080 */ sll $v0, $s3, 2
/* 3B8178 E00B85F8 00531021 */ addu $v0, $v0, $s3
/* 3B817C E00B85FC 8FAA00B4 */ lw $t2, 0xb4($sp)
/* 3B8180 E00B8600 00021040 */ sll $v0, $v0, 1
/* 3B8184 E00B8604 01422821 */ addu $a1, $t2, $v0
/* 3B8188 E00B8608 8FAA00BC */ lw $t2, 0xbc($sp)
/* 3B818C E00B860C 0143102A */ slt $v0, $t2, $v1
/* 3B8190 E00B8610 14400089 */ bnez $v0, .LE00B8838
/* 3B8194 E00B8614 24620001 */ addiu $v0, $v1, 1
/* 3B8198 E00B8618 8FAA0098 */ lw $t2, 0x98($sp)
/* 3B819C E00B861C 02C21023 */ subu $v0, $s6, $v0
/* 3B81A0 E00B8620 0142102A */ slt $v0, $t2, $v0
/* 3B81A4 E00B8624 14400084 */ bnez $v0, .LE00B8838
/* 3B81A8 E00B8628 00038080 */ sll $s0, $v1, 2
/* 3B81AC E00B862C 02038021 */ addu $s0, $s0, $v1
/* 3B81B0 E00B8630 00108040 */ sll $s0, $s0, 1
/* 3B81B4 E00B8634 02058821 */ addu $s1, $s0, $a1
/* 3B81B8 E00B8638 82220001 */ lb $v0, 1($s1)
/* 3B81BC E00B863C 3C014120 */ lui $at, 0x4120
/* 3B81C0 E00B8640 44811000 */ mtc1 $at, $f2
/* 3B81C4 E00B8644 4407A000 */ mfc1 $a3, $f20
/* 3B81C8 E00B8648 44820000 */ mtc1 $v0, $f0
/* 3B81CC E00B864C 00000000 */ nop
/* 3B81D0 E00B8650 46800020 */ cvt.s.w $f0, $f0
/* 3B81D4 E00B8654 82220000 */ lb $v0, ($s1)
/* 3B81D8 E00B8658 46020000 */ add.s $f0, $f0, $f2
/* 3B81DC E00B865C 44822000 */ mtc1 $v0, $f4
/* 3B81E0 E00B8660 00000000 */ nop
/* 3B81E4 E00B8664 46802120 */ cvt.s.w $f4, $f4
/* 3B81E8 E00B8668 44052000 */ mfc1 $a1, $f4
/* 3B81EC E00B866C 44060000 */ mfc1 $a2, $f0
/* 3B81F0 E00B8670 0C080108 */ jal shim_guTranslateF
/* 3B81F4 E00B8674 27A40018 */ addiu $a0, $sp, 0x18
/* 3B81F8 E00B8678 8FAA00B4 */ lw $t2, 0xb4($sp)
/* 3B81FC E00B867C 020A8021 */ addu $s0, $s0, $t2
/* 3B8200 E00B8680 86020002 */ lh $v0, 2($s0)
/* 3B8204 E00B8684 44821000 */ mtc1 $v0, $f2
/* 3B8208 E00B8688 00000000 */ nop
/* 3B820C E00B868C 468010A0 */ cvt.s.w $f2, $f2
/* 3B8210 E00B8690 460010A1 */ cvt.d.s $f2, $f2
/* 3B8214 E00B8694 46361082 */ mul.d $f2, $f2, $f22
/* 3B8218 E00B8698 00000000 */ nop
/* 3B821C E00B869C 86020004 */ lh $v0, 4($s0)
/* 3B8220 E00B86A0 44820000 */ mtc1 $v0, $f0
/* 3B8224 E00B86A4 00000000 */ nop
/* 3B8228 E00B86A8 46800020 */ cvt.s.w $f0, $f0
/* 3B822C E00B86AC 46000021 */ cvt.d.s $f0, $f0
/* 3B8230 E00B86B0 46360002 */ mul.d $f0, $f0, $f22
/* 3B8234 E00B86B4 00000000 */ nop
/* 3B8238 E00B86B8 4407C000 */ mfc1 $a3, $f24
/* 3B823C E00B86BC 462010A0 */ cvt.s.d $f2, $f2
/* 3B8240 E00B86C0 44051000 */ mfc1 $a1, $f2
/* 3B8244 E00B86C4 46200020 */ cvt.s.d $f0, $f0
/* 3B8248 E00B86C8 44060000 */ mfc1 $a2, $f0
/* 3B824C E00B86CC 0C080110 */ jal shim_guScaleF
/* 3B8250 E00B86D0 02A0202D */ daddu $a0, $s5, $zero
/* 3B8254 E00B86D4 02A0202D */ daddu $a0, $s5, $zero
/* 3B8258 E00B86D8 27A50018 */ addiu $a1, $sp, 0x18
/* 3B825C E00B86DC 0C080114 */ jal shim_guMtxCatF
/* 3B8260 E00B86E0 00A0302D */ daddu $a2, $a1, $zero
/* 3B8264 E00B86E4 86220006 */ lh $v0, 6($s1)
/* 3B8268 E00B86E8 3C0AE00C */ lui $t2, %hi(D_E00B8CA4)
/* 3B826C E00B86EC 254A8CA4 */ addiu $t2, $t2, %lo(D_E00B8CA4)
/* 3B8270 E00B86F0 44821000 */ mtc1 $v0, $f2
/* 3B8274 E00B86F4 00000000 */ nop
/* 3B8278 E00B86F8 468010A0 */ cvt.s.w $f2, $f2
/* 3B827C E00B86FC 02571021 */ addu $v0, $s2, $s7
/* 3B8280 E00B8700 30420007 */ andi $v0, $v0, 7
/* 3B8284 E00B8704 00021080 */ sll $v0, $v0, 2
/* 3B8288 E00B8708 004A1021 */ addu $v0, $v0, $t2
/* 3B828C E00B870C C4400000 */ lwc1 $f0, ($v0)
/* 3B8290 E00B8710 46800020 */ cvt.s.w $f0, $f0
/* 3B8294 E00B8714 46001080 */ add.s $f2, $f2, $f0
/* 3B8298 E00B8718 4406A000 */ mfc1 $a2, $f20
/* 3B829C E00B871C 4407A000 */ mfc1 $a3, $f20
/* 3B82A0 E00B8720 44051000 */ mfc1 $a1, $f2
/* 3B82A4 E00B8724 02A0202D */ daddu $a0, $s5, $zero
/* 3B82A8 E00B8728 0C080104 */ jal shim_guRotateF
/* 3B82AC E00B872C E7B80010 */ swc1 $f24, 0x10($sp)
/* 3B82B0 E00B8730 02A0202D */ daddu $a0, $s5, $zero
/* 3B82B4 E00B8734 27A50018 */ addiu $a1, $sp, 0x18
/* 3B82B8 E00B8738 0C080114 */ jal shim_guMtxCatF
/* 3B82BC E00B873C 00A0302D */ daddu $a2, $a1, $zero
/* 3B82C0 E00B8740 27A40018 */ addiu $a0, $sp, 0x18
/* 3B82C4 E00B8744 3C058007 */ lui $a1, %hi(gMatrixListPos)
/* 3B82C8 E00B8748 94A541F0 */ lhu $a1, %lo(gMatrixListPos)($a1)
/* 3B82CC E00B874C 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 3B82D0 E00B8750 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 3B82D4 E00B8754 00052980 */ sll $a1, $a1, 6
/* 3B82D8 E00B8758 00BE2821 */ addu $a1, $a1, $fp
/* 3B82DC E00B875C 0C080118 */ jal shim_guMtxF2L
/* 3B82E0 E00B8760 00452821 */ addu $a1, $v0, $a1
/* 3B82E4 E00B8764 3C06D838 */ lui $a2, 0xd838
/* 3B82E8 E00B8768 8E840000 */ lw $a0, ($s4)
/* 3B82EC E00B876C 34C60002 */ ori $a2, $a2, 2
/* 3B82F0 E00B8770 0080282D */ daddu $a1, $a0, $zero
/* 3B82F4 E00B8774 24840008 */ addiu $a0, $a0, 8
/* 3B82F8 E00B8778 AE840000 */ sw $a0, ($s4)
/* 3B82FC E00B877C 3C028007 */ lui $v0, %hi(gMatrixListPos)
/* 3B8300 E00B8780 944241F0 */ lhu $v0, %lo(gMatrixListPos)($v0)
/* 3B8304 E00B8784 3C03DA38 */ lui $v1, 0xda38
/* 3B8308 E00B8788 ACA30000 */ sw $v1, ($a1)
/* 3B830C E00B878C 24430001 */ addiu $v1, $v0, 1
/* 3B8310 E00B8790 3042FFFF */ andi $v0, $v0, 0xffff
/* 3B8314 E00B8794 00021180 */ sll $v0, $v0, 6
/* 3B8318 E00B8798 3C018007 */ lui $at, %hi(gMatrixListPos)
/* 3B831C E00B879C A42341F0 */ sh $v1, %lo(gMatrixListPos)($at)
/* 3B8320 E00B87A0 3C03800A */ lui $v1, %hi(gDisplayContext)
/* 3B8324 E00B87A4 8C63A674 */ lw $v1, %lo(gDisplayContext)($v1)
/* 3B8328 E00B87A8 005E1021 */ addu $v0, $v0, $fp
/* 3B832C E00B87AC 00621821 */ addu $v1, $v1, $v0
/* 3B8330 E00B87B0 24820008 */ addiu $v0, $a0, 8
/* 3B8334 E00B87B4 ACA30004 */ sw $v1, 4($a1)
/* 3B8338 E00B87B8 AE820000 */ sw $v0, ($s4)
/* 3B833C E00B87BC 3C02FA00 */ lui $v0, 0xfa00
/* 3B8340 E00B87C0 AC820000 */ sw $v0, ($a0)
/* 3B8344 E00B87C4 92050008 */ lbu $a1, 8($s0)
/* 3B8348 E00B87C8 24820010 */ addiu $v0, $a0, 0x10
/* 3B834C E00B87CC AE820000 */ sw $v0, ($s4)
/* 3B8350 E00B87D0 3C02DE00 */ lui $v0, 0xde00
/* 3B8354 E00B87D4 AC820008 */ sw $v0, 8($a0)
/* 3B8358 E00B87D8 3C020900 */ lui $v0, 0x900
/* 3B835C E00B87DC 24420328 */ addiu $v0, $v0, 0x328
/* 3B8360 E00B87E0 AC82000C */ sw $v0, 0xc($a0)
/* 3B8364 E00B87E4 24820018 */ addiu $v0, $a0, 0x18
/* 3B8368 E00B87E8 AE820000 */ sw $v0, ($s4)
/* 3B836C E00B87EC 24020040 */ addiu $v0, $zero, 0x40
/* 3B8370 E00B87F0 AC860010 */ sw $a2, 0x10($a0)
/* 3B8374 E00B87F4 AC820014 */ sw $v0, 0x14($a0)
/* 3B8378 E00B87F8 8FAA00A8 */ lw $t2, 0xa8($sp)
/* 3B837C E00B87FC 314300FF */ andi $v1, $t2, 0xff
/* 3B8380 E00B8800 8FAA00A0 */ lw $t2, 0xa0($sp)
/* 3B8384 E00B8804 01450018 */ mult $t2, $a1
/* 3B8388 E00B8808 8FAA00C0 */ lw $t2, 0xc0($sp)
/* 3B838C E00B880C 00031C00 */ sll $v1, $v1, 0x10
/* 3B8390 E00B8810 01431825 */ or $v1, $t2, $v1
/* 3B8394 E00B8814 8FAA00AC */ lw $t2, 0xac($sp)
/* 3B8398 E00B8818 314200FF */ andi $v0, $t2, 0xff
/* 3B839C E00B881C 00021200 */ sll $v0, $v0, 8
/* 3B83A0 E00B8820 00621825 */ or $v1, $v1, $v0
/* 3B83A4 E00B8824 00005012 */ mflo $t2
/* 3B83A8 E00B8828 000A1203 */ sra $v0, $t2, 8
/* 3B83AC E00B882C 304200FF */ andi $v0, $v0, 0xff
/* 3B83B0 E00B8830 00621825 */ or $v1, $v1, $v0
/* 3B83B4 E00B8834 AC830004 */ sw $v1, 4($a0)
.LE00B8838:
/* 3B83B8 E00B8838 8FAA00B0 */ lw $t2, 0xb0($sp)
/* 3B83BC E00B883C 26520001 */ addiu $s2, $s2, 1
/* 3B83C0 E00B8840 024A102A */ slt $v0, $s2, $t2
/* 3B83C4 E00B8844 1440FF60 */ bnez $v0, .LE00B85C8
/* 3B83C8 E00B8848 02769821 */ addu $s3, $s3, $s6
.LE00B884C:
/* 3B83CC E00B884C 26F70001 */ addiu $s7, $s7, 1
/* 3B83D0 E00B8850 00161042 */ srl $v0, $s6, 1
/* 3B83D4 E00B8854 8FAA00C4 */ lw $t2, 0xc4($sp)
/* 3B83D8 E00B8858 02E2102A */ slt $v0, $s7, $v0
/* 3B83DC E00B885C 254A0002 */ addiu $t2, $t2, 2
/* 3B83E0 E00B8860 1440FF4A */ bnez $v0, .LE00B858C
/* 3B83E4 E00B8864 AFAA00C4 */ sw $t2, 0xc4($sp)
.LE00B8868:
/* 3B83E8 E00B8868 3C06D838 */ lui $a2, 0xd838
/* 3B83EC E00B886C 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 3B83F0 E00B8870 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 3B83F4 E00B8874 34C60002 */ ori $a2, $a2, 2
/* 3B83F8 E00B8878 8C820000 */ lw $v0, ($a0)
/* 3B83FC E00B887C 24050040 */ addiu $a1, $zero, 0x40
/* 3B8400 E00B8880 0040182D */ daddu $v1, $v0, $zero
/* 3B8404 E00B8884 24420008 */ addiu $v0, $v0, 8
/* 3B8408 E00B8888 AC820000 */ sw $v0, ($a0)
/* 3B840C E00B888C AC660000 */ sw $a2, ($v1)
/* 3B8410 E00B8890 AC650004 */ sw $a1, 4($v1)
/* 3B8414 E00B8894 24430008 */ addiu $v1, $v0, 8
/* 3B8418 E00B8898 AC830000 */ sw $v1, ($a0)
/* 3B841C E00B889C 24430010 */ addiu $v1, $v0, 0x10
/* 3B8420 E00B88A0 AC460000 */ sw $a2, ($v0)
/* 3B8424 E00B88A4 AC450004 */ sw $a1, 4($v0)
/* 3B8428 E00B88A8 AC830000 */ sw $v1, ($a0)
/* 3B842C E00B88AC 3C03E700 */ lui $v1, 0xe700
/* 3B8430 E00B88B0 AC430008 */ sw $v1, 8($v0)
/* 3B8434 E00B88B4 AC40000C */ sw $zero, 0xc($v0)
/* 3B8438 E00B88B8 8FBF00EC */ lw $ra, 0xec($sp)
/* 3B843C E00B88BC 8FBE00E8 */ lw $fp, 0xe8($sp)
/* 3B8440 E00B88C0 8FB700E4 */ lw $s7, 0xe4($sp)
/* 3B8444 E00B88C4 8FB600E0 */ lw $s6, 0xe0($sp)
/* 3B8448 E00B88C8 8FB500DC */ lw $s5, 0xdc($sp)
/* 3B844C E00B88CC 8FB400D8 */ lw $s4, 0xd8($sp)
/* 3B8450 E00B88D0 8FB300D4 */ lw $s3, 0xd4($sp)
/* 3B8454 E00B88D4 8FB200D0 */ lw $s2, 0xd0($sp)
/* 3B8458 E00B88D8 8FB100CC */ lw $s1, 0xcc($sp)
/* 3B845C E00B88DC 8FB000C8 */ lw $s0, 0xc8($sp)
/* 3B8460 E00B88E0 D7B80100 */ ldc1 $f24, 0x100($sp)
/* 3B8464 E00B88E4 D7B600F8 */ ldc1 $f22, 0xf8($sp)
/* 3B8468 E00B88E8 D7B400F0 */ ldc1 $f20, 0xf0($sp)
/* 3B846C E00B88EC 03E00008 */ jr $ra

View File

@ -1,304 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00B6768
.double 0.1
.section .text
glabel waterfall_appendGfx
/* 3B7440 E00B62E0 27BDFF40 */ addiu $sp, $sp, -0xc0
/* 3B7444 E00B62E4 0080302D */ daddu $a2, $a0, $zero
/* 3B7448 E00B62E8 3C07DB06 */ lui $a3, 0xdb06
/* 3B744C E00B62EC 34E70024 */ ori $a3, $a3, 0x24
/* 3B7450 E00B62F0 27A40010 */ addiu $a0, $sp, 0x10
/* 3B7454 E00B62F4 AFB600A8 */ sw $s6, 0xa8($sp)
/* 3B7458 E00B62F8 3C160001 */ lui $s6, 1
/* 3B745C E00B62FC AFB3009C */ sw $s3, 0x9c($sp)
/* 3B7460 E00B6300 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 3B7464 E00B6304 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 3B7468 E00B6308 36D61630 */ ori $s6, $s6, 0x1630
/* 3B746C E00B630C AFBF00B0 */ sw $ra, 0xb0($sp)
/* 3B7470 E00B6310 AFB700AC */ sw $s7, 0xac($sp)
/* 3B7474 E00B6314 AFB500A4 */ sw $s5, 0xa4($sp)
/* 3B7478 E00B6318 AFB400A0 */ sw $s4, 0xa0($sp)
/* 3B747C E00B631C AFB20098 */ sw $s2, 0x98($sp)
/* 3B7480 E00B6320 AFB10094 */ sw $s1, 0x94($sp)
/* 3B7484 E00B6324 AFB00090 */ sw $s0, 0x90($sp)
/* 3B7488 E00B6328 F7B400B8 */ sdc1 $f20, 0xb8($sp)
/* 3B748C E00B632C 8E650000 */ lw $a1, ($s3)
/* 3B7490 E00B6330 8CD2000C */ lw $s2, 0xc($a2)
/* 3B7494 E00B6334 3C01E00B */ lui $at, %hi(D_E00B6768)
/* 3B7498 E00B6338 D4206768 */ ldc1 $f0, %lo(D_E00B6768)($at)
/* 3B749C E00B633C 00A0182D */ daddu $v1, $a1, $zero
/* 3B74A0 E00B6340 24A50008 */ addiu $a1, $a1, 8
/* 3B74A4 E00B6344 AE650000 */ sw $a1, ($s3)
/* 3B74A8 E00B6348 8E570014 */ lw $s7, 0x14($s2)
/* 3B74AC E00B634C 8E550024 */ lw $s5, 0x24($s2)
/* 3B74B0 E00B6350 C6540028 */ lwc1 $f20, 0x28($s2)
/* 3B74B4 E00B6354 3C02E700 */ lui $v0, 0xe700
/* 3B74B8 E00B6358 AC620000 */ sw $v0, ($v1)
/* 3B74BC E00B635C AC600004 */ sw $zero, 4($v1)
/* 3B74C0 E00B6360 ACA70000 */ sw $a3, ($a1)
/* 3B74C4 E00B6364 8CC30010 */ lw $v1, 0x10($a2)
/* 3B74C8 E00B6368 24A20008 */ addiu $v0, $a1, 8
/* 3B74CC E00B636C AE620000 */ sw $v0, ($s3)
/* 3B74D0 E00B6370 8C62001C */ lw $v0, 0x1c($v1)
/* 3B74D4 E00B6374 3C038000 */ lui $v1, 0x8000
/* 3B74D8 E00B6378 4600A521 */ cvt.d.s $f20, $f20
/* 3B74DC E00B637C 4620A502 */ mul.d $f20, $f20, $f0
/* 3B74E0 E00B6380 00000000 */ nop
/* 3B74E4 E00B6384 00431021 */ addu $v0, $v0, $v1
/* 3B74E8 E00B6388 3C03800B */ lui $v1, %hi(gCameras)
/* 3B74EC E00B638C 24631D80 */ addiu $v1, $v1, %lo(gCameras)
/* 3B74F0 E00B6390 ACA20004 */ sw $v0, 4($a1)
/* 3B74F4 E00B6394 8E450004 */ lw $a1, 4($s2)
/* 3B74F8 E00B6398 8E460008 */ lw $a2, 8($s2)
/* 3B74FC E00B639C 3C028007 */ lui $v0, %hi(gCurrentCameraID)
/* 3B7500 E00B63A0 8C427410 */ lw $v0, %lo(gCurrentCameraID)($v0)
/* 3B7504 E00B63A4 8E47000C */ lw $a3, 0xc($s2)
/* 3B7508 E00B63A8 00028880 */ sll $s1, $v0, 2
/* 3B750C E00B63AC 02228821 */ addu $s1, $s1, $v0
/* 3B7510 E00B63B0 00118880 */ sll $s1, $s1, 2
/* 3B7514 E00B63B4 02228823 */ subu $s1, $s1, $v0
/* 3B7518 E00B63B8 001110C0 */ sll $v0, $s1, 3
/* 3B751C E00B63BC 02228821 */ addu $s1, $s1, $v0
/* 3B7520 E00B63C0 001188C0 */ sll $s1, $s1, 3
/* 3B7524 E00B63C4 02238821 */ addu $s1, $s1, $v1
/* 3B7528 E00B63C8 0C080108 */ jal shim_guTranslateF
/* 3B752C E00B63CC 4620A520 */ cvt.s.d $f20, $f20
/* 3B7530 E00B63D0 27B00050 */ addiu $s0, $sp, 0x50
/* 3B7534 E00B63D4 4405A000 */ mfc1 $a1, $f20
/* 3B7538 E00B63D8 0200202D */ daddu $a0, $s0, $zero
/* 3B753C E00B63DC 00A0302D */ daddu $a2, $a1, $zero
/* 3B7540 E00B63E0 0C080110 */ jal shim_guScaleF
/* 3B7544 E00B63E4 00A0382D */ daddu $a3, $a1, $zero
/* 3B7548 E00B63E8 0200202D */ daddu $a0, $s0, $zero
/* 3B754C E00B63EC 27A50010 */ addiu $a1, $sp, 0x10
/* 3B7550 E00B63F0 0C080114 */ jal shim_guMtxCatF
/* 3B7554 E00B63F4 00A0302D */ daddu $a2, $a1, $zero
/* 3B7558 E00B63F8 27A40010 */ addiu $a0, $sp, 0x10
/* 3B755C E00B63FC 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 3B7560 E00B6400 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 3B7564 E00B6404 3C14800A */ lui $s4, %hi(gDisplayContext)
/* 3B7568 E00B6408 2694A674 */ addiu $s4, $s4, %lo(gDisplayContext)
/* 3B756C E00B640C 96050000 */ lhu $a1, ($s0)
/* 3B7570 E00B6410 8E820000 */ lw $v0, ($s4)
/* 3B7574 E00B6414 00052980 */ sll $a1, $a1, 6
/* 3B7578 E00B6418 00B62821 */ addu $a1, $a1, $s6
/* 3B757C E00B641C 0C080118 */ jal shim_guMtxF2L
/* 3B7580 E00B6420 00452821 */ addu $a1, $v0, $a1
/* 3B7584 E00B6424 3C03DA38 */ lui $v1, 0xda38
/* 3B7588 E00B6428 34630002 */ ori $v1, $v1, 2
/* 3B758C E00B642C 3C06DA38 */ lui $a2, 0xda38
/* 3B7590 E00B6430 34C60001 */ ori $a2, $a2, 1
/* 3B7594 E00B6434 0000482D */ daddu $t1, $zero, $zero
/* 3B7598 E00B6438 240F0258 */ addiu $t7, $zero, 0x258
/* 3B759C E00B643C 240C00FF */ addiu $t4, $zero, 0xff
/* 3B75A0 E00B6440 240E0400 */ addiu $t6, $zero, 0x400
/* 3B75A4 E00B6444 240BFFFF */ addiu $t3, $zero, -1
/* 3B75A8 E00B6448 240AFED4 */ addiu $t2, $zero, -0x12c
/* 3B75AC E00B644C 32B500FF */ andi $s5, $s5, 0xff
/* 3B75B0 E00B6450 8E640000 */ lw $a0, ($s3)
/* 3B75B4 E00B6454 3C014270 */ lui $at, 0x4270
/* 3B75B8 E00B6458 44812000 */ mtc1 $at, $f4
/* 3B75BC E00B645C 3C014120 */ lui $at, 0x4120
/* 3B75C0 E00B6460 44811000 */ mtc1 $at, $f2
/* 3B75C4 E00B6464 96020000 */ lhu $v0, ($s0)
/* 3B75C8 E00B6468 0080282D */ daddu $a1, $a0, $zero
/* 3B75CC E00B646C 24840008 */ addiu $a0, $a0, 8
/* 3B75D0 E00B6470 248D0020 */ addiu $t5, $a0, 0x20
/* 3B75D4 E00B6474 01A0402D */ daddu $t0, $t5, $zero
/* 3B75D8 E00B6478 2487002F */ addiu $a3, $a0, 0x2f
/* 3B75DC E00B647C AE640000 */ sw $a0, ($s3)
/* 3B75E0 E00B6480 ACA30000 */ sw $v1, ($a1)
/* 3B75E4 E00B6484 24430001 */ addiu $v1, $v0, 1
/* 3B75E8 E00B6488 3042FFFF */ andi $v0, $v0, 0xffff
/* 3B75EC E00B648C 00021180 */ sll $v0, $v0, 6
/* 3B75F0 E00B6490 A6030000 */ sh $v1, ($s0)
/* 3B75F4 E00B6494 8E830000 */ lw $v1, ($s4)
/* 3B75F8 E00B6498 00561021 */ addu $v0, $v0, $s6
/* 3B75FC E00B649C 00621821 */ addu $v1, $v1, $v0
/* 3B7600 E00B64A0 24820008 */ addiu $v0, $a0, 8
/* 3B7604 E00B64A4 ACA30004 */ sw $v1, 4($a1)
/* 3B7608 E00B64A8 AE620000 */ sw $v0, ($s3)
/* 3B760C E00B64AC 24820010 */ addiu $v0, $a0, 0x10
/* 3B7610 E00B64B0 AC860000 */ sw $a2, ($a0)
/* 3B7614 E00B64B4 AE620000 */ sw $v0, ($s3)
/* 3B7618 E00B64B8 8E230204 */ lw $v1, 0x204($s1)
/* 3B761C E00B64BC 3C02FA00 */ lui $v0, 0xfa00
/* 3B7620 E00B64C0 AC820008 */ sw $v0, 8($a0)
/* 3B7624 E00B64C4 AC830004 */ sw $v1, 4($a0)
/* 3B7628 E00B64C8 9243001B */ lbu $v1, 0x1b($s2)
/* 3B762C E00B64CC 9245001F */ lbu $a1, 0x1f($s2)
/* 3B7630 E00B64D0 92460023 */ lbu $a2, 0x23($s2)
/* 3B7634 E00B64D4 24820018 */ addiu $v0, $a0, 0x18
/* 3B7638 E00B64D8 AE620000 */ sw $v0, ($s3)
/* 3B763C E00B64DC 3C02DE00 */ lui $v0, 0xde00
/* 3B7640 E00B64E0 AC820010 */ sw $v0, 0x10($a0)
/* 3B7644 E00B64E4 3C020900 */ lui $v0, 0x900
/* 3B7648 E00B64E8 24420200 */ addiu $v0, $v0, 0x200
/* 3B764C E00B64EC AC820014 */ sw $v0, 0x14($a0)
/* 3B7650 E00B64F0 3C02DE01 */ lui $v0, 0xde01
/* 3B7654 E00B64F4 AC820018 */ sw $v0, 0x18($a0)
/* 3B7658 E00B64F8 248201A0 */ addiu $v0, $a0, 0x1a0
/* 3B765C E00B64FC AC82001C */ sw $v0, 0x1c($a0)
/* 3B7660 E00B6500 AE620000 */ sw $v0, ($s3)
/* 3B7664 E00B6504 00031E00 */ sll $v1, $v1, 0x18
/* 3B7668 E00B6508 00052C00 */ sll $a1, $a1, 0x10
/* 3B766C E00B650C 00651825 */ or $v1, $v1, $a1
/* 3B7670 E00B6510 00063200 */ sll $a2, $a2, 8
/* 3B7674 E00B6514 00661825 */ or $v1, $v1, $a2
/* 3B7678 E00B6518 00751825 */ or $v1, $v1, $s5
/* 3B767C E00B651C AC83000C */ sw $v1, 0xc($a0)
.LE00B6520:
/* 3B7680 E00B6520 A50A0000 */ sh $t2, ($t0)
/* 3B7684 E00B6524 25080010 */ addiu $t0, $t0, 0x10
/* 3B7688 E00B6528 00171940 */ sll $v1, $s7, 5
/* 3B768C E00B652C 26F70004 */ addiu $s7, $s7, 4
/* 3B7690 E00B6530 A4EFFFF3 */ sh $t7, -0xd($a3)
/* 3B7694 E00B6534 A4E0FFF5 */ sh $zero, -0xb($a3)
/* 3B7698 E00B6538 A4E3FFF9 */ sh $v1, -7($a3)
/* 3B769C E00B653C C640002C */ lwc1 $f0, 0x2c($s2)
/* 3B76A0 E00B6540 25290001 */ addiu $t1, $t1, 1
/* 3B76A4 E00B6544 A0ECFFFD */ sb $t4, -3($a3)
/* 3B76A8 E00B6548 A0ECFFFE */ sb $t4, -2($a3)
/* 3B76AC E00B654C A0ECFFFF */ sb $t4, -1($a3)
/* 3B76B0 E00B6550 A0EB0000 */ sb $t3, ($a3)
/* 3B76B4 E00B6554 4600018D */ trunc.w.s $f6, $f0
/* 3B76B8 E00B6558 44023000 */ mfc1 $v0, $f6
/* 3B76BC E00B655C 00000000 */ nop
/* 3B76C0 E00B6560 00021140 */ sll $v0, $v0, 5
/* 3B76C4 E00B6564 A4E2FFFB */ sh $v0, -5($a3)
/* 3B76C8 E00B6568 24E70010 */ addiu $a3, $a3, 0x10
/* 3B76CC E00B656C A50A0000 */ sh $t2, ($t0)
/* 3B76D0 E00B6570 C640002C */ lwc1 $f0, 0x2c($s2)
/* 3B76D4 E00B6574 25080010 */ addiu $t0, $t0, 0x10
/* 3B76D8 E00B6578 A0EB0000 */ sb $t3, ($a3)
/* 3B76DC E00B657C 256BFFEC */ addiu $t3, $t3, -0x14
/* 3B76E0 E00B6580 26520004 */ addiu $s2, $s2, 4
/* 3B76E4 E00B6584 254A0032 */ addiu $t2, $t2, 0x32
/* 3B76E8 E00B6588 46040000 */ add.s $f0, $f0, $f4
/* 3B76EC E00B658C A4E0FFF5 */ sh $zero, -0xb($a3)
/* 3B76F0 E00B6590 A4E3FFF9 */ sh $v1, -7($a3)
/* 3B76F4 E00B6594 46020002 */ mul.s $f0, $f0, $f2
/* 3B76F8 E00B6598 00000000 */ nop
/* 3B76FC E00B659C A4EEFFFB */ sh $t6, -5($a3)
/* 3B7700 E00B65A0 A0ECFFFD */ sb $t4, -3($a3)
/* 3B7704 E00B65A4 A0ECFFFE */ sb $t4, -2($a3)
/* 3B7708 E00B65A8 A0ECFFFF */ sb $t4, -1($a3)
/* 3B770C E00B65AC 4600018D */ trunc.w.s $f6, $f0
/* 3B7710 E00B65B0 44023000 */ mfc1 $v0, $f6
/* 3B7714 E00B65B4 00000000 */ nop
/* 3B7718 E00B65B8 A4E2FFF3 */ sh $v0, -0xd($a3)
/* 3B771C E00B65BC 2922000C */ slti $v0, $t1, 0xc
/* 3B7720 E00B65C0 1440FFD7 */ bnez $v0, .LE00B6520
/* 3B7724 E00B65C4 24E70010 */ addiu $a3, $a3, 0x10
/* 3B7728 E00B65C8 0120302D */ daddu $a2, $t1, $zero
/* 3B772C E00B65CC 3C07800A */ lui $a3, %hi(gMasterGfxPos)
/* 3B7730 E00B65D0 24E7A66C */ addiu $a3, $a3, %lo(gMasterGfxPos)
/* 3B7734 E00B65D4 00061040 */ sll $v0, $a2, 1
/* 3B7738 E00B65D8 0000482D */ daddu $t1, $zero, $zero
/* 3B773C E00B65DC 304400FF */ andi $a0, $v0, 0xff
/* 3B7740 E00B65E0 00042300 */ sll $a0, $a0, 0xc
/* 3B7744 E00B65E4 3042007F */ andi $v0, $v0, 0x7f
/* 3B7748 E00B65E8 00021040 */ sll $v0, $v0, 1
/* 3B774C E00B65EC 8CE30000 */ lw $v1, ($a3)
/* 3B7750 E00B65F0 24C6FFFF */ addiu $a2, $a2, -1
/* 3B7754 E00B65F4 0060282D */ daddu $a1, $v1, $zero
/* 3B7758 E00B65F8 24630008 */ addiu $v1, $v1, 8
/* 3B775C E00B65FC ACE30000 */ sw $v1, ($a3)
/* 3B7760 E00B6600 3C030100 */ lui $v1, 0x100
/* 3B7764 E00B6604 00431025 */ or $v0, $v0, $v1
/* 3B7768 E00B6608 00822025 */ or $a0, $a0, $v0
/* 3B776C E00B660C ACA40000 */ sw $a0, ($a1)
/* 3B7770 E00B6610 18C00036 */ blez $a2, .LE00B66EC
/* 3B7774 E00B6614 ACAD0004 */ sw $t5, 4($a1)
/* 3B7778 E00B6618 00E0682D */ daddu $t5, $a3, $zero
/* 3B777C E00B661C 3C0C0600 */ lui $t4, 0x600
/* 3B7780 E00B6620 240B0001 */ addiu $t3, $zero, 1
/* 3B7784 E00B6624 3C100606 */ lui $s0, 0x606
/* 3B7788 E00B6628 36100402 */ ori $s0, $s0, 0x402
/* 3B778C E00B662C 3C0F0002 */ lui $t7, 2
/* 3B7790 E00B6630 35EF0406 */ ori $t7, $t7, 0x406
/* 3B7794 E00B6634 3C0E0006 */ lui $t6, 6
/* 3B7798 E00B6638 35CE0804 */ ori $t6, $t6, 0x804
/* 3B779C E00B663C 24080004 */ addiu $t0, $zero, 4
/* 3B77A0 E00B6640 24070002 */ addiu $a3, $zero, 2
/* 3B77A4 E00B6644 240A0006 */ addiu $t2, $zero, 6
.LE00B6648:
/* 3B77A8 E00B6648 8DA40000 */ lw $a0, ($t5)
/* 3B77AC E00B664C 00092840 */ sll $a1, $t1, 1
/* 3B77B0 E00B6650 24820008 */ addiu $v0, $a0, 8
/* 3B77B4 E00B6654 14A00004 */ bnez $a1, .LE00B6668
/* 3B77B8 E00B6658 ADA20000 */ sw $v0, ($t5)
/* 3B77BC E00B665C 00091440 */ sll $v0, $t1, 0x11
/* 3B77C0 E00B6660 0802D9A4 */ j .LE00B6690
/* 3B77C4 E00B6664 34420402 */ ori $v0, $v0, 0x402
.LE00B6668:
/* 3B77C8 E00B6668 14AB0003 */ bne $a1, $t3, .LE00B6678
/* 3B77CC E00B666C 30E200FF */ andi $v0, $a3, 0xff
/* 3B77D0 E00B6670 0802D9A6 */ j .LE00B6698
/* 3B77D4 E00B6674 AC900000 */ sw $s0, ($a0)
.LE00B6678:
/* 3B77D8 E00B6678 00021400 */ sll $v0, $v0, 0x10
/* 3B77DC E00B667C 00091A80 */ sll $v1, $t1, 0xa
/* 3B77E0 E00B6680 3063FC00 */ andi $v1, $v1, 0xfc00
/* 3B77E4 E00B6684 00431025 */ or $v0, $v0, $v1
/* 3B77E8 E00B6688 310300FF */ andi $v1, $t0, 0xff
/* 3B77EC E00B668C 00431025 */ or $v0, $v0, $v1
.LE00B6690:
/* 3B77F0 E00B6690 004C1025 */ or $v0, $v0, $t4
/* 3B77F4 E00B6694 AC820000 */ sw $v0, ($a0)
.LE00B6698:
/* 3B77F8 E00B6698 14A00003 */ bnez $a1, .LE00B66A8
/* 3B77FC E00B669C 00000000 */ nop
/* 3B7800 E00B66A0 0802D9B5 */ j .LE00B66D4
/* 3B7804 E00B66A4 AC8F0004 */ sw $t7, 4($a0)
.LE00B66A8:
/* 3B7808 E00B66A8 14AB0003 */ bne $a1, $t3, .LE00B66B8
/* 3B780C E00B66AC 314200FF */ andi $v0, $t2, 0xff
/* 3B7810 E00B66B0 0802D9B5 */ j .LE00B66D4
/* 3B7814 E00B66B4 AC8E0004 */ sw $t6, 4($a0)
.LE00B66B8:
/* 3B7818 E00B66B8 00021400 */ sll $v0, $v0, 0x10
/* 3B781C E00B66BC 30E300FF */ andi $v1, $a3, 0xff
/* 3B7820 E00B66C0 00031A00 */ sll $v1, $v1, 8
/* 3B7824 E00B66C4 00431025 */ or $v0, $v0, $v1
/* 3B7828 E00B66C8 310300FF */ andi $v1, $t0, 0xff
/* 3B782C E00B66CC 00431025 */ or $v0, $v0, $v1
/* 3B7830 E00B66D0 AC820004 */ sw $v0, 4($a0)
.LE00B66D4:
/* 3B7834 E00B66D4 25080004 */ addiu $t0, $t0, 4
/* 3B7838 E00B66D8 24E70004 */ addiu $a3, $a3, 4
/* 3B783C E00B66DC 25290001 */ addiu $t1, $t1, 1
/* 3B7840 E00B66E0 0126102A */ slt $v0, $t1, $a2
/* 3B7844 E00B66E4 1440FFD8 */ bnez $v0, .LE00B6648
/* 3B7848 E00B66E8 254A0004 */ addiu $t2, $t2, 4
.LE00B66EC:
/* 3B784C E00B66EC 3C05D838 */ lui $a1, 0xd838
/* 3B7850 E00B66F0 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 3B7854 E00B66F4 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 3B7858 E00B66F8 8C620000 */ lw $v0, ($v1)
/* 3B785C E00B66FC 34A50002 */ ori $a1, $a1, 2
/* 3B7860 E00B6700 0040202D */ daddu $a0, $v0, $zero
/* 3B7864 E00B6704 24420008 */ addiu $v0, $v0, 8
/* 3B7868 E00B6708 AC620000 */ sw $v0, ($v1)
/* 3B786C E00B670C 24020040 */ addiu $v0, $zero, 0x40
/* 3B7870 E00B6710 AC850000 */ sw $a1, ($a0)
/* 3B7874 E00B6714 AC820004 */ sw $v0, 4($a0)
/* 3B7878 E00B6718 8FBF00B0 */ lw $ra, 0xb0($sp)
/* 3B787C E00B671C 8FB700AC */ lw $s7, 0xac($sp)
/* 3B7880 E00B6720 8FB600A8 */ lw $s6, 0xa8($sp)
/* 3B7884 E00B6724 8FB500A4 */ lw $s5, 0xa4($sp)
/* 3B7888 E00B6728 8FB400A0 */ lw $s4, 0xa0($sp)
/* 3B788C E00B672C 8FB3009C */ lw $s3, 0x9c($sp)
/* 3B7890 E00B6730 8FB20098 */ lw $s2, 0x98($sp)
/* 3B7894 E00B6734 8FB10094 */ lw $s1, 0x94($sp)
/* 3B7898 E00B6738 8FB00090 */ lw $s0, 0x90($sp)
/* 3B789C E00B673C D7B400B8 */ ldc1 $f20, 0xb8($sp)
/* 3B78A0 E00B6740 03E00008 */ jr $ra
/* 3B78A4 E00B6744 27BD00C0 */ addiu $sp, $sp, 0xc0
/* 3B78A8 E00B6748 00000000 */ nop
/* 3B78AC E00B674C 00000000 */ nop

View File

@ -1,109 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00B6750
.double 0.01
.section .text
glabel waterfall_main
/* 3B7160 E00B6000 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 3B7164 E00B6004 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3B7168 E00B6008 4485C000 */ mtc1 $a1, $f24
/* 3B716C E00B600C F7BA0050 */ sdc1 $f26, 0x50($sp)
/* 3B7170 E00B6010 4486D000 */ mtc1 $a2, $f26
/* 3B7174 E00B6014 AFB1002C */ sw $s1, 0x2c($sp)
/* 3B7178 E00B6018 0080882D */ daddu $s1, $a0, $zero
/* 3B717C E00B601C F7BC0058 */ sdc1 $f28, 0x58($sp)
/* 3B7180 E00B6020 4487E000 */ mtc1 $a3, $f28
/* 3B7184 E00B6024 27A40010 */ addiu $a0, $sp, 0x10
/* 3B7188 E00B6028 AFB00028 */ sw $s0, 0x28($sp)
/* 3B718C E00B602C 8FB00074 */ lw $s0, 0x74($sp)
/* 3B7190 E00B6030 3C02E00B */ lui $v0, %hi(waterfall_init)
/* 3B7194 E00B6034 24426178 */ addiu $v0, $v0, %lo(waterfall_init)
/* 3B7198 E00B6038 AFA20018 */ sw $v0, 0x18($sp)
/* 3B719C E00B603C 3C02E00B */ lui $v0, %hi(waterfall_update)
/* 3B71A0 E00B6040 24426180 */ addiu $v0, $v0, %lo(waterfall_update)
/* 3B71A4 E00B6044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3B71A8 E00B6048 3C02E00B */ lui $v0, %hi(waterfall_render)
/* 3B71AC E00B604C 2442629C */ addiu $v0, $v0, %lo(waterfall_render)
/* 3B71B0 E00B6050 AFA20020 */ sw $v0, 0x20($sp)
/* 3B71B4 E00B6054 2402005B */ addiu $v0, $zero, 0x5b
/* 3B71B8 E00B6058 AFBF0034 */ sw $ra, 0x34($sp)
/* 3B71BC E00B605C AFB20030 */ sw $s2, 0x30($sp)
/* 3B71C0 E00B6060 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3B71C4 E00B6064 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3B71C8 E00B6068 AFA00010 */ sw $zero, 0x10($sp)
/* 3B71CC E00B606C AFA00024 */ sw $zero, 0x24($sp)
/* 3B71D0 E00B6070 0C080124 */ jal shim_create_effect_instance
/* 3B71D4 E00B6074 AFA20014 */ sw $v0, 0x14($sp)
/* 3B71D8 E00B6078 2404008C */ addiu $a0, $zero, 0x8c
/* 3B71DC E00B607C 24030001 */ addiu $v1, $zero, 1
/* 3B71E0 E00B6080 0040902D */ daddu $s2, $v0, $zero
/* 3B71E4 E00B6084 0C08012C */ jal shim_general_heap_malloc
/* 3B71E8 E00B6088 AE430008 */ sw $v1, 8($s2)
/* 3B71EC E00B608C 0040182D */ daddu $v1, $v0, $zero
/* 3B71F0 E00B6090 14600003 */ bnez $v1, .LE00B60A0
/* 3B71F4 E00B6094 AE42000C */ sw $v0, 0xc($s2)
.LE00B6098:
/* 3B71F8 E00B6098 0802D826 */ j .LE00B6098
/* 3B71FC E00B609C 00000000 */ nop
.LE00B60A0:
/* 3B7200 E00B60A0 AC710000 */ sw $s1, ($v1)
/* 3B7204 E00B60A4 1E000004 */ bgtz $s0, .LE00B60B8
/* 3B7208 E00B60A8 AC600014 */ sw $zero, 0x14($v1)
/* 3B720C E00B60AC 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3B7210 E00B60B0 0802D82F */ j .LE00B60BC
/* 3B7214 E00B60B4 AC620010 */ sw $v0, 0x10($v1)
.LE00B60B8:
/* 3B7218 E00B60B8 AC700010 */ sw $s0, 0x10($v1)
.LE00B60BC:
/* 3B721C E00B60BC 0000882D */ daddu $s1, $zero, $zero
/* 3B7220 E00B60C0 3C01E00B */ lui $at, %hi(D_E00B6750)
/* 3B7224 E00B60C4 D4366750 */ ldc1 $f22, %lo(D_E00B6750)($at)
/* 3B7228 E00B60C8 3C01BFF0 */ lui $at, 0xbff0
/* 3B722C E00B60CC 4481A800 */ mtc1 $at, $f21
/* 3B7230 E00B60D0 4480A000 */ mtc1 $zero, $f20
/* 3B7234 E00B60D4 0060802D */ daddu $s0, $v1, $zero
/* 3B7238 E00B60D8 AE000024 */ sw $zero, 0x24($s0)
/* 3B723C E00B60DC E6180004 */ swc1 $f24, 4($s0)
/* 3B7240 E00B60E0 E61A0008 */ swc1 $f26, 8($s0)
/* 3B7244 E00B60E4 E61C000C */ swc1 $f28, 0xc($s0)
/* 3B7248 E00B60E8 C7A00070 */ lwc1 $f0, 0x70($sp)
/* 3B724C E00B60EC 24020014 */ addiu $v0, $zero, 0x14
/* 3B7250 E00B60F0 AE020018 */ sw $v0, 0x18($s0)
/* 3B7254 E00B60F4 24020078 */ addiu $v0, $zero, 0x78
/* 3B7258 E00B60F8 AE02001C */ sw $v0, 0x1c($s0)
/* 3B725C E00B60FC 240200FF */ addiu $v0, $zero, 0xff
/* 3B7260 E00B6100 AE020020 */ sw $v0, 0x20($s0)
/* 3B7264 E00B6104 E6000028 */ swc1 $f0, 0x28($s0)
.LE00B6108:
/* 3B7268 E00B6108 2404000A */ addiu $a0, $zero, 0xa
/* 3B726C E00B610C 0C080138 */ jal shim_rand_int
/* 3B7270 E00B6110 AE00002C */ sw $zero, 0x2c($s0)
/* 3B7274 E00B6114 44820000 */ mtc1 $v0, $f0
/* 3B7278 E00B6118 00000000 */ nop
/* 3B727C E00B611C 46800020 */ cvt.s.w $f0, $f0
/* 3B7280 E00B6120 46000021 */ cvt.d.s $f0, $f0
/* 3B7284 E00B6124 46360002 */ mul.d $f0, $f0, $f22
/* 3B7288 E00B6128 00000000 */ nop
/* 3B728C E00B612C 46340000 */ add.d $f0, $f0, $f20
/* 3B7290 E00B6130 26310001 */ addiu $s1, $s1, 1
/* 3B7294 E00B6134 2A22000C */ slti $v0, $s1, 0xc
/* 3B7298 E00B6138 46200020 */ cvt.s.d $f0, $f0
/* 3B729C E00B613C E600005C */ swc1 $f0, 0x5c($s0)
/* 3B72A0 E00B6140 1440FFF1 */ bnez $v0, .LE00B6108
/* 3B72A4 E00B6144 26100004 */ addiu $s0, $s0, 4
/* 3B72A8 E00B6148 0240102D */ daddu $v0, $s2, $zero
/* 3B72AC E00B614C 8FBF0034 */ lw $ra, 0x34($sp)
/* 3B72B0 E00B6150 8FB20030 */ lw $s2, 0x30($sp)
/* 3B72B4 E00B6154 8FB1002C */ lw $s1, 0x2c($sp)
/* 3B72B8 E00B6158 8FB00028 */ lw $s0, 0x28($sp)
/* 3B72BC E00B615C D7BC0058 */ ldc1 $f28, 0x58($sp)
/* 3B72C0 E00B6160 D7BA0050 */ ldc1 $f26, 0x50($sp)
/* 3B72C4 E00B6164 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3B72C8 E00B6168 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3B72CC E00B616C D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3B72D0 E00B6170 03E00008 */ jr $ra
/* 3B72D4 E00B6174 27BD0060 */ addiu $sp, $sp, 0x60

View File

@ -1,92 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00B6758
.double -0.1
dlabel D_E00B6760
.double 0.1
.section .text
glabel waterfall_update
/* 3B72E0 E00B6180 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3B72E4 E00B6184 AFBF0010 */ sw $ra, 0x10($sp)
/* 3B72E8 E00B6188 8C830000 */ lw $v1, ($a0)
/* 3B72EC E00B618C 8C85000C */ lw $a1, 0xc($a0)
/* 3B72F0 E00B6190 30620010 */ andi $v0, $v1, 0x10
/* 3B72F4 E00B6194 10400005 */ beqz $v0, .LE00B61AC
/* 3B72F8 E00B6198 2402FFEF */ addiu $v0, $zero, -0x11
/* 3B72FC E00B619C 00621024 */ and $v0, $v1, $v0
/* 3B7300 E00B61A0 AC820000 */ sw $v0, ($a0)
/* 3B7304 E00B61A4 24020010 */ addiu $v0, $zero, 0x10
/* 3B7308 E00B61A8 ACA20010 */ sw $v0, 0x10($a1)
.LE00B61AC:
/* 3B730C E00B61AC 8CA30010 */ lw $v1, 0x10($a1)
/* 3B7310 E00B61B0 286203E8 */ slti $v0, $v1, 0x3e8
/* 3B7314 E00B61B4 10400002 */ beqz $v0, .LE00B61C0
/* 3B7318 E00B61B8 2462FFFF */ addiu $v0, $v1, -1
/* 3B731C E00B61BC ACA20010 */ sw $v0, 0x10($a1)
.LE00B61C0:
/* 3B7320 E00B61C0 8CA20014 */ lw $v0, 0x14($a1)
/* 3B7324 E00B61C4 8CA30010 */ lw $v1, 0x10($a1)
/* 3B7328 E00B61C8 24460001 */ addiu $a2, $v0, 1
/* 3B732C E00B61CC 04610005 */ bgez $v1, .LE00B61E4
/* 3B7330 E00B61D0 ACA60014 */ sw $a2, 0x14($a1)
/* 3B7334 E00B61D4 0C080128 */ jal shim_remove_effect
/* 3B7338 E00B61D8 00000000 */ nop
/* 3B733C E00B61DC 0802D8A4 */ j .LE00B6290
/* 3B7340 E00B61E0 00000000 */ nop
.LE00B61E4:
/* 3B7344 E00B61E4 28620010 */ slti $v0, $v1, 0x10
/* 3B7348 E00B61E8 10400002 */ beqz $v0, .LE00B61F4
/* 3B734C E00B61EC 00031100 */ sll $v0, $v1, 4
/* 3B7350 E00B61F0 ACA20024 */ sw $v0, 0x24($a1)
.LE00B61F4:
/* 3B7354 E00B61F4 28C20010 */ slti $v0, $a2, 0x10
/* 3B7358 E00B61F8 10400003 */ beqz $v0, .LE00B6208
/* 3B735C E00B61FC 00061100 */ sll $v0, $a2, 4
/* 3B7360 E00B6200 2442000F */ addiu $v0, $v0, 0xf
/* 3B7364 E00B6204 ACA20024 */ sw $v0, 0x24($a1)
.LE00B6208:
/* 3B7368 E00B6208 0000202D */ daddu $a0, $zero, $zero
/* 3B736C E00B620C 00A0182D */ daddu $v1, $a1, $zero
/* 3B7370 E00B6210 3C01E00B */ lui $at, %hi(D_E00B6758)
/* 3B7374 E00B6214 D42A6758 */ ldc1 $f10, %lo(D_E00B6758)($at)
/* 3B7378 E00B6218 3C0140A0 */ lui $at, 0x40a0
/* 3B737C E00B621C 44816000 */ mtc1 $at, $f12
/* 3B7380 E00B6220 3C014014 */ lui $at, 0x4014
/* 3B7384 E00B6224 44814800 */ mtc1 $at, $f9
/* 3B7388 E00B6228 44804000 */ mtc1 $zero, $f8
/* 3B738C E00B622C 3C01E00B */ lui $at, %hi(D_E00B6760)
/* 3B7390 E00B6230 D4266760 */ ldc1 $f6, %lo(D_E00B6760)($at)
.LE00B6234:
/* 3B7394 E00B6234 C464005C */ lwc1 $f4, 0x5c($v1)
/* 3B7398 E00B6238 46002086 */ mov.s $f2, $f4
/* 3B739C E00B623C 460010A1 */ cvt.d.s $f2, $f2
/* 3B73A0 E00B6240 462A1080 */ add.d $f2, $f2, $f10
/* 3B73A4 E00B6244 C460002C */ lwc1 $f0, 0x2c($v1)
/* 3B73A8 E00B6248 46040000 */ add.s $f0, $f0, $f4
/* 3B73AC E00B624C 462010A0 */ cvt.s.d $f2, $f2
/* 3B73B0 E00B6250 E460002C */ swc1 $f0, 0x2c($v1)
/* 3B73B4 E00B6254 4602603C */ c.lt.s $f12, $f2
/* 3B73B8 E00B6258 00000000 */ nop
/* 3B73BC E00B625C 45000008 */ bc1f .LE00B6280
/* 3B73C0 E00B6260 E462005C */ swc1 $f2, 0x5c($v1)
/* 3B73C4 E00B6264 460010A1 */ cvt.d.s $f2, $f2
/* 3B73C8 E00B6268 46224001 */ sub.d $f0, $f8, $f2
/* 3B73CC E00B626C 46260002 */ mul.d $f0, $f0, $f6
/* 3B73D0 E00B6270 00000000 */ nop
/* 3B73D4 E00B6274 46201080 */ add.d $f2, $f2, $f0
/* 3B73D8 E00B6278 462010A0 */ cvt.s.d $f2, $f2
/* 3B73DC E00B627C E462005C */ swc1 $f2, 0x5c($v1)
.LE00B6280:
/* 3B73E0 E00B6280 24840001 */ addiu $a0, $a0, 1
/* 3B73E4 E00B6284 2882000C */ slti $v0, $a0, 0xc
/* 3B73E8 E00B6288 1440FFEA */ bnez $v0, .LE00B6234
/* 3B73EC E00B628C 24630004 */ addiu $v1, $v1, 4
.LE00B6290:
/* 3B73F0 E00B6290 8FBF0010 */ lw $ra, 0x10($sp)
/* 3B73F4 E00B6294 03E00008 */ jr $ra
/* 3B73F8 E00B6298 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -4031,7 +4031,7 @@ segments:
vram: 0xE0070000 vram: 0xE0070000
subsegments: subsegments:
- [0x3740B0, c, shimmer_burst] - [0x3740B0, c, shimmer_burst]
- [0x374D80, data] - [0x374D80]
- name: effect_energy_shockwave - name: effect_energy_shockwave
dir: effects dir: effects
type: code type: code
@ -5025,7 +5025,21 @@ segments:
subsegments: subsegments:
- [0x3B7160, c, waterfall] - [0x3B7160, c, waterfall]
- [0x3B78B0] - [0x3B78B0]
- [0x3B78D0, bin] # waterfall gfx - name: effect_gfx_waterfall
dir: effects/gfx
type: code
start: 0x3B78D0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3B78D0, c, waterfall]
- start: 0x3B78D0
type: .data
name: waterfall
subsegments:
- [0x3B78D0, i4, D_09000000_3B78D0, 32, 32]
- [0x3B7AD0, gfx, D_09000200_3B7AD0]
- [0x3B7B78]
- name: effect_water_fountain - name: effect_water_fountain
dir: effects dir: effects
type: code type: code
@ -5034,9 +5048,25 @@ segments:
subsegments: subsegments:
- [0x3B7B80, c, water_fountain] - [0x3B7B80, c, water_fountain]
- [0x3B8470] - [0x3B8470]
- start: 0x3B8860 # water_fountain gfx - name: effect_gfx_water_fountain
type: bin dir: effects/gfx
align: 16 type: code
start: 0x3B8860
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3B8860, c, water_fountain]
- start: 0x3B8860
type: .data
name: water_fountain
subsegments:
- [0x3B8860, i4, D_09000000_3B8860, 32, 32]
- [0x3B8A60, vtx, D_09000200_3B8A60]
- [0x3B8AA0, vtx, D_09000240_3B8AA0]
- [0x3B8AE0, gfx, D_09000280_3B8AE0]
- [0x3B8B88, gfx, D_09000328_3B8B88]
- [0x3B8BA8, gfx, D_09000348_3B8BA8]
- [0x3B8BC8]
- name: effect_underwater - name: effect_underwater
dir: effects dir: effects
type: code type: code