mirror of
https://github.com/pmret/papermario.git
synced 2024-11-08 12:02:30 +01:00
[Effects] A few functions (#850)
* [Effects] A few functions * Addressing PR comments
This commit is contained in:
parent
3f08935b05
commit
9da8f0a56a
@ -1061,8 +1061,34 @@ typedef struct FireBreathFXData {
|
||||
} FireBreathFXData; // size = 0x7C
|
||||
|
||||
typedef struct ShimmerBurstFXData {
|
||||
/* 0x00 */ char todo[0];
|
||||
} ShimmerBurstFXData; // size = unknown
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ f32 unk_04;
|
||||
/* 0x08 */ f32 unk_08;
|
||||
/* 0x0C */ f32 unk_0C;
|
||||
/* 0x10 */ f32 unk_10;
|
||||
/* 0x14 */ f32 unk_14;
|
||||
/* 0x18 */ f32 unk_18;
|
||||
/* 0x1C */ f32 unk_1C;
|
||||
/* 0x20 */ f32 unk_20;
|
||||
/* 0x24 */ 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 {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
@ -1685,8 +1711,20 @@ typedef struct WaterBlockFXData {
|
||||
} WaterBlockFXData; // size = unknown
|
||||
|
||||
typedef struct WaterfallFXData {
|
||||
/* 0x00 */ char todo[0];
|
||||
} WaterfallFXData; // size = unknown
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 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 {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
@ -1707,8 +1745,23 @@ typedef struct WaterFountainFXData {
|
||||
} WaterFountainFXData; // size = 0x44
|
||||
|
||||
typedef struct UnderwaterFXData {
|
||||
/* 0x00 */ char todo[0];
|
||||
} UnderwaterFXData; // size = unknown
|
||||
/* 0x000 */ s32 unk_00;
|
||||
/* 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 {
|
||||
/* 0x000 */ s32 type;
|
||||
|
@ -87,7 +87,7 @@ void ending_decals_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* 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);
|
||||
EffectInstance* shimmer_wave_main(s32, f32, f32, f32, f32, f32, s32, s32);
|
||||
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* squirt_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
|
||||
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);
|
||||
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);
|
||||
FX_MAIN(water_splash_main);
|
||||
EffectInstance* snowman_doll_main(s32, f32, f32, f32, f32, s32);
|
||||
|
@ -118,8 +118,8 @@ EffectTableEntry gEffectTable[] = {
|
||||
/* 0x58 */ FX_ENTRY(thunderbolt_ring, effect_gfx_thunderbolt_ring),
|
||||
/* 0x59 */ FX_ENTRY(squirt, _3B5340),
|
||||
/* 0x5A */ FX_ENTRY(water_block, _3B6BF0),
|
||||
/* 0x5B */ FX_ENTRY(waterfall, _3B78D0),
|
||||
/* 0x5C */ FX_ENTRY(water_fountain, _3B8860),
|
||||
/* 0x5B */ FX_ENTRY(waterfall, effect_gfx_waterfall),
|
||||
/* 0x5C */ FX_ENTRY(water_fountain, effect_gfx_water_fountain),
|
||||
/* 0x5D */ FX_ENTRY(underwater, _3B9A70),
|
||||
/* 0x5E */ FX_ENTRY(lightning_bolt, effect_gfx_lightning_bolt),
|
||||
/* 0x5F */ FX_ENTRY(water_splash, effect_gfx_water_splash),
|
||||
|
8
src/effects/gfx/water_fountain.c
Normal file
8
src/effects/gfx/water_fountain.c
Normal 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"
|
2
src/effects/gfx/waterfall.c
Normal file
2
src/effects/gfx/waterfall.c
Normal file
@ -0,0 +1,2 @@
|
||||
#include "effects/gfx/D_09000000_3B78D0.png.inc.c"
|
||||
#include "effects/gfx/D_09000200_3B7AD0.gfx.inc.c"
|
@ -1,14 +1,187 @@
|
||||
#include "common.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);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "effects/shimmer_burst", shimmer_burst_update);
|
||||
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) {
|
||||
RenderTask renderTask;
|
||||
@ -26,4 +199,61 @@ void shimmer_burst_render(EffectInstance* effect) {
|
||||
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);
|
||||
}
|
||||
|
@ -1,14 +1,135 @@
|
||||
#include "common.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);
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
return effect;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "effects/underwater", underwater_update);
|
||||
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) {
|
||||
RenderTask renderTask;
|
||||
|
@ -1,18 +1,125 @@
|
||||
#include "common.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_update(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) {
|
||||
EffectBlueprint effectBp;
|
||||
@ -98,4 +205,87 @@ void water_fountain_render(EffectInstance* effect) {
|
||||
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++);
|
||||
}
|
||||
|
@ -1,14 +1,105 @@
|
||||
#include "common.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);
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
return effect;
|
||||
}
|
||||
|
||||
INCLUDE_ASM(s32, "effects/waterfall", waterfall_update);
|
||||
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) {
|
||||
RenderTask renderTask;
|
||||
@ -25,4 +116,72 @@ void waterfall_render(EffectInstance* effect) {
|
||||
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);
|
||||
}
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -4031,7 +4031,7 @@ segments:
|
||||
vram: 0xE0070000
|
||||
subsegments:
|
||||
- [0x3740B0, c, shimmer_burst]
|
||||
- [0x374D80, data]
|
||||
- [0x374D80]
|
||||
- name: effect_energy_shockwave
|
||||
dir: effects
|
||||
type: code
|
||||
@ -5025,7 +5025,21 @@ segments:
|
||||
subsegments:
|
||||
- [0x3B7160, c, waterfall]
|
||||
- [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
|
||||
dir: effects
|
||||
type: code
|
||||
@ -5034,9 +5048,25 @@ segments:
|
||||
subsegments:
|
||||
- [0x3B7B80, c, water_fountain]
|
||||
- [0x3B8470]
|
||||
- start: 0x3B8860 # water_fountain gfx
|
||||
type: bin
|
||||
align: 16
|
||||
- name: effect_gfx_water_fountain
|
||||
dir: effects/gfx
|
||||
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
|
||||
dir: effects
|
||||
type: code
|
||||
|
Loading…
Reference in New Issue
Block a user