Blast, aura, sleep_bubble, fire_flower, bombette_breaking effects (#656)

* Blast, aura, sleep_bubble, fire_flower, bombette_breaking

* run coverage.py

* Move the typedefs to effects.h
This commit is contained in:
JaThePlayer 2022-02-25 14:19:53 +01:00 committed by GitHub
parent d86d15bfd5
commit 2d733f4097
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 557 additions and 833 deletions

View File

@ -522,6 +522,86 @@ typedef struct Effect134 {
/* 0x34 */ f32 unk_34;
} Effect134; // size = 0x38
typedef struct SleepBubbleFXData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ s32 timeLeft;
/* 0x20 */ s32 unk_20;
/* 0x24 */ Vec2f points[20];
/* 0xC4 */ f32 unk_C4;
/* 0xC8 */ f32 unk_C8;
} SleepBubbleFXData; // size = 0xCC
typedef struct AuraFXData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ f32 unk_44;
/* 0x48 */ f32 unk_48;
/* 0x4C */ f32 unk_4C;
/* 0x50 */ f32 unk_50;
/* 0x54 */ f32 unk_54;
/* 0x58 */ f32 unk_58;
/* 0x5C */ f32 unk_5C;
/* 0x60 */ f32 unk_60;
union {
s32 s;
f32 f;
} unk_64;
/* 0x68 */ u8 unk_68;
/* 0x69 */ u8 unk_69;
/* 0x6A */ u8 unk_6A;
/* 0x6B */ u8 unk_6B;
/* 0x6C */ u8 unk_6C;
/* 0x6D */ u8 unk_6D;
/* 0x6E */ u8 unk_6E;
} AuraFXData; // size = 0x70
typedef struct BlastFXData {
/* 0x00 */ s16 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ s32 timeLeft;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unk_28;
} BlastFXData; // size = 0x2C
typedef struct FireFlowerFXData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 unk_04;
/* 0x08 */ Vec3f pos;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ s32 unk_3C;
/* 0x40 */ Vec3i unk_40;
} FireFlowerFXData; // size = 0x4C
// TODO figure out what this actually is
// fx_quizmo_stage invokes gEffectTable[78]'s entryPoint function
// fx_cold_breath invokes gEffectTable[111]'s entryPoint function

View File

@ -69,7 +69,7 @@ FX_MAIN(shockwave_main);
void music_note_main(s32, f32, f32, f32);
FX_MAIN(smoke_burst_main);
FX_MAIN(sweat_main);
FX_MAIN(sleep_bubble_main);
void sleep_bubble_main(s32, f32, f32, f32, f32, f32, EffectInstance**);
FX_MAIN(windy_leaves_main);
FX_MAIN(falling_leaves_main);
FX_MAIN(stars_spread_main);
@ -86,11 +86,11 @@ FX_MAIN(fire_breath_main);
FX_MAIN(shimmer_burst_main);
FX_MAIN(energy_shockwave_main);
FX_MAIN(shimmer_wave_main);
FX_MAIN(aura_main);
void aura_main(s32, f32, f32, f32, f32, EffectInstance**);
FX_MAIN(fx_3C_main);
FX_MAIN(fx_3D_main);
FX_MAIN(blast_main);
FX_MAIN(fire_flower_main);
void blast_main(s32, f32, f32, f32, f32, s32);
EffectInstance* fire_flower_main(s32, f32, f32, f32, s32);
FX_MAIN(recover_main);
FX_MAIN(disable_x_main);
FX_MAIN(bombette_breaking_main);

View File

@ -1,11 +1,156 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_090023E0[];
extern Gfx D_09002440[];
extern Gfx D_090023F8[];
extern Gfx D_09002458[];
extern Gfx D_090023B0[];
extern Gfx D_09002410[];
extern Gfx D_090023C8[];
extern Gfx D_09002428[];
extern Gfx D_09002000[];
extern Gfx D_090020E8[];
extern Gfx D_090021D0[];
Gfx* D_E0076E90[] = { D_090023E0, D_090023E0, D_09002440, D_09002440 };
Gfx* D_E0076EA0[] = { D_090023F8, D_090023F8, D_09002458, D_09002458 };
Gfx* D_E0076EB0[] = { D_090023B0, D_090023B0, D_09002410, D_09002410 };
Gfx* D_E0076EC0[] = { D_090023C8, D_090023C8, D_09002428, D_09002428 };
Gfx* D_E0076ED0[] = { D_09002000, D_09002000, D_090020E8, D_090021D0 };
void aura_appendGfx(void* effect);
void aura_init(EffectInstance* effect);
void aura_update(EffectInstance* effect);
void aura_render(EffectInstance* effect);
INCLUDE_ASM(s32, "effects/aura", aura_main);
void aura_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, EffectInstance** outEffect) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
AuraFXData* part;
s32 numParts = 1;
f32 zero;
void aura_init(void) {
bp.init = aura_init;
bp.update = aura_update;
bp.renderWorld = aura_render;
bp.unk_00 = 0;
bp.unk_14 = 0;
bp.effectID = EFFECT_AURA;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data != NULL);
part->unk_64.s = 0;
zero = part->unk_64.f;
part->unk_40 = zero;
part->unk_34 = zero;
part->unk_58 = zero;
part->unk_4C = zero;
part->unk_2C = 100;
part->unk_00 = arg0;
part->unk_30 = 0;
part->unk_28 = 0;
part->pos.x = arg1;
part->pos.y = arg2;
part->pos.z = arg3;
switch (arg0) {
case 0:
part->unk_68 = 75;
part->unk_69 = 75;
part->unk_6A = 75;
part->unk_6B = 255;
part->unk_6C = 247;
part->unk_6D = 155;
part->unk_6E = 0;
part->unk_24 = arg4;
part->unk_20 = 0.6 * arg4;
part->unk_1C = 2.0 * arg4;
part->unk_38 = -0.9f;
part->unk_44 = 0.04f;
part->unk_3C = 0.04f;
part->unk_48 = 0.9f;
part->unk_50 = -0.9f;
part->unk_5C = 0.04f;
part->unk_54 = 0.04f;
part->unk_60 = 0.9f;
break;
case 1:
part->unk_68 = 75;
part->unk_69 = 75;
part->unk_6A = 75;
part->unk_6B = 255;
part->unk_6C = 0;
part->unk_6D = 0;
part->unk_6E = 0;
part->unk_1C = arg4;
part->unk_20 = arg4;
part->unk_24 = arg4;
part->unk_38 = zero;
part->unk_50 = zero;
part->unk_44 = 0.04f;
part->unk_3C = 0.04f;
part->unk_48 = 0.9f;
part->unk_5C = 0.04f;
part->unk_54 = 0.04f;
part->unk_60 = 0.9f;
break;
case 2:
part->unk_68 = 25;
part->unk_69 = 121;
part->unk_6A = 142;
part->unk_6B = 34;
part->unk_6D = 255;
part->unk_6C = 0;
part->unk_6E = 81;
part->unk_1C = arg4;
part->unk_20 = arg4;
part->unk_24 = arg4;
part->unk_38 = zero;
part->unk_50 = zero;
part->unk_44 = 0.04f;
part->unk_3C = 0.2f;
part->unk_48 = 1.3f;
part->unk_5C = 0.04f;
part->unk_54 = 0.16f;
part->unk_60 = 1.04f;
break;
default:
part->unk_68 = 179;
part->unk_69 = 169;
part->unk_6A = 85;
part->unk_6B = 34;
part->unk_6D = 255;
part->unk_6C = 0;
part->unk_6E = 63;
part->unk_1C = arg4;
part->unk_20 = arg4;
part->unk_24 = arg4;
part->unk_38 = 0;
part->unk_50 = 0;
part->unk_44 = 0.04f;
part->unk_3C = 0.1f;
part->unk_48 = 1.7f;
part->unk_5C = 0.04f;
part->unk_54 = 0.08f;
part->unk_60 = 1.36f;
break;
}
part->unk_10 = part->pos.x;
part->unk_14 = part->pos.y;
part->unk_18 = part->pos.z;
*outEffect = effect;
}
void aura_init(EffectInstance* effect) {
}
INCLUDE_ASM(s32, "effects/aura", aura_update);

View File

