Matching more effects (#780)

* Matching more effects

* Deleted matched functions

* Addressed PR comments

* PR comments and remove goto

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
This commit is contained in:
mrshigure 2022-09-21 00:09:22 -07:00 committed by GitHub
parent 2e37730dd0
commit 79babd7154
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 1263 additions and 3452 deletions

View File

@ -383,7 +383,7 @@ typedef struct EmoteFXData {
/* 0x30 */ s32 unk_30; /* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34; /* 0x34 */ s32 unk_34;
/* 0x38 */ s32 unk_38; /* 0x38 */ s32 unk_38;
/* 0x3C */ s32 unk_3C; /* 0x3C */ Npc* unk_3C;
} EmoteFXData; // size = 0x40 } EmoteFXData; // size = 0x40
typedef struct SparklesFXData { typedef struct SparklesFXData {
@ -621,8 +621,20 @@ typedef struct WindyLeavesFXData {
} WindyLeavesFXData; // size = unknown } WindyLeavesFXData; // size = unknown
typedef struct FallingLeavesFXData { typedef struct FallingLeavesFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ s32 unk_00;
} FallingLeavesFXData; // size = unknown /* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ char unk_30[4];
} FallingLeavesFXData; // size = 0x34
typedef struct StarsSpreadFXData { typedef struct StarsSpreadFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ char todo[0];
@ -681,8 +693,31 @@ typedef struct DebuffFXData {
} DebuffFXData; // size = 0x40 } DebuffFXData; // size = 0x40
typedef struct GreenImpactFXData { typedef struct GreenImpactFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ u16 unk_00;
} GreenImpactFXData; // size = unknown /* 0x02 */ char unk_02[2]; // likely padding
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ f32 unk_44;
/* 0x48 */ f32 unk_48;
/* 0x4C */ s32 unk_4C;
/* 0x50 */ Color_RGB8 unk_50;
/* 0x53 */ Color_RGB8 unk_53;
/* 0x56 */ char unk_56[2]; // likely padding
} GreenImpactFXData; // size = 0x58
typedef struct RadialShimmerFXData { typedef struct RadialShimmerFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ char todo[0];
@ -692,8 +727,18 @@ typedef struct EndingDecalsFXData {
/* 0x00 */ s32 unk_00; /* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos; /* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10; /* 0x10 */ f32 unk_10;
/* 0x14 */ char todo[0]; /* 0x14 */ f32 unk_14;
} EndingDecalsFXData; // size = 0x?? /* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ u8 unk_24;
/* 0x25 */ u8 unk_25;
/* 0x26 */ u8 unk_26;
/* 0x27 */ u8 unk_27;
/* 0x28 */ u8 unk_28;
/* 0x29 */ u8 unk_29;
/* 0x2A */ char unk_2A[2];
} EndingDecalsFXData; // size = 0x2C
typedef struct LightRaysFXData { typedef struct LightRaysFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ char todo[0];
@ -1078,9 +1123,15 @@ typedef struct MotionBlurFlameFXData {
typedef struct EnergyOrbWaveFXData { typedef struct EnergyOrbWaveFXData {
/* 0x00 */ s32 unk_00; /* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos; /* 0x04 */ Vec3f pos;
/* 0x10 */ char unk_10[0x20]; /* 0x10 */ s32 unk_10;
/* 0x14 */ s32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ char unk_20[0xC];
/* 0x2C */ s32 unk_2C;
/* 0x30 */ f32 scale; /* 0x30 */ f32 scale;
} EnergyOrbWaveFXData; // size = unknown /* 0x34 */ f32 unk_34;
} EnergyOrbWaveFXData; // size = 0x38
typedef struct MerlinHouseStarsFXData { typedef struct MerlinHouseStarsFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ char todo[0];
@ -1201,8 +1252,38 @@ typedef struct StopWatchFXData {
} StopWatchFXData; // size = unknown } StopWatchFXData; // size = unknown
typedef struct Effect63FXData { typedef struct Effect63FXData {
/* 0x00 */ char todo[0]; /* 0x00 */ s32 unk_00;
} Effect63FXData; // size = unknown /* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ s32 unk_3C;
/* 0x40 */ s32 unk_40;
/* 0x44 */ s32 unk_44;
/* 0x48 */ f32 unk_48;
/* 0x4C */ f32 unk_4C;
/* 0x50 */ f32 unk_50;
/* 0x54 */ f32 unk_54;
/* 0x58 */ f32 unk_58;
/* 0x5C */ char unk_5C[4];
/* 0x60 */ f32 unk_60;
/* 0x64 */ f32 unk_64;
/* 0x68 */ f32 unk_68;
/* 0x6C */ f32 unk_6C;
/* 0x70 */ f32 unk_70;
/* 0x74 */ f32 unk_74;
/* 0x78 */ f32 unk_78;
} Effect63FXData; // size = 0x7C
typedef struct ThrowSpinyFXData { typedef struct ThrowSpinyFXData {
/* 0x00 */ s32 unk_00; /* 0x00 */ s32 unk_00;
@ -1233,11 +1314,32 @@ typedef struct ThrowSpinyFXData {
} ThrowSpinyFXData; //sizeof 0x6C } ThrowSpinyFXData; //sizeof 0x6C
typedef struct Effect65FXData { typedef struct Effect65FXData {
/* 0x00 */ char unk_00[0x34]; /* 0x000 */ s32 unk_00;
/* 0x34 */ f32 unk_34; /* 0x004 */ f32 unk_04;
/* 0x38 */ Vec3f pos; /* 0x008 */ f32 unk_08;
/* 0x44 */ char todo[0]; /* 0x00C */ f32 unk_0C;
} Effect65FXData; // size = unknown /* 0x010 */ s32 unk_10;
/* 0x014 */ s32 unk_14;
/* 0x018 */ s32 unk_18;
/* 0x01C */ s32 unk_1C;
/* 0x020 */ s32 unk_20;
/* 0x024 */ s32 unk_24;
/* 0x028 */ s32 unk_28;
/* 0x02C */ s32 unk_2C;
/* 0x030 */ s32 unk_30;
/* 0x034 */ f32 unk_34;
/* 0x038 */ Vec3f pos;
/* 0x044 */ f32 unk_44;
/* 0x048 */ f32 unk_48;
/* 0x04C */ f32 unk_4C;
/* 0x050 */ f32 unk_50[30];
/* 0x0C8 */ f32 unk_C8[30];
/* 0x140 */ f32 unk_140[30];
/* 0x1B8 */ s32 unk_1B8[30];
/* 0x230 */ s32 unk_230[30];
/* 0x2A8 */ s32 unk_2A8;
/* 0x2AC */ f32 unk_2AC[30];
} Effect65FXData; // size = 0x324
typedef struct TubbaHeartAttackFXData { typedef struct TubbaHeartAttackFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ char todo[0];
@ -1443,8 +1545,33 @@ typedef struct Effect76FXData {
} Effect76FXData; // size = unknown } Effect76FXData; // size = unknown
typedef struct FireworkRocketFXData { typedef struct FireworkRocketFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ s32 unk_00;
} FireworkRocketFXData; // size = unknown /* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ s32 unk_3C;
/* 0x40 */ s32 unk_40;
/* 0x44 */ f32 unk_44;
/* 0x48 */ f32 unk_48;
/* 0x4C */ s32 unk_4C;
/* 0x50 */ f32 unk_50[4];
/* 0x60 */ f32 unk_60[4];
/* 0x70 */ f32 unk_70[4];
/* 0x80 */ f32 unk_80[4];
/* 0x90 */ f32 unk_90[4];
/* 0xA0 */ f32 unk_A0[4];
} FireworkRocketFXData; // size = 0xB0
typedef struct PeachStarBeamInner { typedef struct PeachStarBeamInner {
/* 0x00 */ s32 flags; /* 0x00 */ s32 flags;

View File

@ -47,7 +47,7 @@ void footprint_main(f32, f32, f32, f32, f32, f32, f32, f32);
void floating_flower_main(s32, f32, f32, f32, s32); void floating_flower_main(s32, f32, f32, f32, s32);
void snowflake_main(f32, f32, f32, s32, s32); void snowflake_main(f32, f32, f32, s32, s32);
EffectInstance* star_main(s32, f32, f32, f32, f32, f32, f32, f32); EffectInstance* star_main(s32, f32, f32, f32, f32, f32, f32, f32);
void emote_main(s32, s32, f32, f32, f32, f32, f32, s32, EffectInstance**); void emote_main(s32, Npc*, f32, f32, f32, f32, f32, s32, EffectInstance**);
FX_MAIN(sparkles_main); FX_MAIN(sparkles_main);
EffectInstance* shape_spell_main(s32, f32, f32, f32, f32, f32, f32, s32); EffectInstance* shape_spell_main(s32, f32, f32, f32, f32, f32, f32, s32);
void gather_energy_pink_main(s32, f32, f32, f32, f32, s32); void gather_energy_pink_main(s32, f32, f32, f32, f32, s32);
@ -74,15 +74,15 @@ FX_MAIN(smoke_burst_main);
FX_MAIN(sweat_main); FX_MAIN(sweat_main);
void sleep_bubble_main(s32, f32, f32, f32, f32, f32, EffectInstance**); void sleep_bubble_main(s32, f32, f32, f32, f32, f32, EffectInstance**);
FX_MAIN(windy_leaves_main); FX_MAIN(windy_leaves_main);
FX_MAIN(falling_leaves_main); void falling_leaves_main(s32, f32, f32, f32);
FX_MAIN(stars_spread_main); FX_MAIN(stars_spread_main);
FX_MAIN(steam_burst_main); FX_MAIN(steam_burst_main);
FX_MAIN(stars_orbiting_main); FX_MAIN(stars_orbiting_main);
void big_snowflakes_main(s32, f32, f32, f32); void big_snowflakes_main(s32, f32, f32, f32);
EffectInstance* debuff_main(s32, f32, f32, f32); EffectInstance* debuff_main(s32, f32, f32, f32);
FX_MAIN(green_impact_main); EffectInstance* green_impact_main(s32, f32, f32, f32, f32);
FX_MAIN(radial_shimmer_main); FX_MAIN(radial_shimmer_main);
FX_MAIN(ending_decals_main); void ending_decals_main(s32, f32, f32, f32, f32, EffectInstance**);
FX_MAIN(light_rays_main); FX_MAIN(light_rays_main);
FX_MAIN(lightning_main); FX_MAIN(lightning_main);
EffectInstance* fire_breath_main(s32, f32, f32, f32, f32, f32, f32, s32, s32, s32); EffectInstance* fire_breath_main(s32, f32, f32, f32, f32, f32, f32, s32, s32, s32);
@ -112,7 +112,7 @@ FX_MAIN(quizmo_stage_main);
FX_MAIN(radiating_energy_orb_main); FX_MAIN(radiating_energy_orb_main);
FX_MAIN(quizmo_answer_main); FX_MAIN(quizmo_answer_main);
FX_MAIN(motion_blur_flame_main); FX_MAIN(motion_blur_flame_main);
FX_MAIN(energy_orb_wave_main); EffectInstance* energy_orb_wave_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(merlin_house_stars_main); FX_MAIN(merlin_house_stars_main);
FX_MAIN(quizmo_audience_main); FX_MAIN(quizmo_audience_main);
EffectInstance* butterflies_main(s32, f32, f32, f32); EffectInstance* butterflies_main(s32, f32, f32, f32);
@ -129,9 +129,9 @@ FX_MAIN(water_splash_main);
FX_MAIN(snowman_doll_main); FX_MAIN(snowman_doll_main);
FX_MAIN(fright_jar_main); FX_MAIN(fright_jar_main);
FX_MAIN(stop_watch_main); FX_MAIN(stop_watch_main);
FX_MAIN(fx_63_main); EffectInstance* fx_63_main(s32, f32, f32, f32, f32, f32, f32, f32, s32, s32);
EffectInstance* throw_spiny_main(s32, f32, f32, f32, f32, f32, f32, f32, s32); EffectInstance* throw_spiny_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
FX_MAIN(fx_65_main); EffectInstance* fx_65_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(tubba_heart_attack_main); FX_MAIN(tubba_heart_attack_main);
FX_MAIN(whirlwind_main); FX_MAIN(whirlwind_main);
FX_MAIN(red_impact_main); FX_MAIN(red_impact_main);
@ -147,7 +147,7 @@ FX_MAIN(misc_particles_main);
FX_MAIN(static_status_main); FX_MAIN(static_status_main);
FX_MAIN(moving_cloud_main); FX_MAIN(moving_cloud_main);
EffectInstance* fx_75_main(s32, f32, f32, f32, f32, s32); EffectInstance* fx_75_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(firework_rocket_main); EffectInstance* firework_rocket_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
EffectInstance* peach_star_beam_main(s32, f32, f32, f32, f32, s32); EffectInstance* peach_star_beam_main(s32, f32, f32, f32, f32, s32);
EffectInstance* chapter_change_main(s32, f32, f32, f32, f32, s32); EffectInstance* chapter_change_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(ice_shard_main); FX_MAIN(ice_shard_main);

View File

@ -103,8 +103,8 @@ void blast_appendGfx(void* effect) {
dlist = D_090017B0; dlist = D_090017B0;
dlist2 = D_09001300; dlist2 = D_09001300;
temp_f4 = data->unk_20; temp_f2 = data->unk_20;
temp_f2 = temp_f4; temp_f4 = temp_f2;
alpha = (temp_f2 - temp_f4) * 256.0f; alpha = (temp_f2 - temp_f4) * 256.0f;
gDPPipeSync(gMasterGfxPos++); gDPPipeSync(gMasterGfxPos++);

View File

@ -1,14 +1,190 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern Gfx* D_E00C6C90[];
extern Gfx* D_E00C6C9C[];
void fx_63_init(EffectInstance* effect);
void fx_63_update(EffectInstance* effect);
void fx_63_render(EffectInstance* effect);
void fx_63_appendGfx(void* effect); void fx_63_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/effect_63", fx_63_main); EffectInstance* fx_63_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
f32 arg5,
f32 arg6,
f32 arg7,
s32 arg8,
s32 arg9
) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
Effect63FXData* part;
f32 randInt;
s32 numParts;
s32 i;
void fx_63_init(void) { if (arg0 == 2) {
numParts = 8;
} else {
numParts = 1;
}
bpPtr->init = fx_63_init;
bpPtr->update = fx_63_update;
bpPtr->renderWorld = fx_63_render;
bpPtr->unk_00 = 0;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_63;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data.unk_63 = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.unk_63 != NULL);
if (arg9 <= 0) {
part->unk_20 = 1000;
} else {
part->unk_20 = arg9;
}
part->unk_00 = arg0;
part->unk_24 = 0;
part->unk_1C = arg8;
part->unk_34 = 0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_10 = arg4;
part->unk_14 = arg5;
part->unk_18 = arg6;
part->unk_48 = arg7;
part->unk_60 = (part->unk_10 - part->unk_04) / arg8;
part->unk_64 = (part->unk_14 - part->unk_08) / arg8;
part->unk_68 = (part->unk_18 - part->unk_0C) / arg8;
if (arg0 != 0) {
if (arg0 == 1) {
part->unk_28 = 255;
part->unk_2C = 88;
part->unk_30 = 70;
part->unk_34 = 55;
part->unk_38 = 11;
part->unk_3C = 51;
part->unk_40 = 123;
part->unk_44 = 255;
part->unk_4C = shim_rand_int(64);
part->unk_50 = shim_rand_int(64);
part->unk_54 = 0;
part->unk_58 = 0;
part->unk_74 = 0;
part->unk_70 = 0.2f;
part->unk_6C = 0.3f;
part->unk_78 = -10.0f;
} else {
part->unk_28 = 255;
part->unk_2C = 88;
part->unk_30 = 70;
part->unk_34 = 55;
part->unk_38 = 11;
part->unk_3C = 51;
part->unk_40 = 123;
part->unk_44 = 255;
randInt = shim_rand_int(360);
for (i = 0; i < numParts; i++, part++) {
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_60 = shim_sin_deg(i * 45 + randInt) * 5.0f;
part->unk_64 = shim_cos_deg(i * 45 + randInt) * 2.0f + 3.0f;
part->unk_4C = shim_rand_int(64);
part->unk_50 = shim_rand_int(64);
part->unk_70 = 1.0f;
part->unk_6C = 1.0f;
part->unk_54 = 0;
part->unk_58 = 0;
part->unk_74 = -45.0f;
part->unk_78 = -10.0f;
}
}
}
return effect;
} }
INCLUDE_ASM(s32, "effects/effect_63", fx_63_update); void fx_63_init(EffectInstance* effect) {
}
void fx_63_update(EffectInstance* effect) {
Effect63FXData* part = effect->data.unk_63;
s32 unk_00 = part->unk_00;
s32 unk_24;
s32 i;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
part->unk_20 = 0x10;
}
if (part->unk_20 < 1000) {
part->unk_20--;
}
part->unk_24++;
if (part->unk_20 == 1 && unk_00 == 1) {
shim_load_effect(EFFECT_63);
fx_63_main(2, part->unk_04, part->unk_08, part->unk_0C, part->unk_10, part->unk_14, part->unk_18, 1.0f, 32, 32);
}
if (part->unk_20 < 0) {
shim_remove_effect(effect);
return;
}
unk_24 = part->unk_24;
switch (unk_00) {
case 0:
if (!(unk_24 & (1 | 2))) {
shim_load_effect(EFFECT_63);
fx_63_main(1, part->unk_04, part->unk_08, part->unk_0C, part->unk_10, part->unk_14, part->unk_18, 1.0f, part->unk_1C, part->unk_1C);
}
break;
case 1:
part->unk_60 *= 0.97;
part->unk_68 *= 0.97;
part->unk_04 += part->unk_60;
part->unk_74 += part->unk_78;
part->unk_0C += part->unk_68;
part->unk_64 += (1.0f - part->unk_64) * 0.02;
part->unk_70 += (1.0 - part->unk_70) * 0.05;
part->unk_6C += (1.0 - part->unk_6C) * 0.1;
part->unk_08 += part->unk_64;
break;
case 2:
for (i = 0; i < effect->numParts; i++, part++) {
part->unk_60 *= 0.9;
part->unk_64 -= 0.2;
part->unk_04 += part->unk_60;
part->unk_08 += part->unk_64;
if (part->unk_08 < 0.0f) {
part->unk_08 = 0.0f;
if (part->unk_64 < 0.0f) {
part->unk_64 *= -0.6;
}
}
part->unk_70 += (0.0f - part->unk_70) * 0.07;
part->unk_6C += (0.0f - part->unk_6C) * 0.05;
part->unk_74 += part->unk_78;
}
break;
}
}
void fx_63_render(EffectInstance* effect) { void fx_63_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;
@ -23,4 +199,62 @@ void fx_63_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2; retTask->renderMode |= RENDER_TASK_FLAG_2;
} }
INCLUDE_ASM(s32, "effects/effect_63", fx_63_appendGfx); void fx_63_appendGfx(void* effect) {
Effect63FXData* part = ((EffectInstance*)effect)->data.unk_63;
Camera* camera = &gCameras[gCurrentCameraID];
s32 unk_34 = part->unk_34;
s32 unk_00 = part->unk_00;
f32 unk_48 = part->unk_48;
Matrix4f sp18;
Matrix4f sp58;
f32 angle;
s32 tempX;
s32 tempY;
s32 i;
if (part->unk_00 != 0) {
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gDPSetPrimColor(gMasterGfxPos++, 0, 0, part->unk_28, part->unk_2C, part->unk_30, unk_34);
gDPSetEnvColor(gMasterGfxPos++, part->unk_38, part->unk_3C, part->unk_40, part->unk_44);
gSPDisplayList(gMasterGfxPos++, D_E00C6C9C[unk_00]);
for (i = 0; i < ((EffectInstance*)effect)->numParts; i++, part++) {
part->unk_4C += part->unk_54;
part->unk_50 += part->unk_58;
angle = -shim_atan2(0.0f, 0.0f, part->unk_60, part->unk_64) + part->unk_74;
part->unk_54 = shim_sin_deg(angle);
part->unk_58 = shim_cos_deg(angle);
if (part->unk_4C < 0.0f) {
part->unk_4C += 128.0f;
}
if (part->unk_50 > 128.0f) {
part->unk_50 -= 128.0f;
}
tempX = part->unk_4C * 4.0f;
tempY = part->unk_50 * 4.0f;
shim_guTranslateF(sp18, part->unk_04, part->unk_08, part->unk_0C);
shim_guScaleF(sp58, unk_48, unk_48, unk_48);
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);
shim_guScaleF(sp18, part->unk_70, part->unk_6C, 1.0f);
shim_guRotateF(sp58, part->unk_74, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetTileSize(gMasterGfxPos++, 1, tempX, tempY, (tempX + 0x3F) * 4, (tempY + 0xF) * 4);
gSPDisplayList(gMasterGfxPos++, D_E00C6C90[unk_00]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
}

View File

@ -1,14 +1,190 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
void fx_65_init(EffectInstance* effect);
void fx_65_update(EffectInstance* effect);
void fx_65_render(EffectInstance* effect);
void fx_65_appendGfx(void* effect); void fx_65_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/effect_65", fx_65_main); EffectInstance* fx_65_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
s32 arg5
) {
EffectBlueprint bp;
EffectInstance* effect;
Effect65FXData* data;
s32 numParts = 1;
s32 i;
void fx_65_init(void) { bp.init = fx_65_init;
bp.update = fx_65_update;
bp.renderWorld = fx_65_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_65;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.unk_65 = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.unk_65 != NULL);
data->unk_00 = arg0;
data->unk_14 = 0;
if (arg5 <= 0) {
data->unk_10 = 1000;
} else {
data->unk_10 = arg5;
}
data->unk_04 = arg1;
data->unk_08 = arg2;
data->unk_0C = arg3;
data->unk_34 = arg4;
switch (arg0) {
case 0:
data->unk_18 = 255;
data->unk_1C = 255;
data->unk_20 = 255;
data->unk_28 = 225;
data->unk_2C = 225;
data->unk_30 = 225;
data->unk_24 = 255;
break;
case 1:
data->unk_18 = 255;
data->unk_1C = 245;
data->unk_20 = 230;
data->unk_28 = 45;
data->unk_2C = 35;
data->unk_30 = 15;
data->unk_24 = 255;
break;
case 2:
data->unk_18 = 255;
data->unk_1C = 0;
data->unk_20 = 0;
data->unk_28 = 155;
data->unk_2C = 125;
data->unk_30 = 125;
data->unk_24 = 255;
break;
case 3:
data->unk_18 = 255;
data->unk_1C = 255;
data->unk_20 = 255;
data->unk_28 = 255;
data->unk_2C = 65;
data->unk_30 = 20;
data->unk_24 = 255;
break;
}
data->pos.x = arg1;
data->pos.y = arg2;
data->pos.z = arg3;
for (i = 0; i < ARRAY_COUNT(data->unk_230); i++) {
data->unk_230[i] = 0;
}
data->unk_2A8 = 0;
data->unk_50[0] = arg1;
data->unk_C8[0] = arg2;
data->unk_140[0] = arg3;
data->unk_230[0] = 1;
data->unk_1B8[0] = 0;
data->unk_2AC[0] = 0;
data->unk_44 = shim_rand_int(30) + 10;
data->unk_48 = 0;
data->unk_4C = 0;
return effect;
} }
INCLUDE_ASM(s32, "effects/effect_65", fx_65_update); void fx_65_init(EffectInstance* effect) {
}
void fx_65_update(EffectInstance* effect) {
Effect65FXData* data = effect->data.unk_65;
s32 unk_00 = data->unk_00;
s32 unk_14;
f32 unk_2AC;
f32 posX;
f32 posY;
f32 posZ;
f32 tempX;
f32 tempY;
f32 tempZ;
f32 dist;
s32 idx;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
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_00 == 3) {
data->unk_44 += shim_rand_int(10) - 5;
data->unk_48 += shim_rand_int(10) - 5;
data->pos.x += data->unk_44;
data->pos.y += data->unk_48;
data->pos.z += data->unk_4C;
}
idx = data->unk_2A8 % 30;
posX = data->pos.x;
posY = data->pos.y;
posZ = data->pos.z;
tempX = data->unk_50[idx];
tempY = data->unk_C8[idx];
tempZ = data->unk_140[idx];
if ((posX != tempX) || (posY != tempY) || (posZ != tempZ)) {
unk_2AC = data->unk_2AC[idx];
data->unk_2A8++;
if (data->unk_2A8 >= 30) {
data->unk_2A8 = 0;
}
idx = data->unk_2A8;
data->unk_230[idx] = 1;
data->unk_50[idx] = posX;
data->unk_C8[idx] = posY;
data->unk_140[idx] = posZ;
data->unk_1B8[idx] = unk_14;
dist = SQ(posX - tempX) + SQ(posY - tempY) + SQ(posZ - tempZ);
if (dist != 0.0f) {
dist = shim_sqrtf(dist);
}
data->unk_2AC[idx] = unk_2AC + dist;
}
}
void fx_65_render(EffectInstance* effect) { void fx_65_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;

View File

@ -44,15 +44,42 @@ s8 D_E0020D94[] = {
64, 0, 0, 32, 0, 32, 0, 0, 64, 0, 32, 32, 0, 64, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 32, 0, 32, 0, 0, 64, 0, 32, 32, 0, 64, 0, 32, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
}; };
void func_E0020000(EmoteFXData* part, s32 arg1);
void emote_init(EffectInstance* effect); void emote_init(EffectInstance* effect);
void emote_update(EffectInstance* effect); void emote_update(EffectInstance* effect);
void emote_render(EffectInstance* effect); void emote_render(EffectInstance* effect);
void emote_appendGfx(void* effect); void emote_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/emote", func_E0020000); void func_E0020000(EmoteFXData* part, s32 arg1) {
f32 unk_1C = part->unk_1C;
f32 unk_20 = part->unk_20;
Npc* npc = part->unk_3C;
Matrix4f sp18;
f32 sin;
f32 cos;
void emote_main(s32 arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, s32 arg7, EffectInstance** arg8) { sin = shim_sin_deg(gCameras[gCurrentCameraID].currentYaw);
cos = shim_cos_deg(gCameras[gCurrentCameraID].currentYaw);
shim_guRotateF(sp18, -(unk_1C - 20.0f + arg1 * 20), sin, 0.0f, -cos);
if (npc == PTR_LIST_END) {
part->unk_04 = gPlayerStatus.position.x + part->unk_10 + sp18[1][0] * (unk_20 + 16.0f);
part->unk_08 = gPlayerStatus.position.y + part->unk_14 + sp18[1][1] * (unk_20 + 16.0f);
part->unk_0C = gPlayerStatus.position.z + part->unk_18 + sp18[1][2] * (unk_20 + 16.0f);
} else if (npc != NULL) {
part->unk_04 = npc->pos.x + part->unk_10 + sp18[1][0] * (unk_20 + 16.0f);
part->unk_08 = npc->pos.y + part->unk_14 + sp18[1][1] * (unk_20 + 16.0f);
part->unk_0C = npc->pos.z + part->unk_18 + sp18[1][2] * (unk_20 + 16.0f);
} else {
part->unk_04 = part->unk_10 + sp18[1][0] * (unk_20 + 16.0f);
part->unk_08 = part->unk_14 + sp18[1][1] * (unk_20 + 16.0f);
part->unk_0C = part->unk_18 + sp18[1][2] * (unk_20 + 16.0f);
}
part->unk_24 = unk_1C - 20.0f + arg1 * 20;
part->unk_28 = (unk_20 / 12.0f) * 0.5f + 0.5;
}
void emote_main(s32 arg0, Npc* arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, s32 arg7, EffectInstance** arg8) {
EffectBlueprint bp; EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp; EffectBlueprint* bpPtr = &bp;
EmoteFXData* data; EmoteFXData* data;
@ -142,7 +169,7 @@ void emote_update(EffectInstance* effect) {
return; return;
} }
if (part->unk_3C != 0) { if (part->unk_3C != NULL) {
if (type == 1) { if (type == 1) {
s32 i; s32 i;

View File

@ -1,14 +1,97 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern Gfx D_09001E40;
extern Gfx* D_E00685B0[];
extern Gfx* D_E00685BC[];
extern Gfx* D_E00685F4[];
void ending_decals_init(EffectInstance* effect);
void ending_decals_update(EffectInstance* effect);
void ending_decals_render(EffectInstance* effect);
void ending_decals_appendGfx(void* effect); void ending_decals_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/ending_decals", ending_decals_main); void ending_decals_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance** outEffect) {
EffectBlueprint bp;
EffectInstance* effect;
EndingDecalsFXData* data;
s32 numParts = 1;
void ending_decals_init(void) { bp.init = ending_decals_init;
bp.update = ending_decals_update;
bp.renderWorld = ending_decals_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_ENDING_DECALS;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.endingDecals = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.endingDecals != NULL);
data->unk_00 = arg0;
data->pos.x = arg1;
data->pos.y = arg2;
data->pos.z = arg3;
data->unk_18 = 255;
data->unk_14 = arg4;
data->unk_10 = arg4;
data->unk_1C = 100;
data->unk_20 = 0;
switch (arg0) {
case 0:
case 1:
data->unk_24 = 0;
data->unk_25 = 0;
data->unk_26 = 0;
data->unk_27 = 255;
data->unk_28 = 255;
data->unk_29 = 255;
break;
case 2:
default:
data->unk_24 = 255;
data->unk_25 = 255;
data->unk_26 = 255;
data->unk_27 = 225;
data->unk_28 = 255;
data->unk_29 = 235;
break;
}
*outEffect = effect;
} }
INCLUDE_ASM(s32, "effects/ending_decals", ending_decals_update); void ending_decals_init(EffectInstance* effect) {
}
void ending_decals_update(EffectInstance* effect) {
EndingDecalsFXData* data = effect->data.endingDecals;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
data->unk_1C = 10;
}
if (data->unk_1C < 11) {
data->unk_1C--;
}
data->unk_20++;
if (data->unk_1C < 0) {
shim_remove_effect(effect);
return;
}
if (data->unk_1C < 10) {
data->unk_18 -= 25;
if (data->unk_18 < 0) {
data->unk_18 = 0;
}
}
}
void ending_decals_render(EffectInstance* effect) { void ending_decals_render(EffectInstance* effect) {
EndingDecalsFXData* data = effect->data.endingDecals; EndingDecalsFXData* data = effect->data.endingDecals;
@ -29,4 +112,49 @@ void ending_decals_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2; retTask->renderMode |= RENDER_TASK_FLAG_2;
} }
INCLUDE_ASM(s32, "effects/ending_decals", ending_decals_appendGfx); void ending_decals_appendGfx(void* effect) {
EndingDecalsFXData* data = ((EffectInstance*)effect)->data.endingDecals;
Gfx* dlist1;
Gfx* dlist2;
u32 unk_20;
s32 alpha;
f64 temp_f64;
Matrix4f sp20;
unk_20 = data->unk_20;
dlist1 = D_E00685F4[data->unk_00];
dlist2 = D_E00685B0[data->unk_00];
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guPositionF(sp20, 0.0f, -gCameras[gCurrentCameraID].currentYaw, 0.0f, data->unk_10, data->pos.x, data->pos.y, data->pos.z);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
temp_f64 = data->unk_18;
if (unk_20 % 2 == 0) {
alpha = temp_f64 * 0.97;
} else {
alpha = temp_f64;
}
gDPSetEnvColor(gMasterGfxPos++, 26, 121, 29, 158);
gDPSetColorDither(gMasterGfxPos++, G_CD_BAYER);
gDPSetAlphaDither(gMasterGfxPos++, G_AD_PATTERN);
gSPDisplayList(gMasterGfxPos++, dlist1);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, data->unk_24, data->unk_25, data->unk_26, alpha);
gDPSetEnvColor(gMasterGfxPos++, data->unk_27, data->unk_28, data->unk_29, 0);
if (dlist2 == &D_09001E40) {
dlist2 = D_E00685BC[unk_20 % 14];
}
gSPDisplayList(gMasterGfxPos++, dlist2);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
gDPSetColorDither(gMasterGfxPos++, G_CD_DISABLE);
gDPSetAlphaDither(gMasterGfxPos++, G_AD_DISABLE);
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -1,11 +1,75 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
void energy_orb_wave_init(EffectInstance* effect);
void energy_orb_wave_update(EffectInstance* effect);
void energy_orb_wave_render(EffectInstance* effect);
void energy_orb_wave_appendGfx(void* effect); void energy_orb_wave_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/energy_orb_wave", energy_orb_wave_main); EffectInstance* energy_orb_wave_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectBlueprint bp;
EffectInstance* effect;
EnergyOrbWaveFXData* data;
s32 numParts = 1;
void energy_orb_wave_init(void) { bp.init = energy_orb_wave_init;
bp.update = energy_orb_wave_update;
bp.renderWorld = energy_orb_wave_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_ENERGY_ORB_WAVE;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.energyOrbWave = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.energyOrbWave != NULL);
data->unk_00 = arg0;
data->unk_14 = 0;
if (arg5 <= 0) {
data->unk_10 = 100;
} else {
data->unk_10 = arg5;
}
data->unk_2C = 0;
data->pos.x = arg1;
data->pos.y = arg2;
data->pos.z = arg3;
data->scale = arg4;
data->unk_18 = 0;
switch (arg0) {
case 0:
data->unk_1C = 0;
break;
case 1:
data->unk_1C = 2;
break;
case 2:
data->unk_1C = 4;
break;
case 3:
data->unk_1C = 6;
break;
case 4:
data->unk_1C = 7;
break;
case 5:
data->unk_1C = 8;
break;
case 6:
data->unk_1C = 9;
break;
default:
data->unk_1C = 10;
data->unk_34 = -(arg4 - 0.1) / arg5;
break;
}
return effect;
}
void energy_orb_wave_init(EffectInstance* effect) {
} }
INCLUDE_ASM(s32, "effects/energy_orb_wave", energy_orb_wave_update); INCLUDE_ASM(s32, "effects/energy_orb_wave", energy_orb_wave_update);

View File

@ -1,14 +1,110 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern Gfx D_09001100[];
extern Gfx D_090011B0[];
void falling_leaves_init(EffectInstance* effect);
void falling_leaves_render(EffectInstance* effect);
void falling_leaves_update(EffectInstance* effect);
void falling_leaves_appendGfx(void* effect); void falling_leaves_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/falling_leaves", falling_leaves_main); void falling_leaves_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) {
EffectBlueprint bp;
EffectInstance* effect;
FallingLeavesFXData* part;
s32 numParts = 5;
s32 i;
void falling_leaves_init(void) { bp.init = falling_leaves_init;
bp.update = falling_leaves_update;
bp.renderWorld = falling_leaves_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_FALLING_LEAVES;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
part = effect->data.fallingLeaves = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.fallingLeaves != NULL);
part->unk_00 = arg0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_28 = 100;
part->unk_2C = 0;
part->unk_24 = 0;
part++;
for (i = 1; i < numParts; i++, part++) {
part->unk_04 = shim_rand_int(30) - 15;
part->unk_08 = 0;
part->unk_0C = shim_rand_int(30) - 15;
part->unk_18 = shim_rand_int(360);
part->unk_20 = shim_rand_int(360);
part->unk_1C = shim_rand_int(100) / 10;
part->unk_10 = 0;
part->unk_14 = 0;
}
} }
INCLUDE_ASM(s32, "effects/falling_leaves", falling_leaves_update); void falling_leaves_init(EffectInstance* effect) {
}
void falling_leaves_update(EffectInstance* effect) {
FallingLeavesFXData* part = effect->data.fallingLeaves;
s32 unk_00 = part->unk_00;
s32 unk_28;
f32 temp;
s32 i;
if (part->unk_2C - 5 < 10U && unk_00 == 0 && gPlayerStatus.actionState == ACTION_STATE_IDLE) {
return;
}
part->unk_28--;
part->unk_2C++;
if (part->unk_2C > 324000) {
part->unk_2C = 256;
}
unk_28 = part->unk_28;
if (unk_28 < 0) {
shim_remove_effect(effect);
return;
}
if (part->unk_2C < 10) {
part->unk_24 += (255 - part->unk_24) * 0.3;
}
if (unk_28 < 10) {
part->unk_24 *= 0.8;
}
part++;
for (i = 1; i < effect->numParts; i++, part++) {
temp = shim_sin_deg(2.0f * part->unk_18) * 0.2;
part->unk_14 += -0.05f;
part->unk_10 += temp;
if (unk_00 == 0) {
part->unk_10 *= 0.94;
part->unk_14 *= shim_sin_deg(part->unk_18) * 0.05 + 0.95;
} else {
part->unk_14 += -0.05f;
part->unk_10 *= 0.92;
}
part->unk_1C += shim_rand_int(50) - 25.0f;
part->unk_18 += shim_sin_deg(part->unk_1C) * 10.0f;
part->unk_20 += shim_cos_deg(part->unk_1C * 0.5f) * 10.0f;
part->unk_04 += part->unk_10;
part->unk_08 += part->unk_14;
}
}
void falling_leaves_render(EffectInstance* effect) { void falling_leaves_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;
@ -23,4 +119,33 @@ void falling_leaves_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2; retTask->renderMode |= RENDER_TASK_FLAG_2;
} }
INCLUDE_ASM(s32, "effects/falling_leaves", falling_leaves_appendGfx); void falling_leaves_appendGfx(void* effect) {
FallingLeavesFXData* part = ((EffectInstance*)effect)->data.fallingLeaves;
Matrix4f sp18;
Matrix4f sp58;
Matrix4f sp98;
s32 i;
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, D_09001100);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 20, 100, 20, part->unk_24);
shim_guTranslateF(sp18, part->unk_04, part->unk_08, part->unk_0C);
shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp98);
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
shim_guTranslateF(sp58, part->unk_04, part->unk_08, part->unk_0C);
shim_guMtxCatF(sp58, sp98, sp18);
shim_guRotateF(sp58, part->unk_18, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guRotateF(sp58, part->unk_20, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_090011B0);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}

View File

