[Effects] Matching 23 effect functions (#831)

* [Effects] Matching 23 effect functions

* Addressed PR comments
This commit is contained in:
mrshigure 2022-10-18 03:07:21 -07:00 committed by GitHub
parent 9a876d74f7
commit b0afefafe0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
54 changed files with 2037 additions and 5831 deletions

View File

@ -387,8 +387,19 @@ typedef struct EmoteFXData {
} EmoteFXData; // size = 0x40 } EmoteFXData; // size = 0x40
typedef struct SparklesFXData { typedef struct SparklesFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ s32 unk_00;
} SparklesFXData; // 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 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
} SparklesFXData; // size = 0x30
enum SparkesFXTypes { enum SparkesFXTypes {
FX_SPARKLES_0 = 0, FX_SPARKLES_0 = 0,
@ -556,9 +567,9 @@ typedef struct FlameFXData {
/* 0x10 */ f32 unk_10; /* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14; /* 0x14 */ f32 unk_14;
/* 0x18 */ s32 unk_18; /* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C; /* 0x1C */ f32 unk_1C;
/* 0x20 */ s32 unk_20; /* 0x20 */ f32 unk_20;
/* 0x24 */ s32 unk_24; /* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unk_28; /* 0x28 */ f32 unk_28;
/* 0x2C */ f32 unk_2C; /* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30; /* 0x30 */ f32 unk_30;
@ -1141,7 +1152,7 @@ typedef struct SnowfallFXData {
typedef struct Effect46FXData { typedef struct Effect46FXData {
/* 0x00 */ s32 unk_00; /* 0x00 */ s32 unk_00;
/* 0x04 */ f32* unk_04; // pointer to another struct? /* 0x04 */ PlayerStatus* unk_04;
/* 0x08 */ f32 unk_08; /* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C; /* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10; /* 0x10 */ f32 unk_10;
@ -1157,9 +1168,9 @@ typedef struct Effect46FXData {
/* 0x38 */ f32 unk_38; /* 0x38 */ f32 unk_38;
/* 0x3C */ f32 unk_3C; /* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40; /* 0x40 */ f32 unk_40;
/* 0x44 */ s8 unk_44; /* 0x44 */ u8 unk_44;
/* 0x45 */ s8 unk_45; /* 0x45 */ u8 unk_45;
/* 0x46 */ s8 unk_46; /* 0x46 */ u8 unk_46;
/* 0x47 */ char unk_47; /* 0x47 */ char unk_47;
} Effect46FXData; // size = 0x48 } Effect46FXData; // size = 0x48
@ -1313,10 +1324,22 @@ typedef struct QuizmoAnswerFXData {
} QuizmoAnswerFXData; // size = unknown } QuizmoAnswerFXData; // size = unknown
typedef struct MotionBlurFlameFXData { typedef struct MotionBlurFlameFXData {
/* 0x00 */ char unk_00[0x10]; /* 0x00 */ s32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ Vec3f position; /* 0x10 */ Vec3f position;
/* 0x1C */ char todo[0]; /* 0x1C */ f32 unk_1C[4];
} MotionBlurFlameFXData; // size = unknown /* 0x2C */ f32 unk_2C[4];
/* 0x3C */ f32 unk_3C[4];
/* 0x4C */ s32 unk_4C;
/* 0x50 */ s32 unk_50;
/* 0x54 */ s32 unk_54;
/* 0x58 */ char unk_58[4];
/* 0x5C */ s32 unk_5C;
/* 0x60 */ s32 unk_60;
/* 0x64 */ s32 unk_64;
} MotionBlurFlameFXData; // size = 0x68
typedef struct EnergyOrbWaveFXData { typedef struct EnergyOrbWaveFXData {
/* 0x00 */ s32 unk_00; /* 0x00 */ s32 unk_00;
@ -1334,8 +1357,22 @@ typedef struct EnergyOrbWaveFXData {
} EnergyOrbWaveFXData; // size = 0x38 } EnergyOrbWaveFXData; // size = 0x38
typedef struct MerlinHouseStarsFXData { typedef struct MerlinHouseStarsFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ s32 unk_00;
} MerlinHouseStarsFXData; // size = unknown /* 0x04 */ s32 unk_04;
/* 0x08 */ s32 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 */ f32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ f32 unk_38;
} MerlinHouseStarsFXData; // size = 0x3C
typedef struct QuizmoAudienceFXData { typedef struct QuizmoAudienceFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ char todo[0];
@ -1990,8 +2027,24 @@ typedef struct LilOinkFXData {
} LilOinkFXData; // size = 0x148 } LilOinkFXData; // size = 0x148
typedef struct SomethingRotatingFXData { typedef struct SomethingRotatingFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ s32 unk_00;
} SomethingRotatingFXData; // size = unknown /* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ s32 unk_10;
/* 0x14 */ s32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s8 unk_24;
/* 0x25 */ s8 unk_25;
/* 0x26 */ u8 unk_26;
/* 0x27 */ u8 unk_27;
/* 0x28 */ s8 unk_28;
/* 0x29 */ s8 unk_29;
/* 0x2A */ char unk_2A[2];
/* 0x2C */ f32 unk_2C;
} SomethingRotatingFXData; // size = 0x30
typedef struct BreakingJunkFXData { typedef struct BreakingJunkFXData {
/* 0x00 */ s32 unk_00; /* 0x00 */ s32 unk_00;
@ -2023,7 +2076,7 @@ typedef struct BuffData {
/* 0x04 */ s16 turnsLeft; /* 0x04 */ s16 turnsLeft;
/* 0x06 */ s16 state; /* 0x06 */ s16 state;
/* 0x08 */ s16 stateTimer; /* 0x08 */ s16 stateTimer;
} BuffData; } BuffData; // size = 0xA
typedef struct PartnerBuffFXData { typedef struct PartnerBuffFXData {
/* 0x00 */ s16 useRandomValues; /* 0x00 */ s16 useRandomValues;
@ -2077,8 +2130,18 @@ typedef struct StarSpiritsEnergyFXData {
} StarSpiritsEnergyFXData; // size = ? } StarSpiritsEnergyFXData; // size = ?
typedef struct PinkSparklesFXData { typedef struct PinkSparklesFXData {
/* 0x00 */ char todo[0]; /* 0x00 */ s32 unk_00;
} PinkSparklesFXData; // 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 */ f32 unk_24;
/* 0x28 */ s32 unk_28;
} PinkSparklesFXData; // size = 0x2C
typedef struct StarOutlineFXData { typedef struct StarOutlineFXData {
/* 0x00 */ s16 unk_00; /* 0x00 */ s16 unk_00;
@ -2268,14 +2331,6 @@ typedef struct WattEffectData {
/* 0x1C */ s32 debuff; /* 0x1C */ s32 debuff;
} WattEffectData; } WattEffectData;
// seems to actually be PlayerStatus, but it's too large seemingly given the bss padding in UnkWhirlwindEffectFunc.inc.c
typedef struct EffectWhirlwindUnk {
/* 0x00 */ char unk_00[0x28];
/* 0x28 */ f32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
} EffectWhirlwindUnk;
typedef struct StarSpiritData { typedef struct StarSpiritData {
/* 0x00 */ f32 unk_00; /* 0x00 */ f32 unk_00;
/* 0x04 */ f32 unk_04; /* 0x04 */ f32 unk_04;
@ -2409,7 +2464,7 @@ EffectInstance* fx_bombette_breaking(s32, s32, s32, f32, s32, s32);
EffectInstance* fx_firework(s32, f32, f32, f32, f32, s32); EffectInstance* fx_firework(s32, f32, f32, f32, f32, s32);
EffectInstance* fx_confetti(s32, f32, f32, f32, f32, s32); EffectInstance* fx_confetti(s32, f32, f32, f32, f32, s32);
EffectInstance* fx_snowfall(s32, s32); EffectInstance* fx_snowfall(s32, s32);
EffectInstance* fx_46(s32, EffectWhirlwindUnk*, f32, s32); EffectInstance* fx_46(s32, PlayerStatus*, f32, s32);
EffectInstance* fx_gather_magic(s32, f32, f32, f32, f32, s32); EffectInstance* fx_gather_magic(s32, f32, f32, f32, f32, s32);
EffectInstance* fx_attack_result_text(s32, f32, f32, f32, f32, s32); EffectInstance* fx_attack_result_text(s32, f32, f32, f32, f32, s32);
EffectInstance* fx_small_gold_sparkle(s32, f32, f32, f32, f32, s32); EffectInstance* fx_small_gold_sparkle(s32, f32, f32, f32, f32, s32);

View File

@ -49,22 +49,22 @@ 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, Npc*, f32, f32, f32, f32, f32, s32, EffectInstance**); void emote_main(s32, Npc*, f32, f32, f32, f32, f32, s32, EffectInstance**);
FX_MAIN(sparkles_main); void sparkles_main(s32, f32, f32, f32, f32);
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);
void drop_leaves_main(s32, f32, f32, f32, s32); void drop_leaves_main(s32, f32, f32, f32, s32);
EffectInstance* dust_main(s32, f32, f32, f32, s32); EffectInstance* dust_main(s32, f32, f32, f32, s32);
FX_MAIN(shattering_stones_main); FX_MAIN(shattering_stones_main);
FX_MAIN(smoke_ring_main); void smoke_ring_main(s32, f32, f32, f32);
FX_MAIN(damage_stars_main); void damage_stars_main(s32, f32, f32, f32, f32, f32, f32, s32);
FX_MAIN(explosion_main); void explosion_main(s32, f32, f32, f32);
FX_MAIN(lens_flare_main); FX_MAIN(lens_flare_main);
void got_item_outline_main(s32, f32, f32, f32, f32, EffectInstance**); void got_item_outline_main(s32, f32, f32, f32, f32, EffectInstance**);
FX_MAIN(spiky_white_aura_main); FX_MAIN(spiky_white_aura_main);
FX_MAIN(smoke_impact_main); FX_MAIN(smoke_impact_main);
void damage_indicator_main(s32, f32, f32, f32, f32, f32, s32, EffectInstance**); void damage_indicator_main(s32, f32, f32, f32, f32, f32, s32, EffectInstance**);
FX_MAIN(purple_ring_main); FX_MAIN(purple_ring_main);
FX_MAIN(flame_main); void flame_main(s32, f32, f32, f32, f32, EffectInstance**);
void stars_burst_main(s32, f32, f32, f32, f32, f32, s32); void stars_burst_main(s32, f32, f32, f32, f32, f32, s32);
FX_MAIN(stars_shimmer_main); FX_MAIN(stars_shimmer_main);
void rising_bubble_main(s32, f32, f32, f32, f32); void rising_bubble_main(s32, f32, f32, f32, f32);
@ -98,10 +98,10 @@ EffectInstance* fire_flower_main(s32, f32, f32, f32, s32);
EffectInstance* recover_main(s32, f32, f32, f32, s32); EffectInstance* recover_main(s32, f32, f32, f32, s32);
EffectInstance* disable_x_main(s32, f32, f32, f32, s32); EffectInstance* disable_x_main(s32, f32, f32, f32, s32);
EffectInstance* bombette_breaking_main(s32, s32, s32, f32, s32, s32); EffectInstance* bombette_breaking_main(s32, s32, s32, f32, s32, s32);
FX_MAIN(firework_main); EffectInstance* firework_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(confetti_main); EffectInstance* confetti_main(s32, f32, f32, f32, f32, s32);
EffectInstance* snowfall_main(s32, s32); EffectInstance* snowfall_main(s32, s32);
FX_MAIN(fx_46_main); EffectInstance* fx_46_main(s32, PlayerStatus*, f32, s32);
EffectInstance* gather_magic_main(s32, f32, f32, f32, f32, s32); EffectInstance* gather_magic_main(s32, f32, f32, f32, f32, s32);
EffectInstance* attack_result_text_main(s32, f32, f32, f32, f32, s32); EffectInstance* attack_result_text_main(s32, f32, f32, f32, f32, s32);
EffectInstance* small_gold_sparkle_main(s32, f32, f32, f32, f32); EffectInstance* small_gold_sparkle_main(s32, f32, f32, f32, f32);
@ -112,9 +112,9 @@ EffectInstance* chomp_drop_main(s32, f32, f32, f32, f32, s32, f32, s32, f32, s32
EffectInstance* quizmo_stage_main(s32, f32, f32, f32); EffectInstance* quizmo_stage_main(s32, f32, f32, f32);
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); EffectInstance* motion_blur_flame_main(s32, f32, f32, f32, f32, s32);
EffectInstance* energy_orb_wave_main(s32, f32, f32, f32, f32, s32); EffectInstance* energy_orb_wave_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(merlin_house_stars_main); EffectInstance* merlin_house_stars_main(s32, f32, f32, f32);
FX_MAIN(quizmo_audience_main); FX_MAIN(quizmo_audience_main);
EffectInstance* butterflies_main(s32, f32, f32, f32); EffectInstance* butterflies_main(s32, f32, f32, f32);
EffectInstance* stat_change_main(s32, f32, f32, f32, f32, s32); EffectInstance* stat_change_main(s32, f32, f32, f32, f32, s32);
@ -137,7 +137,7 @@ FX_MAIN(tubba_heart_attack_main);
FX_MAIN(whirlwind_main); FX_MAIN(whirlwind_main);
EffectInstance* red_impact_main(s32, f32, f32, f32, f32); EffectInstance* red_impact_main(s32, f32, f32, f32, f32);
EffectInstance* floating_cloud_puff_main(s32, f32, f32, f32, f32, s32); EffectInstance* floating_cloud_puff_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(energy_in_out_main); EffectInstance* energy_in_out_main(s32, f32, f32, f32, f32, s32);
EffectInstance* tattle_window_main(s32, f32, f32, f32, f32, s32); EffectInstance* tattle_window_main(s32, f32, f32, f32, f32, s32);
EffectInstance* shiny_flare_main(s32, f32, f32, f32, f32); EffectInstance* shiny_flare_main(s32, f32, f32, f32, f32);
EffectInstance* huff_puff_breath_main(s32, f32, f32, f32, f32, f32, f32, s32); EffectInstance* huff_puff_breath_main(s32, f32, f32, f32, f32, f32, f32, s32);
@ -154,14 +154,14 @@ EffectInstance* chapter_change_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(ice_shard_main); FX_MAIN(ice_shard_main);
FX_MAIN(spirit_card_main); FX_MAIN(spirit_card_main);
EffectInstance* lil_oink_main(void); EffectInstance* lil_oink_main(void);
FX_MAIN(something_rotating_main); EffectInstance* something_rotating_main(s32, f32, f32, f32, f32, s32);
EffectInstance* breaking_junk_main(s32, f32, f32, f32, f32, s32); EffectInstance* breaking_junk_main(s32, f32, f32, f32, f32, s32);
EffectInstance* partner_buff_main(s32, f32, f32, f32, f32, s32); EffectInstance* partner_buff_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(quizmo_assistant_main); FX_MAIN(quizmo_assistant_main);
FX_MAIN(ice_pillar_main); FX_MAIN(ice_pillar_main);
EffectInstance* sun_main(s32, f32, f32, f32, f32, s32); EffectInstance* sun_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(star_spirits_energy_main); FX_MAIN(star_spirits_energy_main);
FX_MAIN(pink_sparkles_main); EffectInstance* pink_sparkles_main(s32, f32, f32, f32, f32, f32);
FX_MAIN(star_outline_main); FX_MAIN(star_outline_main);
EffectInstance* fx_86_main(s32, f32, f32, f32, f32, s32); EffectInstance* fx_86_main(s32, f32, f32, f32, f32, s32);

View File

@ -65,7 +65,7 @@ s32 N(statusTable_80224A40)[] = {
STATUS_END, STATUS_END,
}; };
BSS EffectWhirlwindUnk D_802310D0; BSS PlayerStatus D_802310D0;
ActorPartBlueprint N(partsTable_80224AEC)[] = { ActorPartBlueprint N(partsTable_80224AEC)[] = {
{ {
@ -609,9 +609,9 @@ s32 func_8021878C_512D5C(Evt* script, s32 isInitialCall) {
temp_f20 = evt_get_float_variable(script, *args++); temp_f20 = evt_get_float_variable(script, *args++);
temp_v0 = evt_get_variable(script, *args++); temp_v0 = evt_get_variable(script, *args++);
D_802310D0.unk_28 = x; D_802310D0.position.x = x;
D_802310D0.unk_2C = y; D_802310D0.position.y = y;
D_802310D0.unk_30 = z; D_802310D0.position.z = z;
fx_46(6, &D_802310D0, temp_f20, temp_v0); fx_46(6, &D_802310D0, temp_f20, temp_v0);
return ApiStatus_DONE2; return ApiStatus_DONE2;

View File

@ -58,6 +58,4 @@ Formation N(fromation_slot_machine) = {
{ .actor = &N(slot_machine_stop), .home = { .vec = &N(slot_machine_pos4) }, .var0 = 3 }, { .actor = &N(slot_machine_stop), .home = { .vec = &N(slot_machine_pos4) }, .var0 = 3 },
}; };
BSS char N(unused)[0x250];
#include "battle/common/actor/slot_machine.inc.c" #include "battle/common/actor/slot_machine.inc.c"

View File

@ -1,8 +1,7 @@
#include "common.h" #include "common.h"
#include "effects.h" #include "effects.h"
BSS EffectWhirlwindUnk N(effectUnk); BSS PlayerStatus N(effectUnk);
BSS static s32 padding[0x94];
ApiStatus N(UnkWhirlwindEffectFunc)(Evt* script, s32 isInitialCall) { ApiStatus N(UnkWhirlwindEffectFunc)(Evt* script, s32 isInitialCall) {
Bytecode* args = script->ptrReadPos; Bytecode* args = script->ptrReadPos;
@ -11,9 +10,9 @@ ApiStatus N(UnkWhirlwindEffectFunc)(Evt* script, s32 isInitialCall) {
s32 var3 = evt_get_variable(script, *args++); s32 var3 = evt_get_variable(script, *args++);
s32 var4 = evt_get_variable(script, *args++); s32 var4 = evt_get_variable(script, *args++);
N(effectUnk).unk_28 = var1; N(effectUnk).position.x = var1;
N(effectUnk).unk_2C = var2 - 10.0f; N(effectUnk).position.y = var2 - 10.0f;
N(effectUnk).unk_30 = var3; N(effectUnk).position.z = var3;
fx_46(6, &N(effectUnk), 1.0f, var4); fx_46(6, &N(effectUnk), 1.0f, var4);
return ApiStatus_DONE2; return ApiStatus_DONE2;

View File

@ -110,7 +110,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x50 */ FX_ENTRY(quizmo_answer, _3A2440), /* 0x50 */ FX_ENTRY(quizmo_answer, _3A2440),
/* 0x51 */ FX_ENTRY(motion_blur_flame, _3A33D0), /* 0x51 */ FX_ENTRY(motion_blur_flame, _3A33D0),
/* 0x52 */ FX_ENTRY(energy_orb_wave, effect_gfx_energy_orb_wave), /* 0x52 */ FX_ENTRY(energy_orb_wave, effect_gfx_energy_orb_wave),
/* 0x53 */ FX_ENTRY(merlin_house_stars, _3A5BE0), /* 0x53 */ FX_ENTRY(merlin_house_stars, effect_gfx_merlin_house_stars),
/* 0x54 */ FX_ENTRY(quizmo_audience, _3A77A0), /* 0x54 */ FX_ENTRY(quizmo_audience, _3A77A0),
/* 0x55 */ FX_ENTRY(butterflies, effect_gfx_butterflies), /* 0x55 */ FX_ENTRY(butterflies, effect_gfx_butterflies),
/* 0x56 */ FX_ENTRY(stat_change, _3AF700), /* 0x56 */ FX_ENTRY(stat_change, _3AF700),

View File

@ -1,6 +1,33 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern Gfx D_090009E8_38C588[];
extern Gfx D_09000A00_38C5A0[];
Gfx* D_E0088CC0[] = {
D_090009E8_38C588, D_090009E8_38C588, D_090009E8_38C588, D_09000A00_38C5A0,
D_090009E8_38C588, D_090009E8_38C588, D_090009E8_38C588
};
u8 D_E0088CDC[] = {
232, 160, 168,
168, 80, 88,
160, 168, 232,
72, 72, 232,
160, 232, 160,
96, 176, 120,
224, 224, 88,
176, 160, 56,
232, 160, 232,
176, 64, 160,
160, 216, 216,
88, 168, 168
};
s8 D_E0088D00[] = { 0, 1, 2, 3, 2, 1, 0, 0 };
s32 D_E0088D08[] = { 0x002D003C, 0x00000000 };
void confetti_appendGfx(void* effect); void confetti_appendGfx(void* effect);
void func_E0088000(ConfettiFXData* part) { void func_E0088000(ConfettiFXData* part) {

View File

@ -5,27 +5,173 @@ extern Gfx D_090004C0_343500[];
extern Gfx D_090005E0_343620[]; extern Gfx D_090005E0_343620[];
u8 D_E0030E90[] = { u8 D_E0030E90[] = {
0xFE, 0xAC, 0xAC, 254, 172, 172,
0xFE, 0xAC, 0xD5, 254, 172, 213,
0xFE, 0xB4, 0x9A, 254, 180, 154,
0xD5, 0xB4, 0xFE, 213, 180, 254,
0xB4, 0xB4, 0xFE, 180, 180, 254,
0xB4, 0xDD, 0xFE, 180, 221, 254,
0xB4, 0xFE, 0xFE, 180, 254, 254,
0xB4, 0xFE, 0xD5, 180, 254, 213,
0xB4, 0xFE, 0xB4, 180, 254, 180,
0xD5, 0xFE, 0xB4, 213, 254, 180,
0xFE, 0xFE, 0xB4, 254, 254, 180,
0xFE, 0xD5, 0xAC 254, 213, 172
}; };
u8 D_E0030EB4[] = { 0, 0, 0 }; f32 D_E0030EB4;
void damage_stars_init(EffectInstance* effect);
void damage_stars_update(EffectInstance* effect);
void damage_stars_render(EffectInstance* effect);
void damage_stars_appendGfx(void* effect); void damage_stars_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/damage_stars", damage_stars_main); void damage_stars_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
f32 arg5,
f32 arg6,
s32 arg7
) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
DamageStarsFXData* part;
f32 temp_f12;
f32 var_f28;
f32 var_f30;
f32 rotateX;
f32 rotateZ;
f32 sp70;
Matrix4f sp30;
s32 i;
void damage_stars_init(void) { if (arg7 != 0) {
temp_f12 = SQ(arg4) + SQ(arg5) + SQ(arg6);
if (temp_f12 != 0.0f) {
temp_f12 = -1.0f / shim_sqrtf(temp_f12);
arg4 *= temp_f12;
arg5 *= temp_f12;
arg6 *= temp_f12;
if (arg4 != 0.0f) {
sp70 = 1.0f;
var_f30 = -arg5 / arg4;
var_f28 = 0.0f;
} else if (arg5 != 0.0f) {
sp70 = -arg4 / arg5;
var_f30 = 1.0f;
var_f28 = 0.0f;
} else {
sp70 = 0.0f;
var_f30 = 1.0f;
var_f28 = -arg4 / arg6;
}
temp_f12 = SQ(var_f30) + SQ(sp70) + SQ(var_f28);
if (temp_f12 != 0) {
temp_f12 = 1.0f / shim_sqrtf(temp_f12);
var_f30 *= temp_f12;
sp70 *= temp_f12;
var_f28 *= temp_f12;
var_f30 *= 8.0f;
sp70 *= 8.0f;
var_f28 *= 8.0f;
arg4 *= 8.0f;
arg5 *= 8.0f;
arg6 *= 8.0f;
bpPtr->unk_00 = 0;
bpPtr->init = damage_stars_init;
bpPtr->update = damage_stars_update;
bpPtr->renderWorld = damage_stars_render;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_DAMAGE_STARS;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = arg7;
part = effect->data.damageStars = shim_general_heap_malloc(arg7 * sizeof(*part));
ASSERT(effect->data.damageStars != NULL);
for (i = 0; i < arg7; i++, part++) {
part->unk_00 = arg0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
switch (arg0) {
case 0:
case 1:
case 2:
shim_guRotateF(sp30, (i * 360) / (arg7 - 1), arg4, arg5, arg6);
part->unk_10 = arg4 + sp30[0][0] * var_f30 + sp30[1][0] * sp70 + sp30[2][0] * var_f28;
part->unk_14 = arg5 + sp30[0][1] * var_f30 + sp30[1][1] * sp70 + sp30[2][1] * var_f28;
part->unk_18 = arg6 + sp30[0][2] * var_f30 + sp30[1][2] * sp70 + sp30[2][2] * var_f28;
break;
case 3:
rotateX = shim_sin_deg(gCameras[gCurrentCameraID].currentYaw);
rotateZ = -shim_cos_deg(gCameras[gCurrentCameraID].currentYaw);
shim_guRotateF(sp30,
(arg7 != 1) ? (i * 100) / (arg7 - 1) - 50 : 0.0f,
rotateX, 0.0f, rotateZ);
part->unk_10 = sp30[0][0] * arg4 + sp30[1][0] * arg5 + sp30[2][0] * arg6;
part->unk_14 = sp30[0][1] * arg4 + sp30[1][1] * arg5 + sp30[2][1] * arg6;
part->unk_18 = sp30[0][2] * arg4 + sp30[1][2] * arg5 + sp30[2][2] * arg6;
break;
case 4:
rotateX = shim_sin_deg(gCameras[gCurrentCameraID].currentYaw);
rotateZ = -shim_cos_deg(gCameras[gCurrentCameraID].currentYaw);
shim_guRotateF(sp30, (i * 360.0f) / (arg7 - 1), rotateX, 0.0f, rotateZ);
part->unk_10 = sp30[0][0] * arg4 + sp30[1][0] * arg5 + sp30[2][0] * arg6;
part->unk_14 = sp30[0][1] * arg4 + sp30[1][1] * arg5 + sp30[2][1] * arg6;
part->unk_18 = sp30[0][2] * arg4 + sp30[1][2] * arg5 + sp30[2][2] * arg6;
break;
}
switch (arg0) {
case 0:
part->unk_20 = 0;
part->unk_28 = 24;
break;
case 1:
part->unk_20 = 20.0f;
part->unk_28 = 24;
break;
case 2:
part->unk_20 = 20.0f;
part->unk_28 = 40;
part->unk_10 *= 0.5;
part->unk_14 *= 0.5;
part->unk_18 *= 0.5;
break;
case 3:
case 4:
part->unk_20 = 20.0f;
part->unk_28 = 24;
break;
}
part->unk_1C = 0;
part->unk_2C = 0;
part->unk_24 = 255;
}
D_E0030EB4 += 15.0f;
if (D_E0030EB4 > 360.0f) {
D_E0030EB4 = 0.0f;
}
}
}
}
}
void damage_stars_init(EffectInstance* effect) {
} }
void damage_stars_update(EffectInstance* effect) { void damage_stars_update(EffectInstance* effect) {
@ -60,7 +206,7 @@ void damage_stars_update(EffectInstance* effect) {
part->unk_14 *= 0.8; part->unk_14 *= 0.8;
part->unk_18 *= 0.8; part->unk_18 *= 0.8;
} }
if (unk_28 - 6 < 0xEU) { if (unk_28 >= 6 && unk_28 <= 19) {
if (part->unk_00 == 0) { if (part->unk_00 == 0) {
part->unk_20 += 1.0f; part->unk_20 += 1.0f;
} }

View File

@ -14,10 +14,6 @@ void fx_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32
EffectBlueprint* bpPtr = &bp; EffectBlueprint* bpPtr = &bp;
EffectInstance* effect; EffectInstance* effect;
Effect3DFXData* part; Effect3DFXData* part;
f32 temp_f22 = arg4;
f32 temp_f24 = arg5;
f32 temp_f26 = arg6;
s32 numParts = arg7;
f32 temp_f12; f32 temp_f12;
f32 temp_f28; f32 temp_f28;
f32 temp_f30; f32 temp_f30;
@ -25,29 +21,29 @@ void fx_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32
Matrix4f sp30; Matrix4f sp30;
s32 i; s32 i;
if (numParts != 0) { if (arg7 != 0) {
numParts++; arg7++;
temp_f12 = SQ(temp_f22) + SQ(temp_f24) + SQ(temp_f26); temp_f12 = SQ(arg4) + SQ(arg5) + SQ(arg6);
if (temp_f12 != 0.0f) { if (temp_f12 != 0.0f) {
temp_f12 = -1.0f / shim_sqrtf(temp_f12); temp_f12 = -1.0f / shim_sqrtf(temp_f12);
temp_f22 *= temp_f12; arg4 *= temp_f12;
temp_f24 *= temp_f12; arg5 *= temp_f12;
temp_f26 *= temp_f12; arg6 *= temp_f12;
if (temp_f22 != 0.0f) { if (arg4 != 0.0f) {
sp70 = 1.0f; sp70 = 1.0f;
temp_f30 = -temp_f24 / temp_f22; temp_f30 = -arg5 / arg4;
temp_f28 = 0.0f; temp_f28 = 0.0f;
} else if (temp_f24 != 0.0f) { } else if (arg5 != 0.0f) {
sp70 = -temp_f22 / temp_f24; sp70 = -arg4 / arg5;
temp_f30 = 1.0f; temp_f30 = 1.0f;
temp_f28 = 0.0f; temp_f28 = 0.0f;
} else { } else {
sp70 = 0.0f; sp70 = 0.0f;
temp_f30 = 1.0f; temp_f30 = 1.0f;
temp_f28 = -temp_f22 / temp_f26; temp_f28 = -arg4 / arg6;
} }
temp_f12 = SQ(temp_f30) + SQ(sp70) + SQ(temp_f28); temp_f12 = SQ(temp_f30) + SQ(sp70) + SQ(temp_f28);
@ -61,9 +57,9 @@ void fx_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32
temp_f30 *= 8.0f; temp_f30 *= 8.0f;
sp70 *= 8.0f; sp70 *= 8.0f;
temp_f28 *= 8.0f; temp_f28 *= 8.0f;
temp_f22 *= 8.0f; arg4 *= 8.0f;
temp_f24 *= 8.0f; arg5 *= 8.0f;
temp_f26 *= 8.0f; arg6 *= 8.0f;
bpPtr->unk_00 = 0; bpPtr->unk_00 = 0;
bpPtr->init = fx_3D_init; bpPtr->init = fx_3D_init;
@ -73,8 +69,8 @@ void fx_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32
bpPtr->effectID = EFFECT_3D; bpPtr->effectID = EFFECT_3D;
effect = shim_create_effect_instance(bpPtr); effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts; effect->numParts = arg7;
part = effect->data.unk_3D = shim_general_heap_malloc(numParts * sizeof(*part)); part = effect->data.unk_3D = shim_general_heap_malloc(arg7 * sizeof(*part));
ASSERT(effect->data.unk_3D != NULL); ASSERT(effect->data.unk_3D != NULL);
part->unk_04 = 0; part->unk_04 = 0;
@ -86,17 +82,17 @@ void fx_3D_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32
part->unk_60 = 0; part->unk_60 = 0;
part++; part++;
for (i = 1; i < numParts; i++, part++) { for (i = 1; i < arg7; i++, part++) {
part->pos.x = 0; part->pos.x = 0;
part->pos.y = 0; part->pos.y = 0;
part->pos.z = 0; part->pos.z = 0;
shim_guRotateF(sp30, i * 72, temp_f22, temp_f24, temp_f26); shim_guRotateF(sp30, i * 72, arg4, arg5, arg6);
part->unk_14 = part->unk_20 = 2.0f * temp_f22; part->unk_14 = part->unk_20 = 2.0f * arg4;
part->unk_18 = part->unk_24 = 2.0f * temp_f24; part->unk_18 = part->unk_24 = 2.0f * arg5;
part->unk_1C = part->unk_28 = 2.0f * temp_f26; part->unk_1C = part->unk_28 = 2.0f * arg6;
part->unk_38 = -temp_f22 * 0.05 * 4.0; part->unk_38 = -arg4 * 0.05 * 4.0;
part->unk_3C = -temp_f24 * 0.05 * 4.0; part->unk_3C = -arg5 * 0.05 * 4.0;
part->unk_40 = -temp_f26 * 0.05 * 4.0; part->unk_40 = -arg6 * 0.05 * 4.0;
part->unk_2C = (sp30[0][0] * temp_f30 + sp30[1][0] * sp70 + sp30[2][0] * temp_f28) * 0.1 * 4.0; part->unk_2C = (sp30[0][0] * temp_f30 + sp30[1][0] * sp70 + sp30[2][0] * temp_f28) * 0.1 * 4.0;
part->unk_30 = (sp30[0][1] * temp_f30 + sp30[1][1] * sp70 + sp30[2][1] * temp_f28) * 0.1 * 4.0; part->unk_30 = (sp30[0][1] * temp_f30 + sp30[1][1] * sp70 + sp30[2][1] * temp_f28) * 0.1 * 4.0;
part->unk_34 = (sp30[0][2] * temp_f30 + sp30[1][2] * sp70 + sp30[2][2] * temp_f28) * 0.1 * 4.0; part->unk_34 = (sp30[0][2] * temp_f30 + sp30[1][2] * sp70 + sp30[2][2] * temp_f28) * 0.1 * 4.0;

View File

@ -4,11 +4,126 @@
extern Gfx D_090003A0_38ED30[]; extern Gfx D_090003A0_38ED30[];
extern Gfx D_09000420_38EDB0[]; extern Gfx D_09000420_38EDB0[];
s32 D_E008CAF0[] = {
0xFEACACFE, 0xACD5FEB4, 0x9AD5B4FE, 0xB4B4FEB4, 0xDDFEB4FE,
0xFEB4FED5, 0xB4FEB4D5, 0xFEB4FEFE, 0xB4FED5AC
};
u8 D_E008CB14[] = { 255, 255, 64 };
u8 D_E008CB18[] = { 255, 64, 64 };
u8 D_E008CB1C[] = { 255, 64, 255 };
void fx_46_init(EffectInstance* effect);
void fx_46_update(EffectInstance* effect);
void fx_46_render(EffectInstance* effect);
void fx_46_appendGfx(void* effect); void fx_46_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/effect_46", fx_46_main); EffectInstance* fx_46_main(s32 arg0, PlayerStatus* arg1, f32 arg2, s32 arg3) {
EffectBlueprint bp;
EffectInstance* effect;
Effect46FXData* part;
s32 numParts = 5;
s32 index;
s32 i;
void fx_46_init(void) { bp.init = fx_46_init;
bp.update = fx_46_update;
bp.renderWorld = fx_46_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_46;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
part = effect->data.unk_46 = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.unk_46 != NULL);
part->unk_00 = arg0;
part->unk_04 = arg1;
part->unk_14 = arg2 * 1.2;
part->unk_18 = arg2 * 1.2;
part->unk_20 = arg3;
part->unk_24 = arg3;
part->unk_1C = 0;
part->unk_28 = 0;
part++;
for (i = 1; i < numParts; i++, part++) {
switch (arg0) {
case 0:
case 2:
case 4:
case 6:
part->unk_08 = 0.0f;
part->unk_0C = i * 7 + 4;
part->unk_10 = 0.0f;
part->unk_38 = 0.0f;
part->unk_3C = 60.0f;
part->unk_40 = 0.0f;
part->unk_2C = 0.0f;
part->unk_30 = i * 120;
part->unk_34 = 0.0f;
part->unk_14 = 1.0f;
break;
case 1:
case 3:
case 5:
case 7:
part->unk_08 = 0.0f;
part->unk_0C = i * 7 + 4;
part->unk_10 = 0.0f;
part->unk_38 = 0.0f;
part->unk_3C = -60.0f;
part->unk_40 = 0.0f;
part->unk_2C = 0.0f;
part->unk_30 = i * 120;
part->unk_34 = 0.0f;
part->unk_14 = 1.0f;
part->unk_46 = 255;
part->unk_45 = 255;
part->unk_44 = 255;
break;
default:
part->unk_08 = 0;
part->unk_0C = arg1->colliderHeight * 0.5;
part->unk_10 = 0;
part->unk_38 = func_E0200000(1) * 8 - 4;
part->unk_3C = 0;
part->unk_40 = func_E0200000(1) * 8 - 4;
part->unk_2C = i * 25;
part->unk_30 = (i - 1) * 360 / (numParts - 1);
part->unk_34 = 360 - i * 38;
part->unk_14 = (f32) (i - 1) / (numParts - 1) * 0.5 + 0.5;
break;
}
switch (arg0) {
case 2:
case 3:
index = 1;
break;
case 4:
case 5:
index = 2;
break;
case 6:
case 7:
index = (i & 1) + 1;
break;
default:
index = 0;
break;
}
part->unk_44 = D_E008CB14[index];
part->unk_45 = D_E008CB18[index];
part->unk_46 = D_E008CB1C[index];
}
return effect;
}
void fx_46_init(EffectInstance* effect) {
} }
void fx_46_update(EffectInstance* effect) { void fx_46_update(EffectInstance* effect) {
@ -34,7 +149,7 @@ void fx_46_update(EffectInstance* effect) {
} }
part->unk_14 = (part->unk_18 * unk_24) / part->unk_20; part->unk_14 = (part->unk_18 * unk_24) / part->unk_20;
if (unk_24 < 10) { if (unk_24 < 10) {
part->unk_1C = unk_24 * 0x19; part->unk_1C = unk_24 * 25;
} }
} else { } else {
if (unk_24 >= 6) { if (unk_24 >= 6) {
@ -46,9 +161,9 @@ void fx_46_update(EffectInstance* effect) {
} }
} }
part->unk_08 = part->unk_04[10]; part->unk_08 = part->unk_04->position.x;
part->unk_0C = part->unk_04[11]; part->unk_0C = part->unk_04->position.y;
part->unk_10 = part->unk_04[12]; part->unk_10 = part->unk_04->position.z;
part++; part++;
for (i = 1; i < effect->numParts; i++, part++) { for (i = 1; i < effect->numParts; i++, part++) {
@ -107,17 +222,17 @@ void fx_46_appendGfx(void* effect) {
part++; part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) { for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
f32 (*matrix)[4] = sp60; // required to match
shim_guPositionF(sp20, part->unk_2C, 0.0f, part->unk_34, unk_14 * part->unk_14, part->unk_08, part->unk_0C, part->unk_10); shim_guPositionF(sp20, part->unk_2C, 0.0f, part->unk_34, unk_14 * part->unk_14, part->unk_08, part->unk_0C, part->unk_10);
shim_guRotateF(matrix, part->unk_30, 0.0f, 1.0f, 0.0f); shim_guRotateF(sp60, part->unk_30, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(matrix, sp20, sp20); shim_guMtxCatF(sp60, sp20, sp20);
if (unk_00 < 8) { if (unk_00 < 8) {
shim_guTranslateF(matrix, 3.0f - (unk_14 - unk_18) * 3.0f / unk_18, 0.0f, 0.0f); shim_guTranslateF(sp60, 3.0f - (unk_14 - unk_18) * 3.0f / unk_18, 0.0f, 0.0f);
shim_guMtxCatF(sp60, sp20, sp20);
} else { } else {
shim_guTranslateF(matrix, 2.0f, 0.0f, 0.0f); shim_guTranslateF(sp60, 2.0f, 0.0f, 0.0f);
shim_guMtxCatF(sp60, sp20, sp20);
} }
shim_guMtxCatF(matrix, sp20, sp20);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, part->unk_44, part->unk_45, part->unk_46, unk_1C); gDPSetPrimColor(gMasterGfxPos++, 0, 0, part->unk_44, part->unk_45, part->unk_46, unk_1C);

View File

@ -1,13 +1,95 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern f32 D_E00E0A48[]; extern Gfx D_09000280_3DC1C0[];
extern Gfx D_090003B0_3DC2F0[];
Gfx* D_E00E0A40[] = { D_090003B0_3DC2F0, D_09000280_3DC1C0 };
f32 D_E00E0A48[] = {
0.01f, 0.05f, 0.1f, 0.2f, 0.35f, 0.5f,
0.65f, 0.8f, 0.95f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
1.0f, 1.0f, 1.0f, 0.95f, 0.8f, 0.65f,
0.5f, 0.35f, 0.2f, 0.1f, 0.05f, 0.01f
};
void embers_init(EffectInstance* effect);
void embers_update(EffectInstance* effect);
void embers_render(EffectInstance* effect);
void embers_appendGfx(void* effect); void embers_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/embers", embers_main); EffectInstance* embers_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
f32 arg5,
f32 arg6,
s32 arg7,
s32 arg8,
f32 arg9,
f32 argA
) {
EffectBlueprint bp;
EffectInstance* effect;
EmbersFXData* part;
s32 numParts;
f32 temp1;
s32 i;
void embers_init(void) { arg7++;
bp.init = embers_init;
bp.update = embers_update;
bp.renderWorld = embers_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_EMBERS;
effect = shim_create_effect_instance(&bp);
effect->numParts = arg7;
part = effect->data.embers = shim_general_heap_malloc(arg7 * sizeof(*part));
ASSERT(effect->data.embers != NULL);
part->unk_00 = arg0;
part->unk_1C = 0;
if (arg8 <= 0) {
part->unk_18 = 1000;
} else {
part->unk_18 = arg8;
}
part->unk_2C = 0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_40 = arg6;
part->unk_10 = arg4;
part->unk_14 = arg5;
part->unk_68 = arg9;
part->unk_6C = argA;
part->unk_20 = 127;
part->unk_24 = 0;
part->unk_28 = 0;
part->unk_30 = 127;
part->unk_34 = 127;
part->unk_38 = 0;
part->unk_3C = 255;
temp1 = 30.0f / (arg7 - 1);
temp1 *= 0.5;
part++;
for (i = 1; i < arg7; i++, part++) {
s32 temp_f0 = -(f32) i * temp1;
part->unk_64 = temp_f0 - 1;
}
return effect;
}
void embers_init(EffectInstance* effect) {
} }
void embers_update(EffectInstance* effect) { void embers_update(EffectInstance* effect) {
@ -103,4 +185,41 @@ void embers_render(EffectInstance* effect) {
void func_E00E05F8(void) { void func_E00E05F8(void) {
} }
INCLUDE_ASM(s32, "effects/embers", embers_appendGfx); void embers_appendGfx(void* effect) {
EmbersFXData* part = ((EffectInstance*)effect)->data.embers;
Camera* camera = &gCameras[gCurrentCameraID];
s32 unk_2C = part->unk_2C;
Matrix4f sp10;
Matrix4f sp50;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guTranslateF(sp10, part->unk_04, part->unk_08, part->unk_0C);
shim_guScaleF(sp50, part->unk_40, part->unk_40, part->unk_40);
shim_guMtxCatF(sp50, sp10, sp10);
shim_guMtxF2L(sp10, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(gMasterGfxPos++, camera->unkMatrix, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, part->unk_20, part->unk_24, part->unk_28, unk_2C);
gDPSetEnvColor(gMasterGfxPos++, part->unk_30, part->unk_34, part->unk_38, part->unk_3C);
gSPDisplayList(gMasterGfxPos++, D_E00E0A40[1]);
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
if (part->unk_64 >= 0) {
shim_guTranslateF(sp10, part->unk_04, part->unk_08, part->unk_0C);
shim_guMtxF2L(sp10, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, 0, (i % 4) * 16 * 4, 15 * 4, ((i % 4) * 16 + 15) * 4);
gDPSetTileSize(gMasterGfxPos++, 1, (s32) part->unk_5C * 4, (s32) part->unk_60 * 4, ((s32) part->unk_5C + 15) * 4, ((s32) part->unk_60 + 15) * 4);
gSPDisplayList(gMasterGfxPos++, D_E00E0A40[0]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}

View File

@ -40,8 +40,14 @@ s8 D_E0020D30[80] = {
s8* D_E0020D80[5] = { D_E0020CB8, D_E0020CE0, D_E0020CFC, D_E0020D24, D_E0020D30 }; s8* D_E0020D80[5] = { D_E0020CB8, D_E0020CE0, D_E0020CFC, D_E0020D24, D_E0020D30 };
s8 D_E0020D94[] = { u8 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
}; };
void emote_init(EffectInstance* effect); void emote_init(EffectInstance* effect);
@ -195,50 +201,44 @@ void emote_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2; retTask->renderMode |= RENDER_TASK_FLAG_2;
} }
// lots of issues
#ifdef NON_EQUIVALENT
void emote_appendGfx(void* effect) { void emote_appendGfx(void* effect) {
EmoteFXData* part = ((EffectInstance*)effect)->data.emote;
s32 type = part->unk_00;
s32 unk_38;
Gfx* dlist;
Gfx* dlist2;
Mtx* matrix;
s32 w;
s32 h;
s32 uls;
s32 ult;
s32 idx;
Matrix4f sp18; Matrix4f sp18;
Matrix4f sp58; Matrix4f sp58;
EffectInstance* effectTemp = effect; s32 i;
EmoteFXData* part = effectTemp->data;
s32 idx;
s32 type;
Gfx* temp_a3;
Gfx* temp_t0;
Mtx* blah;
s32 sp9C;
s32 spA0;
s32 temp_a0_3;
s32 phi_t1;
s32 phi_s7;
s32 phi_fp;
type = part->unk_00;
gDPPipeSync(gMasterGfxPos++); gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(effectTemp->graphics->data)); gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
//phi_s7 = saved_reg_s7;
//phi_fp = saved_reg_fp;
if (type != 1) { if (type != 1) {
shim_guTranslateF(sp18, part->unk_04, part->unk_08, part->unk_0C); 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_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp18); shim_guMtxCatF(sp58, sp18, sp18);
matrix = &gDisplayContext->matrixStack[gMatrixListPos];
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos++]); shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos++]);
shim_guScaleF(sp58, 1.0f, 0.8f, 1.0f); shim_guScaleF(sp58, 1.0f, 0.8f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18); shim_guMtxCatF(sp58, sp18, sp18);
shim_guRotateF(sp58, part->unk_24, 0.0f, 0.0f, 1.0f); shim_guRotateF(sp58, part->unk_24, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18); shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]); shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_09002170_336DE0) gSPDisplayList(gMasterGfxPos++, D_09002170_336DE0);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
} else { } else {
if (part->unk_38 == 0) { if (part->unk_38 == 0) {
s32 i;
for (i = 0; i < 3; i++, part++) { for (i = 0; i < 3; i++, part++) {
shim_guTranslateF(sp18, part->unk_04, part->unk_08, part->unk_0C); 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_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
@ -248,65 +248,63 @@ void emote_appendGfx(void* effect) {
shim_guScaleF(sp58, part->unk_28, part->unk_28, 1.0f); shim_guScaleF(sp58, part->unk_28, part->unk_28, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18); shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]); shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 235, 28, 0, 255); gDPSetPrimColor(gMasterGfxPos++, 0, 0, 235, 28, 0, 255);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_09002578_3371E8); gSPDisplayList(gMasterGfxPos++, D_09002578_3371E8);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
} }
} }
return;
} }
temp_a0_3 = part->unk_38; gSPMatrix(gMasterGfxPos++, matrix, G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
temp_a3 = D_E0020CA4[type];
temp_t0 = D_E0020C90[type]; unk_38 = part->unk_38;
dlist = D_E0020CA4[type];
dlist2 = D_E0020C90[type];
switch (type) { switch (type) {
case 2: case 0:
sp9C = 0x20; w = 16;
phi_t1 = 0x30; h = 16;
phi_s7 = 0x80 - (temp_a0_3 << 5); uls = 128 - unk_38 * 16;
spA0 = phi_t1; ult = 0;
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 220, 0, 0, 255);
break;
case 2:
w = 32;
h = 48;
uls = 128 - unk_38 * 32;
ult = 0;
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 220, 0, 0, 255); gDPSetPrimColor(gMasterGfxPos++, 0, 0, 220, 0, 0, 255);
phi_fp = 0;
break; break;
case 3: case 3:
sp9C = 0x20; w = 32;
spA0 = 0x20; h = 32;
idx = (part->unk_2C * 3) % 7; uls = 128 - unk_38 * 32;
ult = 0;
idx = (part->unk_2C * 3) % (ARRAY_COUNT(D_E0020D94) / 3);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, D_E0020D94[idx], D_E0020D94[idx + 1], D_E0020D94[idx + 2], 255); gDPSetPrimColor(gMasterGfxPos++, 0, 0, D_E0020D94[idx], D_E0020D94[idx + 1], D_E0020D94[idx + 2], 255);
phi_s7 = 0x80 - (temp_a0_3 << 5);
phi_fp = 0;
break; break;
case 4: case 4:
sp9C = 0x20; w = 32;
spA0 = 8; h = 8;
phi_s7 = 0x80 - (temp_a0_3 << 5); uls = 128 - unk_38 * 32;
phi_fp = 0; ult = 0;
break;
default:
phi_t1 = 0x10;
if (type == 0) {
sp9C = 0x10;
phi_s7 = 0x80 - (temp_a0_3 * 0x10);
spA0 = phi_t1;
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 220, 0, 0, 255);
phi_fp = 0;
}
break; break;
} }
if (temp_a3 != NULL) { if (dlist != NULL) {
gSPDisplayList(gMasterGfxPos++, temp_a3); gSPDisplayList(gMasterGfxPos++, dlist);
} }
gDPSetTileSize(gMasterGfxPos++, 2, phi_s7, 0, phi_s7 + sp9C, spA0); gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, uls * 4, ult * 4, (uls + w) * 4, (ult + h) * 4);
if (temp_t0 != NULL) { if (dlist2 != NULL) {
gSPDisplayList(gMasterGfxPos++, temp_t0); gSPDisplayList(gMasterGfxPos++, dlist2);
} }
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
} }
#else
INCLUDE_ASM(s32, "effects/emote", emote_appendGfx);
#endif

View File

@ -27,11 +27,143 @@ u8 D_E00D6E84[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}; };
void energy_in_out_init(EffectInstance* effect);
void energy_in_out_update(EffectInstance* effect);
void energy_in_out_render(EffectInstance* effect);
void energy_in_out_appendGfx(void* effect); void energy_in_out_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/energy_in_out", energy_in_out_main); EffectInstance* energy_in_out_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectBlueprint bp;
EffectInstance* effect;
EnergyInOutFXData* part;
EnergyInOutFXData* firstPart;
s32 numParts = D_E00D6E74[arg0];
f32 randAngle;
s32 i;
void energy_in_out_init(void) { bp.init = energy_in_out_init;
bp.update = energy_in_out_update;
bp.renderWorld = energy_in_out_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_ENERGY_IN_OUT;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
firstPart = part = effect->data.energyInOut = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.energyInOut != NULL);
part->unk_00 = arg0;
part->unk_14 = 0;
if (arg5 <= 0) {
part->unk_10 = 1000;
} else {
part->unk_10 = arg5;
}
part->unk_24 = 0;
part->pos.x = arg1;
part->pos.y = arg2;
part->pos.z = arg3;
part->scale = arg4;
part->unk_18 = 255;
part->unk_1C = 255;
part->unk_20 = 255;
part->unk_28 = 255;
part->unk_2C = 245;
part->unk_30 = 0;
part->unk_44 = 1.0f;
part->unk_38 = D_E00D6E84[arg0];
randAngle = shim_rand_int(360);
part++;
for (i = 1; i < effect->numParts; i++, part++) {
part->unk_00 = arg0 % 3;
switch (arg0) {
case 0:
case 1:
case 2:
part->unk_38 = -(shim_rand_int(10) * 0.2 + 0.2);
part->unk_10 = 20;
part->unk_40 = 0;
part->scale = 1.0 - (i % 3) * 0.1;
break;
case 3:
case 5:
part->unk_38 = shim_rand_int(10) * 0.2 + 0.2;
part->unk_10 = 20;
part->unk_40 = 0;
part->scale = 1.0 - (i % 3) * 0.1;
break;
case 6:
part->unk_38 = -(shim_rand_int(10) + 4);
part->unk_10 = 10;
part->unk_40 = 0;
part->scale = 1.0 - (i % 3) * 0.3;
break;
case 7:
part->unk_38 = -(shim_rand_int(10) + 4);
part->unk_10 = 10;
part->unk_40 = 0;
part->scale = 1.0 - (i % 3) * 0.3;
break;
case 8:
part->unk_38 = shim_rand_int(10) * 0.2 + 0.6;
part->unk_10 = 20;
part->unk_40 = -1.0f;
part->scale = 1.0 - (i % 3) * 0.3;
break;
case 9:
part->unk_38 = -(shim_rand_int(10) * 0.2 + 0.6);
part->unk_10 = 20;
part->unk_40 = -2.0f;
part->scale = 1.0 - (i % 3) * 0.3;
firstPart->unk_18 = 255;
firstPart->unk_1C = 245;
firstPart->unk_20 = 215;
firstPart->unk_28 = 220;
firstPart->unk_2C = 60;
firstPart->unk_30 = 10;
break;
case 10:
part->unk_38 = shim_rand_int(10) * 0.1 + 2.0;
part->unk_10 = 10;
part->unk_40 = 0;
part->scale = (1.0 - (i % 3) * 0.3) * 0.5;
break;
case 11:
part->unk_38 = shim_rand_int(10) * 0.05 + 0.2;
part->unk_40 = -1.0f;
part->unk_10 = 30;
part->scale = 1.0 - (i % 3) * 0.3;
break;
case 4:
case 12:
part->unk_38 = shim_rand_int(10) * 0.2 + 0.6;
part->unk_10 = 20;
part->unk_40 = -2.0f;
part->scale = 1.0 - (i % 3) * 0.3;
break;
}
part->unk_14 = -shim_rand_int(part->unk_10);
if (part->unk_38 < 0.0f) {
part->pos.x = (part->unk_10 - part->unk_14) * (-part->unk_38);
} else {
part->pos.x = (-part->unk_14) * part->unk_38;
}
part->pos.y = 0;
part->pos.z = 0;
part->unk_3C = (i - 1) * 360 / (numParts - 1) + randAngle;
}
return effect;
}
void energy_in_out_init(EffectInstance* effect) {
} }
void energy_in_out_update(EffectInstance* effect) { void energy_in_out_update(EffectInstance* effect) {

View File

@ -14,10 +14,62 @@ void explosion_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/explosion", explosion_main); INCLUDE_ASM(s32, "effects/explosion", explosion_main);
void explosion_init(void) { void explosion_init(EffectInstance* effect) {
} }
INCLUDE_ASM(s32, "effects/explosion", explosion_update); void explosion_update(EffectInstance* effect) {
ExplosionFXData* part = effect->data.explosion;
s32 unk_00;
s32 unk_34;
part->unk_30--;
if (part->unk_30 < 0) {
shim_remove_effect(effect);
return;
}
part->unk_34++;
unk_00 = part->unk_00;
unk_34 = part->unk_34;
if (unk_34 == 7) {
shim_load_effect(EFFECT_SMOKE_RING);
smoke_ring_main(unk_00, part->unk_04, part->unk_08, part->unk_0C);
} else if (unk_34 == 1) {
shim_load_effect(EFFECT_CONFETTI);
confetti_main(unk_00 + 4, part->unk_04, part->unk_08, part->unk_0C, 1.0f, 50);
}
part++;
part->unk_20 += part->unk_24;
if (unk_34 < 8) {
part->unk_24 += (unk_00 == 2) ? 1.0f : 0.4;
part->unk_38 = (255 - part->unk_38) * 0.6;
} else {
part->unk_24 *= 0.6;
part->unk_38 *= 0.9;
}
part++;
if (unk_34 >= 3) {
if (unk_34 == 3) {
part->unk_20 = 1.0f;
}
part->unk_20 += part->unk_24;
if (unk_34 < 6) {
part->unk_24 += 0.1;
} else {
part->unk_24 *= 0.5;
part->unk_38 *= 0.9;
}
}
part->unk_28 += part->unk_2C;
}
void explosion_render(EffectInstance* effect) { void explosion_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;

View File

@ -1,15 +1,129 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern u8 D_E0086AC0[]; extern Gfx D_09000940_38AC90[];
extern u8 D_E0086AC4[]; extern Gfx D_09000A00_38AD50[];
extern u8 D_E0086AD4[]; extern Gfx D_09000A20_38AD70[];
extern Gfx D_09000A40_38AD90[];
extern Gfx D_09000A60_38ADB0[];
extern Gfx D_09000A80_38ADD0[];
void func_E00863B4(void); Gfx* D_E0086AA0[] = {
D_09000A00_38AD50, D_09000A20_38AD70, D_09000A40_38AD90,
D_09000A60_38ADB0, D_09000A80_38ADD0
};
INCLUDE_ASM(s32, "effects/firework", firework_main); Gfx* D_E0086AB4[] = { D_09000940_38AC90, D_09000940_38AC90, D_09000940_38AC90 };
void firework_init(void) { u8 D_E0086AC0[] = { 0x0D, 0x0D, 0x0D, 0x00 };
u8 D_E0086AC4[] = {
0x40, 0x68, 0x90, 0xA4, 0xB8, 0xC0, 0xD0, 0xD8,
0xE0, 0xE8, 0xF0, 0xF8, 0xFF, 0x00, 0x00, 0x00
};
u8 D_E0086AD4[] = {
0x0A, 0x14, 0x1C, 0x23, 0x2A, 0x30, 0x35, 0x39,
0x3C, 0x3E, 0x3F, 0x40, 0x41, 0x00, 0x00, 0x00
};
u8 D_E0086AE4[] = {
0xFF, 0xFF, 0xC8, 0x82, 0x3C, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00
};
void firework_init(EffectInstance* effect);
void firework_update(EffectInstance* effect);
void firework_render(EffectInstance* effect);
void func_E0086398(EffectInstance* effect);
void func_E00863B4(EffectInstance* effect);
EffectInstance* firework_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
s32 arg5
) {
EffectBlueprint bp;
EffectInstance* effect;
FireworkFXData* part;
s32 numParts = (arg5 * 5 + 20) / 3 + 1;
s32 i;
bp.unk_00 = 0;
bp.init = firework_init;
bp.update = firework_update;
bp.renderWorld = firework_render;
bp.unk_14 = func_E0086398;
bp.effectID = EFFECT_FIREWORK;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
part = effect->data.firework = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.firework != NULL);
part->unk_00 = arg0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_30 = D_E0086AC0[arg0];
part->unk_34 = 0;
part->unk_38 = 0;
switch (arg0) {
case 0:
part->unk_3C = 255;
part->unk_3D = 255;
part->unk_3E = 255;
part->unk_3F = 255;
part->unk_40 = 255;
part->unk_41 = 255;
break;
case 1:
part->unk_3C = 255;
part->unk_3D = 255;
part->unk_3E = 0;
part->unk_3F = 255;
part->unk_40 = 0;
part->unk_41 = 0;
break;
case 2:
default:
part->unk_3C = 255;
part->unk_3D = 255;
part->unk_3E = 0;
part->unk_3F = 200;
part->unk_40 = 255;
part->unk_41 = 230;
break;
}
part->unk_28 = arg4;
part++;
for (i = 1; i < numParts; i++, part++) {
f32 unk_1C = (i * 360) / (numParts - 1);
s32 unk_24 = shim_rand_int(359);
part->unk_04 = 0;
part->unk_08 = 0;
part->unk_0C = 0;
part->unk_10 = 0;
part->unk_14 = 0;
part->unk_20 = 0;
part->unk_00 = 0;
part->unk_1C = unk_1C;
part->unk_24 = unk_24;
part->unk_10 = 0;
part->unk_2C = 255;
}
return effect;
}
void firework_init(EffectInstance* effect) {
} }
void firework_update(EffectInstance* effect) { void firework_update(EffectInstance* effect) {
@ -48,11 +162,132 @@ void firework_update(EffectInstance* effect) {
} }
} }
void firework_render(void) { void firework_render(EffectInstance* effect) {
} }
void func_E0086398(void) { void func_E0086398(EffectInstance* effect) {
func_E00863B4(); func_E00863B4(effect);
} }
INCLUDE_ASM(s32, "effects/firework", func_E00863B4); void func_E00863B4(EffectInstance* effect) {
FireworkFXData* part = effect->data.firework;
Gfx* savedGfxPos;
f32 temp_f32 = part->unk_38 * 5.0f;
s32 envA;
s32 temp_s32 = temp_f32;
s32 primR;
s32 primG;
s32 primB;
s32 envR;
s32 envG;
s32 engB;
s32 primA;
s32 unk_34 = part->unk_34;
s32 unk_00 = part->unk_00;
s32 var_v1;
Matrix4f sp20;
Matrix4f sp60;
s32 i;
if (temp_s32 < 5) {
s32 cond;
f32 unk_28;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(effect->graphics->data));
unk_28 = part->unk_28;
shim_guPositionF(sp20, 0.0f, -gCameras[gCurrentCameraID].currentYaw, 0.0f, unk_28, 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);
envA = (temp_f32 - temp_s32) * 256.0f;
primA = part->unk_2C;
cond = (temp_s32 >= 4);
switch (unk_00) {
case 1:
if (unk_34 - 1 < 13) {
var_v1 = D_E0086AE4[unk_34 - 1];
} else {
var_v1 = 0;
}
primR = part->unk_3C;
primG = (part->unk_3D * var_v1) >> 8;
primB = (part->unk_3E * var_v1) >> 8;
envR = (part->unk_3F * var_v1) >> 8;
envG = (part->unk_40 * var_v1) >> 8;
engB = (part->unk_41 * var_v1) >> 8;
break;
case 2:
if (unk_34 % 2 == 0) {
primR = 0;
primG = 0;
primB = 0;
envR = part->unk_3C;
envG = part->unk_3D;
engB = part->unk_3E;
} else {
primR = part->unk_3C;
primG = part->unk_3D;
primB = part->unk_3E;
envR = part->unk_3F;
envG = part->unk_40;
engB = part->unk_41;
}
break;
case 0:
default:
primR = part->unk_3C;
primG = part->unk_3D;
primB = part->unk_3E;
envR = part->unk_3F;
envG = part->unk_40;
engB = part->unk_41;
break;
}
savedGfxPos = gMasterGfxPos++;
gSPDisplayList(gMasterGfxPos++, D_E0086AB4[unk_00]);
part++;
if (cond) {
gDPSetTileSize(gMasterGfxPos++, 1, 0, 0, 0, 0);
}
for (i = 1; i < effect->numParts; i++, part++) {
gSPDisplayList(gMasterGfxPos++, D_E0086AB4[part->unk_00]);
shim_guRotateF(sp20, part->unk_1C, 0.0f, 0.0f, 1.0f);
shim_guRotateF(sp60, part->unk_24, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guTranslateF(sp60, part->unk_04, part->unk_08, part->unk_0C);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_E0086AA0[temp_s32]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
gSPEndDisplayList(gMasterGfxPos++);
gSPBranchList(savedGfxPos, gMasterGfxPos);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primR, primG, primB, primA);
gDPSetEnvColor(gMasterGfxPos++, envR, envG, engB, envA);
gSPDisplayList(gMasterGfxPos++, savedGfxPos + 1);
shim_guRotateF(sp20, 120.0f, 1.0f, 1.0f, 1.0f);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, savedGfxPos + 1);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, savedGfxPos + 1);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}
}

View File

@ -1,20 +1,113 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
#include "nu/nusys.h"
typedef struct UnkStruct {
/* 0x00 */ s8 unk_00;
/* 0x01 */ s8 unk_01;
/* 0x02 */ s8 unk_02;
/* 0x03 */ s8 unk_03;
/* 0x04 */ s8 unk_04;
/* 0x05 */ s8 unk_05;
/* 0x06 */ s8 unk_06;
/* 0x07 */ s8 unk_07;
/* 0x08 */ u8 unk_08;
/* 0x09 */ char unk_09[3]; // likely padding
/* 0x0C */ Gfx* unk_0C;
} UnkStruct; // size = 0x10
extern Gfx D_09000800[];
extern Gfx D_090008F8[];
extern Gfx D_09000918[];
extern Gfx D_090009E0[];
UnkStruct D_E0040840[] = {
{ 255, 109, 255, 92, 102, 191, 255, 75, 50, {}, D_09000800 },
{ 255, 255, 255, 0, 255, 32, 0, 75, 100, {}, D_09000800 },
{ 255, 0, 255, 92, 107, 168, 255, 75, 10, {}, D_09000800 },
{ 255, 255, 255, 244, 247, 175, 175, 22, 30, {}, D_09000800 }
};
s32 D_E0040880;
void flame_init(EffectInstance* effect);
void flame_update(EffectInstance* effect);
void flame_render(EffectInstance* effect);
void flame_appendGfx(void* effect); void flame_appendGfx(void* effect);
u32 D_E0040840[2] = { 0xFF6DFF5C, 0x66BFFF4B }; void flame_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
EffectInstance** outEffect
) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
FlameFXData* data;
s32 numParts = 1;
s8 D_E0040848[56] = { 0x32, 0x00, 0x00, 0x00, 0x09, 0x00, 0x08, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x20, 0x00, 0x4B, 0x64, 0x00, 0x00, 0x00, 0x09, 0x00, 0x08, 0x00, 0xFF, 0x00, 0xFF, 0x5C, 0x6B, 0xA8, 0xFF, 0x4B, 0x0A, 0x00, 0x00, 0x00, 0x09, 0x00, 0x08, 0x00, 0xFF, 0xFF, 0xFF, 0xF4, 0xF7, 0xAF, 0xAF, 0x16, 0x1E, 0x00, 0x00, 0x00, 0x09, 0x00, 0x08, 0x00 }; if (arg0 >= 4) {
arg0 = 3;
}
s32 D_E0040880[4] = { 0, 0, 0, 0 }; bpPtr->init = flame_init;
bpPtr->update = flame_update;
bpPtr->renderWorld = flame_render;
bpPtr->unk_00 = 0;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_FLAME;
INCLUDE_ASM(s32, "effects/flame", flame_main); effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
data = effect->data.flame = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.flame != NULL);
void flame_init(void) { data->unk_00 = arg0;
data->unk_18 = 0;
data->pos.x = arg1;
data->pos.y = arg2;
data->pos.z = arg3;
data->unk_10 = arg4 * D_E0040840[arg0].unk_08 * 0.01;
data->unk_1C = 0;
data->unk_24 = 0;
data->unk_20 = 0;
data->unk_30 = 1.0f;
data->unk_2C = 1.0f;
data->unk_28 = 1.0f;
if (outEffect != NULL) {
*outEffect = effect;
}
} }
INCLUDE_ASM(s32, "effects/flame", flame_update); void flame_init(EffectInstance* effect) {
}
void flame_update(EffectInstance* effect) {
FlameFXData* part = effect->data.flame;
s32 i;
for (i = 0; i < effect->numParts; i++, part++) {
part->unk_1C += part->unk_20;
if (part->unk_1C > 64.0f) {
part->unk_1C -= 64.0f;
}
if (part->unk_1C < 0.0f) {
part->unk_1C += 64.0f;
}
part->unk_24 += part->unk_28;
if (part->unk_24 > 128.0f) {
part->unk_24 -= 128.0f;
}
if (part->unk_24 < 0.0f) {
part->unk_24 += 128.0f;
}
}
}
void flame_render(EffectInstance* effect) { void flame_render(EffectInstance* effect) {
FlameFXData* data = effect->data.flame; FlameFXData* data = effect->data.flame;
@ -48,4 +141,50 @@ void flame_render(EffectInstance* effect) {
shim_queue_render_task(renderTaskPtr); shim_queue_render_task(renderTaskPtr);
} }
INCLUDE_ASM(s32, "effects/flame", flame_appendGfx); void flame_appendGfx(void* effect) {
FlameFXData* data = ((EffectInstance*)effect)->data.flame;
Camera* camera = &gCameras[gCurrentCameraID];
s32 unk_00 = data->unk_00;
s32 uls = data->unk_1C * 4.0f;
s32 ult = data->unk_24 * 4.0f;
UnkStruct* unkStruct;
Matrix4f sp18;
Matrix4f sp58;
Matrix4f sp98;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
if (D_E0040880 != gGameStatusPtr->frameCounter) {
D_E0040880 = gGameStatusPtr->frameCounter;
gSPDisplayList(gMasterGfxPos++, D_09000918);
gDPSetTileSize(gMasterGfxPos++, 1, uls, ult, uls + 128, ult + 256);
gSPDisplayList(gMasterGfxPos++, D_090009E0);
gDPSetColorImage(gMasterGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 320, VIRTUAL_TO_PHYSICAL(nuGfxCfb_ptr));
gDPSetScissorFrac(gMasterGfxPos++, G_SC_NON_INTERLACE,
camera->viewportStartX * 4.0f,
camera->viewportStartY * 4.0f,
(camera->viewportStartX + camera->viewportW) * 4.0f,
(camera->viewportStartY + camera->viewportH) * 4.0f);
}
unkStruct = &D_E0040840[unk_00];
gSPDisplayList(gMasterGfxPos++, unkStruct->unk_0C);
gDPSetKeyR(gMasterGfxPos++, unkStruct->unk_03, unkStruct->unk_00, 0);
gDPSetKeyGB(gMasterGfxPos++, unkStruct->unk_03, unkStruct->unk_01, 0, unkStruct->unk_03, unkStruct->unk_02, 0);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, unkStruct->unk_07, unkStruct->unk_07, unkStruct->unk_07, 0);
gDPSetEnvColor(gMasterGfxPos++, unkStruct->unk_04, unkStruct->unk_05, unkStruct->unk_06, 0);
shim_guTranslateF(sp18, data->pos.x, data->pos.y, data->pos.z);
shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp98);
shim_guScaleF(sp58, data->unk_10 * data->unk_30, data->unk_10 * data->unk_2C, data->unk_10);
shim_guMtxCatF(sp58, sp98, sp98);
shim_guMtxF2L(sp98, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_090008F8);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -0,0 +1,13 @@
#include "effects/gfx/D_09000000_3A5BE0.png.inc.c"
#include "effects/gfx/D_09000800_3A63E0.png.inc.c"
#include "effects/gfx/D_09001000_3A6BE0.gfx.inc.c"
#include "effects/gfx/D_090010F8_3A6CD8.vtx.inc.c"
#include "effects/gfx/D_09001288_3A6E68.vtx.inc.c"
#include "effects/gfx/D_090012A8_3A6E88.vtx.inc.c"
#include "effects/gfx/D_090012B8_3A6E98.vtx.inc.c"
#include "effects/gfx/D_090012D8_3A6EB8.vtx.inc.c"
#include "effects/gfx/D_090012E8_3A6EC8.vtx.inc.c"
#include "effects/gfx/D_09001418_3A6FF8.gfx.inc.c"

View File

@ -1,14 +1,114 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern Gfx D_09001000_3A6BE0[];
extern Gfx D_09001418_3A6FF8[];
void merlin_house_stars_init(EffectInstance* effect);
void merlin_house_stars_update(EffectInstance* effect);
void merlin_house_stars_render(EffectInstance* effect);
void merlin_house_stars_appendGfx(void* effect); void merlin_house_stars_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/merlin_house_stars", merlin_house_stars_main); EffectInstance* merlin_house_stars_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) {
EffectBlueprint bp;
EffectInstance* effect;
MerlinHouseStarsFXData* data;
s32 numParts = 1;
void merlin_house_stars_init(void) { bp.init = merlin_house_stars_init;
bp.update = merlin_house_stars_update;
bp.renderWorld = merlin_house_stars_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_MERLIN_HOUSE_STARS;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.merlinHouseStars = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.merlinHouseStars != NULL);
data->unk_04 = 100;
data->unk_00 = arg0;
data->unk_18 = 255;
data->unk_0C = arg1;
data->unk_10 = arg2;
data->unk_14 = arg3;
data->unk_08 = 0;
data->unk_1C = data->unk_20 = 0.0f;
data->unk_24 = data->unk_28 = 0.0f;
data->unk_2C = 1.2f;
data->unk_30 = 0.4f;
data->unk_34 = -1.0f;
data->unk_38 = 0.4f;
return effect;
} }
INCLUDE_ASM(s32, "effects/merlin_house_stars", merlin_house_stars_update); void merlin_house_stars_init(EffectInstance* effect) {
}
void merlin_house_stars_update(EffectInstance* effect) {
MerlinHouseStarsFXData* data = effect->data.merlinHouseStars;
s32 unk_04;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
data->unk_04 = 30;
}
if (data->unk_04 < 100) {
data->unk_04--;
}
data->unk_08++;
if (data->unk_04 < 0) {
shim_remove_effect(effect);
return;
}
data->unk_1C += data->unk_2C;
data->unk_20 += data->unk_30;
data->unk_24 += data->unk_34;
data->unk_28 += data->unk_38;
unk_04 = data->unk_04;
if (data->unk_08 < 17) {
data->unk_18 = data->unk_08 * 16 - 1;
}
if (unk_04 < 16) {
data->unk_18 = unk_04 * 16;
}
if (data->unk_1C < 0.0f) {
data->unk_1C += 128.0f;
} else if (data->unk_1C > 128.0f) {
data->unk_1C -= 128.0f;
}
data->unk_20 += data->unk_30;
if (data->unk_20 < 0.0f) {
data->unk_20 += 128.0f;
} else if (data->unk_20 > 128.0f) {
data->unk_20 -= 128.0f;
}
data->unk_24 += data->unk_34;
if (data->unk_24 < 0.0f) {
data->unk_24 += 128.0f;
} else if (data->unk_24 > 128.0f) {
data->unk_24 -= 128.0f;
}
data->unk_28 += data->unk_38;
if (data->unk_28 < 0.0f) {
data->unk_28 += 128.0f;
} else if (data->unk_28 > 128.0f) {
data->unk_28 -= 128.0f;
}
}
void merlin_house_stars_render(EffectInstance* effect) { void merlin_house_stars_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;
@ -26,4 +126,37 @@ void merlin_house_stars_render(EffectInstance* effect) {
void func_E00A639C(void) { void func_E00A639C(void) {
} }
INCLUDE_ASM(s32, "effects/merlin_house_stars", merlin_house_stars_appendGfx); void merlin_house_stars_appendGfx(void* effect) {
MerlinHouseStarsFXData* data = ((EffectInstance*)effect)->data.merlinHouseStars;
s32 unk_18 = data->unk_18;
Matrix4f sp10;
Matrix4f sp50;
s32 uls;
s32 ult;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guTranslateF(sp10, data->unk_0C, data->unk_10, data->unk_14);
shim_guScaleF(sp50, 0.96f, 0.96f, 0.96f);
shim_guMtxCatF(sp50, sp10, sp10);
shim_guMtxF2L(sp10, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0, 0, 0, 127);
gDPSetEnvColor(gMasterGfxPos++, 0, 0, 0, unk_18);
gDPSetCombineLERP(gMasterGfxPos++, 0, 0, 0, 1, TEXEL1, 0, PRIMITIVE, TEXEL0, 0, 0, 0, COMBINED, COMBINED, 0, ENVIRONMENT, 0);
gSPDisplayList(gMasterGfxPos++, D_09001000_3A6BE0);
uls = data->unk_1C * 4.0f;
ult = data->unk_20 * 4.0f;
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, uls, ult, uls + 252, ult + 252);
uls = data->unk_24 * 4.0f;
ult = data->unk_28 * 4.0f;
gDPSetTileSize(gMasterGfxPos++, 1, uls, ult, uls + 252, ult + 252);
gSPDisplayList(gMasterGfxPos++, D_09001418_3A6FF8);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -7,11 +7,55 @@ s32 D_E00A29DC[] = { 0x00000010, 0x00000010, 0x3F800000, 0x3F800000, 0x00000008,
s32 D_E00A2A24[] = { 0x00000064, 0x0000003C, 0x0000001E, 0x0000000A, 0x00000000, 0x00000000, 0x00000000 }; s32 D_E00A2A24[] = { 0x00000064, 0x0000003C, 0x0000001E, 0x0000000A, 0x00000000, 0x00000000, 0x00000000 };
void motion_blur_flame_init(EffectInstance* effect);
void motion_blur_flame_update(EffectInstance* effect);
void motion_blur_flame_render(EffectInstance* effect);
void motion_blur_flame_appendGfx(void* effect); void motion_blur_flame_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/motion_blur_flame", motion_blur_flame_main); EffectInstance* motion_blur_flame_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectBlueprint bp;
EffectInstance* effect;
MotionBlurFlameFXData* data;
s32 numParts = 1;
s32 i;
void motion_blur_flame_init(void) { bp.init = motion_blur_flame_init;
bp.update = motion_blur_flame_update;
bp.renderWorld = motion_blur_flame_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_MOTION_BLUR_FLAME;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
data = effect->data.motionBlurFlame = shim_general_heap_malloc(numParts * sizeof(*data));
ASSERT(effect->data.motionBlurFlame != NULL);
data->unk_00 = arg0;
if (arg5 < 0) {
data->unk_50 = 1000;
} else {
data->unk_50 = arg5;
}
data->unk_4C = 127;
data->unk_54 = 0;
data->unk_04 = arg1;
data->unk_08 = arg2;
data->unk_0C = arg3;
data->position.x = 0;
data->position.y = 0;
data->position.z = 0;
data->unk_5C = 255;
data->unk_60 = 255;
data->unk_64 = 255;
data->unk_3C[1] = 0;
data->unk_3C[2] = 0;
data->unk_3C[3] = 0;
return effect;
}
void motion_blur_flame_init(EffectInstance* effect) {
} }
INCLUDE_ASM(s32, "effects/motion_blur_flame", motion_blur_flame_update); INCLUDE_ASM(s32, "effects/motion_blur_flame", motion_blur_flame_update);

View File

@ -1,14 +1,218 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern Gfx D_09000F20_338EE0[];
extern Gfx D_090011C8_339188[];
extern Gfx D_090011E0_3391A0[];
extern Gfx D_090011F8_3391B8[];
extern Gfx D_09001210_3391D0[];
extern Gfx D_09001228_3391E8[];
extern Gfx D_09001240_339200[];
extern Gfx D_09001258_339218[];
extern Gfx D_09001270_339230[];
Gfx* D_E01248A0[] = {
D_09001210_3391D0, D_09001228_3391E8, D_09001240_339200,
D_09001258_339218, D_09001270_339230, D_090011C8_339188,
D_090011E0_3391A0, D_090011F8_3391B8
};
s8 D_E01248C0[] = {
0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x40, 0x2E, 0x23, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x24, 0x25, 0x26, 0x2E, 0x2A, 0x3D, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2D, 0x2E, 0x2E, 0x2E, 0x3B, 0x3E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2C, 0x27, 0x2E, 0x2E, 0x2E, 0x2E, 0x29, 0x21, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x7E, 0x7E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x7B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x7E, 0x7E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x5D, 0x40, 0x40, 0x5E, 0x2E, 0x2E,
0x2E, 0x2E, 0x7E, 0x2F, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x28, 0x5F, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x23, 0x3A, 0x3C, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x5B, 0x7D, 0x7C, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x31, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x32, 0x33, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x34, 0x35, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x36, 0x37, 0x37, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x38, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x37, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x39, 0x30, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x37, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x61, 0x32, 0x32, 0x62, 0x2E, 0x2E, 0x2E, 0x63, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x64, 0x65, 0x65, 0x65, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x66, 0x2B, 0x2B, 0x2B, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x66, 0x66, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x66, 0x66, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x66, 0x66, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E,
0x2E, 0x66, 0x2B, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E,
0x66, 0x66, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x66, 0x2E,
0x2E, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E,
0x66, 0x66, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E,
0x2E, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E,
0x2E, 0x66, 0x2B, 0x2E, 0x66, 0x2B, 0x2B, 0x2B, 0x66, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E,
0x2E, 0x2E, 0x2E, 0x2B, 0x66, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x66, 0x2E,
0x2E, 0x2E, 0x2E, 0x2E, 0x67, 0x68, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2B, 0x67, 0x2E, 0x67, 0x67, 0x67, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x68, 0x68, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x68, 0x68, 0x2E, 0x2E, 0x68, 0x68, 0x2E, 0x68, 0x68, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x68, 0x67, 0x2B, 0x67, 0x68, 0x67, 0x67, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x68, 0x67, 0x68, 0x67, 0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x68, 0x67, 0x67, 0x67, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2B, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x67, 0x2B, 0x2E, 0x68, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E,
0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E,
0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E,
0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x68, 0x67, 0x67, 0x2E,
0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x67, 0x2E,
0x2E, 0x2E, 0x67, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x68, 0x67, 0x2E, 0x2E,
0x2E, 0x2E, 0x2E, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x68, 0x2E, 0x2E, 0x2E
};
u8 D_E0124BC0[] = {
0xFE, 0xAC, 0xAC,
0xFE, 0xAC, 0xD5,
0xFE, 0xB4, 0x9A,
0xD5, 0xB4, 0xFE,
0xB4, 0xB4, 0xFE,
0xB4, 0xDD, 0xFE,
0xB4, 0xFE, 0xFE,
0xB4, 0xFE, 0xD5,
0xB4, 0xFE, 0xB4,
0xD5, 0xFE, 0xB4,
0xFE, 0xFE, 0xB4,
0xFE, 0xD5, 0xAC
};
u8 D_E0124BE4[] = {
0x1E, 0x3C, 0x5A, 0x64, 0x68,
0x6A, 0x6C, 0x6E, 0x70, 0x71,
0x71, 0x6E, 0x6B, 0x67, 0x64,
0x68, 0x6A, 0x6C, 0x6E, 0x70,
0x71, 0x71, 0x6E, 0x6B, 0x67
};
void pink_sparkles_init(EffectInstance* effect);
void pink_sparkles_update(EffectInstance* effect);
void pink_sparkles_render(EffectInstance* effect);
void pink_sparkles_appendGfx(void* effect); void pink_sparkles_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/pink_sparkles", pink_sparkles_main); EffectInstance* pink_sparkles_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) {
EffectBlueprint bp;
EffectInstance* effect;
PinkSparklesFXData* part;
s32 numParts = 101;
s32 count;
f32 angle;
s32 i;
s32 j;
void pink_sparkles_init(void) { bp.init = pink_sparkles_init;
bp.update = pink_sparkles_update;
bp.renderWorld = pink_sparkles_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_PINK_SPARKLES;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
part = effect->data.pinkSparkles = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.pinkSparkles != NULL);
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_20 = 0;
part->unk_00 = arg0;
part->unk_1C = 80;
part++;
angle = arg5;
count = 1;
for (i = 0; i < 16; i++) {
for (j = 0; j < 16; j++) {
if (D_E01248C0[j + (15 - i) * 16 + arg0 * 256] != 46) {
f32 temp_f20 = j * 2 - 16 + (shim_rand_int(20) - 10) * 0.1;
part->unk_04 = temp_f20 * shim_cos_deg(angle);
part->unk_08 = i * 2 + (shim_rand_int(20) - 10) * 0.1;
part->unk_0C = temp_f20 * shim_sin_deg(angle);
part->unk_10 = part->unk_04 * 0.04;
part->unk_14 = part->unk_08 * 0.04;
part->unk_18 = shim_rand_int(10) * 0.001;
part->unk_1C = shim_rand_int(7) + 30;
part->unk_20 = 0;
count++;
part++;
if (count >= numParts) {
break;
}
}
}
if (count >= numParts) {
break;
}
}
for (; count < numParts; count++, part++) {
part->unk_04 = part->unk_08 = part->unk_0C =
part->unk_10 = part->unk_14 = part->unk_18 =
part->unk_24 = 0.0f;
part->unk_1C = -1;
part->unk_20 = 0;
};
return effect;
} }
INCLUDE_ASM(s32, "effects/pink_sparkles", pink_sparkles_update); void pink_sparkles_init(EffectInstance* effect) {
}
void pink_sparkles_update(EffectInstance* effect) {
PinkSparklesFXData* part = effect->data.pinkSparkles;
s32 unk_20;
s32 count = 0;
s32 i;
part->unk_1C--;
part->unk_20++;
unk_20 = part->unk_20;
part++;
for (i = 0; i < effect->numParts - 1; i++, part++) {
part->unk_28 = (unk_20 + i + i) & 7;
if (part->unk_1C < 0) {
count += 1;
}
part->unk_1C--;
if (part->unk_1C < 0 || part->unk_1C >= 31) {
part->unk_28 = -1;
} else {
part->unk_20++;
unk_20 = part->unk_20;
if (unk_20 - 1 < 25) {
part->unk_24 = (f32) D_E0124BE4[unk_20 - 1] * 0.01 * 0.4;
} else {
part->unk_24 += (0.1 - part->unk_24) * 0.1;
}
part->unk_04 += part->unk_10;
part->unk_08 += part->unk_14;
part->unk_14 += part->unk_18;
part->unk_0C += part->unk_10;
}
}
if (count >= effect->numParts - 1) {
shim_remove_effect(effect);
}
}
void pink_sparkles_render(EffectInstance* effect) { void pink_sparkles_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;
@ -22,4 +226,66 @@ void pink_sparkles_render(EffectInstance* effect) {
retTask = shim_queue_render_task(&renderTask); retTask = shim_queue_render_task(&renderTask);
} }
INCLUDE_ASM(s32, "effects/pink_sparkles", pink_sparkles_appendGfx); void pink_sparkles_appendGfx(void* effect) {
PinkSparklesFXData* part = ((EffectInstance*)effect)->data.pinkSparkles;
s32 primR;
s32 primG;
s32 primB;
f32 factorR = 1.4f;
f32 factorG = 0.7f;
f32 factorB = 0.7f;
Matrix4f sp18;
Matrix4f sp58;
Matrix4f sp98;
s32 colorIdx;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, D_09000F20_338EE0);
colorIdx = (part->unk_20 - 1) * 3;
shim_guTranslateF(sp98, part->unk_04, part->unk_08, part->unk_0C);
shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp98, sp98);
part++;
for (i = 0; i < ((EffectInstance*)effect)->numParts - 1; i++, part++) {
s32 unk_28 = part->unk_28;
if (unk_28 >= 0) {
shim_guTranslateF(sp58, part->unk_04, part->unk_08, part->unk_0C);
sp58[0][0] = sp58[1][1] = sp58[2][2] = part->unk_24;
shim_guMtxCatF(sp58, sp98, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
if (colorIdx >= ARRAY_COUNT(D_E0124BC0)) {
colorIdx = 0;
}
primR = D_E0124BC0[colorIdx++] * factorR;
primG = D_E0124BC0[colorIdx++] * factorG;
primB = D_E0124BC0[colorIdx++] * factorB;
if (primR > 255) {
primR = 255;
}
if (primG > 255) {
primG = 255;
}
if (primB > 255) {
primB = 255;
}
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primR, primG, primB, 255);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_E01248A0[unk_28 & 7]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -1,11 +1,69 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
void something_rotating_init(EffectInstance* effect);
void something_rotating_update(EffectInstance* effect);
void something_rotating_render(EffectInstance* effect);
void something_rotating_appendGfx(void* effect); void something_rotating_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/something_rotating", something_rotating_main); EffectInstance* something_rotating_main(
s32 arg0,
f32 arg1,
f32 arg2,
f32 arg3,
f32 arg4,
s32 arg5
) {
EffectBlueprint bp;
EffectInstance* effect;
SomethingRotatingFXData* part;
s32 numParts = 8;
s32 i;
void something_rotating_init(void) { bp.init = something_rotating_init;
bp.update = something_rotating_update;
bp.renderWorld = something_rotating_render;
bp.unk_00 = 0;
bp.unk_14 = NULL;
bp.effectID = EFFECT_SOMETHING_ROTATING;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
part = effect->data.somethingRotating = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.somethingRotating != NULL);
part->unk_00 = arg0;
part->unk_14 = 0;
if (arg5 <= 0) {
part->unk_10 = 1000;
} else {
part->unk_10 = arg5;
}
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_18 = arg4;
part->unk_1C = 30.0f;
part->unk_20 = 0;
part++;
for (i = 1; i < numParts; i++, part++) {
part->unk_24 = 0;
part->unk_18 = arg4 * 0.5;
part->unk_26 = 255;
part->unk_27 = 255;
part->unk_28 = 0;
part->unk_25 = 0;
part->unk_1C = 30.0f;
part->unk_20 = 0;
part->unk_29 = 0;
part->unk_2C = 50.0f;
}
return effect;
}
void something_rotating_init(EffectInstance* effect) {
} }
INCLUDE_ASM(s32, "effects/something_rotating", something_rotating_update); INCLUDE_ASM(s32, "effects/something_rotating", something_rotating_update);

View File

@ -1,14 +1,234 @@
#include "common.h" #include "common.h"
#include "effects_internal.h" #include "effects_internal.h"
extern Gfx D_09000F20_338EE0[];
extern Gfx D_090011C8_339188[];
extern Gfx D_090011E0_3391A0[];
extern Gfx D_090011F8_3391B8[];
extern Gfx D_09001210_3391D0[];
extern Gfx D_09001228_3391E8[];
extern Gfx D_09001240_339200[];
extern Gfx D_09001258_339218[];
extern Gfx D_09001270_339230[];
Gfx* D_E0022CD0[] = {
D_09001210_3391D0, D_09001228_3391E8, D_09001240_339200,
D_09001258_339218, D_09001270_339230, D_090011C8_339188,
D_090011E0_3391A0, D_090011F8_3391B8
};
u8 D_E0022CF0[] = {
254, 172, 172,
254, 172, 213,
254, 180, 154,
213, 180, 254,
180, 180, 254,
180, 221, 254,
180, 254, 254,
180, 254, 213,
180, 254, 180,
213, 254, 180,
254, 254, 180,
254, 213, 172
};
u8 D_E0022D14[] = { 0x1E, 0x3C, 0x50, 0x5F, 0x64, 0x68, 0x6A };
u8 D_E0022D1C[] = { 0x3C, 0x5A, 0x64, 0x68, 0x6A, 0x6C, 0x6D };
void sparkles_init(EffectInstance* effect);
void sparkles_update(EffectInstance* effect);
void sparkles_render(EffectInstance* effect);
void sparkles_appendGfx(void* effect); void sparkles_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/sparkles", sparkles_main); void sparkles_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
SparklesFXData* part;
s32 numParts;
f32 var_f30;
f32 angle;
f32 angle2;
s32 i;
void sparkles_init(void) { switch (arg0) {
case 0:
numParts = 36;
var_f30 = arg4;
break;
case 1:
numParts = 4;
var_f30 = arg4;
break;
case 2:
numParts = 8;
var_f30 = arg4;
break;
case 3:
numParts = 4;
var_f30 = 8.0f;
break;
default:
numParts = 8;
var_f30 = 8.0f;
break;
}
numParts++;
bpPtr->init = sparkles_init;
bpPtr->update = sparkles_update;
bpPtr->renderWorld = sparkles_render;
bpPtr->unk_00 = 0;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_SPARKLES;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data.sparkles = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.sparkles != NULL);
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_20 = 0;
part->unk_00 = arg0;
part->unk_24 = 30;
part++;
for (i = 1; i < numParts; i++, part++) {
f32 rand1 = shim_rand_int(arg4 * 1000.0f) / 1000.0f;
f32 rand2 = shim_rand_int(var_f30 * 1000.0f) / 1000.0f;
switch (arg0) {
case 0:
angle = (360.0f / (numParts - 1)) * i;
angle2 = (1800.0f / (numParts - 1)) * i - 90.0f;
part->unk_18 = 0.0f;
part->unk_10 = (shim_sin_deg(angle) * (85.0f - shim_sin_deg(angle2) * 15.0f - (i & 1) * 5) / 100.0f) * arg4;
part->unk_14 = (shim_cos_deg(angle) * (85.0f - shim_sin_deg(angle2) * 15.0f - (i & 1) * 5) / 100.0f) * arg4;
part->unk_0C = 0;
part->unk_28 = 0;
break;
case 1:
case 2:
angle = (360.0f / (numParts - 1)) * i + shim_rand_int(359);
if (i & 1) {
part->unk_18 = -(shim_rand_int(50) / 1000 + 0.05);
} else {
part->unk_18 = 0;
}
part->unk_10 = 0;
part->unk_14 = 0;
part->unk_04 = rand1 * shim_sin_deg(angle);
part->unk_08 = rand2 * shim_cos_deg(angle);
part->unk_0C = 0;
part->unk_1C = 1.0f;
part->unk_24 = i * 2 + 30;
part->unk_28 = i % 3;
part->unk_20 = 0;
break;
case 3:
case 4:
default:
angle = (360.0f / (numParts - 1)) * i + shim_rand_int(359);
part->unk_18 = -(shim_rand_int(50) / 1000 + 0.05);
part->unk_10 = 0.0f;
part->unk_14 = 0.0f;
part->unk_04 = rand1 * shim_sin_deg(angle);
part->unk_08 = rand2 * shim_cos_deg(angle);
part->unk_0C = 0;
part->unk_1C = 1.0f;
part->unk_24 = i * 2 + 18;
part->unk_28 = i % 3;
part->unk_20 = 0;
break;
}
}
} }
INCLUDE_ASM(s32, "effects/sparkles", sparkles_update); void sparkles_init(EffectInstance* effect) {
}
void sparkles_update(EffectInstance *effect) {
SparklesFXData* part = effect->data.sparkles;
SparklesFXData* firstPart = part;
s32 unk_00 = part->unk_00;
f32 unk_10;
f32 unk_14;
s32 unk_20;
s32 count = 0;
f32 temp_f20;
f32 angle;
s32 i;
part->unk_24--;
part->unk_20++;
unk_20 = part->unk_20;
if ((unk_00 == 0 || unk_00 == 10) && part->unk_24 < 0) {
shim_remove_effect(effect);
return;
}
part++;
for (i = 0; i < effect->numParts - 1; i++, part++) {
part->unk_2C = (unk_20 + i) & 7;
switch (unk_00) {
case 0:
part->unk_18 += -0.02;
if (unk_20 - 1 < 7) {
part->unk_04 = part->unk_10 * D_E0022D14[unk_20 - 1] * 0.01;
part->unk_08 = part->unk_14 * D_E0022D14[unk_20 - 1] * 0.01 + part->unk_18;
part->unk_1C = (f32) D_E0022D1C[unk_20 - 1] * 0.01;
} else {
angle = func_E0200044(360, i + 177);
temp_f20 = (i & 3) * 0.5f + 1.0f;
firstPart->unk_00 = 10;
part->unk_10 = temp_f20 * shim_sin_deg(angle);
part->unk_14 = temp_f20 * shim_cos_deg(angle);
part->unk_18 = -0.05f;
}
break;
case 10:
part->unk_10 *= 0.96;
part->unk_1C += (0.1 - part->unk_1C) * 0.1;
part->unk_14 *= 0.96;
part->unk_14 += part->unk_18;
part->unk_04 += part->unk_10;
part->unk_08 += part->unk_14;
break;
default:
part->unk_10 *= 0.9;
part->unk_14 += part->unk_18;
unk_10 = part->unk_10;
unk_14 = part->unk_14;
if (part->unk_24 < 0) {
count++;
}
part->unk_04 += unk_10;
part->unk_08 += unk_14;
part->unk_24--;
if (part->unk_24 < 0 || part->unk_24 >= 21) {
part->unk_2C = -1;
} else {
part->unk_20++;
unk_20 = part->unk_20;
if (unk_20 - 1 < 7) {
part->unk_1C = (f32) D_E0022D1C[unk_20 - 1] * 0.01;
} else {
part->unk_1C += (0.1 - part->unk_1C) * 0.1;
}
}
break;
}
}
if (unk_00 != 0 && unk_00 != 10 && count >= effect->numParts - 1) {
shim_remove_effect(effect);
}
}
void sparkles_render(EffectInstance* effect) { void sparkles_render(EffectInstance* effect) {
RenderTask renderTask; RenderTask renderTask;
@ -22,4 +242,47 @@ void sparkles_render(EffectInstance* effect) {
retTask = shim_queue_render_task(&renderTask); retTask = shim_queue_render_task(&renderTask);
} }
INCLUDE_ASM(s32, "effects/sparkles", sparkles_appendGfx); void sparkles_appendGfx(void* effect) {
SparklesFXData* part = ((EffectInstance*)effect)->data.sparkles;
Matrix4f sp18;
Matrix4f sp58;
Matrix4f sp98;
s32 colorIdx;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, D_09000F20_338EE0);
colorIdx = (part->unk_20 - 1) * 3;
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 = 0; i < ((EffectInstance*)effect)->numParts - 1; i++, part++) {
s32 unk_2C = part->unk_2C;
if (unk_2C >= 0) {
shim_guTranslateF(sp58, part->unk_04, part->unk_08, part->unk_0C);
sp58[0][0] = part->unk_1C;
sp58[1][1] = part->unk_1C;
sp58[2][2] = part->unk_1C;
colorIdx += 3;
shim_guMtxCatF(sp58, sp98, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
colorIdx %= ARRAY_COUNT(D_E0022CF0);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, D_E0022CF0[colorIdx], D_E0022CF0[colorIdx + 1], D_E0022CF0[colorIdx + 2], 255);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_E0022CD0[unk_2C & 7]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -577,7 +577,7 @@ ApiStatus PlayEffect(Evt* script, s32 isInitialCall) {
effectRet = fx_snowfall(iVar1, iVar2); effectRet = fx_snowfall(iVar1, iVar2);
break; break;
case EFFECT_46: case EFFECT_46:
effectRet = fx_46(iVar1, (EffectWhirlwindUnk*)a2, fVar3, iVar4); effectRet = fx_46(iVar1, (PlayerStatus*)a2, fVar3, iVar4);
break; break;
case EFFECT_GATHER_MAGIC: case EFFECT_GATHER_MAGIC:
effectRet = fx_gather_magic(iVar1, fVar2, fVar3, fVar4, fVar5, iVar6); effectRet = fx_gather_magic(iVar1, fVar2, fVar3, fVar4, fVar5, iVar6);

View File

@ -1,15 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E0022CD0
.word 0x09001210, 0x09001228, 0x09001240, 0x09001258, 0x09001270, 0x090011C8, 0x090011E0, 0x090011F8
dlabel D_E0022CF0
.word 0xFEACACFE, 0xACD5FEB4, 0x9AD5B4FE, 0xB4B4FEB4, 0xDDFEB4FE, 0xFEB4FED5, 0xB4FEB4D5, 0xFEB4FEFE, 0xB4FED5AC
dlabel D_E0022D14
.word 0x1E3C505F, 0x64686A00
dlabel D_E0022D1C
.ascii "<Zdhjlm\0\0\0\0\0\0\0\0\0\0\0\0\0"

View File

@ -1,21 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E0086AA0
.word 0x09000A00, 0x09000A20, 0x09000A40, 0x09000A60, 0x09000A80
dlabel D_E0086AB4
.word 0x09000940, 0x09000940, 0x09000940
dlabel D_E0086AC0
.byte 0x0D, 0x0D, 0x0D, 0x00
dlabel D_E0086AC4
.byte 0x40, 0x68, 0x90, 0xA4, 0xB8, 0xC0, 0xD0, 0xD8, 0xE0, 0xE8, 0xF0, 0xF8, 0xFF, 0x00, 0x00, 0x00
dlabel D_E0086AD4
.word 0x0A141C23, 0x2A303539, 0x3C3E3F40, 0x41000000
dlabel D_E0086AE4
.byte 0xFF, 0xFF, 0xC8, 0x82, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

View File

@ -1,15 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E0088CC0
.word 0x090009E8, 0x090009E8, 0x090009E8, 0x09000A00, 0x090009E8, 0x090009E8, 0x090009E8
dlabel D_E0088CDC
.word 0xE8A0A8A8, 0x5058A0A8, 0xE84848E8, 0xA0E8A060, 0xB078E0E0, 0x58B0A038, 0xE8A0E8B0, 0x40A0A0D8, 0xD858A8A8
dlabel D_E0088D00
.word 0x00010203, 0x02010000
dlabel D_E0088D08
.word 0x002D003C, 0x00000000

View File

@ -1,15 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E008CAF0
.word 0xFEACACFE, 0xACD5FEB4, 0x9AD5B4FE, 0xB4B4FEB4, 0xDDFEB4FE, 0xFEB4FED5, 0xB4FEB4D5, 0xFEB4FEFE, 0xB4FED5AC
dlabel D_E008CB14
.byte 0xFF, 0xFF, 0x40, 0x00
dlabel D_E008CB18
.byte 0xFF, 0x40, 0x40, 0x00
dlabel D_E008CB1C
.byte 0xFF, 0x40, 0xFF, 0x00

View File

@ -1,12 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00E0A40
.word 0x090003B0
dlabel D_E00E0A44
.word 0x09000280
dlabel D_E00E0A48
.word 0x3C23D70A, 0x3D4CCCCD, 0x3DCCCCCD, 0x3E4CCCCD, 0x3EB33333, 0x3F000000, 0x3F266666, 0x3F4CCCCD, 0x3F733333, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F800000, 0x3F733333, 0x3F4CCCCD, 0x3F266666, 0x3F000000, 0x3EB33333, 0x3E4CCCCD, 0x3DCCCCCD, 0x3D4CCCCD, 0x3C23D70A

View File

@ -1,15 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E01248A0
.word 0x09001210, 0x09001228, 0x09001240, 0x09001258, 0x09001270, 0x090011C8, 0x090011E0, 0x090011F8
dlabel D_E01248C0
.word 0x2E2E2E2E, 0x2E2E2E2B, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E402E, 0x232E2E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2425262E, 0x2A3D2E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2D2E2E2E, 0x3B3E2E2E, 0x2E2E2E2E, 0x2E2E2E2C, 0x272E2E2E, 0x2E29212E, 0x2E2E2E2E, 0x2E2E7E7E, 0x2E2E2E2E, 0x2E2E7B2E, 0x2E2E2E2E, 0x2E2E7E7E, 0x2E2E2E2E, 0x2E2E5D40, 0x405E2E2E, 0x2E2E7E2F, 0x2E2E2E2E, 0x2E2E2E2E, 0x285F2E2E, 0x2E2E2E2E, 0x233A3C2E, 0x2E2E2E2E, 0x2B2E2E2E, 0x2E2E2E2E, 0x5B7D7C2E, 0x2E2E2E2E, 0x2B2E2E2E, 0x2E2E2E2E, 0x312E2E2E, 0x2E2E2E2E, 0x32332E2E, 0x2E2E2E2E, 0x34352E2E, 0x2E2E2E36, 0x37372E2E, 0x2E2E2E2E, 0x382E2E2E, 0x2E2E2E37, 0x2E2E2E2E, 0x2E2E2E39, 0x302E2E2E, 0x2E2E2E37, 0x2E2E2E2E, 0x2E2E2E61, 0x3232622E, 0x2E2E632E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E6465, 0x65652E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E662B, 0x2B2B2B2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E66662E, 0x2E2E2E2B, 0x2E2E2E2E, 0x2E2E2E2E, 0x66662E2E, 0x2E2E2E2E, 0x2B2E2E2E, 0x2E2E2E2E, 0x2E2B2E2E, 0x2E2E2E2E, 0x2B2E2E2E, 0x2E2E2E2E, 0x2B2E2E2E, 0x2E2E2E2E, 0x66662E2E, 0x2E2E2E2E, 0x2B2E2E2E, 0x2E2E2E2E, 0x2E2B2E2E, 0x2E662B2B, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2B2E2E, 0x66662E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2B662E, 0x2E2B2E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E2B2E, 0x66662E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E2B2E, 0x2E2B2E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E2B2E, 0x2E662B2E, 0x662B2B2B, 0x662E2E2E, 0x2E2E2B2E, 0x2E2E2E2B, 0x662E2E2B, 0x2E2E2E2E, 0x2E2E2B2E, 0x2E2E2E2E, 0x2E2E2B2E, 0x2E2E2E2E, 0x2E2E2B2E, 0x2E2E2E2E, 0x2E2E2B2E, 0x2E2E2E2E, 0x2E2E2B2E, 0x2E2E2E2E, 0x2E2E2E2B, 0x2B2B2B2B, 0x2B2B662E, 0x2E2E2E2E, 0x67682E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E2B67, 0x2E676767, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E672E, 0x2E2E6868, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E672E, 0x2E2E2E67, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E6868, 0x2E2E6868, 0x2E68682E, 0x2E2E2E2E, 0x2E2E672E, 0x2E68672B, 0x67686767, 0x2E2E2E2E, 0x2E2E6867, 0x68672E67, 0x2E2E2E67, 0x2E2E2E2E, 0x2E2E2E68, 0x6767672E, 0x2E2E2E2E, 0x2B2E2E2E, 0x2E2E672B, 0x2E682E2E, 0x2E2E2E2E, 0x672E2E2E, 0x2E672E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x672E2E2E, 0x2E672E2E, 0x2E2E2E2E, 0x2E2E2E2E, 0x672E2E2E, 0x2E2E672E, 0x2E2E2E2E, 0x2E2E2E2E, 0x672E2E2E, 0x2E2E672E, 0x2E2E2E2E, 0x2E2E2E2E, 0x6867672E, 0x2E2E672E, 0x2E2E2E2E, 0x2E2E2E2E, 0x2E2E672E, 0x2E2E672E, 0x2E2E2E2E, 0x2E2E2E2E, 0x68672E2E, 0x2E2E2E67, 0x67676767, 0x67676767, 0x682E2E2E
dlabel D_E0124BC0
.word 0xFEACACFE, 0xACD5FEB4, 0x9AD5B4FE, 0xB4B4FEB4, 0xDDFEB4FE, 0xFEB4FED5, 0xB4FEB4D5, 0xFEB4FEFE, 0xB4FED5AC
dlabel D_E0124BE4
.ascii "<Zdhjlnpqqnkgdhjlnpqqnkg\0\0\0"

View File

@ -1,492 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0030EC0
.word 0xE00305D0, 0xE00305DC, 0xE00305F4, 0xE0030660, 0xE0030660, 0x00000000
.section .text
glabel damage_stars_main
/* 342140 E0030000 27BDFF30 */ addiu $sp, $sp, -0xd0
/* 342144 E0030004 F7B600A8 */ sdc1 $f22, 0xa8($sp)
/* 342148 E0030008 C7B600E0 */ lwc1 $f22, 0xe0($sp)
/* 34214C E003000C F7B800B0 */ sdc1 $f24, 0xb0($sp)
/* 342150 E0030010 C7B800E4 */ lwc1 $f24, 0xe4($sp)
/* 342154 E0030014 F7BA00B8 */ sdc1 $f26, 0xb8($sp)
/* 342158 E0030018 C7BA00E8 */ lwc1 $f26, 0xe8($sp)
/* 34215C E003001C 8FA800EC */ lw $t0, 0xec($sp)
/* 342160 E0030020 AFB60090 */ sw $s6, 0x90($sp)
/* 342164 E0030024 0080B02D */ daddu $s6, $a0, $zero
/* 342168 E0030028 AFB00078 */ sw $s0, 0x78($sp)
/* 34216C E003002C 27B00018 */ addiu $s0, $sp, 0x18
/* 342170 E0030030 AFBF009C */ sw $ra, 0x9c($sp)
/* 342174 E0030034 AFBE0098 */ sw $fp, 0x98($sp)
/* 342178 E0030038 AFB70094 */ sw $s7, 0x94($sp)
/* 34217C E003003C AFB5008C */ sw $s5, 0x8c($sp)
/* 342180 E0030040 AFB40088 */ sw $s4, 0x88($sp)
/* 342184 E0030044 AFB30084 */ sw $s3, 0x84($sp)
/* 342188 E0030048 AFB20080 */ sw $s2, 0x80($sp)
/* 34218C E003004C AFB1007C */ sw $s1, 0x7c($sp)
/* 342190 E0030050 F7BE00C8 */ sdc1 $f30, 0xc8($sp)
/* 342194 E0030054 F7BC00C0 */ sdc1 $f28, 0xc0($sp)
/* 342198 E0030058 F7B400A0 */ sdc1 $f20, 0xa0($sp)
/* 34219C E003005C AFA500D4 */ sw $a1, 0xd4($sp)
/* 3421A0 E0030060 AFA600D8 */ sw $a2, 0xd8($sp)
/* 3421A4 E0030064 1100019E */ beqz $t0, .LE00306E0
/* 3421A8 E0030068 AFA700DC */ sw $a3, 0xdc($sp)
/* 3421AC E003006C 4616B002 */ mul.s $f0, $f22, $f22
/* 3421B0 E0030070 00000000 */ nop
/* 3421B4 E0030074 4618C082 */ mul.s $f2, $f24, $f24
/* 3421B8 E0030078 00000000 */ nop
/* 3421BC E003007C 461AD102 */ mul.s $f4, $f26, $f26
/* 3421C0 E0030080 00000000 */ nop
/* 3421C4 E0030084 46020000 */ add.s $f0, $f0, $f2
/* 3421C8 E0030088 46040300 */ add.s $f12, $f0, $f4
/* 3421CC E003008C 4480A000 */ mtc1 $zero, $f20
/* 3421D0 E0030090 00000000 */ nop
/* 3421D4 E0030094 46146032 */ c.eq.s $f12, $f20
/* 3421D8 E0030098 00000000 */ nop
/* 3421DC E003009C 45010190 */ bc1t .LE00306E0
/* 3421E0 E00300A0 00000000 */ nop
/* 3421E4 E00300A4 0C080154 */ jal shim_sqrtf
/* 3421E8 E00300A8 00000000 */ nop
/* 3421EC E00300AC 3C01BF80 */ lui $at, 0xbf80
/* 3421F0 E00300B0 44811000 */ mtc1 $at, $f2
/* 3421F4 E00300B4 00000000 */ nop
/* 3421F8 E00300B8 46001303 */ div.s $f12, $f2, $f0
/* 3421FC E00300BC 460CB582 */ mul.s $f22, $f22, $f12
/* 342200 E00300C0 00000000 */ nop
/* 342204 E00300C4 460CC602 */ mul.s $f24, $f24, $f12
/* 342208 E00300C8 00000000 */ nop
/* 34220C E00300CC 460CD682 */ mul.s $f26, $f26, $f12
/* 342210 E00300D0 00000000 */ nop
/* 342214 E00300D4 4614B032 */ c.eq.s $f22, $f20
/* 342218 E00300D8 00000000 */ nop
/* 34221C E00300DC 45010007 */ bc1t .LE00300FC
/* 342220 E00300E0 4600A706 */ mov.s $f28, $f20
/* 342224 E00300E4 4600C007 */ neg.s $f0, $f24
/* 342228 E00300E8 46160783 */ div.s $f30, $f0, $f22
/* 34222C E00300EC 3C013F80 */ lui $at, 0x3f80
/* 342230 E00300F0 44813000 */ mtc1 $at, $f6
/* 342234 E00300F4 0800C04D */ j .LE0030134
/* 342238 E00300F8 E7A60070 */ swc1 $f6, 0x70($sp)
.LE00300FC:
/* 34223C E00300FC 4614C032 */ c.eq.s $f24, $f20
/* 342240 E0030100 00000000 */ nop
/* 342244 E0030104 45010007 */ bc1t .LE0030124
/* 342248 E0030108 4600B007 */ neg.s $f0, $f22
/* 34224C E003010C 46180003 */ div.s $f0, $f0, $f24
/* 342250 E0030110 3C013F80 */ lui $at, 0x3f80
/* 342254 E0030114 4481F000 */ mtc1 $at, $f30
/* 342258 E0030118 4600A706 */ mov.s $f28, $f20
/* 34225C E003011C 0800C04D */ j .LE0030134
/* 342260 E0030120 E7A00070 */ swc1 $f0, 0x70($sp)
.LE0030124:
/* 342264 E0030124 3C013F80 */ lui $at, 0x3f80
/* 342268 E0030128 4481F000 */ mtc1 $at, $f30
/* 34226C E003012C 461A0703 */ div.s $f28, $f0, $f26
/* 342270 E0030130 E7B40070 */ swc1 $f20, 0x70($sp)
.LE0030134:
/* 342274 E0030134 461EF002 */ mul.s $f0, $f30, $f30
/* 342278 E0030138 00000000 */ nop
/* 34227C E003013C 461CE102 */ mul.s $f4, $f28, $f28
/* 342280 E0030140 00000000 */ nop
/* 342284 E0030144 C7A80070 */ lwc1 $f8, 0x70($sp)
/* 342288 E0030148 46004186 */ mov.s $f6, $f8
/* 34228C E003014C 46064082 */ mul.s $f2, $f8, $f6
/* 342290 E0030150 00000000 */ nop
/* 342294 E0030154 46020000 */ add.s $f0, $f0, $f2
/* 342298 E0030158 46040300 */ add.s $f12, $f0, $f4
/* 34229C E003015C 44800000 */ mtc1 $zero, $f0
/* 3422A0 E0030160 00000000 */ nop
/* 3422A4 E0030164 46006032 */ c.eq.s $f12, $f0
/* 3422A8 E0030168 00000000 */ nop
/* 3422AC E003016C 4501015C */ bc1t .LE00306E0
/* 3422B0 E0030170 00000000 */ nop
/* 3422B4 E0030174 0C080154 */ jal shim_sqrtf
/* 3422B8 E0030178 00000000 */ nop
/* 3422BC E003017C 3C013F80 */ lui $at, 0x3f80
/* 3422C0 E0030180 44811000 */ mtc1 $at, $f2
/* 3422C4 E0030184 00000000 */ nop
/* 3422C8 E0030188 46001303 */ div.s $f12, $f2, $f0
/* 3422CC E003018C 460CF782 */ mul.s $f30, $f30, $f12
/* 3422D0 E0030190 00000000 */ nop
/* 3422D4 E0030194 C7A80070 */ lwc1 $f8, 0x70($sp)
/* 3422D8 E0030198 460C4202 */ mul.s $f8, $f8, $f12
/* 3422DC E003019C 00000000 */ nop
/* 3422E0 E00301A0 460CE702 */ mul.s $f28, $f28, $f12
/* 3422E4 E00301A4 00000000 */ nop
/* 3422E8 E00301A8 3C014100 */ lui $at, 0x4100
/* 3422EC E00301AC 44810000 */ mtc1 $at, $f0
/* 3422F0 E00301B0 00000000 */ nop
/* 3422F4 E00301B4 4600B582 */ mul.s $f22, $f22, $f0
/* 3422F8 E00301B8 00000000 */ nop
/* 3422FC E00301BC 4600C602 */ mul.s $f24, $f24, $f0
/* 342300 E00301C0 00000000 */ nop
/* 342304 E00301C4 4600D682 */ mul.s $f26, $f26, $f0
/* 342308 E00301C8 00000000 */ nop
/* 34230C E00301CC 4600F782 */ mul.s $f30, $f30, $f0
/* 342310 E00301D0 00000000 */ nop
/* 342314 E00301D4 0200202D */ daddu $a0, $s0, $zero
/* 342318 E00301D8 3C02E003 */ lui $v0, %hi(damage_stars_init)
/* 34231C E00301DC 24420728 */ addiu $v0, $v0, %lo(damage_stars_init)
/* 342320 E00301E0 AC820008 */ sw $v0, 8($a0)
/* 342324 E00301E4 46004202 */ mul.s $f8, $f8, $f0
/* 342328 E00301E8 00000000 */ nop
/* 34232C E00301EC 3C02E003 */ lui $v0, %hi(damage_stars_update)
/* 342330 E00301F0 24420730 */ addiu $v0, $v0, %lo(damage_stars_update)
/* 342334 E00301F4 AC82000C */ sw $v0, 0xc($a0)
/* 342338 E00301F8 3C02E003 */ lui $v0, %hi(damage_stars_render)
/* 34233C E00301FC 24420A24 */ addiu $v0, $v0, %lo(damage_stars_render)
/* 342340 E0030200 AC800000 */ sw $zero, ($a0)
/* 342344 E0030204 4600E702 */ mul.s $f28, $f28, $f0
/* 342348 E0030208 00000000 */ nop
/* 34234C E003020C E7A80070 */ swc1 $f8, 0x70($sp)
/* 342350 E0030210 AC820010 */ sw $v0, 0x10($a0)
/* 342354 E0030214 24020018 */ addiu $v0, $zero, 0x18
/* 342358 E0030218 AC800014 */ sw $zero, 0x14($a0)
/* 34235C E003021C 0C080124 */ jal shim_create_effect_instance
/* 342360 E0030220 AC820004 */ sw $v0, 4($a0)
/* 342364 E0030224 8FA800EC */ lw $t0, 0xec($sp)
/* 342368 E0030228 0040802D */ daddu $s0, $v0, $zero
/* 34236C E003022C 00082040 */ sll $a0, $t0, 1
/* 342370 E0030230 00882021 */ addu $a0, $a0, $t0
/* 342374 E0030234 00042100 */ sll $a0, $a0, 4
/* 342378 E0030238 0C08012C */ jal shim_general_heap_malloc
/* 34237C E003023C AE080008 */ sw $t0, 8($s0)
/* 342380 E0030240 0040982D */ daddu $s3, $v0, $zero
/* 342384 E0030244 16600003 */ bnez $s3, .LE0030254
/* 342388 E0030248 AE13000C */ sw $s3, 0xc($s0)
.LE003024C:
/* 34238C E003024C 0800C093 */ j .LE003024C
/* 342390 E0030250 00000000 */ nop
.LE0030254:
/* 342394 E0030254 8FA800EC */ lw $t0, 0xec($sp)
/* 342398 E0030258 19000112 */ blez $t0, .LE00306A4
/* 34239C E003025C 0000902D */ daddu $s2, $zero, $zero
/* 3423A0 E0030260 2511FFFF */ addiu $s1, $t0, -1
/* 3423A4 E0030264 3C1E800B */ lui $fp, %hi(gCameras)
/* 3423A8 E0030268 27DE1D80 */ addiu $fp, $fp, %lo(gCameras)
/* 3423AC E003026C 3C178007 */ lui $s7, %hi(gCurrentCameraID)
/* 3423B0 E0030270 26F77410 */ addiu $s7, $s7, %lo(gCurrentCameraID)
/* 3423B4 E0030274 27A80030 */ addiu $t0, $sp, 0x30
/* 3423B8 E0030278 AFA80074 */ sw $t0, 0x74($sp)
/* 3423BC E003027C 26700024 */ addiu $s0, $s3, 0x24
/* 3423C0 E0030280 0240A82D */ daddu $s5, $s2, $zero
/* 3423C4 E0030284 0240A02D */ daddu $s4, $s2, $zero
.LE0030288:
/* 3423C8 E0030288 AE760000 */ sw $s6, ($s3)
/* 3423CC E003028C C7A600D4 */ lwc1 $f6, 0xd4($sp)
/* 3423D0 E0030290 E606FFE0 */ swc1 $f6, -0x20($s0)
/* 3423D4 E0030294 C7A800D8 */ lwc1 $f8, 0xd8($sp)
/* 3423D8 E0030298 E608FFE4 */ swc1 $f8, -0x1c($s0)
/* 3423DC E003029C C7A600DC */ lwc1 $f6, 0xdc($sp)
/* 3423E0 E00302A0 24020003 */ addiu $v0, $zero, 3
/* 3423E4 E00302A4 12C20042 */ beq $s6, $v0, .LE00303B0
/* 3423E8 E00302A8 E606FFE8 */ swc1 $f6, -0x18($s0)
/* 3423EC E00302AC 2AC20004 */ slti $v0, $s6, 4
/* 3423F0 E00302B0 14400005 */ bnez $v0, .LE00302C8
/* 3423F4 E00302B4 24020004 */ addiu $v0, $zero, 4
/* 3423F8 E00302B8 12C2006E */ beq $s6, $v0, .LE0030474
/* 3423FC E00302BC 2EC20005 */ sltiu $v0, $s6, 5
/* 342400 E00302C0 0800C16C */ j .LE00305B0
/* 342404 E00302C4 00000000 */ nop
.LE00302C8:
/* 342408 E00302C8 06C000B8 */ bltz $s6, .LE00305AC
/* 34240C E00302CC 27A40030 */ addiu $a0, $sp, 0x30
/* 342410 E00302D0 16200002 */ bnez $s1, .LE00302DC
/* 342414 E00302D4 0291001A */ div $zero, $s4, $s1
/* 342418 E00302D8 0007000D */ break 7
.LE00302DC:
/* 34241C E00302DC 2401FFFF */ addiu $at, $zero, -1
/* 342420 E00302E0 16210004 */ bne $s1, $at, .LE00302F4
/* 342424 E00302E4 3C018000 */ lui $at, 0x8000
/* 342428 E00302E8 16810002 */ bne $s4, $at, .LE00302F4
/* 34242C E00302EC 00000000 */ nop
/* 342430 E00302F0 0006000D */ break 6
.LE00302F4:
/* 342434 E00302F4 00001812 */ mflo $v1
/* 342438 E00302F8 4406B000 */ mfc1 $a2, $f22
/* 34243C E00302FC 4407C000 */ mfc1 $a3, $f24
/* 342440 E0030300 44833000 */ mtc1 $v1, $f6
/* 342444 E0030304 00000000 */ nop
/* 342448 E0030308 468031A0 */ cvt.s.w $f6, $f6
/* 34244C E003030C 44053000 */ mfc1 $a1, $f6
/* 342450 E0030310 0C080104 */ jal shim_guRotateF
/* 342454 E0030314 E7BA0010 */ swc1 $f26, 0x10($sp)
/* 342458 E0030318 C7A00030 */ lwc1 $f0, 0x30($sp)
/* 34245C E003031C 461E0002 */ mul.s $f0, $f0, $f30
/* 342460 E0030320 00000000 */ nop
/* 342464 E0030324 C7A40040 */ lwc1 $f4, 0x40($sp)
/* 342468 E0030328 C7A80070 */ lwc1 $f8, 0x70($sp)
/* 34246C E003032C 46082102 */ mul.s $f4, $f4, $f8
/* 342470 E0030330 00000000 */ nop
/* 342474 E0030334 C7A20050 */ lwc1 $f2, 0x50($sp)
/* 342478 E0030338 461C1082 */ mul.s $f2, $f2, $f28
/* 34247C E003033C 00000000 */ nop
/* 342480 E0030340 4600B000 */ add.s $f0, $f22, $f0
/* 342484 E0030344 46040000 */ add.s $f0, $f0, $f4
/* 342488 E0030348 46020000 */ add.s $f0, $f0, $f2
/* 34248C E003034C E600FFEC */ swc1 $f0, -0x14($s0)
/* 342490 E0030350 C7A00034 */ lwc1 $f0, 0x34($sp)
/* 342494 E0030354 461E0002 */ mul.s $f0, $f0, $f30
/* 342498 E0030358 00000000 */ nop
/* 34249C E003035C C7A40044 */ lwc1 $f4, 0x44($sp)
/* 3424A0 E0030360 46082102 */ mul.s $f4, $f4, $f8
/* 3424A4 E0030364 00000000 */ nop
/* 3424A8 E0030368 C7A20054 */ lwc1 $f2, 0x54($sp)
/* 3424AC E003036C 461C1082 */ mul.s $f2, $f2, $f28
/* 3424B0 E0030370 00000000 */ nop
/* 3424B4 E0030374 4600C000 */ add.s $f0, $f24, $f0
/* 3424B8 E0030378 46040000 */ add.s $f0, $f0, $f4
/* 3424BC E003037C 46020000 */ add.s $f0, $f0, $f2
/* 3424C0 E0030380 E600FFF0 */ swc1 $f0, -0x10($s0)
/* 3424C4 E0030384 C7A00038 */ lwc1 $f0, 0x38($sp)
/* 3424C8 E0030388 461E0002 */ mul.s $f0, $f0, $f30
/* 3424CC E003038C 00000000 */ nop
/* 3424D0 E0030390 C7A40048 */ lwc1 $f4, 0x48($sp)
/* 3424D4 E0030394 46082102 */ mul.s $f4, $f4, $f8
/* 3424D8 E0030398 00000000 */ nop
/* 3424DC E003039C C7A20058 */ lwc1 $f2, 0x58($sp)
/* 3424E0 E00303A0 461C1082 */ mul.s $f2, $f2, $f28
/* 3424E4 E00303A4 00000000 */ nop
/* 3424E8 E00303A8 0800C168 */ j .LE00305A0
/* 3424EC E00303AC 4600D000 */ add.s $f0, $f26, $f0
.LE00303B0:
/* 3424F0 E00303B0 8EE30000 */ lw $v1, ($s7)
/* 3424F4 E00303B4 00031080 */ sll $v0, $v1, 2
/* 3424F8 E00303B8 00431021 */ addu $v0, $v0, $v1
/* 3424FC E00303BC 00021080 */ sll $v0, $v0, 2
/* 342500 E00303C0 00431023 */ subu $v0, $v0, $v1
/* 342504 E00303C4 000218C0 */ sll $v1, $v0, 3
/* 342508 E00303C8 00431021 */ addu $v0, $v0, $v1
/* 34250C E00303CC 000210C0 */ sll $v0, $v0, 3
/* 342510 E00303D0 005E1021 */ addu $v0, $v0, $fp
/* 342514 E00303D4 0C080140 */ jal shim_sin_deg
/* 342518 E00303D8 C44C006C */ lwc1 $f12, 0x6c($v0)
/* 34251C E00303DC 8EE30000 */ lw $v1, ($s7)
/* 342520 E00303E0 00031080 */ sll $v0, $v1, 2
/* 342524 E00303E4 00431021 */ addu $v0, $v0, $v1
/* 342528 E00303E8 00021080 */ sll $v0, $v0, 2
/* 34252C E00303EC 00431023 */ subu $v0, $v0, $v1
/* 342530 E00303F0 000218C0 */ sll $v1, $v0, 3
/* 342534 E00303F4 00431021 */ addu $v0, $v0, $v1
/* 342538 E00303F8 000210C0 */ sll $v0, $v0, 3
/* 34253C E00303FC 005E1021 */ addu $v0, $v0, $fp
/* 342540 E0030400 C44C006C */ lwc1 $f12, 0x6c($v0)
/* 342544 E0030404 0C080144 */ jal shim_cos_deg
/* 342548 E0030408 46000506 */ mov.s $f20, $f0
/* 34254C E003040C 24020001 */ addiu $v0, $zero, 1
/* 342550 E0030410 8FA800EC */ lw $t0, 0xec($sp)
/* 342554 E0030414 11020010 */ beq $t0, $v0, .LE0030458
/* 342558 E0030418 46000007 */ neg.s $f0, $f0
/* 34255C E003041C 16200002 */ bnez $s1, .LE0030428
/* 342560 E0030420 02B1001A */ div $zero, $s5, $s1
/* 342564 E0030424 0007000D */ break 7
.LE0030428:
/* 342568 E0030428 2401FFFF */ addiu $at, $zero, -1
/* 34256C E003042C 16210004 */ bne $s1, $at, .LE0030440
/* 342570 E0030430 3C018000 */ lui $at, 0x8000
/* 342574 E0030434 16A10002 */ bne $s5, $at, .LE0030440
/* 342578 E0030438 00000000 */ nop
/* 34257C E003043C 0006000D */ break 6
.LE0030440:
/* 342580 E0030440 00001012 */ mflo $v0
/* 342584 E0030444 2442FFCE */ addiu $v0, $v0, -0x32
/* 342588 E0030448 44821000 */ mtc1 $v0, $f2
/* 34258C E003044C 00000000 */ nop
/* 342590 E0030450 0800C117 */ j .LE003045C
/* 342594 E0030454 468010A0 */ cvt.s.w $f2, $f2
.LE0030458:
/* 342598 E0030458 44801000 */ mtc1 $zero, $f2
.LE003045C:
/* 34259C E003045C 8FA40074 */ lw $a0, 0x74($sp)
/* 3425A0 E0030460 44051000 */ mfc1 $a1, $f2
/* 3425A4 E0030464 4406A000 */ mfc1 $a2, $f20
/* 3425A8 E0030468 0000382D */ daddu $a3, $zero, $zero
/* 3425AC E003046C 0800C145 */ j .LE0030514
/* 3425B0 E0030470 E7A00010 */ swc1 $f0, 0x10($sp)
.LE0030474:
/* 3425B4 E0030474 8EE30000 */ lw $v1, ($s7)
/* 3425B8 E0030478 00031080 */ sll $v0, $v1, 2
/* 3425BC E003047C 00431021 */ addu $v0, $v0, $v1
/* 3425C0 E0030480 00021080 */ sll $v0, $v0, 2
/* 3425C4 E0030484 00431023 */ subu $v0, $v0, $v1
/* 3425C8 E0030488 000218C0 */ sll $v1, $v0, 3
/* 3425CC E003048C 00431021 */ addu $v0, $v0, $v1
/* 3425D0 E0030490 000210C0 */ sll $v0, $v0, 3
/* 3425D4 E0030494 005E1021 */ addu $v0, $v0, $fp
/* 3425D8 E0030498 0C080140 */ jal shim_sin_deg
/* 3425DC E003049C C44C006C */ lwc1 $f12, 0x6c($v0)
/* 3425E0 E00304A0 8EE30000 */ lw $v1, ($s7)
/* 3425E4 E00304A4 00031080 */ sll $v0, $v1, 2
/* 3425E8 E00304A8 00431021 */ addu $v0, $v0, $v1
/* 3425EC E00304AC 00021080 */ sll $v0, $v0, 2
/* 3425F0 E00304B0 00431023 */ subu $v0, $v0, $v1
/* 3425F4 E00304B4 000218C0 */ sll $v1, $v0, 3
/* 3425F8 E00304B8 00431021 */ addu $v0, $v0, $v1
/* 3425FC E00304BC 000210C0 */ sll $v0, $v0, 3
/* 342600 E00304C0 005E1021 */ addu $v0, $v0, $fp
/* 342604 E00304C4 C44C006C */ lwc1 $f12, 0x6c($v0)
/* 342608 E00304C8 0C080144 */ jal shim_cos_deg
/* 34260C E00304CC 46000506 */ mov.s $f20, $f0
/* 342610 E00304D0 3C0143B4 */ lui $at, 0x43b4
/* 342614 E00304D4 44811000 */ mtc1 $at, $f2
/* 342618 E00304D8 44922000 */ mtc1 $s2, $f4
/* 34261C E00304DC 00000000 */ nop
/* 342620 E00304E0 46802120 */ cvt.s.w $f4, $f4
/* 342624 E00304E4 46022102 */ mul.s $f4, $f4, $f2
/* 342628 E00304E8 00000000 */ nop
/* 34262C E00304EC 27A40030 */ addiu $a0, $sp, 0x30
/* 342630 E00304F0 46000007 */ neg.s $f0, $f0
/* 342634 E00304F4 E7A00010 */ swc1 $f0, 0x10($sp)
/* 342638 E00304F8 44910000 */ mtc1 $s1, $f0
/* 34263C E00304FC 00000000 */ nop
/* 342640 E0030500 46800020 */ cvt.s.w $f0, $f0
/* 342644 E0030504 4406A000 */ mfc1 $a2, $f20
/* 342648 E0030508 46002103 */ div.s $f4, $f4, $f0
/* 34264C E003050C 44052000 */ mfc1 $a1, $f4
/* 342650 E0030510 0000382D */ daddu $a3, $zero, $zero
.LE0030514:
/* 342654 E0030514 0C080104 */ jal shim_guRotateF
/* 342658 E0030518 00000000 */ nop
/* 34265C E003051C C7A00030 */ lwc1 $f0, 0x30($sp)
/* 342660 E0030520 46160002 */ mul.s $f0, $f0, $f22
/* 342664 E0030524 00000000 */ nop
/* 342668 E0030528 C7A40040 */ lwc1 $f4, 0x40($sp)
/* 34266C E003052C 46182102 */ mul.s $f4, $f4, $f24
/* 342670 E0030530 00000000 */ nop
/* 342674 E0030534 C7A20050 */ lwc1 $f2, 0x50($sp)
/* 342678 E0030538 461A1082 */ mul.s $f2, $f2, $f26
/* 34267C E003053C 00000000 */ nop
/* 342680 E0030540 46040000 */ add.s $f0, $f0, $f4
/* 342684 E0030544 46020000 */ add.s $f0, $f0, $f2
/* 342688 E0030548 E600FFEC */ swc1 $f0, -0x14($s0)
/* 34268C E003054C C7A00034 */ lwc1 $f0, 0x34($sp)
/* 342690 E0030550 46160002 */ mul.s $f0, $f0, $f22
/* 342694 E0030554 00000000 */ nop
/* 342698 E0030558 C7A40044 */ lwc1 $f4, 0x44($sp)
/* 34269C E003055C 46182102 */ mul.s $f4, $f4, $f24
/* 3426A0 E0030560 00000000 */ nop
/* 3426A4 E0030564 C7A20054 */ lwc1 $f2, 0x54($sp)
/* 3426A8 E0030568 461A1082 */ mul.s $f2, $f2, $f26
/* 3426AC E003056C 00000000 */ nop
/* 3426B0 E0030570 46040000 */ add.s $f0, $f0, $f4
/* 3426B4 E0030574 46020000 */ add.s $f0, $f0, $f2
/* 3426B8 E0030578 E600FFF0 */ swc1 $f0, -0x10($s0)
/* 3426BC E003057C C7A00038 */ lwc1 $f0, 0x38($sp)
/* 3426C0 E0030580 46160002 */ mul.s $f0, $f0, $f22
/* 3426C4 E0030584 00000000 */ nop
/* 3426C8 E0030588 C7A40048 */ lwc1 $f4, 0x48($sp)
/* 3426CC E003058C 46182102 */ mul.s $f4, $f4, $f24
/* 3426D0 E0030590 00000000 */ nop
/* 3426D4 E0030594 C7A20058 */ lwc1 $f2, 0x58($sp)
/* 3426D8 E0030598 461A1082 */ mul.s $f2, $f2, $f26
/* 3426DC E003059C 00000000 */ nop
.LE00305A0:
/* 3426E0 E00305A0 46040000 */ add.s $f0, $f0, $f4
/* 3426E4 E00305A4 46020000 */ add.s $f0, $f0, $f2
/* 3426E8 E00305A8 E600FFF4 */ swc1 $f0, -0xc($s0)
.LE00305AC:
/* 3426EC E00305AC 2EC20005 */ sltiu $v0, $s6, 5
.LE00305B0:
/* 3426F0 E00305B0 10400030 */ beqz $v0, .LE0030674
/* 3426F4 E00305B4 00161080 */ sll $v0, $s6, 2
/* 3426F8 E00305B8 3C08E003 */ lui $t0, %hi(D_E0030EC0)
/* 3426FC E00305BC 25080EC0 */ addiu $t0, $t0, %lo(D_E0030EC0)
/* 342700 E00305C0 00481021 */ addu $v0, $v0, $t0
/* 342704 E00305C4 8C420000 */ lw $v0, ($v0)
/* 342708 E00305C8 00400008 */ jr $v0
/* 34270C E00305CC 00000000 */ nop
/* 342710 E00305D0 24080018 */ addiu $t0, $zero, 0x18
/* 342714 E00305D4 0800C19C */ j .LE0030670
/* 342718 E00305D8 AE00FFFC */ sw $zero, -4($s0)
/* 34271C E00305DC 3C0141A0 */ lui $at, 0x41a0
/* 342720 E00305E0 44813000 */ mtc1 $at, $f6
/* 342724 E00305E4 24080018 */ addiu $t0, $zero, 0x18
/* 342728 E00305E8 AE080004 */ sw $t0, 4($s0)
/* 34272C E00305EC 0800C19D */ j .LE0030674
/* 342730 E00305F0 E606FFFC */ swc1 $f6, -4($s0)
/* 342734 E00305F4 C604FFEC */ lwc1 $f4, -0x14($s0)
/* 342738 E00305F8 3C013FE0 */ lui $at, 0x3fe0
/* 34273C E00305FC 44813800 */ mtc1 $at, $f7
/* 342740 E0030600 44803000 */ mtc1 $zero, $f6
/* 342744 E0030604 46002121 */ cvt.d.s $f4, $f4
/* 342748 E0030608 46262102 */ mul.d $f4, $f4, $f6
/* 34274C E003060C 00000000 */ nop
/* 342750 E0030610 C602FFF0 */ lwc1 $f2, -0x10($s0)
/* 342754 E0030614 460010A1 */ cvt.d.s $f2, $f2
/* 342758 E0030618 46261082 */ mul.d $f2, $f2, $f6
/* 34275C E003061C 00000000 */ nop
/* 342760 E0030620 C600FFF4 */ lwc1 $f0, -0xc($s0)
/* 342764 E0030624 46000021 */ cvt.d.s $f0, $f0
/* 342768 E0030628 46260002 */ mul.d $f0, $f0, $f6
/* 34276C E003062C 00000000 */ nop
/* 342770 E0030630 3C0141A0 */ lui $at, 0x41a0
/* 342774 E0030634 44814000 */ mtc1 $at, $f8
/* 342778 E0030638 24020028 */ addiu $v0, $zero, 0x28
/* 34277C E003063C AE020004 */ sw $v0, 4($s0)
/* 342780 E0030640 E608FFFC */ swc1 $f8, -4($s0)
/* 342784 E0030644 46202120 */ cvt.s.d $f4, $f4
/* 342788 E0030648 462010A0 */ cvt.s.d $f2, $f2
/* 34278C E003064C 46200020 */ cvt.s.d $f0, $f0
/* 342790 E0030650 E604FFEC */ swc1 $f4, -0x14($s0)
/* 342794 E0030654 E602FFF0 */ swc1 $f2, -0x10($s0)
/* 342798 E0030658 0800C19D */ j .LE0030674
/* 34279C E003065C E600FFF4 */ swc1 $f0, -0xc($s0)
/* 3427A0 E0030660 3C0141A0 */ lui $at, 0x41a0
/* 3427A4 E0030664 44813000 */ mtc1 $at, $f6
/* 3427A8 E0030668 24080018 */ addiu $t0, $zero, 0x18
/* 3427AC E003066C E606FFFC */ swc1 $f6, -4($s0)
.LE0030670:
/* 3427B0 E0030670 AE080004 */ sw $t0, 4($s0)
.LE0030674:
/* 3427B4 E0030674 26B50064 */ addiu $s5, $s5, 0x64
/* 3427B8 E0030678 26940168 */ addiu $s4, $s4, 0x168
/* 3427BC E003067C 26520001 */ addiu $s2, $s2, 1
/* 3427C0 E0030680 240200FF */ addiu $v0, $zero, 0xff
/* 3427C4 E0030684 AE00FFF8 */ sw $zero, -8($s0)
/* 3427C8 E0030688 AE000008 */ sw $zero, 8($s0)
/* 3427CC E003068C AE020000 */ sw $v0, ($s0)
/* 3427D0 E0030690 26100030 */ addiu $s0, $s0, 0x30
/* 3427D4 E0030694 8FA800EC */ lw $t0, 0xec($sp)
/* 3427D8 E0030698 0248102A */ slt $v0, $s2, $t0
/* 3427DC E003069C 1440FEFA */ bnez $v0, .LE0030288
/* 3427E0 E00306A0 26730030 */ addiu $s3, $s3, 0x30
.LE00306A4:
/* 3427E4 E00306A4 3C02E003 */ lui $v0, %hi(D_E0030EB4)
/* 3427E8 E00306A8 24420EB4 */ addiu $v0, $v0, %lo(D_E0030EB4)
/* 3427EC E00306AC C4400000 */ lwc1 $f0, ($v0)
/* 3427F0 E00306B0 3C014170 */ lui $at, 0x4170
/* 3427F4 E00306B4 44811000 */ mtc1 $at, $f2
/* 3427F8 E00306B8 00000000 */ nop
/* 3427FC E00306BC 46020000 */ add.s $f0, $f0, $f2
/* 342800 E00306C0 3C0143B4 */ lui $at, 0x43b4
/* 342804 E00306C4 44811000 */ mtc1 $at, $f2
/* 342808 E00306C8 00000000 */ nop
/* 34280C E00306CC 4600103C */ c.lt.s $f2, $f0
/* 342810 E00306D0 00000000 */ nop
/* 342814 E00306D4 45000002 */ bc1f .LE00306E0
/* 342818 E00306D8 E4400000 */ swc1 $f0, ($v0)
/* 34281C E00306DC AC400000 */ sw $zero, ($v0)
.LE00306E0:
/* 342820 E00306E0 8FBF009C */ lw $ra, 0x9c($sp)
/* 342824 E00306E4 8FBE0098 */ lw $fp, 0x98($sp)
/* 342828 E00306E8 8FB70094 */ lw $s7, 0x94($sp)
/* 34282C E00306EC 8FB60090 */ lw $s6, 0x90($sp)
/* 342830 E00306F0 8FB5008C */ lw $s5, 0x8c($sp)
/* 342834 E00306F4 8FB40088 */ lw $s4, 0x88($sp)
/* 342838 E00306F8 8FB30084 */ lw $s3, 0x84($sp)
/* 34283C E00306FC 8FB20080 */ lw $s2, 0x80($sp)
/* 342840 E0030700 8FB1007C */ lw $s1, 0x7c($sp)
/* 342844 E0030704 8FB00078 */ lw $s0, 0x78($sp)
/* 342848 E0030708 D7BE00C8 */ ldc1 $f30, 0xc8($sp)
/* 34284C E003070C D7BC00C0 */ ldc1 $f28, 0xc0($sp)
/* 342850 E0030710 D7BA00B8 */ ldc1 $f26, 0xb8($sp)
/* 342854 E0030714 D7B800B0 */ ldc1 $f24, 0xb0($sp)
/* 342858 E0030718 D7B600A8 */ ldc1 $f22, 0xa8($sp)
/* 34285C E003071C D7B400A0 */ ldc1 $f20, 0xa0($sp)
/* 342860 E0030720 03E00008 */ jr $ra
/* 342864 E0030724 27BD00D0 */ addiu $sp, $sp, 0xd0

View File

@ -1,279 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E008CB20
.double 1.2
dlabel D_E008CB28
.word 0xE008C180, 0xE008C1CC, 0xE008C180, 0xE008C1CC, 0xE008C180, 0xE008C1CC, 0xE008C180, 0xE008C1CC
dlabel D_E008CB48
.word 0xE008C34C, 0xE008C34C, 0xE008C354, 0xE008C354, 0xE008C35C, 0xE008C35C
.section .text
glabel fx_46_main
/* 38DE00 E008C000 27BDFF90 */ addiu $sp, $sp, -0x70
/* 38DE04 E008C004 AFB00038 */ sw $s0, 0x38($sp)
/* 38DE08 E008C008 00E0802D */ daddu $s0, $a3, $zero
/* 38DE0C E008C00C AFA40070 */ sw $a0, 0x70($sp)
/* 38DE10 E008C010 27A40010 */ addiu $a0, $sp, 0x10
/* 38DE14 E008C014 F7B40060 */ sdc1 $f20, 0x60($sp)
/* 38DE18 E008C018 4486A000 */ mtc1 $a2, $f20
/* 38DE1C E008C01C 3C02E009 */ lui $v0, %hi(fx_46_init)
/* 38DE20 E008C020 2442C3F4 */ addiu $v0, $v0, %lo(fx_46_init)
/* 38DE24 E008C024 AFA20018 */ sw $v0, 0x18($sp)
/* 38DE28 E008C028 3C02E009 */ lui $v0, %hi(fx_46_update)
/* 38DE2C E008C02C 2442C3FC */ addiu $v0, $v0, %lo(fx_46_update)
/* 38DE30 E008C030 AFA2001C */ sw $v0, 0x1c($sp)
/* 38DE34 E008C034 3C02E009 */ lui $v0, %hi(fx_46_render)
/* 38DE38 E008C038 2442C6B8 */ addiu $v0, $v0, %lo(fx_46_render)
/* 38DE3C E008C03C AFA20020 */ sw $v0, 0x20($sp)
/* 38DE40 E008C040 24020046 */ addiu $v0, $zero, 0x46
/* 38DE44 E008C044 AFBF005C */ sw $ra, 0x5c($sp)
/* 38DE48 E008C048 AFBE0058 */ sw $fp, 0x58($sp)
/* 38DE4C E008C04C AFB70054 */ sw $s7, 0x54($sp)
/* 38DE50 E008C050 AFB60050 */ sw $s6, 0x50($sp)
/* 38DE54 E008C054 AFB5004C */ sw $s5, 0x4c($sp)
/* 38DE58 E008C058 AFB40048 */ sw $s4, 0x48($sp)
/* 38DE5C E008C05C AFB30044 */ sw $s3, 0x44($sp)
/* 38DE60 E008C060 AFB20040 */ sw $s2, 0x40($sp)
/* 38DE64 E008C064 AFB1003C */ sw $s1, 0x3c($sp)
/* 38DE68 E008C068 F7B60068 */ sdc1 $f22, 0x68($sp)
/* 38DE6C E008C06C AFA50074 */ sw $a1, 0x74($sp)
/* 38DE70 E008C070 AFA00010 */ sw $zero, 0x10($sp)
/* 38DE74 E008C074 AFA00024 */ sw $zero, 0x24($sp)
/* 38DE78 E008C078 0C080124 */ jal shim_create_effect_instance
/* 38DE7C E008C07C AFA20014 */ sw $v0, 0x14($sp)
/* 38DE80 E008C080 24040168 */ addiu $a0, $zero, 0x168
/* 38DE84 E008C084 AFA20028 */ sw $v0, 0x28($sp)
/* 38DE88 E008C088 24080005 */ addiu $t0, $zero, 5
/* 38DE8C E008C08C 0C08012C */ jal shim_general_heap_malloc
/* 38DE90 E008C090 AC480008 */ sw $t0, 8($v0)
/* 38DE94 E008C094 8FA90028 */ lw $t1, 0x28($sp)
/* 38DE98 E008C098 0040202D */ daddu $a0, $v0, $zero
/* 38DE9C E008C09C 14800003 */ bnez $a0, .LE008C0AC
/* 38DEA0 E008C0A0 AD24000C */ sw $a0, 0xc($t1)
.LE008C0A4:
/* 38DEA4 E008C0A4 08023029 */ j .LE008C0A4
/* 38DEA8 E008C0A8 00000000 */ nop
.LE008C0AC:
/* 38DEAC E008C0AC 4600A0A1 */ cvt.d.s $f2, $f20
/* 38DEB0 E008C0B0 24110001 */ addiu $s1, $zero, 1
/* 38DEB4 E008C0B4 3C01E009 */ lui $at, %hi(D_E008CB20)
/* 38DEB8 E008C0B8 D420CB20 */ ldc1 $f0, %lo(D_E008CB20)($at)
/* 38DEBC E008C0BC 8FA80070 */ lw $t0, 0x70($sp)
/* 38DEC0 E008C0C0 46201082 */ mul.d $f2, $f2, $f0
/* 38DEC4 E008C0C4 00000000 */ nop
/* 38DEC8 E008C0C8 AC880000 */ sw $t0, ($a0)
/* 38DECC E008C0CC 8FA90074 */ lw $t1, 0x74($sp)
/* 38DED0 E008C0D0 2A220005 */ slti $v0, $s1, 5
/* 38DED4 E008C0D4 AC900020 */ sw $s0, 0x20($a0)
/* 38DED8 E008C0D8 AC900024 */ sw $s0, 0x24($a0)
/* 38DEDC E008C0DC AC80001C */ sw $zero, 0x1c($a0)
/* 38DEE0 E008C0E0 AC800028 */ sw $zero, 0x28($a0)
/* 38DEE4 E008C0E4 AC890004 */ sw $t1, 4($a0)
/* 38DEE8 E008C0E8 462010A0 */ cvt.s.d $f2, $f2
/* 38DEEC E008C0EC E4820014 */ swc1 $f2, 0x14($a0)
/* 38DEF0 E008C0F0 E4820018 */ swc1 $f2, 0x18($a0)
/* 38DEF4 E008C0F4 104000B0 */ beqz $v0, .LE008C3B8
/* 38DEF8 E008C0F8 24840048 */ addiu $a0, $a0, 0x48
/* 38DEFC E008C0FC 3C03E009 */ lui $v1, %hi(D_E008CB28)
/* 38DF00 E008C100 2463CB28 */ addiu $v1, $v1, %lo(D_E008CB28)
/* 38DF04 E008C104 00081080 */ sll $v0, $t0, 2
/* 38DF08 E008C108 00431021 */ addu $v0, $v0, $v1
/* 38DF0C E008C10C 24080005 */ addiu $t0, $zero, 5
/* 38DF10 E008C110 2517FFFF */ addiu $s7, $t0, -1
/* 38DF14 E008C114 3C03E009 */ lui $v1, %hi(D_E008CB48)
/* 38DF18 E008C118 2463CB48 */ addiu $v1, $v1, %lo(D_E008CB48)
/* 38DF1C E008C11C 24900046 */ addiu $s0, $a0, 0x46
/* 38DF20 E008C120 24160026 */ addiu $s6, $zero, 0x26
/* 38DF24 E008C124 0000A02D */ daddu $s4, $zero, $zero
/* 38DF28 E008C128 24150019 */ addiu $s5, $zero, 0x19
/* 38DF2C E008C12C 24130078 */ addiu $s3, $zero, 0x78
/* 38DF30 E008C130 8FA90070 */ lw $t1, 0x70($sp)
/* 38DF34 E008C134 3C013F80 */ lui $at, 0x3f80
/* 38DF38 E008C138 4481B000 */ mtc1 $at, $f22
/* 38DF3C E008C13C 3C013FE0 */ lui $at, 0x3fe0
/* 38DF40 E008C140 4481A800 */ mtc1 $at, $f21
/* 38DF44 E008C144 4480A000 */ mtc1 $zero, $f20
/* 38DF48 E008C148 2412000B */ addiu $s2, $zero, 0xb
/* 38DF4C E008C14C AFA2002C */ sw $v0, 0x2c($sp)
/* 38DF50 E008C150 253EFFFE */ addiu $fp, $t1, -2
/* 38DF54 E008C154 001E1080 */ sll $v0, $fp, 2
/* 38DF58 E008C158 00431021 */ addu $v0, $v0, $v1
/* 38DF5C E008C15C AFA20030 */ sw $v0, 0x30($sp)
.LE008C160:
/* 38DF60 E008C160 8FA80070 */ lw $t0, 0x70($sp)
/* 38DF64 E008C164 2D020008 */ sltiu $v0, $t0, 8
/* 38DF68 E008C168 50400030 */ beql $v0, $zero, .LE008C22C
/* 38DF6C E008C16C AE00FFC2 */ sw $zero, -0x3e($s0)
/* 38DF70 E008C170 8FA9002C */ lw $t1, 0x2c($sp)
/* 38DF74 E008C174 8D220000 */ lw $v0, ($t1)
/* 38DF78 E008C178 00400008 */ jr $v0
/* 38DF7C E008C17C 00000000 */ nop
/* 38DF80 E008C180 3C014270 */ lui $at, 0x4270
/* 38DF84 E008C184 44811000 */ mtc1 $at, $f2
/* 38DF88 E008C188 44920000 */ mtc1 $s2, $f0
/* 38DF8C E008C18C 00000000 */ nop
/* 38DF90 E008C190 46800020 */ cvt.s.w $f0, $f0
/* 38DF94 E008C194 E600FFC6 */ swc1 $f0, -0x3a($s0)
/* 38DF98 E008C198 44930000 */ mtc1 $s3, $f0
/* 38DF9C E008C19C 00000000 */ nop
/* 38DFA0 E008C1A0 46800020 */ cvt.s.w $f0, $f0
/* 38DFA4 E008C1A4 AE00FFC2 */ sw $zero, -0x3e($s0)
/* 38DFA8 E008C1A8 AE00FFCA */ sw $zero, -0x36($s0)
/* 38DFAC E008C1AC AE00FFF2 */ sw $zero, -0xe($s0)
/* 38DFB0 E008C1B0 AE00FFFA */ sw $zero, -6($s0)
/* 38DFB4 E008C1B4 AE00FFE6 */ sw $zero, -0x1a($s0)
/* 38DFB8 E008C1B8 E600FFEA */ swc1 $f0, -0x16($s0)
/* 38DFBC E008C1BC AE00FFEE */ sw $zero, -0x12($s0)
/* 38DFC0 E008C1C0 E616FFCE */ swc1 $f22, -0x32($s0)
/* 38DFC4 E008C1C4 080230CC */ j .LE008C330
/* 38DFC8 E008C1C8 E602FFF6 */ swc1 $f2, -0xa($s0)
/* 38DFCC E008C1CC 44920000 */ mtc1 $s2, $f0
/* 38DFD0 E008C1D0 00000000 */ nop
/* 38DFD4 E008C1D4 46800020 */ cvt.s.w $f0, $f0
/* 38DFD8 E008C1D8 E600FFC6 */ swc1 $f0, -0x3a($s0)
/* 38DFDC E008C1DC 44930000 */ mtc1 $s3, $f0
/* 38DFE0 E008C1E0 00000000 */ nop
/* 38DFE4 E008C1E4 46800020 */ cvt.s.w $f0, $f0
/* 38DFE8 E008C1E8 240800FF */ addiu $t0, $zero, 0xff
/* 38DFEC E008C1EC 3C01C270 */ lui $at, 0xc270
/* 38DFF0 E008C1F0 44811000 */ mtc1 $at, $f2
/* 38DFF4 E008C1F4 0100482D */ daddu $t1, $t0, $zero
/* 38DFF8 E008C1F8 AE00FFC2 */ sw $zero, -0x3e($s0)
/* 38DFFC E008C1FC AE00FFCA */ sw $zero, -0x36($s0)
/* 38E000 E008C200 AE00FFF2 */ sw $zero, -0xe($s0)
/* 38E004 E008C204 AE00FFFA */ sw $zero, -6($s0)
/* 38E008 E008C208 AE00FFE6 */ sw $zero, -0x1a($s0)
/* 38E00C E008C20C E600FFEA */ swc1 $f0, -0x16($s0)
/* 38E010 E008C210 AE00FFEE */ sw $zero, -0x12($s0)
/* 38E014 E008C214 E616FFCE */ swc1 $f22, -0x32($s0)
/* 38E018 E008C218 A2080000 */ sb $t0, ($s0)
/* 38E01C E008C21C A209FFFF */ sb $t1, -1($s0)
/* 38E020 E008C220 A208FFFE */ sb $t0, -2($s0)
/* 38E024 E008C224 080230CC */ j .LE008C330
/* 38E028 E008C228 E602FFF6 */ swc1 $f2, -0xa($s0)
.LE008C22C:
/* 38E02C E008C22C 8FA90074 */ lw $t1, 0x74($sp)
/* 38E030 E008C230 852200B0 */ lh $v0, 0xb0($t1)
/* 38E034 E008C234 44820000 */ mtc1 $v0, $f0
/* 38E038 E008C238 00000000 */ nop
/* 38E03C E008C23C 46800021 */ cvt.d.w $f0, $f0
/* 38E040 E008C240 46340002 */ mul.d $f0, $f0, $f20
/* 38E044 E008C244 00000000 */ nop
/* 38E048 E008C248 24040001 */ addiu $a0, $zero, 1
/* 38E04C E008C24C AE00FFCA */ sw $zero, -0x36($s0)
/* 38E050 E008C250 46200020 */ cvt.s.d $f0, $f0
/* 38E054 E008C254 0C080000 */ jal func_E0200000
/* 38E058 E008C258 E600FFC6 */ swc1 $f0, -0x3a($s0)
/* 38E05C E008C25C 24040001 */ addiu $a0, $zero, 1
/* 38E060 E008C260 000210C0 */ sll $v0, $v0, 3
/* 38E064 E008C264 2442FFFC */ addiu $v0, $v0, -4
/* 38E068 E008C268 44820000 */ mtc1 $v0, $f0
/* 38E06C E008C26C 00000000 */ nop
/* 38E070 E008C270 46800020 */ cvt.s.w $f0, $f0
/* 38E074 E008C274 E600FFF2 */ swc1 $f0, -0xe($s0)
/* 38E078 E008C278 0C080000 */ jal func_E0200000
/* 38E07C E008C27C AE00FFF6 */ sw $zero, -0xa($s0)
/* 38E080 E008C280 16E00002 */ bnez $s7, .LE008C28C
/* 38E084 E008C284 0297001A */ div $zero, $s4, $s7
/* 38E088 E008C288 0007000D */ break 7
.LE008C28C:
/* 38E08C E008C28C 2401FFFF */ addiu $at, $zero, -1
/* 38E090 E008C290 16E10004 */ bne $s7, $at, .LE008C2A4
/* 38E094 E008C294 3C018000 */ lui $at, 0x8000
/* 38E098 E008C298 16810002 */ bne $s4, $at, .LE008C2A4
/* 38E09C E008C29C 00000000 */ nop
/* 38E0A0 E008C2A0 0006000D */ break 6
.LE008C2A4:
/* 38E0A4 E008C2A4 00002012 */ mflo $a0
/* 38E0A8 E008C2A8 000210C0 */ sll $v0, $v0, 3
/* 38E0AC E008C2AC 2623FFFF */ addiu $v1, $s1, -1
/* 38E0B0 E008C2B0 44830000 */ mtc1 $v1, $f0
/* 38E0B4 E008C2B4 00000000 */ nop
/* 38E0B8 E008C2B8 46800020 */ cvt.s.w $f0, $f0
/* 38E0BC E008C2BC 44971000 */ mtc1 $s7, $f2
/* 38E0C0 E008C2C0 00000000 */ nop
/* 38E0C4 E008C2C4 468010A0 */ cvt.s.w $f2, $f2
/* 38E0C8 E008C2C8 46020003 */ div.s $f0, $f0, $f2
/* 38E0CC E008C2CC 46000021 */ cvt.d.s $f0, $f0
/* 38E0D0 E008C2D0 46340002 */ mul.d $f0, $f0, $f20
/* 38E0D4 E008C2D4 00000000 */ nop
/* 38E0D8 E008C2D8 2442FFFC */ addiu $v0, $v0, -4
/* 38E0DC E008C2DC 44821000 */ mtc1 $v0, $f2
/* 38E0E0 E008C2E0 00000000 */ nop
/* 38E0E4 E008C2E4 468010A0 */ cvt.s.w $f2, $f2
/* 38E0E8 E008C2E8 E602FFFA */ swc1 $f2, -6($s0)
/* 38E0EC E008C2EC 44951000 */ mtc1 $s5, $f2
/* 38E0F0 E008C2F0 00000000 */ nop
/* 38E0F4 E008C2F4 468010A0 */ cvt.s.w $f2, $f2
/* 38E0F8 E008C2F8 24020168 */ addiu $v0, $zero, 0x168
/* 38E0FC E008C2FC 00561023 */ subu $v0, $v0, $s6
/* 38E100 E008C300 E602FFE6 */ swc1 $f2, -0x1a($s0)
/* 38E104 E008C304 46340000 */ add.d $f0, $f0, $f20
/* 38E108 E008C308 44821000 */ mtc1 $v0, $f2
/* 38E10C E008C30C 00000000 */ nop
/* 38E110 E008C310 468010A0 */ cvt.s.w $f2, $f2
/* 38E114 E008C314 E602FFEE */ swc1 $f2, -0x12($s0)
/* 38E118 E008C318 46200020 */ cvt.s.d $f0, $f0
/* 38E11C E008C31C E600FFCE */ swc1 $f0, -0x32($s0)
/* 38E120 E008C320 44840000 */ mtc1 $a0, $f0
/* 38E124 E008C324 00000000 */ nop
/* 38E128 E008C328 46800020 */ cvt.s.w $f0, $f0
/* 38E12C E008C32C E600FFEA */ swc1 $f0, -0x16($s0)
.LE008C330:
/* 38E130 E008C330 2FC20006 */ sltiu $v0, $fp, 6
/* 38E134 E008C334 1040000B */ beqz $v0, .LE008C364
/* 38E138 E008C338 0000182D */ daddu $v1, $zero, $zero
/* 38E13C E008C33C 8FA80030 */ lw $t0, 0x30($sp)
/* 38E140 E008C340 8D020000 */ lw $v0, ($t0)
/* 38E144 E008C344 00400008 */ jr $v0
/* 38E148 E008C348 00000000 */ nop
/* 38E14C E008C34C 080230D9 */ j .LE008C364
/* 38E150 E008C350 24030001 */ addiu $v1, $zero, 1
/* 38E154 E008C354 080230D9 */ j .LE008C364
/* 38E158 E008C358 24030002 */ addiu $v1, $zero, 2
/* 38E15C E008C35C 32220001 */ andi $v0, $s1, 1
/* 38E160 E008C360 24430001 */ addiu $v1, $v0, 1
.LE008C364:
/* 38E164 E008C364 26D60026 */ addiu $s6, $s6, 0x26
/* 38E168 E008C368 26940168 */ addiu $s4, $s4, 0x168
/* 38E16C E008C36C 26B50019 */ addiu $s5, $s5, 0x19
/* 38E170 E008C370 3C02E009 */ lui $v0, %hi(D_E008CB14)
/* 38E174 E008C374 00431021 */ addu $v0, $v0, $v1
/* 38E178 E008C378 9042CB14 */ lbu $v0, %lo(D_E008CB14)($v0)
/* 38E17C E008C37C 26730078 */ addiu $s3, $s3, 0x78
/* 38E180 E008C380 A202FFFE */ sb $v0, -2($s0)
/* 38E184 E008C384 3C02E009 */ lui $v0, %hi(D_E008CB18)
/* 38E188 E008C388 00431021 */ addu $v0, $v0, $v1
/* 38E18C E008C38C 9042CB18 */ lbu $v0, %lo(D_E008CB18)($v0)
/* 38E190 E008C390 26520007 */ addiu $s2, $s2, 7
/* 38E194 E008C394 A202FFFF */ sb $v0, -1($s0)
/* 38E198 E008C398 3C02E009 */ lui $v0, %hi(D_E008CB1C)
/* 38E19C E008C39C 00431021 */ addu $v0, $v0, $v1
/* 38E1A0 E008C3A0 9042CB1C */ lbu $v0, %lo(D_E008CB1C)($v0)
/* 38E1A4 E008C3A4 26310001 */ addiu $s1, $s1, 1
/* 38E1A8 E008C3A8 A2020000 */ sb $v0, ($s0)
/* 38E1AC E008C3AC 2A220005 */ slti $v0, $s1, 5
/* 38E1B0 E008C3B0 1440FF6B */ bnez $v0, .LE008C160
/* 38E1B4 E008C3B4 26100048 */ addiu $s0, $s0, 0x48
.LE008C3B8:
/* 38E1B8 E008C3B8 8FA20028 */ lw $v0, 0x28($sp)
/* 38E1BC E008C3BC 8FBF005C */ lw $ra, 0x5c($sp)
/* 38E1C0 E008C3C0 8FBE0058 */ lw $fp, 0x58($sp)
/* 38E1C4 E008C3C4 8FB70054 */ lw $s7, 0x54($sp)
/* 38E1C8 E008C3C8 8FB60050 */ lw $s6, 0x50($sp)
/* 38E1CC E008C3CC 8FB5004C */ lw $s5, 0x4c($sp)
/* 38E1D0 E008C3D0 8FB40048 */ lw $s4, 0x48($sp)
/* 38E1D4 E008C3D4 8FB30044 */ lw $s3, 0x44($sp)
/* 38E1D8 E008C3D8 8FB20040 */ lw $s2, 0x40($sp)
/* 38E1DC E008C3DC 8FB1003C */ lw $s1, 0x3c($sp)
/* 38E1E0 E008C3E0 8FB00038 */ lw $s0, 0x38($sp)
/* 38E1E4 E008C3E4 D7B60068 */ ldc1 $f22, 0x68($sp)
/* 38E1E8 E008C3E8 D7B40060 */ ldc1 $f20, 0x60($sp)
/* 38E1EC E008C3EC 03E00008 */ jr $ra
/* 38E1F0 E008C3F0 27BD0070 */ addiu $sp, $sp, 0x70

View File

@ -1,280 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel embers_appendGfx
/* 3DBA60 E00E0600 27BDFF48 */ addiu $sp, $sp, -0xb8
/* 3DBA64 E00E0604 AFBE00B0 */ sw $fp, 0xb0($sp)
/* 3DBA68 E00E0608 0080F02D */ daddu $fp, $a0, $zero
/* 3DBA6C E00E060C 3C06DB06 */ lui $a2, 0xdb06
/* 3DBA70 E00E0610 34C60024 */ ori $a2, $a2, 0x24
/* 3DBA74 E00E0614 27A40010 */ addiu $a0, $sp, 0x10
/* 3DBA78 E00E0618 AFB3009C */ sw $s3, 0x9c($sp)
/* 3DBA7C E00E061C 3C130001 */ lui $s3, 1
/* 3DBA80 E00E0620 36731630 */ ori $s3, $s3, 0x1630
/* 3DBA84 E00E0624 AFB500A4 */ sw $s5, 0xa4($sp)
/* 3DBA88 E00E0628 24150001 */ addiu $s5, $zero, 1
/* 3DBA8C E00E062C AFB600A8 */ sw $s6, 0xa8($sp)
/* 3DBA90 E00E0630 3C16800A */ lui $s6, %hi(gMasterGfxPos)
/* 3DBA94 E00E0634 26D6A66C */ addiu $s6, $s6, %lo(gMasterGfxPos)
/* 3DBA98 E00E0638 AFBF00B4 */ sw $ra, 0xb4($sp)
/* 3DBA9C E00E063C AFB700AC */ sw $s7, 0xac($sp)
/* 3DBAA0 E00E0640 AFB400A0 */ sw $s4, 0xa0($sp)
/* 3DBAA4 E00E0644 AFB20098 */ sw $s2, 0x98($sp)
/* 3DBAA8 E00E0648 AFB10094 */ sw $s1, 0x94($sp)
/* 3DBAAC E00E064C AFB00090 */ sw $s0, 0x90($sp)
/* 3DBAB0 E00E0650 8EC50000 */ lw $a1, ($s6)
/* 3DBAB4 E00E0654 8FD4000C */ lw $s4, 0xc($fp)
/* 3DBAB8 E00E0658 00A0182D */ daddu $v1, $a1, $zero
/* 3DBABC E00E065C 24A50008 */ addiu $a1, $a1, 8
/* 3DBAC0 E00E0660 AEC50000 */ sw $a1, ($s6)
/* 3DBAC4 E00E0664 8E92002C */ lw $s2, 0x2c($s4)
/* 3DBAC8 E00E0668 3C02E700 */ lui $v0, 0xe700
/* 3DBACC E00E066C AC620000 */ sw $v0, ($v1)
/* 3DBAD0 E00E0670 AC600004 */ sw $zero, 4($v1)
/* 3DBAD4 E00E0674 ACA60000 */ sw $a2, ($a1)
/* 3DBAD8 E00E0678 8FC30010 */ lw $v1, 0x10($fp)
/* 3DBADC E00E067C 24A20008 */ addiu $v0, $a1, 8
/* 3DBAE0 E00E0680 AEC20000 */ sw $v0, ($s6)
/* 3DBAE4 E00E0684 8C62001C */ lw $v0, 0x1c($v1)
/* 3DBAE8 E00E0688 3C038000 */ lui $v1, 0x8000
/* 3DBAEC E00E068C 00431021 */ addu $v0, $v0, $v1
/* 3DBAF0 E00E0690 3C03800B */ lui $v1, %hi(gCameras)
/* 3DBAF4 E00E0694 24631D80 */ addiu $v1, $v1, %lo(gCameras)
/* 3DBAF8 E00E0698 ACA20004 */ sw $v0, 4($a1)
/* 3DBAFC E00E069C 8E850004 */ lw $a1, 4($s4)
/* 3DBB00 E00E06A0 8E860008 */ lw $a2, 8($s4)
/* 3DBB04 E00E06A4 3C028007 */ lui $v0, %hi(gCurrentCameraID)
/* 3DBB08 E00E06A8 8C427410 */ lw $v0, %lo(gCurrentCameraID)($v0)
/* 3DBB0C E00E06AC 8E87000C */ lw $a3, 0xc($s4)
/* 3DBB10 E00E06B0 00028080 */ sll $s0, $v0, 2
/* 3DBB14 E00E06B4 02028021 */ addu $s0, $s0, $v0
/* 3DBB18 E00E06B8 00108080 */ sll $s0, $s0, 2
/* 3DBB1C E00E06BC 02028023 */ subu $s0, $s0, $v0
/* 3DBB20 E00E06C0 001010C0 */ sll $v0, $s0, 3
/* 3DBB24 E00E06C4 02028021 */ addu $s0, $s0, $v0
/* 3DBB28 E00E06C8 001080C0 */ sll $s0, $s0, 3
/* 3DBB2C E00E06CC 0C080108 */ jal shim_guTranslateF
/* 3DBB30 E00E06D0 02038021 */ addu $s0, $s0, $v1
/* 3DBB34 E00E06D4 27B10050 */ addiu $s1, $sp, 0x50
/* 3DBB38 E00E06D8 8E850040 */ lw $a1, 0x40($s4)
/* 3DBB3C E00E06DC 0220202D */ daddu $a0, $s1, $zero
/* 3DBB40 E00E06E0 00A0302D */ daddu $a2, $a1, $zero
/* 3DBB44 E00E06E4 0C080110 */ jal shim_guScaleF
/* 3DBB48 E00E06E8 00A0382D */ daddu $a3, $a1, $zero
/* 3DBB4C E00E06EC 0220202D */ daddu $a0, $s1, $zero
/* 3DBB50 E00E06F0 27A50010 */ addiu $a1, $sp, 0x10
/* 3DBB54 E00E06F4 0C080114 */ jal shim_guMtxCatF
/* 3DBB58 E00E06F8 00A0302D */ daddu $a2, $a1, $zero
/* 3DBB5C E00E06FC 27A40010 */ addiu $a0, $sp, 0x10
/* 3DBB60 E00E0700 3C118007 */ lui $s1, %hi(gMatrixListPos)
/* 3DBB64 E00E0704 263141F0 */ addiu $s1, $s1, %lo(gMatrixListPos)
/* 3DBB68 E00E0708 3C17800A */ lui $s7, %hi(gDisplayContext)
/* 3DBB6C E00E070C 26F7A674 */ addiu $s7, $s7, %lo(gDisplayContext)
/* 3DBB70 E00E0710 96250000 */ lhu $a1, ($s1)
/* 3DBB74 E00E0714 8EE20000 */ lw $v0, ($s7)
/* 3DBB78 E00E0718 00052980 */ sll $a1, $a1, 6
/* 3DBB7C E00E071C 00B32821 */ addu $a1, $a1, $s3
/* 3DBB80 E00E0720 0C080118 */ jal shim_guMtxF2L
/* 3DBB84 E00E0724 00452821 */ addu $a1, $v0, $a1
/* 3DBB88 E00E0728 3C03DA38 */ lui $v1, 0xda38
/* 3DBB8C E00E072C 34630002 */ ori $v1, $v1, 2
/* 3DBB90 E00E0730 3C06DA38 */ lui $a2, 0xda38
/* 3DBB94 E00E0734 00D53025 */ or $a2, $a2, $s5
/* 3DBB98 E00E0738 325200FF */ andi $s2, $s2, 0xff
/* 3DBB9C E00E073C 8EC40000 */ lw $a0, ($s6)
/* 3DBBA0 E00E0740 96220000 */ lhu $v0, ($s1)
/* 3DBBA4 E00E0744 0080282D */ daddu $a1, $a0, $zero
/* 3DBBA8 E00E0748 24840008 */ addiu $a0, $a0, 8
/* 3DBBAC E00E074C AEC40000 */ sw $a0, ($s6)
/* 3DBBB0 E00E0750 ACA30000 */ sw $v1, ($a1)
/* 3DBBB4 E00E0754 00551821 */ addu $v1, $v0, $s5
/* 3DBBB8 E00E0758 3042FFFF */ andi $v0, $v0, 0xffff
/* 3DBBBC E00E075C 00021180 */ sll $v0, $v0, 6
/* 3DBBC0 E00E0760 A6230000 */ sh $v1, ($s1)
/* 3DBBC4 E00E0764 8EE30000 */ lw $v1, ($s7)
/* 3DBBC8 E00E0768 00531021 */ addu $v0, $v0, $s3
/* 3DBBCC E00E076C 00621821 */ addu $v1, $v1, $v0
/* 3DBBD0 E00E0770 24820008 */ addiu $v0, $a0, 8
/* 3DBBD4 E00E0774 ACA30004 */ sw $v1, 4($a1)
/* 3DBBD8 E00E0778 AEC20000 */ sw $v0, ($s6)
/* 3DBBDC E00E077C 24820010 */ addiu $v0, $a0, 0x10
/* 3DBBE0 E00E0780 AC860000 */ sw $a2, ($a0)
/* 3DBBE4 E00E0784 AEC20000 */ sw $v0, ($s6)
/* 3DBBE8 E00E0788 8E030204 */ lw $v1, 0x204($s0)
/* 3DBBEC E00E078C 3C02FA00 */ lui $v0, 0xfa00
/* 3DBBF0 E00E0790 AC820008 */ sw $v0, 8($a0)
/* 3DBBF4 E00E0794 AC830004 */ sw $v1, 4($a0)
/* 3DBBF8 E00E0798 92820023 */ lbu $v0, 0x23($s4)
/* 3DBBFC E00E079C 92850027 */ lbu $a1, 0x27($s4)
/* 3DBC00 E00E07A0 9286002B */ lbu $a2, 0x2b($s4)
/* 3DBC04 E00E07A4 24830018 */ addiu $v1, $a0, 0x18
/* 3DBC08 E00E07A8 AEC30000 */ sw $v1, ($s6)
/* 3DBC0C E00E07AC 3C03FB00 */ lui $v1, 0xfb00
/* 3DBC10 E00E07B0 AC830010 */ sw $v1, 0x10($a0)
/* 3DBC14 E00E07B4 00021600 */ sll $v0, $v0, 0x18
/* 3DBC18 E00E07B8 00052C00 */ sll $a1, $a1, 0x10
/* 3DBC1C E00E07BC 00451025 */ or $v0, $v0, $a1
/* 3DBC20 E00E07C0 00063200 */ sll $a2, $a2, 8
/* 3DBC24 E00E07C4 00461025 */ or $v0, $v0, $a2
/* 3DBC28 E00E07C8 00521025 */ or $v0, $v0, $s2
/* 3DBC2C E00E07CC AC82000C */ sw $v0, 0xc($a0)
/* 3DBC30 E00E07D0 92820033 */ lbu $v0, 0x33($s4)
/* 3DBC34 E00E07D4 92850037 */ lbu $a1, 0x37($s4)
/* 3DBC38 E00E07D8 9286003B */ lbu $a2, 0x3b($s4)
/* 3DBC3C E00E07DC 9287003F */ lbu $a3, 0x3f($s4)
/* 3DBC40 E00E07E0 3C03DE00 */ lui $v1, 0xde00
/* 3DBC44 E00E07E4 AC830018 */ sw $v1, 0x18($a0)
/* 3DBC48 E00E07E8 00021600 */ sll $v0, $v0, 0x18
/* 3DBC4C E00E07EC 00052C00 */ sll $a1, $a1, 0x10
/* 3DBC50 E00E07F0 00451025 */ or $v0, $v0, $a1
/* 3DBC54 E00E07F4 00063200 */ sll $a2, $a2, 8
/* 3DBC58 E00E07F8 00461025 */ or $v0, $v0, $a2
/* 3DBC5C E00E07FC 00471025 */ or $v0, $v0, $a3
/* 3DBC60 E00E0800 AC820014 */ sw $v0, 0x14($a0)
/* 3DBC64 E00E0804 3C02E00E */ lui $v0, %hi(D_E00E0A44)
/* 3DBC68 E00E0808 8C420A44 */ lw $v0, %lo(D_E00E0A44)($v0)
/* 3DBC6C E00E080C 26940070 */ addiu $s4, $s4, 0x70
/* 3DBC70 E00E0810 AC82001C */ sw $v0, 0x1c($a0)
/* 3DBC74 E00E0814 8FC20008 */ lw $v0, 8($fp)
/* 3DBC78 E00E0818 24840020 */ addiu $a0, $a0, 0x20
/* 3DBC7C E00E081C 02A2102A */ slt $v0, $s5, $v0
/* 3DBC80 E00E0820 10400070 */ beqz $v0, .LE00E09E4
/* 3DBC84 E00E0824 AEC40000 */ sw $a0, ($s6)
/* 3DBC88 E00E0828 0220982D */ daddu $s3, $s1, $zero
/* 3DBC8C E00E082C 3C120001 */ lui $s2, 1
/* 3DBC90 E00E0830 36521630 */ ori $s2, $s2, 0x1630
/* 3DBC94 E00E0834 02C0882D */ daddu $s1, $s6, $zero
/* 3DBC98 E00E0838 3C16F200 */ lui $s6, 0xf200
/* 3DBC9C E00E083C 26900060 */ addiu $s0, $s4, 0x60
.LE00E0840:
/* 3DBCA0 E00E0840 8E020004 */ lw $v0, 4($s0)
/* 3DBCA4 E00E0844 04420063 */ bltzl $v0, .LE00E09D4
/* 3DBCA8 E00E0848 26B50001 */ addiu $s5, $s5, 1
/* 3DBCAC E00E084C 8E05FFA4 */ lw $a1, -0x5c($s0)
/* 3DBCB0 E00E0850 8E06FFA8 */ lw $a2, -0x58($s0)
/* 3DBCB4 E00E0854 8E07FFAC */ lw $a3, -0x54($s0)
/* 3DBCB8 E00E0858 0C080108 */ jal shim_guTranslateF
/* 3DBCBC E00E085C 27A40010 */ addiu $a0, $sp, 0x10
/* 3DBCC0 E00E0860 27A40010 */ addiu $a0, $sp, 0x10
/* 3DBCC4 E00E0864 96650000 */ lhu $a1, ($s3)
/* 3DBCC8 E00E0868 8EE20000 */ lw $v0, ($s7)
/* 3DBCCC E00E086C 00052980 */ sll $a1, $a1, 6
/* 3DBCD0 E00E0870 00B22821 */ addu $a1, $a1, $s2
/* 3DBCD4 E00E0874 0C080118 */ jal shim_guMtxF2L
/* 3DBCD8 E00E0878 00452821 */ addu $a1, $v0, $a1
/* 3DBCDC E00E087C 8E260000 */ lw $a2, ($s1)
/* 3DBCE0 E00E0880 02A0382D */ daddu $a3, $s5, $zero
/* 3DBCE4 E00E0884 00C0202D */ daddu $a0, $a2, $zero
/* 3DBCE8 E00E0888 24C60008 */ addiu $a2, $a2, 8
/* 3DBCEC E00E088C AE260000 */ sw $a2, ($s1)
/* 3DBCF0 E00E0890 96620000 */ lhu $v0, ($s3)
/* 3DBCF4 E00E0894 3C03DA38 */ lui $v1, 0xda38
/* 3DBCF8 E00E0898 AC830000 */ sw $v1, ($a0)
/* 3DBCFC E00E089C 24430001 */ addiu $v1, $v0, 1
/* 3DBD00 E00E08A0 3042FFFF */ andi $v0, $v0, 0xffff
/* 3DBD04 E00E08A4 00021180 */ sll $v0, $v0, 6
/* 3DBD08 E00E08A8 A6630000 */ sh $v1, ($s3)
/* 3DBD0C E00E08AC 8EE30000 */ lw $v1, ($s7)
/* 3DBD10 E00E08B0 00521021 */ addu $v0, $v0, $s2
/* 3DBD14 E00E08B4 00621821 */ addu $v1, $v1, $v0
/* 3DBD18 E00E08B8 24C20008 */ addiu $v0, $a2, 8
/* 3DBD1C E00E08BC AC830004 */ sw $v1, 4($a0)
/* 3DBD20 E00E08C0 06A10002 */ bgez $s5, .LE00E08CC
/* 3DBD24 E00E08C4 AE220000 */ sw $v0, ($s1)
/* 3DBD28 E00E08C8 26A70003 */ addiu $a3, $s5, 3
.LE00E08CC:
/* 3DBD2C E00E08CC 3C040003 */ lui $a0, 3
/* 3DBD30 E00E08D0 3484C000 */ ori $a0, $a0, 0xc000
/* 3DBD34 E00E08D4 3C05D838 */ lui $a1, 0xd838
/* 3DBD38 E00E08D8 34A50002 */ ori $a1, $a1, 2
/* 3DBD3C E00E08DC 00071883 */ sra $v1, $a3, 2
/* 3DBD40 E00E08E0 00031880 */ sll $v1, $v1, 2
/* 3DBD44 E00E08E4 02A31823 */ subu $v1, $s5, $v1
/* 3DBD48 E00E08E8 00031180 */ sll $v0, $v1, 6
/* 3DBD4C E00E08EC 30420FFF */ andi $v0, $v0, 0xfff
/* 3DBD50 E00E08F0 00561025 */ or $v0, $v0, $s6
/* 3DBD54 E00E08F4 00031980 */ sll $v1, $v1, 6
/* 3DBD58 E00E08F8 3463003C */ ori $v1, $v1, 0x3c
/* 3DBD5C E00E08FC 30630FFF */ andi $v1, $v1, 0xfff
/* 3DBD60 E00E0900 00641825 */ or $v1, $v1, $a0
/* 3DBD64 E00E0904 ACC20000 */ sw $v0, ($a2)
/* 3DBD68 E00E0908 24C20010 */ addiu $v0, $a2, 0x10
/* 3DBD6C E00E090C ACC30004 */ sw $v1, 4($a2)
/* 3DBD70 E00E0910 AE220000 */ sw $v0, ($s1)
/* 3DBD74 E00E0914 24C20018 */ addiu $v0, $a2, 0x18
/* 3DBD78 E00E0918 C600FFFC */ lwc1 $f0, -4($s0)
/* 3DBD7C E00E091C 3C040100 */ lui $a0, 0x100
/* 3DBD80 E00E0920 AE220000 */ sw $v0, ($s1)
/* 3DBD84 E00E0924 4600010D */ trunc.w.s $f4, $f0
/* 3DBD88 E00E0928 44032000 */ mfc1 $v1, $f4
/* 3DBD8C E00E092C 00000000 */ nop
/* 3DBD90 E00E0930 00031880 */ sll $v1, $v1, 2
/* 3DBD94 E00E0934 30630FFF */ andi $v1, $v1, 0xfff
/* 3DBD98 E00E0938 C6000000 */ lwc1 $f0, ($s0)
/* 3DBD9C E00E093C 00031B00 */ sll $v1, $v1, 0xc
/* 3DBDA0 E00E0940 4600010D */ trunc.w.s $f4, $f0
/* 3DBDA4 E00E0944 44022000 */ mfc1 $v0, $f4
/* 3DBDA8 E00E0948 00000000 */ nop
/* 3DBDAC E00E094C 00021080 */ sll $v0, $v0, 2
/* 3DBDB0 E00E0950 30420FFF */ andi $v0, $v0, 0xfff
/* 3DBDB4 E00E0954 00561025 */ or $v0, $v0, $s6
/* 3DBDB8 E00E0958 00621825 */ or $v1, $v1, $v0
/* 3DBDBC E00E095C ACC30008 */ sw $v1, 8($a2)
/* 3DBDC0 E00E0960 C600FFFC */ lwc1 $f0, -4($s0)
/* 3DBDC4 E00E0964 C6020000 */ lwc1 $f2, ($s0)
/* 3DBDC8 E00E0968 3C02DE00 */ lui $v0, 0xde00
/* 3DBDCC E00E096C ACC20010 */ sw $v0, 0x10($a2)
/* 3DBDD0 E00E0970 4600010D */ trunc.w.s $f4, $f0
/* 3DBDD4 E00E0974 44032000 */ mfc1 $v1, $f4
/* 3DBDD8 E00E0978 00000000 */ nop
/* 3DBDDC E00E097C 2463000F */ addiu $v1, $v1, 0xf
/* 3DBDE0 E00E0980 00031880 */ sll $v1, $v1, 2
/* 3DBDE4 E00E0984 30630FFF */ andi $v1, $v1, 0xfff
/* 3DBDE8 E00E0988 00031B00 */ sll $v1, $v1, 0xc
/* 3DBDEC E00E098C 4600110D */ trunc.w.s $f4, $f2
/* 3DBDF0 E00E0990 44022000 */ mfc1 $v0, $f4
/* 3DBDF4 E00E0994 00000000 */ nop
/* 3DBDF8 E00E0998 2442000F */ addiu $v0, $v0, 0xf
/* 3DBDFC E00E099C 00021080 */ sll $v0, $v0, 2
/* 3DBE00 E00E09A0 30420FFF */ andi $v0, $v0, 0xfff
/* 3DBE04 E00E09A4 00441025 */ or $v0, $v0, $a0
/* 3DBE08 E00E09A8 00621825 */ or $v1, $v1, $v0
/* 3DBE0C E00E09AC ACC3000C */ sw $v1, 0xc($a2)
/* 3DBE10 E00E09B0 3C03E00E */ lui $v1, %hi(D_E00E0A40)
/* 3DBE14 E00E09B4 8C630A40 */ lw $v1, %lo(D_E00E0A40)($v1)
/* 3DBE18 E00E09B8 24C20020 */ addiu $v0, $a2, 0x20
/* 3DBE1C E00E09BC AE220000 */ sw $v0, ($s1)
/* 3DBE20 E00E09C0 24020040 */ addiu $v0, $zero, 0x40
/* 3DBE24 E00E09C4 ACC50018 */ sw $a1, 0x18($a2)
/* 3DBE28 E00E09C8 ACC2001C */ sw $v0, 0x1c($a2)
/* 3DBE2C E00E09CC ACC30014 */ sw $v1, 0x14($a2)
/* 3DBE30 E00E09D0 26B50001 */ addiu $s5, $s5, 1
.LE00E09D4:
/* 3DBE34 E00E09D4 8FC20008 */ lw $v0, 8($fp)
/* 3DBE38 E00E09D8 02A2102A */ slt $v0, $s5, $v0
/* 3DBE3C E00E09DC 1440FF98 */ bnez $v0, .LE00E0840
/* 3DBE40 E00E09E0 26100070 */ addiu $s0, $s0, 0x70
.LE00E09E4:
/* 3DBE44 E00E09E4 3C05D838 */ lui $a1, 0xd838
/* 3DBE48 E00E09E8 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 3DBE4C E00E09EC 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 3DBE50 E00E09F0 8C620000 */ lw $v0, ($v1)
/* 3DBE54 E00E09F4 34A50002 */ ori $a1, $a1, 2
/* 3DBE58 E00E09F8 0040202D */ daddu $a0, $v0, $zero
/* 3DBE5C E00E09FC 24420008 */ addiu $v0, $v0, 8
/* 3DBE60 E00E0A00 AC620000 */ sw $v0, ($v1)
/* 3DBE64 E00E0A04 24020040 */ addiu $v0, $zero, 0x40
/* 3DBE68 E00E0A08 AC850000 */ sw $a1, ($a0)
/* 3DBE6C E00E0A0C AC820004 */ sw $v0, 4($a0)
/* 3DBE70 E00E0A10 8FBF00B4 */ lw $ra, 0xb4($sp)
/* 3DBE74 E00E0A14 8FBE00B0 */ lw $fp, 0xb0($sp)
/* 3DBE78 E00E0A18 8FB700AC */ lw $s7, 0xac($sp)
/* 3DBE7C E00E0A1C 8FB600A8 */ lw $s6, 0xa8($sp)
/* 3DBE80 E00E0A20 8FB500A4 */ lw $s5, 0xa4($sp)
/* 3DBE84 E00E0A24 8FB400A0 */ lw $s4, 0xa0($sp)
/* 3DBE88 E00E0A28 8FB3009C */ lw $s3, 0x9c($sp)
/* 3DBE8C E00E0A2C 8FB20098 */ lw $s2, 0x98($sp)
/* 3DBE90 E00E0A30 8FB10094 */ lw $s1, 0x94($sp)
/* 3DBE94 E00E0A34 8FB00090 */ lw $s0, 0x90($sp)
/* 3DBE98 E00E0A38 03E00008 */ jr $ra
/* 3DBE9C E00E0A3C 27BD00B8 */ addiu $sp, $sp, 0xb8

View File

@ -1,126 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel embers_main
/* 3DB460 E00E0000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 3DB464 E00E0004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 3DB468 E00E0008 4485A000 */ mtc1 $a1, $f20
/* 3DB46C E00E000C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 3DB470 E00E0010 4486B000 */ mtc1 $a2, $f22
/* 3DB474 E00E0014 F7B80050 */ sdc1 $f24, 0x50($sp)
/* 3DB478 E00E0018 4487C000 */ mtc1 $a3, $f24
/* 3DB47C E00E001C AFB30034 */ sw $s3, 0x34($sp)
/* 3DB480 E00E0020 0080982D */ daddu $s3, $a0, $zero
/* 3DB484 E00E0024 AFB00028 */ sw $s0, 0x28($sp)
/* 3DB488 E00E0028 8FB00074 */ lw $s0, 0x74($sp)
/* 3DB48C E00E002C 27A40010 */ addiu $a0, $sp, 0x10
/* 3DB490 E00E0030 AFB20030 */ sw $s2, 0x30($sp)
/* 3DB494 E00E0034 8FB20078 */ lw $s2, 0x78($sp)
/* 3DB498 E00E0038 3C02E00E */ lui $v0, %hi(embers_init)
/* 3DB49C E00E003C 244201D0 */ addiu $v0, $v0, %lo(embers_init)
/* 3DB4A0 E00E0040 AFA20018 */ sw $v0, 0x18($sp)
/* 3DB4A4 E00E0044 3C02E00E */ lui $v0, %hi(embers_update)
/* 3DB4A8 E00E0048 244201D8 */ addiu $v0, $v0, %lo(embers_update)
/* 3DB4AC E00E004C AFA2001C */ sw $v0, 0x1c($sp)
/* 3DB4B0 E00E0050 3C02E00E */ lui $v0, %hi(embers_render)
/* 3DB4B4 E00E0054 244205B0 */ addiu $v0, $v0, %lo(embers_render)
/* 3DB4B8 E00E0058 AFA20020 */ sw $v0, 0x20($sp)
/* 3DB4BC E00E005C 24020070 */ addiu $v0, $zero, 0x70
/* 3DB4C0 E00E0060 AFBF0038 */ sw $ra, 0x38($sp)
/* 3DB4C4 E00E0064 AFB1002C */ sw $s1, 0x2c($sp)
/* 3DB4C8 E00E0068 AFA00010 */ sw $zero, 0x10($sp)
/* 3DB4CC E00E006C AFA00024 */ sw $zero, 0x24($sp)
/* 3DB4D0 E00E0070 AFA20014 */ sw $v0, 0x14($sp)
/* 3DB4D4 E00E0074 0C080124 */ jal shim_create_effect_instance
/* 3DB4D8 E00E0078 26100001 */ addiu $s0, $s0, 1
/* 3DB4DC E00E007C 001020C0 */ sll $a0, $s0, 3
/* 3DB4E0 E00E0080 00902023 */ subu $a0, $a0, $s0
/* 3DB4E4 E00E0084 00042100 */ sll $a0, $a0, 4
/* 3DB4E8 E00E0088 0040882D */ daddu $s1, $v0, $zero
/* 3DB4EC E00E008C 0C08012C */ jal shim_general_heap_malloc
/* 3DB4F0 E00E0090 AE300008 */ sw $s0, 8($s1)
/* 3DB4F4 E00E0094 0040202D */ daddu $a0, $v0, $zero
/* 3DB4F8 E00E0098 14800003 */ bnez $a0, .LE00E00A8
/* 3DB4FC E00E009C AE24000C */ sw $a0, 0xc($s1)
.LE00E00A0:
/* 3DB500 E00E00A0 08038028 */ j .LE00E00A0
/* 3DB504 E00E00A4 00000000 */ nop
.LE00E00A8:
/* 3DB508 E00E00A8 AC930000 */ sw $s3, ($a0)
/* 3DB50C E00E00AC 1E400004 */ bgtz $s2, .LE00E00C0
/* 3DB510 E00E00B0 AC80001C */ sw $zero, 0x1c($a0)
/* 3DB514 E00E00B4 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3DB518 E00E00B8 08038031 */ j .LE00E00C4
/* 3DB51C E00E00BC AC820018 */ sw $v0, 0x18($a0)
.LE00E00C0:
/* 3DB520 E00E00C0 AC920018 */ sw $s2, 0x18($a0)
.LE00E00C4:
/* 3DB524 E00E00C4 AC80002C */ sw $zero, 0x2c($a0)
/* 3DB528 E00E00C8 E4940004 */ swc1 $f20, 4($a0)
/* 3DB52C E00E00CC E4960008 */ swc1 $f22, 8($a0)
/* 3DB530 E00E00D0 E498000C */ swc1 $f24, 0xc($a0)
/* 3DB534 E00E00D4 C7A00070 */ lwc1 $f0, 0x70($sp)
/* 3DB538 E00E00D8 3C0141F0 */ lui $at, 0x41f0
/* 3DB53C E00E00DC 44811000 */ mtc1 $at, $f2
/* 3DB540 E00E00E0 E4800040 */ swc1 $f0, 0x40($a0)
/* 3DB544 E00E00E4 C7A00068 */ lwc1 $f0, 0x68($sp)
/* 3DB548 E00E00E8 E4800010 */ swc1 $f0, 0x10($a0)
/* 3DB54C E00E00EC C7A0006C */ lwc1 $f0, 0x6c($sp)
/* 3DB550 E00E00F0 E4800014 */ swc1 $f0, 0x14($a0)
/* 3DB554 E00E00F4 C7A0007C */ lwc1 $f0, 0x7c($sp)
/* 3DB558 E00E00F8 2403007F */ addiu $v1, $zero, 0x7f
/* 3DB55C E00E00FC E4800068 */ swc1 $f0, 0x68($a0)
/* 3DB560 E00E0100 C7A00080 */ lwc1 $f0, 0x80($sp)
/* 3DB564 E00E0104 2602FFFF */ addiu $v0, $s0, -1
/* 3DB568 E00E0108 AC830020 */ sw $v1, 0x20($a0)
/* 3DB56C E00E010C AC830030 */ sw $v1, 0x30($a0)
/* 3DB570 E00E0110 AC830034 */ sw $v1, 0x34($a0)
/* 3DB574 E00E0114 24030001 */ addiu $v1, $zero, 1
/* 3DB578 E00E0118 E480006C */ swc1 $f0, 0x6c($a0)
/* 3DB57C E00E011C 44820000 */ mtc1 $v0, $f0
/* 3DB580 E00E0120 00000000 */ nop
/* 3DB584 E00E0124 46800020 */ cvt.s.w $f0, $f0
/* 3DB588 E00E0128 46001083 */ div.s $f2, $f2, $f0
/* 3DB58C E00E012C 3C013FE0 */ lui $at, 0x3fe0
/* 3DB590 E00E0130 44810800 */ mtc1 $at, $f1
/* 3DB594 E00E0134 44800000 */ mtc1 $zero, $f0
/* 3DB598 E00E0138 460010A1 */ cvt.d.s $f2, $f2
/* 3DB59C E00E013C 46201082 */ mul.d $f2, $f2, $f0
/* 3DB5A0 E00E0140 00000000 */ nop
/* 3DB5A4 E00E0144 AC800024 */ sw $zero, 0x24($a0)
/* 3DB5A8 E00E0148 AC800028 */ sw $zero, 0x28($a0)
/* 3DB5AC E00E014C AC800038 */ sw $zero, 0x38($a0)
/* 3DB5B0 E00E0150 240200FF */ addiu $v0, $zero, 0xff
/* 3DB5B4 E00E0154 AC82003C */ sw $v0, 0x3c($a0)
/* 3DB5B8 E00E0158 24840070 */ addiu $a0, $a0, 0x70
/* 3DB5BC E00E015C 0070102A */ slt $v0, $v1, $s0
/* 3DB5C0 E00E0160 10400010 */ beqz $v0, .LE00E01A4
/* 3DB5C4 E00E0164 462010A0 */ cvt.s.d $f2, $f2
.LE00E0168:
/* 3DB5C8 E00E0168 44830000 */ mtc1 $v1, $f0
/* 3DB5CC E00E016C 00000000 */ nop
/* 3DB5D0 E00E0170 46800020 */ cvt.s.w $f0, $f0
/* 3DB5D4 E00E0174 46000007 */ neg.s $f0, $f0
/* 3DB5D8 E00E0178 46020002 */ mul.s $f0, $f0, $f2
/* 3DB5DC E00E017C 00000000 */ nop
/* 3DB5E0 E00E0180 24630001 */ addiu $v1, $v1, 1
/* 3DB5E4 E00E0184 4600010D */ trunc.w.s $f4, $f0
/* 3DB5E8 E00E0188 44022000 */ mfc1 $v0, $f4
/* 3DB5EC E00E018C 00000000 */ nop
/* 3DB5F0 E00E0190 2442FFFF */ addiu $v0, $v0, -1
/* 3DB5F4 E00E0194 AC820064 */ sw $v0, 0x64($a0)
/* 3DB5F8 E00E0198 0070102A */ slt $v0, $v1, $s0
/* 3DB5FC E00E019C 1440FFF2 */ bnez $v0, .LE00E0168
/* 3DB600 E00E01A0 24840070 */ addiu $a0, $a0, 0x70
.LE00E01A4:
/* 3DB604 E00E01A4 0220102D */ daddu $v0, $s1, $zero
/* 3DB608 E00E01A8 8FBF0038 */ lw $ra, 0x38($sp)
/* 3DB60C E00E01AC 8FB30034 */ lw $s3, 0x34($sp)
/* 3DB610 E00E01B0 8FB20030 */ lw $s2, 0x30($sp)
/* 3DB614 E00E01B4 8FB1002C */ lw $s1, 0x2c($sp)
/* 3DB618 E00E01B8 8FB00028 */ lw $s0, 0x28($sp)
/* 3DB61C E00E01BC D7B80050 */ ldc1 $f24, 0x50($sp)
/* 3DB620 E00E01C0 D7B60048 */ ldc1 $f22, 0x48($sp)
/* 3DB624 E00E01C4 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 3DB628 E00E01C8 03E00008 */ jr $ra
/* 3DB62C E00E01CC 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,449 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel emote_appendGfx
/* 334490 E00205D0 27BDFF20 */ addiu $sp, $sp, -0xe0
/* 334494 E00205D4 3C06DB06 */ lui $a2, 0xdb06
/* 334498 E00205D8 AFB600C0 */ sw $s6, 0xc0($sp)
/* 33449C E00205DC 3C16800A */ lui $s6, %hi(gMasterGfxPos)
/* 3344A0 E00205E0 26D6A66C */ addiu $s6, $s6, %lo(gMasterGfxPos)
/* 3344A4 E00205E4 34C60024 */ ori $a2, $a2, 0x24
/* 3344A8 E00205E8 AFBF00CC */ sw $ra, 0xcc($sp)
/* 3344AC E00205EC AFBE00C8 */ sw $fp, 0xc8($sp)
/* 3344B0 E00205F0 AFB700C4 */ sw $s7, 0xc4($sp)
/* 3344B4 E00205F4 AFB500BC */ sw $s5, 0xbc($sp)
/* 3344B8 E00205F8 AFB400B8 */ sw $s4, 0xb8($sp)
/* 3344BC E00205FC AFB300B4 */ sw $s3, 0xb4($sp)
/* 3344C0 E0020600 AFB200B0 */ sw $s2, 0xb0($sp)
/* 3344C4 E0020604 AFB100AC */ sw $s1, 0xac($sp)
/* 3344C8 E0020608 AFB000A8 */ sw $s0, 0xa8($sp)
/* 3344CC E002060C F7B600D8 */ sdc1 $f22, 0xd8($sp)
/* 3344D0 E0020610 F7B400D0 */ sdc1 $f20, 0xd0($sp)
/* 3344D4 E0020614 8EC50000 */ lw $a1, ($s6)
/* 3344D8 E0020618 8C94000C */ lw $s4, 0xc($a0)
/* 3344DC E002061C 00A0182D */ daddu $v1, $a1, $zero
/* 3344E0 E0020620 24A50008 */ addiu $a1, $a1, 8
/* 3344E4 E0020624 AEC50000 */ sw $a1, ($s6)
/* 3344E8 E0020628 8E950000 */ lw $s5, ($s4)
/* 3344EC E002062C 3C02E700 */ lui $v0, 0xe700
/* 3344F0 E0020630 AC620000 */ sw $v0, ($v1)
/* 3344F4 E0020634 AC600004 */ sw $zero, 4($v1)
/* 3344F8 E0020638 ACA60000 */ sw $a2, ($a1)
/* 3344FC E002063C 8C830010 */ lw $v1, 0x10($a0)
/* 334500 E0020640 24A20008 */ addiu $v0, $a1, 8
/* 334504 E0020644 AEC20000 */ sw $v0, ($s6)
/* 334508 E0020648 8C62001C */ lw $v0, 0x1c($v1)
/* 33450C E002064C 3C038000 */ lui $v1, 0x8000
/* 334510 E0020650 00431021 */ addu $v0, $v0, $v1
/* 334514 E0020654 ACA20004 */ sw $v0, 4($a1)
/* 334518 E0020658 24020001 */ addiu $v0, $zero, 1
/* 33451C E002065C 12A2006D */ beq $s5, $v0, .LE0020814
/* 334520 E0020660 27A40018 */ addiu $a0, $sp, 0x18
/* 334524 E0020664 3C130001 */ lui $s3, 1
/* 334528 E0020668 8E850004 */ lw $a1, 4($s4)
/* 33452C E002066C 8E860008 */ lw $a2, 8($s4)
/* 334530 E0020670 8E87000C */ lw $a3, 0xc($s4)
/* 334534 E0020674 0C080108 */ jal shim_guTranslateF
/* 334538 E0020678 36731630 */ ori $s3, $s3, 0x1630
/* 33453C E002067C 27B00058 */ addiu $s0, $sp, 0x58
/* 334540 E0020680 4480B000 */ mtc1 $zero, $f22
/* 334544 E0020684 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 334548 E0020688 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 33454C E002068C 3C013F80 */ lui $at, 0x3f80
/* 334550 E0020690 4481A000 */ mtc1 $at, $f20
/* 334554 E0020694 00031080 */ sll $v0, $v1, 2
/* 334558 E0020698 00431021 */ addu $v0, $v0, $v1
/* 33455C E002069C 00021080 */ sll $v0, $v0, 2
/* 334560 E00206A0 00431023 */ subu $v0, $v0, $v1
/* 334564 E00206A4 000218C0 */ sll $v1, $v0, 3
/* 334568 E00206A8 00431021 */ addu $v0, $v0, $v1
/* 33456C E00206AC 000210C0 */ sll $v0, $v0, 3
/* 334570 E00206B0 4406B000 */ mfc1 $a2, $f22
/* 334574 E00206B4 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 334578 E00206B8 00220821 */ addu $at, $at, $v0
/* 33457C E00206BC C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 334580 E00206C0 4407A000 */ mfc1 $a3, $f20
/* 334584 E00206C4 46000007 */ neg.s $f0, $f0
/* 334588 E00206C8 44050000 */ mfc1 $a1, $f0
/* 33458C E00206CC 0200202D */ daddu $a0, $s0, $zero
/* 334590 E00206D0 0C080104 */ jal shim_guRotateF
/* 334594 E00206D4 E7B60010 */ swc1 $f22, 0x10($sp)
/* 334598 E00206D8 0200202D */ daddu $a0, $s0, $zero
/* 33459C E00206DC 27A50018 */ addiu $a1, $sp, 0x18
/* 3345A0 E00206E0 0C080114 */ jal shim_guMtxCatF
/* 3345A4 E00206E4 00A0302D */ daddu $a2, $a1, $zero
/* 3345A8 E00206E8 27A40018 */ addiu $a0, $sp, 0x18
/* 3345AC E00206EC 3C118007 */ lui $s1, %hi(gMatrixListPos)
/* 3345B0 E00206F0 263141F0 */ addiu $s1, $s1, %lo(gMatrixListPos)
/* 3345B4 E00206F4 3C12800A */ lui $s2, %hi(gDisplayContext)
/* 3345B8 E00206F8 2652A674 */ addiu $s2, $s2, %lo(gDisplayContext)
/* 3345BC E00206FC 96220000 */ lhu $v0, ($s1)
/* 3345C0 E0020700 8E460000 */ lw $a2, ($s2)
/* 3345C4 E0020704 00022980 */ sll $a1, $v0, 6
/* 3345C8 E0020708 00B32821 */ addu $a1, $a1, $s3
/* 3345CC E002070C 00C52821 */ addu $a1, $a2, $a1
/* 3345D0 E0020710 24430001 */ addiu $v1, $v0, 1
/* 3345D4 E0020714 00021180 */ sll $v0, $v0, 6
/* 3345D8 E0020718 00531021 */ addu $v0, $v0, $s3
/* 3345DC E002071C 00C23021 */ addu $a2, $a2, $v0
/* 3345E0 E0020720 A6230000 */ sh $v1, ($s1)
/* 3345E4 E0020724 0C080118 */ jal shim_guMtxF2L
/* 3345E8 E0020728 AFA60098 */ sw $a2, 0x98($sp)
/* 3345EC E002072C 4405A000 */ mfc1 $a1, $f20
/* 3345F0 E0020730 3C063F4C */ lui $a2, 0x3f4c
/* 3345F4 E0020734 34C6CCCD */ ori $a2, $a2, 0xcccd
/* 3345F8 E0020738 4407A000 */ mfc1 $a3, $f20
/* 3345FC E002073C 0C080110 */ jal shim_guScaleF
/* 334600 E0020740 0200202D */ daddu $a0, $s0, $zero
/* 334604 E0020744 0200202D */ daddu $a0, $s0, $zero
/* 334608 E0020748 27A50018 */ addiu $a1, $sp, 0x18
/* 33460C E002074C 0C080114 */ jal shim_guMtxCatF
/* 334610 E0020750 00A0302D */ daddu $a2, $a1, $zero
/* 334614 E0020754 4406B000 */ mfc1 $a2, $f22
/* 334618 E0020758 0200202D */ daddu $a0, $s0, $zero
/* 33461C E002075C E7B40010 */ swc1 $f20, 0x10($sp)
/* 334620 E0020760 8E850024 */ lw $a1, 0x24($s4)
/* 334624 E0020764 0C080104 */ jal shim_guRotateF
/* 334628 E0020768 00C0382D */ daddu $a3, $a2, $zero
/* 33462C E002076C 0200202D */ daddu $a0, $s0, $zero
/* 334630 E0020770 27A50018 */ addiu $a1, $sp, 0x18
/* 334634 E0020774 0C080114 */ jal shim_guMtxCatF
/* 334638 E0020778 00A0302D */ daddu $a2, $a1, $zero
/* 33463C E002077C 27A40018 */ addiu $a0, $sp, 0x18
/* 334640 E0020780 96250000 */ lhu $a1, ($s1)
/* 334644 E0020784 8E420000 */ lw $v0, ($s2)
/* 334648 E0020788 00052980 */ sll $a1, $a1, 6
/* 33464C E002078C 00B32821 */ addu $a1, $a1, $s3
/* 334650 E0020790 0C080118 */ jal shim_guMtxF2L
/* 334654 E0020794 00452821 */ addu $a1, $v0, $a1
/* 334658 E0020798 3C03DA38 */ lui $v1, 0xda38
/* 33465C E002079C 34630002 */ ori $v1, $v1, 2
/* 334660 E00207A0 3C06D838 */ lui $a2, 0xd838
/* 334664 E00207A4 34C60002 */ ori $a2, $a2, 2
/* 334668 E00207A8 8EC40000 */ lw $a0, ($s6)
/* 33466C E00207AC 96220000 */ lhu $v0, ($s1)
/* 334670 E00207B0 0080282D */ daddu $a1, $a0, $zero
/* 334674 E00207B4 24840008 */ addiu $a0, $a0, 8
/* 334678 E00207B8 AEC40000 */ sw $a0, ($s6)
/* 33467C E00207BC ACA30000 */ sw $v1, ($a1)
/* 334680 E00207C0 24430001 */ addiu $v1, $v0, 1
/* 334684 E00207C4 3042FFFF */ andi $v0, $v0, 0xffff
/* 334688 E00207C8 00021180 */ sll $v0, $v0, 6
/* 33468C E00207CC A6230000 */ sh $v1, ($s1)
/* 334690 E00207D0 8E430000 */ lw $v1, ($s2)
/* 334694 E00207D4 00531021 */ addu $v0, $v0, $s3
/* 334698 E00207D8 00621821 */ addu $v1, $v1, $v0
/* 33469C E00207DC 24820008 */ addiu $v0, $a0, 8
/* 3346A0 E00207E0 ACA30004 */ sw $v1, 4($a1)
/* 3346A4 E00207E4 AEC20000 */ sw $v0, ($s6)
/* 3346A8 E00207E8 3C02DE00 */ lui $v0, 0xde00
/* 3346AC E00207EC AC820000 */ sw $v0, ($a0)
/* 3346B0 E00207F0 3C020900 */ lui $v0, 0x900
/* 3346B4 E00207F4 24422170 */ addiu $v0, $v0, 0x2170
/* 3346B8 E00207F8 AC820004 */ sw $v0, 4($a0)
/* 3346BC E00207FC 24820010 */ addiu $v0, $a0, 0x10
/* 3346C0 E0020800 AEC20000 */ sw $v0, ($s6)
/* 3346C4 E0020804 24020040 */ addiu $v0, $zero, 0x40
/* 3346C8 E0020808 AC860008 */ sw $a2, 8($a0)
/* 3346CC E002080C 08008276 */ j .LE00209D8
/* 3346D0 E0020810 AC82000C */ sw $v0, 0xc($a0)
.LE0020814:
/* 3346D4 E0020814 8E820038 */ lw $v0, 0x38($s4)
/* 3346D8 E0020818 1440010F */ bnez $v0, .LE0020C58
/* 3346DC E002081C 0000982D */ daddu $s3, $zero, $zero
/* 3346E0 E0020820 27B10058 */ addiu $s1, $sp, 0x58
/* 3346E4 E0020824 3C1E800A */ lui $fp, %hi(gDisplayContext)
/* 3346E8 E0020828 27DEA674 */ addiu $fp, $fp, %lo(gDisplayContext)
/* 3346EC E002082C 3C178007 */ lui $s7, %hi(gMatrixListPos)
/* 3346F0 E0020830 26F741F0 */ addiu $s7, $s7, %lo(gMatrixListPos)
/* 3346F4 E0020834 3C150001 */ lui $s5, 1
/* 3346F8 E0020838 36B51630 */ ori $s5, $s5, 0x1630
/* 3346FC E002083C 02C0902D */ daddu $s2, $s6, $zero
/* 334700 E0020840 26900028 */ addiu $s0, $s4, 0x28
/* 334704 E0020844 4480A000 */ mtc1 $zero, $f20
/* 334708 E0020848 3C013F80 */ lui $at, 0x3f80
/* 33470C E002084C 4481B000 */ mtc1 $at, $f22
.LE0020850:
/* 334710 E0020850 27A40018 */ addiu $a0, $sp, 0x18
/* 334714 E0020854 8E05FFDC */ lw $a1, -0x24($s0)
/* 334718 E0020858 8E06FFE0 */ lw $a2, -0x20($s0)
/* 33471C E002085C 8E07FFE4 */ lw $a3, -0x1c($s0)
/* 334720 E0020860 0C080108 */ jal shim_guTranslateF
/* 334724 E0020864 26730001 */ addiu $s3, $s3, 1
/* 334728 E0020868 3C09800B */ lui $t1, %hi(gCameras)
/* 33472C E002086C 25291D80 */ addiu $t1, $t1, %lo(gCameras)
/* 334730 E0020870 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 334734 E0020874 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 334738 E0020878 4406A000 */ mfc1 $a2, $f20
/* 33473C E002087C 00031080 */ sll $v0, $v1, 2
/* 334740 E0020880 00431021 */ addu $v0, $v0, $v1
/* 334744 E0020884 00021080 */ sll $v0, $v0, 2
/* 334748 E0020888 00431023 */ subu $v0, $v0, $v1
/* 33474C E002088C 000218C0 */ sll $v1, $v0, 3
/* 334750 E0020890 00431021 */ addu $v0, $v0, $v1
/* 334754 E0020894 000210C0 */ sll $v0, $v0, 3
/* 334758 E0020898 00491021 */ addu $v0, $v0, $t1
/* 33475C E002089C C440006C */ lwc1 $f0, 0x6c($v0)
/* 334760 E00208A0 4407B000 */ mfc1 $a3, $f22
/* 334764 E00208A4 46000007 */ neg.s $f0, $f0
/* 334768 E00208A8 44050000 */ mfc1 $a1, $f0
/* 33476C E00208AC 0220202D */ daddu $a0, $s1, $zero
/* 334770 E00208B0 0C080104 */ jal shim_guRotateF
/* 334774 E00208B4 E7B40010 */ swc1 $f20, 0x10($sp)
/* 334778 E00208B8 0220202D */ daddu $a0, $s1, $zero
/* 33477C E00208BC 27A50018 */ addiu $a1, $sp, 0x18
/* 334780 E00208C0 0C080114 */ jal shim_guMtxCatF
/* 334784 E00208C4 00A0302D */ daddu $a2, $a1, $zero
/* 334788 E00208C8 E7B60010 */ swc1 $f22, 0x10($sp)
/* 33478C E00208CC 8E05FFFC */ lw $a1, -4($s0)
/* 334790 E00208D0 4406A000 */ mfc1 $a2, $f20
/* 334794 E00208D4 4407A000 */ mfc1 $a3, $f20
/* 334798 E00208D8 0C080104 */ jal shim_guRotateF
/* 33479C E00208DC 0220202D */ daddu $a0, $s1, $zero
/* 3347A0 E00208E0 0220202D */ daddu $a0, $s1, $zero
/* 3347A4 E00208E4 27A50018 */ addiu $a1, $sp, 0x18
/* 3347A8 E00208E8 0C080114 */ jal shim_guMtxCatF
/* 3347AC E00208EC 00A0302D */ daddu $a2, $a1, $zero
/* 3347B0 E00208F0 0220202D */ daddu $a0, $s1, $zero
/* 3347B4 E00208F4 8E050000 */ lw $a1, ($s0)
/* 3347B8 E00208F8 26100040 */ addiu $s0, $s0, 0x40
/* 3347BC E00208FC 4407B000 */ mfc1 $a3, $f22
/* 3347C0 E0020900 0C080110 */ jal shim_guScaleF
/* 3347C4 E0020904 00A0302D */ daddu $a2, $a1, $zero
/* 3347C8 E0020908 0220202D */ daddu $a0, $s1, $zero
/* 3347CC E002090C 27A50018 */ addiu $a1, $sp, 0x18
/* 3347D0 E0020910 0C080114 */ jal shim_guMtxCatF
/* 3347D4 E0020914 00A0302D */ daddu $a2, $a1, $zero
/* 3347D8 E0020918 27A40018 */ addiu $a0, $sp, 0x18
/* 3347DC E002091C 96E50000 */ lhu $a1, ($s7)
/* 3347E0 E0020920 8FC20000 */ lw $v0, ($fp)
/* 3347E4 E0020924 00052980 */ sll $a1, $a1, 6
/* 3347E8 E0020928 00B52821 */ addu $a1, $a1, $s5
/* 3347EC E002092C 0C080118 */ jal shim_guMtxF2L
/* 3347F0 E0020930 00452821 */ addu $a1, $v0, $a1
/* 3347F4 E0020934 3C05EB1C */ lui $a1, 0xeb1c
/* 3347F8 E0020938 34A500FF */ ori $a1, $a1, 0xff
/* 3347FC E002093C 3C06DA38 */ lui $a2, 0xda38
/* 334800 E0020940 34C60002 */ ori $a2, $a2, 2
/* 334804 E0020944 3C07D838 */ lui $a3, 0xd838
/* 334808 E0020948 34E70002 */ ori $a3, $a3, 2
/* 33480C E002094C 8E440000 */ lw $a0, ($s2)
/* 334810 E0020950 3C02FA00 */ lui $v0, 0xfa00
/* 334814 E0020954 0080182D */ daddu $v1, $a0, $zero
/* 334818 E0020958 24840008 */ addiu $a0, $a0, 8
/* 33481C E002095C AE440000 */ sw $a0, ($s2)
/* 334820 E0020960 AC620000 */ sw $v0, ($v1)
/* 334824 E0020964 AC650004 */ sw $a1, 4($v1)
/* 334828 E0020968 96E30000 */ lhu $v1, ($s7)
/* 33482C E002096C 24820008 */ addiu $v0, $a0, 8
/* 334830 E0020970 AE420000 */ sw $v0, ($s2)
/* 334834 E0020974 AC860000 */ sw $a2, ($a0)
/* 334838 E0020978 24620001 */ addiu $v0, $v1, 1
/* 33483C E002097C 3063FFFF */ andi $v1, $v1, 0xffff
/* 334840 E0020980 00031980 */ sll $v1, $v1, 6
/* 334844 E0020984 A6E20000 */ sh $v0, ($s7)
/* 334848 E0020988 8FC20000 */ lw $v0, ($fp)
/* 33484C E002098C 00751821 */ addu $v1, $v1, $s5
/* 334850 E0020990 00431021 */ addu $v0, $v0, $v1
/* 334854 E0020994 AC820004 */ sw $v0, 4($a0)
/* 334858 E0020998 24820010 */ addiu $v0, $a0, 0x10
/* 33485C E002099C AE420000 */ sw $v0, ($s2)
/* 334860 E00209A0 3C02DE00 */ lui $v0, 0xde00
/* 334864 E00209A4 AC820008 */ sw $v0, 8($a0)
/* 334868 E00209A8 3C020900 */ lui $v0, 0x900
/* 33486C E00209AC 24422578 */ addiu $v0, $v0, 0x2578
/* 334870 E00209B0 AC82000C */ sw $v0, 0xc($a0)
/* 334874 E00209B4 24820018 */ addiu $v0, $a0, 0x18
/* 334878 E00209B8 AE420000 */ sw $v0, ($s2)
/* 33487C E00209BC 24020040 */ addiu $v0, $zero, 0x40
/* 334880 E00209C0 AC820014 */ sw $v0, 0x14($a0)
/* 334884 E00209C4 2A620003 */ slti $v0, $s3, 3
/* 334888 E00209C8 1440FFA1 */ bnez $v0, .LE0020850
/* 33488C E00209CC AC870010 */ sw $a3, 0x10($a0)
/* 334890 E00209D0 08008316 */ j .LE0020C58
/* 334894 E00209D4 00000000 */ nop
.LE00209D8:
/* 334898 E00209D8 3C03DA38 */ lui $v1, 0xda38
/* 33489C E00209DC 3C06800A */ lui $a2, %hi(gMasterGfxPos)
/* 3348A0 E00209E0 24C6A66C */ addiu $a2, $a2, %lo(gMasterGfxPos)
/* 3348A4 E00209E4 8CC50000 */ lw $a1, ($a2)
/* 3348A8 E00209E8 34630002 */ ori $v1, $v1, 2
/* 3348AC E00209EC 00A0102D */ daddu $v0, $a1, $zero
/* 3348B0 E00209F0 24A50008 */ addiu $a1, $a1, 8
/* 3348B4 E00209F4 ACC50000 */ sw $a1, ($a2)
/* 3348B8 E00209F8 AC430000 */ sw $v1, ($v0)
/* 3348BC E00209FC 8FA90098 */ lw $t1, 0x98($sp)
/* 3348C0 E0020A00 24030002 */ addiu $v1, $zero, 2
/* 3348C4 E0020A04 AC490004 */ sw $t1, 4($v0)
/* 3348C8 E0020A08 00151080 */ sll $v0, $s5, 2
/* 3348CC E0020A0C 8E840038 */ lw $a0, 0x38($s4)
/* 3348D0 E0020A10 3C07E002 */ lui $a3, %hi(D_E0020CA4)
/* 3348D4 E0020A14 00E23821 */ addu $a3, $a3, $v0
/* 3348D8 E0020A18 8CE70CA4 */ lw $a3, %lo(D_E0020CA4)($a3)
/* 3348DC E0020A1C 3C08E002 */ lui $t0, %hi(D_E0020C90)
/* 3348E0 E0020A20 01024021 */ addu $t0, $t0, $v0
/* 3348E4 E0020A24 8D080C90 */ lw $t0, %lo(D_E0020C90)($t0)
/* 3348E8 E0020A28 12A30016 */ beq $s5, $v1, .LE0020A84
/* 3348EC E0020A2C 2AA20003 */ slti $v0, $s5, 3
/* 3348F0 E0020A30 50400005 */ beql $v0, $zero, .LE0020A48
/* 3348F4 E0020A34 24020003 */ addiu $v0, $zero, 3
/* 3348F8 E0020A38 12A00009 */ beqz $s5, .LE0020A60
/* 3348FC E0020A3C 24090010 */ addiu $t1, $zero, 0x10
/* 334900 E0020A40 080082E2 */ j .LE0020B88
/* 334904 E0020A44 00000000 */ nop
.LE0020A48:
/* 334908 E0020A48 12A2001E */ beq $s5, $v0, .LE0020AC4
/* 33490C E0020A4C 24020004 */ addiu $v0, $zero, 4
/* 334910 E0020A50 12A20046 */ beq $s5, $v0, .LE0020B6C
/* 334914 E0020A54 24090020 */ addiu $t1, $zero, 0x20
/* 334918 E0020A58 080082E2 */ j .LE0020B88
/* 33491C E0020A5C 00000000 */ nop
.LE0020A60:
/* 334920 E0020A60 00041900 */ sll $v1, $a0, 4
/* 334924 E0020A64 24020080 */ addiu $v0, $zero, 0x80
/* 334928 E0020A68 0043B823 */ subu $s7, $v0, $v1
/* 33492C E0020A6C 0000F02D */ daddu $fp, $zero, $zero
/* 334930 E0020A70 3C03DC00 */ lui $v1, 0xdc00
/* 334934 E0020A74 346300FF */ ori $v1, $v1, 0xff
/* 334938 E0020A78 24A20008 */ addiu $v0, $a1, 8
/* 33493C E0020A7C 080082AB */ j .LE0020AAC
/* 334940 E0020A80 AFA9009C */ sw $t1, 0x9c($sp)
.LE0020A84:
/* 334944 E0020A84 24090020 */ addiu $t1, $zero, 0x20
/* 334948 E0020A88 AFA9009C */ sw $t1, 0x9c($sp)
/* 33494C E0020A8C 24090030 */ addiu $t1, $zero, 0x30
/* 334950 E0020A90 00041940 */ sll $v1, $a0, 5
/* 334954 E0020A94 24020080 */ addiu $v0, $zero, 0x80
/* 334958 E0020A98 0043B823 */ subu $s7, $v0, $v1
/* 33495C E0020A9C 0000F02D */ daddu $fp, $zero, $zero
/* 334960 E0020AA0 3C03DC00 */ lui $v1, 0xdc00
/* 334964 E0020AA4 346300FF */ ori $v1, $v1, 0xff
/* 334968 E0020AA8 24A20008 */ addiu $v0, $a1, 8
.LE0020AAC:
/* 33496C E0020AAC AFA900A0 */ sw $t1, 0xa0($sp)
/* 334970 E0020AB0 ACC20000 */ sw $v0, ($a2)
/* 334974 E0020AB4 3C02FA00 */ lui $v0, 0xfa00
/* 334978 E0020AB8 ACA20000 */ sw $v0, ($a1)
/* 33497C E0020ABC 080082E2 */ j .LE0020B88
/* 334980 E0020AC0 ACA30004 */ sw $v1, 4($a1)
.LE0020AC4:
/* 334984 E0020AC4 24090020 */ addiu $t1, $zero, 0x20
/* 334988 E0020AC8 00041940 */ sll $v1, $a0, 5
/* 33498C E0020ACC 24020080 */ addiu $v0, $zero, 0x80
/* 334990 E0020AD0 0043B823 */ subu $s7, $v0, $v1
/* 334994 E0020AD4 0000F02D */ daddu $fp, $zero, $zero
/* 334998 E0020AD8 3C039249 */ lui $v1, 0x9249
/* 33499C E0020ADC AFA9009C */ sw $t1, 0x9c($sp)
/* 3349A0 E0020AE0 AFA900A0 */ sw $t1, 0xa0($sp)
/* 3349A4 E0020AE4 8E82002C */ lw $v0, 0x2c($s4)
/* 3349A8 E0020AE8 34632493 */ ori $v1, $v1, 0x2493
/* 3349AC E0020AEC 00022040 */ sll $a0, $v0, 1
/* 3349B0 E0020AF0 00822021 */ addu $a0, $a0, $v0
/* 3349B4 E0020AF4 24A20008 */ addiu $v0, $a1, 8
/* 3349B8 E0020AF8 00830018 */ mult $a0, $v1
/* 3349BC E0020AFC ACC20000 */ sw $v0, ($a2)
/* 3349C0 E0020B00 3C02FA00 */ lui $v0, 0xfa00
/* 3349C4 E0020B04 00041FC3 */ sra $v1, $a0, 0x1f
/* 3349C8 E0020B08 ACA20000 */ sw $v0, ($a1)
/* 3349CC E0020B0C 00004810 */ mfhi $t1
/* 3349D0 E0020B10 01241021 */ addu $v0, $t1, $a0
/* 3349D4 E0020B14 00021083 */ sra $v0, $v0, 2
/* 3349D8 E0020B18 00431823 */ subu $v1, $v0, $v1
/* 3349DC E0020B1C 000310C0 */ sll $v0, $v1, 3
/* 3349E0 E0020B20 00431023 */ subu $v0, $v0, $v1
/* 3349E4 E0020B24 00821823 */ subu $v1, $a0, $v0
/* 3349E8 E0020B28 3C02E002 */ lui $v0, %hi(D_E0020D94)
/* 3349EC E0020B2C 00431021 */ addu $v0, $v0, $v1
/* 3349F0 E0020B30 90420D94 */ lbu $v0, %lo(D_E0020D94)($v0)
/* 3349F4 E0020B34 3C04E002 */ lui $a0, %hi(D_E0020D94 + 0x1)
/* 3349F8 E0020B38 00832021 */ addu $a0, $a0, $v1
/* 3349FC E0020B3C 90840D95 */ lbu $a0, %lo(D_E0020D94 + 0x1)($a0)
/* 334A00 E0020B40 3C01E002 */ lui $at, %hi(D_E0020D94 + 0x2)
/* 334A04 E0020B44 00230821 */ addu $at, $at, $v1
/* 334A08 E0020B48 90230D96 */ lbu $v1, %lo(D_E0020D94 + 0x2)($at)
/* 334A0C E0020B4C 00021600 */ sll $v0, $v0, 0x18
/* 334A10 E0020B50 00042400 */ sll $a0, $a0, 0x10
/* 334A14 E0020B54 00441025 */ or $v0, $v0, $a0
/* 334A18 E0020B58 00031A00 */ sll $v1, $v1, 8
/* 334A1C E0020B5C 00431025 */ or $v0, $v0, $v1
/* 334A20 E0020B60 344200FF */ ori $v0, $v0, 0xff
/* 334A24 E0020B64 080082E2 */ j .LE0020B88
/* 334A28 E0020B68 ACA20004 */ sw $v0, 4($a1)
.LE0020B6C:
/* 334A2C E0020B6C AFA9009C */ sw $t1, 0x9c($sp)
/* 334A30 E0020B70 24090008 */ addiu $t1, $zero, 8
/* 334A34 E0020B74 00041940 */ sll $v1, $a0, 5
/* 334A38 E0020B78 24020080 */ addiu $v0, $zero, 0x80
/* 334A3C E0020B7C 0043B823 */ subu $s7, $v0, $v1
/* 334A40 E0020B80 0000F02D */ daddu $fp, $zero, $zero
/* 334A44 E0020B84 AFA900A0 */ sw $t1, 0xa0($sp)
.LE0020B88:
/* 334A48 E0020B88 10E0000A */ beqz $a3, .LE0020BB4
/* 334A4C E0020B8C 00000000 */ nop
/* 334A50 E0020B90 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 334A54 E0020B94 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 334A58 E0020B98 8C620000 */ lw $v0, ($v1)
/* 334A5C E0020B9C 0040202D */ daddu $a0, $v0, $zero
/* 334A60 E0020BA0 24420008 */ addiu $v0, $v0, 8
/* 334A64 E0020BA4 AC620000 */ sw $v0, ($v1)
/* 334A68 E0020BA8 3C02DE00 */ lui $v0, 0xde00
/* 334A6C E0020BAC AC820000 */ sw $v0, ($a0)
/* 334A70 E0020BB0 AC870004 */ sw $a3, 4($a0)
.LE0020BB4:
/* 334A74 E0020BB4 3C07800A */ lui $a3, %hi(gMasterGfxPos)
/* 334A78 E0020BB8 24E7A66C */ addiu $a3, $a3, %lo(gMasterGfxPos)
/* 334A7C E0020BBC 00171080 */ sll $v0, $s7, 2
/* 334A80 E0020BC0 30420FFF */ andi $v0, $v0, 0xfff
/* 334A84 E0020BC4 00021300 */ sll $v0, $v0, 0xc
/* 334A88 E0020BC8 001E1880 */ sll $v1, $fp, 2
/* 334A8C E0020BCC 30630FFF */ andi $v1, $v1, 0xfff
/* 334A90 E0020BD0 3C04F200 */ lui $a0, 0xf200
/* 334A94 E0020BD4 00641825 */ or $v1, $v1, $a0
/* 334A98 E0020BD8 8CE60000 */ lw $a2, ($a3)
/* 334A9C E0020BDC 00431025 */ or $v0, $v0, $v1
/* 334AA0 E0020BE0 00C0282D */ daddu $a1, $a2, $zero
/* 334AA4 E0020BE4 24C60008 */ addiu $a2, $a2, 8
/* 334AA8 E0020BE8 ACE60000 */ sw $a2, ($a3)
/* 334AAC E0020BEC ACA20000 */ sw $v0, ($a1)
/* 334AB0 E0020BF0 8FA9009C */ lw $t1, 0x9c($sp)
/* 334AB4 E0020BF4 02E91821 */ addu $v1, $s7, $t1
/* 334AB8 E0020BF8 00031880 */ sll $v1, $v1, 2
/* 334ABC E0020BFC 30630FFF */ andi $v1, $v1, 0xfff
/* 334AC0 E0020C00 8FA900A0 */ lw $t1, 0xa0($sp)
/* 334AC4 E0020C04 00031B00 */ sll $v1, $v1, 0xc
/* 334AC8 E0020C08 03C91021 */ addu $v0, $fp, $t1
/* 334ACC E0020C0C 00021080 */ sll $v0, $v0, 2
/* 334AD0 E0020C10 30420FFF */ andi $v0, $v0, 0xfff
/* 334AD4 E0020C14 00621825 */ or $v1, $v1, $v0
/* 334AD8 E0020C18 11000006 */ beqz $t0, .LE0020C34
/* 334ADC E0020C1C ACA30004 */ sw $v1, 4($a1)
/* 334AE0 E0020C20 24C20008 */ addiu $v0, $a2, 8
/* 334AE4 E0020C24 ACE20000 */ sw $v0, ($a3)
/* 334AE8 E0020C28 3C02DE00 */ lui $v0, 0xde00
/* 334AEC E0020C2C ACC20000 */ sw $v0, ($a2)
/* 334AF0 E0020C30 ACC80004 */ sw $t0, 4($a2)
.LE0020C34:
/* 334AF4 E0020C34 3C04D838 */ lui $a0, 0xd838
/* 334AF8 E0020C38 8CE20000 */ lw $v0, ($a3)
/* 334AFC E0020C3C 34840002 */ ori $a0, $a0, 2
/* 334B00 E0020C40 0040182D */ daddu $v1, $v0, $zero
/* 334B04 E0020C44 24420008 */ addiu $v0, $v0, 8
/* 334B08 E0020C48 ACE20000 */ sw $v0, ($a3)
/* 334B0C E0020C4C 24020040 */ addiu $v0, $zero, 0x40
/* 334B10 E0020C50 AC640000 */ sw $a0, ($v1)
/* 334B14 E0020C54 AC620004 */ sw $v0, 4($v1)
.LE0020C58:
/* 334B18 E0020C58 8FBF00CC */ lw $ra, 0xcc($sp)
/* 334B1C E0020C5C 8FBE00C8 */ lw $fp, 0xc8($sp)
/* 334B20 E0020C60 8FB700C4 */ lw $s7, 0xc4($sp)
/* 334B24 E0020C64 8FB600C0 */ lw $s6, 0xc0($sp)
/* 334B28 E0020C68 8FB500BC */ lw $s5, 0xbc($sp)
/* 334B2C E0020C6C 8FB400B8 */ lw $s4, 0xb8($sp)
/* 334B30 E0020C70 8FB300B4 */ lw $s3, 0xb4($sp)
/* 334B34 E0020C74 8FB200B0 */ lw $s2, 0xb0($sp)
/* 334B38 E0020C78 8FB100AC */ lw $s1, 0xac($sp)
/* 334B3C E0020C7C 8FB000A8 */ lw $s0, 0xa8($sp)
/* 334B40 E0020C80 D7B600D8 */ ldc1 $f22, 0xd8($sp)
/* 334B44 E0020C84 D7B400D0 */ ldc1 $f20, 0xd0($sp)
/* 334B48 E0020C88 03E00008 */ jr $ra
/* 334B4C E0020C8C 27BD00E0 */ addiu $sp, $sp, 0xe0

View File

@ -1,508 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00D6EA0
.double 0.2
dlabel D_E00D6EA8
.double 0.1
dlabel D_E00D6EB0
.double 0.3
dlabel jtbl_E00D6EB8
.word LE00D6204_3D5224, LE00D6204_3D5224, LE00D6204_3D5224, LE00D6264_3D5284, LE00D65A0_3D55C0, LE00D6264_3D5284, LE00D62C0_3D52E0, LE00D6320_3D5340, LE00D6380_3D53A0, LE00D63E4_3D5404, LE00D6494_3D54B4, LE00D652C_3D554C, LE00D65A0_3D55C0, 0
dlabel D_E00D6EF0
.double 0.6
dlabel D_E00D6EF8
.double 0.6
dlabel D_E00D6F00
.double 0.05
dlabel D_E00D6F08
.double 0.6
.section .text
glabel energy_in_out_main
/* 3D5020 E00D6000 27BDFF78 */ addiu $sp, $sp, -0x88
/* 3D5024 E00D6004 F7B40060 */ sdc1 $f20, 0x60($sp)
/* 3D5028 E00D6008 4485A000 */ mtc1 $a1, $f20
/* 3D502C E00D600C F7B60068 */ sdc1 $f22, 0x68($sp)
/* 3D5030 E00D6010 4486B000 */ mtc1 $a2, $f22
/* 3D5034 E00D6014 F7B80070 */ sdc1 $f24, 0x70($sp)
/* 3D5038 E00D6018 4487C000 */ mtc1 $a3, $f24
/* 3D503C E00D601C AFB70054 */ sw $s7, 0x54($sp)
/* 3D5040 E00D6020 0080B82D */ daddu $s7, $a0, $zero
/* 3D5044 E00D6024 AFB00038 */ sw $s0, 0x38($sp)
/* 3D5048 E00D6028 8FB0009C */ lw $s0, 0x9c($sp)
/* 3D504C E00D602C 27A40010 */ addiu $a0, $sp, 0x10
/* 3D5050 E00D6030 AFBF005C */ sw $ra, 0x5c($sp)
/* 3D5054 E00D6034 AFBE0058 */ sw $fp, 0x58($sp)
/* 3D5058 E00D6038 AFB60050 */ sw $s6, 0x50($sp)
/* 3D505C E00D603C AFB5004C */ sw $s5, 0x4c($sp)
/* 3D5060 E00D6040 AFB40048 */ sw $s4, 0x48($sp)
/* 3D5064 E00D6044 AFB30044 */ sw $s3, 0x44($sp)
/* 3D5068 E00D6048 AFB20040 */ sw $s2, 0x40($sp)
/* 3D506C E00D604C AFB1003C */ sw $s1, 0x3c($sp)
/* 3D5070 E00D6050 F7BC0080 */ sdc1 $f28, 0x80($sp)
/* 3D5074 E00D6054 F7BA0078 */ sdc1 $f26, 0x78($sp)
/* 3D5078 E00D6058 3C08E00D */ lui $t0, %hi(D_E00D6E74)
/* 3D507C E00D605C 01174021 */ addu $t0, $t0, $s7
/* 3D5080 E00D6060 91086E74 */ lbu $t0, %lo(D_E00D6E74)($t0)
/* 3D5084 E00D6064 3C02E00D */ lui $v0, %hi(energy_in_out_init)
/* 3D5088 E00D6068 24426718 */ addiu $v0, $v0, %lo(energy_in_out_init)
/* 3D508C E00D606C AFA20018 */ sw $v0, 0x18($sp)
/* 3D5090 E00D6070 3C02E00D */ lui $v0, %hi(energy_in_out_update)
/* 3D5094 E00D6074 24426720 */ addiu $v0, $v0, %lo(energy_in_out_update)
/* 3D5098 E00D6078 AFA2001C */ sw $v0, 0x1c($sp)
/* 3D509C E00D607C 3C02E00D */ lui $v0, %hi(energy_in_out_render)
/* 3D50A0 E00D6080 2442693C */ addiu $v0, $v0, %lo(energy_in_out_render)
/* 3D50A4 E00D6084 AFA20020 */ sw $v0, 0x20($sp)
/* 3D50A8 E00D6088 2402006B */ addiu $v0, $zero, 0x6b
/* 3D50AC E00D608C AFA00010 */ sw $zero, 0x10($sp)
/* 3D50B0 E00D6090 AFA00024 */ sw $zero, 0x24($sp)
/* 3D50B4 E00D6094 AFA20014 */ sw $v0, 0x14($sp)
/* 3D50B8 E00D6098 0C080124 */ jal shim_create_effect_instance
/* 3D50BC E00D609C AFA8002C */ sw $t0, 0x2c($sp)
/* 3D50C0 E00D60A0 8FA9002C */ lw $t1, 0x2c($sp)
/* 3D50C4 E00D60A4 AFA20028 */ sw $v0, 0x28($sp)
/* 3D50C8 E00D60A8 000920C0 */ sll $a0, $t1, 3
/* 3D50CC E00D60AC 00892021 */ addu $a0, $a0, $t1
/* 3D50D0 E00D60B0 000420C0 */ sll $a0, $a0, 3
/* 3D50D4 E00D60B4 0C08012C */ jal shim_general_heap_malloc
/* 3D50D8 E00D60B8 AC490008 */ sw $t1, 8($v0)
/* 3D50DC E00D60BC 0040902D */ daddu $s2, $v0, $zero
/* 3D50E0 E00D60C0 8FA80028 */ lw $t0, 0x28($sp)
/* 3D50E4 E00D60C4 0240A02D */ daddu $s4, $s2, $zero
/* 3D50E8 E00D60C8 16400003 */ bnez $s2, .LE00D60D8
/* 3D50EC E00D60CC AD12000C */ sw $s2, 0xc($t0)
.LE00D60D0:
/* 3D50F0 E00D60D0 08035834 */ j .LE00D60D0
/* 3D50F4 E00D60D4 00000000 */ nop
.LE00D60D8:
/* 3D50F8 E00D60D8 AE570000 */ sw $s7, ($s2)
/* 3D50FC E00D60DC 1E000004 */ bgtz $s0, .LE00D60F0
/* 3D5100 E00D60E0 AE400014 */ sw $zero, 0x14($s2)
/* 3D5104 E00D60E4 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3D5108 E00D60E8 0803583D */ j .LE00D60F4
/* 3D510C E00D60EC AE420010 */ sw $v0, 0x10($s2)
.LE00D60F0:
/* 3D5110 E00D60F0 AE500010 */ sw $s0, 0x10($s2)
.LE00D60F4:
/* 3D5114 E00D60F4 24040168 */ addiu $a0, $zero, 0x168
/* 3D5118 E00D60F8 AE400024 */ sw $zero, 0x24($s2)
/* 3D511C E00D60FC E6540004 */ swc1 $f20, 4($s2)
/* 3D5120 E00D6100 E6560008 */ swc1 $f22, 8($s2)
/* 3D5124 E00D6104 E658000C */ swc1 $f24, 0xc($s2)
/* 3D5128 E00D6108 C7A00098 */ lwc1 $f0, 0x98($sp)
/* 3D512C E00D610C 240200FF */ addiu $v0, $zero, 0xff
/* 3D5130 E00D6110 AE420018 */ sw $v0, 0x18($s2)
/* 3D5134 E00D6114 AE42001C */ sw $v0, 0x1c($s2)
/* 3D5138 E00D6118 AE420020 */ sw $v0, 0x20($s2)
/* 3D513C E00D611C AE420028 */ sw $v0, 0x28($s2)
/* 3D5140 E00D6120 E6400034 */ swc1 $f0, 0x34($s2)
/* 3D5144 E00D6124 3C013F80 */ lui $at, 0x3f80
/* 3D5148 E00D6128 44810000 */ mtc1 $at, $f0
/* 3D514C E00D612C 240200F5 */ addiu $v0, $zero, 0xf5
/* 3D5150 E00D6130 AE42002C */ sw $v0, 0x2c($s2)
/* 3D5154 E00D6134 AE400030 */ sw $zero, 0x30($s2)
/* 3D5158 E00D6138 E6400044 */ swc1 $f0, 0x44($s2)
/* 3D515C E00D613C 3C02E00D */ lui $v0, %hi(D_E00D6E84)
/* 3D5160 E00D6140 00571021 */ addu $v0, $v0, $s7
/* 3D5164 E00D6144 90426E84 */ lbu $v0, %lo(D_E00D6E84)($v0)
/* 3D5168 E00D6148 24110001 */ addiu $s1, $zero, 1
/* 3D516C E00D614C 44820000 */ mtc1 $v0, $f0
/* 3D5170 E00D6150 00000000 */ nop
/* 3D5174 E00D6154 46800020 */ cvt.s.w $f0, $f0
/* 3D5178 E00D6158 0C080138 */ jal shim_rand_int
/* 3D517C E00D615C E6400038 */ swc1 $f0, 0x38($s2)
/* 3D5180 E00D6160 8FA90028 */ lw $t1, 0x28($sp)
/* 3D5184 E00D6164 8D230008 */ lw $v1, 8($t1)
/* 3D5188 E00D6168 4482E000 */ mtc1 $v0, $f28
/* 3D518C E00D616C 00000000 */ nop
/* 3D5190 E00D6170 4680E720 */ cvt.s.w $f28, $f28
/* 3D5194 E00D6174 0223182A */ slt $v1, $s1, $v1
/* 3D5198 E00D6178 10600155 */ beqz $v1, .LE00D66D0
/* 3D519C E00D617C 26520048 */ addiu $s2, $s2, 0x48
/* 3D51A0 E00D6180 3C135555 */ lui $s3, 0x5555
/* 3D51A4 E00D6184 36735556 */ ori $s3, $s3, 0x5556
/* 3D51A8 E00D6188 24160014 */ addiu $s6, $zero, 0x14
/* 3D51AC E00D618C 241E000A */ addiu $fp, $zero, 0xa
/* 3D51B0 E00D6190 2650003C */ addiu $s0, $s2, 0x3c
/* 3D51B4 E00D6194 0000A82D */ daddu $s5, $zero, $zero
/* 3D51B8 E00D6198 001717C3 */ sra $v0, $s7, 0x1f
/* 3D51BC E00D619C 02F30018 */ mult $s7, $s3
/* 3D51C0 E00D61A0 3C01E00D */ lui $at, %hi(D_E00D6EA0)
/* 3D51C4 E00D61A4 D4366EA0 */ ldc1 $f22, %lo(D_E00D6EA0)($at)
/* 3D51C8 E00D61A8 3C01E00D */ lui $at, %hi(D_E00D6EA8)
/* 3D51CC E00D61AC D43A6EA8 */ ldc1 $f26, %lo(D_E00D6EA8)($at)
/* 3D51D0 E00D61B0 3C013FF0 */ lui $at, 0x3ff0
/* 3D51D4 E00D61B4 4481A800 */ mtc1 $at, $f21
/* 3D51D8 E00D61B8 4480A000 */ mtc1 $zero, $f20
/* 3D51DC E00D61BC 3C01E00D */ lui $at, %hi(D_E00D6EB0)
/* 3D51E0 E00D61C0 D4386EB0 */ ldc1 $f24, %lo(D_E00D6EB0)($at)
/* 3D51E4 E00D61C4 00004010 */ mfhi $t0
/* 3D51E8 E00D61C8 01024023 */ subu $t0, $t0, $v0
/* 3D51EC E00D61CC AFA80030 */ sw $t0, 0x30($sp)
.LE00D61D0:
/* 3D51F0 E00D61D0 8FA90030 */ lw $t1, 0x30($sp)
/* 3D51F4 E00D61D4 00091040 */ sll $v0, $t1, 1
/* 3D51F8 E00D61D8 00491021 */ addu $v0, $v0, $t1
/* 3D51FC E00D61DC 02E21023 */ subu $v0, $s7, $v0
/* 3D5200 E00D61E0 AE420000 */ sw $v0, ($s2)
/* 3D5204 E00D61E4 2EE2000D */ sltiu $v0, $s7, 0xd
/* 3D5208 E00D61E8 1040010C */ beqz $v0, .LE00D661C
/* 3D520C E00D61EC 00171080 */ sll $v0, $s7, 2
/* 3D5210 E00D61F0 3C01E00D */ lui $at, %hi(jtbl_E00D6EB8)
/* 3D5214 E00D61F4 00220821 */ addu $at, $at, $v0
/* 3D5218 E00D61F8 8C226EB8 */ lw $v0, %lo(jtbl_E00D6EB8)($at)
/* 3D521C E00D61FC 00400008 */ jr $v0
/* 3D5220 E00D6200 00000000 */ nop
dlabel LE00D6204_3D5224
/* 3D5224 E00D6204 0C080138 */ jal shim_rand_int
/* 3D5228 E00D6208 2404000A */ addiu $a0, $zero, 0xa
/* 3D522C E00D620C 44821000 */ mtc1 $v0, $f2
/* 3D5230 E00D6210 00000000 */ nop
/* 3D5234 E00D6214 468010A1 */ cvt.d.w $f2, $f2
/* 3D5238 E00D6218 46361082 */ mul.d $f2, $f2, $f22
/* 3D523C E00D621C 00000000 */ nop
/* 3D5240 E00D6220 02330018 */ mult $s1, $s3
/* 3D5244 E00D6224 00111FC3 */ sra $v1, $s1, 0x1f
/* 3D5248 E00D6228 00004010 */ mfhi $t0
/* 3D524C E00D622C 01031823 */ subu $v1, $t0, $v1
/* 3D5250 E00D6230 00031040 */ sll $v0, $v1, 1
/* 3D5254 E00D6234 00431021 */ addu $v0, $v0, $v1
/* 3D5258 E00D6238 02221023 */ subu $v0, $s1, $v0
/* 3D525C E00D623C 44820000 */ mtc1 $v0, $f0
/* 3D5260 E00D6240 00000000 */ nop
/* 3D5264 E00D6244 46800021 */ cvt.d.w $f0, $f0
/* 3D5268 E00D6248 463A0002 */ mul.d $f0, $f0, $f26
/* 3D526C E00D624C 00000000 */ nop
/* 3D5270 E00D6250 46361080 */ add.d $f2, $f2, $f22
/* 3D5274 E00D6254 AE16FFD4 */ sw $s6, -0x2c($s0)
/* 3D5278 E00D6258 AE000004 */ sw $zero, 4($s0)
/* 3D527C E00D625C 08035982 */ j .LE00D6608
/* 3D5280 E00D6260 46201087 */ neg.d $f2, $f2
dlabel LE00D6264_3D5284
/* 3D5284 E00D6264 0C080138 */ jal shim_rand_int
/* 3D5288 E00D6268 2404000A */ addiu $a0, $zero, 0xa
/* 3D528C E00D626C 44821000 */ mtc1 $v0, $f2
/* 3D5290 E00D6270 00000000 */ nop
/* 3D5294 E00D6274 468010A1 */ cvt.d.w $f2, $f2
/* 3D5298 E00D6278 46361082 */ mul.d $f2, $f2, $f22
/* 3D529C E00D627C 00000000 */ nop
/* 3D52A0 E00D6280 02330018 */ mult $s1, $s3
/* 3D52A4 E00D6284 00111FC3 */ sra $v1, $s1, 0x1f
/* 3D52A8 E00D6288 00004010 */ mfhi $t0
/* 3D52AC E00D628C 01031823 */ subu $v1, $t0, $v1
/* 3D52B0 E00D6290 00031040 */ sll $v0, $v1, 1
/* 3D52B4 E00D6294 00431021 */ addu $v0, $v0, $v1
/* 3D52B8 E00D6298 02221023 */ subu $v0, $s1, $v0
/* 3D52BC E00D629C 44820000 */ mtc1 $v0, $f0
/* 3D52C0 E00D62A0 00000000 */ nop
/* 3D52C4 E00D62A4 46800021 */ cvt.d.w $f0, $f0
/* 3D52C8 E00D62A8 463A0002 */ mul.d $f0, $f0, $f26
/* 3D52CC E00D62AC 00000000 */ nop
/* 3D52D0 E00D62B0 46361080 */ add.d $f2, $f2, $f22
/* 3D52D4 E00D62B4 AE16FFD4 */ sw $s6, -0x2c($s0)
/* 3D52D8 E00D62B8 08035982 */ j .LE00D6608
/* 3D52DC E00D62BC AE000004 */ sw $zero, 4($s0)
dlabel LE00D62C0_3D52E0
/* 3D52E0 E00D62C0 0C080138 */ jal shim_rand_int
/* 3D52E4 E00D62C4 2404000A */ addiu $a0, $zero, 0xa
/* 3D52E8 E00D62C8 02330018 */ mult $s1, $s3
/* 3D52EC E00D62CC 001127C3 */ sra $a0, $s1, 0x1f
/* 3D52F0 E00D62D0 00004010 */ mfhi $t0
/* 3D52F4 E00D62D4 01042023 */ subu $a0, $t0, $a0
/* 3D52F8 E00D62D8 00041840 */ sll $v1, $a0, 1
/* 3D52FC E00D62DC 00641821 */ addu $v1, $v1, $a0
/* 3D5300 E00D62E0 02231823 */ subu $v1, $s1, $v1
/* 3D5304 E00D62E4 44830000 */ mtc1 $v1, $f0
/* 3D5308 E00D62E8 00000000 */ nop
/* 3D530C E00D62EC 46800021 */ cvt.d.w $f0, $f0
/* 3D5310 E00D62F0 46380002 */ mul.d $f0, $f0, $f24
/* 3D5314 E00D62F4 00000000 */ nop
/* 3D5318 E00D62F8 24420004 */ addiu $v0, $v0, 4
/* 3D531C E00D62FC 00021023 */ negu $v0, $v0
/* 3D5320 E00D6300 44821000 */ mtc1 $v0, $f2
/* 3D5324 E00D6304 00000000 */ nop
/* 3D5328 E00D6308 468010A0 */ cvt.s.w $f2, $f2
/* 3D532C E00D630C E602FFFC */ swc1 $f2, -4($s0)
/* 3D5330 E00D6310 4620A001 */ sub.d $f0, $f20, $f0
/* 3D5334 E00D6314 AE1EFFD4 */ sw $fp, -0x2c($s0)
/* 3D5338 E00D6318 08035985 */ j .LE00D6614
/* 3D533C E00D631C AE000004 */ sw $zero, 4($s0)
dlabel LE00D6320_3D5340
/* 3D5340 E00D6320 0C080138 */ jal shim_rand_int
/* 3D5344 E00D6324 2404000A */ addiu $a0, $zero, 0xa
/* 3D5348 E00D6328 02330018 */ mult $s1, $s3
/* 3D534C E00D632C 001127C3 */ sra $a0, $s1, 0x1f
/* 3D5350 E00D6330 00004010 */ mfhi $t0
/* 3D5354 E00D6334 01042023 */ subu $a0, $t0, $a0
/* 3D5358 E00D6338 00041840 */ sll $v1, $a0, 1
/* 3D535C E00D633C 00641821 */ addu $v1, $v1, $a0
/* 3D5360 E00D6340 02231823 */ subu $v1, $s1, $v1
/* 3D5364 E00D6344 44830000 */ mtc1 $v1, $f0
/* 3D5368 E00D6348 00000000 */ nop
/* 3D536C E00D634C 46800021 */ cvt.d.w $f0, $f0
/* 3D5370 E00D6350 46380002 */ mul.d $f0, $f0, $f24
/* 3D5374 E00D6354 00000000 */ nop
/* 3D5378 E00D6358 24420004 */ addiu $v0, $v0, 4
/* 3D537C E00D635C 00021023 */ negu $v0, $v0
/* 3D5380 E00D6360 44821000 */ mtc1 $v0, $f2
/* 3D5384 E00D6364 00000000 */ nop
/* 3D5388 E00D6368 468010A0 */ cvt.s.w $f2, $f2
/* 3D538C E00D636C E602FFFC */ swc1 $f2, -4($s0)
/* 3D5390 E00D6370 4620A001 */ sub.d $f0, $f20, $f0
/* 3D5394 E00D6374 AE1EFFD4 */ sw $fp, -0x2c($s0)
/* 3D5398 E00D6378 08035985 */ j .LE00D6614
/* 3D539C E00D637C AE000004 */ sw $zero, 4($s0)
dlabel LE00D6380_3D53A0
/* 3D53A0 E00D6380 0C080138 */ jal shim_rand_int
/* 3D53A4 E00D6384 2404000A */ addiu $a0, $zero, 0xa
/* 3D53A8 E00D6388 44821000 */ mtc1 $v0, $f2
/* 3D53AC E00D638C 00000000 */ nop
/* 3D53B0 E00D6390 468010A1 */ cvt.d.w $f2, $f2
/* 3D53B4 E00D6394 46361082 */ mul.d $f2, $f2, $f22
/* 3D53B8 E00D6398 00000000 */ nop
/* 3D53BC E00D639C 02330018 */ mult $s1, $s3
/* 3D53C0 E00D63A0 00111FC3 */ sra $v1, $s1, 0x1f
/* 3D53C4 E00D63A4 00004010 */ mfhi $t0
/* 3D53C8 E00D63A8 01031823 */ subu $v1, $t0, $v1
/* 3D53CC E00D63AC 00031040 */ sll $v0, $v1, 1
/* 3D53D0 E00D63B0 00431021 */ addu $v0, $v0, $v1
/* 3D53D4 E00D63B4 02221023 */ subu $v0, $s1, $v0
/* 3D53D8 E00D63B8 44820000 */ mtc1 $v0, $f0
/* 3D53DC E00D63BC 00000000 */ nop
/* 3D53E0 E00D63C0 46800021 */ cvt.d.w $f0, $f0
/* 3D53E4 E00D63C4 46380002 */ mul.d $f0, $f0, $f24
/* 3D53E8 E00D63C8 00000000 */ nop
/* 3D53EC E00D63CC 3C01E00D */ lui $at, %hi(D_E00D6EF0)
/* 3D53F0 E00D63D0 D4246EF0 */ ldc1 $f4, %lo(D_E00D6EF0)($at)
/* 3D53F4 E00D63D4 3C01BF80 */ lui $at, 0xbf80
/* 3D53F8 E00D63D8 44813000 */ mtc1 $at, $f6
/* 3D53FC E00D63DC 08035980 */ j .LE00D6600
/* 3D5400 E00D63E0 46241080 */ add.d $f2, $f2, $f4
dlabel LE00D63E4_3D5404
/* 3D5404 E00D63E4 0C080138 */ jal shim_rand_int
/* 3D5408 E00D63E8 2404000A */ addiu $a0, $zero, 0xa
/* 3D540C E00D63EC 44821000 */ mtc1 $v0, $f2
/* 3D5410 E00D63F0 00000000 */ nop
/* 3D5414 E00D63F4 468010A1 */ cvt.d.w $f2, $f2
/* 3D5418 E00D63F8 46361082 */ mul.d $f2, $f2, $f22
/* 3D541C E00D63FC 00000000 */ nop
/* 3D5420 E00D6400 02330018 */ mult $s1, $s3
/* 3D5424 E00D6404 00111FC3 */ sra $v1, $s1, 0x1f
/* 3D5428 E00D6408 00004010 */ mfhi $t0
/* 3D542C E00D640C 01031823 */ subu $v1, $t0, $v1
/* 3D5430 E00D6410 00031040 */ sll $v0, $v1, 1
/* 3D5434 E00D6414 00431021 */ addu $v0, $v0, $v1
/* 3D5438 E00D6418 02221023 */ subu $v0, $s1, $v0
/* 3D543C E00D641C 44820000 */ mtc1 $v0, $f0
/* 3D5440 E00D6420 00000000 */ nop
/* 3D5444 E00D6424 46800021 */ cvt.d.w $f0, $f0
/* 3D5448 E00D6428 46380002 */ mul.d $f0, $f0, $f24
/* 3D544C E00D642C 00000000 */ nop
/* 3D5450 E00D6430 3C01E00D */ lui $at, %hi(D_E00D6EF8)
/* 3D5454 E00D6434 D4246EF8 */ ldc1 $f4, %lo(D_E00D6EF8)($at)
/* 3D5458 E00D6438 3C01C000 */ lui $at, 0xc000
/* 3D545C E00D643C 44813000 */ mtc1 $at, $f6
/* 3D5460 E00D6440 AE16FFD4 */ sw $s6, -0x2c($s0)
/* 3D5464 E00D6444 46241080 */ add.d $f2, $f2, $f4
/* 3D5468 E00D6448 E6060004 */ swc1 $f6, 4($s0)
/* 3D546C E00D644C 240200FF */ addiu $v0, $zero, 0xff
/* 3D5470 E00D6450 46201087 */ neg.d $f2, $f2
/* 3D5474 E00D6454 4620A001 */ sub.d $f0, $f20, $f0
/* 3D5478 E00D6458 462010A0 */ cvt.s.d $f2, $f2
/* 3D547C E00D645C E602FFFC */ swc1 $f2, -4($s0)
/* 3D5480 E00D6460 46200020 */ cvt.s.d $f0, $f0
/* 3D5484 E00D6464 E600FFF8 */ swc1 $f0, -8($s0)
/* 3D5488 E00D6468 AE820018 */ sw $v0, 0x18($s4)
/* 3D548C E00D646C 240200F5 */ addiu $v0, $zero, 0xf5
/* 3D5490 E00D6470 AE82001C */ sw $v0, 0x1c($s4)
/* 3D5494 E00D6474 240200D7 */ addiu $v0, $zero, 0xd7
/* 3D5498 E00D6478 AE820020 */ sw $v0, 0x20($s4)
/* 3D549C E00D647C 240200DC */ addiu $v0, $zero, 0xdc
/* 3D54A0 E00D6480 AE820028 */ sw $v0, 0x28($s4)
/* 3D54A4 E00D6484 2402003C */ addiu $v0, $zero, 0x3c
/* 3D54A8 E00D6488 AE82002C */ sw $v0, 0x2c($s4)
/* 3D54AC E00D648C 08035987 */ j .LE00D661C
/* 3D54B0 E00D6490 AE9E0030 */ sw $fp, 0x30($s4)
dlabel LE00D6494_3D54B4
/* 3D54B4 E00D6494 0C080138 */ jal shim_rand_int
/* 3D54B8 E00D6498 2404000A */ addiu $a0, $zero, 0xa
/* 3D54BC E00D649C 44821000 */ mtc1 $v0, $f2
/* 3D54C0 E00D64A0 00000000 */ nop
/* 3D54C4 E00D64A4 468010A1 */ cvt.d.w $f2, $f2
/* 3D54C8 E00D64A8 463A1082 */ mul.d $f2, $f2, $f26
/* 3D54CC E00D64AC 00000000 */ nop
/* 3D54D0 E00D64B0 02330018 */ mult $s1, $s3
/* 3D54D4 E00D64B4 001127C3 */ sra $a0, $s1, 0x1f
/* 3D54D8 E00D64B8 00004010 */ mfhi $t0
/* 3D54DC E00D64BC 01042023 */ subu $a0, $t0, $a0
/* 3D54E0 E00D64C0 00041840 */ sll $v1, $a0, 1
/* 3D54E4 E00D64C4 00641821 */ addu $v1, $v1, $a0
/* 3D54E8 E00D64C8 02231823 */ subu $v1, $s1, $v1
/* 3D54EC E00D64CC 44832000 */ mtc1 $v1, $f4
/* 3D54F0 E00D64D0 00000000 */ nop
/* 3D54F4 E00D64D4 46802121 */ cvt.d.w $f4, $f4
/* 3D54F8 E00D64D8 46382102 */ mul.d $f4, $f4, $f24
/* 3D54FC E00D64DC 00000000 */ nop
/* 3D5500 E00D64E0 4624A101 */ sub.d $f4, $f20, $f4
/* 3D5504 E00D64E4 3C013FE0 */ lui $at, 0x3fe0
/* 3D5508 E00D64E8 44810800 */ mtc1 $at, $f1
/* 3D550C E00D64EC 44800000 */ mtc1 $zero, $f0
/* 3D5510 E00D64F0 00000000 */ nop
/* 3D5514 E00D64F4 46202102 */ mul.d $f4, $f4, $f0
/* 3D5518 E00D64F8 00000000 */ nop
/* 3D551C E00D64FC 3C014000 */ lui $at, 0x4000
/* 3D5520 E00D6500 44810800 */ mtc1 $at, $f1
/* 3D5524 E00D6504 44800000 */ mtc1 $zero, $f0
/* 3D5528 E00D6508 00000000 */ nop
/* 3D552C E00D650C 46201080 */ add.d $f2, $f2, $f0
/* 3D5530 E00D6510 AE1EFFD4 */ sw $fp, -0x2c($s0)
/* 3D5534 E00D6514 AE000004 */ sw $zero, 4($s0)
/* 3D5538 E00D6518 462010A0 */ cvt.s.d $f2, $f2
/* 3D553C E00D651C E602FFFC */ swc1 $f2, -4($s0)
/* 3D5540 E00D6520 46202120 */ cvt.s.d $f4, $f4
/* 3D5544 E00D6524 08035987 */ j .LE00D661C
/* 3D5548 E00D6528 E604FFF8 */ swc1 $f4, -8($s0)
dlabel LE00D652C_3D554C
/* 3D554C E00D652C 0C080138 */ jal shim_rand_int
/* 3D5550 E00D6530 2404000A */ addiu $a0, $zero, 0xa
/* 3D5554 E00D6534 3C01E00D */ lui $at, %hi(D_E00D6F00)
/* 3D5558 E00D6538 D4206F00 */ ldc1 $f0, %lo(D_E00D6F00)($at)
/* 3D555C E00D653C 44821000 */ mtc1 $v0, $f2
/* 3D5560 E00D6540 00000000 */ nop
/* 3D5564 E00D6544 468010A1 */ cvt.d.w $f2, $f2
/* 3D5568 E00D6548 46201082 */ mul.d $f2, $f2, $f0
/* 3D556C E00D654C 00000000 */ nop
/* 3D5570 E00D6550 02330018 */ mult $s1, $s3
/* 3D5574 E00D6554 00111FC3 */ sra $v1, $s1, 0x1f
/* 3D5578 E00D6558 00004010 */ mfhi $t0
/* 3D557C E00D655C 01031823 */ subu $v1, $t0, $v1
/* 3D5580 E00D6560 00031040 */ sll $v0, $v1, 1
/* 3D5584 E00D6564 00431021 */ addu $v0, $v0, $v1
/* 3D5588 E00D6568 02221023 */ subu $v0, $s1, $v0
/* 3D558C E00D656C 44820000 */ mtc1 $v0, $f0
/* 3D5590 E00D6570 00000000 */ nop
/* 3D5594 E00D6574 46800021 */ cvt.d.w $f0, $f0
/* 3D5598 E00D6578 46380002 */ mul.d $f0, $f0, $f24
/* 3D559C E00D657C 00000000 */ nop
/* 3D55A0 E00D6580 3C01BF80 */ lui $at, 0xbf80
/* 3D55A4 E00D6584 44812000 */ mtc1 $at, $f4
/* 3D55A8 E00D6588 00000000 */ nop
/* 3D55AC E00D658C E6040004 */ swc1 $f4, 4($s0)
/* 3D55B0 E00D6590 46361080 */ add.d $f2, $f2, $f22
/* 3D55B4 E00D6594 2402001E */ addiu $v0, $zero, 0x1e
/* 3D55B8 E00D6598 08035982 */ j .LE00D6608
/* 3D55BC E00D659C AE02FFD4 */ sw $v0, -0x2c($s0)
dlabel LE00D65A0_3D55C0
/* 3D55C0 E00D65A0 0C080138 */ jal shim_rand_int
/* 3D55C4 E00D65A4 2404000A */ addiu $a0, $zero, 0xa
/* 3D55C8 E00D65A8 44821000 */ mtc1 $v0, $f2
/* 3D55CC E00D65AC 00000000 */ nop
/* 3D55D0 E00D65B0 468010A1 */ cvt.d.w $f2, $f2
/* 3D55D4 E00D65B4 46361082 */ mul.d $f2, $f2, $f22
/* 3D55D8 E00D65B8 00000000 */ nop
/* 3D55DC E00D65BC 02330018 */ mult $s1, $s3
/* 3D55E0 E00D65C0 00111FC3 */ sra $v1, $s1, 0x1f
/* 3D55E4 E00D65C4 00004010 */ mfhi $t0
/* 3D55E8 E00D65C8 01031823 */ subu $v1, $t0, $v1
/* 3D55EC E00D65CC 00031040 */ sll $v0, $v1, 1
/* 3D55F0 E00D65D0 00431021 */ addu $v0, $v0, $v1
/* 3D55F4 E00D65D4 02221023 */ subu $v0, $s1, $v0
/* 3D55F8 E00D65D8 44820000 */ mtc1 $v0, $f0
/* 3D55FC E00D65DC 00000000 */ nop
/* 3D5600 E00D65E0 46800021 */ cvt.d.w $f0, $f0
/* 3D5604 E00D65E4 46380002 */ mul.d $f0, $f0, $f24
/* 3D5608 E00D65E8 00000000 */ nop
/* 3D560C E00D65EC 3C01E00D */ lui $at, %hi(D_E00D6F08)
/* 3D5610 E00D65F0 D4246F08 */ ldc1 $f4, %lo(D_E00D6F08)($at)
/* 3D5614 E00D65F4 3C01C000 */ lui $at, 0xc000
/* 3D5618 E00D65F8 44813000 */ mtc1 $at, $f6
/* 3D561C E00D65FC 46241080 */ add.d $f2, $f2, $f4
.LE00D6600:
/* 3D5620 E00D6600 AE16FFD4 */ sw $s6, -0x2c($s0)
/* 3D5624 E00D6604 E6060004 */ swc1 $f6, 4($s0)
.LE00D6608:
/* 3D5628 E00D6608 4620A001 */ sub.d $f0, $f20, $f0
/* 3D562C E00D660C 462010A0 */ cvt.s.d $f2, $f2
/* 3D5630 E00D6610 E602FFFC */ swc1 $f2, -4($s0)
.LE00D6614:
/* 3D5634 E00D6614 46200020 */ cvt.s.d $f0, $f0
/* 3D5638 E00D6618 E600FFF8 */ swc1 $f0, -8($s0)
.LE00D661C:
/* 3D563C E00D661C 0C080138 */ jal shim_rand_int
/* 3D5640 E00D6620 8E04FFD4 */ lw $a0, -0x2c($s0)
/* 3D5644 E00D6624 C602FFFC */ lwc1 $f2, -4($s0)
/* 3D5648 E00D6628 44800000 */ mtc1 $zero, $f0
/* 3D564C E00D662C 00021823 */ negu $v1, $v0
/* 3D5650 E00D6630 4600103C */ c.lt.s $f2, $f0
/* 3D5654 E00D6634 00000000 */ nop
/* 3D5658 E00D6638 45000004 */ bc1f .LE00D664C
/* 3D565C E00D663C AE03FFD8 */ sw $v1, -0x28($s0)
/* 3D5660 E00D6640 8E02FFD4 */ lw $v0, -0x2c($s0)
/* 3D5664 E00D6644 46001087 */ neg.s $f2, $f2
/* 3D5668 E00D6648 00431023 */ subu $v0, $v0, $v1
.LE00D664C:
/* 3D566C E00D664C 44820000 */ mtc1 $v0, $f0
/* 3D5670 E00D6650 00000000 */ nop
/* 3D5674 E00D6654 46800020 */ cvt.s.w $f0, $f0
/* 3D5678 E00D6658 46020002 */ mul.s $f0, $f0, $f2
/* 3D567C E00D665C 00000000 */ nop
/* 3D5680 E00D6660 E600FFC8 */ swc1 $f0, -0x38($s0)
/* 3D5684 E00D6664 8FA9002C */ lw $t1, 0x2c($sp)
/* 3D5688 E00D6668 2522FFFF */ addiu $v0, $t1, -1
/* 3D568C E00D666C 14400002 */ bnez $v0, .LE00D6678
/* 3D5690 E00D6670 02A2001A */ div $zero, $s5, $v0
/* 3D5694 E00D6674 0007000D */ break 7
.LE00D6678:
/* 3D5698 E00D6678 2401FFFF */ addiu $at, $zero, -1
/* 3D569C E00D667C 14410004 */ bne $v0, $at, .LE00D6690
/* 3D56A0 E00D6680 3C018000 */ lui $at, 0x8000
/* 3D56A4 E00D6684 16A10002 */ bne $s5, $at, .LE00D6690
/* 3D56A8 E00D6688 00000000 */ nop
/* 3D56AC E00D668C 0006000D */ break 6
.LE00D6690:
/* 3D56B0 E00D6690 00001012 */ mflo $v0
/* 3D56B4 E00D6694 26310001 */ addiu $s1, $s1, 1
/* 3D56B8 E00D6698 26520048 */ addiu $s2, $s2, 0x48
/* 3D56BC E00D669C 44820000 */ mtc1 $v0, $f0
/* 3D56C0 E00D66A0 00000000 */ nop
/* 3D56C4 E00D66A4 46800020 */ cvt.s.w $f0, $f0
/* 3D56C8 E00D66A8 461C0000 */ add.s $f0, $f0, $f28
/* 3D56CC E00D66AC AE00FFCC */ sw $zero, -0x34($s0)
/* 3D56D0 E00D66B0 AE00FFD0 */ sw $zero, -0x30($s0)
/* 3D56D4 E00D66B4 E6000000 */ swc1 $f0, ($s0)
/* 3D56D8 E00D66B8 8FA80028 */ lw $t0, 0x28($sp)
/* 3D56DC E00D66BC 26B50168 */ addiu $s5, $s5, 0x168
/* 3D56E0 E00D66C0 8D020008 */ lw $v0, 8($t0)
/* 3D56E4 E00D66C4 0222102A */ slt $v0, $s1, $v0
/* 3D56E8 E00D66C8 1440FEC1 */ bnez $v0, .LE00D61D0
/* 3D56EC E00D66CC 26100048 */ addiu $s0, $s0, 0x48
.LE00D66D0:
/* 3D56F0 E00D66D0 8FA20028 */ lw $v0, 0x28($sp)
/* 3D56F4 E00D66D4 8FBF005C */ lw $ra, 0x5c($sp)
/* 3D56F8 E00D66D8 8FBE0058 */ lw $fp, 0x58($sp)
/* 3D56FC E00D66DC 8FB70054 */ lw $s7, 0x54($sp)
/* 3D5700 E00D66E0 8FB60050 */ lw $s6, 0x50($sp)
/* 3D5704 E00D66E4 8FB5004C */ lw $s5, 0x4c($sp)
/* 3D5708 E00D66E8 8FB40048 */ lw $s4, 0x48($sp)
/* 3D570C E00D66EC 8FB30044 */ lw $s3, 0x44($sp)
/* 3D5710 E00D66F0 8FB20040 */ lw $s2, 0x40($sp)
/* 3D5714 E00D66F4 8FB1003C */ lw $s1, 0x3c($sp)
/* 3D5718 E00D66F8 8FB00038 */ lw $s0, 0x38($sp)
/* 3D571C E00D66FC D7BC0080 */ ldc1 $f28, 0x80($sp)
/* 3D5720 E00D6700 D7BA0078 */ ldc1 $f26, 0x78($sp)
/* 3D5724 E00D6704 D7B80070 */ ldc1 $f24, 0x70($sp)
/* 3D5728 E00D6708 D7B60068 */ ldc1 $f22, 0x68($sp)
/* 3D572C E00D670C D7B40060 */ ldc1 $f20, 0x60($sp)
/* 3D5730 E00D6710 03E00008 */ jr $ra
/* 3D5734 E00D6714 27BD0088 */ addiu $sp, $sp, 0x88

View File

@ -1,183 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00328C0
.double 0.4
dlabel D_E00328C8
.double 0.6
dlabel D_E00328D0
.double 0.9
dlabel D_E00328D8
.double 0.6
dlabel D_E00328E0
.double 0.1
dlabel D_E00328E8
.double 0.9
.section .text
glabel explosion_update
/* 343858 E00321D8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 34385C E00321DC AFBF0024 */ sw $ra, 0x24($sp)
/* 343860 E00321E0 AFB20020 */ sw $s2, 0x20($sp)
/* 343864 E00321E4 AFB1001C */ sw $s1, 0x1c($sp)
/* 343868 E00321E8 AFB00018 */ sw $s0, 0x18($sp)
/* 34386C E00321EC 8C90000C */ lw $s0, 0xc($a0)
/* 343870 E00321F0 8E020030 */ lw $v0, 0x30($s0)
/* 343874 E00321F4 2442FFFF */ addiu $v0, $v0, -1
/* 343878 E00321F8 04410005 */ bgez $v0, .LE0032210
/* 34387C E00321FC AE020030 */ sw $v0, 0x30($s0)
/* 343880 E0032200 0C080128 */ jal shim_remove_effect
/* 343884 E0032204 00000000 */ nop
/* 343888 E0032208 0800C902 */ j .LE0032408
/* 34388C E003220C 00000000 */ nop
.LE0032210:
/* 343890 E0032210 8E020034 */ lw $v0, 0x34($s0)
/* 343894 E0032214 8E110000 */ lw $s1, ($s0)
/* 343898 E0032218 24420001 */ addiu $v0, $v0, 1
/* 34389C E003221C 0040902D */ daddu $s2, $v0, $zero
/* 3438A0 E0032220 AE020034 */ sw $v0, 0x34($s0)
/* 3438A4 E0032224 24020007 */ addiu $v0, $zero, 7
/* 3438A8 E0032228 1642000A */ bne $s2, $v0, .LE0032254
/* 3438AC E003222C 24020001 */ addiu $v0, $zero, 1
/* 3438B0 E0032230 0C080150 */ jal shim_load_effect
/* 3438B4 E0032234 24040017 */ addiu $a0, $zero, 0x17
/* 3438B8 E0032238 8E050004 */ lw $a1, 4($s0)
/* 3438BC E003223C 8E060008 */ lw $a2, 8($s0)
/* 3438C0 E0032240 8E07000C */ lw $a3, 0xc($s0)
/* 3438C4 E0032244 0C00B800 */ jal smoke_ring_main
/* 3438C8 E0032248 0220202D */ daddu $a0, $s1, $zero
/* 3438CC E003224C 0800C8A4 */ j .LE0032290
/* 3438D0 E0032250 2610003C */ addiu $s0, $s0, 0x3c
.LE0032254:
/* 3438D4 E0032254 5642000E */ bnel $s2, $v0, .LE0032290
/* 3438D8 E0032258 2610003C */ addiu $s0, $s0, 0x3c
/* 3438DC E003225C 0C080150 */ jal shim_load_effect
/* 3438E0 E0032260 24040044 */ addiu $a0, $zero, 0x44
/* 3438E4 E0032264 3C013F80 */ lui $at, 0x3f80
/* 3438E8 E0032268 44810000 */ mtc1 $at, $f0
/* 3438EC E003226C 24020032 */ addiu $v0, $zero, 0x32
/* 3438F0 E0032270 AFA20014 */ sw $v0, 0x14($sp)
/* 3438F4 E0032274 E7A00010 */ swc1 $f0, 0x10($sp)
/* 3438F8 E0032278 8E050004 */ lw $a1, 4($s0)
/* 3438FC E003227C 8E060008 */ lw $a2, 8($s0)
/* 343900 E0032280 8E07000C */ lw $a3, 0xc($s0)
/* 343904 E0032284 0C02205F */ jal confetti_main
/* 343908 E0032288 26240004 */ addiu $a0, $s1, 4
/* 34390C E003228C 2610003C */ addiu $s0, $s0, 0x3c
.LE0032290:
/* 343910 E0032290 C6000020 */ lwc1 $f0, 0x20($s0)
/* 343914 E0032294 C6020024 */ lwc1 $f2, 0x24($s0)
/* 343918 E0032298 46020000 */ add.s $f0, $f0, $f2
/* 34391C E003229C 26030024 */ addiu $v1, $s0, 0x24
/* 343920 E00322A0 2A420008 */ slti $v0, $s2, 8
/* 343924 E00322A4 1040001D */ beqz $v0, .LE003231C
/* 343928 E00322A8 E6000020 */ swc1 $f0, 0x20($s0)
/* 34392C E00322AC 46001006 */ mov.s $f0, $f2
/* 343930 E00322B0 460000A1 */ cvt.d.s $f2, $f0
/* 343934 E00322B4 24020002 */ addiu $v0, $zero, 2
/* 343938 E00322B8 3C01E003 */ lui $at, %hi(D_E00328C0)
/* 34393C E00322BC D42028C0 */ ldc1 $f0, %lo(D_E00328C0)($at)
/* 343940 E00322C0 56220006 */ bnel $s1, $v0, .LE00322DC
/* 343944 E00322C4 46201000 */ add.d $f0, $f2, $f0
/* 343948 E00322C8 3C013FF0 */ lui $at, 0x3ff0
/* 34394C E00322CC 44810800 */ mtc1 $at, $f1
/* 343950 E00322D0 44800000 */ mtc1 $zero, $f0
/* 343954 E00322D4 00000000 */ nop
/* 343958 E00322D8 46201000 */ add.d $f0, $f2, $f0
.LE00322DC:
/* 34395C E00322DC 46200020 */ cvt.s.d $f0, $f0
/* 343960 E00322E0 240200FF */ addiu $v0, $zero, 0xff
/* 343964 E00322E4 E4600000 */ swc1 $f0, ($v1)
/* 343968 E00322E8 8E030038 */ lw $v1, 0x38($s0)
/* 34396C E00322EC 3C01E003 */ lui $at, %hi(D_E00328C8)
/* 343970 E00322F0 D42228C8 */ ldc1 $f2, %lo(D_E00328C8)($at)
/* 343974 E00322F4 00431023 */ subu $v0, $v0, $v1
/* 343978 E00322F8 44820000 */ mtc1 $v0, $f0
/* 34397C E00322FC 00000000 */ nop
/* 343980 E0032300 46800021 */ cvt.d.w $f0, $f0
/* 343984 E0032304 46220002 */ mul.d $f0, $f0, $f2
/* 343988 E0032308 00000000 */ nop
/* 34398C E003230C 4620018D */ trunc.w.d $f6, $f0
/* 343990 E0032310 E6060038 */ swc1 $f6, 0x38($s0)
/* 343994 E0032314 0800C8D8 */ j .LE0032360
/* 343998 E0032318 2610003C */ addiu $s0, $s0, 0x3c
.LE003231C:
/* 34399C E003231C 3C01E003 */ lui $at, %hi(D_E00328D0)
/* 3439A0 E0032320 D42028D0 */ ldc1 $f0, %lo(D_E00328D0)($at)
/* 3439A4 E0032324 C6020038 */ lwc1 $f2, 0x38($s0)
/* 3439A8 E0032328 468010A1 */ cvt.d.w $f2, $f2
/* 3439AC E003232C 46201082 */ mul.d $f2, $f2, $f0
/* 3439B0 E0032330 00000000 */ nop
/* 3439B4 E0032334 C6000024 */ lwc1 $f0, 0x24($s0)
/* 3439B8 E0032338 3C01E003 */ lui $at, %hi(D_E00328D8)
/* 3439BC E003233C D42428D8 */ ldc1 $f4, %lo(D_E00328D8)($at)
/* 3439C0 E0032340 46000021 */ cvt.d.s $f0, $f0
/* 3439C4 E0032344 46240002 */ mul.d $f0, $f0, $f4
/* 3439C8 E0032348 00000000 */ nop
/* 3439CC E003234C 4620118D */ trunc.w.d $f6, $f2
/* 3439D0 E0032350 E6060038 */ swc1 $f6, 0x38($s0)
/* 3439D4 E0032354 46200020 */ cvt.s.d $f0, $f0
/* 3439D8 E0032358 E6000024 */ swc1 $f0, 0x24($s0)
/* 3439DC E003235C 2610003C */ addiu $s0, $s0, 0x3c
.LE0032360:
/* 3439E0 E0032360 2A420003 */ slti $v0, $s2, 3
/* 3439E4 E0032364 14400024 */ bnez $v0, .LE00323F8
/* 3439E8 E0032368 24020003 */ addiu $v0, $zero, 3
/* 3439EC E003236C 16420005 */ bne $s2, $v0, .LE0032384
/* 3439F0 E0032370 00000000 */ nop
/* 3439F4 E0032374 3C013F80 */ lui $at, 0x3f80
/* 3439F8 E0032378 44810000 */ mtc1 $at, $f0
/* 3439FC E003237C 00000000 */ nop
/* 343A00 E0032380 E6000020 */ swc1 $f0, 0x20($s0)
.LE0032384:
/* 343A04 E0032384 C6000020 */ lwc1 $f0, 0x20($s0)
/* 343A08 E0032388 C6020024 */ lwc1 $f2, 0x24($s0)
/* 343A0C E003238C 46020000 */ add.s $f0, $f0, $f2
/* 343A10 E0032390 2A420006 */ slti $v0, $s2, 6
/* 343A14 E0032394 10400007 */ beqz $v0, .LE00323B4
/* 343A18 E0032398 E6000020 */ swc1 $f0, 0x20($s0)
/* 343A1C E003239C 46001006 */ mov.s $f0, $f2
/* 343A20 E00323A0 3C01E003 */ lui $at, %hi(D_E00328E0)
/* 343A24 E00323A4 D42228E0 */ ldc1 $f2, %lo(D_E00328E0)($at)
/* 343A28 E00323A8 46000021 */ cvt.d.s $f0, $f0
/* 343A2C E00323AC 0800C8FC */ j .LE00323F0
/* 343A30 E00323B0 46220000 */ add.d $f0, $f0, $f2
.LE00323B4:
/* 343A34 E00323B4 3C01E003 */ lui $at, %hi(D_E00328E8)
/* 343A38 E00323B8 D42028E8 */ ldc1 $f0, %lo(D_E00328E8)($at)
/* 343A3C E00323BC C6020038 */ lwc1 $f2, 0x38($s0)
/* 343A40 E00323C0 468010A1 */ cvt.d.w $f2, $f2
/* 343A44 E00323C4 46201082 */ mul.d $f2, $f2, $f0
/* 343A48 E00323C8 00000000 */ nop
/* 343A4C E00323CC C6000024 */ lwc1 $f0, 0x24($s0)
/* 343A50 E00323D0 3C013FE0 */ lui $at, 0x3fe0
/* 343A54 E00323D4 44812800 */ mtc1 $at, $f5
/* 343A58 E00323D8 44802000 */ mtc1 $zero, $f4
/* 343A5C E00323DC 46000021 */ cvt.d.s $f0, $f0
/* 343A60 E00323E0 46240002 */ mul.d $f0, $f0, $f4
/* 343A64 E00323E4 00000000 */ nop
/* 343A68 E00323E8 4620118D */ trunc.w.d $f6, $f2
/* 343A6C E00323EC E6060038 */ swc1 $f6, 0x38($s0)
.LE00323F0:
/* 343A70 E00323F0 46200020 */ cvt.s.d $f0, $f0
/* 343A74 E00323F4 E6000024 */ swc1 $f0, 0x24($s0)
.LE00323F8:
/* 343A78 E00323F8 C6000028 */ lwc1 $f0, 0x28($s0)
/* 343A7C E00323FC C602002C */ lwc1 $f2, 0x2c($s0)
/* 343A80 E0032400 46020000 */ add.s $f0, $f0, $f2
/* 343A84 E0032404 E6000028 */ swc1 $f0, 0x28($s0)
.LE0032408:
/* 343A88 E0032408 8FBF0024 */ lw $ra, 0x24($sp)
/* 343A8C E003240C 8FB20020 */ lw $s2, 0x20($sp)
/* 343A90 E0032410 8FB1001C */ lw $s1, 0x1c($sp)
/* 343A94 E0032414 8FB00018 */ lw $s0, 0x18($sp)
/* 343A98 E0032418 03E00008 */ jr $ra
/* 343A9C E003241C 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,173 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .text
glabel firework_main
/* 389850 E0086000 27BDFF98 */ addiu $sp, $sp, -0x68
/* 389854 E0086004 AFB00028 */ sw $s0, 0x28($sp)
/* 389858 E0086008 0080802D */ daddu $s0, $a0, $zero
/* 38985C E008600C F7B40050 */ sdc1 $f20, 0x50($sp)
/* 389860 E0086010 4485A000 */ mtc1 $a1, $f20
/* 389864 E0086014 3C055555 */ lui $a1, 0x5555
/* 389868 E0086018 34A55556 */ ori $a1, $a1, 0x5556
/* 38986C E008601C F7B60058 */ sdc1 $f22, 0x58($sp)
/* 389870 E0086020 4486B000 */ mtc1 $a2, $f22
/* 389874 E0086024 27A40010 */ addiu $a0, $sp, 0x10
/* 389878 E0086028 F7B80060 */ sdc1 $f24, 0x60($sp)
/* 38987C E008602C 4487C000 */ mtc1 $a3, $f24
/* 389880 E0086030 8FA3007C */ lw $v1, 0x7c($sp)
/* 389884 E0086034 3C02E008 */ lui $v0, %hi(firework_init)
/* 389888 E0086038 24426270 */ addiu $v0, $v0, %lo(firework_init)
/* 38988C E008603C AFA20018 */ sw $v0, 0x18($sp)
/* 389890 E0086040 3C02E008 */ lui $v0, %hi(firework_update)
/* 389894 E0086044 24426278 */ addiu $v0, $v0, %lo(firework_update)
/* 389898 E0086048 AFA2001C */ sw $v0, 0x1c($sp)
/* 38989C E008604C 3C02E008 */ lui $v0, %hi(firework_render)
/* 3898A0 E0086050 24426390 */ addiu $v0, $v0, %lo(firework_render)
/* 3898A4 E0086054 AFBF0048 */ sw $ra, 0x48($sp)
/* 3898A8 E0086058 AFB70044 */ sw $s7, 0x44($sp)
/* 3898AC E008605C AFB60040 */ sw $s6, 0x40($sp)
/* 3898B0 E0086060 AFB5003C */ sw $s5, 0x3c($sp)
/* 3898B4 E0086064 AFB40038 */ sw $s4, 0x38($sp)
/* 3898B8 E0086068 AFB30034 */ sw $s3, 0x34($sp)
/* 3898BC E008606C AFB20030 */ sw $s2, 0x30($sp)
/* 3898C0 E0086070 AFB1002C */ sw $s1, 0x2c($sp)
/* 3898C4 E0086074 AFA00010 */ sw $zero, 0x10($sp)
/* 3898C8 E0086078 AFA20020 */ sw $v0, 0x20($sp)
/* 3898CC E008607C 00031080 */ sll $v0, $v1, 2
/* 3898D0 E0086080 00431021 */ addu $v0, $v0, $v1
/* 3898D4 E0086084 24420014 */ addiu $v0, $v0, 0x14
/* 3898D8 E0086088 3C03E008 */ lui $v1, %hi(func_E0086398)
/* 3898DC E008608C 24636398 */ addiu $v1, $v1, %lo(func_E0086398)
/* 3898E0 E0086090 00450018 */ mult $v0, $a1
/* 3898E4 E0086094 AFA30024 */ sw $v1, 0x24($sp)
/* 3898E8 E0086098 24030043 */ addiu $v1, $zero, 0x43
/* 3898EC E008609C 000217C3 */ sra $v0, $v0, 0x1f
/* 3898F0 E00860A0 AFA30014 */ sw $v1, 0x14($sp)
/* 3898F4 E00860A4 00004010 */ mfhi $t0
/* 3898F8 E00860A8 01021023 */ subu $v0, $t0, $v0
/* 3898FC E00860AC 0C080124 */ jal shim_create_effect_instance
/* 389900 E00860B0 24550001 */ addiu $s5, $v0, 1
/* 389904 E00860B4 00152100 */ sll $a0, $s5, 4
/* 389908 E00860B8 00952021 */ addu $a0, $a0, $s5
/* 38990C E00860BC 00042080 */ sll $a0, $a0, 2
/* 389910 E00860C0 0040B02D */ daddu $s6, $v0, $zero
/* 389914 E00860C4 0C08012C */ jal shim_general_heap_malloc
/* 389918 E00860C8 AED50008 */ sw $s5, 8($s6)
/* 38991C E00860CC 0040882D */ daddu $s1, $v0, $zero
/* 389920 E00860D0 16200003 */ bnez $s1, .LE00860E0
/* 389924 E00860D4 AED1000C */ sw $s1, 0xc($s6)
.LE00860D8:
/* 389928 E00860D8 08021836 */ j .LE00860D8
/* 38992C E00860DC 00000000 */ nop
.LE00860E0:
/* 389930 E00860E0 AE300000 */ sw $s0, ($s1)
/* 389934 E00860E4 E6340004 */ swc1 $f20, 4($s1)
/* 389938 E00860E8 E6360008 */ swc1 $f22, 8($s1)
/* 38993C E00860EC E638000C */ swc1 $f24, 0xc($s1)
/* 389940 E00860F0 3C02E008 */ lui $v0, %hi(D_E0086AC0)
/* 389944 E00860F4 00501021 */ addu $v0, $v0, $s0
/* 389948 E00860F8 90426AC0 */ lbu $v0, %lo(D_E0086AC0)($v0)
/* 38994C E00860FC AE200034 */ sw $zero, 0x34($s1)
/* 389950 E0086100 AE200038 */ sw $zero, 0x38($s1)
/* 389954 E0086104 AE220030 */ sw $v0, 0x30($s1)
/* 389958 E0086108 24020001 */ addiu $v0, $zero, 1
/* 38995C E008610C 1202000C */ beq $s0, $v0, .LE0086140
/* 389960 E0086110 2A020002 */ slti $v0, $s0, 2
/* 389964 E0086114 10400012 */ beqz $v0, .LE0086160
/* 389968 E0086118 240200FF */ addiu $v0, $zero, 0xff
/* 38996C E008611C 16000011 */ bnez $s0, .LE0086164
/* 389970 E0086120 240300C8 */ addiu $v1, $zero, 0xc8
/* 389974 E0086124 240200FF */ addiu $v0, $zero, 0xff
/* 389978 E0086128 A222003C */ sb $v0, 0x3c($s1)
/* 38997C E008612C A222003D */ sb $v0, 0x3d($s1)
/* 389980 E0086130 A222003E */ sb $v0, 0x3e($s1)
/* 389984 E0086134 A222003F */ sb $v0, 0x3f($s1)
/* 389988 E0086138 0802185F */ j .LE008617C
/* 38998C E008613C A2220040 */ sb $v0, 0x40($s1)
.LE0086140:
/* 389990 E0086140 240200FF */ addiu $v0, $zero, 0xff
/* 389994 E0086144 A222003C */ sb $v0, 0x3c($s1)
/* 389998 E0086148 A222003D */ sb $v0, 0x3d($s1)
/* 38999C E008614C A220003E */ sb $zero, 0x3e($s1)
/* 3899A0 E0086150 A222003F */ sb $v0, 0x3f($s1)
/* 3899A4 E0086154 A2200040 */ sb $zero, 0x40($s1)
/* 3899A8 E0086158 08021860 */ j .LE0086180
/* 3899AC E008615C A2200041 */ sb $zero, 0x41($s1)
.LE0086160:
/* 3899B0 E0086160 240300C8 */ addiu $v1, $zero, 0xc8
.LE0086164:
/* 3899B4 E0086164 A222003C */ sb $v0, 0x3c($s1)
/* 3899B8 E0086168 A222003D */ sb $v0, 0x3d($s1)
/* 3899BC E008616C A2220040 */ sb $v0, 0x40($s1)
/* 3899C0 E0086170 240200E6 */ addiu $v0, $zero, 0xe6
/* 3899C4 E0086174 A220003E */ sb $zero, 0x3e($s1)
/* 3899C8 E0086178 A223003F */ sb $v1, 0x3f($s1)
.LE008617C:
/* 3899CC E008617C A2220041 */ sb $v0, 0x41($s1)
.LE0086180:
/* 3899D0 E0086180 24130001 */ addiu $s3, $zero, 1
/* 3899D4 E0086184 C7A00078 */ lwc1 $f0, 0x78($sp)
/* 3899D8 E0086188 0275102A */ slt $v0, $s3, $s5
/* 3899DC E008618C E6200028 */ swc1 $f0, 0x28($s1)
/* 3899E0 E0086190 10400028 */ beqz $v0, .LE0086234
/* 3899E4 E0086194 26310044 */ addiu $s1, $s1, 0x44
/* 3899E8 E0086198 26B4FFFF */ addiu $s4, $s5, -1
/* 3899EC E008619C 241700FF */ addiu $s7, $zero, 0xff
/* 3899F0 E00861A0 2630002C */ addiu $s0, $s1, 0x2c
/* 3899F4 E00861A4 24120168 */ addiu $s2, $zero, 0x168
.LE00861A8:
/* 3899F8 E00861A8 16800002 */ bnez $s4, .LE00861B4
/* 3899FC E00861AC 0254001A */ div $zero, $s2, $s4
/* 389A00 E00861B0 0007000D */ break 7
.LE00861B4:
/* 389A04 E00861B4 2401FFFF */ addiu $at, $zero, -1
/* 389A08 E00861B8 16810004 */ bne $s4, $at, .LE00861CC
/* 389A0C E00861BC 3C018000 */ lui $at, 0x8000
/* 389A10 E00861C0 16410002 */ bne $s2, $at, .LE00861CC
/* 389A14 E00861C4 00000000 */ nop
/* 389A18 E00861C8 0006000D */ break 6
.LE00861CC:
/* 389A1C E00861CC 00001812 */ mflo $v1
/* 389A20 E00861D0 24040167 */ addiu $a0, $zero, 0x167
/* 389A24 E00861D4 26520168 */ addiu $s2, $s2, 0x168
/* 389A28 E00861D8 4483A000 */ mtc1 $v1, $f20
/* 389A2C E00861DC 00000000 */ nop
/* 389A30 E00861E0 4680A520 */ cvt.s.w $f20, $f20
/* 389A34 E00861E4 0C080138 */ jal shim_rand_int
/* 389A38 E00861E8 26730001 */ addiu $s3, $s3, 1
/* 389A3C E00861EC 44820000 */ mtc1 $v0, $f0
/* 389A40 E00861F0 00000000 */ nop
/* 389A44 E00861F4 46800020 */ cvt.s.w $f0, $f0
/* 389A48 E00861F8 AE00FFD8 */ sw $zero, -0x28($s0)
/* 389A4C E00861FC AE00FFDC */ sw $zero, -0x24($s0)
/* 389A50 E0086200 AE00FFE0 */ sw $zero, -0x20($s0)
/* 389A54 E0086204 AE00FFE4 */ sw $zero, -0x1c($s0)
/* 389A58 E0086208 AE00FFE8 */ sw $zero, -0x18($s0)
/* 389A5C E008620C AE00FFF4 */ sw $zero, -0xc($s0)
/* 389A60 E0086210 AE200000 */ sw $zero, ($s1)
/* 389A64 E0086214 E614FFF0 */ swc1 $f20, -0x10($s0)
/* 389A68 E0086218 E600FFF8 */ swc1 $f0, -8($s0)
/* 389A6C E008621C AE00FFE4 */ sw $zero, -0x1c($s0)
/* 389A70 E0086220 AE170000 */ sw $s7, ($s0)
/* 389A74 E0086224 26100044 */ addiu $s0, $s0, 0x44
/* 389A78 E0086228 0275102A */ slt $v0, $s3, $s5
/* 389A7C E008622C 1440FFDE */ bnez $v0, .LE00861A8
/* 389A80 E0086230 26310044 */ addiu $s1, $s1, 0x44
.LE0086234:
/* 389A84 E0086234 02C0102D */ daddu $v0, $s6, $zero
/* 389A88 E0086238 8FBF0048 */ lw $ra, 0x48($sp)
/* 389A8C E008623C 8FB70044 */ lw $s7, 0x44($sp)
/* 389A90 E0086240 8FB60040 */ lw $s6, 0x40($sp)
/* 389A94 E0086244 8FB5003C */ lw $s5, 0x3c($sp)
/* 389A98 E0086248 8FB40038 */ lw $s4, 0x38($sp)
/* 389A9C E008624C 8FB30034 */ lw $s3, 0x34($sp)
/* 389AA0 E0086250 8FB20030 */ lw $s2, 0x30($sp)
/* 389AA4 E0086254 8FB1002C */ lw $s1, 0x2c($sp)
/* 389AA8 E0086258 8FB00028 */ lw $s0, 0x28($sp)
/* 389AAC E008625C D7B80060 */ ldc1 $f24, 0x60($sp)
/* 389AB0 E0086260 D7B60058 */ ldc1 $f22, 0x58($sp)
/* 389AB4 E0086264 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 389AB8 E0086268 03E00008 */ jr $ra
/* 389ABC E008626C 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -1,458 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .text
glabel func_E00863B4
/* 389C04 E00863B4 27BDFF00 */ addiu $sp, $sp, -0x100
/* 389C08 E00863B8 AFBF00EC */ sw $ra, 0xec($sp)
/* 389C0C E00863BC AFBE00E8 */ sw $fp, 0xe8($sp)
/* 389C10 E00863C0 AFB700E4 */ sw $s7, 0xe4($sp)
/* 389C14 E00863C4 AFB600E0 */ sw $s6, 0xe0($sp)
/* 389C18 E00863C8 AFB500DC */ sw $s5, 0xdc($sp)
/* 389C1C E00863CC AFB400D8 */ sw $s4, 0xd8($sp)
/* 389C20 E00863D0 AFB300D4 */ sw $s3, 0xd4($sp)
/* 389C24 E00863D4 AFB200D0 */ sw $s2, 0xd0($sp)
/* 389C28 E00863D8 AFB100CC */ sw $s1, 0xcc($sp)
/* 389C2C E00863DC AFB000C8 */ sw $s0, 0xc8($sp)
/* 389C30 E00863E0 F7B600F8 */ sdc1 $f22, 0xf8($sp)
/* 389C34 E00863E4 F7B400F0 */ sdc1 $f20, 0xf0($sp)
/* 389C38 E00863E8 AFA40100 */ sw $a0, 0x100($sp)
/* 389C3C E00863EC 8C94000C */ lw $s4, 0xc($a0)
/* 389C40 E00863F0 3C0140A0 */ lui $at, 0x40a0
/* 389C44 E00863F4 44810000 */ mtc1 $at, $f0
/* 389C48 E00863F8 C6820038 */ lwc1 $f2, 0x38($s4)
/* 389C4C E00863FC 46001502 */ mul.s $f20, $f2, $f0
/* 389C50 E0086400 00000000 */ nop
/* 389C54 E0086404 4600A10D */ trunc.w.s $f4, $f20
/* 389C58 E0086408 E7A400A4 */ swc1 $f4, 0xa4($sp)
/* 389C5C E008640C 8FA900A4 */ lw $t1, 0xa4($sp)
/* 389C60 E0086410 8E960034 */ lw $s6, 0x34($s4)
/* 389C64 E0086414 8E950000 */ lw $s5, ($s4)
/* 389C68 E0086418 29220005 */ slti $v0, $t1, 5
/* 389C6C E008641C 10400191 */ beqz $v0, .LE0086A64
/* 389C70 E0086420 3C08DB06 */ lui $t0, 0xdb06
/* 389C74 E0086424 35080024 */ ori $t0, $t0, 0x24
/* 389C78 E0086428 3C11800A */ lui $s1, %hi(gMasterGfxPos)
/* 389C7C E008642C 2631A66C */ addiu $s1, $s1, %lo(gMasterGfxPos)
/* 389C80 E0086430 3C02E700 */ lui $v0, 0xe700
/* 389C84 E0086434 8E260000 */ lw $a2, ($s1)
/* 389C88 E0086438 44800000 */ mtc1 $zero, $f0
/* 389C8C E008643C 00C0182D */ daddu $v1, $a2, $zero
/* 389C90 E0086440 24C60008 */ addiu $a2, $a2, 8
/* 389C94 E0086444 AC620000 */ sw $v0, ($v1)
/* 389C98 E0086448 AC600004 */ sw $zero, 4($v1)
/* 389C9C E008644C ACC80000 */ sw $t0, ($a2)
/* 389CA0 E0086450 8FA90100 */ lw $t1, 0x100($sp)
/* 389CA4 E0086454 3C088000 */ lui $t0, 0x8000
/* 389CA8 E0086458 8D220010 */ lw $v0, 0x10($t1)
/* 389CAC E008645C 44050000 */ mfc1 $a1, $f0
/* 389CB0 E0086460 8C42001C */ lw $v0, 0x1c($v0)
/* 389CB4 E0086464 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 389CB8 E0086468 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 389CBC E008646C 00481021 */ addu $v0, $v0, $t0
/* 389CC0 E0086470 ACC20004 */ sw $v0, 4($a2)
/* 389CC4 E0086474 00031080 */ sll $v0, $v1, 2
/* 389CC8 E0086478 00431021 */ addu $v0, $v0, $v1
/* 389CCC E008647C 00021080 */ sll $v0, $v0, 2
/* 389CD0 E0086480 00431023 */ subu $v0, $v0, $v1
/* 389CD4 E0086484 000218C0 */ sll $v1, $v0, 3
/* 389CD8 E0086488 00431021 */ addu $v0, $v0, $v1
/* 389CDC E008648C 000210C0 */ sll $v0, $v0, 3
/* 389CE0 E0086490 C6800028 */ lwc1 $f0, 0x28($s4)
/* 389CE4 E0086494 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 389CE8 E0086498 00220821 */ addu $at, $at, $v0
/* 389CEC E008649C C4221DEC */ lwc1 $f2, %lo(gCameras+0x6C)($at)
/* 389CF0 E00864A0 27A40020 */ addiu $a0, $sp, 0x20
/* 389CF4 E00864A4 E7A00010 */ swc1 $f0, 0x10($sp)
/* 389CF8 E00864A8 C6800004 */ lwc1 $f0, 4($s4)
/* 389CFC E00864AC 3C130001 */ lui $s3, 1
/* 389D00 E00864B0 AE260000 */ sw $a2, ($s1)
/* 389D04 E00864B4 24C60008 */ addiu $a2, $a2, 8
/* 389D08 E00864B8 E7A00014 */ swc1 $f0, 0x14($sp)
/* 389D0C E00864BC C6800008 */ lwc1 $f0, 8($s4)
/* 389D10 E00864C0 46001087 */ neg.s $f2, $f2
/* 389D14 E00864C4 AE260000 */ sw $a2, ($s1)
/* 389D18 E00864C8 44061000 */ mfc1 $a2, $f2
/* 389D1C E00864CC 36731630 */ ori $s3, $s3, 0x1630
/* 389D20 E00864D0 E7A00018 */ swc1 $f0, 0x18($sp)
/* 389D24 E00864D4 C680000C */ lwc1 $f0, 0xc($s4)
/* 389D28 E00864D8 00A0382D */ daddu $a3, $a1, $zero
/* 389D2C E00864DC 0C080180 */ jal shim_guPositionF
/* 389D30 E00864E0 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 389D34 E00864E4 27A40020 */ addiu $a0, $sp, 0x20
/* 389D38 E00864E8 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 389D3C E00864EC 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 389D40 E00864F0 3C12800A */ lui $s2, %hi(gDisplayContext)
/* 389D44 E00864F4 2652A674 */ addiu $s2, $s2, %lo(gDisplayContext)
/* 389D48 E00864F8 96050000 */ lhu $a1, ($s0)
/* 389D4C E00864FC 8E420000 */ lw $v0, ($s2)
/* 389D50 E0086500 00052980 */ sll $a1, $a1, 6
/* 389D54 E0086504 00B32821 */ addu $a1, $a1, $s3
/* 389D58 E0086508 0C080118 */ jal shim_guMtxF2L
/* 389D5C E008650C 00452821 */ addu $a1, $v0, $a1
/* 389D60 E0086510 8E220000 */ lw $v0, ($s1)
/* 389D64 E0086514 3C014380 */ lui $at, 0x4380
/* 389D68 E0086518 44811000 */ mtc1 $at, $f2
/* 389D6C E008651C 0040202D */ daddu $a0, $v0, $zero
/* 389D70 E0086520 24420008 */ addiu $v0, $v0, 8
/* 389D74 E0086524 AE220000 */ sw $v0, ($s1)
/* 389D78 E0086528 96030000 */ lhu $v1, ($s0)
/* 389D7C E008652C 3C02DA38 */ lui $v0, 0xda38
/* 389D80 E0086530 AC820000 */ sw $v0, ($a0)
/* 389D84 E0086534 24620001 */ addiu $v0, $v1, 1
/* 389D88 E0086538 A6020000 */ sh $v0, ($s0)
/* 389D8C E008653C C7A000A4 */ lwc1 $f0, 0xa4($sp)
/* 389D90 E0086540 46800020 */ cvt.s.w $f0, $f0
/* 389D94 E0086544 4600A001 */ sub.s $f0, $f20, $f0
/* 389D98 E0086548 3063FFFF */ andi $v1, $v1, 0xffff
/* 389D9C E008654C 00031980 */ sll $v1, $v1, 6
/* 389DA0 E0086550 46020002 */ mul.s $f0, $f0, $f2
/* 389DA4 E0086554 00000000 */ nop
/* 389DA8 E0086558 8E420000 */ lw $v0, ($s2)
/* 389DAC E008655C 00731821 */ addu $v1, $v1, $s3
/* 389DB0 E0086560 00431021 */ addu $v0, $v0, $v1
/* 389DB4 E0086564 AC820004 */ sw $v0, 4($a0)
/* 389DB8 E0086568 4600010D */ trunc.w.s $f4, $f0
/* 389DBC E008656C E7A400A0 */ swc1 $f4, 0xa0($sp)
/* 389DC0 E0086570 8FA900A4 */ lw $t1, 0xa4($sp)
/* 389DC4 E0086574 29220004 */ slti $v0, $t1, 4
/* 389DC8 E0086578 38480001 */ xori $t0, $v0, 1
/* 389DCC E008657C 8E89002C */ lw $t1, 0x2c($s4)
/* 389DD0 E0086580 24020001 */ addiu $v0, $zero, 1
/* 389DD4 E0086584 12A20008 */ beq $s5, $v0, .LE00865A8
/* 389DD8 E0086588 AFA900BC */ sw $t1, 0xbc($sp)
/* 389DDC E008658C 2AA20002 */ slti $v0, $s5, 2
/* 389DE0 E0086590 14400035 */ bnez $v0, .LE0086668
/* 389DE4 E0086594 24020002 */ addiu $v0, $zero, 2
/* 389DE8 E0086598 12A20028 */ beq $s5, $v0, .LE008663C
/* 389DEC E008659C 32C20001 */ andi $v0, $s6, 1
/* 389DF0 E00865A0 0802199A */ j .LE0086668
/* 389DF4 E00865A4 00000000 */ nop
.LE00865A8:
/* 389DF8 E00865A8 26C3FFFF */ addiu $v1, $s6, -1
/* 389DFC E00865AC 2862000D */ slti $v0, $v1, 0xd
/* 389E00 E00865B0 50400004 */ beql $v0, $zero, .LE00865C4
/* 389E04 E00865B4 0000182D */ daddu $v1, $zero, $zero
/* 389E08 E00865B8 3C01E008 */ lui $at, %hi(D_E0086AE4)
/* 389E0C E00865BC 00230821 */ addu $at, $at, $v1
/* 389E10 E00865C0 90236AE4 */ lbu $v1, %lo(D_E0086AE4)($at)
.LE00865C4:
/* 389E14 E00865C4 9282003D */ lbu $v0, 0x3d($s4)
/* 389E18 E00865C8 00430018 */ mult $v0, $v1
/* 389E1C E00865CC 00003812 */ mflo $a3
/* 389E20 E00865D0 9282003E */ lbu $v0, 0x3e($s4)
/* 389E24 E00865D4 00000000 */ nop
/* 389E28 E00865D8 00430018 */ mult $v0, $v1
/* 389E2C E00865DC 00003012 */ mflo $a2
/* 389E30 E00865E0 9282003F */ lbu $v0, 0x3f($s4)
/* 389E34 E00865E4 00000000 */ nop
/* 389E38 E00865E8 00430018 */ mult $v0, $v1
/* 389E3C E00865EC 00002812 */ mflo $a1
/* 389E40 E00865F0 92820040 */ lbu $v0, 0x40($s4)
/* 389E44 E00865F4 00000000 */ nop
/* 389E48 E00865F8 00430018 */ mult $v0, $v1
/* 389E4C E00865FC 9289003C */ lbu $t1, 0x3c($s4)
/* 389E50 E0086600 00073A03 */ sra $a3, $a3, 8
/* 389E54 E0086604 0006F203 */ sra $fp, $a2, 8
/* 389E58 E0086608 92820041 */ lbu $v0, 0x41($s4)
/* 389E5C E008660C 00002012 */ mflo $a0
/* 389E60 E0086610 00052A03 */ sra $a1, $a1, 8
/* 389E64 E0086614 AFA900A8 */ sw $t1, 0xa8($sp)
/* 389E68 E0086618 00430018 */ mult $v0, $v1
/* 389E6C E008661C AFA700AC */ sw $a3, 0xac($sp)
/* 389E70 E0086620 AFA500B0 */ sw $a1, 0xb0($sp)
/* 389E74 E0086624 00042203 */ sra $a0, $a0, 8
/* 389E78 E0086628 AFA400B4 */ sw $a0, 0xb4($sp)
/* 389E7C E008662C 00001012 */ mflo $v0
/* 389E80 E0086630 00021203 */ sra $v0, $v0, 8
/* 389E84 E0086634 080219A5 */ j .LE0086694
/* 389E88 E0086638 AFA200B8 */ sw $v0, 0xb8($sp)
.LE008663C:
/* 389E8C E008663C 1440000A */ bnez $v0, .LE0086668
/* 389E90 E0086640 0000F02D */ daddu $fp, $zero, $zero
/* 389E94 E0086644 AFA000A8 */ sw $zero, 0xa8($sp)
/* 389E98 E0086648 AFA000AC */ sw $zero, 0xac($sp)
/* 389E9C E008664C 9289003C */ lbu $t1, 0x3c($s4)
/* 389EA0 E0086650 AFA900B0 */ sw $t1, 0xb0($sp)
/* 389EA4 E0086654 9289003D */ lbu $t1, 0x3d($s4)
/* 389EA8 E0086658 AFA900B4 */ sw $t1, 0xb4($sp)
/* 389EAC E008665C 9289003E */ lbu $t1, 0x3e($s4)
/* 389EB0 E0086660 080219A5 */ j .LE0086694
/* 389EB4 E0086664 AFA900B8 */ sw $t1, 0xb8($sp)
.LE0086668:
/* 389EB8 E0086668 9289003C */ lbu $t1, 0x3c($s4)
/* 389EBC E008666C AFA900A8 */ sw $t1, 0xa8($sp)
/* 389EC0 E0086670 9289003D */ lbu $t1, 0x3d($s4)
/* 389EC4 E0086674 AFA900AC */ sw $t1, 0xac($sp)
/* 389EC8 E0086678 9289003F */ lbu $t1, 0x3f($s4)
/* 389ECC E008667C 929E003E */ lbu $fp, 0x3e($s4)
/* 389ED0 E0086680 AFA900B0 */ sw $t1, 0xb0($sp)
/* 389ED4 E0086684 92890040 */ lbu $t1, 0x40($s4)
/* 389ED8 E0086688 AFA900B4 */ sw $t1, 0xb4($sp)
/* 389EDC E008668C 92890041 */ lbu $t1, 0x41($s4)
/* 389EE0 E0086690 AFA900B8 */ sw $t1, 0xb8($sp)
.LE0086694:
/* 389EE4 E0086694 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 389EE8 E0086698 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 389EEC E008669C 8C930000 */ lw $s3, ($a0)
/* 389EF0 E00866A0 3C02DE00 */ lui $v0, 0xde00
/* 389EF4 E00866A4 AE620008 */ sw $v0, 8($s3)
/* 389EF8 E00866A8 00151080 */ sll $v0, $s5, 2
/* 389EFC E00866AC 3C03E008 */ lui $v1, %hi(D_E0086AB4)
/* 389F00 E00866B0 00621821 */ addu $v1, $v1, $v0
/* 389F04 E00866B4 8C636AB4 */ lw $v1, %lo(D_E0086AB4)($v1)
/* 389F08 E00866B8 26620010 */ addiu $v0, $s3, 0x10
/* 389F0C E00866BC AC820000 */ sw $v0, ($a0)
/* 389F10 E00866C0 AE63000C */ sw $v1, 0xc($s3)
/* 389F14 E00866C4 3C03E008 */ lui $v1, %hi(D_E0086AB4)
/* 389F18 E00866C8 24636AB4 */ addiu $v1, $v1, %lo(D_E0086AB4)
/* 389F1C E00866CC 11000007 */ beqz $t0, .LE00866EC
/* 389F20 E00866D0 26940044 */ addiu $s4, $s4, 0x44
/* 389F24 E00866D4 26620018 */ addiu $v0, $s3, 0x18
/* 389F28 E00866D8 AC820000 */ sw $v0, ($a0)
/* 389F2C E00866DC 3C02F200 */ lui $v0, 0xf200
/* 389F30 E00866E0 AE620010 */ sw $v0, 0x10($s3)
/* 389F34 E00866E4 3C020100 */ lui $v0, 0x100
/* 389F38 E00866E8 AE620014 */ sw $v0, 0x14($s3)
.LE00866EC:
/* 389F3C E00866EC 8FA90100 */ lw $t1, 0x100($sp)
/* 389F40 E00866F0 8D220008 */ lw $v0, 8($t1)
/* 389F44 E00866F4 24120001 */ addiu $s2, $zero, 1
/* 389F48 E00866F8 0242102A */ slt $v0, $s2, $v0
/* 389F4C E00866FC 10400063 */ beqz $v0, .LE008688C
/* 389F50 E0086700 0080A82D */ daddu $s5, $a0, $zero
/* 389F54 E0086704 27B10060 */ addiu $s1, $sp, 0x60
/* 389F58 E0086708 3C178007 */ lui $s7, %hi(gMatrixListPos)
/* 389F5C E008670C 26F741F0 */ addiu $s7, $s7, %lo(gMatrixListPos)
/* 389F60 E0086710 3C160001 */ lui $s6, 1
/* 389F64 E0086714 36D61630 */ ori $s6, $s6, 0x1630
/* 389F68 E0086718 3C03E008 */ lui $v1, %hi(D_E0086AA0)
/* 389F6C E008671C 24636AA0 */ addiu $v1, $v1, %lo(D_E0086AA0)
/* 389F70 E0086720 2690000C */ addiu $s0, $s4, 0xc
/* 389F74 E0086724 8FA900A4 */ lw $t1, 0xa4($sp)
/* 389F78 E0086728 4480A000 */ mtc1 $zero, $f20
/* 389F7C E008672C 3C013F80 */ lui $at, 0x3f80
/* 389F80 E0086730 4481B000 */ mtc1 $at, $f22
/* 389F84 E0086734 00091080 */ sll $v0, $t1, 2
/* 389F88 E0086738 00431021 */ addu $v0, $v0, $v1
/* 389F8C E008673C AFA200C0 */ sw $v0, 0xc0($sp)
.LE0086740:
/* 389F90 E0086740 27A40020 */ addiu $a0, $sp, 0x20
/* 389F94 E0086744 26520001 */ addiu $s2, $s2, 1
/* 389F98 E0086748 8EA30000 */ lw $v1, ($s5)
/* 389F9C E008674C 4406A000 */ mfc1 $a2, $f20
/* 389FA0 E0086750 4407A000 */ mfc1 $a3, $f20
/* 389FA4 E0086754 0060282D */ daddu $a1, $v1, $zero
/* 389FA8 E0086758 3C09DE00 */ lui $t1, 0xde00
/* 389FAC E008675C ACA90000 */ sw $t1, ($a1)
/* 389FB0 E0086760 8E820000 */ lw $v0, ($s4)
/* 389FB4 E0086764 3C09E008 */ lui $t1, %hi(D_E0086AB4)
/* 389FB8 E0086768 25296AB4 */ addiu $t1, $t1, %lo(D_E0086AB4)
/* 389FBC E008676C 00021080 */ sll $v0, $v0, 2
/* 389FC0 E0086770 00491021 */ addu $v0, $v0, $t1
/* 389FC4 E0086774 8C420000 */ lw $v0, ($v0)
/* 389FC8 E0086778 24630008 */ addiu $v1, $v1, 8
/* 389FCC E008677C ACA20004 */ sw $v0, 4($a1)
/* 389FD0 E0086780 E7B60010 */ swc1 $f22, 0x10($sp)
/* 389FD4 E0086784 8E050010 */ lw $a1, 0x10($s0)
/* 389FD8 E0086788 26940044 */ addiu $s4, $s4, 0x44
/* 389FDC E008678C 0C080104 */ jal shim_guRotateF
/* 389FE0 E0086790 AEA30000 */ sw $v1, ($s5)
/* 389FE4 E0086794 E7B40010 */ swc1 $f20, 0x10($sp)
/* 389FE8 E0086798 8E050018 */ lw $a1, 0x18($s0)
/* 389FEC E008679C 4406A000 */ mfc1 $a2, $f20
/* 389FF0 E00867A0 4407B000 */ mfc1 $a3, $f22
/* 389FF4 E00867A4 0C080104 */ jal shim_guRotateF
/* 389FF8 E00867A8 0220202D */ daddu $a0, $s1, $zero
/* 389FFC E00867AC 0220202D */ daddu $a0, $s1, $zero
/* 38A000 E00867B0 27A50020 */ addiu $a1, $sp, 0x20
/* 38A004 E00867B4 0C080114 */ jal shim_guMtxCatF
/* 38A008 E00867B8 00A0302D */ daddu $a2, $a1, $zero
/* 38A00C E00867BC 8E05FFF8 */ lw $a1, -8($s0)
/* 38A010 E00867C0 8E06FFFC */ lw $a2, -4($s0)
/* 38A014 E00867C4 8E070000 */ lw $a3, ($s0)
/* 38A018 E00867C8 0C080108 */ jal shim_guTranslateF
/* 38A01C E00867CC 0220202D */ daddu $a0, $s1, $zero
/* 38A020 E00867D0 0220202D */ daddu $a0, $s1, $zero
/* 38A024 E00867D4 27A50020 */ addiu $a1, $sp, 0x20
/* 38A028 E00867D8 0C080114 */ jal shim_guMtxCatF
/* 38A02C E00867DC 00A0302D */ daddu $a2, $a1, $zero
/* 38A030 E00867E0 27A40020 */ addiu $a0, $sp, 0x20
/* 38A034 E00867E4 96E50000 */ lhu $a1, ($s7)
/* 38A038 E00867E8 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 38A03C E00867EC 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 38A040 E00867F0 00052980 */ sll $a1, $a1, 6
/* 38A044 E00867F4 00B62821 */ addu $a1, $a1, $s6
/* 38A048 E00867F8 0C080118 */ jal shim_guMtxF2L
/* 38A04C E00867FC 00452821 */ addu $a1, $v0, $a1
/* 38A050 E0086800 8EA40000 */ lw $a0, ($s5)
/* 38A054 E0086804 3C06D838 */ lui $a2, 0xd838
/* 38A058 E0086808 0080282D */ daddu $a1, $a0, $zero
/* 38A05C E008680C 24840008 */ addiu $a0, $a0, 8
/* 38A060 E0086810 AEA40000 */ sw $a0, ($s5)
/* 38A064 E0086814 96E20000 */ lhu $v0, ($s7)
/* 38A068 E0086818 3C03DA38 */ lui $v1, 0xda38
/* 38A06C E008681C ACA30000 */ sw $v1, ($a1)
/* 38A070 E0086820 24430001 */ addiu $v1, $v0, 1
/* 38A074 E0086824 3042FFFF */ andi $v0, $v0, 0xffff
/* 38A078 E0086828 00021180 */ sll $v0, $v0, 6
/* 38A07C E008682C A6E30000 */ sh $v1, ($s7)
/* 38A080 E0086830 3C03800A */ lui $v1, %hi(gDisplayContext)
/* 38A084 E0086834 8C63A674 */ lw $v1, %lo(gDisplayContext)($v1)
/* 38A088 E0086838 00561021 */ addu $v0, $v0, $s6
/* 38A08C E008683C 00621821 */ addu $v1, $v1, $v0
/* 38A090 E0086840 ACA30004 */ sw $v1, 4($a1)
/* 38A094 E0086844 3C09DE00 */ lui $t1, 0xde00
/* 38A098 E0086848 AC890000 */ sw $t1, ($a0)
/* 38A09C E008684C 8FA900C0 */ lw $t1, 0xc0($sp)
/* 38A0A0 E0086850 34C60002 */ ori $a2, $a2, 2
/* 38A0A4 E0086854 8D230000 */ lw $v1, ($t1)
/* 38A0A8 E0086858 24820008 */ addiu $v0, $a0, 8
/* 38A0AC E008685C AEA20000 */ sw $v0, ($s5)
/* 38A0B0 E0086860 24020040 */ addiu $v0, $zero, 0x40
/* 38A0B4 E0086864 AC860008 */ sw $a2, 8($a0)
/* 38A0B8 E0086868 AC82000C */ sw $v0, 0xc($a0)
/* 38A0BC E008686C AC830004 */ sw $v1, 4($a0)
/* 38A0C0 E0086870 8FA90100 */ lw $t1, 0x100($sp)
/* 38A0C4 E0086874 26100044 */ addiu $s0, $s0, 0x44
/* 38A0C8 E0086878 8D220008 */ lw $v0, 8($t1)
/* 38A0CC E008687C 24840010 */ addiu $a0, $a0, 0x10
/* 38A0D0 E0086880 0242102A */ slt $v0, $s2, $v0
/* 38A0D4 E0086884 1440FFAE */ bnez $v0, .LE0086740
/* 38A0D8 E0086888 AEA40000 */ sw $a0, ($s5)
.LE008688C:
/* 38A0DC E008688C 27A40020 */ addiu $a0, $sp, 0x20
/* 38A0E0 E0086890 3C150001 */ lui $s5, 1
/* 38A0E4 E0086894 36B51630 */ ori $s5, $s5, 0x1630
/* 38A0E8 E0086898 3C10800A */ lui $s0, %hi(gMasterGfxPos)
/* 38A0EC E008689C 2610A66C */ addiu $s0, $s0, %lo(gMasterGfxPos)
/* 38A0F0 E00868A0 3C02DF00 */ lui $v0, 0xdf00
/* 38A0F4 E00868A4 3C14DE00 */ lui $s4, 0xde00
/* 38A0F8 E00868A8 8E080000 */ lw $t0, ($s0)
/* 38A0FC E00868AC 3C013F80 */ lui $at, 0x3f80
/* 38A100 E00868B0 44810000 */ mtc1 $at, $f0
/* 38A104 E00868B4 0100182D */ daddu $v1, $t0, $zero
/* 38A108 E00868B8 25080008 */ addiu $t0, $t0, 8
/* 38A10C E00868BC AE080000 */ sw $t0, ($s0)
/* 38A110 E00868C0 AC620000 */ sw $v0, ($v1)
/* 38A114 E00868C4 3C02DE01 */ lui $v0, 0xde01
/* 38A118 E00868C8 AC600004 */ sw $zero, 4($v1)
/* 38A11C E00868CC AE620000 */ sw $v0, ($s3)
/* 38A120 E00868D0 25020008 */ addiu $v0, $t0, 8
/* 38A124 E00868D4 AE680004 */ sw $t0, 4($s3)
/* 38A128 E00868D8 AE020000 */ sw $v0, ($s0)
/* 38A12C E00868DC 3C02FA00 */ lui $v0, 0xfa00
/* 38A130 E00868E0 AD020000 */ sw $v0, ($t0)
/* 38A134 E00868E4 8FA900A8 */ lw $t1, 0xa8($sp)
/* 38A138 E00868E8 3C0542F0 */ lui $a1, 0x42f0
/* 38A13C E00868EC 00091E00 */ sll $v1, $t1, 0x18
/* 38A140 E00868F0 8FA900AC */ lw $t1, 0xac($sp)
/* 38A144 E00868F4 26730008 */ addiu $s3, $s3, 8
/* 38A148 E00868F8 312200FF */ andi $v0, $t1, 0xff
/* 38A14C E00868FC 00021400 */ sll $v0, $v0, 0x10
/* 38A150 E0086900 00621825 */ or $v1, $v1, $v0
/* 38A154 E0086904 33C200FF */ andi $v0, $fp, 0xff
/* 38A158 E0086908 00021200 */ sll $v0, $v0, 8
/* 38A15C E008690C 8FA900BC */ lw $t1, 0xbc($sp)
/* 38A160 E0086910 00621825 */ or $v1, $v1, $v0
/* 38A164 E0086914 312200FF */ andi $v0, $t1, 0xff
/* 38A168 E0086918 00621825 */ or $v1, $v1, $v0
/* 38A16C E008691C 25020010 */ addiu $v0, $t0, 0x10
/* 38A170 E0086920 AD030004 */ sw $v1, 4($t0)
/* 38A174 E0086924 AE020000 */ sw $v0, ($s0)
/* 38A178 E0086928 3C02FB00 */ lui $v0, 0xfb00
/* 38A17C E008692C AD020008 */ sw $v0, 8($t0)
/* 38A180 E0086930 8FA900B0 */ lw $t1, 0xb0($sp)
/* 38A184 E0086934 44060000 */ mfc1 $a2, $f0
/* 38A188 E0086938 00091E00 */ sll $v1, $t1, 0x18
/* 38A18C E008693C 8FA900B4 */ lw $t1, 0xb4($sp)
/* 38A190 E0086940 00C0382D */ daddu $a3, $a2, $zero
/* 38A194 E0086944 312200FF */ andi $v0, $t1, 0xff
/* 38A198 E0086948 00021400 */ sll $v0, $v0, 0x10
/* 38A19C E008694C 8FA900B8 */ lw $t1, 0xb8($sp)
/* 38A1A0 E0086950 00621825 */ or $v1, $v1, $v0
/* 38A1A4 E0086954 312200FF */ andi $v0, $t1, 0xff
/* 38A1A8 E0086958 00021200 */ sll $v0, $v0, 8
/* 38A1AC E008695C 8FA900A0 */ lw $t1, 0xa0($sp)
/* 38A1B0 E0086960 00621825 */ or $v1, $v1, $v0
/* 38A1B4 E0086964 312200FF */ andi $v0, $t1, 0xff
/* 38A1B8 E0086968 00621825 */ or $v1, $v1, $v0
/* 38A1BC E008696C 25020018 */ addiu $v0, $t0, 0x18
/* 38A1C0 E0086970 AD03000C */ sw $v1, 0xc($t0)
/* 38A1C4 E0086974 AE020000 */ sw $v0, ($s0)
/* 38A1C8 E0086978 AD140010 */ sw $s4, 0x10($t0)
/* 38A1CC E008697C AD130014 */ sw $s3, 0x14($t0)
/* 38A1D0 E0086980 0C080104 */ jal shim_guRotateF
/* 38A1D4 E0086984 AFA60010 */ sw $a2, 0x10($sp)
/* 38A1D8 E0086988 27A40020 */ addiu $a0, $sp, 0x20
/* 38A1DC E008698C 3C118007 */ lui $s1, %hi(gMatrixListPos)
/* 38A1E0 E0086990 263141F0 */ addiu $s1, $s1, %lo(gMatrixListPos)
/* 38A1E4 E0086994 3C12800A */ lui $s2, %hi(gDisplayContext)
/* 38A1E8 E0086998 2652A674 */ addiu $s2, $s2, %lo(gDisplayContext)
/* 38A1EC E008699C 96250000 */ lhu $a1, ($s1)
/* 38A1F0 E00869A0 8E420000 */ lw $v0, ($s2)
/* 38A1F4 E00869A4 00052980 */ sll $a1, $a1, 6
/* 38A1F8 E00869A8 00B52821 */ addu $a1, $a1, $s5
/* 38A1FC E00869AC 0C080118 */ jal shim_guMtxF2L
/* 38A200 E00869B0 00452821 */ addu $a1, $v0, $a1
/* 38A204 E00869B4 3C06DA38 */ lui $a2, 0xda38
/* 38A208 E00869B8 34C60001 */ ori $a2, $a2, 1
/* 38A20C E00869BC 3C07D838 */ lui $a3, 0xd838
/* 38A210 E00869C0 34E70002 */ ori $a3, $a3, 2
/* 38A214 E00869C4 8E030000 */ lw $v1, ($s0)
/* 38A218 E00869C8 96220000 */ lhu $v0, ($s1)
/* 38A21C E00869CC 0060202D */ daddu $a0, $v1, $zero
/* 38A220 E00869D0 24630008 */ addiu $v1, $v1, 8
/* 38A224 E00869D4 00021180 */ sll $v0, $v0, 6
/* 38A228 E00869D8 AE030000 */ sw $v1, ($s0)
/* 38A22C E00869DC AC860000 */ sw $a2, ($a0)
/* 38A230 E00869E0 8E450000 */ lw $a1, ($s2)
/* 38A234 E00869E4 00551021 */ addu $v0, $v0, $s5
/* 38A238 E00869E8 00A21021 */ addu $v0, $a1, $v0
/* 38A23C E00869EC AC820004 */ sw $v0, 4($a0)
/* 38A240 E00869F0 24620008 */ addiu $v0, $v1, 8
/* 38A244 E00869F4 AE020000 */ sw $v0, ($s0)
/* 38A248 E00869F8 AC740000 */ sw $s4, ($v1)
/* 38A24C E00869FC AC730004 */ sw $s3, 4($v1)
/* 38A250 E0086A00 96220000 */ lhu $v0, ($s1)
/* 38A254 E0086A04 24640010 */ addiu $a0, $v1, 0x10
/* 38A258 E0086A08 AE040000 */ sw $a0, ($s0)
/* 38A25C E0086A0C AC660008 */ sw $a2, 8($v1)
/* 38A260 E0086A10 24440001 */ addiu $a0, $v0, 1
/* 38A264 E0086A14 3042FFFF */ andi $v0, $v0, 0xffff
/* 38A268 E0086A18 00021180 */ sll $v0, $v0, 6
/* 38A26C E0086A1C 00551021 */ addu $v0, $v0, $s5
/* 38A270 E0086A20 00A22821 */ addu $a1, $a1, $v0
/* 38A274 E0086A24 24620018 */ addiu $v0, $v1, 0x18
/* 38A278 E0086A28 A6240000 */ sh $a0, ($s1)
/* 38A27C E0086A2C AC65000C */ sw $a1, 0xc($v1)
/* 38A280 E0086A30 AE020000 */ sw $v0, ($s0)
/* 38A284 E0086A34 24620020 */ addiu $v0, $v1, 0x20
/* 38A288 E0086A38 AC740010 */ sw $s4, 0x10($v1)
/* 38A28C E0086A3C AC730014 */ sw $s3, 0x14($v1)
/* 38A290 E0086A40 AE020000 */ sw $v0, ($s0)
/* 38A294 E0086A44 24020040 */ addiu $v0, $zero, 0x40
/* 38A298 E0086A48 AC62001C */ sw $v0, 0x1c($v1)
/* 38A29C E0086A4C 24620028 */ addiu $v0, $v1, 0x28
/* 38A2A0 E0086A50 AC670018 */ sw $a3, 0x18($v1)
/* 38A2A4 E0086A54 AE020000 */ sw $v0, ($s0)
/* 38A2A8 E0086A58 3C02E700 */ lui $v0, 0xe700
/* 38A2AC E0086A5C AC620020 */ sw $v0, 0x20($v1)
/* 38A2B0 E0086A60 AC600024 */ sw $zero, 0x24($v1)
.LE0086A64:
/* 38A2B4 E0086A64 8FBF00EC */ lw $ra, 0xec($sp)
/* 38A2B8 E0086A68 8FBE00E8 */ lw $fp, 0xe8($sp)
/* 38A2BC E0086A6C 8FB700E4 */ lw $s7, 0xe4($sp)
/* 38A2C0 E0086A70 8FB600E0 */ lw $s6, 0xe0($sp)
/* 38A2C4 E0086A74 8FB500DC */ lw $s5, 0xdc($sp)
/* 38A2C8 E0086A78 8FB400D8 */ lw $s4, 0xd8($sp)
/* 38A2CC E0086A7C 8FB300D4 */ lw $s3, 0xd4($sp)
/* 38A2D0 E0086A80 8FB200D0 */ lw $s2, 0xd0($sp)
/* 38A2D4 E0086A84 8FB100CC */ lw $s1, 0xcc($sp)
/* 38A2D8 E0086A88 8FB000C8 */ lw $s0, 0xc8($sp)
/* 38A2DC E0086A8C D7B600F8 */ ldc1 $f22, 0xf8($sp)
/* 38A2E0 E0086A90 D7B400F0 */ ldc1 $f20, 0xf0($sp)
/* 38A2E4 E0086A94 03E00008 */ jr $ra
/* 38A2E8 E0086A98 27BD0100 */ addiu $sp, $sp, 0x100
/* 38A2EC E0086A9C 00000000 */ nop

View File

@ -1,323 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel flame_appendGfx
/* 353648 E0040348 27BDFF08 */ addiu $sp, $sp, -0xf8
/* 35364C E004034C 3C03DB06 */ lui $v1, 0xdb06
/* 353650 E0040350 AFB400E8 */ sw $s4, 0xe8($sp)
/* 353654 E0040354 3C14800A */ lui $s4, %hi(gMasterGfxPos)
/* 353658 E0040358 2694A66C */ addiu $s4, $s4, %lo(gMasterGfxPos)
/* 35365C E004035C 34630024 */ ori $v1, $v1, 0x24
/* 353660 E0040360 AFB600F0 */ sw $s6, 0xf0($sp)
/* 353664 E0040364 3C16E700 */ lui $s6, 0xe700
/* 353668 E0040368 3C0B8000 */ lui $t3, 0x8000
/* 35366C E004036C AFBF00F4 */ sw $ra, 0xf4($sp)
/* 353670 E0040370 AFB500EC */ sw $s5, 0xec($sp)
/* 353674 E0040374 AFB300E4 */ sw $s3, 0xe4($sp)
/* 353678 E0040378 AFB200E0 */ sw $s2, 0xe0($sp)
/* 35367C E004037C AFB100DC */ sw $s1, 0xdc($sp)
/* 353680 E0040380 AFB000D8 */ sw $s0, 0xd8($sp)
/* 353684 E0040384 8E870000 */ lw $a3, ($s4)
/* 353688 E0040388 8C92000C */ lw $s2, 0xc($a0)
/* 35368C E004038C 3C014080 */ lui $at, 0x4080
/* 353690 E0040390 44812000 */ mtc1 $at, $f4
/* 353694 E0040394 00E0102D */ daddu $v0, $a3, $zero
/* 353698 E0040398 24E70008 */ addiu $a3, $a3, 8
/* 35369C E004039C AE870000 */ sw $a3, ($s4)
/* 3536A0 E00403A0 8E4C0000 */ lw $t4, ($s2)
/* 3536A4 E00403A4 C640001C */ lwc1 $f0, 0x1c($s2)
/* 3536A8 E00403A8 C6420024 */ lwc1 $f2, 0x24($s2)
/* 3536AC E00403AC 3C108007 */ lui $s0, %hi(gCurrentCameraID)
/* 3536B0 E00403B0 26107410 */ addiu $s0, $s0, %lo(gCurrentCameraID)
/* 3536B4 E00403B4 AC560000 */ sw $s6, ($v0)
/* 3536B8 E00403B8 AC400004 */ sw $zero, 4($v0)
/* 3536BC E00403BC ACE30000 */ sw $v1, ($a3)
/* 3536C0 E00403C0 8C830010 */ lw $v1, 0x10($a0)
/* 3536C4 E00403C4 24E20008 */ addiu $v0, $a3, 8
/* 3536C8 E00403C8 AE820000 */ sw $v0, ($s4)
/* 3536CC E00403CC 46040002 */ mul.s $f0, $f0, $f4
/* 3536D0 E00403D0 00000000 */ nop
/* 3536D4 E00403D4 8C62001C */ lw $v0, 0x1c($v1)
/* 3536D8 E00403D8 3C15800B */ lui $s5, %hi(gCameras)
/* 3536DC E00403DC 26B51D80 */ addiu $s5, $s5, %lo(gCameras)
/* 3536E0 E00403E0 004B1021 */ addu $v0, $v0, $t3
/* 3536E4 E00403E4 ACE20004 */ sw $v0, 4($a3)
/* 3536E8 E00403E8 8E030000 */ lw $v1, ($s0)
/* 3536EC E00403EC 46041082 */ mul.s $f2, $f2, $f4
/* 3536F0 E00403F0 00000000 */ nop
/* 3536F4 E00403F4 00031080 */ sll $v0, $v1, 2
/* 3536F8 E00403F8 00431021 */ addu $v0, $v0, $v1
/* 3536FC E00403FC 00021080 */ sll $v0, $v0, 2
/* 353700 E0040400 00431023 */ subu $v0, $v0, $v1
/* 353704 E0040404 000218C0 */ sll $v1, $v0, 3
/* 353708 E0040408 00431021 */ addu $v0, $v0, $v1
/* 35370C E004040C 000210C0 */ sll $v0, $v0, 3
/* 353710 E0040410 00554021 */ addu $t0, $v0, $s5
/* 353714 E0040414 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 353718 E0040418 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 35371C E004041C 3C04E004 */ lui $a0, %hi(D_E0040880)
/* 353720 E0040420 24840880 */ addiu $a0, $a0, %lo(D_E0040880)
/* 353724 E0040424 94430134 */ lhu $v1, 0x134($v0)
/* 353728 E0040428 8C820000 */ lw $v0, ($a0)
/* 35372C E004042C 4600018D */ trunc.w.s $f6, $f0
/* 353730 E0040430 440A3000 */ mfc1 $t2, $f6
/* 353734 E0040434 4600118D */ trunc.w.s $f6, $f2
/* 353738 E0040438 44093000 */ mfc1 $t1, $f6
/* 35373C E004043C 1043005F */ beq $v0, $v1, .LE00405BC
/* 353740 E0040440 24E20010 */ addiu $v0, $a3, 0x10
/* 353744 E0040444 3C06FF10 */ lui $a2, 0xff10
/* 353748 E0040448 34C6013F */ ori $a2, $a2, 0x13f
/* 35374C E004044C 3C05DE00 */ lui $a1, 0xde00
/* 353750 E0040450 AC830000 */ sw $v1, ($a0)
/* 353754 E0040454 AE820000 */ sw $v0, ($s4)
/* 353758 E0040458 3C020900 */ lui $v0, 0x900
/* 35375C E004045C 24420918 */ addiu $v0, $v0, 0x918
/* 353760 E0040460 31430FFF */ andi $v1, $t2, 0xfff
/* 353764 E0040464 00031B00 */ sll $v1, $v1, 0xc
/* 353768 E0040468 ACE2000C */ sw $v0, 0xc($a3)
/* 35376C E004046C 31220FFF */ andi $v0, $t1, 0xfff
/* 353770 E0040470 3C04F200 */ lui $a0, 0xf200
/* 353774 E0040474 00441025 */ or $v0, $v0, $a0
/* 353778 E0040478 00621825 */ or $v1, $v1, $v0
/* 35377C E004047C 25420080 */ addiu $v0, $t2, 0x80
/* 353780 E0040480 30420FFF */ andi $v0, $v0, 0xfff
/* 353784 E0040484 00021300 */ sll $v0, $v0, 0xc
/* 353788 E0040488 ACE30010 */ sw $v1, 0x10($a3)
/* 35378C E004048C 25230100 */ addiu $v1, $t1, 0x100
/* 353790 E0040490 30630FFF */ andi $v1, $v1, 0xfff
/* 353794 E0040494 3C040100 */ lui $a0, 0x100
/* 353798 E0040498 00641825 */ or $v1, $v1, $a0
/* 35379C E004049C 00431025 */ or $v0, $v0, $v1
/* 3537A0 E00404A0 ACE20014 */ sw $v0, 0x14($a3)
/* 3537A4 E00404A4 3C020900 */ lui $v0, 0x900
/* 3537A8 E00404A8 244209E0 */ addiu $v0, $v0, 0x9e0
/* 3537AC E00404AC 3C03800A */ lui $v1, %hi(nuGfxCfb_ptr)
/* 3537B0 E00404B0 8C63A64C */ lw $v1, %lo(nuGfxCfb_ptr)($v1)
/* 3537B4 E00404B4 3C04ED00 */ lui $a0, 0xed00
/* 3537B8 E00404B8 ACE50008 */ sw $a1, 8($a3)
/* 3537BC E00404BC ACE50018 */ sw $a1, 0x18($a3)
/* 3537C0 E00404C0 ACE2001C */ sw $v0, 0x1c($a3)
/* 3537C4 E00404C4 ACE60020 */ sw $a2, 0x20($a3)
/* 3537C8 E00404C8 006B1821 */ addu $v1, $v1, $t3
/* 3537CC E00404CC ACE30024 */ sw $v1, 0x24($a3)
/* 3537D0 E00404D0 8502000E */ lh $v0, 0xe($t0)
/* 3537D4 E00404D4 24E30018 */ addiu $v1, $a3, 0x18
/* 3537D8 E00404D8 44821000 */ mtc1 $v0, $f2
/* 3537DC E00404DC 00000000 */ nop
/* 3537E0 E00404E0 468010A0 */ cvt.s.w $f2, $f2
/* 3537E4 E00404E4 46041082 */ mul.s $f2, $f2, $f4
/* 3537E8 E00404E8 00000000 */ nop
/* 3537EC E00404EC AE830000 */ sw $v1, ($s4)
/* 3537F0 E00404F0 85020010 */ lh $v0, 0x10($t0)
/* 3537F4 E00404F4 24E30020 */ addiu $v1, $a3, 0x20
/* 3537F8 E00404F8 44820000 */ mtc1 $v0, $f0
/* 3537FC E00404FC 00000000 */ nop
/* 353800 E0040500 46800020 */ cvt.s.w $f0, $f0
/* 353804 E0040504 46040002 */ mul.s $f0, $f0, $f4
/* 353808 E0040508 00000000 */ nop
/* 35380C E004050C AE830000 */ sw $v1, ($s4)
/* 353810 E0040510 4600118D */ trunc.w.s $f6, $f2
/* 353814 E0040514 44023000 */ mfc1 $v0, $f6
/* 353818 E0040518 00000000 */ nop
/* 35381C E004051C 30420FFF */ andi $v0, $v0, 0xfff
/* 353820 E0040520 00021300 */ sll $v0, $v0, 0xc
/* 353824 E0040524 4600018D */ trunc.w.s $f6, $f0
/* 353828 E0040528 44033000 */ mfc1 $v1, $f6
/* 35382C E004052C 00000000 */ nop
/* 353830 E0040530 30630FFF */ andi $v1, $v1, 0xfff
/* 353834 E0040534 00641825 */ or $v1, $v1, $a0
/* 353838 E0040538 00431025 */ or $v0, $v0, $v1
/* 35383C E004053C ACE20028 */ sw $v0, 0x28($a3)
/* 353840 E0040540 8503000E */ lh $v1, 0xe($t0)
/* 353844 E0040544 8504000A */ lh $a0, 0xa($t0)
/* 353848 E0040548 24E20028 */ addiu $v0, $a3, 0x28
/* 35384C E004054C AE820000 */ sw $v0, ($s4)
/* 353850 E0040550 85020010 */ lh $v0, 0x10($t0)
/* 353854 E0040554 00641821 */ addu $v1, $v1, $a0
/* 353858 E0040558 44831000 */ mtc1 $v1, $f2
/* 35385C E004055C 00000000 */ nop
/* 353860 E0040560 468010A0 */ cvt.s.w $f2, $f2
/* 353864 E0040564 46041082 */ mul.s $f2, $f2, $f4
/* 353868 E0040568 00000000 */ nop
/* 35386C E004056C 8503000C */ lh $v1, 0xc($t0)
/* 353870 E0040570 24E40030 */ addiu $a0, $a3, 0x30
/* 353874 E0040574 00431021 */ addu $v0, $v0, $v1
/* 353878 E0040578 44820000 */ mtc1 $v0, $f0
/* 35387C E004057C 00000000 */ nop
/* 353880 E0040580 46800020 */ cvt.s.w $f0, $f0
/* 353884 E0040584 46040002 */ mul.s $f0, $f0, $f4
/* 353888 E0040588 00000000 */ nop
/* 35388C E004058C AE840000 */ sw $a0, ($s4)
/* 353890 E0040590 4600118D */ trunc.w.s $f6, $f2
/* 353894 E0040594 44023000 */ mfc1 $v0, $f6
/* 353898 E0040598 00000000 */ nop
/* 35389C E004059C 30420FFF */ andi $v0, $v0, 0xfff
/* 3538A0 E00405A0 00021300 */ sll $v0, $v0, 0xc
/* 3538A4 E00405A4 4600018D */ trunc.w.s $f6, $f0
/* 3538A8 E00405A8 44033000 */ mfc1 $v1, $f6
/* 3538AC E00405AC 00000000 */ nop
/* 3538B0 E00405B0 30630FFF */ andi $v1, $v1, 0xfff
/* 3538B4 E00405B4 00431025 */ or $v0, $v0, $v1
/* 3538B8 E00405B8 ACE2002C */ sw $v0, 0x2c($a3)
.LE00405BC:
/* 3538BC E00405BC 3C13DE00 */ lui $s3, 0xde00
/* 3538C0 E00405C0 3C02E004 */ lui $v0, %hi(D_E0040840)
/* 3538C4 E00405C4 24420840 */ addiu $v0, $v0, %lo(D_E0040840)
/* 3538C8 E00405C8 000C3100 */ sll $a2, $t4, 4
/* 3538CC E00405CC 8E850000 */ lw $a1, ($s4)
/* 3538D0 E00405D0 00C23021 */ addu $a2, $a2, $v0
/* 3538D4 E00405D4 00A0202D */ daddu $a0, $a1, $zero
/* 3538D8 E00405D8 24A50008 */ addiu $a1, $a1, 8
/* 3538DC E00405DC AE850000 */ sw $a1, ($s4)
/* 3538E0 E00405E0 AC930000 */ sw $s3, ($a0)
/* 3538E4 E00405E4 8CC3000C */ lw $v1, 0xc($a2)
/* 3538E8 E00405E8 24A20008 */ addiu $v0, $a1, 8
/* 3538EC E00405EC AE820000 */ sw $v0, ($s4)
/* 3538F0 E00405F0 3C02EB00 */ lui $v0, 0xeb00
/* 3538F4 E00405F4 AC830004 */ sw $v1, 4($a0)
/* 3538F8 E00405F8 ACA20000 */ sw $v0, ($a1)
/* 3538FC E00405FC 90C30003 */ lbu $v1, 3($a2)
/* 353900 E0040600 90C40000 */ lbu $a0, ($a2)
/* 353904 E0040604 24A20010 */ addiu $v0, $a1, 0x10
/* 353908 E0040608 AE820000 */ sw $v0, ($s4)
/* 35390C E004060C 3C02EA00 */ lui $v0, 0xea00
/* 353910 E0040610 ACA20008 */ sw $v0, 8($a1)
/* 353914 E0040614 00031A00 */ sll $v1, $v1, 8
/* 353918 E0040618 00641825 */ or $v1, $v1, $a0
/* 35391C E004061C ACA30004 */ sw $v1, 4($a1)
/* 353920 E0040620 90C40003 */ lbu $a0, 3($a2)
/* 353924 E0040624 90C30001 */ lbu $v1, 1($a2)
/* 353928 E0040628 90C70002 */ lbu $a3, 2($a2)
/* 35392C E004062C 24A20018 */ addiu $v0, $a1, 0x18
/* 353930 E0040630 AE820000 */ sw $v0, ($s4)
/* 353934 E0040634 3C02FA00 */ lui $v0, 0xfa00
/* 353938 E0040638 ACA20010 */ sw $v0, 0x10($a1)
/* 35393C E004063C 00041600 */ sll $v0, $a0, 0x18
/* 353940 E0040640 00031C00 */ sll $v1, $v1, 0x10
/* 353944 E0040644 00431025 */ or $v0, $v0, $v1
/* 353948 E0040648 00042200 */ sll $a0, $a0, 8
/* 35394C E004064C 00441025 */ or $v0, $v0, $a0
/* 353950 E0040650 00471025 */ or $v0, $v0, $a3
/* 353954 E0040654 ACA2000C */ sw $v0, 0xc($a1)
/* 353958 E0040658 90C40007 */ lbu $a0, 7($a2)
/* 35395C E004065C 24A20020 */ addiu $v0, $a1, 0x20
/* 353960 E0040660 AE820000 */ sw $v0, ($s4)
/* 353964 E0040664 3C02FB00 */ lui $v0, 0xfb00
/* 353968 E0040668 ACA20018 */ sw $v0, 0x18($a1)
/* 35396C E004066C 00041600 */ sll $v0, $a0, 0x18
/* 353970 E0040670 00041C00 */ sll $v1, $a0, 0x10
/* 353974 E0040674 00431025 */ or $v0, $v0, $v1
/* 353978 E0040678 00042200 */ sll $a0, $a0, 8
/* 35397C E004067C 00441025 */ or $v0, $v0, $a0
/* 353980 E0040680 ACA20014 */ sw $v0, 0x14($a1)
/* 353984 E0040684 90C20004 */ lbu $v0, 4($a2)
/* 353988 E0040688 90C40005 */ lbu $a0, 5($a2)
/* 35398C E004068C 90C30006 */ lbu $v1, 6($a2)
/* 353990 E0040690 00021600 */ sll $v0, $v0, 0x18
/* 353994 E0040694 00042400 */ sll $a0, $a0, 0x10
/* 353998 E0040698 00441025 */ or $v0, $v0, $a0
/* 35399C E004069C 00031A00 */ sll $v1, $v1, 8
/* 3539A0 E00406A0 00431025 */ or $v0, $v0, $v1
/* 3539A4 E00406A4 ACA2001C */ sw $v0, 0x1c($a1)
/* 3539A8 E00406A8 8E450004 */ lw $a1, 4($s2)
/* 3539AC E00406AC 8E460008 */ lw $a2, 8($s2)
/* 3539B0 E00406B0 8E47000C */ lw $a3, 0xc($s2)
/* 3539B4 E00406B4 0C080108 */ jal shim_guTranslateF
/* 3539B8 E00406B8 27A40018 */ addiu $a0, $sp, 0x18
/* 3539BC E00406BC 27B10058 */ addiu $s1, $sp, 0x58
/* 3539C0 E00406C0 8E030000 */ lw $v1, ($s0)
/* 3539C4 E00406C4 44800000 */ mtc1 $zero, $f0
/* 3539C8 E00406C8 00031080 */ sll $v0, $v1, 2
/* 3539CC E00406CC 00431021 */ addu $v0, $v0, $v1
/* 3539D0 E00406D0 00021080 */ sll $v0, $v0, 2
/* 3539D4 E00406D4 00431023 */ subu $v0, $v0, $v1
/* 3539D8 E00406D8 000218C0 */ sll $v1, $v0, 3
/* 3539DC E00406DC 00431021 */ addu $v0, $v0, $v1
/* 3539E0 E00406E0 000210C0 */ sll $v0, $v0, 3
/* 3539E4 E00406E4 00551021 */ addu $v0, $v0, $s5
/* 3539E8 E00406E8 44060000 */ mfc1 $a2, $f0
/* 3539EC E00406EC C440006C */ lwc1 $f0, 0x6c($v0)
/* 3539F0 E00406F0 3C073F80 */ lui $a3, 0x3f80
/* 3539F4 E00406F4 46000007 */ neg.s $f0, $f0
/* 3539F8 E00406F8 44050000 */ mfc1 $a1, $f0
/* 3539FC E00406FC 0220202D */ daddu $a0, $s1, $zero
/* 353A00 E0040700 0C080104 */ jal shim_guRotateF
/* 353A04 E0040704 AFA60010 */ sw $a2, 0x10($sp)
/* 353A08 E0040708 0220202D */ daddu $a0, $s1, $zero
/* 353A0C E004070C 27A50018 */ addiu $a1, $sp, 0x18
/* 353A10 E0040710 27B00098 */ addiu $s0, $sp, 0x98
/* 353A14 E0040714 0C080114 */ jal shim_guMtxCatF
/* 353A18 E0040718 0200302D */ daddu $a2, $s0, $zero
/* 353A1C E004071C C6420010 */ lwc1 $f2, 0x10($s2)
/* 353A20 E0040720 C6400030 */ lwc1 $f0, 0x30($s2)
/* 353A24 E0040724 46001002 */ mul.s $f0, $f2, $f0
/* 353A28 E0040728 00000000 */ nop
/* 353A2C E004072C 44050000 */ mfc1 $a1, $f0
/* 353A30 E0040730 C640002C */ lwc1 $f0, 0x2c($s2)
/* 353A34 E0040734 46001002 */ mul.s $f0, $f2, $f0
/* 353A38 E0040738 00000000 */ nop
/* 353A3C E004073C 0220202D */ daddu $a0, $s1, $zero
/* 353A40 E0040740 44071000 */ mfc1 $a3, $f2
/* 353A44 E0040744 3C120001 */ lui $s2, 1
/* 353A48 E0040748 44060000 */ mfc1 $a2, $f0
/* 353A4C E004074C 0C080110 */ jal shim_guScaleF
/* 353A50 E0040750 36521630 */ ori $s2, $s2, 0x1630
/* 353A54 E0040754 0220202D */ daddu $a0, $s1, $zero
/* 353A58 E0040758 0200282D */ daddu $a1, $s0, $zero
/* 353A5C E004075C 0C080114 */ jal shim_guMtxCatF
/* 353A60 E0040760 0200302D */ daddu $a2, $s0, $zero
/* 353A64 E0040764 0200202D */ daddu $a0, $s0, $zero
/* 353A68 E0040768 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 353A6C E004076C 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 353A70 E0040770 3C11800A */ lui $s1, %hi(gDisplayContext)
/* 353A74 E0040774 2631A674 */ addiu $s1, $s1, %lo(gDisplayContext)
/* 353A78 E0040778 96050000 */ lhu $a1, ($s0)
/* 353A7C E004077C 8E220000 */ lw $v0, ($s1)
/* 353A80 E0040780 00052980 */ sll $a1, $a1, 6
/* 353A84 E0040784 00B22821 */ addu $a1, $a1, $s2
/* 353A88 E0040788 0C080118 */ jal shim_guMtxF2L
/* 353A8C E004078C 00452821 */ addu $a1, $v0, $a1
/* 353A90 E0040790 3C06D838 */ lui $a2, 0xd838
/* 353A94 E0040794 8E840000 */ lw $a0, ($s4)
/* 353A98 E0040798 34C60002 */ ori $a2, $a2, 2
/* 353A9C E004079C 0080282D */ daddu $a1, $a0, $zero
/* 353AA0 E00407A0 24840008 */ addiu $a0, $a0, 8
/* 353AA4 E00407A4 AE840000 */ sw $a0, ($s4)
/* 353AA8 E00407A8 96020000 */ lhu $v0, ($s0)
/* 353AAC E00407AC 3C03DA38 */ lui $v1, 0xda38
/* 353AB0 E00407B0 ACA30000 */ sw $v1, ($a1)
/* 353AB4 E00407B4 24430001 */ addiu $v1, $v0, 1
/* 353AB8 E00407B8 3042FFFF */ andi $v0, $v0, 0xffff
/* 353ABC E00407BC 00021180 */ sll $v0, $v0, 6
/* 353AC0 E00407C0 A6030000 */ sh $v1, ($s0)
/* 353AC4 E00407C4 8E230000 */ lw $v1, ($s1)
/* 353AC8 E00407C8 00521021 */ addu $v0, $v0, $s2
/* 353ACC E00407CC 00621821 */ addu $v1, $v1, $v0
/* 353AD0 E00407D0 24820008 */ addiu $v0, $a0, 8
/* 353AD4 E00407D4 ACA30004 */ sw $v1, 4($a1)
/* 353AD8 E00407D8 AE820000 */ sw $v0, ($s4)
/* 353ADC E00407DC 3C020900 */ lui $v0, 0x900
/* 353AE0 E00407E0 244208F8 */ addiu $v0, $v0, 0x8f8
/* 353AE4 E00407E4 AC820004 */ sw $v0, 4($a0)
/* 353AE8 E00407E8 24820010 */ addiu $v0, $a0, 0x10
/* 353AEC E00407EC AC930000 */ sw $s3, ($a0)
/* 353AF0 E00407F0 AE820000 */ sw $v0, ($s4)
/* 353AF4 E00407F4 24020040 */ addiu $v0, $zero, 0x40
/* 353AF8 E00407F8 AC82000C */ sw $v0, 0xc($a0)
/* 353AFC E00407FC 24820018 */ addiu $v0, $a0, 0x18
/* 353B00 E0040800 AC860008 */ sw $a2, 8($a0)
/* 353B04 E0040804 AE820000 */ sw $v0, ($s4)
/* 353B08 E0040808 AC960010 */ sw $s6, 0x10($a0)
/* 353B0C E004080C AC800014 */ sw $zero, 0x14($a0)
/* 353B10 E0040810 8FBF00F4 */ lw $ra, 0xf4($sp)
/* 353B14 E0040814 8FB600F0 */ lw $s6, 0xf0($sp)
/* 353B18 E0040818 8FB500EC */ lw $s5, 0xec($sp)
/* 353B1C E004081C 8FB400E8 */ lw $s4, 0xe8($sp)
/* 353B20 E0040820 8FB300E4 */ lw $s3, 0xe4($sp)
/* 353B24 E0040824 8FB200E0 */ lw $s2, 0xe0($sp)
/* 353B28 E0040828 8FB100DC */ lw $s1, 0xdc($sp)
/* 353B2C E004082C 8FB000D8 */ lw $s0, 0xd8($sp)
/* 353B30 E0040830 03E00008 */ jr $ra
/* 353B34 E0040834 27BD00F8 */ addiu $sp, $sp, 0xf8
/* 353B38 E0040838 00000000 */ nop
/* 353B3C E004083C 00000000 */ nop

View File

@ -1,95 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0040890
.double 0.01
.section .text
glabel flame_main
/* 353300 E0040000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 353304 E0040004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 353308 E0040008 4485A000 */ mtc1 $a1, $f20
/* 35330C E004000C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 353310 E0040010 4486B000 */ mtc1 $a2, $f22
/* 353314 E0040014 AFB00028 */ sw $s0, 0x28($sp)
/* 353318 E0040018 0080802D */ daddu $s0, $a0, $zero
/* 35331C E004001C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 353320 E0040020 4487C000 */ mtc1 $a3, $f24
/* 353324 E0040024 27A40010 */ addiu $a0, $sp, 0x10
/* 353328 E0040028 AFB20030 */ sw $s2, 0x30($sp)
/* 35332C E004002C 8FB20064 */ lw $s2, 0x64($sp)
/* 353330 E0040030 2A020004 */ slti $v0, $s0, 4
/* 353334 E0040034 AFBF0034 */ sw $ra, 0x34($sp)
/* 353338 E0040038 14400002 */ bnez $v0, .LE0040044
/* 35333C E004003C AFB1002C */ sw $s1, 0x2c($sp)
/* 353340 E0040040 24100003 */ addiu $s0, $zero, 3
.LE0040044:
/* 353344 E0040044 3C02E004 */ lui $v0, %hi(flame_init)
/* 353348 E0040048 24420148 */ addiu $v0, $v0, %lo(flame_init)
/* 35334C E004004C AFA20018 */ sw $v0, 0x18($sp)
/* 353350 E0040050 3C02E004 */ lui $v0, %hi(flame_update)
/* 353354 E0040054 24420150 */ addiu $v0, $v0, %lo(flame_update)
/* 353358 E0040058 AFA2001C */ sw $v0, 0x1c($sp)
/* 35335C E004005C 3C02E004 */ lui $v0, %hi(flame_render)
/* 353360 E0040060 24420210 */ addiu $v0, $v0, %lo(flame_render)
/* 353364 E0040064 AFA20020 */ sw $v0, 0x20($sp)
/* 353368 E0040068 24020020 */ addiu $v0, $zero, 0x20
/* 35336C E004006C AFA00010 */ sw $zero, 0x10($sp)
/* 353370 E0040070 AFA00024 */ sw $zero, 0x24($sp)
/* 353374 E0040074 0C080124 */ jal shim_create_effect_instance
/* 353378 E0040078 AFA20014 */ sw $v0, 0x14($sp)
/* 35337C E004007C 24040034 */ addiu $a0, $zero, 0x34
/* 353380 E0040080 0040882D */ daddu $s1, $v0, $zero
/* 353384 E0040084 24020001 */ addiu $v0, $zero, 1
/* 353388 E0040088 0C08012C */ jal shim_general_heap_malloc
/* 35338C E004008C AE220008 */ sw $v0, 8($s1)
/* 353390 E0040090 0040182D */ daddu $v1, $v0, $zero
/* 353394 E0040094 14600003 */ bnez $v1, .LE00400A4
/* 353398 E0040098 AE22000C */ sw $v0, 0xc($s1)
.LE004009C:
/* 35339C E004009C 08010027 */ j .LE004009C
/* 3533A0 E00400A0 00000000 */ nop
.LE00400A4:
/* 3533A4 E00400A4 00101100 */ sll $v0, $s0, 4
/* 3533A8 E00400A8 AC700000 */ sw $s0, ($v1)
/* 3533AC E00400AC AC600018 */ sw $zero, 0x18($v1)
/* 3533B0 E00400B0 E4740004 */ swc1 $f20, 4($v1)
/* 3533B4 E00400B4 E4760008 */ swc1 $f22, 8($v1)
/* 3533B8 E00400B8 E478000C */ swc1 $f24, 0xc($v1)
/* 3533BC E00400BC 3C01E004 */ lui $at, %hi(D_E0040848)
/* 3533C0 E00400C0 00220821 */ addu $at, $at, $v0
/* 3533C4 E00400C4 90220848 */ lbu $v0, %lo(D_E0040848)($at)
/* 3533C8 E00400C8 C7A00060 */ lwc1 $f0, 0x60($sp)
/* 3533CC E00400CC 44821000 */ mtc1 $v0, $f2
/* 3533D0 E00400D0 00000000 */ nop
/* 3533D4 E00400D4 468010A0 */ cvt.s.w $f2, $f2
/* 3533D8 E00400D8 46020002 */ mul.s $f0, $f0, $f2
/* 3533DC E00400DC 00000000 */ nop
/* 3533E0 E00400E0 3C01E004 */ lui $at, %hi(D_E0040890)
/* 3533E4 E00400E4 D4220890 */ ldc1 $f2, %lo(D_E0040890)($at)
/* 3533E8 E00400E8 46000021 */ cvt.d.s $f0, $f0
/* 3533EC E00400EC 46220002 */ mul.d $f0, $f0, $f2
/* 3533F0 E00400F0 00000000 */ nop
/* 3533F4 E00400F4 3C013F80 */ lui $at, 0x3f80
/* 3533F8 E00400F8 44811000 */ mtc1 $at, $f2
/* 3533FC E00400FC AC60001C */ sw $zero, 0x1c($v1)
/* 353400 E0040100 AC600024 */ sw $zero, 0x24($v1)
/* 353404 E0040104 AC600020 */ sw $zero, 0x20($v1)
/* 353408 E0040108 E4620030 */ swc1 $f2, 0x30($v1)
/* 35340C E004010C E462002C */ swc1 $f2, 0x2c($v1)
/* 353410 E0040110 E4620028 */ swc1 $f2, 0x28($v1)
/* 353414 E0040114 46200020 */ cvt.s.d $f0, $f0
/* 353418 E0040118 12400002 */ beqz $s2, .LE0040124
/* 35341C E004011C E4600010 */ swc1 $f0, 0x10($v1)
/* 353420 E0040120 AE510000 */ sw $s1, ($s2)
.LE0040124:
/* 353424 E0040124 8FBF0034 */ lw $ra, 0x34($sp)
/* 353428 E0040128 8FB20030 */ lw $s2, 0x30($sp)
/* 35342C E004012C 8FB1002C */ lw $s1, 0x2c($sp)
/* 353430 E0040130 8FB00028 */ lw $s0, 0x28($sp)
/* 353434 E0040134 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 353438 E0040138 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 35343C E004013C D7B40038 */ ldc1 $f20, 0x38($sp)
/* 353440 E0040140 03E00008 */ jr $ra
/* 353444 E0040144 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,58 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel flame_update
/* 353450 E0040150 8C820008 */ lw $v0, 8($a0)
/* 353454 E0040154 8C83000C */ lw $v1, 0xc($a0)
/* 353458 E0040158 1840002B */ blez $v0, .LE0040208
/* 35345C E004015C 0000282D */ daddu $a1, $zero, $zero
/* 353460 E0040160 24630024 */ addiu $v1, $v1, 0x24
/* 353464 E0040164 3C014280 */ lui $at, 0x4280
/* 353468 E0040168 44813000 */ mtc1 $at, $f6
/* 35346C E004016C 44804000 */ mtc1 $zero, $f8
/* 353470 E0040170 3C014300 */ lui $at, 0x4300
/* 353474 E0040174 44812000 */ mtc1 $at, $f4
.LE0040178:
/* 353478 E0040178 C462FFF8 */ lwc1 $f2, -8($v1)
/* 35347C E004017C C460FFFC */ lwc1 $f0, -4($v1)
/* 353480 E0040180 46001000 */ add.s $f0, $f2, $f0
/* 353484 E0040184 4600303C */ c.lt.s $f6, $f0
/* 353488 E0040188 00000000 */ nop
/* 35348C E004018C 45000003 */ bc1f .LE004019C
/* 353490 E0040190 E460FFF8 */ swc1 $f0, -8($v1)
/* 353494 E0040194 46060001 */ sub.s $f0, $f0, $f6
/* 353498 E0040198 E460FFF8 */ swc1 $f0, -8($v1)
.LE004019C:
/* 35349C E004019C C460FFF8 */ lwc1 $f0, -8($v1)
/* 3534A0 E00401A0 4608003C */ c.lt.s $f0, $f8
/* 3534A4 E00401A4 00000000 */ nop
/* 3534A8 E00401A8 45000003 */ bc1f .LE00401B8
/* 3534AC E00401AC 00000000 */ nop
/* 3534B0 E00401B0 46060000 */ add.s $f0, $f0, $f6
/* 3534B4 E00401B4 E460FFF8 */ swc1 $f0, -8($v1)
.LE00401B8:
/* 3534B8 E00401B8 C4620000 */ lwc1 $f2, ($v1)
/* 3534BC E00401BC C4600004 */ lwc1 $f0, 4($v1)
/* 3534C0 E00401C0 46001000 */ add.s $f0, $f2, $f0
/* 3534C4 E00401C4 4600203C */ c.lt.s $f4, $f0
/* 3534C8 E00401C8 00000000 */ nop
/* 3534CC E00401CC 45000003 */ bc1f .LE00401DC
/* 3534D0 E00401D0 E4600000 */ swc1 $f0, ($v1)
/* 3534D4 E00401D4 46040001 */ sub.s $f0, $f0, $f4
/* 3534D8 E00401D8 E4600000 */ swc1 $f0, ($v1)
.LE00401DC:
/* 3534DC E00401DC C4600000 */ lwc1 $f0, ($v1)
/* 3534E0 E00401E0 4608003C */ c.lt.s $f0, $f8
/* 3534E4 E00401E4 00000000 */ nop
/* 3534E8 E00401E8 45000003 */ bc1f .LE00401F8
/* 3534EC E00401EC 24A50001 */ addiu $a1, $a1, 1
/* 3534F0 E00401F0 46040000 */ add.s $f0, $f0, $f4
/* 3534F4 E00401F4 E4600000 */ swc1 $f0, ($v1)
.LE00401F8:
/* 3534F8 E00401F8 8C820008 */ lw $v0, 8($a0)
/* 3534FC E00401FC 00A2102A */ slt $v0, $a1, $v0
/* 353500 E0040200 1440FFDD */ bnez $v0, .LE0040178
/* 353504 E0040204 24630034 */ addiu $v1, $v1, 0x34
.LE0040208:
/* 353508 E0040208 03E00008 */ jr $ra
/* 35350C E004020C 00000000 */ nop

View File

@ -1,191 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel merlin_house_stars_appendGfx
/* 3A58F4 E00A63A4 27BDFF50 */ addiu $sp, $sp, -0xb0
/* 3A58F8 E00A63A8 0080182D */ daddu $v1, $a0, $zero
/* 3A58FC E00A63AC 3C05DB06 */ lui $a1, 0xdb06
/* 3A5900 E00A63B0 34A50024 */ ori $a1, $a1, 0x24
/* 3A5904 E00A63B4 AFB10094 */ sw $s1, 0x94($sp)
/* 3A5908 E00A63B8 3C11800A */ lui $s1, %hi(gMasterGfxPos)
/* 3A590C E00A63BC 2631A66C */ addiu $s1, $s1, %lo(gMasterGfxPos)
/* 3A5910 E00A63C0 27A40010 */ addiu $a0, $sp, 0x10
/* 3A5914 E00A63C4 AFB600A8 */ sw $s6, 0xa8($sp)
/* 3A5918 E00A63C8 3C16E700 */ lui $s6, 0xe700
/* 3A591C E00A63CC AFBF00AC */ sw $ra, 0xac($sp)
/* 3A5920 E00A63D0 AFB500A4 */ sw $s5, 0xa4($sp)
/* 3A5924 E00A63D4 AFB400A0 */ sw $s4, 0xa0($sp)
/* 3A5928 E00A63D8 AFB3009C */ sw $s3, 0x9c($sp)
/* 3A592C E00A63DC AFB20098 */ sw $s2, 0x98($sp)
/* 3A5930 E00A63E0 AFB00090 */ sw $s0, 0x90($sp)
/* 3A5934 E00A63E4 8E280000 */ lw $t0, ($s1)
/* 3A5938 E00A63E8 8C72000C */ lw $s2, 0xc($v1)
/* 3A593C E00A63EC 0100102D */ daddu $v0, $t0, $zero
/* 3A5940 E00A63F0 8E540018 */ lw $s4, 0x18($s2)
/* 3A5944 E00A63F4 25080008 */ addiu $t0, $t0, 8
/* 3A5948 E00A63F8 AC560000 */ sw $s6, ($v0)
/* 3A594C E00A63FC AC400004 */ sw $zero, 4($v0)
/* 3A5950 E00A6400 AD050000 */ sw $a1, ($t0)
/* 3A5954 E00A6404 8C620010 */ lw $v0, 0x10($v1)
/* 3A5958 E00A6408 3C150001 */ lui $s5, 1
/* 3A595C E00A640C AE280000 */ sw $t0, ($s1)
/* 3A5960 E00A6410 8C42001C */ lw $v0, 0x1c($v0)
/* 3A5964 E00A6414 3C038000 */ lui $v1, 0x8000
/* 3A5968 E00A6418 00431021 */ addu $v0, $v0, $v1
/* 3A596C E00A641C AD020004 */ sw $v0, 4($t0)
/* 3A5970 E00A6420 8E45000C */ lw $a1, 0xc($s2)
/* 3A5974 E00A6424 8E460010 */ lw $a2, 0x10($s2)
/* 3A5978 E00A6428 8E470014 */ lw $a3, 0x14($s2)
/* 3A597C E00A642C 25080008 */ addiu $t0, $t0, 8
/* 3A5980 E00A6430 0C080108 */ jal shim_guTranslateF
/* 3A5984 E00A6434 AE280000 */ sw $t0, ($s1)
/* 3A5988 E00A6438 36B51630 */ ori $s5, $s5, 0x1630
/* 3A598C E00A643C 3C013F75 */ lui $at, 0x3f75
/* 3A5990 E00A6440 3421C28F */ ori $at, $at, 0xc28f
/* 3A5994 E00A6444 44810000 */ mtc1 $at, $f0
/* 3A5998 E00A6448 27B00050 */ addiu $s0, $sp, 0x50
/* 3A599C E00A644C 44050000 */ mfc1 $a1, $f0
/* 3A59A0 E00A6450 0200202D */ daddu $a0, $s0, $zero
/* 3A59A4 E00A6454 00A0302D */ daddu $a2, $a1, $zero
/* 3A59A8 E00A6458 0C080110 */ jal shim_guScaleF
/* 3A59AC E00A645C 00A0382D */ daddu $a3, $a1, $zero
/* 3A59B0 E00A6460 0200202D */ daddu $a0, $s0, $zero
/* 3A59B4 E00A6464 27A50010 */ addiu $a1, $sp, 0x10
/* 3A59B8 E00A6468 0C080114 */ jal shim_guMtxCatF
/* 3A59BC E00A646C 00A0302D */ daddu $a2, $a1, $zero
/* 3A59C0 E00A6470 27A40010 */ addiu $a0, $sp, 0x10
/* 3A59C4 E00A6474 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 3A59C8 E00A6478 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 3A59CC E00A647C 3C13800A */ lui $s3, %hi(gDisplayContext)
/* 3A59D0 E00A6480 2673A674 */ addiu $s3, $s3, %lo(gDisplayContext)
/* 3A59D4 E00A6484 96050000 */ lhu $a1, ($s0)
/* 3A59D8 E00A6488 8E620000 */ lw $v0, ($s3)
/* 3A59DC E00A648C 00052980 */ sll $a1, $a1, 6
/* 3A59E0 E00A6490 00B52821 */ addu $a1, $a1, $s5
/* 3A59E4 E00A6494 0C080118 */ jal shim_guMtxF2L
/* 3A59E8 E00A6498 00452821 */ addu $a1, $v0, $a1
/* 3A59EC E00A649C 3C03DA38 */ lui $v1, 0xda38
/* 3A59F0 E00A64A0 34630002 */ ori $v1, $v1, 2
/* 3A59F4 E00A64A4 3C07FCFF */ lui $a3, 0xfcff
/* 3A59F8 E00A64A8 34E7A7FF */ ori $a3, $a3, 0xa7ff
/* 3A59FC E00A64AC 3C06FF17 */ lui $a2, 0xff17
/* 3A5A00 E00A64B0 34C6723F */ ori $a2, $a2, 0x723f
/* 3A5A04 E00A64B4 3C08D838 */ lui $t0, 0xd838
/* 3A5A08 E00A64B8 35080002 */ ori $t0, $t0, 2
/* 3A5A0C E00A64BC 329400FF */ andi $s4, $s4, 0xff
/* 3A5A10 E00A64C0 8E250000 */ lw $a1, ($s1)
/* 3A5A14 E00A64C4 96020000 */ lhu $v0, ($s0)
/* 3A5A18 E00A64C8 3C014080 */ lui $at, 0x4080
/* 3A5A1C E00A64CC 44812000 */ mtc1 $at, $f4
/* 3A5A20 E00A64D0 00A0202D */ daddu $a0, $a1, $zero
/* 3A5A24 E00A64D4 24A50008 */ addiu $a1, $a1, 8
/* 3A5A28 E00A64D8 AE250000 */ sw $a1, ($s1)
/* 3A5A2C E00A64DC AC830000 */ sw $v1, ($a0)
/* 3A5A30 E00A64E0 24430001 */ addiu $v1, $v0, 1
/* 3A5A34 E00A64E4 3042FFFF */ andi $v0, $v0, 0xffff
/* 3A5A38 E00A64E8 00021180 */ sll $v0, $v0, 6
/* 3A5A3C E00A64EC A6030000 */ sh $v1, ($s0)
/* 3A5A40 E00A64F0 8E630000 */ lw $v1, ($s3)
/* 3A5A44 E00A64F4 00551021 */ addu $v0, $v0, $s5
/* 3A5A48 E00A64F8 00621821 */ addu $v1, $v1, $v0
/* 3A5A4C E00A64FC 24A20008 */ addiu $v0, $a1, 8
/* 3A5A50 E00A6500 AC830004 */ sw $v1, 4($a0)
/* 3A5A54 E00A6504 AE220000 */ sw $v0, ($s1)
/* 3A5A58 E00A6508 3C02FA00 */ lui $v0, 0xfa00
/* 3A5A5C E00A650C ACA20000 */ sw $v0, ($a1)
/* 3A5A60 E00A6510 2402007F */ addiu $v0, $zero, 0x7f
/* 3A5A64 E00A6514 ACA20004 */ sw $v0, 4($a1)
/* 3A5A68 E00A6518 24A20010 */ addiu $v0, $a1, 0x10
/* 3A5A6C E00A651C AE220000 */ sw $v0, ($s1)
/* 3A5A70 E00A6520 3C02FB00 */ lui $v0, 0xfb00
/* 3A5A74 E00A6524 ACA60014 */ sw $a2, 0x14($a1)
/* 3A5A78 E00A6528 3C06DE00 */ lui $a2, 0xde00
/* 3A5A7C E00A652C ACA20008 */ sw $v0, 8($a1)
/* 3A5A80 E00A6530 3C020900 */ lui $v0, 0x900
/* 3A5A84 E00A6534 24421000 */ addiu $v0, $v0, 0x1000
/* 3A5A88 E00A6538 ACB4000C */ sw $s4, 0xc($a1)
/* 3A5A8C E00A653C ACA70010 */ sw $a3, 0x10($a1)
/* 3A5A90 E00A6540 ACA60018 */ sw $a2, 0x18($a1)
/* 3A5A94 E00A6544 ACA2001C */ sw $v0, 0x1c($a1)
/* 3A5A98 E00A6548 C642001C */ lwc1 $f2, 0x1c($s2)
/* 3A5A9C E00A654C 24A20018 */ addiu $v0, $a1, 0x18
/* 3A5AA0 E00A6550 AE220000 */ sw $v0, ($s1)
/* 3A5AA4 E00A6554 24A20020 */ addiu $v0, $a1, 0x20
/* 3A5AA8 E00A6558 46041082 */ mul.s $f2, $f2, $f4
/* 3A5AAC E00A655C 00000000 */ nop
/* 3A5AB0 E00A6560 AE220000 */ sw $v0, ($s1)
/* 3A5AB4 E00A6564 C6400020 */ lwc1 $f0, 0x20($s2)
/* 3A5AB8 E00A6568 24A20028 */ addiu $v0, $a1, 0x28
/* 3A5ABC E00A656C AE220000 */ sw $v0, ($s1)
/* 3A5AC0 E00A6570 46040002 */ mul.s $f0, $f0, $f4
/* 3A5AC4 E00A6574 00000000 */ nop
/* 3A5AC8 E00A6578 24A20030 */ addiu $v0, $a1, 0x30
/* 3A5ACC E00A657C 3C04F200 */ lui $a0, 0xf200
/* 3A5AD0 E00A6580 AE220000 */ sw $v0, ($s1)
/* 3A5AD4 E00A6584 4600118D */ trunc.w.s $f6, $f2
/* 3A5AD8 E00A6588 44073000 */ mfc1 $a3, $f6
/* 3A5ADC E00A658C 4600018D */ trunc.w.s $f6, $f0
/* 3A5AE0 E00A6590 44093000 */ mfc1 $t1, $f6
/* 3A5AE4 E00A6594 30E30FFF */ andi $v1, $a3, 0xfff
/* 3A5AE8 E00A6598 00031B00 */ sll $v1, $v1, 0xc
/* 3A5AEC E00A659C 31220FFF */ andi $v0, $t1, 0xfff
/* 3A5AF0 E00A65A0 00441025 */ or $v0, $v0, $a0
/* 3A5AF4 E00A65A4 00621825 */ or $v1, $v1, $v0
/* 3A5AF8 E00A65A8 24E200FC */ addiu $v0, $a3, 0xfc
/* 3A5AFC E00A65AC 30420FFF */ andi $v0, $v0, 0xfff
/* 3A5B00 E00A65B0 00021300 */ sll $v0, $v0, 0xc
/* 3A5B04 E00A65B4 ACA30020 */ sw $v1, 0x20($a1)
/* 3A5B08 E00A65B8 252300FC */ addiu $v1, $t1, 0xfc
/* 3A5B0C E00A65BC 30630FFF */ andi $v1, $v1, 0xfff
/* 3A5B10 E00A65C0 00431025 */ or $v0, $v0, $v1
/* 3A5B14 E00A65C4 ACA20024 */ sw $v0, 0x24($a1)
/* 3A5B18 E00A65C8 C6420024 */ lwc1 $f2, 0x24($s2)
/* 3A5B1C E00A65CC 24A20038 */ addiu $v0, $a1, 0x38
/* 3A5B20 E00A65D0 46041082 */ mul.s $f2, $f2, $f4
/* 3A5B24 E00A65D4 00000000 */ nop
/* 3A5B28 E00A65D8 AE220000 */ sw $v0, ($s1)
/* 3A5B2C E00A65DC C6400028 */ lwc1 $f0, 0x28($s2)
/* 3A5B30 E00A65E0 24A20040 */ addiu $v0, $a1, 0x40
/* 3A5B34 E00A65E4 AE220000 */ sw $v0, ($s1)
/* 3A5B38 E00A65E8 46040002 */ mul.s $f0, $f0, $f4
/* 3A5B3C E00A65EC 00000000 */ nop
/* 3A5B40 E00A65F0 3C020900 */ lui $v0, 0x900
/* 3A5B44 E00A65F4 24421418 */ addiu $v0, $v0, 0x1418
/* 3A5B48 E00A65F8 ACA60030 */ sw $a2, 0x30($a1)
/* 3A5B4C E00A65FC ACA20034 */ sw $v0, 0x34($a1)
/* 3A5B50 E00A6600 4600118D */ trunc.w.s $f6, $f2
/* 3A5B54 E00A6604 44073000 */ mfc1 $a3, $f6
/* 3A5B58 E00A6608 4600018D */ trunc.w.s $f6, $f0
/* 3A5B5C E00A660C 44093000 */ mfc1 $t1, $f6
/* 3A5B60 E00A6610 30E30FFF */ andi $v1, $a3, 0xfff
/* 3A5B64 E00A6614 00031B00 */ sll $v1, $v1, 0xc
/* 3A5B68 E00A6618 31220FFF */ andi $v0, $t1, 0xfff
/* 3A5B6C E00A661C 00441025 */ or $v0, $v0, $a0
/* 3A5B70 E00A6620 00621825 */ or $v1, $v1, $v0
/* 3A5B74 E00A6624 24E200FC */ addiu $v0, $a3, 0xfc
/* 3A5B78 E00A6628 30420FFF */ andi $v0, $v0, 0xfff
/* 3A5B7C E00A662C 00021300 */ sll $v0, $v0, 0xc
/* 3A5B80 E00A6630 ACA30028 */ sw $v1, 0x28($a1)
/* 3A5B84 E00A6634 252300FC */ addiu $v1, $t1, 0xfc
/* 3A5B88 E00A6638 30630FFF */ andi $v1, $v1, 0xfff
/* 3A5B8C E00A663C 3C040100 */ lui $a0, 0x100
/* 3A5B90 E00A6640 00641825 */ or $v1, $v1, $a0
/* 3A5B94 E00A6644 00431025 */ or $v0, $v0, $v1
/* 3A5B98 E00A6648 ACA2002C */ sw $v0, 0x2c($a1)
/* 3A5B9C E00A664C 24020040 */ addiu $v0, $zero, 0x40
/* 3A5BA0 E00A6650 ACA80038 */ sw $t0, 0x38($a1)
/* 3A5BA4 E00A6654 ACA2003C */ sw $v0, 0x3c($a1)
/* 3A5BA8 E00A6658 24A20048 */ addiu $v0, $a1, 0x48
/* 3A5BAC E00A665C AE220000 */ sw $v0, ($s1)
/* 3A5BB0 E00A6660 ACB60040 */ sw $s6, 0x40($a1)
/* 3A5BB4 E00A6664 ACA00044 */ sw $zero, 0x44($a1)
/* 3A5BB8 E00A6668 8FBF00AC */ lw $ra, 0xac($sp)
/* 3A5BBC E00A666C 8FB600A8 */ lw $s6, 0xa8($sp)
/* 3A5BC0 E00A6670 8FB500A4 */ lw $s5, 0xa4($sp)
/* 3A5BC4 E00A6674 8FB400A0 */ lw $s4, 0xa0($sp)
/* 3A5BC8 E00A6678 8FB3009C */ lw $s3, 0x9c($sp)
/* 3A5BCC E00A667C 8FB20098 */ lw $s2, 0x98($sp)
/* 3A5BD0 E00A6680 8FB10094 */ lw $s1, 0x94($sp)
/* 3A5BD4 E00A6684 8FB00090 */ lw $s0, 0x90($sp)
/* 3A5BD8 E00A6688 03E00008 */ jr $ra
/* 3A5BDC E00A668C 27BD00B0 */ addiu $sp, $sp, 0xb0

View File

@ -1,77 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel merlin_house_stars_main
/* 3A5550 E00A6000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3A5554 E00A6004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3A5558 E00A6008 4485A000 */ mtc1 $a1, $f20
/* 3A555C E00A600C AFB1002C */ sw $s1, 0x2c($sp)
/* 3A5560 E00A6010 0080882D */ daddu $s1, $a0, $zero
/* 3A5564 E00A6014 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3A5568 E00A6018 4486B000 */ mtc1 $a2, $f22
/* 3A556C E00A601C 27A40010 */ addiu $a0, $sp, 0x10
/* 3A5570 E00A6020 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3A5574 E00A6024 4487C000 */ mtc1 $a3, $f24
/* 3A5578 E00A6028 3C02E00A */ lui $v0, %hi(merlin_house_stars_init)
/* 3A557C E00A602C 2442611C */ addiu $v0, $v0, %lo(merlin_house_stars_init)
/* 3A5580 E00A6030 AFA20018 */ sw $v0, 0x18($sp)
/* 3A5584 E00A6034 3C02E00A */ lui $v0, %hi(merlin_house_stars_update)
/* 3A5588 E00A6038 24426124 */ addiu $v0, $v0, %lo(merlin_house_stars_update)
/* 3A558C E00A603C AFA2001C */ sw $v0, 0x1c($sp)
/* 3A5590 E00A6040 3C02E00A */ lui $v0, %hi(merlin_house_stars_render)
/* 3A5594 E00A6044 24426358 */ addiu $v0, $v0, %lo(merlin_house_stars_render)
/* 3A5598 E00A6048 AFA20020 */ sw $v0, 0x20($sp)
/* 3A559C E00A604C 24020053 */ addiu $v0, $zero, 0x53
/* 3A55A0 E00A6050 AFBF0030 */ sw $ra, 0x30($sp)
/* 3A55A4 E00A6054 AFB00028 */ sw $s0, 0x28($sp)
/* 3A55A8 E00A6058 AFA00010 */ sw $zero, 0x10($sp)
/* 3A55AC E00A605C AFA00024 */ sw $zero, 0x24($sp)
/* 3A55B0 E00A6060 0C080124 */ jal shim_create_effect_instance
/* 3A55B4 E00A6064 AFA20014 */ sw $v0, 0x14($sp)
/* 3A55B8 E00A6068 2404003C */ addiu $a0, $zero, 0x3c
/* 3A55BC E00A606C 24030001 */ addiu $v1, $zero, 1
/* 3A55C0 E00A6070 0040802D */ daddu $s0, $v0, $zero
/* 3A55C4 E00A6074 0C08012C */ jal shim_general_heap_malloc
/* 3A55C8 E00A6078 AE030008 */ sw $v1, 8($s0)
/* 3A55CC E00A607C 0040202D */ daddu $a0, $v0, $zero
/* 3A55D0 E00A6080 14800003 */ bnez $a0, .LE00A6090
/* 3A55D4 E00A6084 AE02000C */ sw $v0, 0xc($s0)
.LE00A6088:
/* 3A55D8 E00A6088 08029822 */ j .LE00A6088
/* 3A55DC E00A608C 00000000 */ nop
.LE00A6090:
/* 3A55E0 E00A6090 0200102D */ daddu $v0, $s0, $zero
/* 3A55E4 E00A6094 44800000 */ mtc1 $zero, $f0
/* 3A55E8 E00A6098 3C013F99 */ lui $at, 0x3f99
/* 3A55EC E00A609C 3421999A */ ori $at, $at, 0x999a
/* 3A55F0 E00A60A0 44812000 */ mtc1 $at, $f4
/* 3A55F4 E00A60A4 3C013ECC */ lui $at, 0x3ecc
/* 3A55F8 E00A60A8 3421CCCD */ ori $at, $at, 0xcccd
/* 3A55FC E00A60AC 44811000 */ mtc1 $at, $f2
/* 3A5600 E00A60B0 3C01BF80 */ lui $at, 0xbf80
/* 3A5604 E00A60B4 44813000 */ mtc1 $at, $f6
/* 3A5608 E00A60B8 24030064 */ addiu $v1, $zero, 0x64
/* 3A560C E00A60BC AC830004 */ sw $v1, 4($a0)
/* 3A5610 E00A60C0 240300FF */ addiu $v1, $zero, 0xff
/* 3A5614 E00A60C4 AC910000 */ sw $s1, ($a0)
/* 3A5618 E00A60C8 AC830018 */ sw $v1, 0x18($a0)
/* 3A561C E00A60CC E494000C */ swc1 $f20, 0xc($a0)
/* 3A5620 E00A60D0 E4960010 */ swc1 $f22, 0x10($a0)
/* 3A5624 E00A60D4 E4980014 */ swc1 $f24, 0x14($a0)
/* 3A5628 E00A60D8 AC800008 */ sw $zero, 8($a0)
/* 3A562C E00A60DC E4800020 */ swc1 $f0, 0x20($a0)
/* 3A5630 E00A60E0 E480001C */ swc1 $f0, 0x1c($a0)
/* 3A5634 E00A60E4 E4800028 */ swc1 $f0, 0x28($a0)
/* 3A5638 E00A60E8 E4800024 */ swc1 $f0, 0x24($a0)
/* 3A563C E00A60EC E484002C */ swc1 $f4, 0x2c($a0)
/* 3A5640 E00A60F0 E4820030 */ swc1 $f2, 0x30($a0)
/* 3A5644 E00A60F4 E4860034 */ swc1 $f6, 0x34($a0)
/* 3A5648 E00A60F8 E4820038 */ swc1 $f2, 0x38($a0)
/* 3A564C E00A60FC 8FBF0030 */ lw $ra, 0x30($sp)
/* 3A5650 E00A6100 8FB1002C */ lw $s1, 0x2c($sp)
/* 3A5654 E00A6104 8FB00028 */ lw $s0, 0x28($sp)
/* 3A5658 E00A6108 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3A565C E00A610C D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3A5660 E00A6110 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3A5664 E00A6114 03E00008 */ jr $ra
/* 3A5668 E00A6118 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,162 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel merlin_house_stars_update
/* 3A5674 E00A6124 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3A5678 E00A6128 AFBF0010 */ sw $ra, 0x10($sp)
/* 3A567C E00A612C 8C830000 */ lw $v1, ($a0)
/* 3A5680 E00A6130 8C85000C */ lw $a1, 0xc($a0)
/* 3A5684 E00A6134 30620010 */ andi $v0, $v1, 0x10
/* 3A5688 E00A6138 10400005 */ beqz $v0, .LE00A6150
/* 3A568C E00A613C 2402FFEF */ addiu $v0, $zero, -0x11
/* 3A5690 E00A6140 00621024 */ and $v0, $v1, $v0
/* 3A5694 E00A6144 AC820000 */ sw $v0, ($a0)
/* 3A5698 E00A6148 2402001E */ addiu $v0, $zero, 0x1e
/* 3A569C E00A614C ACA20004 */ sw $v0, 4($a1)
.LE00A6150:
/* 3A56A0 E00A6150 8CA30004 */ lw $v1, 4($a1)
/* 3A56A4 E00A6154 28620064 */ slti $v0, $v1, 0x64
/* 3A56A8 E00A6158 10400002 */ beqz $v0, .LE00A6164
/* 3A56AC E00A615C 2462FFFF */ addiu $v0, $v1, -1
/* 3A56B0 E00A6160 ACA20004 */ sw $v0, 4($a1)
.LE00A6164:
/* 3A56B4 E00A6164 8CA20008 */ lw $v0, 8($a1)
/* 3A56B8 E00A6168 8CA30004 */ lw $v1, 4($a1)
/* 3A56BC E00A616C 24420001 */ addiu $v0, $v0, 1
/* 3A56C0 E00A6170 04610005 */ bgez $v1, .LE00A6188
/* 3A56C4 E00A6174 ACA20008 */ sw $v0, 8($a1)
/* 3A56C8 E00A6178 0C080128 */ jal shim_remove_effect
/* 3A56CC E00A617C 00000000 */ nop
/* 3A56D0 E00A6180 080298D3 */ j .LE00A634C
/* 3A56D4 E00A6184 00000000 */ nop
.LE00A6188:
/* 3A56D8 E00A6188 C4A2001C */ lwc1 $f2, 0x1c($a1)
/* 3A56DC E00A618C C4A0002C */ lwc1 $f0, 0x2c($a1)
/* 3A56E0 E00A6190 C4A60020 */ lwc1 $f6, 0x20($a1)
/* 3A56E4 E00A6194 C4A40024 */ lwc1 $f4, 0x24($a1)
/* 3A56E8 E00A6198 46001080 */ add.s $f2, $f2, $f0
/* 3A56EC E00A619C C4A00030 */ lwc1 $f0, 0x30($a1)
/* 3A56F0 E00A61A0 8CA40008 */ lw $a0, 8($a1)
/* 3A56F4 E00A61A4 46003180 */ add.s $f6, $f6, $f0
/* 3A56F8 E00A61A8 C4A00034 */ lwc1 $f0, 0x34($a1)
/* 3A56FC E00A61AC 8CA30004 */ lw $v1, 4($a1)
/* 3A5700 E00A61B0 46002100 */ add.s $f4, $f4, $f0
/* 3A5704 E00A61B4 C4A00028 */ lwc1 $f0, 0x28($a1)
/* 3A5708 E00A61B8 E4A2001C */ swc1 $f2, 0x1c($a1)
/* 3A570C E00A61BC C4A20038 */ lwc1 $f2, 0x38($a1)
/* 3A5710 E00A61C0 28820011 */ slti $v0, $a0, 0x11
/* 3A5714 E00A61C4 46020000 */ add.s $f0, $f0, $f2
/* 3A5718 E00A61C8 E4A60020 */ swc1 $f6, 0x20($a1)
/* 3A571C E00A61CC E4A40024 */ swc1 $f4, 0x24($a1)
/* 3A5720 E00A61D0 10400004 */ beqz $v0, .LE00A61E4
/* 3A5724 E00A61D4 E4A00028 */ swc1 $f0, 0x28($a1)
/* 3A5728 E00A61D8 00041100 */ sll $v0, $a0, 4
/* 3A572C E00A61DC 2442FFFF */ addiu $v0, $v0, -1
/* 3A5730 E00A61E0 ACA20018 */ sw $v0, 0x18($a1)
.LE00A61E4:
/* 3A5734 E00A61E4 28620010 */ slti $v0, $v1, 0x10
/* 3A5738 E00A61E8 10400002 */ beqz $v0, .LE00A61F4
/* 3A573C E00A61EC 00031100 */ sll $v0, $v1, 4
/* 3A5740 E00A61F0 ACA20018 */ sw $v0, 0x18($a1)
.LE00A61F4:
/* 3A5744 E00A61F4 C4A2001C */ lwc1 $f2, 0x1c($a1)
/* 3A5748 E00A61F8 44800000 */ mtc1 $zero, $f0
/* 3A574C E00A61FC 00000000 */ nop
/* 3A5750 E00A6200 4600103C */ c.lt.s $f2, $f0
/* 3A5754 E00A6204 00000000 */ nop
/* 3A5758 E00A6208 45000005 */ bc1f .LE00A6220
/* 3A575C E00A620C 00000000 */ nop
/* 3A5760 E00A6210 3C014300 */ lui $at, 0x4300
/* 3A5764 E00A6214 44810000 */ mtc1 $at, $f0
/* 3A5768 E00A6218 08029890 */ j .LE00A6240
/* 3A576C E00A621C 46001000 */ add.s $f0, $f2, $f0
.LE00A6220:
/* 3A5770 E00A6220 3C014300 */ lui $at, 0x4300
/* 3A5774 E00A6224 44810000 */ mtc1 $at, $f0
/* 3A5778 E00A6228 00000000 */ nop
/* 3A577C E00A622C 4602003C */ c.lt.s $f0, $f2
/* 3A5780 E00A6230 00000000 */ nop
/* 3A5784 E00A6234 45000003 */ bc1f .LE00A6244
/* 3A5788 E00A6238 00000000 */ nop
/* 3A578C E00A623C 46001001 */ sub.s $f0, $f2, $f0
.LE00A6240:
/* 3A5790 E00A6240 E4A0001C */ swc1 $f0, 0x1c($a1)
.LE00A6244:
/* 3A5794 E00A6244 C4A00020 */ lwc1 $f0, 0x20($a1)
/* 3A5798 E00A6248 C4A20030 */ lwc1 $f2, 0x30($a1)
/* 3A579C E00A624C 46020080 */ add.s $f2, $f0, $f2
/* 3A57A0 E00A6250 44800000 */ mtc1 $zero, $f0
/* 3A57A4 E00A6254 00000000 */ nop
/* 3A57A8 E00A6258 4600103C */ c.lt.s $f2, $f0
/* 3A57AC E00A625C 00000000 */ nop
/* 3A57B0 E00A6260 45000005 */ bc1f .LE00A6278
/* 3A57B4 E00A6264 E4A20020 */ swc1 $f2, 0x20($a1)
/* 3A57B8 E00A6268 3C014300 */ lui $at, 0x4300
/* 3A57BC E00A626C 44810000 */ mtc1 $at, $f0
/* 3A57C0 E00A6270 080298A6 */ j .LE00A6298
/* 3A57C4 E00A6274 46001000 */ add.s $f0, $f2, $f0
.LE00A6278:
/* 3A57C8 E00A6278 3C014300 */ lui $at, 0x4300
/* 3A57CC E00A627C 44810000 */ mtc1 $at, $f0
/* 3A57D0 E00A6280 00000000 */ nop
/* 3A57D4 E00A6284 4602003C */ c.lt.s $f0, $f2
/* 3A57D8 E00A6288 00000000 */ nop
/* 3A57DC E00A628C 45000003 */ bc1f .LE00A629C
/* 3A57E0 E00A6290 00000000 */ nop
/* 3A57E4 E00A6294 46001001 */ sub.s $f0, $f2, $f0
.LE00A6298:
/* 3A57E8 E00A6298 E4A00020 */ swc1 $f0, 0x20($a1)
.LE00A629C:
/* 3A57EC E00A629C C4A00024 */ lwc1 $f0, 0x24($a1)
/* 3A57F0 E00A62A0 C4A20034 */ lwc1 $f2, 0x34($a1)
/* 3A57F4 E00A62A4 46020080 */ add.s $f2, $f0, $f2
/* 3A57F8 E00A62A8 44800000 */ mtc1 $zero, $f0
/* 3A57FC E00A62AC 00000000 */ nop
/* 3A5800 E00A62B0 4600103C */ c.lt.s $f2, $f0
/* 3A5804 E00A62B4 00000000 */ nop
/* 3A5808 E00A62B8 45000005 */ bc1f .LE00A62D0
/* 3A580C E00A62BC E4A20024 */ swc1 $f2, 0x24($a1)
/* 3A5810 E00A62C0 3C014300 */ lui $at, 0x4300
/* 3A5814 E00A62C4 44810000 */ mtc1 $at, $f0
/* 3A5818 E00A62C8 080298BC */ j .LE00A62F0
/* 3A581C E00A62CC 46001000 */ add.s $f0, $f2, $f0
.LE00A62D0:
/* 3A5820 E00A62D0 3C014300 */ lui $at, 0x4300
/* 3A5824 E00A62D4 44810000 */ mtc1 $at, $f0
/* 3A5828 E00A62D8 00000000 */ nop
/* 3A582C E00A62DC 4602003C */ c.lt.s $f0, $f2
/* 3A5830 E00A62E0 00000000 */ nop
/* 3A5834 E00A62E4 45000003 */ bc1f .LE00A62F4
/* 3A5838 E00A62E8 00000000 */ nop
/* 3A583C E00A62EC 46001001 */ sub.s $f0, $f2, $f0
.LE00A62F0:
/* 3A5840 E00A62F0 E4A00024 */ swc1 $f0, 0x24($a1)
.LE00A62F4:
/* 3A5844 E00A62F4 C4A00028 */ lwc1 $f0, 0x28($a1)
/* 3A5848 E00A62F8 C4A20038 */ lwc1 $f2, 0x38($a1)
/* 3A584C E00A62FC 46020080 */ add.s $f2, $f0, $f2
/* 3A5850 E00A6300 44800000 */ mtc1 $zero, $f0
/* 3A5854 E00A6304 00000000 */ nop
/* 3A5858 E00A6308 4600103C */ c.lt.s $f2, $f0
/* 3A585C E00A630C 00000000 */ nop
/* 3A5860 E00A6310 45000005 */ bc1f .LE00A6328
/* 3A5864 E00A6314 E4A20028 */ swc1 $f2, 0x28($a1)
/* 3A5868 E00A6318 3C014300 */ lui $at, 0x4300
/* 3A586C E00A631C 44810000 */ mtc1 $at, $f0
/* 3A5870 E00A6320 080298D2 */ j .LE00A6348
/* 3A5874 E00A6324 46001000 */ add.s $f0, $f2, $f0
.LE00A6328:
/* 3A5878 E00A6328 3C014300 */ lui $at, 0x4300
/* 3A587C E00A632C 44810000 */ mtc1 $at, $f0
/* 3A5880 E00A6330 00000000 */ nop
/* 3A5884 E00A6334 4602003C */ c.lt.s $f0, $f2
/* 3A5888 E00A6338 00000000 */ nop
/* 3A588C E00A633C 45000003 */ bc1f .LE00A634C
/* 3A5890 E00A6340 00000000 */ nop
/* 3A5894 E00A6344 46001001 */ sub.s $f0, $f2, $f0
.LE00A6348:
/* 3A5898 E00A6348 E4A00028 */ swc1 $f0, 0x28($a1)
.LE00A634C:
/* 3A589C E00A634C 8FBF0010 */ lw $ra, 0x10($sp)
/* 3A58A0 E00A6350 03E00008 */ jr $ra
/* 3A58A4 E00A6354 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,78 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel motion_blur_flame_main
/* 3A2990 E00A2000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3A2994 E00A2004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3A2998 E00A2008 4485A000 */ mtc1 $a1, $f20
/* 3A299C E00A200C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3A29A0 E00A2010 4486B000 */ mtc1 $a2, $f22
/* 3A29A4 E00A2014 AFB20030 */ sw $s2, 0x30($sp)
/* 3A29A8 E00A2018 0080902D */ daddu $s2, $a0, $zero
/* 3A29AC E00A201C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3A29B0 E00A2020 4487C000 */ mtc1 $a3, $f24
/* 3A29B4 E00A2024 27A40010 */ addiu $a0, $sp, 0x10
/* 3A29B8 E00A2028 AFB1002C */ sw $s1, 0x2c($sp)
/* 3A29BC E00A202C 8FB10064 */ lw $s1, 0x64($sp)
/* 3A29C0 E00A2030 3C02E00A */ lui $v0, %hi(motion_blur_flame_init)
/* 3A29C4 E00A2034 24422118 */ addiu $v0, $v0, %lo(motion_blur_flame_init)
/* 3A29C8 E00A2038 AFA20018 */ sw $v0, 0x18($sp)
/* 3A29CC E00A203C 3C02E00A */ lui $v0, %hi(motion_blur_flame_update)
/* 3A29D0 E00A2040 24422120 */ addiu $v0, $v0, %lo(motion_blur_flame_update)
/* 3A29D4 E00A2044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3A29D8 E00A2048 3C02E00A */ lui $v0, %hi(motion_blur_flame_render)
/* 3A29DC E00A204C 244221EC */ addiu $v0, $v0, %lo(motion_blur_flame_render)
/* 3A29E0 E00A2050 AFA20020 */ sw $v0, 0x20($sp)
/* 3A29E4 E00A2054 24020051 */ addiu $v0, $zero, 0x51
/* 3A29E8 E00A2058 AFBF0034 */ sw $ra, 0x34($sp)
/* 3A29EC E00A205C AFB00028 */ sw $s0, 0x28($sp)
/* 3A29F0 E00A2060 AFA00010 */ sw $zero, 0x10($sp)
/* 3A29F4 E00A2064 AFA00024 */ sw $zero, 0x24($sp)
/* 3A29F8 E00A2068 0C080124 */ jal shim_create_effect_instance
/* 3A29FC E00A206C AFA20014 */ sw $v0, 0x14($sp)
/* 3A2A00 E00A2070 24040068 */ addiu $a0, $zero, 0x68
/* 3A2A04 E00A2074 24030001 */ addiu $v1, $zero, 1
/* 3A2A08 E00A2078 0040802D */ daddu $s0, $v0, $zero
/* 3A2A0C E00A207C 0C08012C */ jal shim_general_heap_malloc
/* 3A2A10 E00A2080 AE030008 */ sw $v1, 8($s0)
/* 3A2A14 E00A2084 0040202D */ daddu $a0, $v0, $zero
/* 3A2A18 E00A2088 14800003 */ bnez $a0, .LE00A2098
/* 3A2A1C E00A208C AE02000C */ sw $v0, 0xc($s0)
.LE00A2090:
/* 3A2A20 E00A2090 08028824 */ j .LE00A2090
/* 3A2A24 E00A2094 00000000 */ nop
.LE00A2098:
/* 3A2A28 E00A2098 06210004 */ bgez $s1, .LE00A20AC
/* 3A2A2C E00A209C AC920000 */ sw $s2, ($a0)
/* 3A2A30 E00A20A0 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3A2A34 E00A20A4 0802882C */ j .LE00A20B0
/* 3A2A38 E00A20A8 AC820050 */ sw $v0, 0x50($a0)
.LE00A20AC:
/* 3A2A3C E00A20AC AC910050 */ sw $s1, 0x50($a0)
.LE00A20B0:
/* 3A2A40 E00A20B0 0200102D */ daddu $v0, $s0, $zero
/* 3A2A44 E00A20B4 2403007F */ addiu $v1, $zero, 0x7f
/* 3A2A48 E00A20B8 AC83004C */ sw $v1, 0x4c($a0)
/* 3A2A4C E00A20BC 240300FF */ addiu $v1, $zero, 0xff
/* 3A2A50 E00A20C0 AC800054 */ sw $zero, 0x54($a0)
/* 3A2A54 E00A20C4 E4940004 */ swc1 $f20, 4($a0)
/* 3A2A58 E00A20C8 E4960008 */ swc1 $f22, 8($a0)
/* 3A2A5C E00A20CC E498000C */ swc1 $f24, 0xc($a0)
/* 3A2A60 E00A20D0 AC800010 */ sw $zero, 0x10($a0)
/* 3A2A64 E00A20D4 AC800014 */ sw $zero, 0x14($a0)
/* 3A2A68 E00A20D8 AC800018 */ sw $zero, 0x18($a0)
/* 3A2A6C E00A20DC AC83005C */ sw $v1, 0x5c($a0)
/* 3A2A70 E00A20E0 AC830060 */ sw $v1, 0x60($a0)
/* 3A2A74 E00A20E4 AC830064 */ sw $v1, 0x64($a0)
/* 3A2A78 E00A20E8 AC800040 */ sw $zero, 0x40($a0)
/* 3A2A7C E00A20EC AC800044 */ sw $zero, 0x44($a0)
/* 3A2A80 E00A20F0 AC800048 */ sw $zero, 0x48($a0)
/* 3A2A84 E00A20F4 8FBF0034 */ lw $ra, 0x34($sp)
/* 3A2A88 E00A20F8 8FB20030 */ lw $s2, 0x30($sp)
/* 3A2A8C E00A20FC 8FB1002C */ lw $s1, 0x2c($sp)
/* 3A2A90 E00A2100 8FB00028 */ lw $s0, 0x28($sp)
/* 3A2A94 E00A2104 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3A2A98 E00A2108 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3A2A9C E00A210C D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3A2AA0 E00A2110 03E00008 */ jr $ra
/* 3A2AA4 E00A2114 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,258 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel pink_sparkles_appendGfx
/* 412BF4 E01244C4 27BDFEE0 */ addiu $sp, $sp, -0x120
/* 412BF8 E01244C8 3C06DB06 */ lui $a2, 0xdb06
/* 412BFC E01244CC 34C60024 */ ori $a2, $a2, 0x24
/* 412C00 E01244D0 AFB000E0 */ sw $s0, 0xe0($sp)
/* 412C04 E01244D4 27B00098 */ addiu $s0, $sp, 0x98
/* 412C08 E01244D8 AFA40120 */ sw $a0, 0x120($sp)
/* 412C0C E01244DC 0200202D */ daddu $a0, $s0, $zero
/* 412C10 E01244E0 AFB300EC */ sw $s3, 0xec($sp)
/* 412C14 E01244E4 0000982D */ daddu $s3, $zero, $zero
/* 412C18 E01244E8 AFB400F0 */ sw $s4, 0xf0($sp)
/* 412C1C E01244EC 3C14800A */ lui $s4, %hi(gMasterGfxPos)
/* 412C20 E01244F0 2694A66C */ addiu $s4, $s4, %lo(gMasterGfxPos)
/* 412C24 E01244F4 3C02E700 */ lui $v0, 0xe700
/* 412C28 E01244F8 AFBF0104 */ sw $ra, 0x104($sp)
/* 412C2C E01244FC AFBE0100 */ sw $fp, 0x100($sp)
/* 412C30 E0124500 AFB700FC */ sw $s7, 0xfc($sp)
/* 412C34 E0124504 AFB600F8 */ sw $s6, 0xf8($sp)
/* 412C38 E0124508 AFB500F4 */ sw $s5, 0xf4($sp)
/* 412C3C E012450C AFB200E8 */ sw $s2, 0xe8($sp)
/* 412C40 E0124510 AFB100E4 */ sw $s1, 0xe4($sp)
/* 412C44 E0124514 F7B80118 */ sdc1 $f24, 0x118($sp)
/* 412C48 E0124518 F7B60110 */ sdc1 $f22, 0x110($sp)
/* 412C4C E012451C F7B40108 */ sdc1 $f20, 0x108($sp)
/* 412C50 E0124520 8E830000 */ lw $v1, ($s4)
/* 412C54 E0124524 8FA90120 */ lw $t1, 0x120($sp)
/* 412C58 E0124528 0060282D */ daddu $a1, $v1, $zero
/* 412C5C E012452C 8D31000C */ lw $s1, 0xc($t1)
/* 412C60 E0124530 24630008 */ addiu $v1, $v1, 8
/* 412C64 E0124534 AE830000 */ sw $v1, ($s4)
/* 412C68 E0124538 ACA20000 */ sw $v0, ($a1)
/* 412C6C E012453C 24620008 */ addiu $v0, $v1, 8
/* 412C70 E0124540 ACA00004 */ sw $zero, 4($a1)
/* 412C74 E0124544 AE820000 */ sw $v0, ($s4)
/* 412C78 E0124548 AC660000 */ sw $a2, ($v1)
/* 412C7C E012454C 8D250010 */ lw $a1, 0x10($t1)
/* 412C80 E0124550 24620010 */ addiu $v0, $v1, 0x10
/* 412C84 E0124554 AE820000 */ sw $v0, ($s4)
/* 412C88 E0124558 8CA5001C */ lw $a1, 0x1c($a1)
/* 412C8C E012455C 3C02DE00 */ lui $v0, 0xde00
/* 412C90 E0124560 AC620008 */ sw $v0, 8($v1)
/* 412C94 E0124564 3C020900 */ lui $v0, 0x900
/* 412C98 E0124568 24420F20 */ addiu $v0, $v0, 0xf20
/* 412C9C E012456C AC62000C */ sw $v0, 0xc($v1)
/* 412CA0 E0124570 3C028000 */ lui $v0, 0x8000
/* 412CA4 E0124574 00A22821 */ addu $a1, $a1, $v0
/* 412CA8 E0124578 AC650004 */ sw $a1, 4($v1)
/* 412CAC E012457C 8E250004 */ lw $a1, 4($s1)
/* 412CB0 E0124580 8E260008 */ lw $a2, 8($s1)
/* 412CB4 E0124584 8E27000C */ lw $a3, 0xc($s1)
/* 412CB8 E0124588 8E220020 */ lw $v0, 0x20($s1)
/* 412CBC E012458C 2631002C */ addiu $s1, $s1, 0x2c
/* 412CC0 E0124590 2442FFFF */ addiu $v0, $v0, -1
/* 412CC4 E0124594 00021840 */ sll $v1, $v0, 1
/* 412CC8 E0124598 00621821 */ addu $v1, $v1, $v0
/* 412CCC E012459C 0C080108 */ jal shim_guTranslateF
/* 412CD0 E01245A0 AFA300D8 */ sw $v1, 0xd8($sp)
/* 412CD4 E01245A4 27B20058 */ addiu $s2, $sp, 0x58
/* 412CD8 E01245A8 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 412CDC E01245AC 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 412CE0 E01245B0 44800000 */ mtc1 $zero, $f0
/* 412CE4 E01245B4 00031080 */ sll $v0, $v1, 2
/* 412CE8 E01245B8 00431021 */ addu $v0, $v0, $v1
/* 412CEC E01245BC 00021080 */ sll $v0, $v0, 2
/* 412CF0 E01245C0 00431023 */ subu $v0, $v0, $v1
/* 412CF4 E01245C4 000218C0 */ sll $v1, $v0, 3
/* 412CF8 E01245C8 00431021 */ addu $v0, $v0, $v1
/* 412CFC E01245CC 000210C0 */ sll $v0, $v0, 3
/* 412D00 E01245D0 44060000 */ mfc1 $a2, $f0
/* 412D04 E01245D4 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 412D08 E01245D8 00220821 */ addu $at, $at, $v0
/* 412D0C E01245DC C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 412D10 E01245E0 3C073F80 */ lui $a3, 0x3f80
/* 412D14 E01245E4 46000007 */ neg.s $f0, $f0
/* 412D18 E01245E8 44050000 */ mfc1 $a1, $f0
/* 412D1C E01245EC 0240202D */ daddu $a0, $s2, $zero
/* 412D20 E01245F0 0C080104 */ jal shim_guRotateF
/* 412D24 E01245F4 AFA60010 */ sw $a2, 0x10($sp)
/* 412D28 E01245F8 0240202D */ daddu $a0, $s2, $zero
/* 412D2C E01245FC 0200282D */ daddu $a1, $s0, $zero
/* 412D30 E0124600 0C080114 */ jal shim_guMtxCatF
/* 412D34 E0124604 00A0302D */ daddu $a2, $a1, $zero
/* 412D38 E0124608 3C013F33 */ lui $at, 0x3f33
/* 412D3C E012460C 34213333 */ ori $at, $at, 0x3333
/* 412D40 E0124610 4481A000 */ mtc1 $at, $f20
/* 412D44 E0124614 8FA90120 */ lw $t1, 0x120($sp)
/* 412D48 E0124618 3C013FB3 */ lui $at, 0x3fb3
/* 412D4C E012461C 34213333 */ ori $at, $at, 0x3333
/* 412D50 E0124620 4481B000 */ mtc1 $at, $f22
/* 412D54 E0124624 8D220008 */ lw $v0, 8($t1)
/* 412D58 E0124628 2442FFFF */ addiu $v0, $v0, -1
/* 412D5C E012462C 18400083 */ blez $v0, .LE012483C
/* 412D60 E0124630 4600A606 */ mov.s $f24, $f20
/* 412D64 E0124634 0240B02D */ daddu $s6, $s2, $zero
/* 412D68 E0124638 3C178007 */ lui $s7, %hi(gMatrixListPos)
/* 412D6C E012463C 26F741F0 */ addiu $s7, $s7, %lo(gMatrixListPos)
/* 412D70 E0124640 3C150001 */ lui $s5, 1
/* 412D74 E0124644 36B51630 */ ori $s5, $s5, 0x1630
/* 412D78 E0124648 0280902D */ daddu $s2, $s4, $zero
/* 412D7C E012464C 26310024 */ addiu $s1, $s1, 0x24
/* 412D80 E0124650 8FA900D8 */ lw $t1, 0xd8($sp)
/* 412D84 E0124654 3C1EE012 */ lui $fp, %hi(D_E0124BC0)
/* 412D88 E0124658 27DE4BC0 */ addiu $fp, $fp, %lo(D_E0124BC0)
/* 412D8C E012465C 013E8021 */ addu $s0, $t1, $fp
.LE0124660:
/* 412D90 E0124660 8E340004 */ lw $s4, 4($s1)
/* 412D94 E0124664 0680006E */ bltz $s4, .LE0124820
/* 412D98 E0124668 00000000 */ nop
/* 412D9C E012466C 8E25FFE0 */ lw $a1, -0x20($s1)
/* 412DA0 E0124670 8E26FFE4 */ lw $a2, -0x1c($s1)
/* 412DA4 E0124674 8E27FFE8 */ lw $a3, -0x18($s1)
/* 412DA8 E0124678 0C080108 */ jal shim_guTranslateF
/* 412DAC E012467C 02C0202D */ daddu $a0, $s6, $zero
/* 412DB0 E0124680 02C0202D */ daddu $a0, $s6, $zero
/* 412DB4 E0124684 27A50098 */ addiu $a1, $sp, 0x98
/* 412DB8 E0124688 C6200000 */ lwc1 $f0, ($s1)
/* 412DBC E012468C 27A60018 */ addiu $a2, $sp, 0x18
/* 412DC0 E0124690 E7A00080 */ swc1 $f0, 0x80($sp)
/* 412DC4 E0124694 E7A0006C */ swc1 $f0, 0x6c($sp)
/* 412DC8 E0124698 0C080114 */ jal shim_guMtxCatF
/* 412DCC E012469C E7A00058 */ swc1 $f0, 0x58($sp)
/* 412DD0 E01246A0 27A40018 */ addiu $a0, $sp, 0x18
/* 412DD4 E01246A4 96E50000 */ lhu $a1, ($s7)
/* 412DD8 E01246A8 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 412DDC E01246AC 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 412DE0 E01246B0 00052980 */ sll $a1, $a1, 6
/* 412DE4 E01246B4 00B52821 */ addu $a1, $a1, $s5
/* 412DE8 E01246B8 0C080118 */ jal shim_guMtxF2L
/* 412DEC E01246BC 00452821 */ addu $a1, $v0, $a1
/* 412DF0 E01246C0 27C20024 */ addiu $v0, $fp, 0x24
/* 412DF4 E01246C4 0202102A */ slt $v0, $s0, $v0
/* 412DF8 E01246C8 50400001 */ beql $v0, $zero, .LE01246D0
/* 412DFC E01246CC 03C0802D */ daddu $s0, $fp, $zero
.LE01246D0:
/* 412E00 E01246D0 92020000 */ lbu $v0, ($s0)
/* 412E04 E01246D4 44822000 */ mtc1 $v0, $f4
/* 412E08 E01246D8 00000000 */ nop
/* 412E0C E01246DC 46802120 */ cvt.s.w $f4, $f4
/* 412E10 E01246E0 46162102 */ mul.s $f4, $f4, $f22
/* 412E14 E01246E4 00000000 */ nop
/* 412E18 E01246E8 26100001 */ addiu $s0, $s0, 1
/* 412E1C E01246EC 92020000 */ lbu $v0, ($s0)
/* 412E20 E01246F0 44821000 */ mtc1 $v0, $f2
/* 412E24 E01246F4 00000000 */ nop
/* 412E28 E01246F8 468010A0 */ cvt.s.w $f2, $f2
/* 412E2C E01246FC 46181082 */ mul.s $f2, $f2, $f24
/* 412E30 E0124700 00000000 */ nop
/* 412E34 E0124704 26100001 */ addiu $s0, $s0, 1
/* 412E38 E0124708 92020000 */ lbu $v0, ($s0)
/* 412E3C E012470C 44820000 */ mtc1 $v0, $f0
/* 412E40 E0124710 00000000 */ nop
/* 412E44 E0124714 46800020 */ cvt.s.w $f0, $f0
/* 412E48 E0124718 46140002 */ mul.s $f0, $f0, $f20
/* 412E4C E012471C 00000000 */ nop
/* 412E50 E0124720 4600218D */ trunc.w.s $f6, $f4
/* 412E54 E0124724 44033000 */ mfc1 $v1, $f6
/* 412E58 E0124728 00000000 */ nop
/* 412E5C E012472C 28620100 */ slti $v0, $v1, 0x100
/* 412E60 E0124730 4600118D */ trunc.w.s $f6, $f2
/* 412E64 E0124734 44073000 */ mfc1 $a3, $f6
/* 412E68 E0124738 4600018D */ trunc.w.s $f6, $f0
/* 412E6C E012473C 44083000 */ mfc1 $t0, $f6
/* 412E70 E0124740 14400002 */ bnez $v0, .LE012474C
/* 412E74 E0124744 26100001 */ addiu $s0, $s0, 1
/* 412E78 E0124748 240300FF */ addiu $v1, $zero, 0xff
.LE012474C:
/* 412E7C E012474C 28E20100 */ slti $v0, $a3, 0x100
/* 412E80 E0124750 50400001 */ beql $v0, $zero, .LE0124758
/* 412E84 E0124754 240700FF */ addiu $a3, $zero, 0xff
.LE0124758:
/* 412E88 E0124758 29020100 */ slti $v0, $t0, 0x100
/* 412E8C E012475C 50400001 */ beql $v0, $zero, .LE0124764
/* 412E90 E0124760 240800FF */ addiu $t0, $zero, 0xff
.LE0124764:
/* 412E94 E0124764 3C06D838 */ lui $a2, 0xd838
/* 412E98 E0124768 34C60002 */ ori $a2, $a2, 2
/* 412E9C E012476C 3C02FA00 */ lui $v0, 0xfa00
/* 412EA0 E0124770 00031E00 */ sll $v1, $v1, 0x18
/* 412EA4 E0124774 8E440000 */ lw $a0, ($s2)
/* 412EA8 E0124778 3C09E012 */ lui $t1, %hi(D_E01248A0)
/* 412EAC E012477C 252948A0 */ addiu $t1, $t1, %lo(D_E01248A0)
/* 412EB0 E0124780 0080282D */ daddu $a1, $a0, $zero
/* 412EB4 E0124784 24840008 */ addiu $a0, $a0, 8
/* 412EB8 E0124788 AE440000 */ sw $a0, ($s2)
/* 412EBC E012478C ACA20000 */ sw $v0, ($a1)
/* 412EC0 E0124790 30E200FF */ andi $v0, $a3, 0xff
/* 412EC4 E0124794 00021400 */ sll $v0, $v0, 0x10
/* 412EC8 E0124798 00621825 */ or $v1, $v1, $v0
/* 412ECC E012479C 310200FF */ andi $v0, $t0, 0xff
/* 412ED0 E01247A0 00021200 */ sll $v0, $v0, 8
/* 412ED4 E01247A4 00621825 */ or $v1, $v1, $v0
/* 412ED8 E01247A8 346300FF */ ori $v1, $v1, 0xff
/* 412EDC E01247AC 24820008 */ addiu $v0, $a0, 8
/* 412EE0 E01247B0 ACA30004 */ sw $v1, 4($a1)
/* 412EE4 E01247B4 AE420000 */ sw $v0, ($s2)
/* 412EE8 E01247B8 96E20000 */ lhu $v0, ($s7)
/* 412EEC E01247BC 3C03DA38 */ lui $v1, 0xda38
/* 412EF0 E01247C0 AC830000 */ sw $v1, ($a0)
/* 412EF4 E01247C4 24430001 */ addiu $v1, $v0, 1
/* 412EF8 E01247C8 3042FFFF */ andi $v0, $v0, 0xffff
/* 412EFC E01247CC 00021180 */ sll $v0, $v0, 6
/* 412F00 E01247D0 A6E30000 */ sh $v1, ($s7)
/* 412F04 E01247D4 3C03800A */ lui $v1, %hi(gDisplayContext)
/* 412F08 E01247D8 8C63A674 */ lw $v1, %lo(gDisplayContext)($v1)
/* 412F0C E01247DC 00551021 */ addu $v0, $v0, $s5
/* 412F10 E01247E0 00621821 */ addu $v1, $v1, $v0
/* 412F14 E01247E4 24820010 */ addiu $v0, $a0, 0x10
/* 412F18 E01247E8 AC830004 */ sw $v1, 4($a0)
/* 412F1C E01247EC AE420000 */ sw $v0, ($s2)
/* 412F20 E01247F0 3C02DE00 */ lui $v0, 0xde00
/* 412F24 E01247F4 AC820008 */ sw $v0, 8($a0)
/* 412F28 E01247F8 32820007 */ andi $v0, $s4, 7
/* 412F2C E01247FC 00021080 */ sll $v0, $v0, 2
/* 412F30 E0124800 00491021 */ addu $v0, $v0, $t1
/* 412F34 E0124804 8C430000 */ lw $v1, ($v0)
/* 412F38 E0124808 24820018 */ addiu $v0, $a0, 0x18
/* 412F3C E012480C AE420000 */ sw $v0, ($s2)
/* 412F40 E0124810 24020040 */ addiu $v0, $zero, 0x40
/* 412F44 E0124814 AC860010 */ sw $a2, 0x10($a0)
/* 412F48 E0124818 AC820014 */ sw $v0, 0x14($a0)
/* 412F4C E012481C AC83000C */ sw $v1, 0xc($a0)
.LE0124820:
/* 412F50 E0124820 8FA90120 */ lw $t1, 0x120($sp)
/* 412F54 E0124824 26730001 */ addiu $s3, $s3, 1
/* 412F58 E0124828 8D220008 */ lw $v0, 8($t1)
/* 412F5C E012482C 2442FFFF */ addiu $v0, $v0, -1
/* 412F60 E0124830 0262102A */ slt $v0, $s3, $v0
/* 412F64 E0124834 1440FF8A */ bnez $v0, .LE0124660
/* 412F68 E0124838 2631002C */ addiu $s1, $s1, 0x2c
.LE012483C:
/* 412F6C E012483C 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 412F70 E0124840 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 412F74 E0124844 8C620000 */ lw $v0, ($v1)
/* 412F78 E0124848 0040202D */ daddu $a0, $v0, $zero
/* 412F7C E012484C 24420008 */ addiu $v0, $v0, 8
/* 412F80 E0124850 AC620000 */ sw $v0, ($v1)
/* 412F84 E0124854 3C02E700 */ lui $v0, 0xe700
/* 412F88 E0124858 AC820000 */ sw $v0, ($a0)
/* 412F8C E012485C AC800004 */ sw $zero, 4($a0)
/* 412F90 E0124860 8FBF0104 */ lw $ra, 0x104($sp)
/* 412F94 E0124864 8FBE0100 */ lw $fp, 0x100($sp)
/* 412F98 E0124868 8FB700FC */ lw $s7, 0xfc($sp)
/* 412F9C E012486C 8FB600F8 */ lw $s6, 0xf8($sp)
/* 412FA0 E0124870 8FB500F4 */ lw $s5, 0xf4($sp)
/* 412FA4 E0124874 8FB400F0 */ lw $s4, 0xf0($sp)
/* 412FA8 E0124878 8FB300EC */ lw $s3, 0xec($sp)
/* 412FAC E012487C 8FB200E8 */ lw $s2, 0xe8($sp)
/* 412FB0 E0124880 8FB100E4 */ lw $s1, 0xe4($sp)
/* 412FB4 E0124884 8FB000E0 */ lw $s0, 0xe0($sp)
/* 412FB8 E0124888 D7B80118 */ ldc1 $f24, 0x118($sp)
/* 412FBC E012488C D7B60110 */ ldc1 $f22, 0x110($sp)
/* 412FC0 E0124890 D7B40108 */ ldc1 $f20, 0x108($sp)
/* 412FC4 E0124894 03E00008 */ jr $ra
/* 412FC8 E0124898 27BD0120 */ addiu $sp, $sp, 0x120
/* 412FCC E012489C 00000000 */ nop

View File

@ -1,215 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0124C00
.double 0.1
dlabel D_E0124C08
.double 0.04
dlabel D_E0124C10
.double 0.001
.section .text
glabel pink_sparkles_main
/* 412730 E0124000 27BDFF90 */ addiu $sp, $sp, -0x70
/* 412734 E0124004 F7B40050 */ sdc1 $f20, 0x50($sp)
/* 412738 E0124008 4485A000 */ mtc1 $a1, $f20
/* 41273C E012400C F7B60058 */ sdc1 $f22, 0x58($sp)
/* 412740 E0124010 4486B000 */ mtc1 $a2, $f22
/* 412744 E0124014 AFA40070 */ sw $a0, 0x70($sp)
/* 412748 E0124018 27A40010 */ addiu $a0, $sp, 0x10
/* 41274C E012401C F7B80060 */ sdc1 $f24, 0x60($sp)
/* 412750 E0124020 4487C000 */ mtc1 $a3, $f24
/* 412754 E0124024 3C02E012 */ lui $v0, %hi(pink_sparkles_init)
/* 412758 E0124028 244242FC */ addiu $v0, $v0, %lo(pink_sparkles_init)
/* 41275C E012402C AFA20018 */ sw $v0, 0x18($sp)
/* 412760 E0124030 3C02E012 */ lui $v0, %hi(pink_sparkles_update)
/* 412764 E0124034 24424304 */ addiu $v0, $v0, %lo(pink_sparkles_update)
/* 412768 E0124038 AFA2001C */ sw $v0, 0x1c($sp)
/* 41276C E012403C 3C02E012 */ lui $v0, %hi(pink_sparkles_render)
/* 412770 E0124040 2442448C */ addiu $v0, $v0, %lo(pink_sparkles_render)
/* 412774 E0124044 AFA20020 */ sw $v0, 0x20($sp)
/* 412778 E0124048 24020084 */ addiu $v0, $zero, 0x84
/* 41277C E012404C AFBF004C */ sw $ra, 0x4c($sp)
/* 412780 E0124050 AFBE0048 */ sw $fp, 0x48($sp)
/* 412784 E0124054 AFB70044 */ sw $s7, 0x44($sp)
/* 412788 E0124058 AFB60040 */ sw $s6, 0x40($sp)
/* 41278C E012405C AFB5003C */ sw $s5, 0x3c($sp)
/* 412790 E0124060 AFB40038 */ sw $s4, 0x38($sp)
/* 412794 E0124064 AFB30034 */ sw $s3, 0x34($sp)
/* 412798 E0124068 AFB20030 */ sw $s2, 0x30($sp)
/* 41279C E012406C AFB1002C */ sw $s1, 0x2c($sp)
/* 4127A0 E0124070 AFB00028 */ sw $s0, 0x28($sp)
/* 4127A4 E0124074 F7BA0068 */ sdc1 $f26, 0x68($sp)
/* 4127A8 E0124078 AFA00010 */ sw $zero, 0x10($sp)
/* 4127AC E012407C AFA00024 */ sw $zero, 0x24($sp)
/* 4127B0 E0124080 0C080124 */ jal shim_create_effect_instance
/* 4127B4 E0124084 AFA20014 */ sw $v0, 0x14($sp)
/* 4127B8 E0124088 2404115C */ addiu $a0, $zero, 0x115c
/* 4127BC E012408C 24170065 */ addiu $s7, $zero, 0x65
/* 4127C0 E0124090 0040F02D */ daddu $fp, $v0, $zero
/* 4127C4 E0124094 0C08012C */ jal shim_general_heap_malloc
/* 4127C8 E0124098 AFD70008 */ sw $s7, 8($fp)
/* 4127CC E012409C 0040882D */ daddu $s1, $v0, $zero
/* 4127D0 E01240A0 16200003 */ bnez $s1, .LE01240B0
/* 4127D4 E01240A4 AFD1000C */ sw $s1, 0xc($fp)
.LE01240A8:
/* 4127D8 E01240A8 0804902A */ j .LE01240A8
/* 4127DC E01240AC 00000000 */ nop
.LE01240B0:
/* 4127E0 E01240B0 24020050 */ addiu $v0, $zero, 0x50
/* 4127E4 E01240B4 24120001 */ addiu $s2, $zero, 1
/* 4127E8 E01240B8 E6340004 */ swc1 $f20, 4($s1)
/* 4127EC E01240BC E6360008 */ swc1 $f22, 8($s1)
/* 4127F0 E01240C0 E638000C */ swc1 $f24, 0xc($s1)
/* 4127F4 E01240C4 AE200020 */ sw $zero, 0x20($s1)
/* 4127F8 E01240C8 8FA80070 */ lw $t0, 0x70($sp)
/* 4127FC E01240CC 3C01E012 */ lui $at, %hi(D_E0124C00)
/* 412800 E01240D0 D4384C00 */ ldc1 $f24, %lo(D_E0124C00)($at)
/* 412804 E01240D4 3C01E012 */ lui $at, %hi(D_E0124C08)
/* 412808 E01240D8 D4364C08 */ ldc1 $f22, %lo(D_E0124C08)($at)
/* 41280C E01240DC 0000A82D */ daddu $s5, $zero, $zero
/* 412810 E01240E0 AE22001C */ sw $v0, 0x1c($s1)
/* 412814 E01240E4 AE280000 */ sw $t0, ($s1)
/* 412818 E01240E8 2631002C */ addiu $s1, $s1, 0x2c
/* 41281C E01240EC C7BA0084 */ lwc1 $f26, 0x84($sp)
/* 412820 E01240F0 0000982D */ daddu $s3, $zero, $zero
.LE01240F4:
/* 412824 E01240F4 2408000F */ addiu $t0, $zero, 0xf
/* 412828 E01240F8 01151023 */ subu $v0, $t0, $s5
/* 41282C E01240FC 0002B100 */ sll $s6, $v0, 4
/* 412830 E0124100 2414FFF0 */ addiu $s4, $zero, -0x10
/* 412834 E0124104 26300020 */ addiu $s0, $s1, 0x20
.LE0124108:
/* 412838 E0124108 8FA80070 */ lw $t0, 0x70($sp)
/* 41283C E012410C 02761021 */ addu $v0, $s3, $s6
/* 412840 E0124110 00081A00 */ sll $v1, $t0, 8
/* 412844 E0124114 00431021 */ addu $v0, $v0, $v1
/* 412848 E0124118 3C08E012 */ lui $t0, %hi(D_E01248C0)
/* 41284C E012411C 250848C0 */ addiu $t0, $t0, %lo(D_E01248C0)
/* 412850 E0124120 00481021 */ addu $v0, $v0, $t0
/* 412854 E0124124 80430000 */ lb $v1, ($v0)
/* 412858 E0124128 2402002E */ addiu $v0, $zero, 0x2e
/* 41285C E012412C 50620049 */ beql $v1, $v0, .LE0124254
/* 412860 E0124130 26730001 */ addiu $s3, $s3, 1
/* 412864 E0124134 0C080138 */ jal shim_rand_int
/* 412868 E0124138 24040014 */ addiu $a0, $zero, 0x14
/* 41286C E012413C 2442FFF6 */ addiu $v0, $v0, -0xa
/* 412870 E0124140 44820000 */ mtc1 $v0, $f0
/* 412874 E0124144 00000000 */ nop
/* 412878 E0124148 46800021 */ cvt.d.w $f0, $f0
/* 41287C E012414C 46380002 */ mul.d $f0, $f0, $f24
/* 412880 E0124150 00000000 */ nop
/* 412884 E0124154 4494A000 */ mtc1 $s4, $f20
/* 412888 E0124158 00000000 */ nop
/* 41288C E012415C 4680A521 */ cvt.d.w $f20, $f20
/* 412890 E0124160 4620A500 */ add.d $f20, $f20, $f0
/* 412894 E0124164 4600D306 */ mov.s $f12, $f26
/* 412898 E0124168 0C080144 */ jal shim_cos_deg
/* 41289C E012416C 4620A520 */ cvt.s.d $f20, $f20
/* 4128A0 E0124170 4600A002 */ mul.s $f0, $f20, $f0
/* 4128A4 E0124174 00000000 */ nop
/* 4128A8 E0124178 24040014 */ addiu $a0, $zero, 0x14
/* 4128AC E012417C 0C080138 */ jal shim_rand_int
/* 4128B0 E0124180 E600FFE4 */ swc1 $f0, -0x1c($s0)
/* 4128B4 E0124184 2442FFF6 */ addiu $v0, $v0, -0xa
/* 4128B8 E0124188 44821000 */ mtc1 $v0, $f2
/* 4128BC E012418C 00000000 */ nop
/* 4128C0 E0124190 468010A1 */ cvt.d.w $f2, $f2
/* 4128C4 E0124194 46381082 */ mul.d $f2, $f2, $f24
/* 4128C8 E0124198 00000000 */ nop
/* 4128CC E012419C 00151040 */ sll $v0, $s5, 1
/* 4128D0 E01241A0 44820000 */ mtc1 $v0, $f0
/* 4128D4 E01241A4 00000000 */ nop
/* 4128D8 E01241A8 46800021 */ cvt.d.w $f0, $f0
/* 4128DC E01241AC 46220000 */ add.d $f0, $f0, $f2
/* 4128E0 E01241B0 4600D306 */ mov.s $f12, $f26
/* 4128E4 E01241B4 46200020 */ cvt.s.d $f0, $f0
/* 4128E8 E01241B8 0C080140 */ jal shim_sin_deg
/* 4128EC E01241BC E600FFE8 */ swc1 $f0, -0x18($s0)
/* 4128F0 E01241C0 C602FFE4 */ lwc1 $f2, -0x1c($s0)
/* 4128F4 E01241C4 460010A1 */ cvt.d.s $f2, $f2
/* 4128F8 E01241C8 46361082 */ mul.d $f2, $f2, $f22
/* 4128FC E01241CC 00000000 */ nop
/* 412900 E01241D0 4600A502 */ mul.s $f20, $f20, $f0
/* 412904 E01241D4 00000000 */ nop
/* 412908 E01241D8 C600FFE8 */ lwc1 $f0, -0x18($s0)
/* 41290C E01241DC 46000021 */ cvt.d.s $f0, $f0
/* 412910 E01241E0 46360002 */ mul.d $f0, $f0, $f22
/* 412914 E01241E4 00000000 */ nop
/* 412918 E01241E8 2404000A */ addiu $a0, $zero, 0xa
/* 41291C E01241EC E614FFEC */ swc1 $f20, -0x14($s0)
/* 412920 E01241F0 462010A0 */ cvt.s.d $f2, $f2
/* 412924 E01241F4 46200020 */ cvt.s.d $f0, $f0
/* 412928 E01241F8 E602FFF0 */ swc1 $f2, -0x10($s0)
/* 41292C E01241FC 0C080138 */ jal shim_rand_int
/* 412930 E0124200 E600FFF4 */ swc1 $f0, -0xc($s0)
/* 412934 E0124204 3C01E012 */ lui $at, %hi(D_E0124C10)
/* 412938 E0124208 D4224C10 */ ldc1 $f2, %lo(D_E0124C10)($at)
/* 41293C E012420C 44820000 */ mtc1 $v0, $f0
/* 412940 E0124210 00000000 */ nop
/* 412944 E0124214 46800021 */ cvt.d.w $f0, $f0
/* 412948 E0124218 46220002 */ mul.d $f0, $f0, $f2
/* 41294C E012421C 00000000 */ nop
/* 412950 E0124220 26520001 */ addiu $s2, $s2, 1
/* 412954 E0124224 2631002C */ addiu $s1, $s1, 0x2c
/* 412958 E0124228 24040007 */ addiu $a0, $zero, 7
/* 41295C E012422C 46200020 */ cvt.s.d $f0, $f0
/* 412960 E0124230 0C080138 */ jal shim_rand_int
/* 412964 E0124234 E600FFF8 */ swc1 $f0, -8($s0)
/* 412968 E0124238 2442001E */ addiu $v0, $v0, 0x1e
/* 41296C E012423C AE02FFFC */ sw $v0, -4($s0)
/* 412970 E0124240 AE000000 */ sw $zero, ($s0)
/* 412974 E0124244 0257102A */ slt $v0, $s2, $s7
/* 412978 E0124248 1040001B */ beqz $v0, .LE01242B8
/* 41297C E012424C 2610002C */ addiu $s0, $s0, 0x2c
/* 412980 E0124250 26730001 */ addiu $s3, $s3, 1
.LE0124254:
/* 412984 E0124254 2A620010 */ slti $v0, $s3, 0x10
/* 412988 E0124258 1440FFAB */ bnez $v0, .LE0124108
/* 41298C E012425C 26940002 */ addiu $s4, $s4, 2
/* 412990 E0124260 0257102A */ slt $v0, $s2, $s7
/* 412994 E0124264 10400014 */ beqz $v0, .LE01242B8
/* 412998 E0124268 26B50001 */ addiu $s5, $s5, 1
/* 41299C E012426C 2AA20010 */ slti $v0, $s5, 0x10
/* 4129A0 E0124270 5440FFA0 */ bnel $v0, $zero, .LE01240F4
/* 4129A4 E0124274 0000982D */ daddu $s3, $zero, $zero
/* 4129A8 E0124278 44800000 */ mtc1 $zero, $f0
/* 4129AC E012427C 2404FFFF */ addiu $a0, $zero, -1
/* 4129B0 E0124280 26230020 */ addiu $v1, $s1, 0x20
.LE0124284:
/* 4129B4 E0124284 26520001 */ addiu $s2, $s2, 1
/* 4129B8 E0124288 E4600004 */ swc1 $f0, 4($v1)
/* 4129BC E012428C E460FFF8 */ swc1 $f0, -8($v1)
/* 4129C0 E0124290 E460FFF4 */ swc1 $f0, -0xc($v1)
/* 4129C4 E0124294 E460FFF0 */ swc1 $f0, -0x10($v1)
/* 4129C8 E0124298 E460FFEC */ swc1 $f0, -0x14($v1)
/* 4129CC E012429C E460FFE8 */ swc1 $f0, -0x18($v1)
/* 4129D0 E01242A0 E460FFE4 */ swc1 $f0, -0x1c($v1)
/* 4129D4 E01242A4 AC64FFFC */ sw $a0, -4($v1)
/* 4129D8 E01242A8 AC600000 */ sw $zero, ($v1)
/* 4129DC E01242AC 0257102A */ slt $v0, $s2, $s7
/* 4129E0 E01242B0 1440FFF4 */ bnez $v0, .LE0124284
/* 4129E4 E01242B4 2463002C */ addiu $v1, $v1, 0x2c
.LE01242B8:
/* 4129E8 E01242B8 03C0102D */ daddu $v0, $fp, $zero
/* 4129EC E01242BC 8FBF004C */ lw $ra, 0x4c($sp)
/* 4129F0 E01242C0 8FBE0048 */ lw $fp, 0x48($sp)
/* 4129F4 E01242C4 8FB70044 */ lw $s7, 0x44($sp)
/* 4129F8 E01242C8 8FB60040 */ lw $s6, 0x40($sp)
/* 4129FC E01242CC 8FB5003C */ lw $s5, 0x3c($sp)
/* 412A00 E01242D0 8FB40038 */ lw $s4, 0x38($sp)
/* 412A04 E01242D4 8FB30034 */ lw $s3, 0x34($sp)
/* 412A08 E01242D8 8FB20030 */ lw $s2, 0x30($sp)
/* 412A0C E01242DC 8FB1002C */ lw $s1, 0x2c($sp)
/* 412A10 E01242E0 8FB00028 */ lw $s0, 0x28($sp)
/* 412A14 E01242E4 D7BA0068 */ ldc1 $f26, 0x68($sp)
/* 412A18 E01242E8 D7B80060 */ ldc1 $f24, 0x60($sp)
/* 412A1C E01242EC D7B60058 */ ldc1 $f22, 0x58($sp)
/* 412A20 E01242F0 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 412A24 E01242F4 03E00008 */ jr $ra
/* 412A28 E01242F8 27BD0070 */ addiu $sp, $sp, 0x70

View File

@ -1,123 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0124C18
.double 0.01
dlabel D_E0124C20
.double 0.4
dlabel D_E0124C28
.double 0.1
.section .text
glabel pink_sparkles_update
/* 412A34 E0124304 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 412A38 E0124308 0000302D */ daddu $a2, $zero, $zero
/* 412A3C E012430C AFBF0010 */ sw $ra, 0x10($sp)
/* 412A40 E0124310 8C85000C */ lw $a1, 0xc($a0)
/* 412A44 E0124314 00C0402D */ daddu $t0, $a2, $zero
/* 412A48 E0124318 8CA20020 */ lw $v0, 0x20($a1)
/* 412A4C E012431C 8CA3001C */ lw $v1, 0x1c($a1)
/* 412A50 E0124320 24420001 */ addiu $v0, $v0, 1
/* 412A54 E0124324 0040382D */ daddu $a3, $v0, $zero
/* 412A58 E0124328 2463FFFF */ addiu $v1, $v1, -1
/* 412A5C E012432C ACA3001C */ sw $v1, 0x1c($a1)
/* 412A60 E0124330 ACA70020 */ sw $a3, 0x20($a1)
/* 412A64 E0124334 8C820008 */ lw $v0, 8($a0)
/* 412A68 E0124338 2442FFFF */ addiu $v0, $v0, -1
/* 412A6C E012433C 1840004E */ blez $v0, .LE0124478
/* 412A70 E0124340 24A5002C */ addiu $a1, $a1, 0x2c
/* 412A74 E0124344 240AFFFF */ addiu $t2, $zero, -1
/* 412A78 E0124348 3C09E012 */ lui $t1, %hi(D_E0124BE4)
/* 412A7C E012434C 25294BE4 */ addiu $t1, $t1, %lo(D_E0124BE4)
/* 412A80 E0124350 24A3000C */ addiu $v1, $a1, 0xc
/* 412A84 E0124354 3C01E012 */ lui $at, %hi(D_E0124C18)
/* 412A88 E0124358 D42E4C18 */ ldc1 $f14, %lo(D_E0124C18)($at)
/* 412A8C E012435C 3C01E012 */ lui $at, %hi(D_E0124C20)
/* 412A90 E0124360 D42C4C20 */ ldc1 $f12, %lo(D_E0124C20)($at)
/* 412A94 E0124364 3C01E012 */ lui $at, %hi(D_E0124C28)
/* 412A98 E0124368 D42A4C28 */ ldc1 $f10, %lo(D_E0124C28)($at)
.LE012436C:
/* 412A9C E012436C 00E61021 */ addu $v0, $a3, $a2
/* 412AA0 E0124370 00461021 */ addu $v0, $v0, $a2
/* 412AA4 E0124374 8C650010 */ lw $a1, 0x10($v1)
/* 412AA8 E0124378 30420007 */ andi $v0, $v0, 7
/* 412AAC E012437C 04A10002 */ bgez $a1, .LE0124388
/* 412AB0 E0124380 AC62001C */ sw $v0, 0x1c($v1)
/* 412AB4 E0124384 25080001 */ addiu $t0, $t0, 1
.LE0124388:
/* 412AB8 E0124388 24A2FFFF */ addiu $v0, $a1, -1
/* 412ABC E012438C AC620010 */ sw $v0, 0x10($v1)
/* 412AC0 E0124390 2C42001F */ sltiu $v0, $v0, 0x1f
/* 412AC4 E0124394 14400003 */ bnez $v0, .LE01243A4
/* 412AC8 E0124398 00000000 */ nop
/* 412ACC E012439C 08049113 */ j .LE012444C
/* 412AD0 E01243A0 AC6A001C */ sw $t2, 0x1c($v1)
.LE01243A4:
/* 412AD4 E01243A4 8C650014 */ lw $a1, 0x14($v1)
/* 412AD8 E01243A8 24A20001 */ addiu $v0, $a1, 1
/* 412ADC E01243AC 0040382D */ daddu $a3, $v0, $zero
/* 412AE0 E01243B0 28A20019 */ slti $v0, $a1, 0x19
/* 412AE4 E01243B4 1040000D */ beqz $v0, .LE01243EC
/* 412AE8 E01243B8 AC670014 */ sw $a3, 0x14($v1)
/* 412AEC E01243BC 00A91021 */ addu $v0, $a1, $t1
/* 412AF0 E01243C0 90420000 */ lbu $v0, ($v0)
/* 412AF4 E01243C4 44820000 */ mtc1 $v0, $f0
/* 412AF8 E01243C8 00000000 */ nop
/* 412AFC E01243CC 46800020 */ cvt.s.w $f0, $f0
/* 412B00 E01243D0 46000021 */ cvt.d.s $f0, $f0
/* 412B04 E01243D4 462E0002 */ mul.d $f0, $f0, $f14
/* 412B08 E01243D8 00000000 */ nop
/* 412B0C E01243DC 462C0002 */ mul.d $f0, $f0, $f12
/* 412B10 E01243E0 00000000 */ nop
/* 412B14 E01243E4 08049102 */ j .LE0124408
/* 412B18 E01243E8 46200020 */ cvt.s.d $f0, $f0
.LE01243EC:
/* 412B1C E01243EC C4600018 */ lwc1 $f0, 0x18($v1)
/* 412B20 E01243F0 46000021 */ cvt.d.s $f0, $f0
/* 412B24 E01243F4 46205081 */ sub.d $f2, $f10, $f0
/* 412B28 E01243F8 462A1082 */ mul.d $f2, $f2, $f10
/* 412B2C E01243FC 00000000 */ nop
/* 412B30 E0124400 46220000 */ add.d $f0, $f0, $f2
/* 412B34 E0124404 46200020 */ cvt.s.d $f0, $f0
.LE0124408:
/* 412B38 E0124408 E4600018 */ swc1 $f0, 0x18($v1)
/* 412B3C E012440C C468FFF8 */ lwc1 $f8, -8($v1)
/* 412B40 E0124410 C4600004 */ lwc1 $f0, 4($v1)
/* 412B44 E0124414 46004200 */ add.s $f8, $f8, $f0
/* 412B48 E0124418 C4600008 */ lwc1 $f0, 8($v1)
/* 412B4C E012441C C466FFFC */ lwc1 $f6, -4($v1)
/* 412B50 E0124420 46000106 */ mov.s $f4, $f0
/* 412B54 E0124424 46003180 */ add.s $f6, $f6, $f0
/* 412B58 E0124428 C460000C */ lwc1 $f0, 0xc($v1)
/* 412B5C E012442C C4620004 */ lwc1 $f2, 4($v1)
/* 412B60 E0124430 46002100 */ add.s $f4, $f4, $f0
/* 412B64 E0124434 C4600000 */ lwc1 $f0, ($v1)
/* 412B68 E0124438 E468FFF8 */ swc1 $f8, -8($v1)
/* 412B6C E012443C 46020000 */ add.s $f0, $f0, $f2
/* 412B70 E0124440 E466FFFC */ swc1 $f6, -4($v1)
/* 412B74 E0124444 E4640008 */ swc1 $f4, 8($v1)
/* 412B78 E0124448 E4600000 */ swc1 $f0, ($v1)
.LE012444C:
/* 412B7C E012444C 24C60001 */ addiu $a2, $a2, 1
/* 412B80 E0124450 8C820008 */ lw $v0, 8($a0)
/* 412B84 E0124454 2442FFFF */ addiu $v0, $v0, -1
/* 412B88 E0124458 00C2102A */ slt $v0, $a2, $v0
/* 412B8C E012445C 1440FFC3 */ bnez $v0, .LE012436C
/* 412B90 E0124460 2463002C */ addiu $v1, $v1, 0x2c
/* 412B94 E0124464 8C820008 */ lw $v0, 8($a0)
/* 412B98 E0124468 2442FFFF */ addiu $v0, $v0, -1
/* 412B9C E012446C 0102102A */ slt $v0, $t0, $v0
/* 412BA0 E0124470 14400003 */ bnez $v0, .LE0124480
/* 412BA4 E0124474 00000000 */ nop
.LE0124478:
/* 412BA8 E0124478 0C080128 */ jal shim_remove_effect
/* 412BAC E012447C 00000000 */ nop
.LE0124480:
/* 412BB0 E0124480 8FBF0010 */ lw $ra, 0x10($sp)
/* 412BB4 E0124484 03E00008 */ jr $ra
/* 412BB8 E0124488 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,107 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel something_rotating_main
/* 402640 E0116000 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 402644 E0116004 F7B60048 */ sdc1 $f22, 0x48($sp)
/* 402648 E0116008 4485B000 */ mtc1 $a1, $f22
/* 40264C E011600C F7B80050 */ sdc1 $f24, 0x50($sp)
/* 402650 E0116010 4486C000 */ mtc1 $a2, $f24
/* 402654 E0116014 F7BA0058 */ sdc1 $f26, 0x58($sp)
/* 402658 E0116018 4487D000 */ mtc1 $a3, $f26
/* 40265C E011601C AFB30034 */ sw $s3, 0x34($sp)
/* 402660 E0116020 0080982D */ daddu $s3, $a0, $zero
/* 402664 E0116024 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 402668 E0116028 C7B40070 */ lwc1 $f20, 0x70($sp)
/* 40266C E011602C 27A40010 */ addiu $a0, $sp, 0x10
/* 402670 E0116030 AFB20030 */ sw $s2, 0x30($sp)
/* 402674 E0116034 8FB20074 */ lw $s2, 0x74($sp)
/* 402678 E0116038 3C02E011 */ lui $v0, %hi(something_rotating_init)
/* 40267C E011603C 24426184 */ addiu $v0, $v0, %lo(something_rotating_init)
/* 402680 E0116040 AFA20018 */ sw $v0, 0x18($sp)
/* 402684 E0116044 3C02E011 */ lui $v0, %hi(something_rotating_update)
/* 402688 E0116048 2442618C */ addiu $v0, $v0, %lo(something_rotating_update)
/* 40268C E011604C AFA2001C */ sw $v0, 0x1c($sp)
/* 402690 E0116050 3C02E011 */ lui $v0, %hi(something_rotating_render)
/* 402694 E0116054 244266A0 */ addiu $v0, $v0, %lo(something_rotating_render)
/* 402698 E0116058 AFA20020 */ sw $v0, 0x20($sp)
/* 40269C E011605C 2402007D */ addiu $v0, $zero, 0x7d
/* 4026A0 E0116060 AFBF0038 */ sw $ra, 0x38($sp)
/* 4026A4 E0116064 AFB1002C */ sw $s1, 0x2c($sp)
/* 4026A8 E0116068 AFB00028 */ sw $s0, 0x28($sp)
/* 4026AC E011606C AFA00010 */ sw $zero, 0x10($sp)
/* 4026B0 E0116070 AFA00024 */ sw $zero, 0x24($sp)
/* 4026B4 E0116074 0C080124 */ jal shim_create_effect_instance
/* 4026B8 E0116078 AFA20014 */ sw $v0, 0x14($sp)
/* 4026BC E011607C 24040180 */ addiu $a0, $zero, 0x180
/* 4026C0 E0116080 24110008 */ addiu $s1, $zero, 8
/* 4026C4 E0116084 0040802D */ daddu $s0, $v0, $zero
/* 4026C8 E0116088 0C08012C */ jal shim_general_heap_malloc
/* 4026CC E011608C AE110008 */ sw $s1, 8($s0)
/* 4026D0 E0116090 0040182D */ daddu $v1, $v0, $zero
/* 4026D4 E0116094 14600003 */ bnez $v1, .LE01160A4
/* 4026D8 E0116098 AE03000C */ sw $v1, 0xc($s0)
.LE011609C:
/* 4026DC E011609C 08045827 */ j .LE011609C
/* 4026E0 E01160A0 00000000 */ nop
.LE01160A4:
/* 4026E4 E01160A4 AC730000 */ sw $s3, ($v1)
/* 4026E8 E01160A8 1E400004 */ bgtz $s2, .LE01160BC
/* 4026EC E01160AC AC600014 */ sw $zero, 0x14($v1)
/* 4026F0 E01160B0 240203E8 */ addiu $v0, $zero, 0x3e8
/* 4026F4 E01160B4 08045830 */ j .LE01160C0
/* 4026F8 E01160B8 AC620010 */ sw $v0, 0x10($v1)
.LE01160BC:
/* 4026FC E01160BC AC720010 */ sw $s2, 0x10($v1)
.LE01160C0:
/* 402700 E01160C0 24040001 */ addiu $a0, $zero, 1
/* 402704 E01160C4 3C0141F0 */ lui $at, 0x41f0
/* 402708 E01160C8 44812000 */ mtc1 $at, $f4
/* 40270C E01160CC 0091102A */ slt $v0, $a0, $s1
/* 402710 E01160D0 E4760004 */ swc1 $f22, 4($v1)
/* 402714 E01160D4 E4780008 */ swc1 $f24, 8($v1)
/* 402718 E01160D8 E47A000C */ swc1 $f26, 0xc($v1)
/* 40271C E01160DC E4740018 */ swc1 $f20, 0x18($v1)
/* 402720 E01160E0 AC600020 */ sw $zero, 0x20($v1)
/* 402724 E01160E4 E464001C */ swc1 $f4, 0x1c($v1)
/* 402728 E01160E8 1040001A */ beqz $v0, .LE0116154
/* 40272C E01160EC 24630030 */ addiu $v1, $v1, 0x30
/* 402730 E01160F0 3C013FE0 */ lui $at, 0x3fe0
/* 402734 E01160F4 44811800 */ mtc1 $at, $f3
/* 402738 E01160F8 44801000 */ mtc1 $zero, $f2
/* 40273C E01160FC 4600A021 */ cvt.d.s $f0, $f20
/* 402740 E0116100 46220002 */ mul.d $f0, $f0, $f2
/* 402744 E0116104 00000000 */ nop
/* 402748 E0116108 240500FF */ addiu $a1, $zero, 0xff
/* 40274C E011610C 2463002C */ addiu $v1, $v1, 0x2c
/* 402750 E0116110 3C014248 */ lui $at, 0x4248
/* 402754 E0116114 44811000 */ mtc1 $at, $f2
/* 402758 E0116118 46200020 */ cvt.s.d $f0, $f0
.LE011611C:
/* 40275C E011611C 24840001 */ addiu $a0, $a0, 1
/* 402760 E0116120 A060FFF8 */ sb $zero, -8($v1)
/* 402764 E0116124 E460FFEC */ swc1 $f0, -0x14($v1)
/* 402768 E0116128 A065FFFA */ sb $a1, -6($v1)
/* 40276C E011612C A065FFFB */ sb $a1, -5($v1)
/* 402770 E0116130 A060FFFC */ sb $zero, -4($v1)
/* 402774 E0116134 A060FFF9 */ sb $zero, -7($v1)
/* 402778 E0116138 E464FFF0 */ swc1 $f4, -0x10($v1)
/* 40277C E011613C AC60FFF4 */ sw $zero, -0xc($v1)
/* 402780 E0116140 A060FFFD */ sb $zero, -3($v1)
/* 402784 E0116144 E4620000 */ swc1 $f2, ($v1)
/* 402788 E0116148 0091102A */ slt $v0, $a0, $s1
/* 40278C E011614C 1440FFF3 */ bnez $v0, .LE011611C
/* 402790 E0116150 24630030 */ addiu $v1, $v1, 0x30
.LE0116154:
/* 402794 E0116154 0200102D */ daddu $v0, $s0, $zero
/* 402798 E0116158 8FBF0038 */ lw $ra, 0x38($sp)
/* 40279C E011615C 8FB30034 */ lw $s3, 0x34($sp)
/* 4027A0 E0116160 8FB20030 */ lw $s2, 0x30($sp)
/* 4027A4 E0116164 8FB1002C */ lw $s1, 0x2c($sp)
/* 4027A8 E0116168 8FB00028 */ lw $s0, 0x28($sp)
/* 4027AC E011616C D7BA0058 */ ldc1 $f26, 0x58($sp)
/* 4027B0 E0116170 D7B80050 */ ldc1 $f24, 0x50($sp)
/* 4027B4 E0116174 D7B60048 */ ldc1 $f22, 0x48($sp)
/* 4027B8 E0116178 D7B40040 */ ldc1 $f20, 0x40($sp)
/* 4027BC E011617C 03E00008 */ jr $ra
/* 4027C0 E0116180 27BD0060 */ addiu $sp, $sp, 0x60

View File

@ -1,213 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel sparkles_appendGfx
/* 337BD8 E0022998 27BDFF00 */ addiu $sp, $sp, -0x100
/* 337BDC E002299C 3C06DB06 */ lui $a2, 0xdb06
/* 337BE0 E00229A0 34C60024 */ ori $a2, $a2, 0x24
/* 337BE4 E00229A4 AFA40100 */ sw $a0, 0x100($sp)
/* 337BE8 E00229A8 27A40018 */ addiu $a0, $sp, 0x18
/* 337BEC E00229AC AFB300E4 */ sw $s3, 0xe4($sp)
/* 337BF0 E00229B0 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 337BF4 E00229B4 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 337BF8 E00229B8 3C02E700 */ lui $v0, 0xe700
/* 337BFC E00229BC AFBF00FC */ sw $ra, 0xfc($sp)
/* 337C00 E00229C0 AFBE00F8 */ sw $fp, 0xf8($sp)
/* 337C04 E00229C4 AFB700F4 */ sw $s7, 0xf4($sp)
/* 337C08 E00229C8 AFB600F0 */ sw $s6, 0xf0($sp)
/* 337C0C E00229CC AFB500EC */ sw $s5, 0xec($sp)
/* 337C10 E00229D0 AFB400E8 */ sw $s4, 0xe8($sp)
/* 337C14 E00229D4 AFB200E0 */ sw $s2, 0xe0($sp)
/* 337C18 E00229D8 AFB100DC */ sw $s1, 0xdc($sp)
/* 337C1C E00229DC AFB000D8 */ sw $s0, 0xd8($sp)
/* 337C20 E00229E0 8E630000 */ lw $v1, ($s3)
/* 337C24 E00229E4 8FAA0100 */ lw $t2, 0x100($sp)
/* 337C28 E00229E8 0060282D */ daddu $a1, $v1, $zero
/* 337C2C E00229EC 8D50000C */ lw $s0, 0xc($t2)
/* 337C30 E00229F0 24630008 */ addiu $v1, $v1, 8
/* 337C34 E00229F4 AE630000 */ sw $v1, ($s3)
/* 337C38 E00229F8 ACA20000 */ sw $v0, ($a1)
/* 337C3C E00229FC 24620008 */ addiu $v0, $v1, 8
/* 337C40 E0022A00 ACA00004 */ sw $zero, 4($a1)
/* 337C44 E0022A04 AE620000 */ sw $v0, ($s3)
/* 337C48 E0022A08 AC660000 */ sw $a2, ($v1)
/* 337C4C E0022A0C 8D450010 */ lw $a1, 0x10($t2)
/* 337C50 E0022A10 24620010 */ addiu $v0, $v1, 0x10
/* 337C54 E0022A14 AE620000 */ sw $v0, ($s3)
/* 337C58 E0022A18 8CA5001C */ lw $a1, 0x1c($a1)
/* 337C5C E0022A1C 3C02DE00 */ lui $v0, 0xde00
/* 337C60 E0022A20 AC620008 */ sw $v0, 8($v1)
/* 337C64 E0022A24 3C020900 */ lui $v0, 0x900
/* 337C68 E0022A28 24420F20 */ addiu $v0, $v0, 0xf20
/* 337C6C E0022A2C AC62000C */ sw $v0, 0xc($v1)
/* 337C70 E0022A30 3C028000 */ lui $v0, 0x8000
/* 337C74 E0022A34 00A22821 */ addu $a1, $a1, $v0
/* 337C78 E0022A38 AC650004 */ sw $a1, 4($v1)
/* 337C7C E0022A3C 8E050004 */ lw $a1, 4($s0)
/* 337C80 E0022A40 8E060008 */ lw $a2, 8($s0)
/* 337C84 E0022A44 8E020020 */ lw $v0, 0x20($s0)
/* 337C88 E0022A48 8E07000C */ lw $a3, 0xc($s0)
/* 337C8C E0022A4C 2442FFFF */ addiu $v0, $v0, -1
/* 337C90 E0022A50 00021840 */ sll $v1, $v0, 1
/* 337C94 E0022A54 0C080108 */ jal shim_guTranslateF
/* 337C98 E0022A58 00628821 */ addu $s1, $v1, $v0
/* 337C9C E0022A5C 27B20058 */ addiu $s2, $sp, 0x58
/* 337CA0 E0022A60 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 337CA4 E0022A64 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 337CA8 E0022A68 44800000 */ mtc1 $zero, $f0
/* 337CAC E0022A6C 00031080 */ sll $v0, $v1, 2
/* 337CB0 E0022A70 00431021 */ addu $v0, $v0, $v1
/* 337CB4 E0022A74 00021080 */ sll $v0, $v0, 2
/* 337CB8 E0022A78 00431023 */ subu $v0, $v0, $v1
/* 337CBC E0022A7C 000218C0 */ sll $v1, $v0, 3
/* 337CC0 E0022A80 00431021 */ addu $v0, $v0, $v1
/* 337CC4 E0022A84 000210C0 */ sll $v0, $v0, 3
/* 337CC8 E0022A88 44060000 */ mfc1 $a2, $f0
/* 337CCC E0022A8C 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 337CD0 E0022A90 00220821 */ addu $at, $at, $v0
/* 337CD4 E0022A94 C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 337CD8 E0022A98 3C073F80 */ lui $a3, 0x3f80
/* 337CDC E0022A9C 46000007 */ neg.s $f0, $f0
/* 337CE0 E0022AA0 44050000 */ mfc1 $a1, $f0
/* 337CE4 E0022AA4 0240202D */ daddu $a0, $s2, $zero
/* 337CE8 E0022AA8 0C080104 */ jal shim_guRotateF
/* 337CEC E0022AAC AFA60010 */ sw $a2, 0x10($sp)
/* 337CF0 E0022AB0 0240202D */ daddu $a0, $s2, $zero
/* 337CF4 E0022AB4 27A50018 */ addiu $a1, $sp, 0x18
/* 337CF8 E0022AB8 0C080114 */ jal shim_guMtxCatF
/* 337CFC E0022ABC 27A60098 */ addiu $a2, $sp, 0x98
/* 337D00 E0022AC0 8FAA0100 */ lw $t2, 0x100($sp)
/* 337D04 E0022AC4 0000A02D */ daddu $s4, $zero, $zero
/* 337D08 E0022AC8 8D420008 */ lw $v0, 8($t2)
/* 337D0C E0022ACC 2442FFFF */ addiu $v0, $v0, -1
/* 337D10 E0022AD0 18400069 */ blez $v0, .LE0022C78
/* 337D14 E0022AD4 26100030 */ addiu $s0, $s0, 0x30
/* 337D18 E0022AD8 0240B02D */ daddu $s6, $s2, $zero
/* 337D1C E0022ADC 3C1E8007 */ lui $fp, %hi(gMatrixListPos)
/* 337D20 E0022AE0 27DE41F0 */ addiu $fp, $fp, %lo(gMatrixListPos)
/* 337D24 E0022AE4 3C150001 */ lui $s5, 1
/* 337D28 E0022AE8 36B51630 */ ori $s5, $s5, 0x1630
/* 337D2C E0022AEC 0260902D */ daddu $s2, $s3, $zero
/* 337D30 E0022AF0 3C17E002 */ lui $s7, %hi(D_E0022CF0)
/* 337D34 E0022AF4 26F72CF0 */ addiu $s7, $s7, %lo(D_E0022CF0)
/* 337D38 E0022AF8 2610001C */ addiu $s0, $s0, 0x1c
.LE0022AFC:
/* 337D3C E0022AFC 8E130010 */ lw $s3, 0x10($s0)
/* 337D40 E0022B00 06600056 */ bltz $s3, .LE0022C5C
/* 337D44 E0022B04 02C0202D */ daddu $a0, $s6, $zero
/* 337D48 E0022B08 8E05FFE8 */ lw $a1, -0x18($s0)
/* 337D4C E0022B0C 8E06FFEC */ lw $a2, -0x14($s0)
/* 337D50 E0022B10 8E07FFF0 */ lw $a3, -0x10($s0)
/* 337D54 E0022B14 0C080108 */ jal shim_guTranslateF
/* 337D58 E0022B18 26310003 */ addiu $s1, $s1, 3
/* 337D5C E0022B1C C6000000 */ lwc1 $f0, ($s0)
/* 337D60 E0022B20 02C0202D */ daddu $a0, $s6, $zero
/* 337D64 E0022B24 E7A00058 */ swc1 $f0, 0x58($sp)
/* 337D68 E0022B28 C6000000 */ lwc1 $f0, ($s0)
/* 337D6C E0022B2C 27A50098 */ addiu $a1, $sp, 0x98
/* 337D70 E0022B30 E7A0006C */ swc1 $f0, 0x6c($sp)
/* 337D74 E0022B34 C6000000 */ lwc1 $f0, ($s0)
/* 337D78 E0022B38 27A60018 */ addiu $a2, $sp, 0x18
/* 337D7C E0022B3C 0C080114 */ jal shim_guMtxCatF
/* 337D80 E0022B40 E7A00080 */ swc1 $f0, 0x80($sp)
/* 337D84 E0022B44 27A40018 */ addiu $a0, $sp, 0x18
/* 337D88 E0022B48 97C50000 */ lhu $a1, ($fp)
/* 337D8C E0022B4C 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 337D90 E0022B50 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 337D94 E0022B54 00052980 */ sll $a1, $a1, 6
/* 337D98 E0022B58 00B52821 */ addu $a1, $a1, $s5
/* 337D9C E0022B5C 0C080118 */ jal shim_guMtxF2L
/* 337DA0 E0022B60 00452821 */ addu $a1, $v0, $a1
/* 337DA4 E0022B64 3C0238E3 */ lui $v0, 0x38e3
/* 337DA8 E0022B68 34428E39 */ ori $v0, $v0, 0x8e39
/* 337DAC E0022B6C 3C09D838 */ lui $t1, 0xd838
/* 337DB0 E0022B70 35290002 */ ori $t1, $t1, 2
/* 337DB4 E0022B74 02220018 */ mult $s1, $v0
/* 337DB8 E0022B78 8E470000 */ lw $a3, ($s2)
/* 337DBC E0022B7C 3C02FA00 */ lui $v0, 0xfa00
/* 337DC0 E0022B80 00E0402D */ daddu $t0, $a3, $zero
/* 337DC4 E0022B84 24E70008 */ addiu $a3, $a3, 8
/* 337DC8 E0022B88 AE470000 */ sw $a3, ($s2)
/* 337DCC E0022B8C AD020000 */ sw $v0, ($t0)
/* 337DD0 E0022B90 001117C3 */ sra $v0, $s1, 0x1f
/* 337DD4 E0022B94 00005010 */ mfhi $t2
/* 337DD8 E0022B98 000A18C3 */ sra $v1, $t2, 3
/* 337DDC E0022B9C 00621823 */ subu $v1, $v1, $v0
/* 337DE0 E0022BA0 000310C0 */ sll $v0, $v1, 3
/* 337DE4 E0022BA4 00431021 */ addu $v0, $v0, $v1
/* 337DE8 E0022BA8 00021080 */ sll $v0, $v0, 2
/* 337DEC E0022BAC 02228823 */ subu $s1, $s1, $v0
/* 337DF0 E0022BB0 02371021 */ addu $v0, $s1, $s7
/* 337DF4 E0022BB4 0040202D */ daddu $a0, $v0, $zero
/* 337DF8 E0022BB8 0040282D */ daddu $a1, $v0, $zero
/* 337DFC E0022BBC 90430000 */ lbu $v1, ($v0)
/* 337E00 E0022BC0 24E20008 */ addiu $v0, $a3, 8
/* 337E04 E0022BC4 90860001 */ lbu $a2, 1($a0)
/* 337E08 E0022BC8 90A50002 */ lbu $a1, 2($a1)
/* 337E0C E0022BCC 97C40000 */ lhu $a0, ($fp)
/* 337E10 E0022BD0 3C0AE002 */ lui $t2, %hi(D_E0022CD0)
/* 337E14 E0022BD4 254A2CD0 */ addiu $t2, $t2, %lo(D_E0022CD0)
/* 337E18 E0022BD8 AE420000 */ sw $v0, ($s2)
/* 337E1C E0022BDC 24820001 */ addiu $v0, $a0, 1
/* 337E20 E0022BE0 A7C20000 */ sh $v0, ($fp)
/* 337E24 E0022BE4 24E20010 */ addiu $v0, $a3, 0x10
/* 337E28 E0022BE8 00031E00 */ sll $v1, $v1, 0x18
/* 337E2C E0022BEC 00063400 */ sll $a2, $a2, 0x10
/* 337E30 E0022BF0 00661825 */ or $v1, $v1, $a2
/* 337E34 E0022BF4 00052A00 */ sll $a1, $a1, 8
/* 337E38 E0022BF8 00651825 */ or $v1, $v1, $a1
/* 337E3C E0022BFC 346300FF */ ori $v1, $v1, 0xff
/* 337E40 E0022C00 AE420000 */ sw $v0, ($s2)
/* 337E44 E0022C04 3C02DA38 */ lui $v0, 0xda38
/* 337E48 E0022C08 3084FFFF */ andi $a0, $a0, 0xffff
/* 337E4C E0022C0C 00042180 */ sll $a0, $a0, 6
/* 337E50 E0022C10 AD030004 */ sw $v1, 4($t0)
/* 337E54 E0022C14 ACE20000 */ sw $v0, ($a3)
/* 337E58 E0022C18 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 337E5C E0022C1C 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 337E60 E0022C20 00952021 */ addu $a0, $a0, $s5
/* 337E64 E0022C24 00441021 */ addu $v0, $v0, $a0
/* 337E68 E0022C28 ACE20004 */ sw $v0, 4($a3)
/* 337E6C E0022C2C 3C02DE00 */ lui $v0, 0xde00
/* 337E70 E0022C30 ACE20008 */ sw $v0, 8($a3)
/* 337E74 E0022C34 32620007 */ andi $v0, $s3, 7
/* 337E78 E0022C38 00021080 */ sll $v0, $v0, 2
/* 337E7C E0022C3C 004A1021 */ addu $v0, $v0, $t2
/* 337E80 E0022C40 8C430000 */ lw $v1, ($v0)
/* 337E84 E0022C44 24E20018 */ addiu $v0, $a3, 0x18
/* 337E88 E0022C48 AE420000 */ sw $v0, ($s2)
/* 337E8C E0022C4C 24020040 */ addiu $v0, $zero, 0x40
/* 337E90 E0022C50 ACE90010 */ sw $t1, 0x10($a3)
/* 337E94 E0022C54 ACE20014 */ sw $v0, 0x14($a3)
/* 337E98 E0022C58 ACE3000C */ sw $v1, 0xc($a3)
.LE0022C5C:
/* 337E9C E0022C5C 8FAA0100 */ lw $t2, 0x100($sp)
/* 337EA0 E0022C60 26940001 */ addiu $s4, $s4, 1
/* 337EA4 E0022C64 8D420008 */ lw $v0, 8($t2)
/* 337EA8 E0022C68 2442FFFF */ addiu $v0, $v0, -1
/* 337EAC E0022C6C 0282102A */ slt $v0, $s4, $v0
/* 337EB0 E0022C70 1440FFA2 */ bnez $v0, .LE0022AFC
/* 337EB4 E0022C74 26100030 */ addiu $s0, $s0, 0x30
.LE0022C78:
/* 337EB8 E0022C78 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 337EBC E0022C7C 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 337EC0 E0022C80 8C620000 */ lw $v0, ($v1)
/* 337EC4 E0022C84 0040202D */ daddu $a0, $v0, $zero
/* 337EC8 E0022C88 24420008 */ addiu $v0, $v0, 8
/* 337ECC E0022C8C AC620000 */ sw $v0, ($v1)
/* 337ED0 E0022C90 3C02E700 */ lui $v0, 0xe700
/* 337ED4 E0022C94 AC820000 */ sw $v0, ($a0)
/* 337ED8 E0022C98 AC800004 */ sw $zero, 4($a0)
/* 337EDC E0022C9C 8FBF00FC */ lw $ra, 0xfc($sp)
/* 337EE0 E0022CA0 8FBE00F8 */ lw $fp, 0xf8($sp)
/* 337EE4 E0022CA4 8FB700F4 */ lw $s7, 0xf4($sp)
/* 337EE8 E0022CA8 8FB600F0 */ lw $s6, 0xf0($sp)
/* 337EEC E0022CAC 8FB500EC */ lw $s5, 0xec($sp)
/* 337EF0 E0022CB0 8FB400E8 */ lw $s4, 0xe8($sp)
/* 337EF4 E0022CB4 8FB300E4 */ lw $s3, 0xe4($sp)
/* 337EF8 E0022CB8 8FB200E0 */ lw $s2, 0xe0($sp)
/* 337EFC E0022CBC 8FB100DC */ lw $s1, 0xdc($sp)
/* 337F00 E0022CC0 8FB000D8 */ lw $s0, 0xd8($sp)
/* 337F04 E0022CC4 03E00008 */ jr $ra
/* 337F08 E0022CC8 27BD0100 */ addiu $sp, $sp, 0x100
/* 337F0C E0022CCC 00000000 */ nop

View File

@ -1,370 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0022D30
.word 0xE00221DC, 0xE0022318, 0xE0022318, 0xE00223EC, 0xE00223EC
dlabel D_E0022D48
.double 0.05
dlabel D_E0022D50
.double 0.05
.section .text
glabel sparkles_main
/* 337240 E0022000 27BDFF80 */ addiu $sp, $sp, -0x80
/* 337244 E0022004 F7B40050 */ sdc1 $f20, 0x50($sp)
/* 337248 E0022008 4485A000 */ mtc1 $a1, $f20
/* 33724C E002200C AFB5003C */ sw $s5, 0x3c($sp)
/* 337250 E0022010 0080A82D */ daddu $s5, $a0, $zero
/* 337254 E0022014 F7B60058 */ sdc1 $f22, 0x58($sp)
/* 337258 E0022018 4486B000 */ mtc1 $a2, $f22
/* 33725C E002201C F7B80060 */ sdc1 $f24, 0x60($sp)
/* 337260 E0022020 4487C000 */ mtc1 $a3, $f24
/* 337264 E0022024 24020001 */ addiu $v0, $zero, 1
/* 337268 E0022028 AFBF0048 */ sw $ra, 0x48($sp)
/* 33726C E002202C AFB70044 */ sw $s7, 0x44($sp)
/* 337270 E0022030 AFB60040 */ sw $s6, 0x40($sp)
/* 337274 E0022034 AFB40038 */ sw $s4, 0x38($sp)
/* 337278 E0022038 AFB30034 */ sw $s3, 0x34($sp)
/* 33727C E002203C AFB20030 */ sw $s2, 0x30($sp)
/* 337280 E0022040 AFB1002C */ sw $s1, 0x2c($sp)
/* 337284 E0022044 AFB00028 */ sw $s0, 0x28($sp)
/* 337288 E0022048 F7BE0078 */ sdc1 $f30, 0x78($sp)
/* 33728C E002204C F7BC0070 */ sdc1 $f28, 0x70($sp)
/* 337290 E0022050 F7BA0068 */ sdc1 $f26, 0x68($sp)
/* 337294 E0022054 12A20011 */ beq $s5, $v0, .LE002209C
/* 337298 E0022058 27A40010 */ addiu $a0, $sp, 0x10
/* 33729C E002205C 2AA20002 */ slti $v0, $s5, 2
/* 3372A0 E0022060 10400005 */ beqz $v0, .LE0022078
/* 3372A4 E0022064 24020002 */ addiu $v0, $zero, 2
/* 3372A8 E0022068 12A00009 */ beqz $s5, .LE0022090
/* 3372AC E002206C 24120008 */ addiu $s2, $zero, 8
/* 3372B0 E0022070 0800882E */ j .LE00220B8
/* 3372B4 E0022074 00000000 */ nop
.LE0022078:
/* 3372B8 E0022078 12A2000B */ beq $s5, $v0, .LE00220A8
/* 3372BC E002207C 24020003 */ addiu $v0, $zero, 3
/* 3372C0 E0022080 12A2000C */ beq $s5, $v0, .LE00220B4
/* 3372C4 E0022084 24120008 */ addiu $s2, $zero, 8
/* 3372C8 E0022088 0800882E */ j .LE00220B8
/* 3372CC E002208C 00000000 */ nop
.LE0022090:
/* 3372D0 E0022090 C7BE0090 */ lwc1 $f30, 0x90($sp)
/* 3372D4 E0022094 08008830 */ j .LE00220C0
/* 3372D8 E0022098 24120024 */ addiu $s2, $zero, 0x24
.LE002209C:
/* 3372DC E002209C C7BE0090 */ lwc1 $f30, 0x90($sp)
/* 3372E0 E00220A0 08008830 */ j .LE00220C0
/* 3372E4 E00220A4 24120004 */ addiu $s2, $zero, 4
.LE00220A8:
/* 3372E8 E00220A8 C7BE0090 */ lwc1 $f30, 0x90($sp)
/* 3372EC E00220AC 08008830 */ j .LE00220C0
/* 3372F0 E00220B0 24120008 */ addiu $s2, $zero, 8
.LE00220B4:
/* 3372F4 E00220B4 24120004 */ addiu $s2, $zero, 4
.LE00220B8:
/* 3372F8 E00220B8 3C014100 */ lui $at, 0x4100
/* 3372FC E00220BC 4481F000 */ mtc1 $at, $f30
.LE00220C0:
/* 337300 E00220C0 26520001 */ addiu $s2, $s2, 1
/* 337304 E00220C4 3C02E002 */ lui $v0, %hi(sparkles_init)
/* 337308 E00220C8 24422544 */ addiu $v0, $v0, %lo(sparkles_init)
/* 33730C E00220CC AC820008 */ sw $v0, 8($a0)
/* 337310 E00220D0 3C02E002 */ lui $v0, %hi(sparkles_update)
/* 337314 E00220D4 2442254C */ addiu $v0, $v0, %lo(sparkles_update)
/* 337318 E00220D8 AC82000C */ sw $v0, 0xc($a0)
/* 33731C E00220DC 3C02E002 */ lui $v0, %hi(sparkles_render)
/* 337320 E00220E0 24422960 */ addiu $v0, $v0, %lo(sparkles_render)
/* 337324 E00220E4 AC820010 */ sw $v0, 0x10($a0)
/* 337328 E00220E8 24020011 */ addiu $v0, $zero, 0x11
/* 33732C E00220EC AC800000 */ sw $zero, ($a0)
/* 337330 E00220F0 AC800014 */ sw $zero, 0x14($a0)
/* 337334 E00220F4 0C080124 */ jal shim_create_effect_instance
/* 337338 E00220F8 AC820004 */ sw $v0, 4($a0)
/* 33733C E00220FC 00122040 */ sll $a0, $s2, 1
/* 337340 E0022100 00922021 */ addu $a0, $a0, $s2
/* 337344 E0022104 00042100 */ sll $a0, $a0, 4
/* 337348 E0022108 0040802D */ daddu $s0, $v0, $zero
/* 33734C E002210C 0C08012C */ jal shim_general_heap_malloc
/* 337350 E0022110 AE120008 */ sw $s2, 8($s0)
/* 337354 E0022114 0040202D */ daddu $a0, $v0, $zero
/* 337358 E0022118 14800003 */ bnez $a0, .LE0022128
/* 33735C E002211C AE04000C */ sw $a0, 0xc($s0)
.LE0022120:
/* 337360 E0022120 08008848 */ j .LE0022120
/* 337364 E0022124 00000000 */ nop
.LE0022128:
/* 337368 E0022128 2402001E */ addiu $v0, $zero, 0x1e
/* 33736C E002212C E4940004 */ swc1 $f20, 4($a0)
/* 337370 E0022130 E4960008 */ swc1 $f22, 8($a0)
/* 337374 E0022134 E498000C */ swc1 $f24, 0xc($a0)
/* 337378 E0022138 AC800020 */ sw $zero, 0x20($a0)
/* 33737C E002213C AC950000 */ sw $s5, ($a0)
/* 337380 E0022140 AC820024 */ sw $v0, 0x24($a0)
/* 337384 E0022144 24110001 */ addiu $s1, $zero, 1
/* 337388 E0022148 0232102A */ slt $v0, $s1, $s2
/* 33738C E002214C 104000EC */ beqz $v0, .LE0022500
/* 337390 E0022150 24840030 */ addiu $a0, $a0, 0x30
/* 337394 E0022154 3C03E002 */ lui $v1, %hi(D_E0022D30)
/* 337398 E0022158 24632D30 */ addiu $v1, $v1, %lo(D_E0022D30)
/* 33739C E002215C 3C01447A */ lui $at, 0x447a
/* 3373A0 E0022160 4481E000 */ mtc1 $at, $f28
/* 3373A4 E0022164 C7A60090 */ lwc1 $f6, 0x90($sp)
/* 3373A8 E0022168 00151080 */ sll $v0, $s5, 2
/* 3373AC E002216C 461C3002 */ mul.s $f0, $f6, $f28
/* 3373B0 E0022170 00000000 */ nop
/* 3373B4 E0022174 0043B821 */ addu $s7, $v0, $v1
/* 3373B8 E0022178 2654FFFF */ addiu $s4, $s2, -1
/* 3373BC E002217C 24900020 */ addiu $s0, $a0, 0x20
/* 3373C0 E0022180 24130002 */ addiu $s3, $zero, 2
/* 3373C4 E0022184 4600018D */ trunc.w.s $f6, $f0
/* 3373C8 E0022188 44163000 */ mfc1 $s6, $f6
.LE002218C:
/* 3373CC E002218C 0C080138 */ jal shim_rand_int
/* 3373D0 E0022190 02C0202D */ daddu $a0, $s6, $zero
/* 3373D4 E0022194 461CF002 */ mul.s $f0, $f30, $f28
/* 3373D8 E0022198 00000000 */ nop
/* 3373DC E002219C 4600018D */ trunc.w.s $f6, $f0
/* 3373E0 E00221A0 44043000 */ mfc1 $a0, $f6
/* 3373E4 E00221A4 44820000 */ mtc1 $v0, $f0
/* 3373E8 E00221A8 00000000 */ nop
/* 3373EC E00221AC 46800020 */ cvt.s.w $f0, $f0
/* 3373F0 E00221B0 0C080138 */ jal shim_rand_int
/* 3373F4 E00221B4 461C0503 */ div.s $f20, $f0, $f28
/* 3373F8 E00221B8 44820000 */ mtc1 $v0, $f0
/* 3373FC E00221BC 00000000 */ nop
/* 337400 E00221C0 46800020 */ cvt.s.w $f0, $f0
/* 337404 E00221C4 2EA20005 */ sltiu $v0, $s5, 5
/* 337408 E00221C8 10400088 */ beqz $v0, .LE00223EC
/* 33740C E00221CC 461C0583 */ div.s $f22, $f0, $f28
/* 337410 E00221D0 8EE20000 */ lw $v0, ($s7)
/* 337414 E00221D4 00400008 */ jr $v0
/* 337418 E00221D8 00000000 */ nop
/* 33741C E00221DC 44942000 */ mtc1 $s4, $f4
/* 337420 E00221E0 00000000 */ nop
/* 337424 E00221E4 46802120 */ cvt.s.w $f4, $f4
/* 337428 E00221E8 3C0143B4 */ lui $at, 0x43b4
/* 33742C E00221EC 44813000 */ mtc1 $at, $f6
/* 337430 E00221F0 44911000 */ mtc1 $s1, $f2
/* 337434 E00221F4 00000000 */ nop
/* 337438 E00221F8 468010A0 */ cvt.s.w $f2, $f2
/* 33743C E00221FC 46043003 */ div.s $f0, $f6, $f4
/* 337440 E0022200 46020682 */ mul.s $f26, $f0, $f2
/* 337444 E0022204 00000000 */ nop
/* 337448 E0022208 3C0144E1 */ lui $at, 0x44e1
/* 33744C E002220C 4481B000 */ mtc1 $at, $f22
/* 337450 E0022210 00000000 */ nop
/* 337454 E0022214 4604B583 */ div.s $f22, $f22, $f4
/* 337458 E0022218 4602B582 */ mul.s $f22, $f22, $f2
/* 33745C E002221C 00000000 */ nop
/* 337460 E0022220 AE00FFF8 */ sw $zero, -8($s0)
/* 337464 E0022224 3C0142B4 */ lui $at, 0x42b4
/* 337468 E0022228 44810000 */ mtc1 $at, $f0
/* 33746C E002222C 4600D306 */ mov.s $f12, $f26
/* 337470 E0022230 0C080140 */ jal shim_sin_deg
/* 337474 E0022234 4600B581 */ sub.s $f22, $f22, $f0
/* 337478 E0022238 46000506 */ mov.s $f20, $f0
/* 33747C E002223C 0C080140 */ jal shim_sin_deg
/* 337480 E0022240 4600B306 */ mov.s $f12, $f22
/* 337484 E0022244 3C014170 */ lui $at, 0x4170
/* 337488 E0022248 44813000 */ mtc1 $at, $f6
/* 33748C E002224C 00000000 */ nop
/* 337490 E0022250 46060002 */ mul.s $f0, $f0, $f6
/* 337494 E0022254 00000000 */ nop
/* 337498 E0022258 32230001 */ andi $v1, $s1, 1
/* 33749C E002225C 3C0142AA */ lui $at, 0x42aa
/* 3374A0 E0022260 44813000 */ mtc1 $at, $f6
/* 3374A4 E0022264 00031080 */ sll $v0, $v1, 2
/* 3374A8 E0022268 46003001 */ sub.s $f0, $f6, $f0
/* 3374AC E002226C 00431021 */ addu $v0, $v0, $v1
/* 3374B0 E0022270 4482C000 */ mtc1 $v0, $f24
/* 3374B4 E0022274 00000000 */ nop
/* 3374B8 E0022278 4680C620 */ cvt.s.w $f24, $f24
/* 3374BC E002227C 46180001 */ sub.s $f0, $f0, $f24
/* 3374C0 E0022280 4600A502 */ mul.s $f20, $f20, $f0
/* 3374C4 E0022284 00000000 */ nop
/* 3374C8 E0022288 3C0142C8 */ lui $at, 0x42c8
/* 3374CC E002228C 44813000 */ mtc1 $at, $f6
/* 3374D0 E0022290 00000000 */ nop
/* 3374D4 E0022294 4606A503 */ div.s $f20, $f20, $f6
/* 3374D8 E0022298 C7A60090 */ lwc1 $f6, 0x90($sp)
/* 3374DC E002229C 4606A502 */ mul.s $f20, $f20, $f6
/* 3374E0 E00222A0 00000000 */ nop
/* 3374E4 E00222A4 4600D306 */ mov.s $f12, $f26
/* 3374E8 E00222A8 0C080144 */ jal shim_cos_deg
/* 3374EC E00222AC E614FFF0 */ swc1 $f20, -0x10($s0)
/* 3374F0 E00222B0 4600B306 */ mov.s $f12, $f22
/* 3374F4 E00222B4 0C080140 */ jal shim_sin_deg
/* 3374F8 E00222B8 46000506 */ mov.s $f20, $f0
/* 3374FC E00222BC 3C014170 */ lui $at, 0x4170
/* 337500 E00222C0 44813000 */ mtc1 $at, $f6
/* 337504 E00222C4 00000000 */ nop
/* 337508 E00222C8 46060002 */ mul.s $f0, $f0, $f6
/* 33750C E00222CC 00000000 */ nop
/* 337510 E00222D0 3C0142AA */ lui $at, 0x42aa
/* 337514 E00222D4 44813000 */ mtc1 $at, $f6
/* 337518 E00222D8 00000000 */ nop
/* 33751C E00222DC 46003001 */ sub.s $f0, $f6, $f0
/* 337520 E00222E0 46180001 */ sub.s $f0, $f0, $f24
/* 337524 E00222E4 4600A502 */ mul.s $f20, $f20, $f0
/* 337528 E00222E8 00000000 */ nop
/* 33752C E00222EC 3C0142C8 */ lui $at, 0x42c8
/* 337530 E00222F0 44813000 */ mtc1 $at, $f6
/* 337534 E00222F4 00000000 */ nop
/* 337538 E00222F8 4606A503 */ div.s $f20, $f20, $f6
/* 33753C E00222FC C7A60090 */ lwc1 $f6, 0x90($sp)
/* 337540 E0022300 4606A502 */ mul.s $f20, $f20, $f6
/* 337544 E0022304 00000000 */ nop
/* 337548 E0022308 AE00FFEC */ sw $zero, -0x14($s0)
/* 33754C E002230C AE000008 */ sw $zero, 8($s0)
/* 337550 E0022310 0800893B */ j .LE00224EC
/* 337554 E0022314 E614FFF4 */ swc1 $f20, -0xc($s0)
/* 337558 E0022318 0C080138 */ jal shim_rand_int
/* 33755C E002231C 24040167 */ addiu $a0, $zero, 0x167
/* 337560 E0022320 44941000 */ mtc1 $s4, $f2
/* 337564 E0022324 00000000 */ nop
/* 337568 E0022328 468010A0 */ cvt.s.w $f2, $f2
/* 33756C E002232C 3C0143B4 */ lui $at, 0x43b4
/* 337570 E0022330 44813000 */ mtc1 $at, $f6
/* 337574 E0022334 44910000 */ mtc1 $s1, $f0
/* 337578 E0022338 00000000 */ nop
/* 33757C E002233C 46800020 */ cvt.s.w $f0, $f0
/* 337580 E0022340 46023083 */ div.s $f2, $f6, $f2
/* 337584 E0022344 46001082 */ mul.s $f2, $f2, $f0
/* 337588 E0022348 00000000 */ nop
/* 33758C E002234C 44820000 */ mtc1 $v0, $f0
/* 337590 E0022350 00000000 */ nop
/* 337594 E0022354 46800020 */ cvt.s.w $f0, $f0
/* 337598 E0022358 32220001 */ andi $v0, $s1, 1
/* 33759C E002235C 10400014 */ beqz $v0, .LE00223B0
/* 3375A0 E0022360 46001680 */ add.s $f26, $f2, $f0
/* 3375A4 E0022364 0C080138 */ jal shim_rand_int
/* 3375A8 E0022368 24040032 */ addiu $a0, $zero, 0x32
/* 3375AC E002236C 3C031062 */ lui $v1, 0x1062
/* 3375B0 E0022370 34634DD3 */ ori $v1, $v1, 0x4dd3
/* 3375B4 E0022374 00430018 */ mult $v0, $v1
/* 3375B8 E0022378 000217C3 */ sra $v0, $v0, 0x1f
/* 3375BC E002237C 3C01E002 */ lui $at, %hi(D_E0022D48)
/* 3375C0 E0022380 D4222D48 */ ldc1 $f2, %lo(D_E0022D48)($at)
/* 3375C4 E0022384 00004010 */ mfhi $t0
/* 3375C8 E0022388 00081983 */ sra $v1, $t0, 6
/* 3375CC E002238C 00621823 */ subu $v1, $v1, $v0
/* 3375D0 E0022390 44830000 */ mtc1 $v1, $f0
/* 3375D4 E0022394 00000000 */ nop
/* 3375D8 E0022398 46800021 */ cvt.d.w $f0, $f0
/* 3375DC E002239C 46220000 */ add.d $f0, $f0, $f2
/* 3375E0 E00223A0 46200007 */ neg.d $f0, $f0
/* 3375E4 E00223A4 46200020 */ cvt.s.d $f0, $f0
/* 3375E8 E00223A8 080088ED */ j .LE00223B4
/* 3375EC E00223AC E600FFF8 */ swc1 $f0, -8($s0)
.LE00223B0:
/* 3375F0 E00223B0 AE00FFF8 */ sw $zero, -8($s0)
.LE00223B4:
/* 3375F4 E00223B4 4600D306 */ mov.s $f12, $f26
/* 3375F8 E00223B8 AE00FFF0 */ sw $zero, -0x10($s0)
/* 3375FC E00223BC 0C080140 */ jal shim_sin_deg
/* 337600 E00223C0 AE00FFF4 */ sw $zero, -0xc($s0)
/* 337604 E00223C4 4600A002 */ mul.s $f0, $f20, $f0
/* 337608 E00223C8 00000000 */ nop
/* 33760C E00223CC 4600D306 */ mov.s $f12, $f26
/* 337610 E00223D0 0C080144 */ jal shim_cos_deg
/* 337614 E00223D4 E600FFE4 */ swc1 $f0, -0x1c($s0)
/* 337618 E00223D8 3C035555 */ lui $v1, 0x5555
/* 33761C E00223DC 34635556 */ ori $v1, $v1, 0x5556
/* 337620 E00223E0 02230018 */ mult $s1, $v1
/* 337624 E00223E4 0800892B */ j .LE00224AC
/* 337628 E00223E8 2662001E */ addiu $v0, $s3, 0x1e
.LE00223EC:
/* 33762C E00223EC 0C080138 */ jal shim_rand_int
/* 337630 E00223F0 24040167 */ addiu $a0, $zero, 0x167
/* 337634 E00223F4 44941000 */ mtc1 $s4, $f2
/* 337638 E00223F8 00000000 */ nop
/* 33763C E00223FC 468010A0 */ cvt.s.w $f2, $f2
/* 337640 E0022400 3C0143B4 */ lui $at, 0x43b4
/* 337644 E0022404 44813000 */ mtc1 $at, $f6
/* 337648 E0022408 44910000 */ mtc1 $s1, $f0
/* 33764C E002240C 00000000 */ nop
/* 337650 E0022410 46800020 */ cvt.s.w $f0, $f0
/* 337654 E0022414 46023083 */ div.s $f2, $f6, $f2
/* 337658 E0022418 46001082 */ mul.s $f2, $f2, $f0
/* 33765C E002241C 00000000 */ nop
/* 337660 E0022420 24040032 */ addiu $a0, $zero, 0x32
/* 337664 E0022424 44820000 */ mtc1 $v0, $f0
/* 337668 E0022428 00000000 */ nop
/* 33766C E002242C 46800020 */ cvt.s.w $f0, $f0
/* 337670 E0022430 0C080138 */ jal shim_rand_int
/* 337674 E0022434 46001680 */ add.s $f26, $f2, $f0
/* 337678 E0022438 3C031062 */ lui $v1, 0x1062
/* 33767C E002243C 34634DD3 */ ori $v1, $v1, 0x4dd3
/* 337680 E0022440 00430018 */ mult $v0, $v1
/* 337684 E0022444 3C01E002 */ lui $at, %hi(D_E0022D50)
/* 337688 E0022448 D4222D50 */ ldc1 $f2, %lo(D_E0022D50)($at)
/* 33768C E002244C 000217C3 */ sra $v0, $v0, 0x1f
/* 337690 E0022450 AE00FFF0 */ sw $zero, -0x10($s0)
/* 337694 E0022454 00004010 */ mfhi $t0
/* 337698 E0022458 00081983 */ sra $v1, $t0, 6
/* 33769C E002245C 00621823 */ subu $v1, $v1, $v0
/* 3376A0 E0022460 44830000 */ mtc1 $v1, $f0
/* 3376A4 E0022464 00000000 */ nop
/* 3376A8 E0022468 46800021 */ cvt.d.w $f0, $f0
/* 3376AC E002246C 46220000 */ add.d $f0, $f0, $f2
/* 3376B0 E0022470 AE00FFF4 */ sw $zero, -0xc($s0)
/* 3376B4 E0022474 4600D306 */ mov.s $f12, $f26
/* 3376B8 E0022478 46200007 */ neg.d $f0, $f0
/* 3376BC E002247C 46200020 */ cvt.s.d $f0, $f0
/* 3376C0 E0022480 0C080140 */ jal shim_sin_deg
/* 3376C4 E0022484 E600FFF8 */ swc1 $f0, -8($s0)
/* 3376C8 E0022488 4600A002 */ mul.s $f0, $f20, $f0
/* 3376CC E002248C 00000000 */ nop
/* 3376D0 E0022490 4600D306 */ mov.s $f12, $f26
/* 3376D4 E0022494 0C080144 */ jal shim_cos_deg
/* 3376D8 E0022498 E600FFE4 */ swc1 $f0, -0x1c($s0)
/* 3376DC E002249C 3C035555 */ lui $v1, 0x5555
/* 3376E0 E00224A0 34635556 */ ori $v1, $v1, 0x5556
/* 3376E4 E00224A4 02230018 */ mult $s1, $v1
/* 3376E8 E00224A8 26620012 */ addiu $v0, $s3, 0x12
.LE00224AC:
/* 3376EC E00224AC 00111FC3 */ sra $v1, $s1, 0x1f
/* 3376F0 E00224B0 3C013F80 */ lui $at, 0x3f80
/* 3376F4 E00224B4 44811000 */ mtc1 $at, $f2
/* 3376F8 E00224B8 4600B002 */ mul.s $f0, $f22, $f0
/* 3376FC E00224BC 00000000 */ nop
/* 337700 E00224C0 AE00FFEC */ sw $zero, -0x14($s0)
/* 337704 E00224C4 AE020004 */ sw $v0, 4($s0)
/* 337708 E00224C8 AE000000 */ sw $zero, ($s0)
/* 33770C E00224CC E602FFFC */ swc1 $f2, -4($s0)
/* 337710 E00224D0 00004010 */ mfhi $t0
/* 337714 E00224D4 01031823 */ subu $v1, $t0, $v1
/* 337718 E00224D8 00031040 */ sll $v0, $v1, 1
/* 33771C E00224DC 00431021 */ addu $v0, $v0, $v1
/* 337720 E00224E0 02221023 */ subu $v0, $s1, $v0
/* 337724 E00224E4 E600FFE8 */ swc1 $f0, -0x18($s0)
/* 337728 E00224E8 AE020008 */ sw $v0, 8($s0)
.LE00224EC:
/* 33772C E00224EC 26730002 */ addiu $s3, $s3, 2
/* 337730 E00224F0 26310001 */ addiu $s1, $s1, 1
/* 337734 E00224F4 0232102A */ slt $v0, $s1, $s2
/* 337738 E00224F8 1440FF24 */ bnez $v0, .LE002218C
/* 33773C E00224FC 26100030 */ addiu $s0, $s0, 0x30
.LE0022500:
/* 337740 E0022500 8FBF0048 */ lw $ra, 0x48($sp)
/* 337744 E0022504 8FB70044 */ lw $s7, 0x44($sp)
/* 337748 E0022508 8FB60040 */ lw $s6, 0x40($sp)
/* 33774C E002250C 8FB5003C */ lw $s5, 0x3c($sp)
/* 337750 E0022510 8FB40038 */ lw $s4, 0x38($sp)
/* 337754 E0022514 8FB30034 */ lw $s3, 0x34($sp)
/* 337758 E0022518 8FB20030 */ lw $s2, 0x30($sp)
/* 33775C E002251C 8FB1002C */ lw $s1, 0x2c($sp)
/* 337760 E0022520 8FB00028 */ lw $s0, 0x28($sp)
/* 337764 E0022524 D7BE0078 */ ldc1 $f30, 0x78($sp)
/* 337768 E0022528 D7BC0070 */ ldc1 $f28, 0x70($sp)
/* 33776C E002252C D7BA0068 */ ldc1 $f26, 0x68($sp)
/* 337770 E0022530 D7B80060 */ ldc1 $f24, 0x60($sp)
/* 337774 E0022534 D7B60058 */ ldc1 $f22, 0x58($sp)
/* 337778 E0022538 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 33777C E002253C 03E00008 */ jr $ra
/* 337780 E0022540 27BD0080 */ addiu $sp, $sp, 0x80

View File

@ -1,299 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0022D58
.double 0.01
dlabel D_E0022D60
.double 0.96
dlabel D_E0022D68
.double 0.1
dlabel D_E0022D70
.double -0.02
dlabel D_E0022D78
.double 0.9
.section .text
glabel sparkles_update
/* 33778C E002254C 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 337790 E0022550 AFB50024 */ sw $s5, 0x24($sp)
/* 337794 E0022554 0080A82D */ daddu $s5, $a0, $zero
/* 337798 E0022558 AFBF0034 */ sw $ra, 0x34($sp)
/* 33779C E002255C AFBE0030 */ sw $fp, 0x30($sp)
/* 3377A0 E0022560 AFB7002C */ sw $s7, 0x2c($sp)
/* 3377A4 E0022564 AFB60028 */ sw $s6, 0x28($sp)
/* 3377A8 E0022568 AFB40020 */ sw $s4, 0x20($sp)
/* 3377AC E002256C AFB3001C */ sw $s3, 0x1c($sp)
/* 3377B0 E0022570 AFB20018 */ sw $s2, 0x18($sp)
/* 3377B4 E0022574 AFB10014 */ sw $s1, 0x14($sp)
/* 3377B8 E0022578 AFB00010 */ sw $s0, 0x10($sp)
/* 3377BC E002257C F7BC0058 */ sdc1 $f28, 0x58($sp)
/* 3377C0 E0022580 F7BA0050 */ sdc1 $f26, 0x50($sp)
/* 3377C4 E0022584 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3377C8 E0022588 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3377CC E002258C F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3377D0 E0022590 8EA4000C */ lw $a0, 0xc($s5)
/* 3377D4 E0022594 0000A02D */ daddu $s4, $zero, $zero
/* 3377D8 E0022598 0080F02D */ daddu $fp, $a0, $zero
/* 3377DC E002259C 8C830020 */ lw $v1, 0x20($a0)
/* 3377E0 E00225A0 8C820024 */ lw $v0, 0x24($a0)
/* 3377E4 E00225A4 8C930000 */ lw $s3, ($a0)
/* 3377E8 E00225A8 24630001 */ addiu $v1, $v1, 1
/* 3377EC E00225AC 0060902D */ daddu $s2, $v1, $zero
/* 3377F0 E00225B0 2442FFFF */ addiu $v0, $v0, -1
/* 3377F4 E00225B4 AC820024 */ sw $v0, 0x24($a0)
/* 3377F8 E00225B8 12600004 */ beqz $s3, .LE00225CC
/* 3377FC E00225BC AC920020 */ sw $s2, 0x20($a0)
/* 337800 E00225C0 2402000A */ addiu $v0, $zero, 0xa
/* 337804 E00225C4 56620004 */ bnel $s3, $v0, .LE00225D8
/* 337808 E00225C8 24840030 */ addiu $a0, $a0, 0x30
.LE00225CC:
/* 33780C E00225CC 8C820024 */ lw $v0, 0x24($a0)
/* 337810 E00225D0 044000D0 */ bltz $v0, .LE0022914
/* 337814 E00225D4 24840030 */ addiu $a0, $a0, 0x30
.LE00225D8:
/* 337818 E00225D8 8EA20008 */ lw $v0, 8($s5)
/* 33781C E00225DC 2442FFFF */ addiu $v0, $v0, -1
/* 337820 E00225E0 184000C3 */ blez $v0, .LE00228F0
/* 337824 E00225E4 0000882D */ daddu $s1, $zero, $zero
/* 337828 E00225E8 2417000A */ addiu $s7, $zero, 0xa
/* 33782C E00225EC 3C16E002 */ lui $s6, %hi(D_E0022D1C)
/* 337830 E00225F0 26D62D1C */ addiu $s6, $s6, %lo(D_E0022D1C)
/* 337834 E00225F4 2490001C */ addiu $s0, $a0, 0x1c
/* 337838 E00225F8 3C01E002 */ lui $at, %hi(D_E0022D58)
/* 33783C E00225FC D43A2D58 */ ldc1 $f26, %lo(D_E0022D58)($at)
/* 337840 E0022600 3C01E002 */ lui $at, %hi(D_E0022D60)
/* 337844 E0022604 D43C2D60 */ ldc1 $f28, %lo(D_E0022D60)($at)
/* 337848 E0022608 3C01E002 */ lui $at, %hi(D_E0022D68)
/* 33784C E002260C D4382D68 */ ldc1 $f24, %lo(D_E0022D68)($at)
.LE0022610:
/* 337850 E0022610 02511021 */ addu $v0, $s2, $s1
/* 337854 E0022614 30420007 */ andi $v0, $v0, 7
/* 337858 E0022618 12600005 */ beqz $s3, .LE0022630
/* 33785C E002261C AE020010 */ sw $v0, 0x10($s0)
/* 337860 E0022620 12770057 */ beq $s3, $s7, .LE0022780
/* 337864 E0022624 00000000 */ nop
/* 337868 E0022628 08008A00 */ j .LE0022800
/* 33786C E002262C 00000000 */ nop
.LE0022630:
/* 337870 E0022630 C600FFFC */ lwc1 $f0, -4($s0)
/* 337874 E0022634 3C01E002 */ lui $at, %hi(D_E0022D70)
/* 337878 E0022638 D4222D70 */ ldc1 $f2, %lo(D_E0022D70)($at)
/* 33787C E002263C 46000021 */ cvt.d.s $f0, $f0
/* 337880 E0022640 46220000 */ add.d $f0, $f0, $f2
/* 337884 E0022644 2644FFFF */ addiu $a0, $s2, -1
/* 337888 E0022648 28820007 */ slti $v0, $a0, 7
/* 33788C E002264C 46200020 */ cvt.s.d $f0, $f0
/* 337890 E0022650 10400029 */ beqz $v0, .LE00226F8
/* 337894 E0022654 E600FFFC */ swc1 $f0, -4($s0)
/* 337898 E0022658 3C03E002 */ lui $v1, %hi(D_E0022D14)
/* 33789C E002265C 24632D14 */ addiu $v1, $v1, %lo(D_E0022D14)
/* 3378A0 E0022660 00831821 */ addu $v1, $a0, $v1
/* 3378A4 E0022664 90620000 */ lbu $v0, ($v1)
/* 3378A8 E0022668 C600FFF4 */ lwc1 $f0, -0xc($s0)
/* 3378AC E002266C 44821000 */ mtc1 $v0, $f2
/* 3378B0 E0022670 00000000 */ nop
/* 3378B4 E0022674 468010A0 */ cvt.s.w $f2, $f2
/* 3378B8 E0022678 46020002 */ mul.s $f0, $f0, $f2
/* 3378BC E002267C 00000000 */ nop
/* 3378C0 E0022680 46000021 */ cvt.d.s $f0, $f0
/* 3378C4 E0022684 463A0002 */ mul.d $f0, $f0, $f26
/* 3378C8 E0022688 00000000 */ nop
/* 3378CC E002268C 46200020 */ cvt.s.d $f0, $f0
/* 3378D0 E0022690 E600FFE8 */ swc1 $f0, -0x18($s0)
/* 3378D4 E0022694 90620000 */ lbu $v0, ($v1)
/* 3378D8 E0022698 C602FFF8 */ lwc1 $f2, -8($s0)
/* 3378DC E002269C 44820000 */ mtc1 $v0, $f0
/* 3378E0 E00226A0 00000000 */ nop
/* 3378E4 E00226A4 46800020 */ cvt.s.w $f0, $f0
/* 3378E8 E00226A8 46001082 */ mul.s $f2, $f2, $f0
/* 3378EC E00226AC 00000000 */ nop
/* 3378F0 E00226B0 460010A1 */ cvt.d.s $f2, $f2
/* 3378F4 E00226B4 463A1082 */ mul.d $f2, $f2, $f26
/* 3378F8 E00226B8 00000000 */ nop
/* 3378FC E00226BC C600FFFC */ lwc1 $f0, -4($s0)
/* 337900 E00226C0 46000021 */ cvt.d.s $f0, $f0
/* 337904 E00226C4 46201080 */ add.d $f2, $f2, $f0
/* 337908 E00226C8 00961021 */ addu $v0, $a0, $s6
/* 33790C E00226CC 462010A0 */ cvt.s.d $f2, $f2
/* 337910 E00226D0 E602FFEC */ swc1 $f2, -0x14($s0)
/* 337914 E00226D4 90420000 */ lbu $v0, ($v0)
/* 337918 E00226D8 44820000 */ mtc1 $v0, $f0
/* 33791C E00226DC 00000000 */ nop
/* 337920 E00226E0 46800020 */ cvt.s.w $f0, $f0
/* 337924 E00226E4 46000021 */ cvt.d.s $f0, $f0
/* 337928 E00226E8 463A0002 */ mul.d $f0, $f0, $f26
/* 33792C E00226EC 00000000 */ nop
/* 337930 E00226F0 08008A35 */ j .LE00228D4
/* 337934 E00226F4 46200020 */ cvt.s.d $f0, $f0
.LE00226F8:
/* 337938 E00226F8 24040168 */ addiu $a0, $zero, 0x168
/* 33793C E00226FC 0C080011 */ jal func_E0200044
/* 337940 E0022700 262500B1 */ addiu $a1, $s1, 0xb1
/* 337944 E0022704 32230003 */ andi $v1, $s1, 3
/* 337948 E0022708 3C013F00 */ lui $at, 0x3f00
/* 33794C E002270C 44810000 */ mtc1 $at, $f0
/* 337950 E0022710 4483A000 */ mtc1 $v1, $f20
/* 337954 E0022714 00000000 */ nop
/* 337958 E0022718 4680A520 */ cvt.s.w $f20, $f20
/* 33795C E002271C 4600A502 */ mul.s $f20, $f20, $f0
/* 337960 E0022720 00000000 */ nop
/* 337964 E0022724 4482B000 */ mtc1 $v0, $f22
/* 337968 E0022728 00000000 */ nop
/* 33796C E002272C 4680B5A0 */ cvt.s.w $f22, $f22
/* 337970 E0022730 3C013F80 */ lui $at, 0x3f80
/* 337974 E0022734 44810000 */ mtc1 $at, $f0
/* 337978 E0022738 4600B306 */ mov.s $f12, $f22
/* 33797C E002273C 4600A500 */ add.s $f20, $f20, $f0
/* 337980 E0022740 0C080140 */ jal shim_sin_deg
/* 337984 E0022744 AFD70000 */ sw $s7, ($fp)
/* 337988 E0022748 4600A002 */ mul.s $f0, $f20, $f0
/* 33798C E002274C 00000000 */ nop
/* 337990 E0022750 4600B306 */ mov.s $f12, $f22
/* 337994 E0022754 0C080144 */ jal shim_cos_deg
/* 337998 E0022758 E600FFF4 */ swc1 $f0, -0xc($s0)
/* 33799C E002275C 4600A502 */ mul.s $f20, $f20, $f0
/* 3379A0 E0022760 00000000 */ nop
/* 3379A4 E0022764 3C01BD4C */ lui $at, 0xbd4c
/* 3379A8 E0022768 3421CCCD */ ori $at, $at, 0xcccd
/* 3379AC E002276C 44810000 */ mtc1 $at, $f0
/* 3379B0 E0022770 00000000 */ nop
/* 3379B4 E0022774 E600FFFC */ swc1 $f0, -4($s0)
/* 3379B8 E0022778 08008A36 */ j .LE00228D8
/* 3379BC E002277C E614FFF8 */ swc1 $f20, -8($s0)
.LE0022780:
/* 3379C0 E0022780 C600FFF4 */ lwc1 $f0, -0xc($s0)
/* 3379C4 E0022784 46000021 */ cvt.d.s $f0, $f0
/* 3379C8 E0022788 463C0002 */ mul.d $f0, $f0, $f28
/* 3379CC E002278C 00000000 */ nop
/* 3379D0 E0022790 C602FFF8 */ lwc1 $f2, -8($s0)
/* 3379D4 E0022794 460010A1 */ cvt.d.s $f2, $f2
/* 3379D8 E0022798 463C1082 */ mul.d $f2, $f2, $f28
/* 3379DC E002279C 00000000 */ nop
/* 3379E0 E00227A0 C6040000 */ lwc1 $f4, ($s0)
/* 3379E4 E00227A4 46002121 */ cvt.d.s $f4, $f4
/* 3379E8 E00227A8 4624C181 */ sub.d $f6, $f24, $f4
/* 3379EC E00227AC 46383182 */ mul.d $f6, $f6, $f24
/* 3379F0 E00227B0 00000000 */ nop
/* 3379F4 E00227B4 C608FFE8 */ lwc1 $f8, -0x18($s0)
/* 3379F8 E00227B8 46200020 */ cvt.s.d $f0, $f0
/* 3379FC E00227BC E600FFF4 */ swc1 $f0, -0xc($s0)
/* 337A00 E00227C0 C600FFFC */ lwc1 $f0, -4($s0)
/* 337A04 E00227C4 462010A0 */ cvt.s.d $f2, $f2
/* 337A08 E00227C8 46001000 */ add.s $f0, $f2, $f0
/* 337A0C E00227CC C60AFFF4 */ lwc1 $f10, -0xc($s0)
/* 337A10 E00227D0 460A4200 */ add.s $f8, $f8, $f10
/* 337A14 E00227D4 E602FFF8 */ swc1 $f2, -8($s0)
/* 337A18 E00227D8 46262100 */ add.d $f4, $f4, $f6
/* 337A1C E00227DC E600FFF8 */ swc1 $f0, -8($s0)
/* 337A20 E00227E0 C600FFEC */ lwc1 $f0, -0x14($s0)
/* 337A24 E00227E4 C602FFF8 */ lwc1 $f2, -8($s0)
/* 337A28 E00227E8 E608FFE8 */ swc1 $f8, -0x18($s0)
/* 337A2C E00227EC 46020000 */ add.s $f0, $f0, $f2
/* 337A30 E00227F0 46202120 */ cvt.s.d $f4, $f4
/* 337A34 E00227F4 E6040000 */ swc1 $f4, ($s0)
/* 337A38 E00227F8 08008A36 */ j .LE00228D8
/* 337A3C E00227FC E600FFEC */ swc1 $f0, -0x14($s0)
.LE0022800:
/* 337A40 E0022800 C600FFF4 */ lwc1 $f0, -0xc($s0)
/* 337A44 E0022804 3C01E002 */ lui $at, %hi(D_E0022D78)
/* 337A48 E0022808 D4222D78 */ ldc1 $f2, %lo(D_E0022D78)($at)
/* 337A4C E002280C 46000021 */ cvt.d.s $f0, $f0
/* 337A50 E0022810 46220002 */ mul.d $f0, $f0, $f2
/* 337A54 E0022814 00000000 */ nop
/* 337A58 E0022818 C604FFF8 */ lwc1 $f4, -8($s0)
/* 337A5C E002281C C602FFFC */ lwc1 $f2, -4($s0)
/* 337A60 E0022820 46022100 */ add.s $f4, $f4, $f2
/* 337A64 E0022824 8E020008 */ lw $v0, 8($s0)
/* 337A68 E0022828 E604FFF8 */ swc1 $f4, -8($s0)
/* 337A6C E002282C 46200020 */ cvt.s.d $f0, $f0
/* 337A70 E0022830 E600FFF4 */ swc1 $f0, -0xc($s0)
/* 337A74 E0022834 04410002 */ bgez $v0, .LE0022840
/* 337A78 E0022838 46000086 */ mov.s $f2, $f0
/* 337A7C E002283C 26940001 */ addiu $s4, $s4, 1
.LE0022840:
/* 337A80 E0022840 C600FFE8 */ lwc1 $f0, -0x18($s0)
/* 337A84 E0022844 8E020008 */ lw $v0, 8($s0)
/* 337A88 E0022848 46020000 */ add.s $f0, $f0, $f2
/* 337A8C E002284C C602FFEC */ lwc1 $f2, -0x14($s0)
/* 337A90 E0022850 2442FFFF */ addiu $v0, $v0, -1
/* 337A94 E0022854 AE020008 */ sw $v0, 8($s0)
/* 337A98 E0022858 46041080 */ add.s $f2, $f2, $f4
/* 337A9C E002285C 2C420015 */ sltiu $v0, $v0, 0x15
/* 337AA0 E0022860 E600FFE8 */ swc1 $f0, -0x18($s0)
/* 337AA4 E0022864 14400004 */ bnez $v0, .LE0022878
/* 337AA8 E0022868 E602FFEC */ swc1 $f2, -0x14($s0)
/* 337AAC E002286C 2402FFFF */ addiu $v0, $zero, -1
/* 337AB0 E0022870 08008A36 */ j .LE00228D8
/* 337AB4 E0022874 AE020010 */ sw $v0, 0x10($s0)
.LE0022878:
/* 337AB8 E0022878 8E030004 */ lw $v1, 4($s0)
/* 337ABC E002287C 24620001 */ addiu $v0, $v1, 1
/* 337AC0 E0022880 0040902D */ daddu $s2, $v0, $zero
/* 337AC4 E0022884 28620007 */ slti $v0, $v1, 7
/* 337AC8 E0022888 1040000B */ beqz $v0, .LE00228B8
/* 337ACC E002288C AE120004 */ sw $s2, 4($s0)
/* 337AD0 E0022890 00761021 */ addu $v0, $v1, $s6
/* 337AD4 E0022894 90420000 */ lbu $v0, ($v0)
/* 337AD8 E0022898 44820000 */ mtc1 $v0, $f0
/* 337ADC E002289C 00000000 */ nop
/* 337AE0 E00228A0 46800020 */ cvt.s.w $f0, $f0
/* 337AE4 E00228A4 46000021 */ cvt.d.s $f0, $f0
/* 337AE8 E00228A8 463A0002 */ mul.d $f0, $f0, $f26
/* 337AEC E00228AC 00000000 */ nop
/* 337AF0 E00228B0 08008A35 */ j .LE00228D4
/* 337AF4 E00228B4 46200020 */ cvt.s.d $f0, $f0
.LE00228B8:
/* 337AF8 E00228B8 C6000000 */ lwc1 $f0, ($s0)
/* 337AFC E00228BC 46000021 */ cvt.d.s $f0, $f0
/* 337B00 E00228C0 4620C081 */ sub.d $f2, $f24, $f0
/* 337B04 E00228C4 46381082 */ mul.d $f2, $f2, $f24
/* 337B08 E00228C8 00000000 */ nop
/* 337B0C E00228CC 46220000 */ add.d $f0, $f0, $f2
/* 337B10 E00228D0 46200020 */ cvt.s.d $f0, $f0
.LE00228D4:
/* 337B14 E00228D4 E6000000 */ swc1 $f0, ($s0)
.LE00228D8:
/* 337B18 E00228D8 26310001 */ addiu $s1, $s1, 1
/* 337B1C E00228DC 8EA20008 */ lw $v0, 8($s5)
/* 337B20 E00228E0 2442FFFF */ addiu $v0, $v0, -1
/* 337B24 E00228E4 0222102A */ slt $v0, $s1, $v0
/* 337B28 E00228E8 1440FF49 */ bnez $v0, .LE0022610
/* 337B2C E00228EC 26100030 */ addiu $s0, $s0, 0x30
.LE00228F0:
/* 337B30 E00228F0 1260000A */ beqz $s3, .LE002291C
/* 337B34 E00228F4 2402000A */ addiu $v0, $zero, 0xa
/* 337B38 E00228F8 12620008 */ beq $s3, $v0, .LE002291C
/* 337B3C E00228FC 00000000 */ nop
/* 337B40 E0022900 8EA20008 */ lw $v0, 8($s5)
/* 337B44 E0022904 2442FFFF */ addiu $v0, $v0, -1
/* 337B48 E0022908 0282102A */ slt $v0, $s4, $v0
/* 337B4C E002290C 14400003 */ bnez $v0, .LE002291C
/* 337B50 E0022910 00000000 */ nop
.LE0022914:
/* 337B54 E0022914 0C080128 */ jal shim_remove_effect
/* 337B58 E0022918 02A0202D */ daddu $a0, $s5, $zero
.LE002291C:
/* 337B5C E002291C 8FBF0034 */ lw $ra, 0x34($sp)
/* 337B60 E0022920 8FBE0030 */ lw $fp, 0x30($sp)
/* 337B64 E0022924 8FB7002C */ lw $s7, 0x2c($sp)
/* 337B68 E0022928 8FB60028 */ lw $s6, 0x28($sp)
/* 337B6C E002292C 8FB50024 */ lw $s5, 0x24($sp)
/* 337B70 E0022930 8FB40020 */ lw $s4, 0x20($sp)
/* 337B74 E0022934 8FB3001C */ lw $s3, 0x1c($sp)
/* 337B78 E0022938 8FB20018 */ lw $s2, 0x18($sp)
/* 337B7C E002293C 8FB10014 */ lw $s1, 0x14($sp)
/* 337B80 E0022940 8FB00010 */ lw $s0, 0x10($sp)
/* 337B84 E0022944 D7BC0058 */ ldc1 $f28, 0x58($sp)
/* 337B88 E0022948 D7BA0050 */ ldc1 $f26, 0x50($sp)
/* 337B8C E002294C D7B80048 */ ldc1 $f24, 0x48($sp)
/* 337B90 E0022950 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 337B94 E0022954 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 337B98 E0022958 03E00008 */ jr $ra
/* 337B9C E002295C 27BD0060 */ addiu $sp, $sp, 0x60

View File

@ -2881,7 +2881,7 @@ segments:
vram: 0xE0022000 vram: 0xE0022000
subsegments: subsegments:
- [0x337240, c, sparkles] - [0x337240, c, sparkles]
- [0x337F10, data] - [0x337F10]
- name: effect_gfx_sparkles - name: effect_gfx_sparkles
dir: effects/gfx dir: effects/gfx
type: code type: code
@ -4050,7 +4050,7 @@ segments:
vram: 0xE0086000 vram: 0xE0086000
subsegments: subsegments:
- [0x389850, c, firework] - [0x389850, c, firework]
- [0x38A2F0, data] - [0x38A2F0]
- name: effect_gfx_firework - name: effect_gfx_firework
dir: effects/gfx dir: effects/gfx
type: code type: code
@ -4082,7 +4082,7 @@ segments:
vram: 0xE0088000 vram: 0xE0088000
subsegments: subsegments:
- [0x38ADF0, c, confetti] - [0x38ADF0, c, confetti]
- [0x38BAB0, data] - [0x38BAB0]
- name: effect_gfx_confetti - name: effect_gfx_confetti
dir: effects/gfx dir: effects/gfx
type: code type: code
@ -4120,7 +4120,7 @@ segments:
vram: 0xE008C000 vram: 0xE008C000
subsegments: subsegments:
- [0x38DE00, c, effect_46] - [0x38DE00, c, effect_46]
- [0x38E8F0, data] - [0x38E8F0]
- name: effect_gfx_effect_46 - name: effect_gfx_effect_46
dir: effects/gfx dir: effects/gfx
type: code type: code
@ -4436,7 +4436,29 @@ segments:
vram: 0xE00A6000 vram: 0xE00A6000
subsegments: subsegments:
- [0x3A5550, c, merlin_house_stars] - [0x3A5550, c, merlin_house_stars]
- [0x3A5BE0, bin] # merlin_house_stars gfx - name: effect_gfx_merlin_house_stars
dir: effects/gfx
type: code
start: 0x3A5BE0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3A5BE0, c, merlin_house_stars]
- start: 0x3A5BE0
type: .data
name: merlin_house_stars
subsegments:
- [0x3A5BE0, i4, D_09000000_3A5BE0, 64, 64]
- [0x3A63E0, i4, D_09000800_3A63E0, 64, 64]
- [0x3A6BE0, gfx, D_09001000_3A6BE0]
- [0x3A6CD8, vtx, D_090010F8_3A6CD8]
- [0x3A6E68, vtx, D_09001288_3A6E68]
- [0x3A6E88, vtx, D_090012A8_3A6E88]
- [0x3A6E98, vtx, D_090012B8_3A6E98]
- [0x3A6EB8, vtx, D_090012D8_3A6EB8]
- [0x3A6EC8, vtx, D_090012E8_3A6EC8]
- [0x3A6FF8, gfx, D_09001418_3A6FF8]
- [0x3A70E8]
- name: effect_quizmo_audience - name: effect_quizmo_audience
dir: effects dir: effects
type: code type: code
@ -4948,7 +4970,7 @@ segments:
vram: 0xE00E0000 vram: 0xE00E0000
subsegments: subsegments:
- [0x3DB460, c, embers] - [0x3DB460, c, embers]
- [0x3DBEA0, data] - [0x3DBEA0]
- name: effect_gfx_embers - name: effect_gfx_embers
dir: effects/gfx dir: effects/gfx
type: code type: code
@ -5544,7 +5566,7 @@ segments:
vram: 0xE0124000 vram: 0xE0124000
subsegments: subsegments:
- [0x412730, c, pink_sparkles] - [0x412730, c, pink_sparkles]
- [0x412FD0, data] - [0x412FD0]
- name: effect_star_outline - name: effect_star_outline
dir: effects dir: effects
type: code type: code

View File

@ -38,6 +38,12 @@ obfuscated_create_audio_system = create_audio_system - 0x7B;
D_7599F6D8 = 0x7599F6D8; D_7599F6D8 = 0x7599F6D8;
D_F79DDD0F = 0xF79DDD0F; D_F79DDD0F = 0xF79DDD0F;
// effect_flame
D_09000800 = 0x09000800;
D_090008F8 = 0x090008F8;
D_09000918 = 0x09000918;
D_090009E0 = 0x090009E0;
fx_sun_undeclared = fx_sun; fx_sun_undeclared = fx_sun;
D_E007EC2F = 0xE007EC2F; D_E007EC2F = 0xE007EC2F;