@ -2,13 +2,64 @@
#include "effects_internal.h"
void blast_appendGfx(void* effect);
void blast_init(EffectInstance* effect);
void blast_update(EffectInstance* effect);
void blast_render(EffectInstance* effect);
INCLUDE_ASM(s32, "effects/blast", blast_main);
void blast_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
BlastFXData* part;
s32 numParts = 1;
s32 randInt;
void blast_init(void) {
bp.init = blast_init;
bp.update = blast_update;
bp.renderWorld = blast_render;
bp.unk_00 = 0;
bp.unk_14 = 0;
bp.effectID = EFFECT_BLAST;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data != NULL);
shim_mem_clear(part, numParts * sizeof(*part));
part->timeLeft = arg5;
part->unk_18 = 0;
part->unk_1C = arg5;
part->unk_20 = 0;
part->unk_00 = arg0;
part->pos.x = arg1;
part->pos.y = arg2;
part->pos.z = arg3;
part->unk_10 = arg4;
part->unk_24 = 0;
part->unk_28 = arg0 == 0 ? 0 : 40.0;
}
INCLUDE_ASM(s32, "effects/blast", blast_update);
void blast_init(EffectInstance* effect) {
}
void blast_update(EffectInstance* effect) {
BlastFXData* part = effect->data;
part->unk_20 = part->unk_18++ * 9.0f / part->unk_1C;
part->timeLeft--;
if (part->timeLeft < 0) {
shim_remove_effect(effect);
return;
}
part->unk_24 += part->unk_28;
}
void blast_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -1,17 +1,41 @@
#include "common.h"
#include "model.h"
#include "effects_internal.h"
void bombette_breaking_appendGfx(void* effect);
void bombette_breaking_init(EffectInstance* effect);
void bombette_breaking_update(EffectInstance* effect);
void bombette_breaking_render(EffectInstance* effect);
INCLUDE_ASM(s32, "effects/bombette_breaking", func_E0084000);
extern Gfx D_090018C0[];
extern Gfx D_09001D00[];
extern Gfx D_09001CC8[];
extern Gfx D_09001C80[];
extern Gfx D_090017D0[];
INCLUDE_ASM(s32, "effects/bombette_breaking", func_E008403C);
Gfx* D_E0084E10[] = { D_090018C0, D_090018C0, D_090018C0 };
Gfx* D_E0084E1C[] = { D_09001D00, D_09001CC8, D_09001C80 };
Gfx* D_E0084E28[] = { D_090017D0, D_090017D0, D_090017D0 };
INCLUDE_ASM(s32, "effects/bombette_breaking", func_E0084060);
void (*D_E0084E34)(u16, f32*, f32*, f32*, f32*, f32*, f32*) = get_model_center_and_size;
Model* (*D_E0084E38)(s32) = get_model_from_list_index;
s32 (*D_E0084E3C)(s32) = get_model_list_index_from_tree_index;
void func_E0084000(s32 modelID, f32* centerX, f32* centerY, f32* centerZ, f32* sizeX, f32* sizeY, f32* sizeZ) {
D_E0084E34(modelID, centerX, centerY, centerZ, sizeX, sizeY, sizeZ);
}
Model* func_E008403C(s32 listIndex) {
return D_E0084E38(listIndex);
}
s32 func_E0084060(s32 listIndex) {
return D_E0084E3C(listIndex);
}
INCLUDE_ASM(s32, "effects/bombette_breaking", bombette_breaking_main);
void bombette_breaking_init(void) {
void bombette_breaking_init(EffectInstance* effect) {
}
INCLUDE_ASM(s32, "effects/bombette_breaking", bombette_breaking_update);

View File

@ -2,10 +2,72 @@
#include "effects_internal.h"
void fire_flower_appendGfx(void* effect);
void fire_flower_init(EffectInstance* effect);
void fire_flower_update(EffectInstance* effect);
void fire_flower_render(EffectInstance* effect);
INCLUDE_ASM(s32, "effects/fire_flower", fire_flower_main);
s32 D_E007EC30[] = { 0x323C4650, 0x5A646964 };
void fire_flower_init(void) {
EffectInstance* fire_flower_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
FireFlowerFXData* part;
Vec3i* partData;
s32 numParts = 31;
s32 i;
bp.unk_00 = 0;
bp.init = fire_flower_init;
bp.update = fire_flower_update;
bp.renderWorld = fire_flower_render;
bp.unk_14 = NULL;
bp.effectID = EFFECT_FIRE_FLOWER;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
part = shim_general_heap_malloc(numParts * sizeof(*part));
effect->data = part;
ASSERT(effect->data != NULL);
part->unk_04 = 0;
part->unk_00 = arg0;
part->pos.x = arg1;
part->pos.y = arg2;
part->pos.z = arg3;
part->unk_40.x = arg4;
part->unk_40.y = 0;
part->unk_34 = 0;
part->unk_38 = 0;
part->unk_28 = 0;
part->unk_3C = 255;
part->unk_30 = 0.5f;
part->unk_2C = -10.0f;
part++;
for (i = 1; i < numParts; i++, part++) {
partData = &part->unk_40;
part->unk_00 = 1;
part->pos.x = 0;
part->pos.y = 0;
part->pos.z = 0;
part->unk_14 = 8.0f;
part->unk_18 = 0;
part->unk_1C = func_E0200000(20) - 8;
part->unk_20 = (func_E0200000(10) - 5) * 0.05;
part->unk_24 = func_E0200000(80) + 5;
part->unk_3C = 255;
partData->z = i - 1;
partData->x = 10;
}
return effect;
}
void fire_flower_init(EffectInstance* effect) {
}
INCLUDE_ASM(s32, "effects/fire_flower", fire_flower_update);

View File

@ -2,13 +2,105 @@
#include "effects_internal.h"
void sleep_bubble_appendGfx(void* effect);
void sleep_bubble_init(EffectInstance* effect);
void sleep_bubble_update(EffectInstance* effect);
void sleep_bubble_render(EffectInstance* effect);
INCLUDE_ASM(s32, "effects/sleep_bubble", sleep_bubble_main);
f32 D_E00529E0[] = { 4.4f, 3.2f, 5.4f, 2.7f, 6.0f, 4.9f, 5.2f, 3.1f, 2.4f, 4.5f, 2.6f, 5.7f, 3.8f, 2.9f, 3.1f, 5.2f, 2.3f, 5.4f, 3.5f, 2.6f, 2.4f, 3.1f, 5.2f, 4.9f, 6.0f, 2.7f, 5.4f, 3.2f, 4.4f, 2.6f, 3.5f, 5.4f, 2.3f, 5.2f, 3.1f, 2.9f, 3.8f, 5.7f, 2.6f, 4.5f };
void sleep_bubble_init(void) {
void sleep_bubble_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, EffectInstance** arg6) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
SleepBubbleFXData* part;
s32 numParts = 1;
bp.unk_00 = 0;
bp.init = sleep_bubble_init;
bp.update = sleep_bubble_update;
bp.renderWorld = sleep_bubble_render;
bp.unk_14 = 0;
bp.effectID = EFFECT_SLEEP_BUBBLE;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data != NULL);
part->unk_00 = arg0;
part->pos.x = arg1;
part->pos.y = arg2;
part->pos.z = arg3;
part->unk_10 = arg5;
part->timeLeft = 100;
part->unk_14 = arg4;
part->unk_18 = 0;
part->unk_20 = 0;
*arg6 = effect;
}
INCLUDE_ASM(s32, "effects/sleep_bubble", sleep_bubble_update);
void sleep_bubble_init(EffectInstance* effect) {
}
// seems extremely fake
void sleep_bubble_update(EffectInstance* effect) {
SleepBubbleFXData* part = effect->data;
f32* xPtr = &part->points->x;
f32* yPtr;
s32 xAngle, yAngle, i, timeLeft, unk_20;
f32 angle, temp1, temp2;
if (part->timeLeft < 100) {
part->timeLeft--;
}
part->unk_20++;
if (part->unk_20 > 324000) {
part->unk_20 = 256;
}
if (part->timeLeft < 0) {
shim_remove_effect(effect);
return;
}
unk_20 = part->unk_20;
timeLeft = part->timeLeft;
temp1 = part->unk_18 + (part->unk_14 - part->unk_18) * 0.1f;
part->unk_18 = temp1;
temp2 = temp1 + (temp1 * shim_sin_deg(unk_20 * 3)) * 0.1;
i = 0;
yPtr = &part->points->y;
xAngle = yAngle = i;
do {
angle = i * 360.0f / 21.0f + 17.0f;
*xPtr = temp2 * shim_sin_deg(angle);
*yPtr = -temp2 * shim_cos_deg(angle);
*xPtr += shim_sin_deg((f32)unk_20 * (shim_sin_deg(xAngle) * 0.1 + 2.0) + (i + 5.0f) * 30.0f) * 1.5;
*yPtr += shim_cos_deg((f32)unk_20 * (shim_cos_deg(yAngle) * 0.1 + 2.0) + (i + 5.0f) * 50.0f) * 1.5;
xAngle += 53;
yAngle += 36;
xPtr += 2;
yPtr += 2;
i++;
} while (i < ARRAY_COUNT(part->points));
part->unk_C4 = 0.0f;
if (timeLeft < 100) {
part->unk_C8 += 1.0f;
} else {
part->unk_C8 = temp2 * 1.2;
}
}
void sleep_bubble_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -1,233 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel aura_main
/* 377070 E0076000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 377074 E0076004 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 377078 E0076008 4485B000 */ mtc1 $a1, $f22
/* 37707C E007600C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 377080 E0076010 4486C000 */ mtc1 $a2, $f24
/* 377084 E0076014 AFB00028 */ sw $s0, 0x28($sp)
/* 377088 E0076018 0080802D */ daddu $s0, $a0, $zero
/* 37708C E007601C F7BA0050 */ sdc1 $f26, 0x50($sp)
/* 377090 E0076020 4487D000 */ mtc1 $a3, $f26
/* 377094 E0076024 27A40010 */ addiu $a0, $sp, 0x10
/* 377098 E0076028 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 37709C E007602C C7B40068 */ lwc1 $f20, 0x68($sp)
/* 3770A0 E0076030 3C02E007 */ lui $v0, %hi(aura_init)
/* 3770A4 E0076034 24426370 */ addiu $v0, $v0, %lo(aura_init)
/* 3770A8 E0076038 AFA20018 */ sw $v0, 0x18($sp)
/* 3770AC E007603C 3C02E007 */ lui $v0, %hi(aura_update)
/* 3770B0 E0076040 24426378 */ addiu $v0, $v0, %lo(aura_update)
/* 3770B4 E0076044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3770B8 E0076048 3C02E007 */ lui $v0, %hi(aura_render)
/* 3770BC E007604C 24426808 */ addiu $v0, $v0, %lo(aura_render)
/* 3770C0 E0076050 AFA20020 */ sw $v0, 0x20($sp)
/* 3770C4 E0076054 2402003B */ addiu $v0, $zero, 0x3b
/* 3770C8 E0076058 AFBF0030 */ sw $ra, 0x30($sp)
/* 3770CC E007605C AFB1002C */ sw $s1, 0x2c($sp)
/* 3770D0 E0076060 AFA00010 */ sw $zero, 0x10($sp)
/* 3770D4 E0076064 AFA00024 */ sw $zero, 0x24($sp)
/* 3770D8 E0076068 0C080124 */ jal shim_create_effect_instance
/* 3770DC E007606C AFA20014 */ sw $v0, 0x14($sp)
/* 3770E0 E0076070 24040070 */ addiu $a0, $zero, 0x70
/* 3770E4 E0076074 24030001 */ addiu $v1, $zero, 1
/* 3770E8 E0076078 0040882D */ daddu $s1, $v0, $zero
/* 3770EC E007607C 0C08012C */ jal shim_general_heap_malloc
/* 3770F0 E0076080 AE230008 */ sw $v1, 8($s1)
/* 3770F4 E0076084 0040182D */ daddu $v1, $v0, $zero
/* 3770F8 E0076088 14600003 */ bnez $v1, .LE0076098
/* 3770FC E007608C AE22000C */ sw $v0, 0xc($s1)
.LE0076090:
/* 377100 E0076090 0801D824 */ j .LE0076090
/* 377104 E0076094 00000000 */ nop
.LE0076098:
/* 377108 E0076098 AC600064 */ sw $zero, 0x64($v1)
/* 37710C E007609C C46A0064 */ lwc1 $f10, 0x64($v1)
/* 377110 E00760A0 24020064 */ addiu $v0, $zero, 0x64
/* 377114 E00760A4 AC62002C */ sw $v0, 0x2c($v1)
/* 377118 E00760A8 24020001 */ addiu $v0, $zero, 1
/* 37711C E00760AC AC700000 */ sw $s0, ($v1)
/* 377120 E00760B0 AC600030 */ sw $zero, 0x30($v1)
/* 377124 E00760B4 AC600028 */ sw $zero, 0x28($v1)
/* 377128 E00760B8 E4760004 */ swc1 $f22, 4($v1)
/* 37712C E00760BC E4780008 */ swc1 $f24, 8($v1)
/* 377130 E00760C0 E47A000C */ swc1 $f26, 0xc($v1)
/* 377134 E00760C4 E46A0040 */ swc1 $f10, 0x40($v1)
/* 377138 E00760C8 E46A0034 */ swc1 $f10, 0x34($v1)
/* 37713C E00760CC E46A0058 */ swc1 $f10, 0x58($v1)
/* 377140 E00760D0 12020033 */ beq $s0, $v0, .LE00761A0
/* 377144 E00760D4 E46A004C */ swc1 $f10, 0x4c($v1)
/* 377148 E00760D8 2A020002 */ slti $v0, $s0, 2
/* 37714C E00760DC 10400005 */ beqz $v0, .LE00760F4
/* 377150 E00760E0 24020002 */ addiu $v0, $zero, 2
/* 377154 E00760E4 12000007 */ beqz $s0, .LE0076104
/* 377158 E00760E8 2402004B */ addiu $v0, $zero, 0x4b
/* 37715C E00760EC 0801D8A4 */ j .LE0076290
/* 377160 E00760F0 00000000 */ nop
.LE00760F4:
/* 377164 E00760F4 12020045 */ beq $s0, $v0, .LE007620C
/* 377168 E00760F8 24020019 */ addiu $v0, $zero, 0x19
/* 37716C E00760FC 0801D8A4 */ j .LE0076290
/* 377170 E0076100 00000000 */ nop
.LE0076104:
/* 377174 E0076104 A0620068 */ sb $v0, 0x68($v1)
/* 377178 E0076108 A0620069 */ sb $v0, 0x69($v1)
/* 37717C E007610C A062006A */ sb $v0, 0x6a($v1)
/* 377180 E0076110 240200FF */ addiu $v0, $zero, 0xff
/* 377184 E0076114 4600A021 */ cvt.d.s $f0, $f20
/* 377188 E0076118 3C01E007 */ lui $at, %hi(D_E0076EE0)
/* 37718C E007611C D4226EE0 */ ldc1 $f2, %lo(D_E0076EE0)($at)
/* 377190 E0076120 3C01BF66 */ lui $at, 0xbf66
/* 377194 E0076124 34216666 */ ori $at, $at, 0x6666
/* 377198 E0076128 44813000 */ mtc1 $at, $f6
/* 37719C E007612C 3C013D23 */ lui $at, 0x3d23
/* 3771A0 E0076130 3421D70A */ ori $at, $at, 0xd70a
/* 3771A4 E0076134 44812000 */ mtc1 $at, $f4
/* 3771A8 E0076138 3C013F66 */ lui $at, 0x3f66
/* 3771AC E007613C 34216666 */ ori $at, $at, 0x6666
/* 3771B0 E0076140 44814000 */ mtc1 $at, $f8
/* 3771B4 E0076144 46220082 */ mul.d $f2, $f0, $f2
/* 3771B8 E0076148 00000000 */ nop
/* 3771BC E007614C A062006B */ sb $v0, 0x6b($v1)
/* 3771C0 E0076150 240200F7 */ addiu $v0, $zero, 0xf7
/* 3771C4 E0076154 A062006C */ sb $v0, 0x6c($v1)
/* 3771C8 E0076158 2402009B */ addiu $v0, $zero, 0x9b
/* 3771CC E007615C A062006D */ sb $v0, 0x6d($v1)
/* 3771D0 E0076160 A060006E */ sb $zero, 0x6e($v1)
/* 3771D4 E0076164 E4740024 */ swc1 $f20, 0x24($v1)
/* 3771D8 E0076168 46200000 */ add.d $f0, $f0, $f0
/* 3771DC E007616C E4660038 */ swc1 $f6, 0x38($v1)
/* 3771E0 E0076170 E4640044 */ swc1 $f4, 0x44($v1)
/* 3771E4 E0076174 E464003C */ swc1 $f4, 0x3c($v1)
/* 3771E8 E0076178 E4680048 */ swc1 $f8, 0x48($v1)
/* 3771EC E007617C E4660050 */ swc1 $f6, 0x50($v1)
/* 3771F0 E0076180 E464005C */ swc1 $f4, 0x5c($v1)
/* 3771F4 E0076184 E4640054 */ swc1 $f4, 0x54($v1)
/* 3771F8 E0076188 E4680060 */ swc1 $f8, 0x60($v1)
/* 3771FC E007618C 46200020 */ cvt.s.d $f0, $f0
/* 377200 E0076190 E460001C */ swc1 $f0, 0x1c($v1)
/* 377204 E0076194 462010A0 */ cvt.s.d $f2, $f2
/* 377208 E0076198 0801D8CB */ j .LE007632C
/* 37720C E007619C E4620020 */ swc1 $f2, 0x20($v1)
.LE00761A0:
/* 377210 E00761A0 3C013D23 */ lui $at, 0x3d23
/* 377214 E00761A4 3421D70A */ ori $at, $at, 0xd70a
/* 377218 E00761A8 44810000 */ mtc1 $at, $f0
/* 37721C E00761AC 3C013F66 */ lui $at, 0x3f66
/* 377220 E00761B0 34216666 */ ori $at, $at, 0x6666
/* 377224 E00761B4 44811000 */ mtc1 $at, $f2
/* 377228 E00761B8 2402004B */ addiu $v0, $zero, 0x4b
/* 37722C E00761BC A0620068 */ sb $v0, 0x68($v1)
/* 377230 E00761C0 A0620069 */ sb $v0, 0x69($v1)
/* 377234 E00761C4 A062006A */ sb $v0, 0x6a($v1)
/* 377238 E00761C8 240200FF */ addiu $v0, $zero, 0xff
/* 37723C E00761CC A062006B */ sb $v0, 0x6b($v1)
/* 377240 E00761D0 A060006C */ sb $zero, 0x6c($v1)
/* 377244 E00761D4 A060006D */ sb $zero, 0x6d($v1)
/* 377248 E00761D8 A060006E */ sb $zero, 0x6e($v1)
/* 37724C E00761DC E474001C */ swc1 $f20, 0x1c($v1)
/* 377250 E00761E0 E4740020 */ swc1 $f20, 0x20($v1)
/* 377254 E00761E4 E4740024 */ swc1 $f20, 0x24($v1)
/* 377258 E00761E8 E46A0038 */ swc1 $f10, 0x38($v1)
/* 37725C E00761EC E46A0050 */ swc1 $f10, 0x50($v1)
/* 377260 E00761F0 E4600044 */ swc1 $f0, 0x44($v1)
/* 377264 E00761F4 E460003C */ swc1 $f0, 0x3c($v1)
/* 377268 E00761F8 E4620048 */ swc1 $f2, 0x48($v1)
/* 37726C E00761FC E460005C */ swc1 $f0, 0x5c($v1)
/* 377270 E0076200 E4600054 */ swc1 $f0, 0x54($v1)
/* 377274 E0076204 0801D8CB */ j .LE007632C
/* 377278 E0076208 E4620060 */ swc1 $f2, 0x60($v1)
.LE007620C:
/* 37727C E007620C 3C013D23 */ lui $at, 0x3d23
/* 377280 E0076210 3421D70A */ ori $at, $at, 0xd70a
/* 377284 E0076214 44810000 */ mtc1 $at, $f0
/* 377288 E0076218 3C013E4C */ lui $at, 0x3e4c
/* 37728C E007621C 3421CCCD */ ori $at, $at, 0xcccd
/* 377290 E0076220 44811000 */ mtc1 $at, $f2
/* 377294 E0076224 3C013FA6 */ lui $at, 0x3fa6
/* 377298 E0076228 34216666 */ ori $at, $at, 0x6666
/* 37729C E007622C 44812000 */ mtc1 $at, $f4
/* 3772A0 E0076230 3C013E23 */ lui $at, 0x3e23
/* 3772A4 E0076234 3421D70A */ ori $at, $at, 0xd70a
/* 3772A8 E0076238 44813000 */ mtc1 $at, $f6
/* 3772AC E007623C 3C013F85 */ lui $at, 0x3f85
/* 3772B0 E0076240 34211EB8 */ ori $at, $at, 0x1eb8
/* 3772B4 E0076244 44814000 */ mtc1 $at, $f8
/* 3772B8 E0076248 A0620068 */ sb $v0, 0x68($v1)
/* 3772BC E007624C 24020079 */ addiu $v0, $zero, 0x79
/* 3772C0 E0076250 A0620069 */ sb $v0, 0x69($v1)
/* 3772C4 E0076254 2402008E */ addiu $v0, $zero, 0x8e
/* 3772C8 E0076258 A062006A */ sb $v0, 0x6a($v1)
/* 3772CC E007625C 24020022 */ addiu $v0, $zero, 0x22
/* 3772D0 E0076260 A062006B */ sb $v0, 0x6b($v1)
/* 3772D4 E0076264 240200FF */ addiu $v0, $zero, 0xff
/* 3772D8 E0076268 A062006D */ sb $v0, 0x6d($v1)
/* 3772DC E007626C 24020051 */ addiu $v0, $zero, 0x51
/* 3772E0 E0076270 A060006C */ sb $zero, 0x6c($v1)
/* 3772E4 E0076274 A062006E */ sb $v0, 0x6e($v1)
/* 3772E8 E0076278 E474001C */ swc1 $f20, 0x1c($v1)
/* 3772EC E007627C E4740020 */ swc1 $f20, 0x20($v1)
/* 3772F0 E0076280 E4740024 */ swc1 $f20, 0x24($v1)
/* 3772F4 E0076284 E46A0038 */ swc1 $f10, 0x38($v1)
/* 3772F8 E0076288 0801D8C5 */ j .LE0076314
/* 3772FC E007628C E46A0050 */ swc1 $f10, 0x50($v1)
.LE0076290:
/* 377300 E0076290 3C013D23 */ lui $at, 0x3d23
/* 377304 E0076294 3421D70A */ ori $at, $at, 0xd70a
/* 377308 E0076298 44810000 */ mtc1 $at, $f0
/* 37730C E007629C 3C013DCC */ lui $at, 0x3dcc
/* 377310 E00762A0 3421CCCD */ ori $at, $at, 0xcccd
/* 377314 E00762A4 44811000 */ mtc1 $at, $f2
/* 377318 E00762A8 3C013FD9 */ lui $at, 0x3fd9
/* 37731C E00762AC 3421999A */ ori $at, $at, 0x999a
/* 377320 E00762B0 44812000 */ mtc1 $at, $f4
/* 377324 E00762B4 3C013DA3 */ lui $at, 0x3da3
/* 377328 E00762B8 3421D70A */ ori $at, $at, 0xd70a
/* 37732C E00762BC 44813000 */ mtc1 $at, $f6
/* 377330 E00762C0 3C013FAE */ lui $at, 0x3fae
/* 377334 E00762C4 3421147B */ ori $at, $at, 0x147b
/* 377338 E00762C8 44814000 */ mtc1 $at, $f8
/* 37733C E00762CC 240200B3 */ addiu $v0, $zero, 0xb3
/* 377340 E00762D0 A0620068 */ sb $v0, 0x68($v1)
/* 377344 E00762D4 240200A9 */ addiu $v0, $zero, 0xa9
/* 377348 E00762D8 A0620069 */ sb $v0, 0x69($v1)
/* 37734C E00762DC 24020055 */ addiu $v0, $zero, 0x55
/* 377350 E00762E0 A062006A */ sb $v0, 0x6a($v1)
/* 377354 E00762E4 24020022 */ addiu $v0, $zero, 0x22
/* 377358 E00762E8 A062006B */ sb $v0, 0x6b($v1)
/* 37735C E00762EC 240200FF */ addiu $v0, $zero, 0xff
/* 377360 E00762F0 A062006D */ sb $v0, 0x6d($v1)
/* 377364 E00762F4 2402003F */ addiu $v0, $zero, 0x3f
/* 377368 E00762F8 A060006C */ sb $zero, 0x6c($v1)
/* 37736C E00762FC A062006E */ sb $v0, 0x6e($v1)
/* 377370 E0076300 E474001C */ swc1 $f20, 0x1c($v1)
/* 377374 E0076304 E4740020 */ swc1 $f20, 0x20($v1)
/* 377378 E0076308 E4740024 */ swc1 $f20, 0x24($v1)
/* 37737C E007630C AC600038 */ sw $zero, 0x38($v1)
/* 377380 E0076310 AC600050 */ sw $zero, 0x50($v1)
.LE0076314:
/* 377384 E0076314 E4600044 */ swc1 $f0, 0x44($v1)
/* 377388 E0076318 E462003C */ swc1 $f2, 0x3c($v1)
/* 37738C E007631C E4640048 */ swc1 $f4, 0x48($v1)
/* 377390 E0076320 E460005C */ swc1 $f0, 0x5c($v1)
/* 377394 E0076324 E4660054 */ swc1 $f6, 0x54($v1)
/* 377398 E0076328 E4680060 */ swc1 $f8, 0x60($v1)
.LE007632C:
/* 37739C E007632C C4600004 */ lwc1 $f0, 4($v1)
/* 3773A0 E0076330 C4620008 */ lwc1 $f2, 8($v1)
/* 3773A4 E0076334 C464000C */ lwc1 $f4, 0xc($v1)
/* 3773A8 E0076338 E4600010 */ swc1 $f0, 0x10($v1)
/* 3773AC E007633C E4620014 */ swc1 $f2, 0x14($v1)
/* 3773B0 E0076340 E4640018 */ swc1 $f4, 0x18($v1)
/* 3773B4 E0076344 8FA2006C */ lw $v0, 0x6c($sp)
/* 3773B8 E0076348 AC510000 */ sw $s1, ($v0)
/* 3773BC E007634C 8FBF0030 */ lw $ra, 0x30($sp)
/* 3773C0 E0076350 8FB1002C */ lw $s1, 0x2c($sp)
/* 3773C4 E0076354 8FB00028 */ lw $s0, 0x28($sp)
/* 3773C8 E0076358 D7BA0050 */ ldc1 $f26, 0x50($sp)
/* 3773CC E007635C D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3773D0 E0076360 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3773D4 E0076364 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3773D8 E0076368 03E00008 */ jr $ra
/* 3773DC E007636C 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,6 +1,22 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0076EE8
.double 0.02
dlabel D_E0076EF0
.double 0.04
dlabel D_E0076EF8
.double 0.02
dlabel D_E0076F00
.double 0.1
.section .text
glabel aura_update
/* 3773E8 E0076378 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3773EC E007637C AFBF0010 */ sw $ra, 0x10($sp)