@ -1,14 +1,135 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
void firework_rocket_init(EffectInstance* effect);
void firework_rocket_render(EffectInstance* effect);
void firework_rocket_update(EffectInstance* effect);
void firework_rocket_appendGfx(void* effect); void firework_rocket_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/firework_rocket", firework_rocket_main); EffectInstance* firework_rocket_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, s32 arg8) {
EffectBlueprint bp;
EffectInstance* effect;
FireworkRocketFXData* data;
s32 numParts = 1;
s32 i;
void firework_rocket_init(void) { bp.init = firework_rocket_init;
bp.update = firework_rocket_update;
bp.renderWorld = firework_rocket_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_FIREWORK_ROCKET;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.fireworkRocket = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.fireworkRocket != NULL);
data->unk_00 = arg0;
data->unk_20 = 0;
if (arg8 <= 0) {
data->unk_1C = 1000;
} else {
data->unk_1C = arg8 + 32;
}
data->unk_4C = 0;
data->unk_30 = 255;
data->unk_04 = arg1;
data->unk_08 = arg2;
data->unk_0C = arg3;
data->unk_44 = 0;
data->unk_10 = arg4;
data->unk_14 = arg5;
data->unk_18 = arg6;
data->unk_48 = arg7;
data->unk_2C = 100;
data->unk_38 = 100;
data->unk_24 = 255;
data->unk_28 = 255;
data->unk_34 = 255;
data->unk_3C = 150;
data->unk_40 = 255;
for (i = 0; i < 4; i++) {
data->unk_50[i] = data->unk_04;
data->unk_60[i] = data->unk_08 - 1000.0f;
data->unk_70[i] = data->unk_0C;
data->unk_80[i] = 0;
data->unk_90[i] = 0;
data->unk_A0[i] = 0;
}
return effect;
} }
INCLUDE_ASM(s32, "effects/firework_rocket", firework_rocket_update); void firework_rocket_init(EffectInstance* effect) {
}
void firework_rocket_update(EffectInstance* effect) {
FireworkRocketFXData* data = effect->data.fireworkRocket;
f32 factor;
s32 unk_20;
s32 i;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
data->unk_1C = 16;
}
if (data->unk_1C < 1000) {
data->unk_1C--;
}
data->unk_20++;
if (data->unk_1C < 0) {
shim_remove_effect(effect);
return;
}
unk_20 = data->unk_20;
if (data->unk_1C < 32) {
data->unk_30 = data->unk_1C * 8;
}
if (data->unk_4C == 1) {
factor = 0.95f;
data->unk_04 += data->unk_10;
data->unk_08 += data->unk_14;
data->unk_0C += data->unk_18;
data->unk_10 *= factor;
data->unk_14 *= factor;
data->unk_18 *= factor;
data->unk_44 += (data->unk_48 - data->unk_44) * 0.11;
data->unk_14 -= 0.15;
return;
}
i = unk_20 & 3;
data->unk_50[i] = data->unk_04 - data->unk_10 * (32 - unk_20);
data->unk_60[i] = data->unk_08 - data->unk_14 * (32 - unk_20)
- (80.0f - shim_sin_deg((s32) (unk_20 * 90) >> 5) * 80.0f);
data->unk_70[i] = data->unk_0C - data->unk_18 * (32 - unk_20);
data->unk_80[i] = (shim_rand_int(10) - 5) * 0.1f;
data->unk_90[i] = (shim_rand_int(10) - 5) * 0.1f;
data->unk_A0[i] = (shim_rand_int(10) - 5) * 0.1f;
for (i = 0; i < 4; i++) {
data->unk_50[i] += data->unk_80[i];
data->unk_60[i] += data->unk_90[i];
data->unk_70[i] += data->unk_A0[i];
data->unk_90[i] -= 0.15;
if (unk_20 >= 27) {
data->unk_60[i] = -1000.0f;
}
}
if (unk_20 >= 32) {
data->unk_4C = 1;
data->unk_20 = 1;
}
}
void firework_rocket_render(EffectInstance* effect) { void firework_rocket_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;

View File

@ -1,14 +1,119 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern Gfx D_09000540[];
extern Gfx* D_E0064A60[];
void green_impact_init(EffectInstance* effect);
void green_impact_update(EffectInstance* effect);
void green_impact_render(EffectInstance* effect);
void green_impact_appendGfx(void* effect); void green_impact_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/green_impact", green_impact_main); EffectInstance* green_impact_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
GreenImpactFXData* part;
s32 numParts;
s32 temp;
s32 i;
void green_impact_init(void) { if (arg0 == 0) {
numParts = 4;
} else {
temp = 1; // Required to match
numParts = temp;
}
numParts++;
bpPtr->unk_00 = 0;
bpPtr->init = green_impact_init;
bpPtr->update = green_impact_update;
bpPtr->renderWorld = green_impact_render;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_GREEN_IMPACT;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data.greenImpact = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.greenImpact != NULL);
shim_mem_clear(part, numParts * sizeof(*part));
part->unk_2C = 0;
part->unk_00 = arg0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_28 = 60;
part->unk_38 = 255;
part->unk_50.r = 0;
part->unk_50.g = 255;
part->unk_50.b = 122;
part->unk_53.r = 240;
part->unk_53.g = 255;
part->unk_53.b = 250;
part++;
for (i = 1; i < numParts; i++, part++) {
part->unk_4C = -1 + (i - 1) * (-4);
part->unk_34 = arg4;
part->unk_30 = i * 30;
}
return effect;
} }
INCLUDE_ASM(s32, "effects/green_impact", green_impact_update); void green_impact_init(EffectInstance* effect) {
}
void green_impact_update(EffectInstance* effect) {
GreenImpactFXData* part = effect->data.greenImpact;
s32 i;
part->unk_2C++;
part->unk_28--;
if (part->unk_28 < 0) {
shim_remove_effect(effect);
return;
}
if (part->unk_2C >= 8) {
part->unk_38 *= 0.8;
}
part++;
for (i = 1; i < effect->numParts; i++, part++) {
part->unk_4C++;
if (part->unk_4C >= 0) {
if (part->unk_4C == 0) {
part->unk_04 = 0;
part->unk_08 = 0;
part->unk_0C = 0;
part->unk_10 = -shim_sin_deg(part->unk_34) * 0.5;
part->unk_14 = shim_cos_deg(part->unk_34) * 0.5;
part->unk_18 = 0;
part->unk_20 = 10.0f;
part->unk_3C = 32.0f;
part->unk_40 = 32.0f;
part->unk_48 = 32.0f;
part->unk_1C = 0.5f;
part->unk_24 = 0.5f;
part->unk_44 = 32.0f;
}
part->unk_3C += part->unk_40;
part->unk_40 *= 0.9;
part->unk_44 += part->unk_48;
part->unk_1C += 0.2;
part->unk_20 += (0.1 - part->unk_20) * 0.2;
part->unk_24 += 0.2;
if (part->unk_3C > 128.0f) {
part->unk_3C = 128.0f;
}
}
}
}
void green_impact_render(EffectInstance* effect) { void green_impact_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;
@ -22,4 +127,93 @@ void green_impact_render(EffectInstance* effect) {
retTask = shim_queue_render_task(&renderTask); retTask = shim_queue_render_task(&renderTask);
} }
INCLUDE_ASM(s32, "effects/green_impact", green_impact_appendGfx); void green_impact_appendGfx(void* effect) {
GreenImpactFXData* part = ((EffectInstance*)effect)->data.greenImpact;
Gfx* dlist = D_E0064A60[part->unk_00];
Gfx* dlist2;
s32 alpha;
s32 primR;
s32 primG;
s32 primB;
s32 envR;
s32 envG;
s32 envB;
s32 primR2;
s32 primG2;
s32 primB2;
s32 envR2;
s32 envG2;
s32 envB2;
Gfx* savedGfxPos;
Gfx* savedGfxPos2;
Matrix4f sp20;
Matrix4f sp60;
s32 i;
primR = part->unk_50.r;
primG = part->unk_50.g;
primB = part->unk_50.b;
envR = part->unk_53.r;
envG = part->unk_53.g;
envB = part->unk_53.b;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, dlist);
shim_guPositionF(sp20, 0.0f, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 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);
alpha = part->unk_38;
primR2 = primR;
primG2 = primG;
primB2 = primB;
envR2 = envR;
envG2 = envG;
envB2 = envB;
savedGfxPos = gMasterGfxPos;
gMasterGfxPos++;
savedGfxPos2 = gMasterGfxPos;
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
if (part->unk_4C >= 0) {
shim_guTranslateF(sp20, part->unk_04, part->unk_08, part->unk_0C);
shim_guRotateF(sp60, part->unk_34, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guScaleF(sp60, part->unk_1C * 0.3, part->unk_20 * 0.3, part->unk_24 * 0.3);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guRotateF(sp60, part->unk_30, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
dlist2 = D_09000540;
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, 0, (s32) part->unk_3C, 252, (s32) part->unk_3C + 124);
gDPSetTileSize(gMasterGfxPos++, 1, 0, (s32) part->unk_44, 124, (s32) part->unk_44 + 124);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, dlist2);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
gSPEndDisplayList(gMasterGfxPos++);
gSPBranchList(savedGfxPos, gMasterGfxPos);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primR2, primG2, primB2, alpha);
gDPSetEnvColor(gMasterGfxPos++, envR2, envG2, envB2, 0);
gSPClearGeometryMode(gMasterGfxPos++, G_CULL_BOTH);
gSPSetGeometryMode(gMasterGfxPos++, G_CULL_FRONT);
gSPDisplayList(gMasterGfxPos++, savedGfxPos2);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primR, primG, primB, alpha);
gDPSetEnvColor(gMasterGfxPos++, envR, envG, envB, 0);
gSPClearGeometryMode(gMasterGfxPos++, G_CULL_BOTH);
gSPSetGeometryMode(gMasterGfxPos++, G_CULL_BACK);
gSPDisplayList(gMasterGfxPos++, savedGfxPos2);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}

View File