View File

@ -1,82 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel blast_main
/* 37D490 E007C000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 37D494 E007C004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 37D498 E007C008 4485A000 */ mtc1 $a1, $f20
/* 37D49C E007C00C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 37D4A0 E007C010 4486B000 */ mtc1 $a2, $f22
/* 37D4A4 E007C014 AFB30034 */ sw $s3, 0x34($sp)
/* 37D4A8 E007C018 0080982D */ daddu $s3, $a0, $zero
/* 37D4AC E007C01C F7B80050 */ sdc1 $f24, 0x50($sp)
/* 37D4B0 E007C020 4487C000 */ mtc1 $a3, $f24
/* 37D4B4 E007C024 27A40010 */ addiu $a0, $sp, 0x10
/* 37D4B8 E007C028 AFB20030 */ sw $s2, 0x30($sp)
/* 37D4BC E007C02C 8FB2006C */ lw $s2, 0x6c($sp)
/* 37D4C0 E007C030 3C02E008 */ lui $v0, %hi(blast_init)
/* 37D4C4 E007C034 2442C128 */ addiu $v0, $v0, %lo(blast_init)
/* 37D4C8 E007C038 AFA20018 */ sw $v0, 0x18($sp)
/* 37D4CC E007C03C 3C02E008 */ lui $v0, %hi(blast_update)
/* 37D4D0 E007C040 2442C130 */ addiu $v0, $v0, %lo(blast_update)
/* 37D4D4 E007C044 AFA2001C */ sw $v0, 0x1c($sp)
/* 37D4D8 E007C048 3C02E008 */ lui $v0, %hi(blast_render)
/* 37D4DC E007C04C 2442C1B0 */ addiu $v0, $v0, %lo(blast_render)
/* 37D4E0 E007C050 AFA20020 */ sw $v0, 0x20($sp)
/* 37D4E4 E007C054 2402003E */ addiu $v0, $zero, 0x3e
/* 37D4E8 E007C058 AFBF0038 */ sw $ra, 0x38($sp)
/* 37D4EC E007C05C AFB1002C */ sw $s1, 0x2c($sp)
/* 37D4F0 E007C060 AFB00028 */ sw $s0, 0x28($sp)
/* 37D4F4 E007C064 AFA00010 */ sw $zero, 0x10($sp)
/* 37D4F8 E007C068 AFA00024 */ sw $zero, 0x24($sp)
/* 37D4FC E007C06C 0C080124 */ jal shim_create_effect_instance
/* 37D500 E007C070 AFA20014 */ sw $v0, 0x14($sp)
/* 37D504 E007C074 2404002C */ addiu $a0, $zero, 0x2c
/* 37D508 E007C078 24110001 */ addiu $s1, $zero, 1
/* 37D50C E007C07C 0040802D */ daddu $s0, $v0, $zero
/* 37D510 E007C080 0C08012C */ jal shim_general_heap_malloc
/* 37D514 E007C084 AE110008 */ sw $s1, 8($s0)
/* 37D518 E007C088 AE02000C */ sw $v0, 0xc($s0)
/* 37D51C E007C08C 0040802D */ daddu $s0, $v0, $zero
/* 37D520 E007C090 16000003 */ bnez $s0, .LE007C0A0
/* 37D524 E007C094 0200202D */ daddu $a0, $s0, $zero
.LE007C098:
/* 37D528 E007C098 0801F026 */ j .LE007C098
/* 37D52C E007C09C 00000000 */ nop
.LE007C0A0:
/* 37D530 E007C0A0 00112840 */ sll $a1, $s1, 1
/* 37D534 E007C0A4 00B12821 */ addu $a1, $a1, $s1
/* 37D538 E007C0A8 00052880 */ sll $a1, $a1, 2
/* 37D53C E007C0AC 00B12823 */ subu $a1, $a1, $s1
/* 37D540 E007C0B0 0C080130 */ jal shim_mem_clear
/* 37D544 E007C0B4 00052880 */ sll $a1, $a1, 2
/* 37D548 E007C0B8 AE120014 */ sw $s2, 0x14($s0)
/* 37D54C E007C0BC AE000018 */ sw $zero, 0x18($s0)
/* 37D550 E007C0C0 AE12001C */ sw $s2, 0x1c($s0)
/* 37D554 E007C0C4 AE000020 */ sw $zero, 0x20($s0)
/* 37D558 E007C0C8 A6130000 */ sh $s3, ($s0)
/* 37D55C E007C0CC E6140004 */ swc1 $f20, 4($s0)
/* 37D560 E007C0D0 E6160008 */ swc1 $f22, 8($s0)
/* 37D564 E007C0D4 E618000C */ swc1 $f24, 0xc($s0)
/* 37D568 E007C0D8 C7A00068 */ lwc1 $f0, 0x68($sp)
/* 37D56C E007C0DC AE000024 */ sw $zero, 0x24($s0)
/* 37D570 E007C0E0 16600003 */ bnez $s3, .LE007C0F0
/* 37D574 E007C0E4 E6000010 */ swc1 $f0, 0x10($s0)
/* 37D578 E007C0E8 0801F040 */ j .LE007C100
/* 37D57C E007C0EC AE000028 */ sw $zero, 0x28($s0)
.LE007C0F0:
/* 37D580 E007C0F0 3C014220 */ lui $at, 0x4220
/* 37D584 E007C0F4 44810000 */ mtc1 $at, $f0
/* 37D588 E007C0F8 00000000 */ nop
/* 37D58C E007C0FC E6000028 */ swc1 $f0, 0x28($s0)
.LE007C100:
/* 37D590 E007C100 8FBF0038 */ lw $ra, 0x38($sp)
/* 37D594 E007C104 8FB30034 */ lw $s3, 0x34($sp)
/* 37D598 E007C108 8FB20030 */ lw $s2, 0x30($sp)
/* 37D59C E007C10C 8FB1002C */ lw $s1, 0x2c($sp)
/* 37D5A0 E007C110 8FB00028 */ lw $s0, 0x28($sp)
/* 37D5A4 E007C114 D7B80050 */ ldc1 $f24, 0x50($sp)
/* 37D5A8 E007C118 D7B60048 */ ldc1 $f22, 0x48($sp)
/* 37D5AC E007C11C D7B40040 */ ldc1 $f20, 0x40($sp)
/* 37D5B0 E007C120 03E00008 */ jr $ra
/* 37D5B4 E007C124 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,38 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel blast_update
/* 37D5C0 E007C130 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 37D5C4 E007C134 AFBF0010 */ sw $ra, 0x10($sp)
/* 37D5C8 E007C138 8C85000C */ lw $a1, 0xc($a0)
/* 37D5CC E007C13C 3C014110 */ lui $at, 0x4110
/* 37D5D0 E007C140 44810000 */ mtc1 $at, $f0
/* 37D5D4 E007C144 8CA20018 */ lw $v0, 0x18($a1)
/* 37D5D8 E007C148 8CA30014 */ lw $v1, 0x14($a1)
/* 37D5DC E007C14C 44821000 */ mtc1 $v0, $f2
/* 37D5E0 E007C150 00000000 */ nop
/* 37D5E4 E007C154 468010A0 */ cvt.s.w $f2, $f2
/* 37D5E8 E007C158 24420001 */ addiu $v0, $v0, 1
/* 37D5EC E007C15C 46001082 */ mul.s $f2, $f2, $f0
/* 37D5F0 E007C160 00000000 */ nop
/* 37D5F4 E007C164 2463FFFF */ addiu $v1, $v1, -1
/* 37D5F8 E007C168 C4A0001C */ lwc1 $f0, 0x1c($a1)
/* 37D5FC E007C16C 46800020 */ cvt.s.w $f0, $f0
/* 37D600 E007C170 ACA20018 */ sw $v0, 0x18($a1)
/* 37D604 E007C174 ACA30014 */ sw $v1, 0x14($a1)
/* 37D608 E007C178 46001083 */ div.s $f2, $f2, $f0
/* 37D60C E007C17C 04610005 */ bgez $v1, .LE007C194
/* 37D610 E007C180 E4A20020 */ swc1 $f2, 0x20($a1)
/* 37D614 E007C184 0C080128 */ jal shim_remove_effect
/* 37D618 E007C188 00000000 */ nop
/* 37D61C E007C18C 0801F069 */ j .LE007C1A4
/* 37D620 E007C190 00000000 */ nop
.LE007C194:
/* 37D624 E007C194 C4A00024 */ lwc1 $f0, 0x24($a1)
/* 37D628 E007C198 C4A20028 */ lwc1 $f2, 0x28($a1)
/* 37D62C E007C19C 46020000 */ add.s $f0, $f0, $f2
/* 37D630 E007C1A0 E4A00024 */ swc1 $f0, 0x24($a1)
.LE007C1A4:
/* 37D634 E007C1A4 8FBF0010 */ lw $ra, 0x10($sp)
/* 37D638 E007C1A8 03E00008 */ jr $ra
/* 37D63C E007C1AC 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,6 +1,16 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0084E40
.double 0.05
dlabel D_E0084E48
.double 0.2
.section .text
glabel bombette_breaking_main
/* 388A54 E0084084 27BDFF48 */ addiu $sp, $sp, -0xb8
/* 388A58 E0084088 AFB5007C */ sw $s5, 0x7c($sp)

View File

@ -1,6 +1,28 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0084E50
.double 0.1
dlabel D_E0084E58
.double 0.9
dlabel D_E0084E60
.double -0.7
dlabel D_E0084E68
.double 0.95
dlabel D_E0084E70
.double 0.4
dlabel D_E0084E78
.double -0.4
.section .text
glabel bombette_breaking_update
/* 389030 E0084660 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 389034 E0084664 AFBF0010 */ sw $ra, 0x10($sp)

View File

@ -1,19 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0084000
/* 3889D0 E0084000 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 3889D4 E0084004 8FA20038 */ lw $v0, 0x38($sp)
/* 3889D8 E0084008 8FA3003C */ lw $v1, 0x3c($sp)
/* 3889DC E008400C 8FA80040 */ lw $t0, 0x40($sp)
/* 3889E0 E0084010 AFA20010 */ sw $v0, 0x10($sp)
/* 3889E4 E0084014 3C02E008 */ lui $v0, %hi(D_E0084E34)
/* 3889E8 E0084018 8C424E34 */ lw $v0, %lo(D_E0084E34)($v0)
/* 3889EC E008401C 3084FFFF */ andi $a0, $a0, 0xffff
/* 3889F0 E0084020 AFBF0020 */ sw $ra, 0x20($sp)
/* 3889F4 E0084024 AFA30014 */ sw $v1, 0x14($sp)
/* 3889F8 E0084028 0040F809 */ jalr $v0
/* 3889FC E008402C AFA80018 */ sw $t0, 0x18($sp)
/* 388A00 E0084030 8FBF0020 */ lw $ra, 0x20($sp)
/* 388A04 E0084034 03E00008 */ jr $ra
/* 388A08 E0084038 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,13 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E008403C
/* 388A0C E008403C 3C02E008 */ lui $v0, %hi(D_E0084E38)
/* 388A10 E0084040 8C424E38 */ lw $v0, %lo(D_E0084E38)($v0)
/* 388A14 E0084044 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 388A18 E0084048 AFBF0010 */ sw $ra, 0x10($sp)
/* 388A1C E008404C 0040F809 */ jalr $v0
/* 388A20 E0084050 00000000 */ nop
/* 388A24 E0084054 8FBF0010 */ lw $ra, 0x10($sp)
/* 388A28 E0084058 03E00008 */ jr $ra
/* 388A2C E008405C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,13 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0084060
/* 388A30 E0084060 3C02E008 */ lui $v0, %hi(D_E0084E3C)
/* 388A34 E0084064 8C424E3C */ lw $v0, %lo(D_E0084E3C)($v0)
/* 388A38 E0084068 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 388A3C E008406C AFBF0010 */ sw $ra, 0x10($sp)
/* 388A40 E0084070 0040F809 */ jalr $v0
/* 388A44 E0084074 00000000 */ nop
/* 388A48 E0084078 8FBF0010 */ lw $ra, 0x10($sp)
/* 388A4C E008407C 03E00008 */ jr $ra
/* 388A50 E0084080 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,135 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel fire_flower_main
/* 37F720 E007E000 27BDFF98 */ addiu $sp, $sp, -0x68
/* 37F724 E007E004 F7B40050 */ sdc1 $f20, 0x50($sp)
/* 37F728 E007E008 4485A000 */ mtc1 $a1, $f20
/* 37F72C E007E00C AFB00028 */ sw $s0, 0x28($sp)
/* 37F730 E007E010 0080802D */ daddu $s0, $a0, $zero
/* 37F734 E007E014 F7B60058 */ sdc1 $f22, 0x58($sp)
/* 37F738 E007E018 4486B000 */ mtc1 $a2, $f22
/* 37F73C E007E01C 27A40010 */ addiu $a0, $sp, 0x10
/* 37F740 E007E020 F7B80060 */ sdc1 $f24, 0x60($sp)
/* 37F744 E007E024 4487C000 */ mtc1 $a3, $f24
/* 37F748 E007E028 3C02E008 */ lui $v0, %hi(fire_flower_init)
/* 37F74C E007E02C 2442E1FC */ addiu $v0, $v0, %lo(fire_flower_init)
/* 37F750 E007E030 AFA20018 */ sw $v0, 0x18($sp)
/* 37F754 E007E034 3C02E008 */ lui $v0, %hi(fire_flower_update)
/* 37F758 E007E038 2442E204 */ addiu $v0, $v0, %lo(fire_flower_update)
/* 37F75C E007E03C AFA2001C */ sw $v0, 0x1c($sp)
/* 37F760 E007E040 3C02E008 */ lui $v0, %hi(fire_flower_render)
/* 37F764 E007E044 2442E508 */ addiu $v0, $v0, %lo(fire_flower_render)
/* 37F768 E007E048 AFA20020 */ sw $v0, 0x20($sp)
/* 37F76C E007E04C 2402003F */ addiu $v0, $zero, 0x3f
/* 37F770 E007E050 AFBF0048 */ sw $ra, 0x48($sp)
/* 37F774 E007E054 AFB70044 */ sw $s7, 0x44($sp)
/* 37F778 E007E058 AFB60040 */ sw $s6, 0x40($sp)
/* 37F77C E007E05C AFB5003C */ sw $s5, 0x3c($sp)
/* 37F780 E007E060 AFB40038 */ sw $s4, 0x38($sp)
/* 37F784 E007E064 AFB30034 */ sw $s3, 0x34($sp)
/* 37F788 E007E068 AFB20030 */ sw $s2, 0x30($sp)
/* 37F78C E007E06C AFB1002C */ sw $s1, 0x2c($sp)
/* 37F790 E007E070 AFA00010 */ sw $zero, 0x10($sp)
/* 37F794 E007E074 AFA00024 */ sw $zero, 0x24($sp)
/* 37F798 E007E078 0C080124 */ jal shim_create_effect_instance
/* 37F79C E007E07C AFA20014 */ sw $v0, 0x14($sp)
/* 37F7A0 E007E080 24040934 */ addiu $a0, $zero, 0x934
/* 37F7A4 E007E084 2414001F */ addiu $s4, $zero, 0x1f
/* 37F7A8 E007E088 0040982D */ daddu $s3, $v0, $zero
/* 37F7AC E007E08C 0C08012C */ jal shim_general_heap_malloc
/* 37F7B0 E007E090 AE740008 */ sw $s4, 8($s3)
/* 37F7B4 E007E094 0040882D */ daddu $s1, $v0, $zero
/* 37F7B8 E007E098 16200003 */ bnez $s1, .LE007E0A8
/* 37F7BC E007E09C AE71000C */ sw $s1, 0xc($s3)
.LE007E0A0:
/* 37F7C0 E007E0A0 0801F828 */ j .LE007E0A0
/* 37F7C4 E007E0A4 00000000 */ nop
.LE007E0A8:
/* 37F7C8 E007E0A8 AE200004 */ sw $zero, 4($s1)
/* 37F7CC E007E0AC AE300000 */ sw $s0, ($s1)
/* 37F7D0 E007E0B0 E6340008 */ swc1 $f20, 8($s1)
/* 37F7D4 E007E0B4 E636000C */ swc1 $f22, 0xc($s1)
/* 37F7D8 E007E0B8 E6380010 */ swc1 $f24, 0x10($s1)
/* 37F7DC E007E0BC 8FA20078 */ lw $v0, 0x78($sp)
/* 37F7E0 E007E0C0 3C013F00 */ lui $at, 0x3f00
/* 37F7E4 E007E0C4 44810000 */ mtc1 $at, $f0
/* 37F7E8 E007E0C8 3C01C120 */ lui $at, 0xc120
/* 37F7EC E007E0CC 44811000 */ mtc1 $at, $f2
/* 37F7F0 E007E0D0 24120001 */ addiu $s2, $zero, 1
/* 37F7F4 E007E0D4 AE200044 */ sw $zero, 0x44($s1)
/* 37F7F8 E007E0D8 AE200034 */ sw $zero, 0x34($s1)
/* 37F7FC E007E0DC AE200038 */ sw $zero, 0x38($s1)
/* 37F800 E007E0E0 AE200028 */ sw $zero, 0x28($s1)
/* 37F804 E007E0E4 AE220040 */ sw $v0, 0x40($s1)
/* 37F808 E007E0E8 240200FF */ addiu $v0, $zero, 0xff
/* 37F80C E007E0EC AE22003C */ sw $v0, 0x3c($s1)
/* 37F810 E007E0F0 E6200030 */ swc1 $f0, 0x30($s1)
/* 37F814 E007E0F4 E622002C */ swc1 $f2, 0x2c($s1)
/* 37F818 E007E0F8 0254102A */ slt $v0, $s2, $s4
/* 37F81C E007E0FC 10400030 */ beqz $v0, .LE007E1C0
/* 37F820 E007E100 2631004C */ addiu $s1, $s1, 0x4c
/* 37F824 E007E104 0240B82D */ daddu $s7, $s2, $zero
/* 37F828 E007E108 241600FF */ addiu $s6, $zero, 0xff
/* 37F82C E007E10C 2415000A */ addiu $s5, $zero, 0xa
/* 37F830 E007E110 26300040 */ addiu $s0, $s1, 0x40
/* 37F834 E007E114 3C014100 */ lui $at, 0x4100
/* 37F838 E007E118 4481B000 */ mtc1 $at, $f22
/* 37F83C E007E11C 3C01E008 */ lui $at, %hi(D_E007EC40)
/* 37F840 E007E120 D434EC40 */ ldc1 $f20, %lo(D_E007EC40)($at)
.LE007E124:
/* 37F844 E007E124 24040014 */ addiu $a0, $zero, 0x14
/* 37F848 E007E128 AE370000 */ sw $s7, ($s1)
/* 37F84C E007E12C AE00FFC8 */ sw $zero, -0x38($s0)
/* 37F850 E007E130 AE00FFCC */ sw $zero, -0x34($s0)
/* 37F854 E007E134 AE00FFD0 */ sw $zero, -0x30($s0)
/* 37F858 E007E138 E616FFD4 */ swc1 $f22, -0x2c($s0)
/* 37F85C E007E13C 0C080000 */ jal func_E0200000
/* 37F860 E007E140 AE00FFD8 */ sw $zero, -0x28($s0)
/* 37F864 E007E144 2404000A */ addiu $a0, $zero, 0xa
/* 37F868 E007E148 2442FFF8 */ addiu $v0, $v0, -8
/* 37F86C E007E14C 44820000 */ mtc1 $v0, $f0
/* 37F870 E007E150 00000000 */ nop
/* 37F874 E007E154 46800020 */ cvt.s.w $f0, $f0
/* 37F878 E007E158 0C080000 */ jal func_E0200000
/* 37F87C E007E15C E600FFDC */ swc1 $f0, -0x24($s0)
/* 37F880 E007E160 2442FFFB */ addiu $v0, $v0, -5
/* 37F884 E007E164 44820000 */ mtc1 $v0, $f0
/* 37F888 E007E168 00000000 */ nop
/* 37F88C E007E16C 46800021 */ cvt.d.w $f0, $f0
/* 37F890 E007E170 46340002 */ mul.d $f0, $f0, $f20
/* 37F894 E007E174 00000000 */ nop
/* 37F898 E007E178 24040050 */ addiu $a0, $zero, 0x50
/* 37F89C E007E17C 2631004C */ addiu $s1, $s1, 0x4c
/* 37F8A0 E007E180 46200020 */ cvt.s.d $f0, $f0
/* 37F8A4 E007E184 0C080000 */ jal func_E0200000
/* 37F8A8 E007E188 E600FFE0 */ swc1 $f0, -0x20($s0)
/* 37F8AC E007E18C 2643FFFF */ addiu $v1, $s2, -1
/* 37F8B0 E007E190 26520001 */ addiu $s2, $s2, 1
/* 37F8B4 E007E194 24420005 */ addiu $v0, $v0, 5
/* 37F8B8 E007E198 44820000 */ mtc1 $v0, $f0
/* 37F8BC E007E19C 00000000 */ nop
/* 37F8C0 E007E1A0 46800020 */ cvt.s.w $f0, $f0
/* 37F8C4 E007E1A4 E600FFE4 */ swc1 $f0, -0x1c($s0)
/* 37F8C8 E007E1A8 AE16FFFC */ sw $s6, -4($s0)
/* 37F8CC E007E1AC AE030008 */ sw $v1, 8($s0)
/* 37F8D0 E007E1B0 AE150000 */ sw $s5, ($s0)
/* 37F8D4 E007E1B4 0254102A */ slt $v0, $s2, $s4
/* 37F8D8 E007E1B8 1440FFDA */ bnez $v0, .LE007E124
/* 37F8DC E007E1BC 2610004C */ addiu $s0, $s0, 0x4c
.LE007E1C0:
/* 37F8E0 E007E1C0 0260102D */ daddu $v0, $s3, $zero
/* 37F8E4 E007E1C4 8FBF0048 */ lw $ra, 0x48($sp)
/* 37F8E8 E007E1C8 8FB70044 */ lw $s7, 0x44($sp)
/* 37F8EC E007E1CC 8FB60040 */ lw $s6, 0x40($sp)
/* 37F8F0 E007E1D0 8FB5003C */ lw $s5, 0x3c($sp)
/* 37F8F4 E007E1D4 8FB40038 */ lw $s4, 0x38($sp)
/* 37F8F8 E007E1D8 8FB30034 */ lw $s3, 0x34($sp)
/* 37F8FC E007E1DC 8FB20030 */ lw $s2, 0x30($sp)
/* 37F900 E007E1E0 8FB1002C */ lw $s1, 0x2c($sp)
/* 37F904 E007E1E4 8FB00028 */ lw $s0, 0x28($sp)
/* 37F908 E007E1E8 D7B80060 */ ldc1 $f24, 0x60($sp)
/* 37F90C E007E1EC D7B60058 */ ldc1 $f22, 0x58($sp)
/* 37F910 E007E1F0 D7B40050 */ ldc1 $f20, 0x50($sp)
/* 37F914 E007E1F4 03E00008 */ jr $ra
/* 37F918 E007E1F8 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -1,6 +1,19 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_E007EC48
.word LE007E270_37F990, LE007E2C0_37F9E0, LE007E314_37FA34, LE007E334_37FA54, LE007E354_37FA74, LE007E3A0_37FAC0, LE007E3C8_37FAE8, 0
dlabel D_E007EC68
.double 0.01
dlabel D_E007EC70
.double 0.9, 0.0
.section .text
glabel fire_flower_update
/* 37F924 E007E204 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 37F928 E007E208 AFB1001C */ sw $s1, 0x1c($sp)