@ -64,7 +64,7 @@ EffectInstance* tattle_window_main(s32 arg0, f32 x, f32 y, f32 z, f32 arg4, s32
part->unk_00 = arg0; part->unk_00 = arg0;
part->unk_14 = 0; part->unk_14 = 0;
if (arg5 <= 0) { if (arg5 <= 0) {
part->unk_10 = 0x3E8; part->unk_10 = 1000;
} else { } else {
part->unk_10 = arg5; part->unk_10 = arg5;
} }

View File

@ -1,320 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel fx_63_appendGfx
/* 3CD190 E00C67B0 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 3CD194 E00C67B4 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 3CD198 E00C67B8 27BDFF00 */ addiu $sp, $sp, -0x100
/* 3CD19C E00C67BC AFA40100 */ sw $a0, 0x100($sp)
/* 3CD1A0 E00C67C0 8FAA0100 */ lw $t2, 0x100($sp)
/* 3CD1A4 E00C67C4 3C04800B */ lui $a0, %hi(gCameras)
/* 3CD1A8 E00C67C8 24841D80 */ addiu $a0, $a0, %lo(gCameras)
/* 3CD1AC E00C67CC AFBF00CC */ sw $ra, 0xcc($sp)
/* 3CD1B0 E00C67D0 AFBE00C8 */ sw $fp, 0xc8($sp)
/* 3CD1B4 E00C67D4 AFB700C4 */ sw $s7, 0xc4($sp)
/* 3CD1B8 E00C67D8 AFB600C0 */ sw $s6, 0xc0($sp)
/* 3CD1BC E00C67DC AFB500BC */ sw $s5, 0xbc($sp)
/* 3CD1C0 E00C67E0 AFB400B8 */ sw $s4, 0xb8($sp)
/* 3CD1C4 E00C67E4 AFB300B4 */ sw $s3, 0xb4($sp)
/* 3CD1C8 E00C67E8 AFB200B0 */ sw $s2, 0xb0($sp)
/* 3CD1CC E00C67EC AFB100AC */ sw $s1, 0xac($sp)
/* 3CD1D0 E00C67F0 AFB000A8 */ sw $s0, 0xa8($sp)
/* 3CD1D4 E00C67F4 F7BE00F8 */ sdc1 $f30, 0xf8($sp)
/* 3CD1D8 E00C67F8 F7BC00F0 */ sdc1 $f28, 0xf0($sp)
/* 3CD1DC E00C67FC F7BA00E8 */ sdc1 $f26, 0xe8($sp)
/* 3CD1E0 E00C6800 F7B800E0 */ sdc1 $f24, 0xe0($sp)
/* 3CD1E4 E00C6804 F7B600D8 */ sdc1 $f22, 0xd8($sp)
/* 3CD1E8 E00C6808 F7B400D0 */ sdc1 $f20, 0xd0($sp)
/* 3CD1EC E00C680C 00031080 */ sll $v0, $v1, 2
/* 3CD1F0 E00C6810 00431021 */ addu $v0, $v0, $v1
/* 3CD1F4 E00C6814 00021080 */ sll $v0, $v0, 2
/* 3CD1F8 E00C6818 00431023 */ subu $v0, $v0, $v1
/* 3CD1FC E00C681C 000218C0 */ sll $v1, $v0, 3
/* 3CD200 E00C6820 00431021 */ addu $v0, $v0, $v1
/* 3CD204 E00C6824 000210C0 */ sll $v0, $v0, 3
/* 3CD208 E00C6828 8D49000C */ lw $t1, 0xc($t2)
/* 3CD20C E00C682C 00441021 */ addu $v0, $v0, $a0
/* 3CD210 E00C6830 AFA20098 */ sw $v0, 0x98($sp)
/* 3CD214 E00C6834 8D2A0000 */ lw $t2, ($t1)
/* 3CD218 E00C6838 8D270034 */ lw $a3, 0x34($t1)
/* 3CD21C E00C683C AFAA009C */ sw $t2, 0x9c($sp)
/* 3CD220 E00C6840 C5380048 */ lwc1 $f24, 0x48($t1)
/* 3CD224 E00C6844 114000FD */ beqz $t2, .LE00C6C3C
/* 3CD228 E00C6848 3C02E700 */ lui $v0, 0xe700
/* 3CD22C E00C684C 3C05DB06 */ lui $a1, 0xdb06
/* 3CD230 E00C6850 3C08800A */ lui $t0, %hi(gMasterGfxPos)
/* 3CD234 E00C6854 2508A66C */ addiu $t0, $t0, %lo(gMasterGfxPos)
/* 3CD238 E00C6858 34A50024 */ ori $a1, $a1, 0x24
/* 3CD23C E00C685C 8D040000 */ lw $a0, ($t0)
/* 3CD240 E00C6860 0080182D */ daddu $v1, $a0, $zero
/* 3CD244 E00C6864 24840008 */ addiu $a0, $a0, 8
/* 3CD248 E00C6868 AD040000 */ sw $a0, ($t0)
/* 3CD24C E00C686C AC620000 */ sw $v0, ($v1)
/* 3CD250 E00C6870 24820008 */ addiu $v0, $a0, 8
/* 3CD254 E00C6874 AC600004 */ sw $zero, 4($v1)
/* 3CD258 E00C6878 AD020000 */ sw $v0, ($t0)
/* 3CD25C E00C687C AC850000 */ sw $a1, ($a0)
/* 3CD260 E00C6880 8FAA0100 */ lw $t2, 0x100($sp)
/* 3CD264 E00C6884 8D430010 */ lw $v1, 0x10($t2)
/* 3CD268 E00C6888 24820010 */ addiu $v0, $a0, 0x10
/* 3CD26C E00C688C AD020000 */ sw $v0, ($t0)
/* 3CD270 E00C6890 8C63001C */ lw $v1, 0x1c($v1)
/* 3CD274 E00C6894 3C02FA00 */ lui $v0, 0xfa00
/* 3CD278 E00C6898 AC820008 */ sw $v0, 8($a0)
/* 3CD27C E00C689C 3C028000 */ lui $v0, 0x8000
/* 3CD280 E00C68A0 00621821 */ addu $v1, $v1, $v0
/* 3CD284 E00C68A4 AC830004 */ sw $v1, 4($a0)
/* 3CD288 E00C68A8 9122002B */ lbu $v0, 0x2b($t1)
/* 3CD28C E00C68AC 9125002F */ lbu $a1, 0x2f($t1)
/* 3CD290 E00C68B0 91260033 */ lbu $a2, 0x33($t1)
/* 3CD294 E00C68B4 24830018 */ addiu $v1, $a0, 0x18
/* 3CD298 E00C68B8 AD030000 */ sw $v1, ($t0)
/* 3CD29C E00C68BC 3C03FB00 */ lui $v1, 0xfb00
/* 3CD2A0 E00C68C0 AC830010 */ sw $v1, 0x10($a0)
/* 3CD2A4 E00C68C4 30E300FF */ andi $v1, $a3, 0xff
/* 3CD2A8 E00C68C8 00021600 */ sll $v0, $v0, 0x18
/* 3CD2AC E00C68CC 00052C00 */ sll $a1, $a1, 0x10
/* 3CD2B0 E00C68D0 00451025 */ or $v0, $v0, $a1
/* 3CD2B4 E00C68D4 00063200 */ sll $a2, $a2, 8
/* 3CD2B8 E00C68D8 00461025 */ or $v0, $v0, $a2
/* 3CD2BC E00C68DC 00431025 */ or $v0, $v0, $v1
/* 3CD2C0 E00C68E0 AC82000C */ sw $v0, 0xc($a0)
/* 3CD2C4 E00C68E4 9122003B */ lbu $v0, 0x3b($t1)
/* 3CD2C8 E00C68E8 9125003F */ lbu $a1, 0x3f($t1)
/* 3CD2CC E00C68EC 91260043 */ lbu $a2, 0x43($t1)
/* 3CD2D0 E00C68F0 91270047 */ lbu $a3, 0x47($t1)
/* 3CD2D4 E00C68F4 3C03DE00 */ lui $v1, 0xde00
/* 3CD2D8 E00C68F8 AC830018 */ sw $v1, 0x18($a0)
/* 3CD2DC E00C68FC 00021600 */ sll $v0, $v0, 0x18
/* 3CD2E0 E00C6900 00052C00 */ sll $a1, $a1, 0x10
/* 3CD2E4 E00C6904 00451025 */ or $v0, $v0, $a1
/* 3CD2E8 E00C6908 00063200 */ sll $a2, $a2, 8
/* 3CD2EC E00C690C 00461025 */ or $v0, $v0, $a2
/* 3CD2F0 E00C6910 00471025 */ or $v0, $v0, $a3
/* 3CD2F4 E00C6914 AC820014 */ sw $v0, 0x14($a0)
/* 3CD2F8 E00C6918 8FAA009C */ lw $t2, 0x9c($sp)
/* 3CD2FC E00C691C 000A1080 */ sll $v0, $t2, 2
/* 3CD300 E00C6920 3C01E00C */ lui $at, %hi(D_E00C6C9C)
/* 3CD304 E00C6924 00220821 */ addu $at, $at, $v0
/* 3CD308 E00C6928 8C226C9C */ lw $v0, %lo(D_E00C6C9C)($at)
/* 3CD30C E00C692C AC82001C */ sw $v0, 0x1c($a0)
/* 3CD310 E00C6930 8FAA0100 */ lw $t2, 0x100($sp)
/* 3CD314 E00C6934 0000B02D */ daddu $s6, $zero, $zero
/* 3CD318 E00C6938 8D420008 */ lw $v0, 8($t2)
/* 3CD31C E00C693C 24840020 */ addiu $a0, $a0, 0x20
/* 3CD320 E00C6940 184000BE */ blez $v0, .LE00C6C3C
/* 3CD324 E00C6944 AD040000 */ sw $a0, ($t0)
/* 3CD328 E00C6948 27B50058 */ addiu $s5, $sp, 0x58
/* 3CD32C E00C694C 3C1E800A */ lui $fp, %hi(gDisplayContext)
/* 3CD330 E00C6950 27DEA674 */ addiu $fp, $fp, %lo(gDisplayContext)
/* 3CD334 E00C6954 3C178007 */ lui $s7, %hi(gMatrixListPos)
/* 3CD338 E00C6958 26F741F0 */ addiu $s7, $s7, %lo(gMatrixListPos)
/* 3CD33C E00C695C 3C140001 */ lui $s4, 1
/* 3CD340 E00C6960 36941630 */ ori $s4, $s4, 0x1630
/* 3CD344 E00C6964 0100982D */ daddu $s3, $t0, $zero
/* 3CD348 E00C6968 3C0ADA38 */ lui $t2, 0xda38
/* 3CD34C E00C696C 354A0001 */ ori $t2, $t2, 1
/* 3CD350 E00C6970 4480B000 */ mtc1 $zero, $f22
/* 3CD354 E00C6974 3C014300 */ lui $at, 0x4300
/* 3CD358 E00C6978 4481D000 */ mtc1 $at, $f26
/* 3CD35C E00C697C 3C014080 */ lui $at, 0x4080
/* 3CD360 E00C6980 4481F000 */ mtc1 $at, $f30
/* 3CD364 E00C6984 3C013F80 */ lui $at, 0x3f80
/* 3CD368 E00C6988 4481E000 */ mtc1 $at, $f28
/* 3CD36C E00C698C 25320074 */ addiu $s2, $t1, 0x74
/* 3CD370 E00C6990 AFAA00A0 */ sw $t2, 0xa0($sp)
.LE00C6994:
/* 3CD374 E00C6994 4600B306 */ mov.s $f12, $f22
/* 3CD378 E00C6998 C644FFD8 */ lwc1 $f4, -0x28($s2)
/* 3CD37C E00C699C C640FFE0 */ lwc1 $f0, -0x20($s2)
/* 3CD380 E00C69A0 8E46FFEC */ lw $a2, -0x14($s2)
/* 3CD384 E00C69A4 C642FFE4 */ lwc1 $f2, -0x1c($s2)
/* 3CD388 E00C69A8 46002100 */ add.s $f4, $f4, $f0
/* 3CD38C E00C69AC C640FFDC */ lwc1 $f0, -0x24($s2)
/* 3CD390 E00C69B0 8E47FFF0 */ lw $a3, -0x10($s2)
/* 3CD394 E00C69B4 46020000 */ add.s $f0, $f0, $f2
/* 3CD398 E00C69B8 4600B386 */ mov.s $f14, $f22
/* 3CD39C E00C69BC E644FFD8 */ swc1 $f4, -0x28($s2)
/* 3CD3A0 E00C69C0 0C080148 */ jal shim_atan2
/* 3CD3A4 E00C69C4 E640FFDC */ swc1 $f0, -0x24($s2)
/* 3CD3A8 E00C69C8 C6420000 */ lwc1 $f2, ($s2)
/* 3CD3AC E00C69CC 46000507 */ neg.s $f20, $f0
/* 3CD3B0 E00C69D0 4602A500 */ add.s $f20, $f20, $f2
/* 3CD3B4 E00C69D4 0C080140 */ jal shim_sin_deg
/* 3CD3B8 E00C69D8 4600A306 */ mov.s $f12, $f20
/* 3CD3BC E00C69DC 4600A306 */ mov.s $f12, $f20
/* 3CD3C0 E00C69E0 0C080144 */ jal shim_cos_deg
/* 3CD3C4 E00C69E4 E640FFE0 */ swc1 $f0, -0x20($s2)
/* 3CD3C8 E00C69E8 C642FFD8 */ lwc1 $f2, -0x28($s2)
/* 3CD3CC E00C69EC 4616103C */ c.lt.s $f2, $f22
/* 3CD3D0 E00C69F0 00000000 */ nop
/* 3CD3D4 E00C69F4 45000003 */ bc1f .LE00C6A04
/* 3CD3D8 E00C69F8 E640FFE4 */ swc1 $f0, -0x1c($s2)
/* 3CD3DC E00C69FC 461A1000 */ add.s $f0, $f2, $f26
/* 3CD3E0 E00C6A00 E640FFD8 */ swc1 $f0, -0x28($s2)
.LE00C6A04:
/* 3CD3E4 E00C6A04 C640FFDC */ lwc1 $f0, -0x24($s2)
/* 3CD3E8 E00C6A08 4600D03C */ c.lt.s $f26, $f0
/* 3CD3EC E00C6A0C 00000000 */ nop
/* 3CD3F0 E00C6A10 45000003 */ bc1f .LE00C6A20
/* 3CD3F4 E00C6A14 00000000 */ nop
/* 3CD3F8 E00C6A18 461A0001 */ sub.s $f0, $f0, $f26
/* 3CD3FC E00C6A1C E640FFDC */ swc1 $f0, -0x24($s2)
.LE00C6A20:
/* 3CD400 E00C6A20 C642FFD8 */ lwc1 $f2, -0x28($s2)
/* 3CD404 E00C6A24 461E1082 */ mul.s $f2, $f2, $f30
/* 3CD408 E00C6A28 00000000 */ nop
/* 3CD40C E00C6A2C 27A40018 */ addiu $a0, $sp, 0x18
/* 3CD410 E00C6A30 C640FFDC */ lwc1 $f0, -0x24($s2)
/* 3CD414 E00C6A34 461E0002 */ mul.s $f0, $f0, $f30
/* 3CD418 E00C6A38 00000000 */ nop
/* 3CD41C E00C6A3C 8E45FF90 */ lw $a1, -0x70($s2)
/* 3CD420 E00C6A40 8E46FF94 */ lw $a2, -0x6c($s2)
/* 3CD424 E00C6A44 8E47FF98 */ lw $a3, -0x68($s2)
/* 3CD428 E00C6A48 4600118D */ trunc.w.s $f6, $f2
/* 3CD42C E00C6A4C 44103000 */ mfc1 $s0, $f6
/* 3CD430 E00C6A50 4600018D */ trunc.w.s $f6, $f0
/* 3CD434 E00C6A54 44113000 */ mfc1 $s1, $f6
/* 3CD438 E00C6A58 0C080108 */ jal shim_guTranslateF
/* 3CD43C E00C6A5C 26D60001 */ addiu $s6, $s6, 1
/* 3CD440 E00C6A60 4405C000 */ mfc1 $a1, $f24
/* 3CD444 E00C6A64 4406C000 */ mfc1 $a2, $f24
/* 3CD448 E00C6A68 4407C000 */ mfc1 $a3, $f24
/* 3CD44C E00C6A6C 0C080110 */ jal shim_guScaleF
/* 3CD450 E00C6A70 02A0202D */ daddu $a0, $s5, $zero
/* 3CD454 E00C6A74 02A0202D */ daddu $a0, $s5, $zero
/* 3CD458 E00C6A78 27A50018 */ addiu $a1, $sp, 0x18
/* 3CD45C E00C6A7C 0C080114 */ jal shim_guMtxCatF
/* 3CD460 E00C6A80 00A0302D */ daddu $a2, $a1, $zero
/* 3CD464 E00C6A84 27A40018 */ addiu $a0, $sp, 0x18
/* 3CD468 E00C6A88 96E50000 */ lhu $a1, ($s7)
/* 3CD46C E00C6A8C 8FC20000 */ lw $v0, ($fp)
/* 3CD470 E00C6A90 00052980 */ sll $a1, $a1, 6
/* 3CD474 E00C6A94 00B42821 */ addu $a1, $a1, $s4
/* 3CD478 E00C6A98 0C080118 */ jal shim_guMtxF2L
/* 3CD47C E00C6A9C 00452821 */ addu $a1, $v0, $a1
/* 3CD480 E00C6AA0 3C02DA38 */ lui $v0, 0xda38
/* 3CD484 E00C6AA4 34420002 */ ori $v0, $v0, 2
/* 3CD488 E00C6AA8 8E680000 */ lw $t0, ($s3)
/* 3CD48C E00C6AAC 96E50000 */ lhu $a1, ($s7)
/* 3CD490 E00C6AB0 0100302D */ daddu $a2, $t0, $zero
/* 3CD494 E00C6AB4 25080008 */ addiu $t0, $t0, 8
/* 3CD498 E00C6AB8 AE680000 */ sw $t0, ($s3)
/* 3CD49C E00C6ABC ACC20000 */ sw $v0, ($a2)
/* 3CD4A0 E00C6AC0 30A2FFFF */ andi $v0, $a1, 0xffff
/* 3CD4A4 E00C6AC4 00021180 */ sll $v0, $v0, 6
/* 3CD4A8 E00C6AC8 8FC30000 */ lw $v1, ($fp)
/* 3CD4AC E00C6ACC 00541021 */ addu $v0, $v0, $s4
/* 3CD4B0 E00C6AD0 00621821 */ addu $v1, $v1, $v0
/* 3CD4B4 E00C6AD4 ACC30004 */ sw $v1, 4($a2)
/* 3CD4B8 E00C6AD8 8FAA00A0 */ lw $t2, 0xa0($sp)
/* 3CD4BC E00C6ADC 27A40018 */ addiu $a0, $sp, 0x18
/* 3CD4C0 E00C6AE0 AD0A0000 */ sw $t2, ($t0)
/* 3CD4C4 E00C6AE4 8FAA0098 */ lw $t2, 0x98($sp)
/* 3CD4C8 E00C6AE8 4407E000 */ mfc1 $a3, $f28
/* 3CD4CC E00C6AEC 8D420204 */ lw $v0, 0x204($t2)
/* 3CD4D0 E00C6AF0 24A50001 */ addiu $a1, $a1, 1
/* 3CD4D4 E00C6AF4 A6E50000 */ sh $a1, ($s7)
/* 3CD4D8 E00C6AF8 AD020004 */ sw $v0, 4($t0)
/* 3CD4DC E00C6AFC 8E45FFFC */ lw $a1, -4($s2)
/* 3CD4E0 E00C6B00 8E46FFF8 */ lw $a2, -8($s2)
/* 3CD4E4 E00C6B04 25080008 */ addiu $t0, $t0, 8
/* 3CD4E8 E00C6B08 0C080110 */ jal shim_guScaleF
/* 3CD4EC E00C6B0C AE680000 */ sw $t0, ($s3)
/* 3CD4F0 E00C6B10 E7BC0010 */ swc1 $f28, 0x10($sp)
/* 3CD4F4 E00C6B14 8E450000 */ lw $a1, ($s2)
/* 3CD4F8 E00C6B18 4406B000 */ mfc1 $a2, $f22
/* 3CD4FC E00C6B1C 4407B000 */ mfc1 $a3, $f22
/* 3CD500 E00C6B20 0C080104 */ jal shim_guRotateF
/* 3CD504 E00C6B24 02A0202D */ daddu $a0, $s5, $zero
/* 3CD508 E00C6B28 02A0202D */ daddu $a0, $s5, $zero
/* 3CD50C E00C6B2C 27A50018 */ addiu $a1, $sp, 0x18
/* 3CD510 E00C6B30 0C080114 */ jal shim_guMtxCatF
/* 3CD514 E00C6B34 00A0302D */ daddu $a2, $a1, $zero
/* 3CD518 E00C6B38 27A40018 */ addiu $a0, $sp, 0x18
/* 3CD51C E00C6B3C 96E50000 */ lhu $a1, ($s7)
/* 3CD520 E00C6B40 8FC20000 */ lw $v0, ($fp)
/* 3CD524 E00C6B44 00052980 */ sll $a1, $a1, 6
/* 3CD528 E00C6B48 00B42821 */ addu $a1, $a1, $s4
/* 3CD52C E00C6B4C 0C080118 */ jal shim_guMtxF2L
/* 3CD530 E00C6B50 00452821 */ addu $a1, $v0, $a1
/* 3CD534 E00C6B54 3C06D838 */ lui $a2, 0xd838
/* 3CD538 E00C6B58 8E650000 */ lw $a1, ($s3)
/* 3CD53C E00C6B5C 96E30000 */ lhu $v1, ($s7)
/* 3CD540 E00C6B60 00A0202D */ daddu $a0, $a1, $zero
/* 3CD544 E00C6B64 24A50008 */ addiu $a1, $a1, 8
/* 3CD548 E00C6B68 24620001 */ addiu $v0, $v1, 1
/* 3CD54C E00C6B6C 3063FFFF */ andi $v1, $v1, 0xffff
/* 3CD550 E00C6B70 AE650000 */ sw $a1, ($s3)
/* 3CD554 E00C6B74 8FAA00A0 */ lw $t2, 0xa0($sp)
/* 3CD558 E00C6B78 00031980 */ sll $v1, $v1, 6
/* 3CD55C E00C6B7C AC8A0000 */ sw $t2, ($a0)
/* 3CD560 E00C6B80 A6E20000 */ sh $v0, ($s7)
/* 3CD564 E00C6B84 8FC20000 */ lw $v0, ($fp)
/* 3CD568 E00C6B88 00741821 */ addu $v1, $v1, $s4
/* 3CD56C E00C6B8C 00431021 */ addu $v0, $v0, $v1
/* 3CD570 E00C6B90 AC820004 */ sw $v0, 4($a0)
/* 3CD574 E00C6B94 24A20008 */ addiu $v0, $a1, 8
/* 3CD578 E00C6B98 32040FFF */ andi $a0, $s0, 0xfff
/* 3CD57C E00C6B9C 00042300 */ sll $a0, $a0, 0xc
/* 3CD580 E00C6BA0 AE620000 */ sw $v0, ($s3)
/* 3CD584 E00C6BA4 32220FFF */ andi $v0, $s1, 0xfff
/* 3CD588 E00C6BA8 3C03F200 */ lui $v1, 0xf200
/* 3CD58C E00C6BAC 00431025 */ or $v0, $v0, $v1
/* 3CD590 E00C6BB0 00822025 */ or $a0, $a0, $v0
/* 3CD594 E00C6BB4 2610003F */ addiu $s0, $s0, 0x3f
/* 3CD598 E00C6BB8 00108080 */ sll $s0, $s0, 2
/* 3CD59C E00C6BBC 32100FFF */ andi $s0, $s0, 0xfff
/* 3CD5A0 E00C6BC0 00108300 */ sll $s0, $s0, 0xc
/* 3CD5A4 E00C6BC4 2631000F */ addiu $s1, $s1, 0xf
/* 3CD5A8 E00C6BC8 00118880 */ sll $s1, $s1, 2
/* 3CD5AC E00C6BCC 32310FFF */ andi $s1, $s1, 0xfff
/* 3CD5B0 E00C6BD0 3C020100 */ lui $v0, 0x100
/* 3CD5B4 E00C6BD4 02228825 */ or $s1, $s1, $v0
/* 3CD5B8 E00C6BD8 02118025 */ or $s0, $s0, $s1
/* 3CD5BC E00C6BDC 3C02DE00 */ lui $v0, 0xde00
/* 3CD5C0 E00C6BE0 ACA40000 */ sw $a0, ($a1)
/* 3CD5C4 E00C6BE4 ACB00004 */ sw $s0, 4($a1)
/* 3CD5C8 E00C6BE8 ACA20008 */ sw $v0, 8($a1)
/* 3CD5CC E00C6BEC 8FAA009C */ lw $t2, 0x9c($sp)
/* 3CD5D0 E00C6BF0 34C60002 */ ori $a2, $a2, 2
/* 3CD5D4 E00C6BF4 000A1080 */ sll $v0, $t2, 2
/* 3CD5D8 E00C6BF8 3C0AE00C */ lui $t2, %hi(D_E00C6C90)
/* 3CD5DC E00C6BFC 254A6C90 */ addiu $t2, $t2, %lo(D_E00C6C90)
/* 3CD5E0 E00C6C00 004A1021 */ addu $v0, $v0, $t2
/* 3CD5E4 E00C6C04 8C430000 */ lw $v1, ($v0)
/* 3CD5E8 E00C6C08 24A20010 */ addiu $v0, $a1, 0x10
/* 3CD5EC E00C6C0C AE620000 */ sw $v0, ($s3)
/* 3CD5F0 E00C6C10 24020040 */ addiu $v0, $zero, 0x40
/* 3CD5F4 E00C6C14 ACA60010 */ sw $a2, 0x10($a1)
/* 3CD5F8 E00C6C18 ACA20014 */ sw $v0, 0x14($a1)
/* 3CD5FC E00C6C1C ACA3000C */ sw $v1, 0xc($a1)
/* 3CD600 E00C6C20 8FAA0100 */ lw $t2, 0x100($sp)
/* 3CD604 E00C6C24 2652007C */ addiu $s2, $s2, 0x7c
/* 3CD608 E00C6C28 8D420008 */ lw $v0, 8($t2)
/* 3CD60C E00C6C2C 24A50018 */ addiu $a1, $a1, 0x18
/* 3CD610 E00C6C30 02C2102A */ slt $v0, $s6, $v0
/* 3CD614 E00C6C34 1440FF57 */ bnez $v0, .LE00C6994
/* 3CD618 E00C6C38 AE650000 */ sw $a1, ($s3)
.LE00C6C3C:
/* 3CD61C E00C6C3C 8FBF00CC */ lw $ra, 0xcc($sp)
/* 3CD620 E00C6C40 8FBE00C8 */ lw $fp, 0xc8($sp)
/* 3CD624 E00C6C44 8FB700C4 */ lw $s7, 0xc4($sp)
/* 3CD628 E00C6C48 8FB600C0 */ lw $s6, 0xc0($sp)
/* 3CD62C E00C6C4C 8FB500BC */ lw $s5, 0xbc($sp)
/* 3CD630 E00C6C50 8FB400B8 */ lw $s4, 0xb8($sp)
/* 3CD634 E00C6C54 8FB300B4 */ lw $s3, 0xb4($sp)
/* 3CD638 E00C6C58 8FB200B0 */ lw $s2, 0xb0($sp)
/* 3CD63C E00C6C5C 8FB100AC */ lw $s1, 0xac($sp)
/* 3CD640 E00C6C60 8FB000A8 */ lw $s0, 0xa8($sp)
/* 3CD644 E00C6C64 D7BE00F8 */ ldc1 $f30, 0xf8($sp)
/* 3CD648 E00C6C68 D7BC00F0 */ ldc1 $f28, 0xf0($sp)
/* 3CD64C E00C6C6C D7BA00E8 */ ldc1 $f26, 0xe8($sp)
/* 3CD650 E00C6C70 D7B800E0 */ ldc1 $f24, 0xe0($sp)
/* 3CD654 E00C6C74 D7B600D8 */ ldc1 $f22, 0xd8($sp)
/* 3CD658 E00C6C78 D7B400D0 */ ldc1 $f20, 0xd0($sp)
/* 3CD65C E00C6C7C 03E00008 */ jr $ra
/* 3CD660 E00C6C80 27BD0100 */ addiu $sp, $sp, 0x100
/* 3CD664 E00C6C84 00000000 */ nop
/* 3CD668 E00C6C88 00000000 */ nop
/* 3CD66C E00C6C8C 00000000 */ nop

View File

@ -1,240 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel fx_63_main
/* 3CC9E0 E00C6000 27BDFF88 */ addiu $sp, $sp, -0x78
/* 3CC9E4 E00C6004 AFB1002C */ sw $s1, 0x2c($sp)
/* 3CC9E8 E00C6008 0080882D */ daddu $s1, $a0, $zero
/* 3CC9EC E00C600C AFB30034 */ sw $s3, 0x34($sp)
/* 3CC9F0 E00C6010 24130001 */ addiu $s3, $zero, 1
/* 3CC9F4 E00C6014 AFB5003C */ sw $s5, 0x3c($sp)
/* 3CC9F8 E00C6018 8FB50098 */ lw $s5, 0x98($sp)
/* 3CC9FC E00C601C 27A40010 */ addiu $a0, $sp, 0x10
/* 3CCA00 E00C6020 AFB20030 */ sw $s2, 0x30($sp)
/* 3CCA04 E00C6024 8FB2009C */ lw $s2, 0x9c($sp)
/* 3CCA08 E00C6028 24020002 */ addiu $v0, $zero, 2
/* 3CCA0C E00C602C AFBF0040 */ sw $ra, 0x40($sp)
/* 3CCA10 E00C6030 AFB40038 */ sw $s4, 0x38($sp)
/* 3CCA14 E00C6034 AFB00028 */ sw $s0, 0x28($sp)
/* 3CCA18 E00C6038 F7BE0070 */ sdc1 $f30, 0x70($sp)
/* 3CCA1C E00C603C F7BC0068 */ sdc1 $f28, 0x68($sp)
/* 3CCA20 E00C6040 F7BA0060 */ sdc1 $f26, 0x60($sp)
/* 3CCA24 E00C6044 F7B80058 */ sdc1 $f24, 0x58($sp)
/* 3CCA28 E00C6048 F7B60050 */ sdc1 $f22, 0x50($sp)
/* 3CCA2C E00C604C F7B40048 */ sdc1 $f20, 0x48($sp)
/* 3CCA30 E00C6050 AFA5007C */ sw $a1, 0x7c($sp)
/* 3CCA34 E00C6054 AFA60080 */ sw $a2, 0x80($sp)
/* 3CCA38 E00C6058 16220002 */ bne $s1, $v0, .LE00C6064
/* 3CCA3C E00C605C AFA70084 */ sw $a3, 0x84($sp)
/* 3CCA40 E00C6060 24130008 */ addiu $s3, $zero, 8
.LE00C6064:
/* 3CCA44 E00C6064 3C02E00C */ lui $v0, %hi(fx_63_init)
/* 3CCA48 E00C6068 24426394 */ addiu $v0, $v0, %lo(fx_63_init)
/* 3CCA4C E00C606C AFA20018 */ sw $v0, 0x18($sp)
/* 3CCA50 E00C6070 3C02E00C */ lui $v0, %hi(fx_63_update)
/* 3CCA54 E00C6074 2442639C */ addiu $v0, $v0, %lo(fx_63_update)
/* 3CCA58 E00C6078 AFA2001C */ sw $v0, 0x1c($sp)
/* 3CCA5C E00C607C 3C02E00C */ lui $v0, %hi(fx_63_render)
/* 3CCA60 E00C6080 24426768 */ addiu $v0, $v0, %lo(fx_63_render)
/* 3CCA64 E00C6084 AFA20020 */ sw $v0, 0x20($sp)
/* 3CCA68 E00C6088 24020063 */ addiu $v0, $zero, 0x63
/* 3CCA6C E00C608C AFA00010 */ sw $zero, 0x10($sp)
/* 3CCA70 E00C6090 AFA00024 */ sw $zero, 0x24($sp)
/* 3CCA74 E00C6094 0C080124 */ jal shim_create_effect_instance
/* 3CCA78 E00C6098 AFA20014 */ sw $v0, 0x14($sp)
/* 3CCA7C E00C609C 00132140 */ sll $a0, $s3, 5
/* 3CCA80 E00C60A0 00932023 */ subu $a0, $a0, $s3
/* 3CCA84 E00C60A4 00042080 */ sll $a0, $a0, 2
/* 3CCA88 E00C60A8 0040A02D */ daddu $s4, $v0, $zero
/* 3CCA8C E00C60AC 0C08012C */ jal shim_general_heap_malloc
/* 3CCA90 E00C60B0 AE930008 */ sw $s3, 8($s4)
/* 3CCA94 E00C60B4 0040802D */ daddu $s0, $v0, $zero
/* 3CCA98 E00C60B8 16000003 */ bnez $s0, .LE00C60C8
/* 3CCA9C E00C60BC AE82000C */ sw $v0, 0xc($s4)
.LE00C60C0:
/* 3CCAA0 E00C60C0 08031830 */ j .LE00C60C0
/* 3CCAA4 E00C60C4 00000000 */ nop
.LE00C60C8:
/* 3CCAA8 E00C60C8 5E400003 */ bgtzl $s2, .LE00C60D8
/* 3CCAAC E00C60CC AE120020 */ sw $s2, 0x20($s0)
/* 3CCAB0 E00C60D0 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3CCAB4 E00C60D4 AE020020 */ sw $v0, 0x20($s0)
.LE00C60D8:
/* 3CCAB8 E00C60D8 C7AA007C */ lwc1 $f10, 0x7c($sp)
/* 3CCABC E00C60DC E60A0004 */ swc1 $f10, 4($s0)
/* 3CCAC0 E00C60E0 C7A00088 */ lwc1 $f0, 0x88($sp)
/* 3CCAC4 E00C60E4 46005086 */ mov.s $f2, $f10
/* 3CCAC8 E00C60E8 AE110000 */ sw $s1, ($s0)
/* 3CCACC E00C60EC AE000024 */ sw $zero, 0x24($s0)
/* 3CCAD0 E00C60F0 AE15001C */ sw $s5, 0x1c($s0)
/* 3CCAD4 E00C60F4 AE000034 */ sw $zero, 0x34($s0)
/* 3CCAD8 E00C60F8 E6000010 */ swc1 $f0, 0x10($s0)
/* 3CCADC E00C60FC C7AA0080 */ lwc1 $f10, 0x80($sp)
/* 3CCAE0 E00C6100 E60A0008 */ swc1 $f10, 8($s0)
/* 3CCAE4 E00C6104 C7AA0084 */ lwc1 $f10, 0x84($sp)
/* 3CCAE8 E00C6108 46000206 */ mov.s $f8, $f0
/* 3CCAEC E00C610C E60A000C */ swc1 $f10, 0xc($s0)
/* 3CCAF0 E00C6110 C7A0008C */ lwc1 $f0, 0x8c($sp)
/* 3CCAF4 E00C6114 46024201 */ sub.s $f8, $f8, $f2
/* 3CCAF8 E00C6118 E6000014 */ swc1 $f0, 0x14($s0)
/* 3CCAFC E00C611C C7A00090 */ lwc1 $f0, 0x90($sp)
/* 3CCB00 E00C6120 C6020014 */ lwc1 $f2, 0x14($s0)
/* 3CCB04 E00C6124 E6000018 */ swc1 $f0, 0x18($s0)
/* 3CCB08 E00C6128 C7A00094 */ lwc1 $f0, 0x94($sp)
/* 3CCB0C E00C612C 44952000 */ mtc1 $s5, $f4
/* 3CCB10 E00C6130 00000000 */ nop
/* 3CCB14 E00C6134 46802120 */ cvt.s.w $f4, $f4
/* 3CCB18 E00C6138 E6000048 */ swc1 $f0, 0x48($s0)
/* 3CCB1C E00C613C C6000008 */ lwc1 $f0, 8($s0)
/* 3CCB20 E00C6140 46005186 */ mov.s $f6, $f10
/* 3CCB24 E00C6144 46001081 */ sub.s $f2, $f2, $f0
/* 3CCB28 E00C6148 C6000018 */ lwc1 $f0, 0x18($s0)
/* 3CCB2C E00C614C 46044203 */ div.s $f8, $f8, $f4
/* 3CCB30 E00C6150 E6080060 */ swc1 $f8, 0x60($s0)
/* 3CCB34 E00C6154 46060001 */ sub.s $f0, $f0, $f6
/* 3CCB38 E00C6158 46041083 */ div.s $f2, $f2, $f4
/* 3CCB3C E00C615C E6020064 */ swc1 $f2, 0x64($s0)
/* 3CCB40 E00C6160 46040003 */ div.s $f0, $f0, $f4
/* 3CCB44 E00C6164 1220007B */ beqz $s1, .LE00C6354
/* 3CCB48 E00C6168 E6000068 */ swc1 $f0, 0x68($s0)
/* 3CCB4C E00C616C 24020001 */ addiu $v0, $zero, 1
/* 3CCB50 E00C6170 1622002B */ bne $s1, $v0, .LE00C6220
/* 3CCB54 E00C6174 24040168 */ addiu $a0, $zero, 0x168
/* 3CCB58 E00C6178 24040040 */ addiu $a0, $zero, 0x40
/* 3CCB5C E00C617C 240300FF */ addiu $v1, $zero, 0xff
/* 3CCB60 E00C6180 24020058 */ addiu $v0, $zero, 0x58
/* 3CCB64 E00C6184 AE02002C */ sw $v0, 0x2c($s0)
/* 3CCB68 E00C6188 24020046 */ addiu $v0, $zero, 0x46
/* 3CCB6C E00C618C AE020030 */ sw $v0, 0x30($s0)
/* 3CCB70 E00C6190 24020037 */ addiu $v0, $zero, 0x37
/* 3CCB74 E00C6194 AE020034 */ sw $v0, 0x34($s0)
/* 3CCB78 E00C6198 2402000B */ addiu $v0, $zero, 0xb
/* 3CCB7C E00C619C AE020038 */ sw $v0, 0x38($s0)
/* 3CCB80 E00C61A0 24020033 */ addiu $v0, $zero, 0x33
/* 3CCB84 E00C61A4 AE02003C */ sw $v0, 0x3c($s0)
/* 3CCB88 E00C61A8 2402007B */ addiu $v0, $zero, 0x7b
/* 3CCB8C E00C61AC AE030028 */ sw $v1, 0x28($s0)
/* 3CCB90 E00C61B0 AE020040 */ sw $v0, 0x40($s0)
/* 3CCB94 E00C61B4 0C080138 */ jal shim_rand_int
/* 3CCB98 E00C61B8 AE030044 */ sw $v1, 0x44($s0)
/* 3CCB9C E00C61BC 24040040 */ addiu $a0, $zero, 0x40
/* 3CCBA0 E00C61C0 44820000 */ mtc1 $v0, $f0
/* 3CCBA4 E00C61C4 00000000 */ nop
/* 3CCBA8 E00C61C8 46800020 */ cvt.s.w $f0, $f0
/* 3CCBAC E00C61CC 0C080138 */ jal shim_rand_int
/* 3CCBB0 E00C61D0 E600004C */ swc1 $f0, 0x4c($s0)
/* 3CCBB4 E00C61D4 3C013E4C */ lui $at, 0x3e4c
/* 3CCBB8 E00C61D8 3421CCCD */ ori $at, $at, 0xcccd
/* 3CCBBC E00C61DC 44811000 */ mtc1 $at, $f2
/* 3CCBC0 E00C61E0 3C013E99 */ lui $at, 0x3e99
/* 3CCBC4 E00C61E4 3421999A */ ori $at, $at, 0x999a
/* 3CCBC8 E00C61E8 44812000 */ mtc1 $at, $f4
/* 3CCBCC E00C61EC 3C01C120 */ lui $at, 0xc120
/* 3CCBD0 E00C61F0 44813000 */ mtc1 $at, $f6
/* 3CCBD4 E00C61F4 44820000 */ mtc1 $v0, $f0
/* 3CCBD8 E00C61F8 00000000 */ nop
/* 3CCBDC E00C61FC 46800020 */ cvt.s.w $f0, $f0
/* 3CCBE0 E00C6200 E6000050 */ swc1 $f0, 0x50($s0)
/* 3CCBE4 E00C6204 AE000054 */ sw $zero, 0x54($s0)
/* 3CCBE8 E00C6208 AE000058 */ sw $zero, 0x58($s0)
/* 3CCBEC E00C620C AE000074 */ sw $zero, 0x74($s0)
/* 3CCBF0 E00C6210 E6020070 */ swc1 $f2, 0x70($s0)
/* 3CCBF4 E00C6214 E604006C */ swc1 $f4, 0x6c($s0)
/* 3CCBF8 E00C6218 080318D5 */ j .LE00C6354
/* 3CCBFC E00C621C E6060078 */ swc1 $f6, 0x78($s0)
.LE00C6220:
/* 3CCC00 E00C6220 240300FF */ addiu $v1, $zero, 0xff
/* 3CCC04 E00C6224 24020058 */ addiu $v0, $zero, 0x58
/* 3CCC08 E00C6228 AE02002C */ sw $v0, 0x2c($s0)
/* 3CCC0C E00C622C 24020046 */ addiu $v0, $zero, 0x46
/* 3CCC10 E00C6230 AE020030 */ sw $v0, 0x30($s0)
/* 3CCC14 E00C6234 24020037 */ addiu $v0, $zero, 0x37
/* 3CCC18 E00C6238 AE020034 */ sw $v0, 0x34($s0)
/* 3CCC1C E00C623C 2402000B */ addiu $v0, $zero, 0xb
/* 3CCC20 E00C6240 AE020038 */ sw $v0, 0x38($s0)
/* 3CCC24 E00C6244 24020033 */ addiu $v0, $zero, 0x33
/* 3CCC28 E00C6248 AE02003C */ sw $v0, 0x3c($s0)
/* 3CCC2C E00C624C 2402007B */ addiu $v0, $zero, 0x7b
/* 3CCC30 E00C6250 AE030028 */ sw $v1, 0x28($s0)
/* 3CCC34 E00C6254 AE020040 */ sw $v0, 0x40($s0)
/* 3CCC38 E00C6258 0C080138 */ jal shim_rand_int
/* 3CCC3C E00C625C AE030044 */ sw $v1, 0x44($s0)
/* 3CCC40 E00C6260 4482C000 */ mtc1 $v0, $f24
/* 3CCC44 E00C6264 00000000 */ nop
/* 3CCC48 E00C6268 4680C620 */ cvt.s.w $f24, $f24
/* 3CCC4C E00C626C 12600039 */ beqz $s3, .LE00C6354
/* 3CCC50 E00C6270 0000882D */ daddu $s1, $zero, $zero
/* 3CCC54 E00C6274 26100078 */ addiu $s0, $s0, 0x78
/* 3CCC58 E00C6278 0220902D */ daddu $s2, $s1, $zero
/* 3CCC5C E00C627C 3C014040 */ lui $at, 0x4040
/* 3CCC60 E00C6280 4481F000 */ mtc1 $at, $f30
/* 3CCC64 E00C6284 3C013F80 */ lui $at, 0x3f80
/* 3CCC68 E00C6288 4481B000 */ mtc1 $at, $f22
/* 3CCC6C E00C628C 3C01C234 */ lui $at, 0xc234
/* 3CCC70 E00C6290 4481E000 */ mtc1 $at, $f28
/* 3CCC74 E00C6294 3C01C120 */ lui $at, 0xc120
/* 3CCC78 E00C6298 4481D000 */ mtc1 $at, $f26
.LE00C629C:
/* 3CCC7C E00C629C C7AA007C */ lwc1 $f10, 0x7c($sp)
/* 3CCC80 E00C62A0 4492A000 */ mtc1 $s2, $f20
/* 3CCC84 E00C62A4 00000000 */ nop
/* 3CCC88 E00C62A8 4680A520 */ cvt.s.w $f20, $f20
/* 3CCC8C E00C62AC E60AFF8C */ swc1 $f10, -0x74($s0)
/* 3CCC90 E00C62B0 C7AA0080 */ lwc1 $f10, 0x80($sp)
/* 3CCC94 E00C62B4 4618A500 */ add.s $f20, $f20, $f24
/* 3CCC98 E00C62B8 E60AFF90 */ swc1 $f10, -0x70($s0)
/* 3CCC9C E00C62BC C7AA0084 */ lwc1 $f10, 0x84($sp)
/* 3CCCA0 E00C62C0 4600A306 */ mov.s $f12, $f20
/* 3CCCA4 E00C62C4 0C080140 */ jal shim_sin_deg
/* 3CCCA8 E00C62C8 E60AFF94 */ swc1 $f10, -0x6c($s0)
/* 3CCCAC E00C62CC 3C0140A0 */ lui $at, 0x40a0
/* 3CCCB0 E00C62D0 44815000 */ mtc1 $at, $f10
/* 3CCCB4 E00C62D4 00000000 */ nop
/* 3CCCB8 E00C62D8 460A0002 */ mul.s $f0, $f0, $f10
/* 3CCCBC E00C62DC 00000000 */ nop
/* 3CCCC0 E00C62E0 4600A306 */ mov.s $f12, $f20
/* 3CCCC4 E00C62E4 0C080144 */ jal shim_cos_deg
/* 3CCCC8 E00C62E8 E600FFE8 */ swc1 $f0, -0x18($s0)
/* 3CCCCC E00C62EC 46000000 */ add.s $f0, $f0, $f0
/* 3CCCD0 E00C62F0 2652002D */ addiu $s2, $s2, 0x2d
/* 3CCCD4 E00C62F4 461E0000 */ add.s $f0, $f0, $f30
/* 3CCCD8 E00C62F8 26310001 */ addiu $s1, $s1, 1
/* 3CCCDC E00C62FC 24040040 */ addiu $a0, $zero, 0x40
/* 3CCCE0 E00C6300 0C080138 */ jal shim_rand_int
/* 3CCCE4 E00C6304 E600FFEC */ swc1 $f0, -0x14($s0)
/* 3CCCE8 E00C6308 24040040 */ addiu $a0, $zero, 0x40
/* 3CCCEC E00C630C 44820000 */ mtc1 $v0, $f0
/* 3CCCF0 E00C6310 00000000 */ nop
/* 3CCCF4 E00C6314 46800020 */ cvt.s.w $f0, $f0
/* 3CCCF8 E00C6318 0C080138 */ jal shim_rand_int
/* 3CCCFC E00C631C E600FFD4 */ swc1 $f0, -0x2c($s0)
/* 3CCD00 E00C6320 44820000 */ mtc1 $v0, $f0
/* 3CCD04 E00C6324 00000000 */ nop
/* 3CCD08 E00C6328 46800020 */ cvt.s.w $f0, $f0
/* 3CCD0C E00C632C E600FFD8 */ swc1 $f0, -0x28($s0)
/* 3CCD10 E00C6330 E616FFF8 */ swc1 $f22, -8($s0)
/* 3CCD14 E00C6334 E616FFF4 */ swc1 $f22, -0xc($s0)
/* 3CCD18 E00C6338 AE00FFDC */ sw $zero, -0x24($s0)
/* 3CCD1C E00C633C AE00FFE0 */ sw $zero, -0x20($s0)
/* 3CCD20 E00C6340 E61CFFFC */ swc1 $f28, -4($s0)
/* 3CCD24 E00C6344 E61A0000 */ swc1 $f26, ($s0)
/* 3CCD28 E00C6348 0233102A */ slt $v0, $s1, $s3
/* 3CCD2C E00C634C 1440FFD3 */ bnez $v0, .LE00C629C
/* 3CCD30 E00C6350 2610007C */ addiu $s0, $s0, 0x7c
.LE00C6354:
/* 3CCD34 E00C6354 0280102D */ daddu $v0, $s4, $zero
/* 3CCD38 E00C6358 8FBF0040 */ lw $ra, 0x40($sp)
/* 3CCD3C E00C635C 8FB5003C */ lw $s5, 0x3c($sp)
/* 3CCD40 E00C6360 8FB40038 */ lw $s4, 0x38($sp)
/* 3CCD44 E00C6364 8FB30034 */ lw $s3, 0x34($sp)
/* 3CCD48 E00C6368 8FB20030 */ lw $s2, 0x30($sp)
/* 3CCD4C E00C636C 8FB1002C */ lw $s1, 0x2c($sp)
/* 3CCD50 E00C6370 8FB00028 */ lw $s0, 0x28($sp)
/* 3CCD54 E00C6374 D7BE0070 */ ldc1 $f30, 0x70($sp)
/* 3CCD58 E00C6378 D7BC0068 */ ldc1 $f28, 0x68($sp)
/* 3CCD5C E00C637C D7BA0060 */ ldc1 $f26, 0x60($sp)
/* 3CCD60 E00C6380 D7B80058 */ ldc1 $f24, 0x58($sp)
/* 3CCD64 E00C6384 D7B60050 */ ldc1 $f22, 0x50($sp)
/* 3CCD68 E00C6388 D7B40048 */ ldc1 $f20, 0x48($sp)
/* 3CCD6C E00C638C 03E00008 */ jr $ra
/* 3CCD70 E00C6390 27BD0078 */ addiu $sp, $sp, 0x78

View File

@ -1,289 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00C6CB0
.double 0.97
dlabel D_E00C6CB8
.double 0.02
dlabel D_E00C6CC0
.double 0.05
dlabel D_E00C6CC8
.double 0.1
dlabel D_E00C6CD0
.double 0.9
dlabel D_E00C6CD8
.double 0.2
dlabel D_E00C6CE0
.double -0.6
dlabel D_E00C6CE8
.double 0.07
dlabel D_E00C6CF0
.double 0.05, 0.0
.section .text
glabel fx_63_update
/* 3CCD7C E00C639C 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 3CCD80 E00C63A0 AFB20030 */ sw $s2, 0x30($sp)
/* 3CCD84 E00C63A4 0080902D */ daddu $s2, $a0, $zero
/* 3CCD88 E00C63A8 AFBF0034 */ sw $ra, 0x34($sp)
/* 3CCD8C E00C63AC AFB1002C */ sw $s1, 0x2c($sp)
/* 3CCD90 E00C63B0 AFB00028 */ sw $s0, 0x28($sp)
/* 3CCD94 E00C63B4 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3CCD98 E00C63B8 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3CCD9C E00C63BC 8E430000 */ lw $v1, ($s2)
/* 3CCDA0 E00C63C0 8E50000C */ lw $s0, 0xc($s2)
/* 3CCDA4 E00C63C4 30620010 */ andi $v0, $v1, 0x10
/* 3CCDA8 E00C63C8 8E110000 */ lw $s1, ($s0)
/* 3CCDAC E00C63CC 10400005 */ beqz $v0, .LE00C63E4
/* 3CCDB0 E00C63D0 2402FFEF */ addiu $v0, $zero, -0x11
/* 3CCDB4 E00C63D4 00621024 */ and $v0, $v1, $v0
/* 3CCDB8 E00C63D8 AE420000 */ sw $v0, ($s2)
/* 3CCDBC E00C63DC 24020010 */ addiu $v0, $zero, 0x10
/* 3CCDC0 E00C63E0 AE020020 */ sw $v0, 0x20($s0)
.LE00C63E4:
/* 3CCDC4 E00C63E4 8E030020 */ lw $v1, 0x20($s0)
/* 3CCDC8 E00C63E8 286203E8 */ slti $v0, $v1, 0x3e8
/* 3CCDCC E00C63EC 10400002 */ beqz $v0, .LE00C63F8
/* 3CCDD0 E00C63F0 2462FFFF */ addiu $v0, $v1, -1
/* 3CCDD4 E00C63F4 AE020020 */ sw $v0, 0x20($s0)
.LE00C63F8:
/* 3CCDD8 E00C63F8 8E020024 */ lw $v0, 0x24($s0)
/* 3CCDDC E00C63FC 8E030020 */ lw $v1, 0x20($s0)
/* 3CCDE0 E00C6400 24420001 */ addiu $v0, $v0, 1
/* 3CCDE4 E00C6404 AE020024 */ sw $v0, 0x24($s0)
/* 3CCDE8 E00C6408 24020001 */ addiu $v0, $zero, 1
/* 3CCDEC E00C640C 14620016 */ bne $v1, $v0, .LE00C6468
/* 3CCDF0 E00C6410 00000000 */ nop
/* 3CCDF4 E00C6414 16230014 */ bne $s1, $v1, .LE00C6468
/* 3CCDF8 E00C6418 00000000 */ nop
/* 3CCDFC E00C641C 0C080150 */ jal shim_load_effect
/* 3CCE00 E00C6420 24040063 */ addiu $a0, $zero, 0x63
/* 3CCE04 E00C6424 C6000010 */ lwc1 $f0, 0x10($s0)
/* 3CCE08 E00C6428 E7A00010 */ swc1 $f0, 0x10($sp)
/* 3CCE0C E00C642C C6000014 */ lwc1 $f0, 0x14($s0)
/* 3CCE10 E00C6430 E7A00014 */ swc1 $f0, 0x14($sp)
/* 3CCE14 E00C6434 3C013F80 */ lui $at, 0x3f80
/* 3CCE18 E00C6438 44810000 */ mtc1 $at, $f0
/* 3CCE1C E00C643C C6020018 */ lwc1 $f2, 0x18($s0)
/* 3CCE20 E00C6440 24020020 */ addiu $v0, $zero, 0x20
/* 3CCE24 E00C6444 AFA20020 */ sw $v0, 0x20($sp)
/* 3CCE28 E00C6448 AFA20024 */ sw $v0, 0x24($sp)
/* 3CCE2C E00C644C E7A0001C */ swc1 $f0, 0x1c($sp)
/* 3CCE30 E00C6450 E7A20018 */ swc1 $f2, 0x18($sp)
/* 3CCE34 E00C6454 8E050004 */ lw $a1, 4($s0)
/* 3CCE38 E00C6458 8E060008 */ lw $a2, 8($s0)
/* 3CCE3C E00C645C 8E07000C */ lw $a3, 0xc($s0)
/* 3CCE40 E00C6460 0C031800 */ jal fx_63_main
/* 3CCE44 E00C6464 24040002 */ addiu $a0, $zero, 2
.LE00C6468:
/* 3CCE48 E00C6468 8E020020 */ lw $v0, 0x20($s0)
/* 3CCE4C E00C646C 04410005 */ bgez $v0, .LE00C6484
/* 3CCE50 E00C6470 24020001 */ addiu $v0, $zero, 1
/* 3CCE54 E00C6474 0C080128 */ jal shim_remove_effect
/* 3CCE58 E00C6478 0240202D */ daddu $a0, $s2, $zero
/* 3CCE5C E00C647C 080319D2 */ j .LE00C6748
/* 3CCE60 E00C6480 00000000 */ nop
.LE00C6484:
/* 3CCE64 E00C6484 8E030024 */ lw $v1, 0x24($s0)
/* 3CCE68 E00C6488 12220023 */ beq $s1, $v0, .LE00C6518
/* 3CCE6C E00C648C 2A220002 */ slti $v0, $s1, 2
/* 3CCE70 E00C6490 50400005 */ beql $v0, $zero, .LE00C64A8
/* 3CCE74 E00C6494 24020002 */ addiu $v0, $zero, 2
/* 3CCE78 E00C6498 12200007 */ beqz $s1, .LE00C64B8
/* 3CCE7C E00C649C 30620003 */ andi $v0, $v1, 3
/* 3CCE80 E00C64A0 080319D2 */ j .LE00C6748
/* 3CCE84 E00C64A4 00000000 */ nop
.LE00C64A8:
/* 3CCE88 E00C64A8 1222005F */ beq $s1, $v0, .LE00C6628
/* 3CCE8C E00C64AC 00000000 */ nop
/* 3CCE90 E00C64B0 080319D2 */ j .LE00C6748
/* 3CCE94 E00C64B4 00000000 */ nop
.LE00C64B8:
/* 3CCE98 E00C64B8 144000A3 */ bnez $v0, .LE00C6748
/* 3CCE9C E00C64BC 00000000 */ nop
/* 3CCEA0 E00C64C0 0C080150 */ jal shim_load_effect
/* 3CCEA4 E00C64C4 24040063 */ addiu $a0, $zero, 0x63
/* 3CCEA8 E00C64C8 C6000010 */ lwc1 $f0, 0x10($s0)
/* 3CCEAC E00C64CC E7A00010 */ swc1 $f0, 0x10($sp)
/* 3CCEB0 E00C64D0 C6000014 */ lwc1 $f0, 0x14($s0)
/* 3CCEB4 E00C64D4 E7A00014 */ swc1 $f0, 0x14($sp)
/* 3CCEB8 E00C64D8 3C013F80 */ lui $at, 0x3f80
/* 3CCEBC E00C64DC 44810000 */ mtc1 $at, $f0
/* 3CCEC0 E00C64E0 C6020018 */ lwc1 $f2, 0x18($s0)
/* 3CCEC4 E00C64E4 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 3CCEC8 E00C64E8 E7A20018 */ swc1 $f2, 0x18($sp)
/* 3CCECC E00C64EC 8E02001C */ lw $v0, 0x1c($s0)
/* 3CCED0 E00C64F0 AFA20020 */ sw $v0, 0x20($sp)
/* 3CCED4 E00C64F4 8E02001C */ lw $v0, 0x1c($s0)
/* 3CCED8 E00C64F8 AFA20024 */ sw $v0, 0x24($sp)
/* 3CCEDC E00C64FC 8E050004 */ lw $a1, 4($s0)
/* 3CCEE0 E00C6500 8E060008 */ lw $a2, 8($s0)
/* 3CCEE4 E00C6504 8E07000C */ lw $a3, 0xc($s0)
/* 3CCEE8 E00C6508 0C031800 */ jal fx_63_main
/* 3CCEEC E00C650C 24040001 */ addiu $a0, $zero, 1
/* 3CCEF0 E00C6510 080319D2 */ j .LE00C6748
/* 3CCEF4 E00C6514 00000000 */ nop
.LE00C6518:
/* 3CCEF8 E00C6518 C6040060 */ lwc1 $f4, 0x60($s0)
/* 3CCEFC E00C651C 3C01E00C */ lui $at, %hi(D_E00C6CB0)
/* 3CCF00 E00C6520 D4206CB0 */ ldc1 $f0, %lo(D_E00C6CB0)($at)
/* 3CCF04 E00C6524 46002121 */ cvt.d.s $f4, $f4
/* 3CCF08 E00C6528 46202102 */ mul.d $f4, $f4, $f0
/* 3CCF0C E00C652C 00000000 */ nop
/* 3CCF10 E00C6530 C6020068 */ lwc1 $f2, 0x68($s0)
/* 3CCF14 E00C6534 460010A1 */ cvt.d.s $f2, $f2
/* 3CCF18 E00C6538 46201082 */ mul.d $f2, $f2, $f0
/* 3CCF1C E00C653C 00000000 */ nop
/* 3CCF20 E00C6540 C60A0064 */ lwc1 $f10, 0x64($s0)
/* 3CCF24 E00C6544 3C013F80 */ lui $at, 0x3f80
/* 3CCF28 E00C6548 44814000 */ mtc1 $at, $f8
/* 3CCF2C E00C654C 00000000 */ nop
/* 3CCF30 E00C6550 460A4201 */ sub.s $f8, $f8, $f10
/* 3CCF34 E00C6554 3C01E00C */ lui $at, %hi(D_E00C6CB8)
/* 3CCF38 E00C6558 D4206CB8 */ ldc1 $f0, %lo(D_E00C6CB8)($at)
/* 3CCF3C E00C655C 46004221 */ cvt.d.s $f8, $f8
/* 3CCF40 E00C6560 46204202 */ mul.d $f8, $f8, $f0
/* 3CCF44 E00C6564 00000000 */ nop
/* 3CCF48 E00C6568 C60C0070 */ lwc1 $f12, 0x70($s0)
/* 3CCF4C E00C656C 3C013FF0 */ lui $at, 0x3ff0
/* 3CCF50 E00C6570 44817800 */ mtc1 $at, $f15
/* 3CCF54 E00C6574 44807000 */ mtc1 $zero, $f14
/* 3CCF58 E00C6578 46006321 */ cvt.d.s $f12, $f12
/* 3CCF5C E00C657C 462C7481 */ sub.d $f18, $f14, $f12
/* 3CCF60 E00C6580 3C01E00C */ lui $at, %hi(D_E00C6CC0)
/* 3CCF64 E00C6584 D4206CC0 */ ldc1 $f0, %lo(D_E00C6CC0)($at)
/* 3CCF68 E00C6588 46209482 */ mul.d $f18, $f18, $f0
/* 3CCF6C E00C658C 00000000 */ nop
/* 3CCF70 E00C6590 C606006C */ lwc1 $f6, 0x6c($s0)
/* 3CCF74 E00C6594 460031A1 */ cvt.d.s $f6, $f6
/* 3CCF78 E00C6598 46267381 */ sub.d $f14, $f14, $f6
/* 3CCF7C E00C659C 3C01E00C */ lui $at, %hi(D_E00C6CC8)
/* 3CCF80 E00C65A0 D4206CC8 */ ldc1 $f0, %lo(D_E00C6CC8)($at)
/* 3CCF84 E00C65A4 46207382 */ mul.d $f14, $f14, $f0
/* 3CCF88 E00C65A8 00000000 */ nop
/* 3CCF8C E00C65AC C6100004 */ lwc1 $f16, 4($s0)
/* 3CCF90 E00C65B0 46202120 */ cvt.s.d $f4, $f4
/* 3CCF94 E00C65B4 462010A0 */ cvt.s.d $f2, $f2
/* 3CCF98 E00C65B8 E6040060 */ swc1 $f4, 0x60($s0)
/* 3CCF9C E00C65BC 46002006 */ mov.s $f0, $f4
/* 3CCFA0 E00C65C0 E6020068 */ swc1 $f2, 0x68($s0)
/* 3CCFA4 E00C65C4 C6020074 */ lwc1 $f2, 0x74($s0)
/* 3CCFA8 E00C65C8 46008400 */ add.s $f16, $f16, $f0
/* 3CCFAC E00C65CC C6000078 */ lwc1 $f0, 0x78($s0)
/* 3CCFB0 E00C65D0 C604000C */ lwc1 $f4, 0xc($s0)
/* 3CCFB4 E00C65D4 46001080 */ add.s $f2, $f2, $f0
/* 3CCFB8 E00C65D8 C6000068 */ lwc1 $f0, 0x68($s0)
/* 3CCFBC E00C65DC 46002100 */ add.s $f4, $f4, $f0
/* 3CCFC0 E00C65E0 460052A1 */ cvt.d.s $f10, $f10
/* 3CCFC4 E00C65E4 C6000008 */ lwc1 $f0, 8($s0)
/* 3CCFC8 E00C65E8 46285280 */ add.d $f10, $f10, $f8
/* 3CCFCC E00C65EC E6100004 */ swc1 $f16, 4($s0)
/* 3CCFD0 E00C65F0 E6020074 */ swc1 $f2, 0x74($s0)
/* 3CCFD4 E00C65F4 46326300 */ add.d $f12, $f12, $f18
/* 3CCFD8 E00C65F8 462052A0 */ cvt.s.d $f10, $f10
/* 3CCFDC E00C65FC E60A0064 */ swc1 $f10, 0x64($s0)
/* 3CCFE0 E00C6600 462E3180 */ add.d $f6, $f6, $f14
/* 3CCFE4 E00C6604 46005086 */ mov.s $f2, $f10
/* 3CCFE8 E00C6608 E604000C */ swc1 $f4, 0xc($s0)
/* 3CCFEC E00C660C 46020000 */ add.s $f0, $f0, $f2
/* 3CCFF0 E00C6610 46206320 */ cvt.s.d $f12, $f12
/* 3CCFF4 E00C6614 E60C0070 */ swc1 $f12, 0x70($s0)
/* 3CCFF8 E00C6618 462031A0 */ cvt.s.d $f6, $f6
/* 3CCFFC E00C661C E606006C */ swc1 $f6, 0x6c($s0)
/* 3CD000 E00C6620 080319D2 */ j .LE00C6748
/* 3CD004 E00C6624 E6000008 */ swc1 $f0, 8($s0)
.LE00C6628:
/* 3CD008 E00C6628 8E420008 */ lw $v0, 8($s2)
/* 3CD00C E00C662C 18400046 */ blez $v0, .LE00C6748
/* 3CD010 E00C6630 0000202D */ daddu $a0, $zero, $zero
/* 3CD014 E00C6634 26030074 */ addiu $v1, $s0, 0x74
/* 3CD018 E00C6638 3C01E00C */ lui $at, %hi(D_E00C6CD0)
/* 3CD01C E00C663C D4366CD0 */ ldc1 $f22, %lo(D_E00C6CD0)($at)
/* 3CD020 E00C6640 3C01E00C */ lui $at, %hi(D_E00C6CD8)
/* 3CD024 E00C6644 D4346CD8 */ ldc1 $f20, %lo(D_E00C6CD8)($at)
/* 3CD028 E00C6648 44806000 */ mtc1 $zero, $f12
/* 3CD02C E00C664C 3C01E00C */ lui $at, %hi(D_E00C6CE0)
/* 3CD030 E00C6650 D4326CE0 */ ldc1 $f18, %lo(D_E00C6CE0)($at)
/* 3CD034 E00C6654 3C01E00C */ lui $at, %hi(D_E00C6CE8)
/* 3CD038 E00C6658 D4306CE8 */ ldc1 $f16, %lo(D_E00C6CE8)($at)
/* 3CD03C E00C665C 3C01E00C */ lui $at, %hi(D_E00C6CF0)
/* 3CD040 E00C6660 D42E6CF0 */ ldc1 $f14, %lo(D_E00C6CF0)($at)
.LE00C6664:
/* 3CD044 E00C6664 C462FFEC */ lwc1 $f2, -0x14($v1)
/* 3CD048 E00C6668 460010A1 */ cvt.d.s $f2, $f2
/* 3CD04C E00C666C 46361082 */ mul.d $f2, $f2, $f22
/* 3CD050 E00C6670 00000000 */ nop
/* 3CD054 E00C6674 C460FFF0 */ lwc1 $f0, -0x10($v1)
/* 3CD058 E00C6678 46000021 */ cvt.d.s $f0, $f0
/* 3CD05C E00C667C 46340001 */ sub.d $f0, $f0, $f20
/* 3CD060 E00C6680 C464FF94 */ lwc1 $f4, -0x6c($v1)
/* 3CD064 E00C6684 46200020 */ cvt.s.d $f0, $f0
/* 3CD068 E00C6688 46002100 */ add.s $f4, $f4, $f0
/* 3CD06C E00C668C E460FFF0 */ swc1 $f0, -0x10($v1)
/* 3CD070 E00C6690 462010A0 */ cvt.s.d $f2, $f2
/* 3CD074 E00C6694 E462FFEC */ swc1 $f2, -0x14($v1)
/* 3CD078 E00C6698 C462FF90 */ lwc1 $f2, -0x70($v1)
/* 3CD07C E00C669C C460FFEC */ lwc1 $f0, -0x14($v1)
/* 3CD080 E00C66A0 46001080 */ add.s $f2, $f2, $f0
/* 3CD084 E00C66A4 460C203C */ c.lt.s $f4, $f12
/* 3CD088 E00C66A8 E464FF94 */ swc1 $f4, -0x6c($v1)
/* 3CD08C E00C66AC 4500000B */ bc1f .LE00C66DC
/* 3CD090 E00C66B0 E462FF90 */ swc1 $f2, -0x70($v1)
/* 3CD094 E00C66B4 C460FFF0 */ lwc1 $f0, -0x10($v1)
/* 3CD098 E00C66B8 460C003C */ c.lt.s $f0, $f12
/* 3CD09C E00C66BC 00000000 */ nop
/* 3CD0A0 E00C66C0 45000006 */ bc1f .LE00C66DC
/* 3CD0A4 E00C66C4 E46CFF94 */ swc1 $f12, -0x6c($v1)
/* 3CD0A8 E00C66C8 46000021 */ cvt.d.s $f0, $f0
/* 3CD0AC E00C66CC 46320002 */ mul.d $f0, $f0, $f18
/* 3CD0B0 E00C66D0 00000000 */ nop
/* 3CD0B4 E00C66D4 46200020 */ cvt.s.d $f0, $f0
/* 3CD0B8 E00C66D8 E460FFF0 */ swc1 $f0, -0x10($v1)
.LE00C66DC:
/* 3CD0BC E00C66DC C462FFFC */ lwc1 $f2, -4($v1)
/* 3CD0C0 E00C66E0 46026201 */ sub.s $f8, $f12, $f2
/* 3CD0C4 E00C66E4 46004221 */ cvt.d.s $f8, $f8
/* 3CD0C8 E00C66E8 46304202 */ mul.d $f8, $f8, $f16
/* 3CD0CC E00C66EC 00000000 */ nop
/* 3CD0D0 E00C66F0 C460FFF8 */ lwc1 $f0, -8($v1)
/* 3CD0D4 E00C66F4 46006181 */ sub.s $f6, $f12, $f0
/* 3CD0D8 E00C66F8 460031A1 */ cvt.d.s $f6, $f6
/* 3CD0DC E00C66FC 462E3182 */ mul.d $f6, $f6, $f14
/* 3CD0E0 E00C6700 00000000 */ nop
/* 3CD0E4 E00C6704 C46A0000 */ lwc1 $f10, ($v1)
/* 3CD0E8 E00C6708 C4640004 */ lwc1 $f4, 4($v1)
/* 3CD0EC E00C670C 46045280 */ add.s $f10, $f10, $f4
/* 3CD0F0 E00C6710 460010A1 */ cvt.d.s $f2, $f2
/* 3CD0F4 E00C6714 46281080 */ add.d $f2, $f2, $f8
/* 3CD0F8 E00C6718 24840001 */ addiu $a0, $a0, 1
/* 3CD0FC E00C671C 46000021 */ cvt.d.s $f0, $f0
/* 3CD100 E00C6720 46260000 */ add.d $f0, $f0, $f6
/* 3CD104 E00C6724 E46A0000 */ swc1 $f10, ($v1)
/* 3CD108 E00C6728 462010A0 */ cvt.s.d $f2, $f2
/* 3CD10C E00C672C 46200020 */ cvt.s.d $f0, $f0
/* 3CD110 E00C6730 E462FFFC */ swc1 $f2, -4($v1)
/* 3CD114 E00C6734 E460FFF8 */ swc1 $f0, -8($v1)
/* 3CD118 E00C6738 8E420008 */ lw $v0, 8($s2)
/* 3CD11C E00C673C 0082102A */ slt $v0, $a0, $v0
/* 3CD120 E00C6740 1440FFC8 */ bnez $v0, .LE00C6664
/* 3CD124 E00C6744 2463007C */ addiu $v1, $v1, 0x7c
.LE00C6748:
/* 3CD128 E00C6748 8FBF0034 */ lw $ra, 0x34($sp)
/* 3CD12C E00C674C 8FB20030 */ lw $s2, 0x30($sp)
/* 3CD130 E00C6750 8FB1002C */ lw $s1, 0x2c($sp)
/* 3CD134 E00C6754 8FB00028 */ lw $s0, 0x28($sp)
/* 3CD138 E00C6758 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3CD13C E00C675C D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3CD140 E00C6760 03E00008 */ jr $ra
/* 3CD144 E00C6764 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -1,162 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel fx_65_main
/* 3D0500 E00CA000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 3D0504 E00CA004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 3D0508 E00CA008 4485A000 */ mtc1 $a1, $f20
/* 3D050C E00CA00C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 3D0510 E00CA010 4486B000 */ mtc1 $a2, $f22
/* 3D0514 E00CA014 AFB1002C */ sw $s1, 0x2c($sp)
/* 3D0518 E00CA018 0080882D */ daddu $s1, $a0, $zero
/* 3D051C E00CA01C F7B80050 */ sdc1 $f24, 0x50($sp)
/* 3D0520 E00CA020 4487C000 */ mtc1 $a3, $f24
/* 3D0524 E00CA024 27A40010 */ addiu $a0, $sp, 0x10
/* 3D0528 E00CA028 AFB30034 */ sw $s3, 0x34($sp)
/* 3D052C E00CA02C 8FB3006C */ lw $s3, 0x6c($sp)
/* 3D0530 E00CA030 3C02E00D */ lui $v0, %hi(fx_65_init)
/* 3D0534 E00CA034 2442A240 */ addiu $v0, $v0, %lo(fx_65_init)
/* 3D0538 E00CA038 AFA20018 */ sw $v0, 0x18($sp)
/* 3D053C E00CA03C 3C02E00D */ lui $v0, %hi(fx_65_update)
/* 3D0540 E00CA040 2442A248 */ addiu $v0, $v0, %lo(fx_65_update)
/* 3D0544 E00CA044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3D0548 E00CA048 3C02E00D */ lui $v0, %hi(fx_65_render)
/* 3D054C E00CA04C 2442A484 */ addiu $v0, $v0, %lo(fx_65_render)
/* 3D0550 E00CA050 AFA20020 */ sw $v0, 0x20($sp)
/* 3D0554 E00CA054 24020065 */ addiu $v0, $zero, 0x65
/* 3D0558 E00CA058 AFBF0038 */ sw $ra, 0x38($sp)
/* 3D055C E00CA05C AFB20030 */ sw $s2, 0x30($sp)
/* 3D0560 E00CA060 AFB00028 */ sw $s0, 0x28($sp)
/* 3D0564 E00CA064 AFA00010 */ sw $zero, 0x10($sp)
/* 3D0568 E00CA068 AFA00024 */ sw $zero, 0x24($sp)
/* 3D056C E00CA06C 0C080124 */ jal shim_create_effect_instance
/* 3D0570 E00CA070 AFA20014 */ sw $v0, 0x14($sp)
/* 3D0574 E00CA074 24040324 */ addiu $a0, $zero, 0x324
/* 3D0578 E00CA078 24030001 */ addiu $v1, $zero, 1
/* 3D057C E00CA07C 0040902D */ daddu $s2, $v0, $zero
/* 3D0580 E00CA080 0C08012C */ jal shim_general_heap_malloc
/* 3D0584 E00CA084 AE430008 */ sw $v1, 8($s2)
/* 3D0588 E00CA088 0040802D */ daddu $s0, $v0, $zero
/* 3D058C E00CA08C 16000003 */ bnez $s0, .LE00CA09C
/* 3D0590 E00CA090 AE42000C */ sw $v0, 0xc($s2)
.LE00CA094:
/* 3D0594 E00CA094 08032825 */ j .LE00CA094
/* 3D0598 E00CA098 00000000 */ nop
.LE00CA09C:
/* 3D059C E00CA09C AE110000 */ sw $s1, ($s0)
/* 3D05A0 E00CA0A0 1E600004 */ bgtz $s3, .LE00CA0B4
/* 3D05A4 E00CA0A4 AE000014 */ sw $zero, 0x14($s0)
/* 3D05A8 E00CA0A8 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3D05AC E00CA0AC 0803282E */ j .LE00CA0B8
/* 3D05B0 E00CA0B0 AE020010 */ sw $v0, 0x10($s0)
.LE00CA0B4:
/* 3D05B4 E00CA0B4 AE130010 */ sw $s3, 0x10($s0)
.LE00CA0B8:
/* 3D05B8 E00CA0B8 E6140004 */ swc1 $f20, 4($s0)
/* 3D05BC E00CA0BC E6160008 */ swc1 $f22, 8($s0)
/* 3D05C0 E00CA0C0 E618000C */ swc1 $f24, 0xc($s0)
/* 3D05C4 E00CA0C4 C7A00068 */ lwc1 $f0, 0x68($sp)
/* 3D05C8 E00CA0C8 24020001 */ addiu $v0, $zero, 1
/* 3D05CC E00CA0CC 12220017 */ beq $s1, $v0, .LE00CA12C
/* 3D05D0 E00CA0D0 E6000034 */ swc1 $f0, 0x34($s0)
/* 3D05D4 E00CA0D4 2A220002 */ slti $v0, $s1, 2
/* 3D05D8 E00CA0D8 50400005 */ beql $v0, $zero, .LE00CA0F0
/* 3D05DC E00CA0DC 24020002 */ addiu $v0, $zero, 2
/* 3D05E0 E00CA0E0 1220000A */ beqz $s1, .LE00CA10C
/* 3D05E4 E00CA0E4 2403001D */ addiu $v1, $zero, 0x1d
/* 3D05E8 E00CA0E8 0803286D */ j .LE00CA1B4
/* 3D05EC E00CA0EC 26020074 */ addiu $v0, $s0, 0x74
.LE00CA0F0:
/* 3D05F0 E00CA0F0 1222001C */ beq $s1, $v0, .LE00CA164
/* 3D05F4 E00CA0F4 240200FF */ addiu $v0, $zero, 0xff
/* 3D05F8 E00CA0F8 24020003 */ addiu $v0, $zero, 3
/* 3D05FC E00CA0FC 12220021 */ beq $s1, $v0, .LE00CA184
/* 3D0600 E00CA100 2403001D */ addiu $v1, $zero, 0x1d
/* 3D0604 E00CA104 0803286D */ j .LE00CA1B4
/* 3D0608 E00CA108 26020074 */ addiu $v0, $s0, 0x74
.LE00CA10C:
/* 3D060C E00CA10C 240300FF */ addiu $v1, $zero, 0xff
/* 3D0610 E00CA110 240200E1 */ addiu $v0, $zero, 0xe1
/* 3D0614 E00CA114 AE030018 */ sw $v1, 0x18($s0)
/* 3D0618 E00CA118 AE03001C */ sw $v1, 0x1c($s0)
/* 3D061C E00CA11C AE030020 */ sw $v1, 0x20($s0)
/* 3D0620 E00CA120 AE020028 */ sw $v0, 0x28($s0)
/* 3D0624 E00CA124 08032856 */ j .LE00CA158
/* 3D0628 E00CA128 AE02002C */ sw $v0, 0x2c($s0)
.LE00CA12C:
/* 3D062C E00CA12C 240300FF */ addiu $v1, $zero, 0xff
/* 3D0630 E00CA130 240200F5 */ addiu $v0, $zero, 0xf5
/* 3D0634 E00CA134 AE02001C */ sw $v0, 0x1c($s0)
/* 3D0638 E00CA138 240200E6 */ addiu $v0, $zero, 0xe6
/* 3D063C E00CA13C AE020020 */ sw $v0, 0x20($s0)
/* 3D0640 E00CA140 2402002D */ addiu $v0, $zero, 0x2d
/* 3D0644 E00CA144 AE020028 */ sw $v0, 0x28($s0)
/* 3D0648 E00CA148 24020023 */ addiu $v0, $zero, 0x23
/* 3D064C E00CA14C AE02002C */ sw $v0, 0x2c($s0)
/* 3D0650 E00CA150 2402000F */ addiu $v0, $zero, 0xf
/* 3D0654 E00CA154 AE030018 */ sw $v1, 0x18($s0)
.LE00CA158:
/* 3D0658 E00CA158 AE020030 */ sw $v0, 0x30($s0)
/* 3D065C E00CA15C 0803286B */ j .LE00CA1AC
/* 3D0660 E00CA160 AE030024 */ sw $v1, 0x24($s0)
.LE00CA164:
/* 3D0664 E00CA164 2403009B */ addiu $v1, $zero, 0x9b
/* 3D0668 E00CA168 AE030028 */ sw $v1, 0x28($s0)
/* 3D066C E00CA16C 2403007D */ addiu $v1, $zero, 0x7d
/* 3D0670 E00CA170 AE020018 */ sw $v0, 0x18($s0)
/* 3D0674 E00CA174 AE00001C */ sw $zero, 0x1c($s0)
/* 3D0678 E00CA178 AE000020 */ sw $zero, 0x20($s0)
/* 3D067C E00CA17C 08032869 */ j .LE00CA1A4
/* 3D0680 E00CA180 AE03002C */ sw $v1, 0x2c($s0)
.LE00CA184:
/* 3D0684 E00CA184 240200FF */ addiu $v0, $zero, 0xff
/* 3D0688 E00CA188 24030041 */ addiu $v1, $zero, 0x41
/* 3D068C E00CA18C AE03002C */ sw $v1, 0x2c($s0)
/* 3D0690 E00CA190 24030014 */ addiu $v1, $zero, 0x14
/* 3D0694 E00CA194 AE020018 */ sw $v0, 0x18($s0)
/* 3D0698 E00CA198 AE02001C */ sw $v0, 0x1c($s0)
/* 3D069C E00CA19C AE020020 */ sw $v0, 0x20($s0)
/* 3D06A0 E00CA1A0 AE020028 */ sw $v0, 0x28($s0)
.LE00CA1A4:
/* 3D06A4 E00CA1A4 AE030030 */ sw $v1, 0x30($s0)
/* 3D06A8 E00CA1A8 AE020024 */ sw $v0, 0x24($s0)
.LE00CA1AC:
/* 3D06AC E00CA1AC 2403001D */ addiu $v1, $zero, 0x1d
/* 3D06B0 E00CA1B0 26020074 */ addiu $v0, $s0, 0x74
.LE00CA1B4:
/* 3D06B4 E00CA1B4 E6140038 */ swc1 $f20, 0x38($s0)
/* 3D06B8 E00CA1B8 E616003C */ swc1 $f22, 0x3c($s0)
/* 3D06BC E00CA1BC E6180040 */ swc1 $f24, 0x40($s0)
.LE00CA1C0:
/* 3D06C0 E00CA1C0 AC400230 */ sw $zero, 0x230($v0)
/* 3D06C4 E00CA1C4 2463FFFF */ addiu $v1, $v1, -1
/* 3D06C8 E00CA1C8 0461FFFD */ bgez $v1, .LE00CA1C0
/* 3D06CC E00CA1CC 2442FFFC */ addiu $v0, $v0, -4
/* 3D06D0 E00CA1D0 2404001E */ addiu $a0, $zero, 0x1e
/* 3D06D4 E00CA1D4 24020001 */ addiu $v0, $zero, 1
/* 3D06D8 E00CA1D8 AE0002A8 */ sw $zero, 0x2a8($s0)
/* 3D06DC E00CA1DC E6140050 */ swc1 $f20, 0x50($s0)
/* 3D06E0 E00CA1E0 E61600C8 */ swc1 $f22, 0xc8($s0)
/* 3D06E4 E00CA1E4 E6180140 */ swc1 $f24, 0x140($s0)
/* 3D06E8 E00CA1E8 AE020230 */ sw $v0, 0x230($s0)
/* 3D06EC E00CA1EC AE0001B8 */ sw $zero, 0x1b8($s0)
/* 3D06F0 E00CA1F0 0C080138 */ jal shim_rand_int
/* 3D06F4 E00CA1F4 AE0002AC */ sw $zero, 0x2ac($s0)
/* 3D06F8 E00CA1F8 2443000A */ addiu $v1, $v0, 0xa
/* 3D06FC E00CA1FC 0240102D */ daddu $v0, $s2, $zero
/* 3D0700 E00CA200 44830000 */ mtc1 $v1, $f0
/* 3D0704 E00CA204 00000000 */ nop
/* 3D0708 E00CA208 46800020 */ cvt.s.w $f0, $f0
/* 3D070C E00CA20C E6000044 */ swc1 $f0, 0x44($s0)
/* 3D0710 E00CA210 AE000048 */ sw $zero, 0x48($s0)
/* 3D0714 E00CA214 AE00004C */ sw $zero, 0x4c($s0)
/* 3D0718 E00CA218 8FBF0038 */ lw $ra, 0x38($sp)
/* 3D071C E00CA21C 8FB30034 */ lw $s3, 0x34($sp)
/* 3D0720 E00CA220 8FB20030 */ lw $s2, 0x30($sp)
/* 3D0724 E00CA224 8FB1002C */ lw $s1, 0x2c($sp)
/* 3D0728 E00CA228 8FB00028 */ lw $s0, 0x28($sp)
/* 3D072C E00CA22C D7B80050 */ ldc1 $f24, 0x50($sp)
/* 3D0730 E00CA230 D7B60048 */ ldc1 $f22, 0x48($sp)
/* 3D0734 E00CA234 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 3D0738 E00CA238 03E00008 */ jr $ra
/* 3D073C E00CA23C 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,156 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel fx_65_update
/* 3D0748 E00CA248 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 3D074C E00CA24C AFBF0018 */ sw $ra, 0x18($sp)
/* 3D0750 E00CA250 AFB10014 */ sw $s1, 0x14($sp)
/* 3D0754 E00CA254 AFB00010 */ sw $s0, 0x10($sp)
/* 3D0758 E00CA258 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 3D075C E00CA25C 8C830000 */ lw $v1, ($a0)
/* 3D0760 E00CA260 8C90000C */ lw $s0, 0xc($a0)
/* 3D0764 E00CA264 30620010 */ andi $v0, $v1, 0x10
/* 3D0768 E00CA268 8E050000 */ lw $a1, ($s0)
/* 3D076C E00CA26C 10400005 */ beqz $v0, .LE00CA284
/* 3D0770 E00CA270 2402FFEF */ addiu $v0, $zero, -0x11
/* 3D0774 E00CA274 00621024 */ and $v0, $v1, $v0
/* 3D0778 E00CA278 AC820000 */ sw $v0, ($a0)
/* 3D077C E00CA27C 24020010 */ addiu $v0, $zero, 0x10
/* 3D0780 E00CA280 AE020010 */ sw $v0, 0x10($s0)
.LE00CA284:
/* 3D0784 E00CA284 8E030010 */ lw $v1, 0x10($s0)
/* 3D0788 E00CA288 286203E8 */ slti $v0, $v1, 0x3e8
/* 3D078C E00CA28C 10400002 */ beqz $v0, .LE00CA298
/* 3D0790 E00CA290 2462FFFF */ addiu $v0, $v1, -1
/* 3D0794 E00CA294 AE020010 */ sw $v0, 0x10($s0)
.LE00CA298:
/* 3D0798 E00CA298 8E020014 */ lw $v0, 0x14($s0)
/* 3D079C E00CA29C 8E030010 */ lw $v1, 0x10($s0)
/* 3D07A0 E00CA2A0 24420001 */ addiu $v0, $v0, 1
/* 3D07A4 E00CA2A4 04610005 */ bgez $v1, .LE00CA2BC
/* 3D07A8 E00CA2A8 AE020014 */ sw $v0, 0x14($s0)
/* 3D07AC E00CA2AC 0C080128 */ jal shim_remove_effect
/* 3D07B0 E00CA2B0 00000000 */ nop
/* 3D07B4 E00CA2B4 0803291B */ j .LE00CA46C
/* 3D07B8 E00CA2B8 00000000 */ nop
.LE00CA2BC:
/* 3D07BC E00CA2BC 0040882D */ daddu $s1, $v0, $zero
/* 3D07C0 E00CA2C0 28620010 */ slti $v0, $v1, 0x10
/* 3D07C4 E00CA2C4 10400002 */ beqz $v0, .LE00CA2D0
/* 3D07C8 E00CA2C8 00031100 */ sll $v0, $v1, 4
/* 3D07CC E00CA2CC AE020024 */ sw $v0, 0x24($s0)
.LE00CA2D0:
/* 3D07D0 E00CA2D0 24020003 */ addiu $v0, $zero, 3
/* 3D07D4 E00CA2D4 14A20020 */ bne $a1, $v0, .LE00CA358
/* 3D07D8 E00CA2D8 3C028888 */ lui $v0, %hi(D_8887FFFB)
/* 3D07DC E00CA2DC 0C080138 */ jal shim_rand_int
/* 3D07E0 E00CA2E0 2404000A */ addiu $a0, $zero, 0xa
/* 3D07E4 E00CA2E4 2442FFFB */ addiu $v0, $v0, %lo(D_8887FFFB)
/* 3D07E8 E00CA2E8 C6000044 */ lwc1 $f0, 0x44($s0)
/* 3D07EC E00CA2EC 44821000 */ mtc1 $v0, $f2
/* 3D07F0 E00CA2F0 00000000 */ nop
/* 3D07F4 E00CA2F4 468010A0 */ cvt.s.w $f2, $f2
/* 3D07F8 E00CA2F8 46020000 */ add.s $f0, $f0, $f2
/* 3D07FC E00CA2FC 2404000A */ addiu $a0, $zero, 0xa
/* 3D0800 E00CA300 0C080138 */ jal shim_rand_int
/* 3D0804 E00CA304 E6000044 */ swc1 $f0, 0x44($s0)
/* 3D0808 E00CA308 2442FFFB */ addiu $v0, $v0, -5
/* 3D080C E00CA30C 44820000 */ mtc1 $v0, $f0
/* 3D0810 E00CA310 00000000 */ nop
/* 3D0814 E00CA314 46800020 */ cvt.s.w $f0, $f0
/* 3D0818 E00CA318 C6020048 */ lwc1 $f2, 0x48($s0)
/* 3D081C E00CA31C C6060038 */ lwc1 $f6, 0x38($s0)
/* 3D0820 E00CA320 46001080 */ add.s $f2, $f2, $f0
/* 3D0824 E00CA324 C6000044 */ lwc1 $f0, 0x44($s0)
/* 3D0828 E00CA328 C6040040 */ lwc1 $f4, 0x40($s0)
/* 3D082C E00CA32C 46003180 */ add.s $f6, $f6, $f0
/* 3D0830 E00CA330 C600004C */ lwc1 $f0, 0x4c($s0)
/* 3D0834 E00CA334 46002100 */ add.s $f4, $f4, $f0
/* 3D0838 E00CA338 E6020048 */ swc1 $f2, 0x48($s0)
/* 3D083C E00CA33C C602003C */ lwc1 $f2, 0x3c($s0)
/* 3D0840 E00CA340 C6000048 */ lwc1 $f0, 0x48($s0)
/* 3D0844 E00CA344 46001080 */ add.s $f2, $f2, $f0
/* 3D0848 E00CA348 E6060038 */ swc1 $f6, 0x38($s0)
/* 3D084C E00CA34C E6040040 */ swc1 $f4, 0x40($s0)
/* 3D0850 E00CA350 E602003C */ swc1 $f2, 0x3c($s0)
/* 3D0854 E00CA354 3C028888 */ lui $v0, 0x8888
.LE00CA358:
/* 3D0858 E00CA358 8E0402A8 */ lw $a0, 0x2a8($s0)
/* 3D085C E00CA35C 34428889 */ ori $v0, $v0, 0x8889
/* 3D0860 E00CA360 00820018 */ mult $a0, $v0
/* 3D0864 E00CA364 C6080038 */ lwc1 $f8, 0x38($s0)
/* 3D0868 E00CA368 C606003C */ lwc1 $f6, 0x3c($s0)
/* 3D086C E00CA36C C60A0040 */ lwc1 $f10, 0x40($s0)
/* 3D0870 E00CA370 00041FC3 */ sra $v1, $a0, 0x1f
/* 3D0874 E00CA374 00003010 */ mfhi $a2
/* 3D0878 E00CA378 00C41021 */ addu $v0, $a2, $a0
/* 3D087C E00CA37C 00021103 */ sra $v0, $v0, 4
/* 3D0880 E00CA380 00431823 */ subu $v1, $v0, $v1
/* 3D0884 E00CA384 00031100 */ sll $v0, $v1, 4
/* 3D0888 E00CA388 00431023 */ subu $v0, $v0, $v1
/* 3D088C E00CA38C 00021040 */ sll $v0, $v0, 1
/* 3D0890 E00CA390 00821823 */ subu $v1, $a0, $v0
/* 3D0894 E00CA394 00031080 */ sll $v0, $v1, 2
/* 3D0898 E00CA398 02021021 */ addu $v0, $s0, $v0
/* 3D089C E00CA39C C4420050 */ lwc1 $f2, 0x50($v0)
/* 3D08A0 E00CA3A0 C44000C8 */ lwc1 $f0, 0xc8($v0)
/* 3D08A4 E00CA3A4 C44C0140 */ lwc1 $f12, 0x140($v0)
/* 3D08A8 E00CA3A8 46024032 */ c.eq.s $f8, $f2
/* 3D08AC E00CA3AC 00000000 */ nop
/* 3D08B0 E00CA3B0 45000009 */ bc1f .LE00CA3D8
/* 3D08B4 E00CA3B4 00031880 */ sll $v1, $v1, 2
/* 3D08B8 E00CA3B8 46003032 */ c.eq.s $f6, $f0
/* 3D08BC E00CA3BC 00000000 */ nop
/* 3D08C0 E00CA3C0 45000005 */ bc1f .LE00CA3D8
/* 3D08C4 E00CA3C4 00000000 */ nop
/* 3D08C8 E00CA3C8 460C5032 */ c.eq.s $f10, $f12
/* 3D08CC E00CA3CC 00000000 */ nop
/* 3D08D0 E00CA3D0 45010026 */ bc1t .LE00CA46C
/* 3D08D4 E00CA3D4 00000000 */ nop
.LE00CA3D8:
/* 3D08D8 E00CA3D8 02031821 */ addu $v1, $s0, $v1
/* 3D08DC E00CA3DC 8E0202A8 */ lw $v0, 0x2a8($s0)
/* 3D08E0 E00CA3E0 C47402AC */ lwc1 $f20, 0x2ac($v1)
/* 3D08E4 E00CA3E4 24420001 */ addiu $v0, $v0, 1
/* 3D08E8 E00CA3E8 AE0202A8 */ sw $v0, 0x2a8($s0)
/* 3D08EC E00CA3EC 2842001E */ slti $v0, $v0, 0x1e
/* 3D08F0 E00CA3F0 50400001 */ beql $v0, $zero, .LE00CA3F8
/* 3D08F4 E00CA3F4 AE0002A8 */ sw $zero, 0x2a8($s0)
.LE00CA3F8:
/* 3D08F8 E00CA3F8 46024101 */ sub.s $f4, $f8, $f2
/* 3D08FC E00CA3FC 46042102 */ mul.s $f4, $f4, $f4
/* 3D0900 E00CA400 00000000 */ nop
/* 3D0904 E00CA404 46003001 */ sub.s $f0, $f6, $f0
/* 3D0908 E00CA408 46000002 */ mul.s $f0, $f0, $f0
/* 3D090C E00CA40C 00000000 */ nop
/* 3D0910 E00CA410 8E0302A8 */ lw $v1, 0x2a8($s0)
/* 3D0914 E00CA414 460C5081 */ sub.s $f2, $f10, $f12
/* 3D0918 E00CA418 00031080 */ sll $v0, $v1, 2
/* 3D091C E00CA41C 46021082 */ mul.s $f2, $f2, $f2
/* 3D0920 E00CA420 00000000 */ nop
/* 3D0924 E00CA424 02028021 */ addu $s0, $s0, $v0
/* 3D0928 E00CA428 24020001 */ addiu $v0, $zero, 1
/* 3D092C E00CA42C AE020230 */ sw $v0, 0x230($s0)
/* 3D0930 E00CA430 E6080050 */ swc1 $f8, 0x50($s0)
/* 3D0934 E00CA434 46002100 */ add.s $f4, $f4, $f0
/* 3D0938 E00CA438 E60600C8 */ swc1 $f6, 0xc8($s0)
/* 3D093C E00CA43C 44800000 */ mtc1 $zero, $f0
/* 3D0940 E00CA440 46022300 */ add.s $f12, $f4, $f2
/* 3D0944 E00CA444 E60A0140 */ swc1 $f10, 0x140($s0)
/* 3D0948 E00CA448 46006032 */ c.eq.s $f12, $f0
/* 3D094C E00CA44C 00000000 */ nop
/* 3D0950 E00CA450 45010004 */ bc1t .LE00CA464
/* 3D0954 E00CA454 AE1101B8 */ sw $s1, 0x1b8($s0)
/* 3D0958 E00CA458 0C080154 */ jal shim_sqrtf
/* 3D095C E00CA45C 00000000 */ nop
/* 3D0960 E00CA460 46000306 */ mov.s $f12, $f0
.LE00CA464:
/* 3D0964 E00CA464 460CA000 */ add.s $f0, $f20, $f12
/* 3D0968 E00CA468 E60002AC */ swc1 $f0, 0x2ac($s0)
.LE00CA46C:
/* 3D096C E00CA46C 8FBF0018 */ lw $ra, 0x18($sp)
/* 3D0970 E00CA470 8FB10014 */ lw $s1, 0x14($sp)
/* 3D0974 E00CA474 8FB00010 */ lw $s0, 0x10($sp)
/* 3D0978 E00CA478 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 3D097C E00CA47C 03E00008 */ jr $ra
/* 3D0980 E00CA480 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,186 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0020000
/* 333EC0 E0020000 27BDFF78 */ addiu $sp, $sp, -0x88
/* 333EC4 E0020004 AFB1005C */ sw $s1, 0x5c($sp)
/* 333EC8 E0020008 0080882D */ daddu $s1, $a0, $zero
/* 333ECC E002000C AFB30064 */ sw $s3, 0x64($sp)
/* 333ED0 E0020010 AFB00058 */ sw $s0, 0x58($sp)
/* 333ED4 E0020014 3C108007 */ lui $s0, %hi(gCurrentCameraID)
/* 333ED8 E0020018 26107410 */ addiu $s0, $s0, %lo(gCurrentCameraID)
/* 333EDC E002001C AFBF0068 */ sw $ra, 0x68($sp)
/* 333EE0 E0020020 AFB20060 */ sw $s2, 0x60($sp)
/* 333EE4 E0020024 F7B80080 */ sdc1 $f24, 0x80($sp)
/* 333EE8 E0020028 F7B60078 */ sdc1 $f22, 0x78($sp)
/* 333EEC E002002C F7B40070 */ sdc1 $f20, 0x70($sp)
/* 333EF0 E0020030 8E030000 */ lw $v1, ($s0)
/* 333EF4 E0020034 C638001C */ lwc1 $f24, 0x1c($s1)
/* 333EF8 E0020038 C6360020 */ lwc1 $f22, 0x20($s1)
/* 333EFC E002003C 00031080 */ sll $v0, $v1, 2
/* 333F00 E0020040 00431021 */ addu $v0, $v0, $v1
/* 333F04 E0020044 00021080 */ sll $v0, $v0, 2
/* 333F08 E0020048 00431023 */ subu $v0, $v0, $v1
/* 333F0C E002004C 000218C0 */ sll $v1, $v0, 3
/* 333F10 E0020050 00431021 */ addu $v0, $v0, $v1
/* 333F14 E0020054 000210C0 */ sll $v0, $v0, 3
/* 333F18 E0020058 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 333F1C E002005C 00220821 */ addu $at, $at, $v0
/* 333F20 E0020060 C42C1DEC */ lwc1 $f12, %lo(gCameras+0x6C)($at)
/* 333F24 E0020064 8E32003C */ lw $s2, 0x3c($s1)
/* 333F28 E0020068 0C080140 */ jal shim_sin_deg
/* 333F2C E002006C 00A0982D */ daddu $s3, $a1, $zero
/* 333F30 E0020070 8E030000 */ lw $v1, ($s0)
/* 333F34 E0020074 00031080 */ sll $v0, $v1, 2
/* 333F38 E0020078 00431021 */ addu $v0, $v0, $v1
/* 333F3C E002007C 00021080 */ sll $v0, $v0, 2
/* 333F40 E0020080 00431023 */ subu $v0, $v0, $v1
/* 333F44 E0020084 000218C0 */ sll $v1, $v0, 3
/* 333F48 E0020088 00431021 */ addu $v0, $v0, $v1
/* 333F4C E002008C 000210C0 */ sll $v0, $v0, 3
/* 333F50 E0020090 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 333F54 E0020094 00220821 */ addu $at, $at, $v0
/* 333F58 E0020098 C42C1DEC */ lwc1 $f12, %lo(gCameras+0x6C)($at)
/* 333F5C E002009C 0C080144 */ jal shim_cos_deg
/* 333F60 E00200A0 46000506 */ mov.s $f20, $f0
/* 333F64 E00200A4 00131080 */ sll $v0, $s3, 2
/* 333F68 E00200A8 46000007 */ neg.s $f0, $f0
/* 333F6C E00200AC E7A00010 */ swc1 $f0, 0x10($sp)
/* 333F70 E00200B0 3C0141A0 */ lui $at, 0x41a0
/* 333F74 E00200B4 44810000 */ mtc1 $at, $f0
/* 333F78 E00200B8 00531021 */ addu $v0, $v0, $s3
/* 333F7C E00200BC 4600C001 */ sub.s $f0, $f24, $f0
/* 333F80 E00200C0 00021080 */ sll $v0, $v0, 2
/* 333F84 E00200C4 44821000 */ mtc1 $v0, $f2
/* 333F88 E00200C8 00000000 */ nop
/* 333F8C E00200CC 468010A0 */ cvt.s.w $f2, $f2
/* 333F90 E00200D0 46020000 */ add.s $f0, $f0, $f2
/* 333F94 E00200D4 27A40018 */ addiu $a0, $sp, 0x18
/* 333F98 E00200D8 4406A000 */ mfc1 $a2, $f20
/* 333F9C E00200DC 46000007 */ neg.s $f0, $f0
/* 333FA0 E00200E0 44050000 */ mfc1 $a1, $f0
/* 333FA4 E00200E4 0C080104 */ jal shim_guRotateF
/* 333FA8 E00200E8 0000382D */ daddu $a3, $zero, $zero
/* 333FAC E00200EC 2402FFFF */ addiu $v0, $zero, -1
/* 333FB0 E00200F0 1642001F */ bne $s2, $v0, .LE0020170
/* 333FB4 E00200F4 00000000 */ nop
/* 333FB8 E00200F8 3C014180 */ lui $at, 0x4180
/* 333FBC E00200FC 44813000 */ mtc1 $at, $f6
/* 333FC0 E0020100 00000000 */ nop
/* 333FC4 E0020104 4606B180 */ add.s $f6, $f22, $f6
/* 333FC8 E0020108 C7A40028 */ lwc1 $f4, 0x28($sp)
/* 333FCC E002010C 46062102 */ mul.s $f4, $f4, $f6
/* 333FD0 E0020110 00000000 */ nop
/* 333FD4 E0020114 3C028011 */ lui $v0, %hi(gPlayerStatus)
/* 333FD8 E0020118 2442EFC8 */ addiu $v0, $v0, %lo(gPlayerStatus)
/* 333FDC E002011C C4400028 */ lwc1 $f0, 0x28($v0)
/* 333FE0 E0020120 C6220010 */ lwc1 $f2, 0x10($s1)
/* 333FE4 E0020124 46020000 */ add.s $f0, $f0, $f2
/* 333FE8 E0020128 46040000 */ add.s $f0, $f0, $f4
/* 333FEC E002012C E6200004 */ swc1 $f0, 4($s1)
/* 333FF0 E0020130 C7A4002C */ lwc1 $f4, 0x2c($sp)
/* 333FF4 E0020134 46062102 */ mul.s $f4, $f4, $f6
/* 333FF8 E0020138 00000000 */ nop
/* 333FFC E002013C C6220014 */ lwc1 $f2, 0x14($s1)
/* 334000 E0020140 C440002C */ lwc1 $f0, 0x2c($v0)
/* 334004 E0020144 46020000 */ add.s $f0, $f0, $f2
/* 334008 E0020148 46040000 */ add.s $f0, $f0, $f4
/* 33400C E002014C E6200008 */ swc1 $f0, 8($s1)
/* 334010 E0020150 C7A40030 */ lwc1 $f4, 0x30($sp)
/* 334014 E0020154 46062102 */ mul.s $f4, $f4, $f6
/* 334018 E0020158 00000000 */ nop
/* 33401C E002015C C6220018 */ lwc1 $f2, 0x18($s1)
/* 334020 E0020160 C4400030 */ lwc1 $f0, 0x30($v0)
/* 334024 E0020164 46020000 */ add.s $f0, $f0, $f2
/* 334028 E0020168 0800808F */ j .LE002023C
/* 33402C E002016C 46040000 */ add.s $f0, $f0, $f4
.LE0020170:
/* 334030 E0020170 1240001D */ beqz $s2, .LE00201E8
/* 334034 E0020174 00000000 */ nop
/* 334038 E0020178 3C014180 */ lui $at, 0x4180
/* 33403C E002017C 44813000 */ mtc1 $at, $f6
/* 334040 E0020180 00000000 */ nop
/* 334044 E0020184 4606B180 */ add.s $f6, $f22, $f6
/* 334048 E0020188 C7A40028 */ lwc1 $f4, 0x28($sp)
/* 33404C E002018C 46062102 */ mul.s $f4, $f4, $f6
/* 334050 E0020190 00000000 */ nop
/* 334054 E0020194 C6400038 */ lwc1 $f0, 0x38($s2)
/* 334058 E0020198 C6220010 */ lwc1 $f2, 0x10($s1)
/* 33405C E002019C 46020000 */ add.s $f0, $f0, $f2
/* 334060 E00201A0 46040000 */ add.s $f0, $f0, $f4
/* 334064 E00201A4 E6200004 */ swc1 $f0, 4($s1)
/* 334068 E00201A8 C7A4002C */ lwc1 $f4, 0x2c($sp)
/* 33406C E00201AC 46062102 */ mul.s $f4, $f4, $f6
/* 334070 E00201B0 00000000 */ nop
/* 334074 E00201B4 C6220014 */ lwc1 $f2, 0x14($s1)
/* 334078 E00201B8 C640003C */ lwc1 $f0, 0x3c($s2)
/* 33407C E00201BC 46020000 */ add.s $f0, $f0, $f2
/* 334080 E00201C0 46040000 */ add.s $f0, $f0, $f4
/* 334084 E00201C4 E6200008 */ swc1 $f0, 8($s1)
/* 334088 E00201C8 C7A40030 */ lwc1 $f4, 0x30($sp)
/* 33408C E00201CC 46062102 */ mul.s $f4, $f4, $f6
/* 334090 E00201D0 00000000 */ nop
/* 334094 E00201D4 C6220018 */ lwc1 $f2, 0x18($s1)
/* 334098 E00201D8 C6400040 */ lwc1 $f0, 0x40($s2)
/* 33409C E00201DC 46020000 */ add.s $f0, $f0, $f2
/* 3340A0 E00201E0 0800808F */ j .LE002023C
/* 3340A4 E00201E4 46040000 */ add.s $f0, $f0, $f4
.LE00201E8:
/* 3340A8 E00201E8 3C014180 */ lui $at, 0x4180
/* 3340AC E00201EC 44812000 */ mtc1 $at, $f4
/* 3340B0 E00201F0 00000000 */ nop
/* 3340B4 E00201F4 4604B100 */ add.s $f4, $f22, $f4
/* 3340B8 E00201F8 C7A20028 */ lwc1 $f2, 0x28($sp)
/* 3340BC E00201FC 46041082 */ mul.s $f2, $f2, $f4
/* 3340C0 E0020200 00000000 */ nop
/* 3340C4 E0020204 C6200010 */ lwc1 $f0, 0x10($s1)
/* 3340C8 E0020208 46020000 */ add.s $f0, $f0, $f2
/* 3340CC E002020C E6200004 */ swc1 $f0, 4($s1)
/* 3340D0 E0020210 C7A2002C */ lwc1 $f2, 0x2c($sp)
/* 3340D4 E0020214 46041082 */ mul.s $f2, $f2, $f4
/* 3340D8 E0020218 00000000 */ nop
/* 3340DC E002021C C6200014 */ lwc1 $f0, 0x14($s1)
/* 3340E0 E0020220 46020000 */ add.s $f0, $f0, $f2
/* 3340E4 E0020224 E6200008 */ swc1 $f0, 8($s1)
/* 3340E8 E0020228 C7A20030 */ lwc1 $f2, 0x30($sp)
/* 3340EC E002022C 46041082 */ mul.s $f2, $f2, $f4
/* 3340F0 E0020230 00000000 */ nop
/* 3340F4 E0020234 C6200018 */ lwc1 $f0, 0x18($s1)
/* 3340F8 E0020238 46020000 */ add.s $f0, $f0, $f2
.LE002023C:
/* 3340FC E002023C E620000C */ swc1 $f0, 0xc($s1)
/* 334100 E0020240 3C014140 */ lui $at, 0x4140
/* 334104 E0020244 44810000 */ mtc1 $at, $f0
/* 334108 E0020248 3C013F00 */ lui $at, 0x3f00
/* 33410C E002024C 44811000 */ mtc1 $at, $f2
/* 334110 E0020250 4600B003 */ div.s $f0, $f22, $f0
/* 334114 E0020254 46020002 */ mul.s $f0, $f0, $f2
/* 334118 E0020258 00000000 */ nop
/* 33411C E002025C 00131080 */ sll $v0, $s3, 2
/* 334120 E0020260 3C0141A0 */ lui $at, 0x41a0
/* 334124 E0020264 44812000 */ mtc1 $at, $f4
/* 334128 E0020268 00531021 */ addu $v0, $v0, $s3
/* 33412C E002026C 4604C101 */ sub.s $f4, $f24, $f4
/* 334130 E0020270 00021080 */ sll $v0, $v0, 2
/* 334134 E0020274 44821000 */ mtc1 $v0, $f2
/* 334138 E0020278 00000000 */ nop
/* 33413C E002027C 468010A0 */ cvt.s.w $f2, $f2
/* 334140 E0020280 46022100 */ add.s $f4, $f4, $f2
/* 334144 E0020284 3C013FE0 */ lui $at, 0x3fe0
/* 334148 E0020288 44811800 */ mtc1 $at, $f3
/* 33414C E002028C 44801000 */ mtc1 $zero, $f2
/* 334150 E0020290 46000021 */ cvt.d.s $f0, $f0
/* 334154 E0020294 46220000 */ add.d $f0, $f0, $f2
/* 334158 E0020298 E6240024 */ swc1 $f4, 0x24($s1)
/* 33415C E002029C 46200020 */ cvt.s.d $f0, $f0
/* 334160 E00202A0 E6200028 */ swc1 $f0, 0x28($s1)
/* 334164 E00202A4 8FBF0068 */ lw $ra, 0x68($sp)
/* 334168 E00202A8 8FB30064 */ lw $s3, 0x64($sp)
/* 33416C E00202AC 8FB20060 */ lw $s2, 0x60($sp)
/* 334170 E00202B0 8FB1005C */ lw $s1, 0x5c($sp)
/* 334174 E00202B4 8FB00058 */ lw $s0, 0x58($sp)
/* 334178 E00202B8 D7B80080 */ ldc1 $f24, 0x80($sp)
/* 33417C E00202BC D7B60078 */ ldc1 $f22, 0x78($sp)
/* 334180 E00202C0 D7B40070 */ ldc1 $f20, 0x70($sp)
/* 334184 E00202C4 03E00008 */ jr $ra
/* 334188 E00202C8 27BD0088 */ addiu $sp, $sp, 0x88

View File

@ -1,237 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0068600
.double 0.97, 0.0
.section .text
glabel ending_decals_appendGfx
/* 36AB04 E0068234 27BDFF78 */ addiu $sp, $sp, -0x88
/* 36AB08 E0068238 3C07DB06 */ lui $a3, 0xdb06
/* 36AB0C E006823C AFB10064 */ sw $s1, 0x64($sp)
/* 36AB10 E0068240 3C11800A */ lui $s1, %hi(gMasterGfxPos)
/* 36AB14 E0068244 2631A66C */ addiu $s1, $s1, %lo(gMasterGfxPos)
/* 36AB18 E0068248 34E70024 */ ori $a3, $a3, 0x24
/* 36AB1C E006824C AFB3006C */ sw $s3, 0x6c($sp)
/* 36AB20 E0068250 3C130001 */ lui $s3, 1
/* 36AB24 E0068254 AFBF0080 */ sw $ra, 0x80($sp)
/* 36AB28 E0068258 AFB7007C */ sw $s7, 0x7c($sp)
/* 36AB2C E006825C AFB60078 */ sw $s6, 0x78($sp)
/* 36AB30 E0068260 AFB50074 */ sw $s5, 0x74($sp)
/* 36AB34 E0068264 AFB40070 */ sw $s4, 0x70($sp)
/* 36AB38 E0068268 AFB20068 */ sw $s2, 0x68($sp)
/* 36AB3C E006826C AFB00060 */ sw $s0, 0x60($sp)
/* 36AB40 E0068270 8E260000 */ lw $a2, ($s1)
/* 36AB44 E0068274 8C94000C */ lw $s4, 0xc($a0)
/* 36AB48 E0068278 44800000 */ mtc1 $zero, $f0
/* 36AB4C E006827C 00C0182D */ daddu $v1, $a2, $zero
/* 36AB50 E0068280 24C60008 */ addiu $a2, $a2, 8
/* 36AB54 E0068284 8E820000 */ lw $v0, ($s4)
/* 36AB58 E0068288 44050000 */ mfc1 $a1, $f0
/* 36AB5C E006828C 8E960020 */ lw $s6, 0x20($s4)
/* 36AB60 E0068290 00021080 */ sll $v0, $v0, 2
/* 36AB64 E0068294 3C15E007 */ lui $s5, %hi(D_E00685B0)
/* 36AB68 E0068298 02A2A821 */ addu $s5, $s5, $v0
/* 36AB6C E006829C 8EB585B0 */ lw $s5, %lo(D_E00685B0)($s5)
/* 36AB70 E00682A0 3C17E007 */ lui $s7, %hi(D_E00685F4)
/* 36AB74 E00682A4 02E2B821 */ addu $s7, $s7, $v0
/* 36AB78 E00682A8 8EF785F4 */ lw $s7, %lo(D_E00685F4)($s7)
/* 36AB7C E00682AC 3C02E700 */ lui $v0, 0xe700
/* 36AB80 E00682B0 AC620000 */ sw $v0, ($v1)
/* 36AB84 E00682B4 AC600004 */ sw $zero, 4($v1)
/* 36AB88 E00682B8 ACC70000 */ sw $a3, ($a2)
/* 36AB8C E00682BC 8C820010 */ lw $v0, 0x10($a0)
/* 36AB90 E00682C0 3C048000 */ lui $a0, 0x8000
/* 36AB94 E00682C4 8C42001C */ lw $v0, 0x1c($v0)
/* 36AB98 E00682C8 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 36AB9C E00682CC 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 36ABA0 E00682D0 00441021 */ addu $v0, $v0, $a0
/* 36ABA4 E00682D4 ACC20004 */ sw $v0, 4($a2)
/* 36ABA8 E00682D8 00031080 */ sll $v0, $v1, 2
/* 36ABAC E00682DC 00431021 */ addu $v0, $v0, $v1
/* 36ABB0 E00682E0 00021080 */ sll $v0, $v0, 2
/* 36ABB4 E00682E4 00431023 */ subu $v0, $v0, $v1
/* 36ABB8 E00682E8 000218C0 */ sll $v1, $v0, 3
/* 36ABBC E00682EC 00431021 */ addu $v0, $v0, $v1
/* 36ABC0 E00682F0 000210C0 */ sll $v0, $v0, 3
/* 36ABC4 E00682F4 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 36ABC8 E00682F8 00220821 */ addu $at, $at, $v0
/* 36ABCC E00682FC C4221DEC */ lwc1 $f2, %lo(gCameras+0x6C)($at)
/* 36ABD0 E0068300 C6800010 */ lwc1 $f0, 0x10($s4)
/* 36ABD4 E0068304 36731630 */ ori $s3, $s3, 0x1630
/* 36ABD8 E0068308 E7A00010 */ swc1 $f0, 0x10($sp)
/* 36ABDC E006830C C6800004 */ lwc1 $f0, 4($s4)
/* 36ABE0 E0068310 00A0382D */ daddu $a3, $a1, $zero
/* 36ABE4 E0068314 E7A00014 */ swc1 $f0, 0x14($sp)
/* 36ABE8 E0068318 C6800008 */ lwc1 $f0, 8($s4)
/* 36ABEC E006831C 46001087 */ neg.s $f2, $f2
/* 36ABF0 E0068320 AE260000 */ sw $a2, ($s1)
/* 36ABF4 E0068324 E7A00018 */ swc1 $f0, 0x18($sp)
/* 36ABF8 E0068328 C680000C */ lwc1 $f0, 0xc($s4)
/* 36ABFC E006832C 24C60008 */ addiu $a2, $a2, 8
/* 36AC00 E0068330 AE260000 */ sw $a2, ($s1)
/* 36AC04 E0068334 44061000 */ mfc1 $a2, $f2
/* 36AC08 E0068338 27A40020 */ addiu $a0, $sp, 0x20
/* 36AC0C E006833C 0C080180 */ jal shim_guPositionF
/* 36AC10 E0068340 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 36AC14 E0068344 27A40020 */ addiu $a0, $sp, 0x20
/* 36AC18 E0068348 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 36AC1C E006834C 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 36AC20 E0068350 3C12800A */ lui $s2, %hi(gDisplayContext)
/* 36AC24 E0068354 2652A674 */ addiu $s2, $s2, %lo(gDisplayContext)
/* 36AC28 E0068358 96050000 */ lhu $a1, ($s0)
/* 36AC2C E006835C 8E420000 */ lw $v0, ($s2)
/* 36AC30 E0068360 00052980 */ sll $a1, $a1, 6
/* 36AC34 E0068364 00B32821 */ addu $a1, $a1, $s3
/* 36AC38 E0068368 0C080118 */ jal shim_guMtxF2L
/* 36AC3C E006836C 00452821 */ addu $a1, $v0, $a1
/* 36AC40 E0068370 8E220000 */ lw $v0, ($s1)
/* 36AC44 E0068374 0040202D */ daddu $a0, $v0, $zero
/* 36AC48 E0068378 24420008 */ addiu $v0, $v0, 8
/* 36AC4C E006837C AE220000 */ sw $v0, ($s1)
/* 36AC50 E0068380 96020000 */ lhu $v0, ($s0)
/* 36AC54 E0068384 3C03DA38 */ lui $v1, 0xda38
/* 36AC58 E0068388 AC830000 */ sw $v1, ($a0)
/* 36AC5C E006838C 24430001 */ addiu $v1, $v0, 1
/* 36AC60 E0068390 3042FFFF */ andi $v0, $v0, 0xffff
/* 36AC64 E0068394 00021180 */ sll $v0, $v0, 6
/* 36AC68 E0068398 A6030000 */ sh $v1, ($s0)
/* 36AC6C E006839C 8E430000 */ lw $v1, ($s2)
/* 36AC70 E00683A0 00531021 */ addu $v0, $v0, $s3
/* 36AC74 E00683A4 00621821 */ addu $v1, $v1, $v0
/* 36AC78 E00683A8 AC830004 */ sw $v1, 4($a0)
/* 36AC7C E00683AC C6820018 */ lwc1 $f2, 0x18($s4)
/* 36AC80 E00683B0 468010A1 */ cvt.d.w $f2, $f2
/* 36AC84 E00683B4 32C20001 */ andi $v0, $s6, 1
/* 36AC88 E00683B8 14400009 */ bnez $v0, .LE00683E0
/* 36AC8C E00683BC 3C031A79 */ lui $v1, 0x1a79
/* 36AC90 E00683C0 3C01E007 */ lui $at, %hi(D_E0068600)
/* 36AC94 E00683C4 D4208600 */ ldc1 $f0, %lo(D_E0068600)($at)
/* 36AC98 E00683C8 46201002 */ mul.d $f0, $f2, $f0
/* 36AC9C E00683CC 00000000 */ nop
/* 36ACA0 E00683D0 4620010D */ trunc.w.d $f4, $f0
/* 36ACA4 E00683D4 44092000 */ mfc1 $t1, $f4
/* 36ACA8 E00683D8 0801A0FB */ j .LE00683EC
/* 36ACAC E00683DC 34631D9E */ ori $v1, $v1, 0x1d9e
.LE00683E0:
/* 36ACB0 E00683E0 4620110D */ trunc.w.d $f4, $f2
/* 36ACB4 E00683E4 44092000 */ mfc1 $t1, $f4
/* 36ACB8 E00683E8 34631D9E */ ori $v1, $v1, 0x1d9e
.LE00683EC:
/* 36ACBC E00683EC 3C0AE300 */ lui $t2, 0xe300
/* 36ACC0 E00683F0 354A1801 */ ori $t2, $t2, 0x1801
/* 36ACC4 E00683F4 3C0BE300 */ lui $t3, 0xe300
/* 36ACC8 E00683F8 3C08800A */ lui $t0, %hi(gMasterGfxPos)
/* 36ACCC E00683FC 2508A66C */ addiu $t0, $t0, %lo(gMasterGfxPos)
/* 36ACD0 E0068400 356B1A01 */ ori $t3, $t3, 0x1a01
/* 36ACD4 E0068404 3C06FB00 */ lui $a2, 0xfb00
/* 36ACD8 E0068408 240D0040 */ addiu $t5, $zero, 0x40
/* 36ACDC E006840C 8D070000 */ lw $a3, ($t0)
/* 36ACE0 E0068410 3C0CDE00 */ lui $t4, 0xde00
/* 36ACE4 E0068414 00E0102D */ daddu $v0, $a3, $zero
/* 36ACE8 E0068418 24E70008 */ addiu $a3, $a3, 8
/* 36ACEC E006841C AD070000 */ sw $a3, ($t0)
/* 36ACF0 E0068420 AC460000 */ sw $a2, ($v0)
/* 36ACF4 E0068424 AC430004 */ sw $v1, 4($v0)
/* 36ACF8 E0068428 24E20008 */ addiu $v0, $a3, 8
/* 36ACFC E006842C AD020000 */ sw $v0, ($t0)
/* 36AD00 E0068430 24E20010 */ addiu $v0, $a3, 0x10
/* 36AD04 E0068434 ACEA0000 */ sw $t2, ($a3)
/* 36AD08 E0068438 ACED0004 */ sw $t5, 4($a3)
/* 36AD0C E006843C AD020000 */ sw $v0, ($t0)
/* 36AD10 E0068440 24E20018 */ addiu $v0, $a3, 0x18
/* 36AD14 E0068444 ACEB0008 */ sw $t3, 8($a3)
/* 36AD18 E0068448 ACE0000C */ sw $zero, 0xc($a3)
/* 36AD1C E006844C AD020000 */ sw $v0, ($t0)
/* 36AD20 E0068450 24E20020 */ addiu $v0, $a3, 0x20
/* 36AD24 E0068454 ACEC0010 */ sw $t4, 0x10($a3)
/* 36AD28 E0068458 ACF70014 */ sw $s7, 0x14($a3)
/* 36AD2C E006845C AD020000 */ sw $v0, ($t0)
/* 36AD30 E0068460 3C02FA00 */ lui $v0, 0xfa00
/* 36AD34 E0068464 ACE20018 */ sw $v0, 0x18($a3)
/* 36AD38 E0068468 92820024 */ lbu $v0, 0x24($s4)
/* 36AD3C E006846C 92840025 */ lbu $a0, 0x25($s4)
/* 36AD40 E0068470 92850026 */ lbu $a1, 0x26($s4)
/* 36AD44 E0068474 24E30028 */ addiu $v1, $a3, 0x28
/* 36AD48 E0068478 AD030000 */ sw $v1, ($t0)
/* 36AD4C E006847C 312300FF */ andi $v1, $t1, 0xff
/* 36AD50 E0068480 ACE60020 */ sw $a2, 0x20($a3)
/* 36AD54 E0068484 00021600 */ sll $v0, $v0, 0x18
/* 36AD58 E0068488 00042400 */ sll $a0, $a0, 0x10
/* 36AD5C E006848C 00441025 */ or $v0, $v0, $a0
/* 36AD60 E0068490 00052A00 */ sll $a1, $a1, 8
/* 36AD64 E0068494 00451025 */ or $v0, $v0, $a1
/* 36AD68 E0068498 00431025 */ or $v0, $v0, $v1
/* 36AD6C E006849C ACE2001C */ sw $v0, 0x1c($a3)
/* 36AD70 E00684A0 92820027 */ lbu $v0, 0x27($s4)
/* 36AD74 E00684A4 92840028 */ lbu $a0, 0x28($s4)
/* 36AD78 E00684A8 92830029 */ lbu $v1, 0x29($s4)
/* 36AD7C E00684AC 00021600 */ sll $v0, $v0, 0x18
/* 36AD80 E00684B0 00042400 */ sll $a0, $a0, 0x10
/* 36AD84 E00684B4 00441025 */ or $v0, $v0, $a0
/* 36AD88 E00684B8 00031A00 */ sll $v1, $v1, 8
/* 36AD8C E00684BC 00431025 */ or $v0, $v0, $v1
/* 36AD90 E00684C0 ACE20024 */ sw $v0, 0x24($a3)
/* 36AD94 E00684C4 3C020900 */ lui $v0, 0x900
/* 36AD98 E00684C8 24421E40 */ addiu $v0, $v0, 0x1e40
/* 36AD9C E00684CC 16A20010 */ bne $s5, $v0, .LE0068510
/* 36ADA0 E00684D0 3C03D838 */ lui $v1, 0xd838
/* 36ADA4 E00684D4 00161842 */ srl $v1, $s6, 1
/* 36ADA8 E00684D8 3C029249 */ lui $v0, 0x9249
/* 36ADAC E00684DC 34422493 */ ori $v0, $v0, 0x2493
/* 36ADB0 E00684E0 00620019 */ multu $v1, $v0
/* 36ADB4 E00684E4 00007010 */ mfhi $t6
/* 36ADB8 E00684E8 000E1882 */ srl $v1, $t6, 2
/* 36ADBC E00684EC 000310C0 */ sll $v0, $v1, 3
/* 36ADC0 E00684F0 00431023 */ subu $v0, $v0, $v1
/* 36ADC4 E00684F4 00021040 */ sll $v0, $v0, 1
/* 36ADC8 E00684F8 02C21023 */ subu $v0, $s6, $v0
/* 36ADCC E00684FC 00021080 */ sll $v0, $v0, 2
/* 36ADD0 E0068500 3C15E007 */ lui $s5, %hi(D_E00685BC)
/* 36ADD4 E0068504 02A2A821 */ addu $s5, $s5, $v0
/* 36ADD8 E0068508 8EB585BC */ lw $s5, %lo(D_E00685BC)($s5)
/* 36ADDC E006850C 3C03D838 */ lui $v1, 0xd838
.LE0068510:
/* 36ADE0 E0068510 34630002 */ ori $v1, $v1, 2
/* 36ADE4 E0068514 24E20030 */ addiu $v0, $a3, 0x30
/* 36ADE8 E0068518 AD020000 */ sw $v0, ($t0)
/* 36ADEC E006851C 24E20038 */ addiu $v0, $a3, 0x38
/* 36ADF0 E0068520 ACEC0028 */ sw $t4, 0x28($a3)
/* 36ADF4 E0068524 ACF5002C */ sw $s5, 0x2c($a3)
/* 36ADF8 E0068528 AD020000 */ sw $v0, ($t0)
/* 36ADFC E006852C 24E20040 */ addiu $v0, $a3, 0x40
/* 36AE00 E0068530 ACE30030 */ sw $v1, 0x30($a3)
/* 36AE04 E0068534 3C03E700 */ lui $v1, 0xe700
/* 36AE08 E0068538 ACED0034 */ sw $t5, 0x34($a3)
/* 36AE0C E006853C AD020000 */ sw $v0, ($t0)
/* 36AE10 E0068540 24E20048 */ addiu $v0, $a3, 0x48
/* 36AE14 E0068544 ACE30038 */ sw $v1, 0x38($a3)
/* 36AE18 E0068548 ACE0003C */ sw $zero, 0x3c($a3)
/* 36AE1C E006854C AD020000 */ sw $v0, ($t0)
/* 36AE20 E0068550 240200C0 */ addiu $v0, $zero, 0xc0
/* 36AE24 E0068554 ACE20044 */ sw $v0, 0x44($a3)
/* 36AE28 E0068558 24E20050 */ addiu $v0, $a3, 0x50
/* 36AE2C E006855C ACEA0040 */ sw $t2, 0x40($a3)
/* 36AE30 E0068560 AD020000 */ sw $v0, ($t0)
/* 36AE34 E0068564 24020030 */ addiu $v0, $zero, 0x30
/* 36AE38 E0068568 ACE2004C */ sw $v0, 0x4c($a3)
/* 36AE3C E006856C 24E20058 */ addiu $v0, $a3, 0x58
/* 36AE40 E0068570 ACEB0048 */ sw $t3, 0x48($a3)
/* 36AE44 E0068574 AD020000 */ sw $v0, ($t0)
/* 36AE48 E0068578 ACE30050 */ sw $v1, 0x50($a3)
/* 36AE4C E006857C ACE00054 */ sw $zero, 0x54($a3)
/* 36AE50 E0068580 8FBF0080 */ lw $ra, 0x80($sp)
/* 36AE54 E0068584 8FB7007C */ lw $s7, 0x7c($sp)
/* 36AE58 E0068588 8FB60078 */ lw $s6, 0x78($sp)
/* 36AE5C E006858C 8FB50074 */ lw $s5, 0x74($sp)
/* 36AE60 E0068590 8FB40070 */ lw $s4, 0x70($sp)
/* 36AE64 E0068594 8FB3006C */ lw $s3, 0x6c($sp)
/* 36AE68 E0068598 8FB20068 */ lw $s2, 0x68($sp)
/* 36AE6C E006859C 8FB10064 */ lw $s1, 0x64($sp)
/* 36AE70 E00685A0 8FB00060 */ lw $s0, 0x60($sp)
/* 36AE74 E00685A4 03E00008 */ jr $ra
/* 36AE78 E00685A8 27BD0088 */ addiu $sp, $sp, 0x88
/* 36AE7C E00685AC 00000000 */ nop

View File

@ -1,89 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel ending_decals_main
/* 36A8D0 E0068000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 36A8D4 E0068004 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 36A8D8 E0068008 4485B000 */ mtc1 $a1, $f22
/* 36A8DC E006800C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 36A8E0 E0068010 4486C000 */ mtc1 $a2, $f24
/* 36A8E4 E0068014 AFB1002C */ sw $s1, 0x2c($sp)
/* 36A8E8 E0068018 0080882D */ daddu $s1, $a0, $zero
/* 36A8EC E006801C F7BA0050 */ sdc1 $f26, 0x50($sp)
/* 36A8F0 E0068020 4487D000 */ mtc1 $a3, $f26
/* 36A8F4 E0068024 27A40010 */ addiu $a0, $sp, 0x10
/* 36A8F8 E0068028 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 36A8FC E006802C C7B40068 */ lwc1 $f20, 0x68($sp)
/* 36A900 E0068030 3C02E007 */ lui $v0, %hi(ending_decals_init)
/* 36A904 E0068034 24428140 */ addiu $v0, $v0, %lo(ending_decals_init)
/* 36A908 E0068038 AFA20018 */ sw $v0, 0x18($sp)
/* 36A90C E006803C 3C02E007 */ lui $v0, %hi(ending_decals_update)
/* 36A910 E0068040 24428148 */ addiu $v0, $v0, %lo(ending_decals_update)
/* 36A914 E0068044 AFA2001C */ sw $v0, 0x1c($sp)
/* 36A918 E0068048 3C02E007 */ lui $v0, %hi(ending_decals_render)
/* 36A91C E006804C 244281D8 */ addiu $v0, $v0, %lo(ending_decals_render)
/* 36A920 E0068050 AFA20020 */ sw $v0, 0x20($sp)
/* 36A924 E0068054 24020034 */ addiu $v0, $zero, 0x34
/* 36A928 E0068058 AFBF0030 */ sw $ra, 0x30($sp)
/* 36A92C E006805C AFB00028 */ sw $s0, 0x28($sp)
/* 36A930 E0068060 AFA00010 */ sw $zero, 0x10($sp)
/* 36A934 E0068064 AFA00024 */ sw $zero, 0x24($sp)
/* 36A938 E0068068 0C080124 */ jal shim_create_effect_instance
/* 36A93C E006806C AFA20014 */ sw $v0, 0x14($sp)
/* 36A940 E0068070 2404002C */ addiu $a0, $zero, 0x2c
/* 36A944 E0068074 24030001 */ addiu $v1, $zero, 1
/* 36A948 E0068078 0040802D */ daddu $s0, $v0, $zero
/* 36A94C E006807C 0C08012C */ jal shim_general_heap_malloc
/* 36A950 E0068080 AE030008 */ sw $v1, 8($s0)
/* 36A954 E0068084 0040202D */ daddu $a0, $v0, $zero
/* 36A958 E0068088 14800003 */ bnez $a0, .LE0068098
/* 36A95C E006808C AE02000C */ sw $v0, 0xc($s0)
.LE0068090:
/* 36A960 E0068090 0801A024 */ j .LE0068090
/* 36A964 E0068094 00000000 */ nop
.LE0068098:
/* 36A968 E0068098 240300FF */ addiu $v1, $zero, 0xff
/* 36A96C E006809C 24020064 */ addiu $v0, $zero, 0x64
/* 36A970 E00680A0 AC910000 */ sw $s1, ($a0)
/* 36A974 E00680A4 E4960004 */ swc1 $f22, 4($a0)
/* 36A978 E00680A8 E4980008 */ swc1 $f24, 8($a0)
/* 36A97C E00680AC E49A000C */ swc1 $f26, 0xc($a0)
/* 36A980 E00680B0 AC830018 */ sw $v1, 0x18($a0)
/* 36A984 E00680B4 E4940014 */ swc1 $f20, 0x14($a0)
/* 36A988 E00680B8 E4940010 */ swc1 $f20, 0x10($a0)
/* 36A98C E00680BC AC82001C */ sw $v0, 0x1c($a0)
/* 36A990 E00680C0 0620000B */ bltz $s1, .LE00680F0
/* 36A994 E00680C4 AC800020 */ sw $zero, 0x20($a0)
/* 36A998 E00680C8 2A220002 */ slti $v0, $s1, 2
/* 36A99C E00680CC 10400009 */ beqz $v0, .LE00680F4
/* 36A9A0 E00680D0 240200FF */ addiu $v0, $zero, 0xff
/* 36A9A4 E00680D4 A0800024 */ sb $zero, 0x24($a0)
/* 36A9A8 E00680D8 A0800025 */ sb $zero, 0x25($a0)
/* 36A9AC E00680DC A0800026 */ sb $zero, 0x26($a0)
/* 36A9B0 E00680E0 A0830027 */ sb $v1, 0x27($a0)
/* 36A9B4 E00680E4 A0830028 */ sb $v1, 0x28($a0)
/* 36A9B8 E00680E8 0801A045 */ j .LE0068114
/* 36A9BC E00680EC A0830029 */ sb $v1, 0x29($a0)
.LE00680F0:
/* 36A9C0 E00680F0 240200FF */ addiu $v0, $zero, 0xff
.LE00680F4:
/* 36A9C4 E00680F4 240300E1 */ addiu $v1, $zero, 0xe1
/* 36A9C8 E00680F8 A0820024 */ sb $v0, 0x24($a0)
/* 36A9CC E00680FC A0820025 */ sb $v0, 0x25($a0)
/* 36A9D0 E0068100 A0820026 */ sb $v0, 0x26($a0)
/* 36A9D4 E0068104 A0820028 */ sb $v0, 0x28($a0)
/* 36A9D8 E0068108 240200EB */ addiu $v0, $zero, 0xeb
/* 36A9DC E006810C A0830027 */ sb $v1, 0x27($a0)
/* 36A9E0 E0068110 A0820029 */ sb $v0, 0x29($a0)
.LE0068114:
/* 36A9E4 E0068114 8FA2006C */ lw $v0, 0x6c($sp)
/* 36A9E8 E0068118 AC500000 */ sw $s0, ($v0)
/* 36A9EC E006811C 8FBF0030 */ lw $ra, 0x30($sp)
/* 36A9F0 E0068120 8FB1002C */ lw $s1, 0x2c($sp)
/* 36A9F4 E0068124 8FB00028 */ lw $s0, 0x28($sp)
/* 36A9F8 E0068128 D7BA0050 */ ldc1 $f26, 0x50($sp)
/* 36A9FC E006812C D7B80048 */ ldc1 $f24, 0x48($sp)
/* 36AA00 E0068130 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 36AA04 E0068134 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 36AA08 E0068138 03E00008 */ jr $ra
/* 36AA0C E006813C 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,44 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel ending_decals_update
/* 36AA18 E0068148 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 36AA1C E006814C AFBF0010 */ sw $ra, 0x10($sp)
/* 36AA20 E0068150 8C850000 */ lw $a1, ($a0)
/* 36AA24 E0068154 8C83000C */ lw $v1, 0xc($a0)
/* 36AA28 E0068158 30A20010 */ andi $v0, $a1, 0x10
/* 36AA2C E006815C 10400005 */ beqz $v0, .LE0068174
/* 36AA30 E0068160 2402FFEF */ addiu $v0, $zero, -0x11
/* 36AA34 E0068164 00A21024 */ and $v0, $a1, $v0
/* 36AA38 E0068168 AC820000 */ sw $v0, ($a0)
/* 36AA3C E006816C 2402000A */ addiu $v0, $zero, 0xa
/* 36AA40 E0068170 AC62001C */ sw $v0, 0x1c($v1)
.LE0068174:
/* 36AA44 E0068174 8C65001C */ lw $a1, 0x1c($v1)
/* 36AA48 E0068178 28A2000B */ slti $v0, $a1, 0xb
/* 36AA4C E006817C 10400002 */ beqz $v0, .LE0068188
/* 36AA50 E0068180 24A2FFFF */ addiu $v0, $a1, -1
/* 36AA54 E0068184 AC62001C */ sw $v0, 0x1c($v1)
.LE0068188:
/* 36AA58 E0068188 8C620020 */ lw $v0, 0x20($v1)
/* 36AA5C E006818C 8C65001C */ lw $a1, 0x1c($v1)
/* 36AA60 E0068190 24420001 */ addiu $v0, $v0, 1
/* 36AA64 E0068194 04A10005 */ bgez $a1, .LE00681AC
/* 36AA68 E0068198 AC620020 */ sw $v0, 0x20($v1)
/* 36AA6C E006819C 0C080128 */ jal shim_remove_effect
/* 36AA70 E00681A0 00000000 */ nop
/* 36AA74 E00681A4 0801A073 */ j .LE00681CC
/* 36AA78 E00681A8 00000000 */ nop
.LE00681AC:
/* 36AA7C E00681AC 28A2000A */ slti $v0, $a1, 0xa
/* 36AA80 E00681B0 10400006 */ beqz $v0, .LE00681CC
/* 36AA84 E00681B4 00000000 */ nop
/* 36AA88 E00681B8 8C620018 */ lw $v0, 0x18($v1)
/* 36AA8C E00681BC 2442FFE7 */ addiu $v0, $v0, -0x19
/* 36AA90 E00681C0 04410002 */ bgez $v0, .LE00681CC
/* 36AA94 E00681C4 AC620018 */ sw $v0, 0x18($v1)
/* 36AA98 E00681C8 AC600018 */ sw $zero, 0x18($v1)
.LE00681CC:
/* 36AA9C E00681CC 8FBF0010 */ lw $ra, 0x10($sp)
/* 36AAA0 E00681D0 03E00008 */ jr $ra
/* 36AAA4 E00681D4 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,131 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_E00A4AD0
.word .LE00A40F4_3A38D4, .LE00A40FC_3A38DC, .LE00A4108_3A38E8, .LE00A4114_3A38F4, .LE00A4120_3A3900, .LE00A412C_3A390C, .LE00A4138_3A3918
dlabel D_E00A4AF0
.double 0.1
.section .text
glabel energy_orb_wave_main
/* 3A37E0 E00A4000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 3A37E4 E00A4004 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3A37E8 E00A4008 4485B000 */ mtc1 $a1, $f22
/* 3A37EC E00A400C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3A37F0 E00A4010 4486C000 */ mtc1 $a2, $f24
/* 3A37F4 E00A4014 F7BA0050 */ sdc1 $f26, 0x50($sp)
/* 3A37F8 E00A4018 4487D000 */ mtc1 $a3, $f26
/* 3A37FC E00A401C AFB1002C */ sw $s1, 0x2c($sp)
/* 3A3800 E00A4020 0080882D */ daddu $s1, $a0, $zero
/* 3A3804 E00A4024 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3A3808 E00A4028 C7B40068 */ lwc1 $f20, 0x68($sp)
/* 3A380C E00A402C 27A40010 */ addiu $a0, $sp, 0x10
/* 3A3810 E00A4030 AFB20030 */ sw $s2, 0x30($sp)
/* 3A3814 E00A4034 8FB2006C */ lw $s2, 0x6c($sp)
/* 3A3818 E00A4038 3C02E00A */ lui $v0, %hi(energy_orb_wave_init)
/* 3A381C E00A403C 244241A4 */ addiu $v0, $v0, %lo(energy_orb_wave_init)
/* 3A3820 E00A4040 AFA20018 */ sw $v0, 0x18($sp)
/* 3A3824 E00A4044 3C02E00A */ lui $v0, %hi(energy_orb_wave_update)
/* 3A3828 E00A4048 244241AC */ addiu $v0, $v0, %lo(energy_orb_wave_update)
/* 3A382C E00A404C AFA2001C */ sw $v0, 0x1c($sp)
/* 3A3830 E00A4050 3C02E00A */ lui $v0, %hi(energy_orb_wave_render)
/* 3A3834 E00A4054 244245DC */ addiu $v0, $v0, %lo(energy_orb_wave_render)
/* 3A3838 E00A4058 AFA20020 */ sw $v0, 0x20($sp)
/* 3A383C E00A405C 24020052 */ addiu $v0, $zero, 0x52
/* 3A3840 E00A4060 AFBF0034 */ sw $ra, 0x34($sp)
/* 3A3844 E00A4064 AFB00028 */ sw $s0, 0x28($sp)
/* 3A3848 E00A4068 AFA00010 */ sw $zero, 0x10($sp)
/* 3A384C E00A406C AFA00024 */ sw $zero, 0x24($sp)
/* 3A3850 E00A4070 0C080124 */ jal shim_create_effect_instance
/* 3A3854 E00A4074 AFA20014 */ sw $v0, 0x14($sp)
/* 3A3858 E00A4078 24040038 */ addiu $a0, $zero, 0x38
/* 3A385C E00A407C 24030001 */ addiu $v1, $zero, 1
/* 3A3860 E00A4080 0040802D */ daddu $s0, $v0, $zero
/* 3A3864 E00A4084 0C08012C */ jal shim_general_heap_malloc
/* 3A3868 E00A4088 AE030008 */ sw $v1, 8($s0)
/* 3A386C E00A408C 0040182D */ daddu $v1, $v0, $zero
/* 3A3870 E00A4090 14600003 */ bnez $v1, .LE00A40A0
/* 3A3874 E00A4094 AE02000C */ sw $v0, 0xc($s0)
.LE00A4098:
/* 3A3878 E00A4098 08029026 */ j .LE00A4098
/* 3A387C E00A409C 00000000 */ nop
.LE00A40A0:
/* 3A3880 E00A40A0 AC710000 */ sw $s1, ($v1)
/* 3A3884 E00A40A4 1E400004 */ bgtz $s2, .LE00A40B8
/* 3A3888 E00A40A8 AC600014 */ sw $zero, 0x14($v1)
/* 3A388C E00A40AC 24020064 */ addiu $v0, $zero, 0x64
/* 3A3890 E00A40B0 0802902F */ j .LE00A40BC
/* 3A3894 E00A40B4 AC620010 */ sw $v0, 0x10($v1)
.LE00A40B8:
/* 3A3898 E00A40B8 AC720010 */ sw $s2, 0x10($v1)
.LE00A40BC:
/* 3A389C E00A40BC 2E220007 */ sltiu $v0, $s1, 7
/* 3A38A0 E00A40C0 AC60002C */ sw $zero, 0x2c($v1)
/* 3A38A4 E00A40C4 E4760004 */ swc1 $f22, 4($v1)
/* 3A38A8 E00A40C8 E4780008 */ swc1 $f24, 8($v1)
/* 3A38AC E00A40CC E47A000C */ swc1 $f26, 0xc($v1)
/* 3A38B0 E00A40D0 E4740030 */ swc1 $f20, 0x30($v1)
/* 3A38B4 E00A40D4 1040001B */ beqz $v0, .LE00A4144
/* 3A38B8 E00A40D8 AC600018 */ sw $zero, 0x18($v1)
/* 3A38BC E00A40DC 00111080 */ sll $v0, $s1, 2
/* 3A38C0 E00A40E0 3C01E00A */ lui $at, %hi(jtbl_E00A4AD0)
/* 3A38C4 E00A40E4 00220821 */ addu $at, $at, $v0
/* 3A38C8 E00A40E8 8C224AD0 */ lw $v0, %lo(jtbl_E00A4AD0)($at)
/* 3A38CC E00A40EC 00400008 */ jr $v0
/* 3A38D0 E00A40F0 00000000 */ nop
.LE00A40F4_3A38D4:
/* 3A38D4 E00A40F4 0802905E */ j .LE00A4178
/* 3A38D8 E00A40F8 AC60001C */ sw $zero, 0x1c($v1)
.LE00A40FC_3A38DC:
/* 3A38DC E00A40FC 24020002 */ addiu $v0, $zero, 2
/* 3A38E0 E00A4100 0802905E */ j .LE00A4178
/* 3A38E4 E00A4104 AC62001C */ sw $v0, 0x1c($v1)
.LE00A4108_3A38E8:
/* 3A38E8 E00A4108 24020004 */ addiu $v0, $zero, 4
/* 3A38EC E00A410C 0802905E */ j .LE00A4178
/* 3A38F0 E00A4110 AC62001C */ sw $v0, 0x1c($v1)
.LE00A4114_3A38F4:
/* 3A38F4 E00A4114 24020006 */ addiu $v0, $zero, 6
/* 3A38F8 E00A4118 0802905E */ j .LE00A4178
/* 3A38FC E00A411C AC62001C */ sw $v0, 0x1c($v1)
.LE00A4120_3A3900:
/* 3A3900 E00A4120 24020007 */ addiu $v0, $zero, 7
/* 3A3904 E00A4124 0802905E */ j .LE00A4178
/* 3A3908 E00A4128 AC62001C */ sw $v0, 0x1c($v1)
.LE00A412C_3A390C:
/* 3A390C E00A412C 24020008 */ addiu $v0, $zero, 8
/* 3A3910 E00A4130 0802905E */ j .LE00A4178
/* 3A3914 E00A4134 AC62001C */ sw $v0, 0x1c($v1)
.LE00A4138_3A3918:
/* 3A3918 E00A4138 24020009 */ addiu $v0, $zero, 9
/* 3A391C E00A413C 0802905E */ j .LE00A4178
/* 3A3920 E00A4140 AC62001C */ sw $v0, 0x1c($v1)
.LE00A4144:
/* 3A3924 E00A4144 2402000A */ addiu $v0, $zero, 0xa
/* 3A3928 E00A4148 3C01E00A */ lui $at, %hi(D_E00A4AF0)
/* 3A392C E00A414C D4224AF0 */ ldc1 $f2, %lo(D_E00A4AF0)($at)
/* 3A3930 E00A4150 4600A021 */ cvt.d.s $f0, $f20
/* 3A3934 E00A4154 46220001 */ sub.d $f0, $f0, $f2
/* 3A3938 E00A4158 AC62001C */ sw $v0, 0x1c($v1)
/* 3A393C E00A415C 44921000 */ mtc1 $s2, $f2
/* 3A3940 E00A4160 00000000 */ nop
/* 3A3944 E00A4164 468010A1 */ cvt.d.w $f2, $f2
/* 3A3948 E00A4168 46200007 */ neg.d $f0, $f0
/* 3A394C E00A416C 46220003 */ div.d $f0, $f0, $f2
/* 3A3950 E00A4170 46200020 */ cvt.s.d $f0, $f0
/* 3A3954 E00A4174 E4600034 */ swc1 $f0, 0x34($v1)
.LE00A4178:
/* 3A3958 E00A4178 0200102D */ daddu $v0, $s0, $zero
/* 3A395C E00A417C 8FBF0034 */ lw $ra, 0x34($sp)
/* 3A3960 E00A4180 8FB20030 */ lw $s2, 0x30($sp)
/* 3A3964 E00A4184 8FB1002C */ lw $s1, 0x2c($sp)
/* 3A3968 E00A4188 8FB00028 */ lw $s0, 0x28($sp)
/* 3A396C E00A418C D7BA0050 */ ldc1 $f26, 0x50($sp)
/* 3A3970 E00A4190 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3A3974 E00A4194 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3A3978 E00A4198 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3A397C E00A419C 03E00008 */ jr $ra
/* 3A3980 E00A41A0 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,177 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel falling_leaves_appendGfx
/* 35EDF4 E00584D4 27BDFEF0 */ addiu $sp, $sp, -0x110
/* 35EDF8 E00584D8 AFB700F4 */ sw $s7, 0xf4($sp)
/* 35EDFC E00584DC 0080B82D */ daddu $s7, $a0, $zero
/* 35EE00 E00584E0 3C02DB06 */ lui $v0, 0xdb06
/* 35EE04 E00584E4 34420024 */ ori $v0, $v0, 0x24
/* 35EE08 E00584E8 3C061464 */ lui $a2, 0x1464
/* 35EE0C E00584EC 34C61400 */ ori $a2, $a2, 0x1400
/* 35EE10 E00584F0 AFB300E4 */ sw $s3, 0xe4($sp)
/* 35EE14 E00584F4 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 35EE18 E00584F8 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 35EE1C E00584FC AFBF00F8 */ sw $ra, 0xf8($sp)
/* 35EE20 E0058500 AFB600F0 */ sw $s6, 0xf0($sp)
/* 35EE24 E0058504 AFB500EC */ sw $s5, 0xec($sp)
/* 35EE28 E0058508 AFB400E8 */ sw $s4, 0xe8($sp)
/* 35EE2C E005850C AFB200E0 */ sw $s2, 0xe0($sp)
/* 35EE30 E0058510 AFB100DC */ sw $s1, 0xdc($sp)
/* 35EE34 E0058514 AFB000D8 */ sw $s0, 0xd8($sp)
/* 35EE38 E0058518 F7B60108 */ sdc1 $f22, 0x108($sp)
/* 35EE3C E005851C F7B40100 */ sdc1 $f20, 0x100($sp)
/* 35EE40 E0058520 8E650000 */ lw $a1, ($s3)
/* 35EE44 E0058524 8EF0000C */ lw $s0, 0xc($s7)
/* 35EE48 E0058528 00A0202D */ daddu $a0, $a1, $zero
/* 35EE4C E005852C 24A50008 */ addiu $a1, $a1, 8
/* 35EE50 E0058530 AE650000 */ sw $a1, ($s3)
/* 35EE54 E0058534 AC820000 */ sw $v0, ($a0)
/* 35EE58 E0058538 24A20008 */ addiu $v0, $a1, 8
/* 35EE5C E005853C AE620000 */ sw $v0, ($s3)
/* 35EE60 E0058540 8EE30010 */ lw $v1, 0x10($s7)
/* 35EE64 E0058544 24A20010 */ addiu $v0, $a1, 0x10
/* 35EE68 E0058548 AE620000 */ sw $v0, ($s3)
/* 35EE6C E005854C 8C62001C */ lw $v0, 0x1c($v1)
/* 35EE70 E0058550 3C038000 */ lui $v1, 0x8000
/* 35EE74 E0058554 00431021 */ addu $v0, $v0, $v1
/* 35EE78 E0058558 AC820004 */ sw $v0, 4($a0)
/* 35EE7C E005855C 3C02DE00 */ lui $v0, 0xde00
/* 35EE80 E0058560 ACA20000 */ sw $v0, ($a1)
/* 35EE84 E0058564 3C020900 */ lui $v0, 0x900
/* 35EE88 E0058568 24421100 */ addiu $v0, $v0, 0x1100
/* 35EE8C E005856C ACA20004 */ sw $v0, 4($a1)
/* 35EE90 E0058570 3C02FA00 */ lui $v0, 0xfa00
/* 35EE94 E0058574 ACA20008 */ sw $v0, 8($a1)
/* 35EE98 E0058578 92020027 */ lbu $v0, 0x27($s0)
/* 35EE9C E005857C 24120001 */ addiu $s2, $zero, 1
/* 35EEA0 E0058580 00461025 */ or $v0, $v0, $a2
/* 35EEA4 E0058584 ACA2000C */ sw $v0, 0xc($a1)
/* 35EEA8 E0058588 8E050004 */ lw $a1, 4($s0)
/* 35EEAC E005858C 8E060008 */ lw $a2, 8($s0)
/* 35EEB0 E0058590 8E07000C */ lw $a3, 0xc($s0)
/* 35EEB4 E0058594 0C080108 */ jal shim_guTranslateF
/* 35EEB8 E0058598 27A40018 */ addiu $a0, $sp, 0x18
/* 35EEBC E005859C 27B10058 */ addiu $s1, $sp, 0x58
/* 35EEC0 E00585A0 4480A000 */ mtc1 $zero, $f20
/* 35EEC4 E00585A4 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 35EEC8 E00585A8 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 35EECC E00585AC 3C013F80 */ lui $at, 0x3f80
/* 35EED0 E00585B0 4481B000 */ mtc1 $at, $f22
/* 35EED4 E00585B4 00031080 */ sll $v0, $v1, 2
/* 35EED8 E00585B8 00431021 */ addu $v0, $v0, $v1
/* 35EEDC E00585BC 00021080 */ sll $v0, $v0, 2
/* 35EEE0 E00585C0 00431023 */ subu $v0, $v0, $v1
/* 35EEE4 E00585C4 000218C0 */ sll $v1, $v0, 3
/* 35EEE8 E00585C8 00431021 */ addu $v0, $v0, $v1
/* 35EEEC E00585CC 000210C0 */ sll $v0, $v0, 3
/* 35EEF0 E00585D0 4406A000 */ mfc1 $a2, $f20
/* 35EEF4 E00585D4 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 35EEF8 E00585D8 00220821 */ addu $at, $at, $v0
/* 35EEFC E00585DC C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 35EF00 E00585E0 4407B000 */ mfc1 $a3, $f22
/* 35EF04 E00585E4 46000007 */ neg.s $f0, $f0
/* 35EF08 E00585E8 44050000 */ mfc1 $a1, $f0
/* 35EF0C E00585EC 0220202D */ daddu $a0, $s1, $zero
/* 35EF10 E00585F0 0C080104 */ jal shim_guRotateF
/* 35EF14 E00585F4 E7B40010 */ swc1 $f20, 0x10($sp)
/* 35EF18 E00585F8 0220202D */ daddu $a0, $s1, $zero
/* 35EF1C E00585FC 27A50018 */ addiu $a1, $sp, 0x18
/* 35EF20 E0058600 0C080114 */ jal shim_guMtxCatF
/* 35EF24 E0058604 27A60098 */ addiu $a2, $sp, 0x98
/* 35EF28 E0058608 8EE20008 */ lw $v0, 8($s7)
/* 35EF2C E005860C 0242102A */ slt $v0, $s2, $v0
/* 35EF30 E0058610 1040004E */ beqz $v0, .LE005874C
/* 35EF34 E0058614 26100034 */ addiu $s0, $s0, 0x34
/* 35EF38 E0058618 3C16800A */ lui $s6, %hi(gDisplayContext)
/* 35EF3C E005861C 26D6A674 */ addiu $s6, $s6, %lo(gDisplayContext)
/* 35EF40 E0058620 3C158007 */ lui $s5, %hi(gMatrixListPos)
/* 35EF44 E0058624 26B541F0 */ addiu $s5, $s5, %lo(gMatrixListPos)
/* 35EF48 E0058628 3C140001 */ lui $s4, 1
/* 35EF4C E005862C 36941630 */ ori $s4, $s4, 0x1630
/* 35EF50 E0058630 26100020 */ addiu $s0, $s0, 0x20
.LE0058634:
/* 35EF54 E0058634 0220202D */ daddu $a0, $s1, $zero
/* 35EF58 E0058638 8E05FFE4 */ lw $a1, -0x1c($s0)
/* 35EF5C E005863C 8E06FFE8 */ lw $a2, -0x18($s0)
/* 35EF60 E0058640 8E07FFEC */ lw $a3, -0x14($s0)
/* 35EF64 E0058644 0C080108 */ jal shim_guTranslateF
/* 35EF68 E0058648 26520001 */ addiu $s2, $s2, 1
/* 35EF6C E005864C 0220202D */ daddu $a0, $s1, $zero
/* 35EF70 E0058650 27A50098 */ addiu $a1, $sp, 0x98
/* 35EF74 E0058654 0C080114 */ jal shim_guMtxCatF
/* 35EF78 E0058658 27A60018 */ addiu $a2, $sp, 0x18
/* 35EF7C E005865C E7B60010 */ swc1 $f22, 0x10($sp)
/* 35EF80 E0058660 8E05FFF8 */ lw $a1, -8($s0)
/* 35EF84 E0058664 4406A000 */ mfc1 $a2, $f20
/* 35EF88 E0058668 4407A000 */ mfc1 $a3, $f20
/* 35EF8C E005866C 0C080104 */ jal shim_guRotateF
/* 35EF90 E0058670 0220202D */ daddu $a0, $s1, $zero
/* 35EF94 E0058674 0220202D */ daddu $a0, $s1, $zero
/* 35EF98 E0058678 27A50018 */ addiu $a1, $sp, 0x18
/* 35EF9C E005867C 0C080114 */ jal shim_guMtxCatF
/* 35EFA0 E0058680 00A0302D */ daddu $a2, $a1, $zero
/* 35EFA4 E0058684 0220202D */ daddu $a0, $s1, $zero
/* 35EFA8 E0058688 E7B40010 */ swc1 $f20, 0x10($sp)
/* 35EFAC E005868C 8E050000 */ lw $a1, ($s0)
/* 35EFB0 E0058690 4406A000 */ mfc1 $a2, $f20
/* 35EFB4 E0058694 4407B000 */ mfc1 $a3, $f22
/* 35EFB8 E0058698 0C080104 */ jal shim_guRotateF
/* 35EFBC E005869C 26100034 */ addiu $s0, $s0, 0x34
/* 35EFC0 E00586A0 0220202D */ daddu $a0, $s1, $zero
/* 35EFC4 E00586A4 27A50018 */ addiu $a1, $sp, 0x18
/* 35EFC8 E00586A8 0C080114 */ jal shim_guMtxCatF
/* 35EFCC E00586AC 00A0302D */ daddu $a2, $a1, $zero
/* 35EFD0 E00586B0 27A40018 */ addiu $a0, $sp, 0x18
/* 35EFD4 E00586B4 96A50000 */ lhu $a1, ($s5)
/* 35EFD8 E00586B8 8EC20000 */ lw $v0, ($s6)
/* 35EFDC E00586BC 00052980 */ sll $a1, $a1, 6
/* 35EFE0 E00586C0 00B42821 */ addu $a1, $a1, $s4
/* 35EFE4 E00586C4 0C080118 */ jal shim_guMtxF2L
/* 35EFE8 E00586C8 00452821 */ addu $a1, $v0, $a1
/* 35EFEC E00586CC 3C06D838 */ lui $a2, 0xd838
/* 35EFF0 E00586D0 8E640000 */ lw $a0, ($s3)
/* 35EFF4 E00586D4 34C60002 */ ori $a2, $a2, 2
/* 35EFF8 E00586D8 0080282D */ daddu $a1, $a0, $zero
/* 35EFFC E00586DC 24840008 */ addiu $a0, $a0, 8
/* 35F000 E00586E0 AE640000 */ sw $a0, ($s3)
/* 35F004 E00586E4 96A20000 */ lhu $v0, ($s5)
/* 35F008 E00586E8 3C03DA38 */ lui $v1, 0xda38
/* 35F00C E00586EC ACA30000 */ sw $v1, ($a1)
/* 35F010 E00586F0 24430001 */ addiu $v1, $v0, 1
/* 35F014 E00586F4 3042FFFF */ andi $v0, $v0, 0xffff
/* 35F018 E00586F8 00021180 */ sll $v0, $v0, 6
/* 35F01C E00586FC A6A30000 */ sh $v1, ($s5)
/* 35F020 E0058700 8EC30000 */ lw $v1, ($s6)
/* 35F024 E0058704 00541021 */ addu $v0, $v0, $s4
/* 35F028 E0058708 00621821 */ addu $v1, $v1, $v0
/* 35F02C E005870C 24820008 */ addiu $v0, $a0, 8
/* 35F030 E0058710 ACA30004 */ sw $v1, 4($a1)
/* 35F034 E0058714 AE620000 */ sw $v0, ($s3)
/* 35F038 E0058718 3C02DE00 */ lui $v0, 0xde00
/* 35F03C E005871C AC820000 */ sw $v0, ($a0)
/* 35F040 E0058720 3C020900 */ lui $v0, 0x900
/* 35F044 E0058724 244211B0 */ addiu $v0, $v0, 0x11b0
/* 35F048 E0058728 AC820004 */ sw $v0, 4($a0)
/* 35F04C E005872C 24020040 */ addiu $v0, $zero, 0x40
/* 35F050 E0058730 AC860008 */ sw $a2, 8($a0)
/* 35F054 E0058734 AC82000C */ sw $v0, 0xc($a0)
/* 35F058 E0058738 8EE20008 */ lw $v0, 8($s7)
/* 35F05C E005873C 24840010 */ addiu $a0, $a0, 0x10
/* 35F060 E0058740 0242102A */ slt $v0, $s2, $v0
/* 35F064 E0058744 1440FFBB */ bnez $v0, .LE0058634
/* 35F068 E0058748 AE640000 */ sw $a0, ($s3)
.LE005874C:
/* 35F06C E005874C 8FBF00F8 */ lw $ra, 0xf8($sp)
/* 35F070 E0058750 8FB700F4 */ lw $s7, 0xf4($sp)
/* 35F074 E0058754 8FB600F0 */ lw $s6, 0xf0($sp)
/* 35F078 E0058758 8FB500EC */ lw $s5, 0xec($sp)
/* 35F07C E005875C 8FB400E8 */ lw $s4, 0xe8($sp)
/* 35F080 E0058760 8FB300E4 */ lw $s3, 0xe4($sp)
/* 35F084 E0058764 8FB200E0 */ lw $s2, 0xe0($sp)
/* 35F088 E0058768 8FB100DC */ lw $s1, 0xdc($sp)
/* 35F08C E005876C 8FB000D8 */ lw $s0, 0xd8($sp)
/* 35F090 E0058770 D7B60108 */ ldc1 $f22, 0x108($sp)
/* 35F094 E0058774 D7B40100 */ ldc1 $f20, 0x100($sp)
/* 35F098 E0058778 03E00008 */ jr $ra
/* 35F09C E005877C 27BD0110 */ addiu $sp, $sp, 0x110

View File

@ -1,115 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel falling_leaves_main
/* 35E920 E0058000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 35E924 E0058004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 35E928 E0058008 4485A000 */ mtc1 $a1, $f20
/* 35E92C E005800C AFB1002C */ sw $s1, 0x2c($sp)
/* 35E930 E0058010 0080882D */ daddu $s1, $a0, $zero
/* 35E934 E0058014 F7B60048 */ sdc1 $f22, 0x48($sp)
/* 35E938 E0058018 4486B000 */ mtc1 $a2, $f22
/* 35E93C E005801C 27A40010 */ addiu $a0, $sp, 0x10
/* 35E940 E0058020 F7B80050 */ sdc1 $f24, 0x50($sp)
/* 35E944 E0058024 4487C000 */ mtc1 $a3, $f24
/* 35E948 E0058028 3C02E006 */ lui $v0, %hi(falling_leaves_init)
/* 35E94C E005802C 244281AC */ addiu $v0, $v0, %lo(falling_leaves_init)
/* 35E950 E0058030 AFA20018 */ sw $v0, 0x18($sp)
/* 35E954 E0058034 3C02E006 */ lui $v0, %hi(falling_leaves_update)
/* 35E958 E0058038 244281B4 */ addiu $v0, $v0, %lo(falling_leaves_update)
/* 35E95C E005803C AFA2001C */ sw $v0, 0x1c($sp)
/* 35E960 E0058040 3C02E006 */ lui $v0, %hi(falling_leaves_render)
/* 35E964 E0058044 24428490 */ addiu $v0, $v0, %lo(falling_leaves_render)
/* 35E968 E0058048 AFA20020 */ sw $v0, 0x20($sp)
/* 35E96C E005804C 2402002C */ addiu $v0, $zero, 0x2c
/* 35E970 E0058050 AFBF0038 */ sw $ra, 0x38($sp)
/* 35E974 E0058054 AFB30034 */ sw $s3, 0x34($sp)
/* 35E978 E0058058 AFB20030 */ sw $s2, 0x30($sp)
/* 35E97C E005805C AFB00028 */ sw $s0, 0x28($sp)
/* 35E980 E0058060 AFA00010 */ sw $zero, 0x10($sp)
/* 35E984 E0058064 AFA00024 */ sw $zero, 0x24($sp)
/* 35E988 E0058068 0C080124 */ jal shim_create_effect_instance
/* 35E98C E005806C AFA20014 */ sw $v0, 0x14($sp)
/* 35E990 E0058070 24040104 */ addiu $a0, $zero, 0x104
/* 35E994 E0058074 24120005 */ addiu $s2, $zero, 5
/* 35E998 E0058078 0040802D */ daddu $s0, $v0, $zero
/* 35E99C E005807C 0C08012C */ jal shim_general_heap_malloc
/* 35E9A0 E0058080 AE120008 */ sw $s2, 8($s0)
/* 35E9A4 E0058084 0040182D */ daddu $v1, $v0, $zero
/* 35E9A8 E0058088 14600003 */ bnez $v1, .LE0058098
/* 35E9AC E005808C AE03000C */ sw $v1, 0xc($s0)
.LE0058090:
/* 35E9B0 E0058090 08016024 */ j .LE0058090
/* 35E9B4 E0058094 00000000 */ nop
.LE0058098:
/* 35E9B8 E0058098 24020064 */ addiu $v0, $zero, 0x64
/* 35E9BC E005809C AC710000 */ sw $s1, ($v1)
/* 35E9C0 E00580A0 E4740004 */ swc1 $f20, 4($v1)
/* 35E9C4 E00580A4 E4760008 */ swc1 $f22, 8($v1)
/* 35E9C8 E00580A8 E478000C */ swc1 $f24, 0xc($v1)
/* 35E9CC E00580AC AC620028 */ sw $v0, 0x28($v1)
/* 35E9D0 E00580B0 AC60002C */ sw $zero, 0x2c($v1)
/* 35E9D4 E00580B4 AC600024 */ sw $zero, 0x24($v1)
/* 35E9D8 E00580B8 24110001 */ addiu $s1, $zero, 1
/* 35E9DC E00580BC 0232102A */ slt $v0, $s1, $s2
/* 35E9E0 E00580C0 10400030 */ beqz $v0, .LE0058184
/* 35E9E4 E00580C4 24630034 */ addiu $v1, $v1, 0x34
/* 35E9E8 E00580C8 3C136666 */ lui $s3, 0x6666
/* 35E9EC E00580CC 36736667 */ ori $s3, $s3, 0x6667
/* 35E9F0 E00580D0 24700014 */ addiu $s0, $v1, 0x14
.LE00580D4:
/* 35E9F4 E00580D4 0C080138 */ jal shim_rand_int
/* 35E9F8 E00580D8 2404001E */ addiu $a0, $zero, 0x1e
/* 35E9FC E00580DC 2404001E */ addiu $a0, $zero, 0x1e
/* 35EA00 E00580E0 2442FFF1 */ addiu $v0, $v0, -0xf
/* 35EA04 E00580E4 44820000 */ mtc1 $v0, $f0
/* 35EA08 E00580E8 00000000 */ nop
/* 35EA0C E00580EC 46800020 */ cvt.s.w $f0, $f0
/* 35EA10 E00580F0 E600FFF0 */ swc1 $f0, -0x10($s0)
/* 35EA14 E00580F4 0C080138 */ jal shim_rand_int
/* 35EA18 E00580F8 AE00FFF4 */ sw $zero, -0xc($s0)
/* 35EA1C E00580FC 24040168 */ addiu $a0, $zero, 0x168
/* 35EA20 E0058100 2442FFF1 */ addiu $v0, $v0, -0xf
/* 35EA24 E0058104 44820000 */ mtc1 $v0, $f0
/* 35EA28 E0058108 00000000 */ nop
/* 35EA2C E005810C 46800020 */ cvt.s.w $f0, $f0
/* 35EA30 E0058110 0C080138 */ jal shim_rand_int
/* 35EA34 E0058114 E600FFF8 */ swc1 $f0, -8($s0)
/* 35EA38 E0058118 24040168 */ addiu $a0, $zero, 0x168
/* 35EA3C E005811C 44820000 */ mtc1 $v0, $f0
/* 35EA40 E0058120 00000000 */ nop
/* 35EA44 E0058124 46800020 */ cvt.s.w $f0, $f0
/* 35EA48 E0058128 0C080138 */ jal shim_rand_int
/* 35EA4C E005812C E6000004 */ swc1 $f0, 4($s0)
/* 35EA50 E0058130 24040064 */ addiu $a0, $zero, 0x64
/* 35EA54 E0058134 44820000 */ mtc1 $v0, $f0
/* 35EA58 E0058138 00000000 */ nop
/* 35EA5C E005813C 46800020 */ cvt.s.w $f0, $f0
/* 35EA60 E0058140 0C080138 */ jal shim_rand_int
/* 35EA64 E0058144 E600000C */ swc1 $f0, 0xc($s0)
/* 35EA68 E0058148 00530018 */ mult $v0, $s3
/* 35EA6C E005814C 26310001 */ addiu $s1, $s1, 1
/* 35EA70 E0058150 000217C3 */ sra $v0, $v0, 0x1f
/* 35EA74 E0058154 AE00FFFC */ sw $zero, -4($s0)
/* 35EA78 E0058158 AE000000 */ sw $zero, ($s0)
/* 35EA7C E005815C 00004010 */ mfhi $t0
/* 35EA80 E0058160 00081883 */ sra $v1, $t0, 2
/* 35EA84 E0058164 00621823 */ subu $v1, $v1, $v0
/* 35EA88 E0058168 44830000 */ mtc1 $v1, $f0
/* 35EA8C E005816C 00000000 */ nop
/* 35EA90 E0058170 46800020 */ cvt.s.w $f0, $f0
/* 35EA94 E0058174 E6000008 */ swc1 $f0, 8($s0)
/* 35EA98 E0058178 0232102A */ slt $v0, $s1, $s2
/* 35EA9C E005817C 1440FFD5 */ bnez $v0, .LE00580D4
/* 35EAA0 E0058180 26100034 */ addiu $s0, $s0, 0x34
.LE0058184:
/* 35EAA4 E0058184 8FBF0038 */ lw $ra, 0x38($sp)
/* 35EAA8 E0058188 8FB30034 */ lw $s3, 0x34($sp)
/* 35EAAC E005818C 8FB20030 */ lw $s2, 0x30($sp)
/* 35EAB0 E0058190 8FB1002C */ lw $s1, 0x2c($sp)
/* 35EAB4 E0058194 8FB00028 */ lw $s0, 0x28($sp)
/* 35EAB8 E0058198 D7B80050 */ ldc1 $f24, 0x50($sp)
/* 35EABC E005819C D7B60048 */ ldc1 $f22, 0x48($sp)
/* 35EAC0 E00581A0 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 35EAC4 E00581A4 03E00008 */ jr $ra
/* 35EAC8 E00581A8 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,222 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0058780
.double 0.3
dlabel D_E0058788
.double 0.8
dlabel D_E0058790
.double 0.2
dlabel D_E0058798
.double 0.94
dlabel D_E00587A0
.double 0.05
dlabel D_E00587A8
.double 0.95
dlabel D_E00587B0
.double 0.92, 0.0
.section .text
glabel falling_leaves_update
/* 35EAD4 E00581B4 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 35EAD8 E00581B8 AFB3001C */ sw $s3, 0x1c($sp)
/* 35EADC E00581BC 0080982D */ daddu $s3, $a0, $zero
/* 35EAE0 E00581C0 AFBF0020 */ sw $ra, 0x20($sp)
/* 35EAE4 E00581C4 AFB20018 */ sw $s2, 0x18($sp)
/* 35EAE8 E00581C8 AFB10014 */ sw $s1, 0x14($sp)
/* 35EAEC E00581CC AFB00010 */ sw $s0, 0x10($sp)
/* 35EAF0 E00581D0 F7B60030 */ sdc1 $f22, 0x30($sp)
/* 35EAF4 E00581D4 F7B40028 */ sdc1 $f20, 0x28($sp)
/* 35EAF8 E00581D8 8E65000C */ lw $a1, 0xc($s3)
/* 35EAFC E00581DC 8CA2002C */ lw $v0, 0x2c($a1)
/* 35EB00 E00581E0 8CB20000 */ lw $s2, ($a1)
/* 35EB04 E00581E4 2442FFFB */ addiu $v0, $v0, -5
/* 35EB08 E00581E8 2C42000A */ sltiu $v0, $v0, 0xa
/* 35EB0C E00581EC 10400007 */ beqz $v0, .LE005820C
/* 35EB10 E00581F0 3C020004 */ lui $v0, 4
/* 35EB14 E00581F4 16400006 */ bnez $s2, .LE0058210
/* 35EB18 E00581F8 3442F1A0 */ ori $v0, $v0, 0xf1a0
/* 35EB1C E00581FC 3C028011 */ lui $v0, %hi(gPlayerStatus + 0xB4)
/* 35EB20 E0058200 8042F07C */ lb $v0, %lo(gPlayerStatus + 0xB4)($v0)
/* 35EB24 E0058204 10400099 */ beqz $v0, .LE005846C
/* 35EB28 E0058208 3C020004 */ lui $v0, 4
.LE005820C:
/* 35EB2C E005820C 3442F1A0 */ ori $v0, $v0, 0xf1a0
.LE0058210:
/* 35EB30 E0058210 8CA30028 */ lw $v1, 0x28($a1)
/* 35EB34 E0058214 8CA4002C */ lw $a0, 0x2c($a1)
/* 35EB38 E0058218 2463FFFF */ addiu $v1, $v1, -1
/* 35EB3C E005821C 24840001 */ addiu $a0, $a0, 1
/* 35EB40 E0058220 0044102A */ slt $v0, $v0, $a0
/* 35EB44 E0058224 ACA30028 */ sw $v1, 0x28($a1)
/* 35EB48 E0058228 10400003 */ beqz $v0, .LE0058238
/* 35EB4C E005822C ACA4002C */ sw $a0, 0x2c($a1)
/* 35EB50 E0058230 24020100 */ addiu $v0, $zero, 0x100
/* 35EB54 E0058234 ACA2002C */ sw $v0, 0x2c($a1)
.LE0058238:
/* 35EB58 E0058238 8CA40028 */ lw $a0, 0x28($a1)
/* 35EB5C E005823C 04810005 */ bgez $a0, .LE0058254
/* 35EB60 E0058240 00000000 */ nop
/* 35EB64 E0058244 0C080128 */ jal shim_remove_effect
/* 35EB68 E0058248 0260202D */ daddu $a0, $s3, $zero
/* 35EB6C E005824C 0801611B */ j .LE005846C
/* 35EB70 E0058250 00000000 */ nop
.LE0058254:
/* 35EB74 E0058254 8CA2002C */ lw $v0, 0x2c($a1)
/* 35EB78 E0058258 2842000A */ slti $v0, $v0, 0xa
/* 35EB7C E005825C 10400010 */ beqz $v0, .LE00582A0
/* 35EB80 E0058260 240200FF */ addiu $v0, $zero, 0xff
/* 35EB84 E0058264 8CA30024 */ lw $v1, 0x24($a1)
/* 35EB88 E0058268 3C01E006 */ lui $at, %hi(D_E0058780)
/* 35EB8C E005826C D4208780 */ ldc1 $f0, %lo(D_E0058780)($at)
/* 35EB90 E0058270 00431023 */ subu $v0, $v0, $v1
/* 35EB94 E0058274 44821000 */ mtc1 $v0, $f2
/* 35EB98 E0058278 00000000 */ nop
/* 35EB9C E005827C 468010A1 */ cvt.d.w $f2, $f2
/* 35EBA0 E0058280 46201082 */ mul.d $f2, $f2, $f0
/* 35EBA4 E0058284 00000000 */ nop
/* 35EBA8 E0058288 44830000 */ mtc1 $v1, $f0
/* 35EBAC E005828C 00000000 */ nop
/* 35EBB0 E0058290 46800021 */ cvt.d.w $f0, $f0
/* 35EBB4 E0058294 46220000 */ add.d $f0, $f0, $f2
/* 35EBB8 E0058298 4620020D */ trunc.w.d $f8, $f0
/* 35EBBC E005829C E4A80024 */ swc1 $f8, 0x24($a1)
.LE00582A0:
/* 35EBC0 E00582A0 2882000A */ slti $v0, $a0, 0xa
/* 35EBC4 E00582A4 10400009 */ beqz $v0, .LE00582CC
/* 35EBC8 E00582A8 00000000 */ nop
/* 35EBCC E00582AC 3C01E006 */ lui $at, %hi(D_E0058788)
/* 35EBD0 E00582B0 D4228788 */ ldc1 $f2, %lo(D_E0058788)($at)
/* 35EBD4 E00582B4 C4A00024 */ lwc1 $f0, 0x24($a1)
/* 35EBD8 E00582B8 46800021 */ cvt.d.w $f0, $f0
/* 35EBDC E00582BC 46220002 */ mul.d $f0, $f0, $f2
/* 35EBE0 E00582C0 00000000 */ nop
/* 35EBE4 E00582C4 4620020D */ trunc.w.d $f8, $f0
/* 35EBE8 E00582C8 E4A80024 */ swc1 $f8, 0x24($a1)
.LE00582CC:
/* 35EBEC E00582CC 8E620008 */ lw $v0, 8($s3)
/* 35EBF0 E00582D0 24110001 */ addiu $s1, $zero, 1
/* 35EBF4 E00582D4 0222102A */ slt $v0, $s1, $v0
/* 35EBF8 E00582D8 10400064 */ beqz $v0, .LE005846C
/* 35EBFC E00582DC 24A50034 */ addiu $a1, $a1, 0x34
/* 35EC00 E00582E0 24B00008 */ addiu $s0, $a1, 8
/* 35EC04 E00582E4 3C01BD4C */ lui $at, 0xbd4c
/* 35EC08 E00582E8 3421CCCD */ ori $at, $at, 0xcccd
/* 35EC0C E00582EC 4481B000 */ mtc1 $at, $f22
/* 35EC10 E00582F0 3C014120 */ lui $at, 0x4120
/* 35EC14 E00582F4 4481A000 */ mtc1 $at, $f20
.LE00582F8:
/* 35EC18 E00582F8 C60C0010 */ lwc1 $f12, 0x10($s0)
/* 35EC1C E00582FC 0C080140 */ jal shim_sin_deg
/* 35EC20 E0058300 460C6300 */ add.s $f12, $f12, $f12
/* 35EC24 E0058304 3C01E006 */ lui $at, %hi(D_E0058790)
/* 35EC28 E0058308 D4228790 */ ldc1 $f2, %lo(D_E0058790)($at)
/* 35EC2C E005830C 46000021 */ cvt.d.s $f0, $f0
/* 35EC30 E0058310 46220002 */ mul.d $f0, $f0, $f2
/* 35EC34 E0058314 00000000 */ nop
/* 35EC38 E0058318 C602000C */ lwc1 $f2, 0xc($s0)
/* 35EC3C E005831C 46161080 */ add.s $f2, $f2, $f22
/* 35EC40 E0058320 C6040008 */ lwc1 $f4, 8($s0)
/* 35EC44 E0058324 46200020 */ cvt.s.d $f0, $f0
/* 35EC48 E0058328 46002000 */ add.s $f0, $f4, $f0
/* 35EC4C E005832C E602000C */ swc1 $f2, 0xc($s0)
/* 35EC50 E0058330 16400019 */ bnez $s2, .LE0058398
/* 35EC54 E0058334 E6000008 */ swc1 $f0, 8($s0)
/* 35EC58 E0058338 3C01E006 */ lui $at, %hi(D_E0058798)
/* 35EC5C E005833C D4228798 */ ldc1 $f2, %lo(D_E0058798)($at)
/* 35EC60 E0058340 46000021 */ cvt.d.s $f0, $f0
/* 35EC64 E0058344 46220002 */ mul.d $f0, $f0, $f2
/* 35EC68 E0058348 00000000 */ nop
/* 35EC6C E005834C C60C0010 */ lwc1 $f12, 0x10($s0)
/* 35EC70 E0058350 46200020 */ cvt.s.d $f0, $f0
/* 35EC74 E0058354 0C080140 */ jal shim_sin_deg
/* 35EC78 E0058358 E6000008 */ swc1 $f0, 8($s0)
/* 35EC7C E005835C 3C01E006 */ lui $at, %hi(D_E00587A0)
/* 35EC80 E0058360 D42287A0 */ ldc1 $f2, %lo(D_E00587A0)($at)
/* 35EC84 E0058364 46000021 */ cvt.d.s $f0, $f0
/* 35EC88 E0058368 46220002 */ mul.d $f0, $f0, $f2
/* 35EC8C E005836C 00000000 */ nop
/* 35EC90 E0058370 3C01E006 */ lui $at, %hi(D_E00587A8)
/* 35EC94 E0058374 D42487A8 */ ldc1 $f4, %lo(D_E00587A8)($at)
/* 35EC98 E0058378 C602000C */ lwc1 $f2, 0xc($s0)
/* 35EC9C E005837C 46240000 */ add.d $f0, $f0, $f4
/* 35ECA0 E0058380 460010A1 */ cvt.d.s $f2, $f2
/* 35ECA4 E0058384 46201082 */ mul.d $f2, $f2, $f0
/* 35ECA8 E0058388 00000000 */ nop
/* 35ECAC E005838C 462010A0 */ cvt.s.d $f2, $f2
/* 35ECB0 E0058390 080160F1 */ j .LE00583C4
/* 35ECB4 E0058394 E602000C */ swc1 $f2, 0xc($s0)
.LE0058398:
/* 35ECB8 E0058398 C6000008 */ lwc1 $f0, 8($s0)
/* 35ECBC E005839C 3C01E006 */ lui $at, %hi(D_E00587B0)
/* 35ECC0 E00583A0 D42287B0 */ ldc1 $f2, %lo(D_E00587B0)($at)
/* 35ECC4 E00583A4 46000021 */ cvt.d.s $f0, $f0
/* 35ECC8 E00583A8 46220002 */ mul.d $f0, $f0, $f2
/* 35ECCC E00583AC 00000000 */ nop
/* 35ECD0 E00583B0 C602000C */ lwc1 $f2, 0xc($s0)
/* 35ECD4 E00583B4 46161080 */ add.s $f2, $f2, $f22
/* 35ECD8 E00583B8 E602000C */ swc1 $f2, 0xc($s0)
/* 35ECDC E00583BC 46200020 */ cvt.s.d $f0, $f0
/* 35ECE0 E00583C0 E6000008 */ swc1 $f0, 8($s0)
.LE00583C4:
/* 35ECE4 E00583C4 0C080138 */ jal shim_rand_int
/* 35ECE8 E00583C8 24040032 */ addiu $a0, $zero, 0x32
/* 35ECEC E00583CC 3C0141C8 */ lui $at, 0x41c8
/* 35ECF0 E00583D0 44811000 */ mtc1 $at, $f2
/* 35ECF4 E00583D4 44820000 */ mtc1 $v0, $f0
/* 35ECF8 E00583D8 00000000 */ nop
/* 35ECFC E00583DC 46800020 */ cvt.s.w $f0, $f0
/* 35ED00 E00583E0 46020001 */ sub.s $f0, $f0, $f2
/* 35ED04 E00583E4 C60C0014 */ lwc1 $f12, 0x14($s0)
/* 35ED08 E00583E8 46006300 */ add.s $f12, $f12, $f0
/* 35ED0C E00583EC 0C080140 */ jal shim_sin_deg
/* 35ED10 E00583F0 E60C0014 */ swc1 $f12, 0x14($s0)
/* 35ED14 E00583F4 46140002 */ mul.s $f0, $f0, $f20
/* 35ED18 E00583F8 00000000 */ nop
/* 35ED1C E00583FC C6020014 */ lwc1 $f2, 0x14($s0)
/* 35ED20 E0058400 3C013F00 */ lui $at, 0x3f00
/* 35ED24 E0058404 44816000 */ mtc1 $at, $f12
/* 35ED28 E0058408 00000000 */ nop
/* 35ED2C E005840C 460C1302 */ mul.s $f12, $f2, $f12
/* 35ED30 E0058410 00000000 */ nop
/* 35ED34 E0058414 C6020010 */ lwc1 $f2, 0x10($s0)
/* 35ED38 E0058418 46001080 */ add.s $f2, $f2, $f0
/* 35ED3C E005841C 0C080144 */ jal shim_cos_deg
/* 35ED40 E0058420 E6020010 */ swc1 $f2, 0x10($s0)
/* 35ED44 E0058424 46140002 */ mul.s $f0, $f0, $f20
/* 35ED48 E0058428 00000000 */ nop
/* 35ED4C E005842C C606FFFC */ lwc1 $f6, -4($s0)
/* 35ED50 E0058430 C6020008 */ lwc1 $f2, 8($s0)
/* 35ED54 E0058434 C6040000 */ lwc1 $f4, ($s0)
/* 35ED58 E0058438 46023180 */ add.s $f6, $f6, $f2
/* 35ED5C E005843C C602000C */ lwc1 $f2, 0xc($s0)
/* 35ED60 E0058440 46022100 */ add.s $f4, $f4, $f2
/* 35ED64 E0058444 C6020018 */ lwc1 $f2, 0x18($s0)
/* 35ED68 E0058448 26310001 */ addiu $s1, $s1, 1
/* 35ED6C E005844C 46001080 */ add.s $f2, $f2, $f0
/* 35ED70 E0058450 E606FFFC */ swc1 $f6, -4($s0)
/* 35ED74 E0058454 E6040000 */ swc1 $f4, ($s0)
/* 35ED78 E0058458 E6020018 */ swc1 $f2, 0x18($s0)
/* 35ED7C E005845C 8E620008 */ lw $v0, 8($s3)
/* 35ED80 E0058460 0222102A */ slt $v0, $s1, $v0
/* 35ED84 E0058464 1440FFA4 */ bnez $v0, .LE00582F8
/* 35ED88 E0058468 26100034 */ addiu $s0, $s0, 0x34
.LE005846C:
/* 35ED8C E005846C 8FBF0020 */ lw $ra, 0x20($sp)
/* 35ED90 E0058470 8FB3001C */ lw $s3, 0x1c($sp)
/* 35ED94 E0058474 8FB20018 */ lw $s2, 0x18($sp)
/* 35ED98 E0058478 8FB10014 */ lw $s1, 0x14($sp)
/* 35ED9C E005847C 8FB00010 */ lw $s0, 0x10($sp)
/* 35EDA0 E0058480 D7B60030 */ ldc1 $f22, 0x30($sp)
/* 35EDA4 E0058484 D7B40028 */ ldc1 $f20, 0x28($sp)
/* 35EDA8 E0058488 03E00008 */ jr $ra
/* 35EDAC E005848C 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,106 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel firework_rocket_main
/* 3E43A0 E010A000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3E43A4 E010A004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3E43A8 E010A008 4485A000 */ mtc1 $a1, $f20
/* 3E43AC E010A00C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3E43B0 E010A010 4486B000 */ mtc1 $a2, $f22
/* 3E43B4 E010A014 AFB20030 */ sw $s2, 0x30($sp)
/* 3E43B8 E010A018 0080902D */ daddu $s2, $a0, $zero
/* 3E43BC E010A01C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3E43C0 E010A020 4487C000 */ mtc1 $a3, $f24
/* 3E43C4 E010A024 27A40010 */ addiu $a0, $sp, 0x10
/* 3E43C8 E010A028 AFB1002C */ sw $s1, 0x2c($sp)
/* 3E43CC E010A02C 8FB10070 */ lw $s1, 0x70($sp)
/* 3E43D0 E010A030 3C02E011 */ lui $v0, %hi(firework_rocket_init)
/* 3E43D4 E010A034 2442A184 */ addiu $v0, $v0, %lo(firework_rocket_init)
/* 3E43D8 E010A038 AFA20018 */ sw $v0, 0x18($sp)
/* 3E43DC E010A03C 3C02E011 */ lui $v0, %hi(firework_rocket_update)
/* 3E43E0 E010A040 2442A18C */ addiu $v0, $v0, %lo(firework_rocket_update)
/* 3E43E4 E010A044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3E43E8 E010A048 3C02E011 */ lui $v0, %hi(firework_rocket_render)
/* 3E43EC E010A04C 2442A4A0 */ addiu $v0, $v0, %lo(firework_rocket_render)
/* 3E43F0 E010A050 AFA20020 */ sw $v0, 0x20($sp)
/* 3E43F4 E010A054 24020077 */ addiu $v0, $zero, 0x77
/* 3E43F8 E010A058 AFBF0034 */ sw $ra, 0x34($sp)
/* 3E43FC E010A05C AFB00028 */ sw $s0, 0x28($sp)
/* 3E4400 E010A060 AFA00010 */ sw $zero, 0x10($sp)
/* 3E4404 E010A064 AFA00024 */ sw $zero, 0x24($sp)
/* 3E4408 E010A068 0C080124 */ jal shim_create_effect_instance
/* 3E440C E010A06C AFA20014 */ sw $v0, 0x14($sp)
/* 3E4410 E010A070 240400B0 */ addiu $a0, $zero, 0xb0
/* 3E4414 E010A074 24030001 */ addiu $v1, $zero, 1
/* 3E4418 E010A078 0040802D */ daddu $s0, $v0, $zero
/* 3E441C E010A07C 0C08012C */ jal shim_general_heap_malloc
/* 3E4420 E010A080 AE030008 */ sw $v1, 8($s0)
/* 3E4424 E010A084 0040202D */ daddu $a0, $v0, $zero
/* 3E4428 E010A088 14800003 */ bnez $a0, .LE010A098
/* 3E442C E010A08C AE02000C */ sw $v0, 0xc($s0)
.LE010A090:
/* 3E4430 E010A090 08042824 */ j .LE010A090
/* 3E4434 E010A094 00000000 */ nop
.LE010A098:
/* 3E4438 E010A098 AC920000 */ sw $s2, ($a0)
/* 3E443C E010A09C 1E200003 */ bgtz $s1, .LE010A0AC
/* 3E4440 E010A0A0 AC800020 */ sw $zero, 0x20($a0)
/* 3E4444 E010A0A4 0804282C */ j .LE010A0B0
/* 3E4448 E010A0A8 240203E8 */ addiu $v0, $zero, 0x3e8
.LE010A0AC:
/* 3E444C E010A0AC 26220020 */ addiu $v0, $s1, 0x20
.LE010A0B0:
/* 3E4450 E010A0B0 AC82001C */ sw $v0, 0x1c($a0)
/* 3E4454 E010A0B4 240300FF */ addiu $v1, $zero, 0xff
/* 3E4458 E010A0B8 AC80004C */ sw $zero, 0x4c($a0)
/* 3E445C E010A0BC AC830030 */ sw $v1, 0x30($a0)
/* 3E4460 E010A0C0 E4940004 */ swc1 $f20, 4($a0)
/* 3E4464 E010A0C4 E4960008 */ swc1 $f22, 8($a0)
/* 3E4468 E010A0C8 E498000C */ swc1 $f24, 0xc($a0)
/* 3E446C E010A0CC AC800044 */ sw $zero, 0x44($a0)
/* 3E4470 E010A0D0 C7A00060 */ lwc1 $f0, 0x60($sp)
/* 3E4474 E010A0D4 3C01447A */ lui $at, 0x447a
/* 3E4478 E010A0D8 44811000 */ mtc1 $at, $f2
/* 3E447C E010A0DC E4800010 */ swc1 $f0, 0x10($a0)
/* 3E4480 E010A0E0 C7A00064 */ lwc1 $f0, 0x64($sp)
/* 3E4484 E010A0E4 0000302D */ daddu $a2, $zero, $zero
/* 3E4488 E010A0E8 E4800014 */ swc1 $f0, 0x14($a0)
/* 3E448C E010A0EC C7A00068 */ lwc1 $f0, 0x68($sp)
/* 3E4490 E010A0F0 0080282D */ daddu $a1, $a0, $zero
/* 3E4494 E010A0F4 E4800018 */ swc1 $f0, 0x18($a0)
/* 3E4498 E010A0F8 C7A0006C */ lwc1 $f0, 0x6c($sp)
/* 3E449C E010A0FC 24020064 */ addiu $v0, $zero, 0x64
/* 3E44A0 E010A100 AC82002C */ sw $v0, 0x2c($a0)
/* 3E44A4 E010A104 AC820038 */ sw $v0, 0x38($a0)
/* 3E44A8 E010A108 24020096 */ addiu $v0, $zero, 0x96
/* 3E44AC E010A10C AC830024 */ sw $v1, 0x24($a0)
/* 3E44B0 E010A110 AC830028 */ sw $v1, 0x28($a0)
/* 3E44B4 E010A114 AC830034 */ sw $v1, 0x34($a0)
/* 3E44B8 E010A118 AC82003C */ sw $v0, 0x3c($a0)
/* 3E44BC E010A11C AC830040 */ sw $v1, 0x40($a0)
/* 3E44C0 E010A120 E4800048 */ swc1 $f0, 0x48($a0)
.LE010A124:
/* 3E44C4 E010A124 C4800004 */ lwc1 $f0, 4($a0)
/* 3E44C8 E010A128 E4A00050 */ swc1 $f0, 0x50($a1)
/* 3E44CC E010A12C C4800008 */ lwc1 $f0, 8($a0)
/* 3E44D0 E010A130 46020001 */ sub.s $f0, $f0, $f2
/* 3E44D4 E010A134 24C60001 */ addiu $a2, $a2, 1
/* 3E44D8 E010A138 E4A00060 */ swc1 $f0, 0x60($a1)
/* 3E44DC E010A13C C480000C */ lwc1 $f0, 0xc($a0)
/* 3E44E0 E010A140 28C20004 */ slti $v0, $a2, 4
/* 3E44E4 E010A144 ACA00080 */ sw $zero, 0x80($a1)
/* 3E44E8 E010A148 ACA00090 */ sw $zero, 0x90($a1)
/* 3E44EC E010A14C ACA000A0 */ sw $zero, 0xa0($a1)
/* 3E44F0 E010A150 E4A00070 */ swc1 $f0, 0x70($a1)
/* 3E44F4 E010A154 1440FFF3 */ bnez $v0, .LE010A124
/* 3E44F8 E010A158 24A50004 */ addiu $a1, $a1, 4
/* 3E44FC E010A15C 0200102D */ daddu $v0, $s0, $zero
/* 3E4500 E010A160 8FBF0034 */ lw $ra, 0x34($sp)
/* 3E4504 E010A164 8FB20030 */ lw $s2, 0x30($sp)
/* 3E4508 E010A168 8FB1002C */ lw $s1, 0x2c($sp)
/* 3E450C E010A16C 8FB00028 */ lw $s0, 0x28($sp)
/* 3E4510 E010A170 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3E4514 E010A174 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3E4518 E010A178 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3E451C E010A17C 03E00008 */ jr $ra
/* 3E4520 E010A180 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,222 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E010AF90
.double 0.11
dlabel D_E010AF98
.double 0.15
dlabel D_E010AFA0
.double 0.15
.section .text
glabel firework_rocket_update
/* 3E452C E010A18C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 3E4530 E010A190 AFBF001C */ sw $ra, 0x1c($sp)
/* 3E4534 E010A194 AFB20018 */ sw $s2, 0x18($sp)
/* 3E4538 E010A198 AFB10014 */ sw $s1, 0x14($sp)
/* 3E453C E010A19C AFB00010 */ sw $s0, 0x10($sp)
/* 3E4540 E010A1A0 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 3E4544 E010A1A4 8C830000 */ lw $v1, ($a0)
/* 3E4548 E010A1A8 8C91000C */ lw $s1, 0xc($a0)
/* 3E454C E010A1AC 30620010 */ andi $v0, $v1, 0x10
/* 3E4550 E010A1B0 10400005 */ beqz $v0, .LE010A1C8
/* 3E4554 E010A1B4 2402FFEF */ addiu $v0, $zero, -0x11
/* 3E4558 E010A1B8 00621024 */ and $v0, $v1, $v0
/* 3E455C E010A1BC AC820000 */ sw $v0, ($a0)
/* 3E4560 E010A1C0 24020010 */ addiu $v0, $zero, 0x10
/* 3E4564 E010A1C4 AE22001C */ sw $v0, 0x1c($s1)
.LE010A1C8:
/* 3E4568 E010A1C8 8E23001C */ lw $v1, 0x1c($s1)
/* 3E456C E010A1CC 286203E8 */ slti $v0, $v1, 0x3e8
/* 3E4570 E010A1D0 10400002 */ beqz $v0, .LE010A1DC
/* 3E4574 E010A1D4 2462FFFF */ addiu $v0, $v1, -1
/* 3E4578 E010A1D8 AE22001C */ sw $v0, 0x1c($s1)
.LE010A1DC:
/* 3E457C E010A1DC 8E220020 */ lw $v0, 0x20($s1)
/* 3E4580 E010A1E0 8E25001C */ lw $a1, 0x1c($s1)
/* 3E4584 E010A1E4 24420001 */ addiu $v0, $v0, 1
/* 3E4588 E010A1E8 04A10005 */ bgez $a1, .LE010A200
/* 3E458C E010A1EC AE220020 */ sw $v0, 0x20($s1)
/* 3E4590 E010A1F0 0C080128 */ jal shim_remove_effect
/* 3E4594 E010A1F4 00000000 */ nop
/* 3E4598 E010A1F8 08042921 */ j .LE010A484
/* 3E459C E010A1FC 00000000 */ nop
.LE010A200:
/* 3E45A0 E010A200 0040902D */ daddu $s2, $v0, $zero
/* 3E45A4 E010A204 28A20020 */ slti $v0, $a1, 0x20
/* 3E45A8 E010A208 10400002 */ beqz $v0, .LE010A214
/* 3E45AC E010A20C 000510C0 */ sll $v0, $a1, 3
/* 3E45B0 E010A210 AE220030 */ sw $v0, 0x30($s1)
.LE010A214:
/* 3E45B4 E010A214 8E23004C */ lw $v1, 0x4c($s1)
/* 3E45B8 E010A218 24020001 */ addiu $v0, $zero, 1
/* 3E45BC E010A21C 1462002F */ bne $v1, $v0, .LE010A2DC
/* 3E45C0 E010A220 24020020 */ addiu $v0, $zero, 0x20
/* 3E45C4 E010A224 C6260044 */ lwc1 $f6, 0x44($s1)
/* 3E45C8 E010A228 C6240048 */ lwc1 $f4, 0x48($s1)
/* 3E45CC E010A22C 46062101 */ sub.s $f4, $f4, $f6
/* 3E45D0 E010A230 3C01E011 */ lui $at, %hi(D_E010AF90)
/* 3E45D4 E010A234 D420AF90 */ ldc1 $f0, %lo(D_E010AF90)($at)
/* 3E45D8 E010A238 46002121 */ cvt.d.s $f4, $f4
/* 3E45DC E010A23C 46202102 */ mul.d $f4, $f4, $f0
/* 3E45E0 E010A240 00000000 */ nop
/* 3E45E4 E010A244 3C013F73 */ lui $at, 0x3f73
/* 3E45E8 E010A248 34213333 */ ori $at, $at, 0x3333
/* 3E45EC E010A24C 44818000 */ mtc1 $at, $f16
/* 3E45F0 E010A250 C62E0010 */ lwc1 $f14, 0x10($s1)
/* 3E45F4 E010A254 46107382 */ mul.s $f14, $f14, $f16
/* 3E45F8 E010A258 00000000 */ nop
/* 3E45FC E010A25C C62C0018 */ lwc1 $f12, 0x18($s1)
/* 3E4600 E010A260 46106302 */ mul.s $f12, $f12, $f16
/* 3E4604 E010A264 00000000 */ nop
/* 3E4608 E010A268 C62A0004 */ lwc1 $f10, 4($s1)
/* 3E460C E010A26C C6200010 */ lwc1 $f0, 0x10($s1)
/* 3E4610 E010A270 C6280008 */ lwc1 $f8, 8($s1)
/* 3E4614 E010A274 46005280 */ add.s $f10, $f10, $f0
/* 3E4618 E010A278 C6200014 */ lwc1 $f0, 0x14($s1)
/* 3E461C E010A27C C622000C */ lwc1 $f2, 0xc($s1)
/* 3E4620 E010A280 46004200 */ add.s $f8, $f8, $f0
/* 3E4624 E010A284 C6200018 */ lwc1 $f0, 0x18($s1)
/* 3E4628 E010A288 46001080 */ add.s $f2, $f2, $f0
/* 3E462C E010A28C C6200014 */ lwc1 $f0, 0x14($s1)
/* 3E4630 E010A290 460031A1 */ cvt.d.s $f6, $f6
/* 3E4634 E010A294 E62E0010 */ swc1 $f14, 0x10($s1)
/* 3E4638 E010A298 E62C0018 */ swc1 $f12, 0x18($s1)
/* 3E463C E010A29C 46100002 */ mul.s $f0, $f0, $f16
/* 3E4640 E010A2A0 00000000 */ nop
/* 3E4644 E010A2A4 E62A0004 */ swc1 $f10, 4($s1)
/* 3E4648 E010A2A8 E6280008 */ swc1 $f8, 8($s1)
/* 3E464C E010A2AC E622000C */ swc1 $f2, 0xc($s1)
/* 3E4650 E010A2B0 3C01E011 */ lui $at, %hi(D_E010AF98)
/* 3E4654 E010A2B4 D422AF98 */ ldc1 $f2, %lo(D_E010AF98)($at)
/* 3E4658 E010A2B8 46243180 */ add.d $f6, $f6, $f4
/* 3E465C E010A2BC E6200014 */ swc1 $f0, 0x14($s1)
/* 3E4660 E010A2C0 46000021 */ cvt.d.s $f0, $f0
/* 3E4664 E010A2C4 46220001 */ sub.d $f0, $f0, $f2
/* 3E4668 E010A2C8 462031A0 */ cvt.s.d $f6, $f6
/* 3E466C E010A2CC E6260044 */ swc1 $f6, 0x44($s1)
/* 3E4670 E010A2D0 46200020 */ cvt.s.d $f0, $f0
/* 3E4674 E010A2D4 08042921 */ j .LE010A484
/* 3E4678 E010A2D8 E6200014 */ swc1 $f0, 0x14($s1)
.LE010A2DC:
/* 3E467C E010A2DC 00521023 */ subu $v0, $v0, $s2
/* 3E4680 E010A2E0 4482A000 */ mtc1 $v0, $f20
/* 3E4684 E010A2E4 00000000 */ nop
/* 3E4688 E010A2E8 4680A520 */ cvt.s.w $f20, $f20
/* 3E468C E010A2EC 32440003 */ andi $a0, $s2, 3
/* 3E4690 E010A2F0 00048080 */ sll $s0, $a0, 2
/* 3E4694 E010A2F4 02308021 */ addu $s0, $s1, $s0
/* 3E4698 E010A2F8 00121840 */ sll $v1, $s2, 1
/* 3E469C E010A2FC C6200010 */ lwc1 $f0, 0x10($s1)
/* 3E46A0 E010A300 00721821 */ addu $v1, $v1, $s2
/* 3E46A4 E010A304 46140002 */ mul.s $f0, $f0, $f20
/* 3E46A8 E010A308 00000000 */ nop
/* 3E46AC E010A30C 00031100 */ sll $v0, $v1, 4
/* 3E46B0 E010A310 00431023 */ subu $v0, $v0, $v1
/* 3E46B4 E010A314 C6220004 */ lwc1 $f2, 4($s1)
/* 3E46B8 E010A318 00021040 */ sll $v0, $v0, 1
/* 3E46BC E010A31C 46001081 */ sub.s $f2, $f2, $f0
/* 3E46C0 E010A320 00021143 */ sra $v0, $v0, 5
/* 3E46C4 E010A324 44826000 */ mtc1 $v0, $f12
/* 3E46C8 E010A328 00000000 */ nop
/* 3E46CC E010A32C 46806320 */ cvt.s.w $f12, $f12
/* 3E46D0 E010A330 0C080140 */ jal shim_sin_deg
/* 3E46D4 E010A334 E6020050 */ swc1 $f2, 0x50($s0)
/* 3E46D8 E010A338 C6260014 */ lwc1 $f6, 0x14($s1)
/* 3E46DC E010A33C 46143182 */ mul.s $f6, $f6, $f20
/* 3E46E0 E010A340 00000000 */ nop
/* 3E46E4 E010A344 3C0142A0 */ lui $at, 0x42a0
/* 3E46E8 E010A348 44812000 */ mtc1 $at, $f4
/* 3E46EC E010A34C 00000000 */ nop
/* 3E46F0 E010A350 46040002 */ mul.s $f0, $f0, $f4
/* 3E46F4 E010A354 00000000 */ nop
/* 3E46F8 E010A358 C6220008 */ lwc1 $f2, 8($s1)
/* 3E46FC E010A35C 46061081 */ sub.s $f2, $f2, $f6
/* 3E4700 E010A360 46002101 */ sub.s $f4, $f4, $f0
/* 3E4704 E010A364 46041081 */ sub.s $f2, $f2, $f4
/* 3E4708 E010A368 E6020060 */ swc1 $f2, 0x60($s0)
/* 3E470C E010A36C C6200018 */ lwc1 $f0, 0x18($s1)
/* 3E4710 E010A370 46140002 */ mul.s $f0, $f0, $f20
/* 3E4714 E010A374 00000000 */ nop
/* 3E4718 E010A378 C622000C */ lwc1 $f2, 0xc($s1)
/* 3E471C E010A37C 46001081 */ sub.s $f2, $f2, $f0
/* 3E4720 E010A380 2404000A */ addiu $a0, $zero, 0xa
/* 3E4724 E010A384 0C080138 */ jal shim_rand_int
/* 3E4728 E010A388 E6020070 */ swc1 $f2, 0x70($s0)
/* 3E472C E010A38C 2442FFFB */ addiu $v0, $v0, -5
/* 3E4730 E010A390 3C013DCC */ lui $at, 0x3dcc
/* 3E4734 E010A394 3421CCCD */ ori $at, $at, 0xcccd
/* 3E4738 E010A398 4481A000 */ mtc1 $at, $f20
/* 3E473C E010A39C 44820000 */ mtc1 $v0, $f0
/* 3E4740 E010A3A0 00000000 */ nop
/* 3E4744 E010A3A4 46800020 */ cvt.s.w $f0, $f0
/* 3E4748 E010A3A8 46140002 */ mul.s $f0, $f0, $f20
/* 3E474C E010A3AC 00000000 */ nop
/* 3E4750 E010A3B0 2404000A */ addiu $a0, $zero, 0xa
/* 3E4754 E010A3B4 0C080138 */ jal shim_rand_int
/* 3E4758 E010A3B8 E6000080 */ swc1 $f0, 0x80($s0)
/* 3E475C E010A3BC 2442FFFB */ addiu $v0, $v0, -5
/* 3E4760 E010A3C0 44820000 */ mtc1 $v0, $f0
/* 3E4764 E010A3C4 00000000 */ nop
/* 3E4768 E010A3C8 46800020 */ cvt.s.w $f0, $f0
/* 3E476C E010A3CC 46140002 */ mul.s $f0, $f0, $f20
/* 3E4770 E010A3D0 00000000 */ nop
/* 3E4774 E010A3D4 2404000A */ addiu $a0, $zero, 0xa
/* 3E4778 E010A3D8 0C080138 */ jal shim_rand_int
/* 3E477C E010A3DC E6000090 */ swc1 $f0, 0x90($s0)
/* 3E4780 E010A3E0 0000202D */ daddu $a0, $zero, $zero
/* 3E4784 E010A3E4 2442FFFB */ addiu $v0, $v0, -5
/* 3E4788 E010A3E8 44820000 */ mtc1 $v0, $f0
/* 3E478C E010A3EC 00000000 */ nop
/* 3E4790 E010A3F0 46800020 */ cvt.s.w $f0, $f0
/* 3E4794 E010A3F4 46140002 */ mul.s $f0, $f0, $f20
/* 3E4798 E010A3F8 00000000 */ nop
/* 3E479C E010A3FC 2A45001B */ slti $a1, $s2, 0x1b
/* 3E47A0 E010A400 3C01E011 */ lui $at, %hi(D_E010AFA0)
/* 3E47A4 E010A404 D42AAFA0 */ ldc1 $f10, %lo(D_E010AFA0)($at)
/* 3E47A8 E010A408 3C01C47A */ lui $at, 0xc47a
/* 3E47AC E010A40C 44816000 */ mtc1 $at, $f12
/* 3E47B0 E010A410 0220182D */ daddu $v1, $s1, $zero
/* 3E47B4 E010A414 E60000A0 */ swc1 $f0, 0xa0($s0)
.LE010A418:
/* 3E47B8 E010A418 C4660050 */ lwc1 $f6, 0x50($v1)
/* 3E47BC E010A41C C4600080 */ lwc1 $f0, 0x80($v1)
/* 3E47C0 E010A420 C4640070 */ lwc1 $f4, 0x70($v1)
/* 3E47C4 E010A424 46003180 */ add.s $f6, $f6, $f0
/* 3E47C8 E010A428 C46200A0 */ lwc1 $f2, 0xa0($v1)
/* 3E47CC E010A42C C4680060 */ lwc1 $f8, 0x60($v1)
/* 3E47D0 E010A430 46022100 */ add.s $f4, $f4, $f2
/* 3E47D4 E010A434 C4600090 */ lwc1 $f0, 0x90($v1)
/* 3E47D8 E010A438 46004200 */ add.s $f8, $f8, $f0
/* 3E47DC E010A43C 46000021 */ cvt.d.s $f0, $f0
/* 3E47E0 E010A440 462A0001 */ sub.d $f0, $f0, $f10
/* 3E47E4 E010A444 E4660050 */ swc1 $f6, 0x50($v1)
/* 3E47E8 E010A448 E4640070 */ swc1 $f4, 0x70($v1)
/* 3E47EC E010A44C 46200020 */ cvt.s.d $f0, $f0
/* 3E47F0 E010A450 E4680060 */ swc1 $f8, 0x60($v1)
/* 3E47F4 E010A454 14A00002 */ bnez $a1, .LE010A460
/* 3E47F8 E010A458 E4600090 */ swc1 $f0, 0x90($v1)
/* 3E47FC E010A45C E46C0060 */ swc1 $f12, 0x60($v1)
.LE010A460:
/* 3E4800 E010A460 24840001 */ addiu $a0, $a0, 1
/* 3E4804 E010A464 28820004 */ slti $v0, $a0, 4
/* 3E4808 E010A468 1440FFEB */ bnez $v0, .LE010A418
/* 3E480C E010A46C 24630004 */ addiu $v1, $v1, 4
/* 3E4810 E010A470 2A420020 */ slti $v0, $s2, 0x20
/* 3E4814 E010A474 14400003 */ bnez $v0, .LE010A484
/* 3E4818 E010A478 24020001 */ addiu $v0, $zero, 1
/* 3E481C E010A47C AE22004C */ sw $v0, 0x4c($s1)
/* 3E4820 E010A480 AE220020 */ sw $v0, 0x20($s1)
.LE010A484:
/* 3E4824 E010A484 8FBF001C */ lw $ra, 0x1c($sp)
/* 3E4828 E010A488 8FB20018 */ lw $s2, 0x18($sp)
/* 3E482C E010A48C 8FB10014 */ lw $s1, 0x14($sp)
/* 3E4830 E010A490 8FB00010 */ lw $s0, 0x10($sp)
/* 3E4834 E010A494 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 3E4838 E010A498 03E00008 */ jr $ra
/* 3E483C E010A49C 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,417 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0064A90
.double 0.3, 0.0
.section .text
glabel green_impact_appendGfx
/* 365324 E0064414 27BDFEE8 */ addiu $sp, $sp, -0x118
/* 365328 E0064418 AFB300E4 */ sw $s3, 0xe4($sp)
/* 36532C E006441C 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 365330 E0064420 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 365334 E0064424 AFBF00FC */ sw $ra, 0xfc($sp)
/* 365338 E0064428 AFBE00F8 */ sw $fp, 0xf8($sp)
/* 36533C E006442C AFB700F4 */ sw $s7, 0xf4($sp)
/* 365340 E0064430 AFB600F0 */ sw $s6, 0xf0($sp)
/* 365344 E0064434 AFB500EC */ sw $s5, 0xec($sp)
/* 365348 E0064438 AFB400E8 */ sw $s4, 0xe8($sp)
/* 36534C E006443C AFB200E0 */ sw $s2, 0xe0($sp)
/* 365350 E0064440 AFB100DC */ sw $s1, 0xdc($sp)
/* 365354 E0064444 AFB000D8 */ sw $s0, 0xd8($sp)
/* 365358 E0064448 F7B80110 */ sdc1 $f24, 0x110($sp)
/* 36535C E006444C F7B60108 */ sdc1 $f22, 0x108($sp)
/* 365360 E0064450 F7B40100 */ sdc1 $f20, 0x100($sp)
/* 365364 E0064454 AFA40118 */ sw $a0, 0x118($sp)
/* 365368 E0064458 8E680000 */ lw $t0, ($s3)
/* 36536C E006445C 8FAD0118 */ lw $t5, 0x118($sp)
/* 365370 E0064460 4480A000 */ mtc1 $zero, $f20
/* 365374 E0064464 3C013F80 */ lui $at, 0x3f80
/* 365378 E0064468 4481C000 */ mtc1 $at, $f24
/* 36537C E006446C 8DB1000C */ lw $s1, 0xc($t5)
/* 365380 E0064470 4405A000 */ mfc1 $a1, $f20
/* 365384 E0064474 96220000 */ lhu $v0, ($s1)
/* 365388 E0064478 922D0050 */ lbu $t5, 0x50($s1)
/* 36538C E006447C 00021080 */ sll $v0, $v0, 2
/* 365390 E0064480 3C09E006 */ lui $t1, %hi(D_E0064A60)
/* 365394 E0064484 01224821 */ addu $t1, $t1, $v0
/* 365398 E0064488 8D294A60 */ lw $t1, %lo(D_E0064A60)($t1)
/* 36539C E006448C 3C06DB06 */ lui $a2, 0xdb06
/* 3653A0 E0064490 AFAD00A4 */ sw $t5, 0xa4($sp)
/* 3653A4 E0064494 922D0051 */ lbu $t5, 0x51($s1)
/* 3653A8 E0064498 34C60024 */ ori $a2, $a2, 0x24
/* 3653AC E006449C AFAD00A8 */ sw $t5, 0xa8($sp)
/* 3653B0 E00644A0 922D0052 */ lbu $t5, 0x52($s1)
/* 3653B4 E00644A4 27A40020 */ addiu $a0, $sp, 0x20
/* 3653B8 E00644A8 AFAD00AC */ sw $t5, 0xac($sp)
/* 3653BC E00644AC 922D0053 */ lbu $t5, 0x53($s1)
/* 3653C0 E00644B0 0100182D */ daddu $v1, $t0, $zero
/* 3653C4 E00644B4 AFAD00B0 */ sw $t5, 0xb0($sp)
/* 3653C8 E00644B8 922D0054 */ lbu $t5, 0x54($s1)
/* 3653CC E00644BC 25080008 */ addiu $t0, $t0, 8
/* 3653D0 E00644C0 AFAD00B4 */ sw $t5, 0xb4($sp)
/* 3653D4 E00644C4 922D0055 */ lbu $t5, 0x55($s1)
/* 3653D8 E00644C8 3C02E700 */ lui $v0, 0xe700
/* 3653DC E00644CC AFAD00B8 */ sw $t5, 0xb8($sp)
/* 3653E0 E00644D0 AC620000 */ sw $v0, ($v1)
/* 3653E4 E00644D4 AC600004 */ sw $zero, 4($v1)
/* 3653E8 E00644D8 AD060000 */ sw $a2, ($t0)
/* 3653EC E00644DC 8FAD0118 */ lw $t5, 0x118($sp)
/* 3653F0 E00644E0 4407A000 */ mfc1 $a3, $f20
/* 3653F4 E00644E4 8DA20010 */ lw $v0, 0x10($t5)
/* 3653F8 E00644E8 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 3653FC E00644EC 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 365400 E00644F0 8C46001C */ lw $a2, 0x1c($v0)
/* 365404 E00644F4 3C02DE00 */ lui $v0, 0xde00
/* 365408 E00644F8 AD020008 */ sw $v0, 8($t0)
/* 36540C E00644FC 3C028000 */ lui $v0, 0x8000
/* 365410 E0064500 AD09000C */ sw $t1, 0xc($t0)
/* 365414 E0064504 00C23021 */ addu $a2, $a2, $v0
/* 365418 E0064508 00031080 */ sll $v0, $v1, 2
/* 36541C E006450C 00431021 */ addu $v0, $v0, $v1
/* 365420 E0064510 00021080 */ sll $v0, $v0, 2
/* 365424 E0064514 00431023 */ subu $v0, $v0, $v1
/* 365428 E0064518 000218C0 */ sll $v1, $v0, 3
/* 36542C E006451C 00431021 */ addu $v0, $v0, $v1
/* 365430 E0064520 000210C0 */ sll $v0, $v0, 3
/* 365434 E0064524 AD060004 */ sw $a2, 4($t0)
/* 365438 E0064528 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 36543C E006452C 00220821 */ addu $at, $at, $v0
/* 365440 E0064530 C4221DEC */ lwc1 $f2, %lo(gCameras+0x6C)($at)
/* 365444 E0064534 3C100001 */ lui $s0, 1
/* 365448 E0064538 AE680000 */ sw $t0, ($s3)
/* 36544C E006453C E7B80010 */ swc1 $f24, 0x10($sp)
/* 365450 E0064540 C6200004 */ lwc1 $f0, 4($s1)
/* 365454 E0064544 25020008 */ addiu $v0, $t0, 8
/* 365458 E0064548 AE620000 */ sw $v0, ($s3)
/* 36545C E006454C 46001087 */ neg.s $f2, $f2
/* 365460 E0064550 E7A00014 */ swc1 $f0, 0x14($sp)
/* 365464 E0064554 C6200008 */ lwc1 $f0, 8($s1)
/* 365468 E0064558 44061000 */ mfc1 $a2, $f2
/* 36546C E006455C 25080010 */ addiu $t0, $t0, 0x10
/* 365470 E0064560 AE680000 */ sw $t0, ($s3)
/* 365474 E0064564 E7A00018 */ swc1 $f0, 0x18($sp)
/* 365478 E0064568 C620000C */ lwc1 $f0, 0xc($s1)
/* 36547C E006456C 36101630 */ ori $s0, $s0, 0x1630
/* 365480 E0064570 0C080180 */ jal shim_guPositionF
/* 365484 E0064574 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 365488 E0064578 27A40020 */ addiu $a0, $sp, 0x20
/* 36548C E006457C 3C158007 */ lui $s5, %hi(gMatrixListPos)
/* 365490 E0064580 26B541F0 */ addiu $s5, $s5, %lo(gMatrixListPos)
/* 365494 E0064584 3C16800A */ lui $s6, %hi(gDisplayContext)
/* 365498 E0064588 26D6A674 */ addiu $s6, $s6, %lo(gDisplayContext)
/* 36549C E006458C 96A50000 */ lhu $a1, ($s5)
/* 3654A0 E0064590 8EC20000 */ lw $v0, ($s6)
/* 3654A4 E0064594 00052980 */ sll $a1, $a1, 6
/* 3654A8 E0064598 00B02821 */ addu $a1, $a1, $s0
/* 3654AC E006459C 0C080118 */ jal shim_guMtxF2L
/* 3654B0 E00645A0 00452821 */ addu $a1, $v0, $a1
/* 3654B4 E00645A4 24140001 */ addiu $s4, $zero, 1
/* 3654B8 E00645A8 3C02DA38 */ lui $v0, 0xda38
/* 3654BC E00645AC 8E650000 */ lw $a1, ($s3)
/* 3654C0 E00645B0 96A40000 */ lhu $a0, ($s5)
/* 3654C4 E00645B4 00A0302D */ daddu $a2, $a1, $zero
/* 3654C8 E00645B8 24A50008 */ addiu $a1, $a1, 8
/* 3654CC E00645BC ACC20000 */ sw $v0, ($a2)
/* 3654D0 E00645C0 3082FFFF */ andi $v0, $a0, 0xffff
/* 3654D4 E00645C4 00021180 */ sll $v0, $v0, 6
/* 3654D8 E00645C8 00501021 */ addu $v0, $v0, $s0
/* 3654DC E00645CC 00942021 */ addu $a0, $a0, $s4
/* 3654E0 E00645D0 8EC30000 */ lw $v1, ($s6)
/* 3654E4 E00645D4 00A0B82D */ daddu $s7, $a1, $zero
/* 3654E8 E00645D8 00621821 */ addu $v1, $v1, $v0
/* 3654EC E00645DC ACC30004 */ sw $v1, 4($a2)
/* 3654F0 E00645E0 8E2D0038 */ lw $t5, 0x38($s1)
/* 3654F4 E00645E4 26E30008 */ addiu $v1, $s7, 8
/* 3654F8 E00645E8 AFAD00A0 */ sw $t5, 0xa0($sp)
/* 3654FC E00645EC AE650000 */ sw $a1, ($s3)
/* 365500 E00645F0 A6A40000 */ sh $a0, ($s5)
/* 365504 E00645F4 AE630000 */ sw $v1, ($s3)
/* 365508 E00645F8 8FAD00A4 */ lw $t5, 0xa4($sp)
/* 36550C E00645FC AFAD00BC */ sw $t5, 0xbc($sp)
/* 365510 E0064600 8FAD00A8 */ lw $t5, 0xa8($sp)
/* 365514 E0064604 AFAD00C0 */ sw $t5, 0xc0($sp)
/* 365518 E0064608 8FAD00AC */ lw $t5, 0xac($sp)
/* 36551C E006460C AFAD00C4 */ sw $t5, 0xc4($sp)
/* 365520 E0064610 8FAD00B0 */ lw $t5, 0xb0($sp)
/* 365524 E0064614 AFAD00C8 */ sw $t5, 0xc8($sp)
/* 365528 E0064618 8FAD00B4 */ lw $t5, 0xb4($sp)
/* 36552C E006461C AFAD00CC */ sw $t5, 0xcc($sp)
/* 365530 E0064620 8FAD00B8 */ lw $t5, 0xb8($sp)
/* 365534 E0064624 AFAD00D0 */ sw $t5, 0xd0($sp)
/* 365538 E0064628 8FAD0118 */ lw $t5, 0x118($sp)
/* 36553C E006462C 8DA20008 */ lw $v0, 8($t5)
/* 365540 E0064630 26310058 */ addiu $s1, $s1, 0x58
/* 365544 E0064634 0282102A */ slt $v0, $s4, $v0
/* 365548 E0064638 10400090 */ beqz $v0, .LE006487C
/* 36554C E006463C AFA300D4 */ sw $v1, 0xd4($sp)
/* 365550 E0064640 27B20060 */ addiu $s2, $sp, 0x60
/* 365554 E0064644 4600A586 */ mov.s $f22, $f20
/* 365558 E0064648 3C01E006 */ lui $at, %hi(D_E0064A90)
/* 36555C E006464C D4344A90 */ ldc1 $f20, %lo(D_E0064A90)($at)
/* 365560 E0064650 02A0B02D */ daddu $s6, $s5, $zero
/* 365564 E0064654 3C150001 */ lui $s5, 1
/* 365568 E0064658 36B51630 */ ori $s5, $s5, 0x1630
/* 36556C E006465C 3C1EF200 */ lui $fp, 0xf200
/* 365570 E0064660 26300044 */ addiu $s0, $s1, 0x44
.LE0064664:
/* 365574 E0064664 8E020008 */ lw $v0, 8($s0)
/* 365578 E0064668 0440007E */ bltz $v0, .LE0064864
/* 36557C E006466C 00000000 */ nop
/* 365580 E0064670 8E05FFC0 */ lw $a1, -0x40($s0)
/* 365584 E0064674 8E06FFC4 */ lw $a2, -0x3c($s0)
/* 365588 E0064678 8E07FFC8 */ lw $a3, -0x38($s0)
/* 36558C E006467C 0C080108 */ jal shim_guTranslateF
/* 365590 E0064680 27A40020 */ addiu $a0, $sp, 0x20
/* 365594 E0064684 E7B80010 */ swc1 $f24, 0x10($sp)
/* 365598 E0064688 8E05FFF0 */ lw $a1, -0x10($s0)
/* 36559C E006468C 4406B000 */ mfc1 $a2, $f22
/* 3655A0 E0064690 4407B000 */ mfc1 $a3, $f22
/* 3655A4 E0064694 0C080104 */ jal shim_guRotateF
/* 3655A8 E0064698 0240202D */ daddu $a0, $s2, $zero
/* 3655AC E006469C 0240202D */ daddu $a0, $s2, $zero
/* 3655B0 E00646A0 27A50020 */ addiu $a1, $sp, 0x20
/* 3655B4 E00646A4 0C080114 */ jal shim_guMtxCatF
/* 3655B8 E00646A8 00A0302D */ daddu $a2, $a1, $zero
/* 3655BC E00646AC C604FFD8 */ lwc1 $f4, -0x28($s0)
/* 3655C0 E00646B0 46002121 */ cvt.d.s $f4, $f4
/* 3655C4 E00646B4 46342102 */ mul.d $f4, $f4, $f20
/* 3655C8 E00646B8 00000000 */ nop
/* 3655CC E00646BC C602FFDC */ lwc1 $f2, -0x24($s0)
/* 3655D0 E00646C0 460010A1 */ cvt.d.s $f2, $f2
/* 3655D4 E00646C4 46341082 */ mul.d $f2, $f2, $f20
/* 3655D8 E00646C8 00000000 */ nop
/* 3655DC E00646CC C600FFE0 */ lwc1 $f0, -0x20($s0)
/* 3655E0 E00646D0 46000021 */ cvt.d.s $f0, $f0
/* 3655E4 E00646D4 46340002 */ mul.d $f0, $f0, $f20
/* 3655E8 E00646D8 00000000 */ nop
/* 3655EC E00646DC 46202120 */ cvt.s.d $f4, $f4
/* 3655F0 E00646E0 462010A0 */ cvt.s.d $f2, $f2
/* 3655F4 E00646E4 46200020 */ cvt.s.d $f0, $f0
/* 3655F8 E00646E8 44052000 */ mfc1 $a1, $f4
/* 3655FC E00646EC 44061000 */ mfc1 $a2, $f2
/* 365600 E00646F0 44070000 */ mfc1 $a3, $f0
/* 365604 E00646F4 0C080110 */ jal shim_guScaleF
/* 365608 E00646F8 0240202D */ daddu $a0, $s2, $zero
/* 36560C E00646FC 0240202D */ daddu $a0, $s2, $zero
/* 365610 E0064700 27A50020 */ addiu $a1, $sp, 0x20
/* 365614 E0064704 0C080114 */ jal shim_guMtxCatF
/* 365618 E0064708 00A0302D */ daddu $a2, $a1, $zero
/* 36561C E006470C E7B60010 */ swc1 $f22, 0x10($sp)
/* 365620 E0064710 8E05FFEC */ lw $a1, -0x14($s0)
/* 365624 E0064714 4406B000 */ mfc1 $a2, $f22
/* 365628 E0064718 4407C000 */ mfc1 $a3, $f24
/* 36562C E006471C 0C080104 */ jal shim_guRotateF
/* 365630 E0064720 0240202D */ daddu $a0, $s2, $zero
/* 365634 E0064724 0240202D */ daddu $a0, $s2, $zero
/* 365638 E0064728 27A50020 */ addiu $a1, $sp, 0x20
/* 36563C E006472C 0C080114 */ jal shim_guMtxCatF
/* 365640 E0064730 00A0302D */ daddu $a2, $a1, $zero
/* 365644 E0064734 27A40020 */ addiu $a0, $sp, 0x20
/* 365648 E0064738 96C50000 */ lhu $a1, ($s6)
/* 36564C E006473C 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 365650 E0064740 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 365654 E0064744 00052980 */ sll $a1, $a1, 6
/* 365658 E0064748 00B52821 */ addu $a1, $a1, $s5
/* 36565C E006474C 0C080118 */ jal shim_guMtxF2L
/* 365660 E0064750 00452821 */ addu $a1, $v0, $a1
/* 365664 E0064754 3C06000F */ lui $a2, 0xf
/* 365668 E0064758 34C6C000 */ ori $a2, $a2, 0xc000
/* 36566C E006475C 3C080107 */ lui $t0, 0x107
/* 365670 E0064760 3508C000 */ ori $t0, $t0, 0xc000
/* 365674 E0064764 3C07D838 */ lui $a3, 0xd838
/* 365678 E0064768 34E70002 */ ori $a3, $a3, 2
/* 36567C E006476C 8E630000 */ lw $v1, ($s3)
/* 365680 E0064770 C600FFF8 */ lwc1 $f0, -8($s0)
/* 365684 E0064774 0060282D */ daddu $a1, $v1, $zero
/* 365688 E0064778 24630008 */ addiu $v1, $v1, 8
/* 36568C E006477C 4600018D */ trunc.w.s $f6, $f0
/* 365690 E0064780 44023000 */ mfc1 $v0, $f6
/* 365694 E0064784 00000000 */ nop
/* 365698 E0064788 30420FFF */ andi $v0, $v0, 0xfff
/* 36569C E006478C 005E1025 */ or $v0, $v0, $fp
/* 3656A0 E0064790 AE630000 */ sw $v1, ($s3)
/* 3656A4 E0064794 ACA20000 */ sw $v0, ($a1)
/* 3656A8 E0064798 24620008 */ addiu $v0, $v1, 8
/* 3656AC E006479C AE620000 */ sw $v0, ($s3)
/* 3656B0 E00647A0 96C40000 */ lhu $a0, ($s6)
/* 3656B4 E00647A4 24620010 */ addiu $v0, $v1, 0x10
/* 3656B8 E00647A8 AE620000 */ sw $v0, ($s3)
/* 3656BC E00647AC 24820001 */ addiu $v0, $a0, 1
/* 3656C0 E00647B0 A6C20000 */ sh $v0, ($s6)
/* 3656C4 E00647B4 24620018 */ addiu $v0, $v1, 0x18
/* 3656C8 E00647B8 3084FFFF */ andi $a0, $a0, 0xffff
/* 3656CC E00647BC 00042180 */ sll $a0, $a0, 6
/* 3656D0 E00647C0 C600FFF8 */ lwc1 $f0, -8($s0)
/* 3656D4 E00647C4 00952021 */ addu $a0, $a0, $s5
/* 3656D8 E00647C8 AE620000 */ sw $v0, ($s3)
/* 3656DC E00647CC 4600018D */ trunc.w.s $f6, $f0
/* 3656E0 E00647D0 44023000 */ mfc1 $v0, $f6
/* 3656E4 E00647D4 00000000 */ nop
/* 3656E8 E00647D8 2442007C */ addiu $v0, $v0, 0x7c
/* 3656EC E00647DC 30420FFF */ andi $v0, $v0, 0xfff
/* 3656F0 E00647E0 00461025 */ or $v0, $v0, $a2
/* 3656F4 E00647E4 ACA20004 */ sw $v0, 4($a1)
/* 3656F8 E00647E8 C6000000 */ lwc1 $f0, ($s0)
/* 3656FC E00647EC 24620020 */ addiu $v0, $v1, 0x20
/* 365700 E00647F0 AE620000 */ sw $v0, ($s3)
/* 365704 E00647F4 4600018D */ trunc.w.s $f6, $f0
/* 365708 E00647F8 44023000 */ mfc1 $v0, $f6
/* 36570C E00647FC 00000000 */ nop
/* 365710 E0064800 30420FFF */ andi $v0, $v0, 0xfff
/* 365714 E0064804 005E1025 */ or $v0, $v0, $fp
/* 365718 E0064808 AC620000 */ sw $v0, ($v1)
/* 36571C E006480C C6000000 */ lwc1 $f0, ($s0)
/* 365720 E0064810 3C02DA38 */ lui $v0, 0xda38
/* 365724 E0064814 AC620008 */ sw $v0, 8($v1)
/* 365728 E0064818 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 36572C E006481C 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 365730 E0064820 3C0D0900 */ lui $t5, 0x900
/* 365734 E0064824 25AD0540 */ addiu $t5, $t5, 0x540
/* 365738 E0064828 AC6D0014 */ sw $t5, 0x14($v1)
/* 36573C E006482C AC670018 */ sw $a3, 0x18($v1)
/* 365740 E0064830 00441021 */ addu $v0, $v0, $a0
/* 365744 E0064834 AC62000C */ sw $v0, 0xc($v1)
/* 365748 E0064838 3C02DE00 */ lui $v0, 0xde00
/* 36574C E006483C AC620010 */ sw $v0, 0x10($v1)
/* 365750 E0064840 24020040 */ addiu $v0, $zero, 0x40
/* 365754 E0064844 AC62001C */ sw $v0, 0x1c($v1)
/* 365758 E0064848 4600018D */ trunc.w.s $f6, $f0
/* 36575C E006484C 44023000 */ mfc1 $v0, $f6
/* 365760 E0064850 00000000 */ nop
/* 365764 E0064854 2442007C */ addiu $v0, $v0, 0x7c
/* 365768 E0064858 30420FFF */ andi $v0, $v0, 0xfff
/* 36576C E006485C 00481025 */ or $v0, $v0, $t0
/* 365770 E0064860 AC620004 */ sw $v0, 4($v1)
.LE0064864:
/* 365774 E0064864 8FAD0118 */ lw $t5, 0x118($sp)
/* 365778 E0064868 26940001 */ addiu $s4, $s4, 1
/* 36577C E006486C 8DA20008 */ lw $v0, 8($t5)
/* 365780 E0064870 0282102A */ slt $v0, $s4, $v0
/* 365784 E0064874 1440FF7B */ bnez $v0, .LE0064664
/* 365788 E0064878 26100058 */ addiu $s0, $s0, 0x58
.LE006487C:
/* 36578C E006487C 3C0AD9FF */ lui $t2, 0xd9ff
/* 365790 E0064880 354AF9FF */ ori $t2, $t2, 0xf9ff
/* 365794 E0064884 3C05800A */ lui $a1, %hi(gMasterGfxPos)
/* 365798 E0064888 24A5A66C */ addiu $a1, $a1, %lo(gMasterGfxPos)
/* 36579C E006488C 3C02DF00 */ lui $v0, 0xdf00
/* 3657A0 E0064890 8CA30000 */ lw $v1, ($a1)
/* 3657A4 E0064894 3C09FA00 */ lui $t1, 0xfa00
/* 3657A8 E0064898 0060202D */ daddu $a0, $v1, $zero
/* 3657AC E006489C 24630008 */ addiu $v1, $v1, 8
/* 3657B0 E00648A0 ACA30000 */ sw $v1, ($a1)
/* 3657B4 E00648A4 AC820000 */ sw $v0, ($a0)
/* 3657B8 E00648A8 3C02DE01 */ lui $v0, 0xde01
/* 3657BC E00648AC AC800004 */ sw $zero, 4($a0)
/* 3657C0 E00648B0 AEE20000 */ sw $v0, ($s7)
/* 3657C4 E00648B4 24620008 */ addiu $v0, $v1, 8
/* 3657C8 E00648B8 AEE30004 */ sw $v1, 4($s7)
/* 3657CC E00648BC ACA20000 */ sw $v0, ($a1)
/* 3657D0 E00648C0 AC690000 */ sw $t1, ($v1)
/* 3657D4 E00648C4 8FAD00BC */ lw $t5, 0xbc($sp)
/* 3657D8 E00648C8 3C0BD9FF */ lui $t3, 0xd9ff
/* 3657DC E00648CC 000D1600 */ sll $v0, $t5, 0x18
/* 3657E0 E00648D0 8FAD00C0 */ lw $t5, 0xc0($sp)
/* 3657E4 E00648D4 3C07FB00 */ lui $a3, 0xfb00
/* 3657E8 E00648D8 000D2400 */ sll $a0, $t5, 0x10
/* 3657EC E00648DC 8FAD00C4 */ lw $t5, 0xc4($sp)
/* 3657F0 E00648E0 00441025 */ or $v0, $v0, $a0
/* 3657F4 E00648E4 000D2200 */ sll $a0, $t5, 8
/* 3657F8 E00648E8 8FAD00A0 */ lw $t5, 0xa0($sp)
/* 3657FC E00648EC 00441025 */ or $v0, $v0, $a0
/* 365800 E00648F0 31A800FF */ andi $t0, $t5, 0xff
/* 365804 E00648F4 00481025 */ or $v0, $v0, $t0
/* 365808 E00648F8 AC620004 */ sw $v0, 4($v1)
/* 36580C E00648FC 24620010 */ addiu $v0, $v1, 0x10
/* 365810 E0064900 ACA20000 */ sw $v0, ($a1)
/* 365814 E0064904 AC670008 */ sw $a3, 8($v1)
/* 365818 E0064908 8FAD00C8 */ lw $t5, 0xc8($sp)
/* 36581C E006490C 356BFFFF */ ori $t3, $t3, 0xffff
/* 365820 E0064910 000D1600 */ sll $v0, $t5, 0x18
/* 365824 E0064914 8FAD00CC */ lw $t5, 0xcc($sp)
/* 365828 E0064918 3C06DE00 */ lui $a2, 0xde00
/* 36582C E006491C 000D2400 */ sll $a0, $t5, 0x10
/* 365830 E0064920 8FAD00D0 */ lw $t5, 0xd0($sp)
/* 365834 E0064924 00441025 */ or $v0, $v0, $a0
/* 365838 E0064928 000D2200 */ sll $a0, $t5, 8
/* 36583C E006492C 00441025 */ or $v0, $v0, $a0
/* 365840 E0064930 AC62000C */ sw $v0, 0xc($v1)
/* 365844 E0064934 24620018 */ addiu $v0, $v1, 0x18
/* 365848 E0064938 ACA20000 */ sw $v0, ($a1)
/* 36584C E006493C 24620020 */ addiu $v0, $v1, 0x20
/* 365850 E0064940 AC6A0010 */ sw $t2, 0x10($v1)
/* 365854 E0064944 AC600014 */ sw $zero, 0x14($v1)
/* 365858 E0064948 ACA20000 */ sw $v0, ($a1)
/* 36585C E006494C 24020200 */ addiu $v0, $zero, 0x200
/* 365860 E0064950 AC62001C */ sw $v0, 0x1c($v1)
/* 365864 E0064954 24620028 */ addiu $v0, $v1, 0x28
/* 365868 E0064958 AC6B0018 */ sw $t3, 0x18($v1)
/* 36586C E006495C ACA20000 */ sw $v0, ($a1)
/* 365870 E0064960 AC660020 */ sw $a2, 0x20($v1)
/* 365874 E0064964 8FAD00D4 */ lw $t5, 0xd4($sp)
/* 365878 E0064968 24620030 */ addiu $v0, $v1, 0x30
/* 36587C E006496C AC6D0024 */ sw $t5, 0x24($v1)
/* 365880 E0064970 ACA20000 */ sw $v0, ($a1)
/* 365884 E0064974 AC690028 */ sw $t1, 0x28($v1)
/* 365888 E0064978 8FAD00A4 */ lw $t5, 0xa4($sp)
/* 36588C E006497C 000D1600 */ sll $v0, $t5, 0x18
/* 365890 E0064980 8FAD00A8 */ lw $t5, 0xa8($sp)
/* 365894 E0064984 000D2400 */ sll $a0, $t5, 0x10
/* 365898 E0064988 8FAD00AC */ lw $t5, 0xac($sp)
/* 36589C E006498C 00441025 */ or $v0, $v0, $a0
/* 3658A0 E0064990 000D2200 */ sll $a0, $t5, 8
/* 3658A4 E0064994 00441025 */ or $v0, $v0, $a0
/* 3658A8 E0064998 00481025 */ or $v0, $v0, $t0
/* 3658AC E006499C AC62002C */ sw $v0, 0x2c($v1)
/* 3658B0 E00649A0 24620038 */ addiu $v0, $v1, 0x38
/* 3658B4 E00649A4 ACA20000 */ sw $v0, ($a1)
/* 3658B8 E00649A8 AC670030 */ sw $a3, 0x30($v1)
/* 3658BC E00649AC 8FAD00B0 */ lw $t5, 0xb0($sp)
/* 3658C0 E00649B0 3C0CD838 */ lui $t4, 0xd838
/* 3658C4 E00649B4 000D1600 */ sll $v0, $t5, 0x18
/* 3658C8 E00649B8 8FAD00B4 */ lw $t5, 0xb4($sp)
/* 3658CC E00649BC 358C0002 */ ori $t4, $t4, 2
/* 3658D0 E00649C0 000D2400 */ sll $a0, $t5, 0x10
/* 3658D4 E00649C4 8FAD00B8 */ lw $t5, 0xb8($sp)
/* 3658D8 E00649C8 00441025 */ or $v0, $v0, $a0
/* 3658DC E00649CC 000D2200 */ sll $a0, $t5, 8
/* 3658E0 E00649D0 00441025 */ or $v0, $v0, $a0
/* 3658E4 E00649D4 AC620034 */ sw $v0, 0x34($v1)
/* 3658E8 E00649D8 24620040 */ addiu $v0, $v1, 0x40
/* 3658EC E00649DC ACA20000 */ sw $v0, ($a1)
/* 3658F0 E00649E0 24620048 */ addiu $v0, $v1, 0x48
/* 3658F4 E00649E4 AC6A0038 */ sw $t2, 0x38($v1)
/* 3658F8 E00649E8 AC60003C */ sw $zero, 0x3c($v1)
/* 3658FC E00649EC ACA20000 */ sw $v0, ($a1)
/* 365900 E00649F0 24020400 */ addiu $v0, $zero, 0x400
/* 365904 E00649F4 AC620044 */ sw $v0, 0x44($v1)
/* 365908 E00649F8 24620050 */ addiu $v0, $v1, 0x50
/* 36590C E00649FC AC6B0040 */ sw $t3, 0x40($v1)
/* 365910 E0064A00 ACA20000 */ sw $v0, ($a1)
/* 365914 E0064A04 AC660048 */ sw $a2, 0x48($v1)
/* 365918 E0064A08 8FAD00D4 */ lw $t5, 0xd4($sp)
/* 36591C E0064A0C 24620058 */ addiu $v0, $v1, 0x58
/* 365920 E0064A10 AC6D004C */ sw $t5, 0x4c($v1)
/* 365924 E0064A14 ACA20000 */ sw $v0, ($a1)
/* 365928 E0064A18 24020040 */ addiu $v0, $zero, 0x40
/* 36592C E0064A1C AC6C0050 */ sw $t4, 0x50($v1)
/* 365930 E0064A20 AC620054 */ sw $v0, 0x54($v1)
/* 365934 E0064A24 8FBF00FC */ lw $ra, 0xfc($sp)
/* 365938 E0064A28 8FBE00F8 */ lw $fp, 0xf8($sp)
/* 36593C E0064A2C 8FB700F4 */ lw $s7, 0xf4($sp)
/* 365940 E0064A30 8FB600F0 */ lw $s6, 0xf0($sp)
/* 365944 E0064A34 8FB500EC */ lw $s5, 0xec($sp)
/* 365948 E0064A38 8FB400E8 */ lw $s4, 0xe8($sp)
/* 36594C E0064A3C 8FB300E4 */ lw $s3, 0xe4($sp)
/* 365950 E0064A40 8FB200E0 */ lw $s2, 0xe0($sp)
/* 365954 E0064A44 8FB100DC */ lw $s1, 0xdc($sp)
/* 365958 E0064A48 8FB000D8 */ lw $s0, 0xd8($sp)
/* 36595C E0064A4C D7B80110 */ ldc1 $f24, 0x110($sp)
/* 365960 E0064A50 D7B60108 */ ldc1 $f22, 0x108($sp)
/* 365964 E0064A54 D7B40100 */ ldc1 $f20, 0x100($sp)
/* 365968 E0064A58 03E00008 */ jr $ra
/* 36596C E0064A5C 27BD0118 */ addiu $sp, $sp, 0x118

View File

@ -1,112 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel green_impact_main
/* 364F10 E0064000 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 364F14 E0064004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 364F18 E0064008 4485A000 */ mtc1 $a1, $f20
/* 364F1C E006400C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 364F20 E0064010 4486B000 */ mtc1 $a2, $f22
/* 364F24 E0064014 F7B80050 */ sdc1 $f24, 0x50($sp)
/* 364F28 E0064018 4487C000 */ mtc1 $a3, $f24
/* 364F2C E006401C AFB30034 */ sw $s3, 0x34($sp)
/* 364F30 E0064020 0080982D */ daddu $s3, $a0, $zero
/* 364F34 E0064024 AFB1002C */ sw $s1, 0x2c($sp)
/* 364F38 E0064028 24110001 */ addiu $s1, $zero, 1
/* 364F3C E006402C F7BA0058 */ sdc1 $f26, 0x58($sp)
/* 364F40 E0064030 C7BA0070 */ lwc1 $f26, 0x70($sp)
/* 364F44 E0064034 27A40010 */ addiu $a0, $sp, 0x10
/* 364F48 E0064038 AFBF0038 */ sw $ra, 0x38($sp)
/* 364F4C E006403C AFB20030 */ sw $s2, 0x30($sp)
/* 364F50 E0064040 16600002 */ bnez $s3, .LE006404C
/* 364F54 E0064044 AFB00028 */ sw $s0, 0x28($sp)
/* 364F58 E0064048 24110004 */ addiu $s1, $zero, 4
.LE006404C:
/* 364F5C E006404C 26310001 */ addiu $s1, $s1, 1
/* 364F60 E0064050 3C02E006 */ lui $v0, %hi(green_impact_init)
/* 364F64 E0064054 2442419C */ addiu $v0, $v0, %lo(green_impact_init)
/* 364F68 E0064058 AFA00010 */ sw $zero, 0x10($sp)
/* 364F6C E006405C AC820008 */ sw $v0, 8($a0)
/* 364F70 E0064060 3C02E006 */ lui $v0, %hi(green_impact_update)
/* 364F74 E0064064 244241A4 */ addiu $v0, $v0, %lo(green_impact_update)
/* 364F78 E0064068 AC82000C */ sw $v0, 0xc($a0)
/* 364F7C E006406C 3C02E006 */ lui $v0, %hi(green_impact_render)
/* 364F80 E0064070 244243DC */ addiu $v0, $v0, %lo(green_impact_render)
/* 364F84 E0064074 AC820010 */ sw $v0, 0x10($a0)
/* 364F88 E0064078 24020032 */ addiu $v0, $zero, 0x32
/* 364F8C E006407C AC800014 */ sw $zero, 0x14($a0)
/* 364F90 E0064080 0C080124 */ jal shim_create_effect_instance
/* 364F94 E0064084 AC820004 */ sw $v0, 4($a0)
/* 364F98 E0064088 00112040 */ sll $a0, $s1, 1
/* 364F9C E006408C 00912021 */ addu $a0, $a0, $s1
/* 364FA0 E0064090 00042080 */ sll $a0, $a0, 2
/* 364FA4 E0064094 00912023 */ subu $a0, $a0, $s1
/* 364FA8 E0064098 000420C0 */ sll $a0, $a0, 3
/* 364FAC E006409C 0040902D */ daddu $s2, $v0, $zero
/* 364FB0 E00640A0 0C08012C */ jal shim_general_heap_malloc
/* 364FB4 E00640A4 AE510008 */ sw $s1, 8($s2)
/* 364FB8 E00640A8 0040802D */ daddu $s0, $v0, $zero
/* 364FBC E00640AC 16000003 */ bnez $s0, .LE00640BC
/* 364FC0 E00640B0 AE50000C */ sw $s0, 0xc($s2)
.LE00640B4:
/* 364FC4 E00640B4 0801902D */ j .LE00640B4
/* 364FC8 E00640B8 00000000 */ nop
.LE00640BC:
/* 364FCC E00640BC 0200202D */ daddu $a0, $s0, $zero
/* 364FD0 E00640C0 00112840 */ sll $a1, $s1, 1
/* 364FD4 E00640C4 00B12821 */ addu $a1, $a1, $s1
/* 364FD8 E00640C8 00052880 */ sll $a1, $a1, 2
/* 364FDC E00640CC 00B12823 */ subu $a1, $a1, $s1
/* 364FE0 E00640D0 0C080130 */ jal shim_mem_clear
/* 364FE4 E00640D4 000528C0 */ sll $a1, $a1, 3
/* 364FE8 E00640D8 2402003C */ addiu $v0, $zero, 0x3c
/* 364FEC E00640DC 240300FF */ addiu $v1, $zero, 0xff
/* 364FF0 E00640E0 AE020028 */ sw $v0, 0x28($s0)
/* 364FF4 E00640E4 2402007A */ addiu $v0, $zero, 0x7a
/* 364FF8 E00640E8 A2020052 */ sb $v0, 0x52($s0)
/* 364FFC E00640EC 240200F0 */ addiu $v0, $zero, 0xf0
/* 365000 E00640F0 A2020053 */ sb $v0, 0x53($s0)
/* 365004 E00640F4 240200FA */ addiu $v0, $zero, 0xfa
/* 365008 E00640F8 AE00002C */ sw $zero, 0x2c($s0)
/* 36500C E00640FC A6130000 */ sh $s3, ($s0)
/* 365010 E0064100 E6140004 */ swc1 $f20, 4($s0)
/* 365014 E0064104 E6160008 */ swc1 $f22, 8($s0)
/* 365018 E0064108 E618000C */ swc1 $f24, 0xc($s0)
/* 36501C E006410C AE030038 */ sw $v1, 0x38($s0)
/* 365020 E0064110 A2000050 */ sb $zero, 0x50($s0)
/* 365024 E0064114 A2030051 */ sb $v1, 0x51($s0)
/* 365028 E0064118 A2030054 */ sb $v1, 0x54($s0)
/* 36502C E006411C A2020055 */ sb $v0, 0x55($s0)
/* 365030 E0064120 24030001 */ addiu $v1, $zero, 1
/* 365034 E0064124 0071102A */ slt $v0, $v1, $s1
/* 365038 E0064128 10400010 */ beqz $v0, .LE006416C
/* 36503C E006412C 26100058 */ addiu $s0, $s0, 0x58
/* 365040 E0064130 26040030 */ addiu $a0, $s0, 0x30
/* 365044 E0064134 2406001E */ addiu $a2, $zero, 0x1e
/* 365048 E0064138 2405FFFF */ addiu $a1, $zero, -1
.LE006413C:
/* 36504C E006413C 44860000 */ mtc1 $a2, $f0
/* 365050 E0064140 00000000 */ nop
/* 365054 E0064144 46800020 */ cvt.s.w $f0, $f0
/* 365058 E0064148 24C6001E */ addiu $a2, $a2, 0x1e
/* 36505C E006414C AC85001C */ sw $a1, 0x1c($a0)
/* 365060 E0064150 24A5FFFC */ addiu $a1, $a1, -4
/* 365064 E0064154 24630001 */ addiu $v1, $v1, 1
/* 365068 E0064158 E49A0004 */ swc1 $f26, 4($a0)
/* 36506C E006415C E4800000 */ swc1 $f0, ($a0)
/* 365070 E0064160 0071102A */ slt $v0, $v1, $s1
/* 365074 E0064164 1440FFF5 */ bnez $v0, .LE006413C
/* 365078 E0064168 24840058 */ addiu $a0, $a0, 0x58
.LE006416C:
/* 36507C E006416C 0240102D */ daddu $v0, $s2, $zero
/* 365080 E0064170 8FBF0038 */ lw $ra, 0x38($sp)
/* 365084 E0064174 8FB30034 */ lw $s3, 0x34($sp)
/* 365088 E0064178 8FB20030 */ lw $s2, 0x30($sp)
/* 36508C E006417C 8FB1002C */ lw $s1, 0x2c($sp)
/* 365090 E0064180 8FB00028 */ lw $s0, 0x28($sp)
/* 365094 E0064184 D7BA0058 */ ldc1 $f26, 0x58($sp)
/* 365098 E0064188 D7B80050 */ ldc1 $f24, 0x50($sp)
/* 36509C E006418C D7B60048 */ ldc1 $f22, 0x48($sp)
/* 3650A0 E0064190 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 3650A4 E0064194 03E00008 */ jr $ra
/* 3650A8 E0064198 27BD0060 */ addiu $sp, $sp, 0x60

View File

@ -1,168 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0064A70
.double 0.8
dlabel D_E0064A78
.double 0.2
dlabel D_E0064A80
.double 0.9
dlabel D_E0064A88
.double 0.1
.section .text
glabel green_impact_update
/* 3650B4 E00641A4 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 3650B8 E00641A8 AFB20018 */ sw $s2, 0x18($sp)
/* 3650BC E00641AC 0080902D */ daddu $s2, $a0, $zero
/* 3650C0 E00641B0 AFBF001C */ sw $ra, 0x1c($sp)
/* 3650C4 E00641B4 AFB10014 */ sw $s1, 0x14($sp)
/* 3650C8 E00641B8 AFB00010 */ sw $s0, 0x10($sp)
/* 3650CC E00641BC F7BC0040 */ sdc1 $f28, 0x40($sp)
/* 3650D0 E00641C0 F7BA0038 */ sdc1 $f26, 0x38($sp)
/* 3650D4 E00641C4 F7B80030 */ sdc1 $f24, 0x30($sp)
/* 3650D8 E00641C8 F7B60028 */ sdc1 $f22, 0x28($sp)
/* 3650DC E00641CC F7B40020 */ sdc1 $f20, 0x20($sp)
/* 3650E0 E00641D0 8E44000C */ lw $a0, 0xc($s2)
/* 3650E4 E00641D4 8C82002C */ lw $v0, 0x2c($a0)
/* 3650E8 E00641D8 8C830028 */ lw $v1, 0x28($a0)
/* 3650EC E00641DC 24420001 */ addiu $v0, $v0, 1
/* 3650F0 E00641E0 2463FFFF */ addiu $v1, $v1, -1
/* 3650F4 E00641E4 AC82002C */ sw $v0, 0x2c($a0)
/* 3650F8 E00641E8 04610005 */ bgez $v1, .LE0064200
/* 3650FC E00641EC AC830028 */ sw $v1, 0x28($a0)
/* 365100 E00641F0 0C080128 */ jal shim_remove_effect
/* 365104 E00641F4 0240202D */ daddu $a0, $s2, $zero
/* 365108 E00641F8 080190EC */ j .LE00643B0
/* 36510C E00641FC 00000000 */ nop
.LE0064200:
/* 365110 E0064200 8C82002C */ lw $v0, 0x2c($a0)
/* 365114 E0064204 28420008 */ slti $v0, $v0, 8
/* 365118 E0064208 14400009 */ bnez $v0, .LE0064230
/* 36511C E006420C 00000000 */ nop
/* 365120 E0064210 3C01E006 */ lui $at, %hi(D_E0064A70)
/* 365124 E0064214 D4224A70 */ ldc1 $f2, %lo(D_E0064A70)($at)
/* 365128 E0064218 C4800038 */ lwc1 $f0, 0x38($a0)
/* 36512C E006421C 46800021 */ cvt.d.w $f0, $f0
/* 365130 E0064220 46220002 */ mul.d $f0, $f0, $f2
/* 365134 E0064224 00000000 */ nop
/* 365138 E0064228 4620038D */ trunc.w.d $f14, $f0
/* 36513C E006422C E48E0038 */ swc1 $f14, 0x38($a0)
.LE0064230:
/* 365140 E0064230 8E420008 */ lw $v0, 8($s2)
/* 365144 E0064234 24110001 */ addiu $s1, $zero, 1
/* 365148 E0064238 0222102A */ slt $v0, $s1, $v0
/* 36514C E006423C 1040005C */ beqz $v0, .LE00643B0
/* 365150 E0064240 24840058 */ addiu $a0, $a0, 0x58
/* 365154 E0064244 2490003C */ addiu $s0, $a0, 0x3c
/* 365158 E0064248 3C013FE0 */ lui $at, 0x3fe0
/* 36515C E006424C 4481C800 */ mtc1 $at, $f25
/* 365160 E0064250 4480C000 */ mtc1 $zero, $f24
/* 365164 E0064254 3C014200 */ lui $at, 0x4200
/* 365168 E0064258 4481B000 */ mtc1 $at, $f22
/* 36516C E006425C 3C013F00 */ lui $at, 0x3f00
/* 365170 E0064260 4481E000 */ mtc1 $at, $f28
/* 365174 E0064264 3C01E006 */ lui $at, %hi(D_E0064A78)
/* 365178 E0064268 D4344A78 */ ldc1 $f20, %lo(D_E0064A78)($at)
/* 36517C E006426C 3C014300 */ lui $at, 0x4300
/* 365180 E0064270 4481D000 */ mtc1 $at, $f26
.LE0064274:
/* 365184 E0064274 8E020010 */ lw $v0, 0x10($s0)
/* 365188 E0064278 24420001 */ addiu $v0, $v0, 1
/* 36518C E006427C 04400047 */ bltz $v0, .LE006439C
/* 365190 E0064280 AE020010 */ sw $v0, 0x10($s0)
/* 365194 E0064284 1440001D */ bnez $v0, .LE00642FC
/* 365198 E0064288 00000000 */ nop
/* 36519C E006428C C60CFFF8 */ lwc1 $f12, -8($s0)
/* 3651A0 E0064290 AE00FFC8 */ sw $zero, -0x38($s0)
/* 3651A4 E0064294 AE00FFCC */ sw $zero, -0x34($s0)
/* 3651A8 E0064298 0C080140 */ jal shim_sin_deg
/* 3651AC E006429C AE00FFD0 */ sw $zero, -0x30($s0)
/* 3651B0 E00642A0 46000007 */ neg.s $f0, $f0
/* 3651B4 E00642A4 46000021 */ cvt.d.s $f0, $f0
/* 3651B8 E00642A8 46380002 */ mul.d $f0, $f0, $f24
/* 3651BC E00642AC 00000000 */ nop
/* 3651C0 E00642B0 C60CFFF8 */ lwc1 $f12, -8($s0)
/* 3651C4 E00642B4 46200020 */ cvt.s.d $f0, $f0
/* 3651C8 E00642B8 0C080144 */ jal shim_cos_deg
/* 3651CC E00642BC E600FFD4 */ swc1 $f0, -0x2c($s0)
/* 3651D0 E00642C0 46000021 */ cvt.d.s $f0, $f0
/* 3651D4 E00642C4 3C014120 */ lui $at, 0x4120
/* 3651D8 E00642C8 44811000 */ mtc1 $at, $f2
/* 3651DC E00642CC 46380002 */ mul.d $f0, $f0, $f24
/* 3651E0 E00642D0 00000000 */ nop
/* 3651E4 E00642D4 AE00FFDC */ sw $zero, -0x24($s0)
/* 3651E8 E00642D8 E6160000 */ swc1 $f22, ($s0)
/* 3651EC E00642DC E6160004 */ swc1 $f22, 4($s0)
/* 3651F0 E00642E0 E616000C */ swc1 $f22, 0xc($s0)
/* 3651F4 E00642E4 E61CFFE0 */ swc1 $f28, -0x20($s0)
/* 3651F8 E00642E8 E61CFFE8 */ swc1 $f28, -0x18($s0)
/* 3651FC E00642EC E6160008 */ swc1 $f22, 8($s0)
/* 365200 E00642F0 E602FFE4 */ swc1 $f2, -0x1c($s0)
/* 365204 E00642F4 46200020 */ cvt.s.d $f0, $f0
/* 365208 E00642F8 E600FFD8 */ swc1 $f0, -0x28($s0)
.LE00642FC:
/* 36520C E00642FC C6060004 */ lwc1 $f6, 4($s0)
/* 365210 E0064300 3C01E006 */ lui $at, %hi(D_E0064A80)
/* 365214 E0064304 D4204A80 */ ldc1 $f0, %lo(D_E0064A80)($at)
/* 365218 E0064308 460031A1 */ cvt.d.s $f6, $f6
/* 36521C E006430C 46203182 */ mul.d $f6, $f6, $f0
/* 365220 E0064310 00000000 */ nop
/* 365224 E0064314 C604FFE4 */ lwc1 $f4, -0x1c($s0)
/* 365228 E0064318 3C01E006 */ lui $at, %hi(D_E0064A88)
/* 36522C E006431C D42A4A88 */ ldc1 $f10, %lo(D_E0064A88)($at)
/* 365230 E0064320 46002121 */ cvt.d.s $f4, $f4
/* 365234 E0064324 46245281 */ sub.d $f10, $f10, $f4
/* 365238 E0064328 46345282 */ mul.d $f10, $f10, $f20
/* 36523C E006432C 00000000 */ nop
/* 365240 E0064330 C6020004 */ lwc1 $f2, 4($s0)
/* 365244 E0064334 C6000000 */ lwc1 $f0, ($s0)
/* 365248 E0064338 46020000 */ add.s $f0, $f0, $f2
/* 36524C E006433C C602FFE0 */ lwc1 $f2, -0x20($s0)
/* 365250 E0064340 C6080008 */ lwc1 $f8, 8($s0)
/* 365254 E0064344 460010A1 */ cvt.d.s $f2, $f2
/* 365258 E0064348 46341080 */ add.d $f2, $f2, $f20
/* 36525C E006434C E6000000 */ swc1 $f0, ($s0)
/* 365260 E0064350 C600000C */ lwc1 $f0, 0xc($s0)
/* 365264 E0064354 46004200 */ add.s $f8, $f8, $f0
/* 365268 E0064358 C600FFE8 */ lwc1 $f0, -0x18($s0)
/* 36526C E006435C 462010A0 */ cvt.s.d $f2, $f2
/* 365270 E0064360 46000021 */ cvt.d.s $f0, $f0
/* 365274 E0064364 46340000 */ add.d $f0, $f0, $f20
/* 365278 E0064368 E602FFE0 */ swc1 $f2, -0x20($s0)
/* 36527C E006436C E6080008 */ swc1 $f8, 8($s0)
/* 365280 E0064370 46200020 */ cvt.s.d $f0, $f0
/* 365284 E0064374 E600FFE8 */ swc1 $f0, -0x18($s0)
/* 365288 E0064378 C6000000 */ lwc1 $f0, ($s0)
/* 36528C E006437C 462A2100 */ add.d $f4, $f4, $f10
/* 365290 E0064380 462031A0 */ cvt.s.d $f6, $f6
/* 365294 E0064384 E6060004 */ swc1 $f6, 4($s0)
/* 365298 E0064388 4600D03C */ c.lt.s $f26, $f0
/* 36529C E006438C 46202120 */ cvt.s.d $f4, $f4
/* 3652A0 E0064390 45000002 */ bc1f .LE006439C
/* 3652A4 E0064394 E604FFE4 */ swc1 $f4, -0x1c($s0)
/* 3652A8 E0064398 E61A0000 */ swc1 $f26, ($s0)
.LE006439C:
/* 3652AC E006439C 26310001 */ addiu $s1, $s1, 1
/* 3652B0 E00643A0 8E420008 */ lw $v0, 8($s2)
/* 3652B4 E00643A4 0222102A */ slt $v0, $s1, $v0
/* 3652B8 E00643A8 1440FFB2 */ bnez $v0, .LE0064274
/* 3652BC E00643AC 26100058 */ addiu $s0, $s0, 0x58
.LE00643B0:
/* 3652C0 E00643B0 8FBF001C */ lw $ra, 0x1c($sp)
/* 3652C4 E00643B4 8FB20018 */ lw $s2, 0x18($sp)
/* 3652C8 E00643B8 8FB10014 */ lw $s1, 0x14($sp)
/* 3652CC E00643BC 8FB00010 */ lw $s0, 0x10($sp)
/* 3652D0 E00643C0 D7BC0040 */ ldc1 $f28, 0x40($sp)
/* 3652D4 E00643C4 D7BA0038 */ ldc1 $f26, 0x38($sp)
/* 3652D8 E00643C8 D7B80030 */ ldc1 $f24, 0x30($sp)
/* 3652DC E00643CC D7B60028 */ ldc1 $f22, 0x28($sp)
/* 3652E0 E00643D0 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 3652E4 E00643D4 03E00008 */ jr $ra
/* 3652E8 E00643D8 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -27307,7 +27307,6 @@ gSpriteHeapPtr = 0x8034F800; // type:data
D_8038F800 = 0x8038F800; // type:data D_8038F800 = 0x8038F800; // type:data
D_803B5000 = 0x803B5000; // type:data D_803B5000 = 0x803B5000; // type:data
heap_battleHead = 0x803DA800; // type:data heap_battleHead = 0x803DA800; // type:data
D_8887FFFB = 0x8887FFFB; // type:data
D_A0000000 = 0xA0000000; // type:data D_A0000000 = 0xA0000000; // type:data
D_A4000000 = 0xA4000000; // type:data D_A4000000 = 0xA4000000; // type:data
D_A4000768 = 0xA4000768; // type:data D_A4000768 = 0xA4000768; // type:data

View File

@ -1,5 +1,4 @@
// Likely fake // Likely fake
D_8887FFFB = 0x8887FFFB;
D_A0000000 = 0xA0000000; D_A0000000 = 0xA0000000;
D_A4000000 = 0xA4000000; D_A4000000 = 0xA4000000;
D_A4000768 = 0xA4000768; D_A4000768 = 0xA4000768;
@ -103,6 +102,16 @@ D_09000E18 = 0x09000E18;
D_09000E38 = 0x09000E38; D_09000E38 = 0x09000E38;
D_09000E58 = 0x09000E58; D_09000E58 = 0x09000E58;
// effect_ending_decals
D_09001E40 = 0x09001E40;
// effect_falling_leaves
D_09001100 = 0x09001100;
D_090011B0 = 0x090011B0;
// effect_green_impact
D_09000540 = 0x09000540;
// effect_3D // effect_3D
D_09000240 = 0x09000240; D_09000240 = 0x09000240;
D_090002E8 = 0x090002E8; D_090002E8 = 0x090002E8;