View File

@ -1,64 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel sleep_bubble_main
/* 35CA80 E0052000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 35CA84 E0052004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 35CA88 E0052008 4485A000 */ mtc1 $a1, $f20
/* 35CA8C E005200C AFB1002C */ sw $s1, 0x2c($sp)
/* 35CA90 E0052010 0080882D */ daddu $s1, $a0, $zero
/* 35CA94 E0052014 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 35CA98 E0052018 4486B000 */ mtc1 $a2, $f22
/* 35CA9C E005201C 27A40010 */ addiu $a0, $sp, 0x10
/* 35CAA0 E0052020 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 35CAA4 E0052024 4487C000 */ mtc1 $a3, $f24
/* 35CAA8 E0052028 3C02E005 */ lui $v0, %hi(sleep_bubble_init)
/* 35CAAC E005202C 244220E8 */ addiu $v0, $v0, %lo(sleep_bubble_init)
/* 35CAB0 E0052030 AFA20018 */ sw $v0, 0x18($sp)
/* 35CAB4 E0052034 3C02E005 */ lui $v0, %hi(sleep_bubble_update)
/* 35CAB8 E0052038 244220F0 */ addiu $v0, $v0, %lo(sleep_bubble_update)
/* 35CABC E005203C AFA2001C */ sw $v0, 0x1c($sp)
/* 35CAC0 E0052040 3C02E005 */ lui $v0, %hi(sleep_bubble_render)
/* 35CAC4 E0052044 2442241C */ addiu $v0, $v0, %lo(sleep_bubble_render)
/* 35CAC8 E0052048 AFA20020 */ sw $v0, 0x20($sp)
/* 35CACC E005204C 24020029 */ addiu $v0, $zero, 0x29
/* 35CAD0 E0052050 AFBF0030 */ sw $ra, 0x30($sp)
/* 35CAD4 E0052054 AFB00028 */ sw $s0, 0x28($sp)
/* 35CAD8 E0052058 AFA00010 */ sw $zero, 0x10($sp)
/* 35CADC E005205C AFA00024 */ sw $zero, 0x24($sp)
/* 35CAE0 E0052060 0C080124 */ jal shim_create_effect_instance
/* 35CAE4 E0052064 AFA20014 */ sw $v0, 0x14($sp)
/* 35CAE8 E0052068 240400CC */ addiu $a0, $zero, 0xcc
/* 35CAEC E005206C 24030001 */ addiu $v1, $zero, 1
/* 35CAF0 E0052070 0040802D */ daddu $s0, $v0, $zero
/* 35CAF4 E0052074 0C08012C */ jal shim_general_heap_malloc
/* 35CAF8 E0052078 AE030008 */ sw $v1, 8($s0)
/* 35CAFC E005207C 0040182D */ daddu $v1, $v0, $zero
/* 35CB00 E0052080 14600003 */ bnez $v1, .LE0052090
/* 35CB04 E0052084 AE02000C */ sw $v0, 0xc($s0)
.LE0052088:
/* 35CB08 E0052088 08014822 */ j .LE0052088
/* 35CB0C E005208C 00000000 */ nop
.LE0052090:
/* 35CB10 E0052090 AC710000 */ sw $s1, ($v1)
/* 35CB14 E0052094 E4740004 */ swc1 $f20, 4($v1)
/* 35CB18 E0052098 E4760008 */ swc1 $f22, 8($v1)
/* 35CB1C E005209C E478000C */ swc1 $f24, 0xc($v1)
/* 35CB20 E00520A0 C7A00064 */ lwc1 $f0, 0x64($sp)
/* 35CB24 E00520A4 24020064 */ addiu $v0, $zero, 0x64
/* 35CB28 E00520A8 AC62001C */ sw $v0, 0x1c($v1)
/* 35CB2C E00520AC E4600010 */ swc1 $f0, 0x10($v1)
/* 35CB30 E00520B0 C7A00060 */ lwc1 $f0, 0x60($sp)
/* 35CB34 E00520B4 AC600018 */ sw $zero, 0x18($v1)
/* 35CB38 E00520B8 AC600020 */ sw $zero, 0x20($v1)
/* 35CB3C E00520BC E4600014 */ swc1 $f0, 0x14($v1)
/* 35CB40 E00520C0 8FA20068 */ lw $v0, 0x68($sp)
/* 35CB44 E00520C4 AC500000 */ sw $s0, ($v0)
/* 35CB48 E00520C8 8FBF0030 */ lw $ra, 0x30($sp)
/* 35CB4C E00520CC 8FB1002C */ lw $s1, 0x2c($sp)
/* 35CB50 E00520D0 8FB00028 */ lw $s0, 0x28($sp)
/* 35CB54 E00520D4 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 35CB58 E00520D8 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 35CB5C E00520DC D7B40038 */ ldc1 $f20, 0x38($sp)
/* 35CB60 E00520E0 03E00008 */ jr $ra
/* 35CB64 E00520E4 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,214 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel sleep_bubble_update
/* 35CB70 E00520F0 27BDFF98 */ addiu $sp, $sp, -0x68
/* 35CB74 E00520F4 AFBF0030 */ sw $ra, 0x30($sp)
/* 35CB78 E00520F8 AFB7002C */ sw $s7, 0x2c($sp)
/* 35CB7C E00520FC AFB60028 */ sw $s6, 0x28($sp)
/* 35CB80 E0052100 AFB50024 */ sw $s5, 0x24($sp)
/* 35CB84 E0052104 AFB40020 */ sw $s4, 0x20($sp)
/* 35CB88 E0052108 AFB3001C */ sw $s3, 0x1c($sp)
/* 35CB8C E005210C AFB20018 */ sw $s2, 0x18($sp)
/* 35CB90 E0052110 AFB10014 */ sw $s1, 0x14($sp)
/* 35CB94 E0052114 AFB00010 */ sw $s0, 0x10($sp)
/* 35CB98 E0052118 F7BE0060 */ sdc1 $f30, 0x60($sp)
/* 35CB9C E005211C F7BC0058 */ sdc1 $f28, 0x58($sp)
/* 35CBA0 E0052120 F7BA0050 */ sdc1 $f26, 0x50($sp)
/* 35CBA4 E0052124 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 35CBA8 E0052128 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 35CBAC E005212C F7B40038 */ sdc1 $f20, 0x38($sp)
/* 35CBB0 E0052130 8C90000C */ lw $s0, 0xc($a0)
/* 35CBB4 E0052134 8E03001C */ lw $v1, 0x1c($s0)
/* 35CBB8 E0052138 28620064 */ slti $v0, $v1, 0x64
/* 35CBBC E005213C 10400003 */ beqz $v0, .LE005214C
/* 35CBC0 E0052140 26130024 */ addiu $s3, $s0, 0x24
/* 35CBC4 E0052144 2462FFFF */ addiu $v0, $v1, -1
/* 35CBC8 E0052148 AE02001C */ sw $v0, 0x1c($s0)
.LE005214C:
/* 35CBCC E005214C 3C030004 */ lui $v1, 4
/* 35CBD0 E0052150 8E020020 */ lw $v0, 0x20($s0)
/* 35CBD4 E0052154 3463F1A0 */ ori $v1, $v1, 0xf1a0
/* 35CBD8 E0052158 24420001 */ addiu $v0, $v0, 1
/* 35CBDC E005215C 0062182A */ slt $v1, $v1, $v0
/* 35CBE0 E0052160 10600003 */ beqz $v1, .LE0052170
/* 35CBE4 E0052164 AE020020 */ sw $v0, 0x20($s0)
/* 35CBE8 E0052168 24020100 */ addiu $v0, $zero, 0x100
/* 35CBEC E005216C AE020020 */ sw $v0, 0x20($s0)
.LE0052170:
/* 35CBF0 E0052170 8E03001C */ lw $v1, 0x1c($s0)
/* 35CBF4 E0052174 04610005 */ bgez $v1, .LE005218C
/* 35CBF8 E0052178 0060B82D */ daddu $s7, $v1, $zero
/* 35CBFC E005217C 0C080128 */ jal shim_remove_effect
/* 35CC00 E0052180 00000000 */ nop
/* 35CC04 E0052184 080148F6 */ j .LE00523D8
/* 35CC08 E0052188 00000000 */ nop
.LE005218C:
/* 35CC0C E005218C C6020014 */ lwc1 $f2, 0x14($s0)
/* 35CC10 E0052190 C6140018 */ lwc1 $f20, 0x18($s0)
/* 35CC14 E0052194 46141081 */ sub.s $f2, $f2, $f20
/* 35CC18 E0052198 3C013DCC */ lui $at, 0x3dcc
/* 35CC1C E005219C 3421CCCD */ ori $at, $at, 0xcccd
/* 35CC20 E00521A0 44810000 */ mtc1 $at, $f0
/* 35CC24 E00521A4 00000000 */ nop
/* 35CC28 E00521A8 46001082 */ mul.s $f2, $f2, $f0
/* 35CC2C E00521AC 00000000 */ nop
/* 35CC30 E00521B0 8E160020 */ lw $s6, 0x20($s0)
/* 35CC34 E00521B4 00161040 */ sll $v0, $s6, 1
/* 35CC38 E00521B8 4602A500 */ add.s $f20, $f20, $f2
/* 35CC3C E00521BC 00561021 */ addu $v0, $v0, $s6
/* 35CC40 E00521C0 44826000 */ mtc1 $v0, $f12
/* 35CC44 E00521C4 00000000 */ nop
/* 35CC48 E00521C8 46806320 */ cvt.s.w $f12, $f12
/* 35CC4C E00521CC 0C080140 */ jal shim_sin_deg
/* 35CC50 E00521D0 E6140018 */ swc1 $f20, 0x18($s0)
/* 35CC54 E00521D4 4600A002 */ mul.s $f0, $f20, $f0
/* 35CC58 E00521D8 00000000 */ nop
/* 35CC5C E00521DC 3C01E005 */ lui $at, %hi(D_E0052A80)
/* 35CC60 E00521E0 D4222A80 */ ldc1 $f2, %lo(D_E0052A80)($at)
/* 35CC64 E00521E4 46000021 */ cvt.d.s $f0, $f0
/* 35CC68 E00521E8 46220002 */ mul.d $f0, $f0, $f2
/* 35CC6C E00521EC 00000000 */ nop
/* 35CC70 E00521F0 0000902D */ daddu $s2, $zero, $zero
/* 35CC74 E00521F4 26110028 */ addiu $s1, $s0, 0x28
/* 35CC78 E00521F8 0240A82D */ daddu $s5, $s2, $zero
/* 35CC7C E00521FC 0240A02D */ daddu $s4, $s2, $zero
/* 35CC80 E0052200 4600A521 */ cvt.d.s $f20, $f20
/* 35CC84 E0052204 3C014000 */ lui $at, 0x4000
/* 35CC88 E0052208 4481F800 */ mtc1 $at, $f31
/* 35CC8C E005220C 4480F000 */ mtc1 $zero, $f30
/* 35CC90 E0052210 4620A500 */ add.d $f20, $f20, $f0
/* 35CC94 E0052214 3C013FF8 */ lui $at, 0x3ff8
/* 35CC98 E0052218 4481E800 */ mtc1 $at, $f29
/* 35CC9C E005221C 4480E000 */ mtc1 $zero, $f28
/* 35CCA0 E0052220 46201686 */ mov.d $f26, $f2
/* 35CCA4 E0052224 4620A620 */ cvt.s.d $f24, $f20
.LE0052228:
/* 35CCA8 E0052228 3C0143B4 */ lui $at, 0x43b4
/* 35CCAC E005222C 4481A000 */ mtc1 $at, $f20
/* 35CCB0 E0052230 4492B000 */ mtc1 $s2, $f22
/* 35CCB4 E0052234 00000000 */ nop
/* 35CCB8 E0052238 4680B5A0 */ cvt.s.w $f22, $f22
/* 35CCBC E005223C 4614B502 */ mul.s $f20, $f22, $f20
/* 35CCC0 E0052240 00000000 */ nop
/* 35CCC4 E0052244 3C0141A8 */ lui $at, 0x41a8
/* 35CCC8 E0052248 44810000 */ mtc1 $at, $f0
/* 35CCCC E005224C 3C014188 */ lui $at, 0x4188
/* 35CCD0 E0052250 44811000 */ mtc1 $at, $f2
/* 35CCD4 E0052254 4600A503 */ div.s $f20, $f20, $f0
/* 35CCD8 E0052258 4602A500 */ add.s $f20, $f20, $f2
/* 35CCDC E005225C 0C080140 */ jal shim_sin_deg
/* 35CCE0 E0052260 4600A306 */ mov.s $f12, $f20
/* 35CCE4 E0052264 4600C002 */ mul.s $f0, $f24, $f0
/* 35CCE8 E0052268 00000000 */ nop
/* 35CCEC E005226C 4600A306 */ mov.s $f12, $f20
/* 35CCF0 E0052270 0C080144 */ jal shim_cos_deg
/* 35CCF4 E0052274 E6600000 */ swc1 $f0, ($s3)
/* 35CCF8 E0052278 4600C087 */ neg.s $f2, $f24
/* 35CCFC E005227C 46001082 */ mul.s $f2, $f2, $f0
/* 35CD00 E0052280 00000000 */ nop
/* 35CD04 E0052284 44946000 */ mtc1 $s4, $f12
/* 35CD08 E0052288 00000000 */ nop
/* 35CD0C E005228C 46806320 */ cvt.s.w $f12, $f12
/* 35CD10 E0052290 0C080140 */ jal shim_sin_deg
/* 35CD14 E0052294 E6220000 */ swc1 $f2, ($s1)
/* 35CD18 E0052298 46000021 */ cvt.d.s $f0, $f0
/* 35CD1C E005229C 463A0002 */ mul.d $f0, $f0, $f26
/* 35CD20 E00522A0 00000000 */ nop
/* 35CD24 E00522A4 463E0000 */ add.d $f0, $f0, $f30
/* 35CD28 E00522A8 4496A000 */ mtc1 $s6, $f20
/* 35CD2C E00522AC 00000000 */ nop
/* 35CD30 E00522B0 4680A520 */ cvt.s.w $f20, $f20
/* 35CD34 E00522B4 4600A521 */ cvt.d.s $f20, $f20
/* 35CD38 E00522B8 4620A002 */ mul.d $f0, $f20, $f0
/* 35CD3C E00522BC 00000000 */ nop
/* 35CD40 E00522C0 3C0140A0 */ lui $at, 0x40a0
/* 35CD44 E00522C4 44811000 */ mtc1 $at, $f2
/* 35CD48 E00522C8 00000000 */ nop
/* 35CD4C E00522CC 4602B580 */ add.s $f22, $f22, $f2
/* 35CD50 E00522D0 3C0141F0 */ lui $at, 0x41f0
/* 35CD54 E00522D4 44811000 */ mtc1 $at, $f2
/* 35CD58 E00522D8 00000000 */ nop
/* 35CD5C E00522DC 4602B082 */ mul.s $f2, $f22, $f2
/* 35CD60 E00522E0 00000000 */ nop
/* 35CD64 E00522E4 460010A1 */ cvt.d.s $f2, $f2
/* 35CD68 E00522E8 46220000 */ add.d $f0, $f0, $f2
/* 35CD6C E00522EC 0C080140 */ jal shim_sin_deg
/* 35CD70 E00522F0 46200320 */ cvt.s.d $f12, $f0
/* 35CD74 E00522F4 46000021 */ cvt.d.s $f0, $f0
/* 35CD78 E00522F8 463C0002 */ mul.d $f0, $f0, $f28
/* 35CD7C E00522FC 00000000 */ nop
/* 35CD80 E0052300 C6620000 */ lwc1 $f2, ($s3)
/* 35CD84 E0052304 460010A1 */ cvt.d.s $f2, $f2
/* 35CD88 E0052308 46201080 */ add.d $f2, $f2, $f0
/* 35CD8C E005230C 44956000 */ mtc1 $s5, $f12
/* 35CD90 E0052310 00000000 */ nop
/* 35CD94 E0052314 46806320 */ cvt.s.w $f12, $f12
/* 35CD98 E0052318 462010A0 */ cvt.s.d $f2, $f2
/* 35CD9C E005231C 0C080144 */ jal shim_cos_deg
/* 35CDA0 E0052320 E6620000 */ swc1 $f2, ($s3)
/* 35CDA4 E0052324 46000021 */ cvt.d.s $f0, $f0
/* 35CDA8 E0052328 463A0002 */ mul.d $f0, $f0, $f26
/* 35CDAC E005232C 00000000 */ nop
/* 35CDB0 E0052330 463E0000 */ add.d $f0, $f0, $f30
/* 35CDB4 E0052334 4620A502 */ mul.d $f20, $f20, $f0
/* 35CDB8 E0052338 00000000 */ nop
/* 35CDBC E005233C 3C014248 */ lui $at, 0x4248
/* 35CDC0 E0052340 44810000 */ mtc1 $at, $f0
/* 35CDC4 E0052344 00000000 */ nop
/* 35CDC8 E0052348 4600B582 */ mul.s $f22, $f22, $f0
/* 35CDCC E005234C 00000000 */ nop
/* 35CDD0 E0052350 4600B5A1 */ cvt.d.s $f22, $f22
/* 35CDD4 E0052354 4636A500 */ add.d $f20, $f20, $f22
/* 35CDD8 E0052358 0C080144 */ jal shim_cos_deg
/* 35CDDC E005235C 4620A320 */ cvt.s.d $f12, $f20
/* 35CDE0 E0052360 46000021 */ cvt.d.s $f0, $f0
/* 35CDE4 E0052364 463C0002 */ mul.d $f0, $f0, $f28
/* 35CDE8 E0052368 00000000 */ nop
/* 35CDEC E005236C 26520001 */ addiu $s2, $s2, 1
/* 35CDF0 E0052370 26940035 */ addiu $s4, $s4, 0x35
/* 35CDF4 E0052374 C6220000 */ lwc1 $f2, ($s1)
/* 35CDF8 E0052378 26B50024 */ addiu $s5, $s5, 0x24
/* 35CDFC E005237C 460010A1 */ cvt.d.s $f2, $f2
/* 35CE00 E0052380 46201080 */ add.d $f2, $f2, $f0
/* 35CE04 E0052384 26730008 */ addiu $s3, $s3, 8
/* 35CE08 E0052388 2A420014 */ slti $v0, $s2, 0x14
/* 35CE0C E005238C 462010A0 */ cvt.s.d $f2, $f2
/* 35CE10 E0052390 E6220000 */ swc1 $f2, ($s1)
/* 35CE14 E0052394 1440FFA4 */ bnez $v0, .LE0052228
/* 35CE18 E0052398 26310008 */ addiu $s1, $s1, 8
/* 35CE1C E005239C 2AE20064 */ slti $v0, $s7, 0x64
/* 35CE20 E00523A0 10400006 */ beqz $v0, .LE00523BC
/* 35CE24 E00523A4 AE0000C4 */ sw $zero, 0xc4($s0)
/* 35CE28 E00523A8 C60000C8 */ lwc1 $f0, 0xc8($s0)
/* 35CE2C E00523AC 3C013F80 */ lui $at, 0x3f80
/* 35CE30 E00523B0 44811000 */ mtc1 $at, $f2
/* 35CE34 E00523B4 080148F5 */ j .LE00523D4
/* 35CE38 E00523B8 46020000 */ add.s $f0, $f0, $f2
.LE00523BC:
/* 35CE3C E00523BC 3C01E005 */ lui $at, %hi(D_E0052A88)
/* 35CE40 E00523C0 D4222A88 */ ldc1 $f2, %lo(D_E0052A88)($at)
/* 35CE44 E00523C4 4600C021 */ cvt.d.s $f0, $f24
/* 35CE48 E00523C8 46220002 */ mul.d $f0, $f0, $f2
/* 35CE4C E00523CC 00000000 */ nop
/* 35CE50 E00523D0 46200020 */ cvt.s.d $f0, $f0
.LE00523D4:
/* 35CE54 E00523D4 E60000C8 */ swc1 $f0, 0xc8($s0)
.LE00523D8:
/* 35CE58 E00523D8 8FBF0030 */ lw $ra, 0x30($sp)
/* 35CE5C E00523DC 8FB7002C */ lw $s7, 0x2c($sp)
/* 35CE60 E00523E0 8FB60028 */ lw $s6, 0x28($sp)
/* 35CE64 E00523E4 8FB50024 */ lw $s5, 0x24($sp)
/* 35CE68 E00523E8 8FB40020 */ lw $s4, 0x20($sp)
/* 35CE6C E00523EC 8FB3001C */ lw $s3, 0x1c($sp)
/* 35CE70 E00523F0 8FB20018 */ lw $s2, 0x18($sp)
/* 35CE74 E00523F4 8FB10014 */ lw $s1, 0x14($sp)
/* 35CE78 E00523F8 8FB00010 */ lw $s0, 0x10($sp)
/* 35CE7C E00523FC D7BE0060 */ ldc1 $f30, 0x60($sp)
/* 35CE80 E0052400 D7BC0058 */ ldc1 $f28, 0x58($sp)
/* 35CE84 E0052404 D7BA0050 */ ldc1 $f26, 0x50($sp)
/* 35CE88 E0052408 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 35CE8C E005240C D7B60040 */ ldc1 $f22, 0x40($sp)
/* 35CE90 E0052410 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 35CE94 E0052414 03E00008 */ jr $ra
/* 35CE98 E0052418 27BD0068 */ addiu $sp, $sp, 0x68

View File

@ -2541,7 +2541,7 @@ segments:
vram: 0xE0052000
subsegments:
- [0x35CA80, c, sleep_bubble]
- [0x35D460, data]
- [0x35D460]
- [0x35D510, bin] # sleep_bubble gfx
- name: effect_windy_leaves
dir: effects
@ -2691,7 +2691,7 @@ segments:
vram: 0xE0076000
subsegments:
- [0x377070, c, aura]
- [0x377F00, data]
- [0x377F00]
- [0x377F80, bin] # aura gfx
- name: effect_effect_3C
dir: effects
@ -2727,7 +2727,7 @@ segments:
vram: 0xE007E000
subsegments:
- [0x37F720, c, fire_flower]
- [0x380350, data]
- [0x380350]
- [0x3803A0, bin] # fire_flower gfx
- name: effect_recover
dir: effects
@ -2754,7 +2754,7 @@ segments:
vram: 0xE0084000
subsegments:
- [0x3889D0, c, bombette_breaking]
- [0x3897E0, data]
- [0x3897E0]
- name: effect_firework
dir: effects
type: code

View File

@ -196,6 +196,26 @@ D_09003780 = 0x09003780;
D_090037C0 = 0x090037C0;
D_09003800 = 0x09003800;
// effect_aura
D_090023E0 = 0x090023E0;
D_09002440 = 0x09002440;
D_090023F8 = 0x090023F8;
D_09002458 = 0x09002458;
D_090023B0 = 0x090023B0;
D_09002410 = 0x09002410;
D_090023C8 = 0x090023C8;
D_09002428 = 0x09002428;
D_09002000 = 0x09002000;
D_090020E8 = 0x090020E8;
D_090021D0 = 0x090021D0;
// effect_bombette_breaking
D_090018C0 = 0x090018C0;
D_09001D00 = 0x09001D00;
D_09001CC8 = 0x09001CC8;
D_09001C80 = 0x09001C80;
D_090017D0 = 0x090017D0;
// Invalid pointers from dead code
dead_atan2 = 0x8002AF70;
dead_gCurrentCamID = 0x800A158C;