music_note.c, shape_spell.c, stat_change.c, tattle_window.c, recover.c data migration (#652)

* music_note.c, shape_spell.c, stat_change.c, tattle_window.c, recover.c data migration

* implement requested changes

* Recover.c data fixes, style changes

* The one newline lol

* f
This commit is contained in:
JaThePlayer 2022-02-21 16:53:26 +01:00 committed by GitHub
parent b427897581
commit fb828bf8da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 656 additions and 936 deletions

View File

@ -46,7 +46,7 @@ void snowflake_main(f32, f32, f32, s32, s32);
EffectInstance* star_main(s32, f32, f32, f32, f32, f32, f32, f32);
void emote_main(s32, s32, f32, f32, f32, f32, f32, s32, EffectInstance**);
FX_MAIN(sparkles_main);
FX_MAIN(shape_spell_main);
EffectInstance* shape_spell_main(s32, f32, f32, f32, f32, f32, f32, s32);
FX_MAIN(gather_energy_pink_main);
FX_MAIN(drop_leaves_main);
FX_MAIN(dust_main);
@ -66,7 +66,7 @@ FX_MAIN(stars_shimmer_main);
FX_MAIN(rising_bubble_main);
FX_MAIN(ring_blast_main);
FX_MAIN(shockwave_main);
FX_MAIN(music_note_main);
void music_note_main(s32, f32, f32, f32);
FX_MAIN(smoke_burst_main);
FX_MAIN(sweat_main);
FX_MAIN(sleep_bubble_main);
@ -113,7 +113,7 @@ FX_MAIN(energy_orb_wave_main);
FX_MAIN(merlin_house_stars_main);
FX_MAIN(quizmo_audience_main);
FX_MAIN(butterflies_main);
FX_MAIN(stat_change_main);
EffectInstance* stat_change_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(snaking_static_main);
FX_MAIN(thunderbolt_ring_main);
FX_MAIN(squirt_main);
@ -134,7 +134,7 @@ FX_MAIN(whirlwind_main);
FX_MAIN(red_impact_main);
FX_MAIN(floating_cloud_puff_main);
FX_MAIN(energy_in_out_main);
FX_MAIN(tattle_window_main);
EffectInstance* tattle_window_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(shiny_flare_main);
FX_MAIN(huff_puff_breath_main);
FX_MAIN(cold_breath_main);

View File

@ -2,13 +2,117 @@
#include "effects_internal.h"
void music_note_appendGfx(void* effect);
void music_note_init(EffectInstance* effect);
void music_note_update(EffectInstance* effect);
void music_note_render(EffectInstance* effect);
INCLUDE_ASM(s32, "effects/music_note", music_note_main);
extern Gfx D_09001038[];
extern Gfx D_090010C0[];
extern Gfx D_09001148[];
extern Gfx D_090011D0[];
extern Gfx D_09001258[];
extern Gfx D_090012E0[];
extern Gfx D_09001368[];
void music_note_init(void) {
Gfx* D_E004C660[] = { D_09001038, D_090010C0, D_09001148, D_090011D0, D_09001258, D_090012E0, D_09001368 };
s8 D_E004C67C[] = { 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, };
typedef struct MusicNoteFXData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ s32 unk_14;
/* 0x18 */ s32 timeLeft;
/* 0x1C */ s32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ f32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
} MusicNoteFXData; // size = 0x34
void music_note_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
MusicNoteFXData* part;
s32 numParts = 1;
s32 randInt;
bp.unk_00 = 0;
bp.init = music_note_init;
bp.update = music_note_update;
bp.renderWorld = music_note_render;
bp.unk_14 = 0;
bp.effectID = EFFECT_MUSIC_NOTE;
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 = 0;
part->timeLeft = 0x40;
part->unk_14 = 0;
part->unk_1C = 0;
part->unk_20 = shim_rand_int(6);
switch (arg0) {
case 0:
part->unk_24 = 0.0f;
part->unk_28 = 1.0f;
part->unk_2C = 0;
part->unk_30 = 1.0f;
break;
case 1:
randInt = shim_rand_int(10);
part->unk_24 = (randInt * 0.1) + -5.0;
part->unk_28 = (shim_rand_int(10) * 0.1) + 0.5;
part->unk_2C = 0;
part->unk_30 = 0.0f;
break;
default:
randInt = shim_rand_int(10);
part->unk_24 = 5.0 - (randInt * 0.1);
part->unk_28 = (shim_rand_int(10) * 0.1) + 1.0;
part->unk_2C = 0;
part->unk_30 = 0.0f;
break;
}
}
INCLUDE_ASM(s32, "effects/music_note", music_note_update);
void music_note_init(EffectInstance* effect) {
}
void music_note_update(EffectInstance* effect) {
MusicNoteFXData* part = effect->data;
s32 timeLeft;
part->timeLeft--;
part->unk_1C++;
timeLeft = part->timeLeft;
if (timeLeft < 0) {
shim_remove_effect(effect);
return;
}
if (timeLeft >= 6) {
part->unk_14 += (255 - part->unk_14) * 0.3;
part->unk_10 += (1.0f - part->unk_10) * 0.3;
}
if (timeLeft < 10) {
part->unk_14 = timeLeft * 25;
}
part->pos.x += part->unk_24;
part->pos.y += part->unk_28;
part->unk_24 += (part->unk_2C - part->unk_24) * 0.04;
part->unk_28 += (part->unk_30 - part->unk_28) * 0.04;
}
void music_note_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -1,6 +1,27 @@
#include "common.h"
#include "effects_internal.h"
void func_E0080448(EffectInstance* effect);
extern Gfx D_09003540[];
extern Gfx D_09003580[];
extern Gfx D_090035C0[];
extern Gfx D_09003600[];
extern Gfx D_09003640[];
extern Gfx D_09003680[];
extern Gfx D_090036C0[];
extern Gfx D_09003700[];
extern Gfx D_09003740[];
extern Gfx D_09003780[];
extern Gfx D_090037C0[];
extern Gfx D_09003800[];
Gfx* D_E0080AC0[] = { D_09003540, D_09003580, D_090035C0, D_09003600, D_09003640, D_09003680, D_090036C0, D_09003700, D_09003740, D_09003780, D_090037C0, D_09003800, };
f32 D_E0080AF0[] = { 0.25f, 0.5f, 0.75f, 1.0f, 0.9f, 1.1f, 1.0f };
f32 D_E0080B0C[] = { 0.25f, 0.5f, 0.75f, 1.0f, 1.2f, 0.9f, 1.0f };
INCLUDE_ASM(s32, "effects/recover", recover_main);
void recover_init(void) {
@ -11,6 +32,8 @@ INCLUDE_ASM(s32, "effects/recover", recover_update);
void recover_render(void) {
}
INCLUDE_ASM(s32, "effects/recover", func_E008042C);
void func_E008042C(EffectInstance* effect) {
func_E0080448(effect);
}
INCLUDE_ASM(s32, "effects/recover", func_E0080448);

View File

@ -1,14 +1,118 @@
#include "common.h"
#include "effects_internal.h"
typedef struct ShapeSpellFXData {
/* 0x00 */ s32 isChild;
/* 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 */ f32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 timeLeft;
/* 0x34 */ s32 unk_34;
} ShapeSpellFXData; // size = 0x38
s32 D_E0024CC0[] = { 0x00FFD01A, 0x09001128, 0x090011A0, 0x784DD0FE, 0x09001150, 0x090011C8, 0xF0FE4C6E, 0x09001178, 0x090011F0, 0x00000000, 0x00000000, 0x00000000 };
void shape_spell_appendGfx(void* effect);
void shape_spell_init(EffectInstance* effect);
void shape_spell_update(EffectInstance* effect);
void shape_spell_render(EffectInstance* effect);
INCLUDE_ASM(s32, "effects/shape_spell", shape_spell_main);
EffectInstance* shape_spell_main(s32 isChild, f32 x, f32 y, f32 z, f32 arg4, f32 arg5, f32 arg6, s32 arg7) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
ShapeSpellFXData* part;
s32 numParts = 1;
void shape_spell_init(void) {
bp.init = shape_spell_init;
bp.update = shape_spell_update;
bp.renderWorld = shape_spell_render;
bp.unk_00 = 0;
bp.unk_14 = 0;
bp.effectID = EFFECT_SHAPE_SPELL;
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_2C = 0;
part->isChild = isChild;
part->unk_34 = 255;
part->pos.x = x;
part->pos.y = y;
part->pos.z = z;
part->unk_28 = 1.0f;
if (!isChild) {
part->unk_10 = 0;
part->unk_14 = 0.0f;
part->unk_18 = 0.0f;
part->timeLeft = arg7;
part->unk_1C = (arg4 - x) * (1.0f / arg7);
part->unk_20 = (arg5 - y) * (1.0f / arg7);
part->unk_24 = (arg6 - z) * (1.0f / arg7);
} else {
part->unk_10 = 29.f;
part->unk_14 = 0.0f;
part->unk_18 = 0.0f;
part->unk_1C = 6.2f;
part->unk_20 = 0.0f;
part->unk_24 = 0.0f;
part->timeLeft = 24;
}
return effect;
}
INCLUDE_ASM(s32, "effects/shape_spell", shape_spell_update);
void shape_spell_init(EffectInstance* effect) {
}
void shape_spell_update(EffectInstance* effect) {
s32 flags = effect->flags;
ShapeSpellFXData* part = effect->data;
s32 isChild;
if (flags & 0x10) {
effect->flags = flags & ~0x10;
part->timeLeft = 0;
}
part->timeLeft--;
part->unk_2C++;
if (part->timeLeft < 0) {
shim_remove_effect(effect);
return;
}
isChild = part->isChild;
if (!isChild && part->timeLeft == 0) {
ShapeSpellFXData* newPart = shape_spell_main(
1,
part->pos.x + part->unk_10,
part->pos.y + part->unk_14,
part->pos.z + part->unk_18,
0.0f, 0.0f, 0.0f, 0x18
)->data;
newPart->unk_28 = part->unk_28;
}
if (isChild == TRUE) {
part->unk_34 = part->unk_34 * 0.9;
part->unk_1C = part->unk_1C * 0.83;
}
part->unk_10 += part->unk_1C;
part->unk_14 += part->unk_20;
part->unk_18 += part->unk_24;
}
void shape_spell_render(EffectInstance* effect) {
RenderTask renderTask;
@ -23,8 +127,18 @@ void shape_spell_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_MODE_2;
}
INCLUDE_ASM(s32, "effects/shape_spell", func_E0024324);
s32 func_E0024324(s32 arg0, s32 arg1) {
s32 frameCounter = gGameStatusPtr->frameCounter * 32;
return (f32)((shim_sin_deg(frameCounter + arg1) * (255 - arg0) + (255 - arg0)) * 0.5 + arg0);
}
INCLUDE_ASM(s32, "effects/shape_spell", func_E00243BC);
s32 func_E00243BC(s32 arg0, s32 arg1) {
s32 frameCounter = gGameStatusPtr->frameCounter * 32;
arg1 += 180;
return (f32)((shim_sin_deg(frameCounter + arg1) * -arg0 + -arg0) * 0.5 + arg0);
}
INCLUDE_ASM(s32, "effects/shape_spell", shape_spell_appendGfx);

View File

@ -1,28 +1,230 @@
#include "common.h"
#include "effects_internal.h"
enum ArrowType {
ARROW_TYPE_ATK_UP = 0,
ARROW_TYPE_ATK_DOWN = 1,
ARROW_TYPE_DEF_UP = 2,
};
typedef struct StatChangeFXData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 scale;
/* 0x14 */ s32 timeLeft;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 arrowType;
/* 0x20 */ s32 arrowValue;
/* 0x24 */ s32 unk_24;
/* 0x28 */ f32 scaleX;
/* 0x2C */ f32 scaleY;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ s32 unk_3C;
/* 0x40 */ s32 unk_40;
} StatChangeFXData;
typedef struct ExtraArrowDataEntry {
u8 unk_00;
u8 unk_01;
} ExtraArrowDataEntry;
typedef struct ArrowDataTableEntry {
s32 type;
s32 value;
} ArrowDataTableEntry;
s32 D_E00AC7B0[] = { 0x09002700, 0x09002700, 0x09002798 };
s32 D_E00AC7BC[] = { 0x09002860, 0x09002880, 0x09002860 };
s32 D_E00AC7C8[] = { 0x09002950, 0x09002990, 0x090029D0, 0x09002A10, 0x09002A50, 0x09002A90, 0x09002AD0, 0x09002B10, 0x09002B50, 0x09002B90, 0x09002BD0, 0x09002C10 };
s32 D_E00AC7F8[] = { 0xFF96FF82, 0xFF64FF46, 0xFF3CFF50, 0xFF6EFF73, 0xFF6BFF5C, 0xFF5AFF5E, 0xFF67FF68, 0xFF67FF64, 0xFF62FF63, 0xFF65FF64, 0xF064DC64, 0xC864B464, 0xA0648264, 0x64644664, 0x32642864, 0x1E641464, 0x0A640000 };
ExtraArrowDataEntry D_E00AC7F8[] = {
{ .unk_00 = 0xFF, .unk_01 = 0x96 },
{ .unk_00 = 0xFF, .unk_01 = 0x82 },
{ .unk_00 = 0xFF, .unk_01 = 0x64 },
{ .unk_00 = 0xFF, .unk_01 = 0x46 },
{ .unk_00 = 0xFF, .unk_01 = 0x3C },
{ .unk_00 = 0xFF, .unk_01 = 0x50 },
{ .unk_00 = 0xFF, .unk_01 = 0x6E },
{ .unk_00 = 0xFF, .unk_01 = 0x73 },
{ .unk_00 = 0xFF, .unk_01 = 0x6B },
{ .unk_00 = 0xFF, .unk_01 = 0x5C },
{ .unk_00 = 0xFF, .unk_01 = 0x5A },
{ .unk_00 = 0xFF, .unk_01 = 0x5E },
{ .unk_00 = 0xFF, .unk_01 = 0x67 },
{ .unk_00 = 0xFF, .unk_01 = 0x68 },
{ .unk_00 = 0xFF, .unk_01 = 0x67 },
{ .unk_00 = 0xFF, .unk_01 = 0x64 },
{ .unk_00 = 0xFF, .unk_01 = 0x62 },
{ .unk_00 = 0xFF, .unk_01 = 0x63 },
{ .unk_00 = 0xFF, .unk_01 = 0x65 },
{ .unk_00 = 0xFF, .unk_01 = 0x64 },
{ .unk_00 = 0xF0, .unk_01 = 0x64 },
{ .unk_00 = 0xDC, .unk_01 = 0x64 },
{ .unk_00 = 0xC8, .unk_01 = 0x64 },
{ .unk_00 = 0xB4, .unk_01 = 0x64 },
{ .unk_00 = 0xA0, .unk_01 = 0x64 },
{ .unk_00 = 0x82, .unk_01 = 0x64 },
{ .unk_00 = 0x64, .unk_01 = 0x64 },
{ .unk_00 = 0x46, .unk_01 = 0x64 },
{ .unk_00 = 0x32, .unk_01 = 0x64 },
{ .unk_00 = 0x28, .unk_01 = 0x64 },
{ .unk_00 = 0x1E, .unk_01 = 0x64 },
{ .unk_00 = 0x14, .unk_01 = 0x64 },
{ .unk_00 = 0x0A, .unk_01 = 0x64 },
};
s32 D_E00AC83C[] = { 0xFF96FF82, 0xFF64FF46, 0xFF3CFF50, 0xFF6EFF73, 0xFF6BFF5C, 0xFF5AFF5E, 0xFF67FF68, 0xFF67FF64, 0xFF62FF63, 0xFF65FF64, 0xF064DC64, 0xC864B464, 0xA0648264, 0x64644664, 0x32642864, 0x1E641464, 0x0A640000 };
ExtraArrowDataEntry D_E00AC83C[] = {
{ .unk_00 = 0xFF, .unk_01 = 0x96 },
{ .unk_00 = 0xFF, .unk_01 = 0x82 },
{ .unk_00 = 0xFF, .unk_01 = 0x64 },
{ .unk_00 = 0xFF, .unk_01 = 0x46 },
{ .unk_00 = 0xFF, .unk_01 = 0x3C },
{ .unk_00 = 0xFF, .unk_01 = 0x50 },
{ .unk_00 = 0xFF, .unk_01 = 0x6E },
{ .unk_00 = 0xFF, .unk_01 = 0x73 },
{ .unk_00 = 0xFF, .unk_01 = 0x6B },
{ .unk_00 = 0xFF, .unk_01 = 0x5C },
{ .unk_00 = 0xFF, .unk_01 = 0x5A },
{ .unk_00 = 0xFF, .unk_01 = 0x5E },
{ .unk_00 = 0xFF, .unk_01 = 0x67 },
{ .unk_00 = 0xFF, .unk_01 = 0x68 },
{ .unk_00 = 0xFF, .unk_01 = 0x67 },
{ .unk_00 = 0xFF, .unk_01 = 0x64 },
{ .unk_00 = 0xFF, .unk_01 = 0x62 },
{ .unk_00 = 0xFF, .unk_01 = 0x63 },
{ .unk_00 = 0xFF, .unk_01 = 0x65 },
{ .unk_00 = 0xFF, .unk_01 = 0x64 },
{ .unk_00 = 0xF0, .unk_01 = 0x64 },
{ .unk_00 = 0xDC, .unk_01 = 0x64 },
{ .unk_00 = 0xC8, .unk_01 = 0x64 },
{ .unk_00 = 0xB4, .unk_01 = 0x64 },
{ .unk_00 = 0xA0, .unk_01 = 0x64 },
{ .unk_00 = 0x82, .unk_01 = 0x64 },
{ .unk_00 = 0x64, .unk_01 = 0x64 },
{ .unk_00 = 0x46, .unk_01 = 0x64 },
{ .unk_00 = 0x32, .unk_01 = 0x64 },
{ .unk_00 = 0x28, .unk_01 = 0x64 },
{ .unk_00 = 0x1E, .unk_01 = 0x64 },
{ .unk_00 = 0x14, .unk_01 = 0x64 },
{ .unk_00 = 0x0A, .unk_01 = 0x64 },
};
s32 D_E00AC880[] = { 0x00000000, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000003, 0x00000001, 0xFFFFFFFF, 0x00000001, 0xFFFFFFFE, 0x00000001, 0xFFFFFFFD, 0x00000002, 0x00000001, 0x00000002, 0x00000002, 0x00000002, 0x00000003, 0x00000000, 0x00000000 };
ArrowDataTableEntry D_E00AC880[] = {
{ .type = ARROW_TYPE_ATK_UP, .value = 1 },
{ .type = ARROW_TYPE_ATK_UP, .value = 2 },
{ .type = ARROW_TYPE_ATK_UP, .value = 3 },
{ .type = ARROW_TYPE_ATK_DOWN, .value = -1 },
{ .type = ARROW_TYPE_ATK_DOWN, .value = -2 },
{ .type = ARROW_TYPE_ATK_DOWN, .value = -3 },
{ .type = ARROW_TYPE_DEF_UP, .value = 1 },
{ .type = ARROW_TYPE_DEF_UP, .value = 2 },
{ .type = ARROW_TYPE_DEF_UP, .value = 3 },
{ .type = ARROW_TYPE_ATK_UP, .value = 0 },
};
INCLUDE_ASM(s32, "effects/stat_change", stat_change_main);
void func_E00AC288(EffectInstance* effect);
void func_E00AC2A4(EffectInstance* effect);
void stat_change_init(EffectInstance* effect);
void stat_change_update(EffectInstance* effect);
void stat_change_render(EffectInstance* effect);
void stat_change_init(void) {
EffectInstance* stat_change_main(s32 arg0, f32 x, f32 y, f32 z, f32 scale, s32 time) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
StatChangeFXData* part;
s32 numParts = 1;
bp.init = stat_change_init;
bp.update = stat_change_update;
bp.renderWorld = stat_change_render;
bp.unk_14 = func_E00AC288;
bp.unk_00 = 0;
bp.effectID = EFFECT_STAT_CHANGE;
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 = x;
part->pos.y = y;
part->pos.z = z;
part->timeLeft = time;
part->unk_18 = 0;
part->scale = scale;
part->unk_24 = 255;
part->scaleX = 0;
part->scaleY = 0;
part->unk_30 = 0;
part->unk_38 = 0;
part->unk_34 = 0;
part->arrowType = D_E00AC880[arg0].type;
part->arrowValue = D_E00AC880[arg0].value;
return effect;
}
INCLUDE_ASM(s32, "effects/stat_change", stat_change_update);
void stat_change_render(void) {
void stat_change_init(EffectInstance* effect) {
}
INCLUDE_ASM(s32, "effects/stat_change", func_E00AC288);
void stat_change_update(EffectInstance* effect) {
StatChangeFXData* part = effect->data;
s32 old_unk18;
part->timeLeft--;
old_unk18 = part->unk_18++;
if (part->timeLeft < 0) {
shim_remove_effect(effect);
return;
}
if (part->arrowType == ARROW_TYPE_ATK_DOWN) {
if (old_unk18 >= ARRAY_COUNT(D_E00AC83C)) {
part->unk_24 = 0;
part->scaleX = 0.0f;
part->scaleY = 0.0f;
} else {
part->unk_24 = D_E00AC83C[old_unk18].unk_00;
part->scaleY = (f32)D_E00AC83C[old_unk18].unk_01 * 0.01;
part->scaleX = 1.0f - part->scaleY + 1.0f;
}
} else {
if (old_unk18 >= ARRAY_COUNT(D_E00AC7F8)) {
part->unk_24 = 0;
part->scaleX = 0.0f;
part->scaleY = 0.0f;
} else {
part->unk_24 = D_E00AC7F8[old_unk18].unk_00;
part->scaleX = (f32)D_E00AC7F8[old_unk18].unk_01 * 0.01;
part->scaleY = 1.0f - part->scaleX + 1.0f;
}
}
part->unk_3C = 0;
part->unk_40 = 0;
do {} while (0); // required to match
part->pos.x += part->unk_30;
part->pos.y += part->unk_38;
part->pos.z += part->unk_34;
}
void stat_change_render(EffectInstance* effect) {
}
void func_E00AC288(EffectInstance* effect) {
func_E00AC2A4(effect);
}
INCLUDE_ASM(s32, "effects/stat_change", func_E00AC2A4);

View File

@ -1,17 +1,154 @@
#include "common.h"
#include "effects_internal.h"
INCLUDE_ASM(s32, "effects/tattle_window", tattle_window_main);
void tattle_window_init(EffectInstance* effect);
void tattle_window_update(EffectInstance* effect);
void tattle_window_render(EffectInstance* effect);
void func_E00D8264(EffectInstance* effect);
void func_E00D8630(EffectInstance* effect);
void tattle_window_init(void) {
typedef struct TattleWindowFXData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ Vec3f pos;
/* 0x10 */ s32 unk_10;
/* 0x14 */ s32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ s32 unk_24;
/* 0x28 */ f32 unk_28;
/* 0x2C */ f32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ u8 unk_34;
/* 0x35 */ u8 unk_35;
} TattleWindowFXData; // size = 0x38
typedef struct D_E00D8818_Entry {
s16 unk_00;
u8 unk_02;
u8 unk_03;
} D_E00D8818_Entry; // size = 0x4
s32 D_E00D87E0[] = { 0x00000000, 0x00000000, 0x00000000, 0x09000000, 0x31100810, 0x08100810, 0x08000000, 0x00000000, 0xFC317FFF, 0x5FFEF438, 0xFC3135FF, 0x5FFEFE38, 0x3D4ABCFF, 0x00191CFF };
D_E00D8818_Entry D_E00D8818[] = {
{ .unk_00 = 0xFF38, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0xFF60, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0xFF88, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0xFFAB, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0xFFC9, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0xFFE2, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0xFFF0, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0xFFF8, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0xFFFC, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0xFFFE, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0xFFFF, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0x0000, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0x0000, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0x0000, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0x0000, .unk_02 = 0xFF, .unk_03 = 0xFF },
{ .unk_00 = 0x0000, .unk_02 = 0xE6, .unk_03 = 0xFA },
{ .unk_00 = 0x0000, .unk_02 = 0x78, .unk_03 = 0xF5 },
{ .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0xF0 },
{ .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0xD2 },
{ .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0xAA },
{ .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0x78 },
{ .unk_00 = 0x0000, .unk_02 = 0x00, .unk_03 = 0x3C },
};
EffectInstance* tattle_window_main(s32 arg0, f32 x, f32 y, f32 z, f32 arg4, s32 arg5) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
TattleWindowFXData* part;
s32 numParts = 1;
bp.init = tattle_window_init;
bp.update = tattle_window_update;
bp.renderWorld = tattle_window_render;
bp.unk_14 = func_E00D8264;
bp.unk_00 = 0;
bp.effectID = EFFECT_TATTLE_WINDOW;
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->unk_14 = 0;
if (arg5 <= 0) {
part->unk_10 = 0x3E8;
} else {
part->unk_10 = arg5;
}
part->pos.x = x;
part->pos.y = y;
part->pos.z = z;
part->unk_1C = 0;
part->unk_18 = arg4;
part->unk_28 = 0.0f;
part->unk_2C = part->unk_30 = part->unk_28;
part->unk_20 = 0;
part->unk_24 = 0;
part->unk_34 = 0xFF;
part->unk_35 = 0xFF;
return effect;
}
INCLUDE_ASM(s32, "effects/tattle_window", tattle_window_update);
void tattle_window_render(void) {
void tattle_window_init(EffectInstance* effect) {
}
INCLUDE_ASM(s32, "effects/tattle_window", func_E00D8264);
void tattle_window_update(EffectInstance* effect) {
s32 unk_10, unk_10_2;
s32 old_unk_14;
TattleWindowFXData* part = effect->data;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
part->unk_10 = 23;
}
if (part->unk_10 < 1000) {
part->unk_10--;
}
old_unk_14 = part->unk_14++;
unk_10 = part->unk_10;
if (unk_10 < 0) {
shim_remove_effect(effect);
return;
}
unk_10_2 = unk_10;
part->unk_28 = 0;
part->unk_2C = 0;
part->unk_1C = part->unk_18;
if (old_unk_14 < 23) {
part->unk_30 = D_E00D8818[old_unk_14].unk_00;
part->unk_34 = D_E00D8818[old_unk_14].unk_02;
part->unk_35 = D_E00D8818[old_unk_14].unk_03;
} else {
part->unk_30 = D_E00D8818[0x16].unk_00;
part->unk_34 = D_E00D8818[0x16].unk_02;
part->unk_35 = D_E00D8818[0x16].unk_03;
part->unk_14 = 0x18;
}
if (unk_10_2 < 23) {
part->unk_30 = D_E00D8818[unk_10_2].unk_00;
part->unk_34 = D_E00D8818[unk_10_2].unk_02;
part->unk_35 = D_E00D8818[unk_10_2].unk_03;
}
}
void tattle_window_render(EffectInstance* effect) {
}
void func_E00D8264(EffectInstance* effect) {
func_E00D8630(effect);
}
void func_E00D8280(void) {
}

View File

@ -64,12 +64,12 @@ glabel music_note_appendGfx
/* 35A3B4 E004C494 3C02E005 */ lui $v0, %hi(D_E004C67C)
/* 35A3B8 E004C498 00451021 */ addu $v0, $v0, $a1
/* 35A3BC E004C49C 9042C67C */ lbu $v0, %lo(D_E004C67C)($v0)
/* 35A3C0 E004C4A0 3C03E005 */ lui $v1, %hi(D_E004C67D)
/* 35A3C0 E004C4A0 3C03E005 */ lui $v1, %hi(D_E004C67C+1)
/* 35A3C4 E004C4A4 00651821 */ addu $v1, $v1, $a1
/* 35A3C8 E004C4A8 9063C67D */ lbu $v1, %lo(D_E004C67D)($v1)
/* 35A3CC E004C4AC 3C01E005 */ lui $at, %hi(D_E004C67E)
/* 35A3C8 E004C4A8 9063C67D */ lbu $v1, %lo(D_E004C67C+1)($v1)
/* 35A3CC E004C4AC 3C01E005 */ lui $at, %hi(D_E004C67C+2)
/* 35A3D0 E004C4B0 00250821 */ addu $at, $at, $a1
/* 35A3D4 E004C4B4 9025C67E */ lbu $a1, %lo(D_E004C67E)($at)
/* 35A3D4 E004C4B4 9025C67E */ lbu $a1, %lo(D_E004C67C+2)($at)
/* 35A3D8 E004C4B8 00021600 */ sll $v0, $v0, 0x18
/* 35A3DC E004C4BC 00031C00 */ sll $v1, $v1, 0x10
/* 35A3E0 E004C4C0 00431025 */ or $v0, $v0, $v1

View File

@ -1,140 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel music_note_main
/* 359F20 E004C000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 359F24 E004C004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 359F28 E004C008 4485A000 */ mtc1 $a1, $f20
/* 359F2C E004C00C AFB1002C */ sw $s1, 0x2c($sp)
/* 359F30 E004C010 0080882D */ daddu $s1, $a0, $zero
/* 359F34 E004C014 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 359F38 E004C018 4486B000 */ mtc1 $a2, $f22
/* 359F3C E004C01C 27A40010 */ addiu $a0, $sp, 0x10
/* 359F40 E004C020 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 359F44 E004C024 4487C000 */ mtc1 $a3, $f24
/* 359F48 E004C028 3C02E005 */ lui $v0, %hi(music_note_init)
/* 359F4C E004C02C 2442C204 */ addiu $v0, $v0, %lo(music_note_init)
/* 359F50 E004C030 AFA20018 */ sw $v0, 0x18($sp)
/* 359F54 E004C034 3C02E005 */ lui $v0, %hi(music_note_update)
/* 359F58 E004C038 2442C20C */ addiu $v0, $v0, %lo(music_note_update)
/* 359F5C E004C03C AFA2001C */ sw $v0, 0x1c($sp)
/* 359F60 E004C040 3C02E005 */ lui $v0, %hi(music_note_render)
/* 359F64 E004C044 2442C364 */ addiu $v0, $v0, %lo(music_note_render)
/* 359F68 E004C048 AFA20020 */ sw $v0, 0x20($sp)
/* 359F6C E004C04C 24020026 */ addiu $v0, $zero, 0x26
/* 359F70 E004C050 AFBF0030 */ sw $ra, 0x30($sp)
/* 359F74 E004C054 AFB00028 */ sw $s0, 0x28($sp)
/* 359F78 E004C058 AFA00010 */ sw $zero, 0x10($sp)
/* 359F7C E004C05C AFA00024 */ sw $zero, 0x24($sp)
/* 359F80 E004C060 0C080124 */ jal shim_create_effect_instance
/* 359F84 E004C064 AFA20014 */ sw $v0, 0x14($sp)
/* 359F88 E004C068 24040034 */ addiu $a0, $zero, 0x34
/* 359F8C E004C06C 24030001 */ addiu $v1, $zero, 1
/* 359F90 E004C070 0040802D */ daddu $s0, $v0, $zero
/* 359F94 E004C074 0C08012C */ jal shim_general_heap_malloc
/* 359F98 E004C078 AE030008 */ sw $v1, 8($s0)
/* 359F9C E004C07C AE02000C */ sw $v0, 0xc($s0)
/* 359FA0 E004C080 0040802D */ daddu $s0, $v0, $zero
/* 359FA4 E004C084 16000003 */ bnez $s0, .LE004C094
/* 359FA8 E004C088 24040006 */ addiu $a0, $zero, 6
.LE004C08C:
/* 359FAC E004C08C 08013023 */ j .LE004C08C
/* 359FB0 E004C090 00000000 */ nop
.LE004C094:
/* 359FB4 E004C094 24020040 */ addiu $v0, $zero, 0x40
/* 359FB8 E004C098 AE110000 */ sw $s1, ($s0)
/* 359FBC E004C09C E6140004 */ swc1 $f20, 4($s0)
/* 359FC0 E004C0A0 E6160008 */ swc1 $f22, 8($s0)
/* 359FC4 E004C0A4 E618000C */ swc1 $f24, 0xc($s0)
/* 359FC8 E004C0A8 AE000010 */ sw $zero, 0x10($s0)
/* 359FCC E004C0AC AE020018 */ sw $v0, 0x18($s0)
/* 359FD0 E004C0B0 AE000014 */ sw $zero, 0x14($s0)
/* 359FD4 E004C0B4 0C080138 */ jal shim_rand_int
/* 359FD8 E004C0B8 AE00001C */ sw $zero, 0x1c($s0)
/* 359FDC E004C0BC 12200006 */ beqz $s1, .LE004C0D8
/* 359FE0 E004C0C0 AE020020 */ sw $v0, 0x20($s0)
/* 359FE4 E004C0C4 24020001 */ addiu $v0, $zero, 1
/* 359FE8 E004C0C8 1222000A */ beq $s1, $v0, .LE004C0F4
/* 359FEC E004C0CC 00000000 */ nop
/* 359FF0 E004C0D0 08013059 */ j .LE004C164
/* 359FF4 E004C0D4 00000000 */ nop
.LE004C0D8:
/* 359FF8 E004C0D8 3C013F80 */ lui $at, 0x3f80
/* 359FFC E004C0DC 44810000 */ mtc1 $at, $f0
/* 35A000 E004C0E0 AE000024 */ sw $zero, 0x24($s0)
/* 35A004 E004C0E4 AE00002C */ sw $zero, 0x2c($s0)
/* 35A008 E004C0E8 E6000028 */ swc1 $f0, 0x28($s0)
/* 35A00C E004C0EC 08013079 */ j .LE004C1E4
/* 35A010 E004C0F0 E6000030 */ swc1 $f0, 0x30($s0)
.LE004C0F4:
/* 35A014 E004C0F4 0C080138 */ jal shim_rand_int
/* 35A018 E004C0F8 2404000A */ addiu $a0, $zero, 0xa
/* 35A01C E004C0FC 3C01E005 */ lui $at, %hi(D_E004C6A0)
/* 35A020 E004C100 D434C6A0 */ ldc1 $f20, %lo(D_E004C6A0)($at)
/* 35A024 E004C104 44820000 */ mtc1 $v0, $f0
/* 35A028 E004C108 00000000 */ nop
/* 35A02C E004C10C 46800021 */ cvt.d.w $f0, $f0
/* 35A030 E004C110 46340002 */ mul.d $f0, $f0, $f20
/* 35A034 E004C114 00000000 */ nop
/* 35A038 E004C118 3C01C014 */ lui $at, 0xc014
/* 35A03C E004C11C 44811800 */ mtc1 $at, $f3
/* 35A040 E004C120 44801000 */ mtc1 $zero, $f2
/* 35A044 E004C124 00000000 */ nop
/* 35A048 E004C128 46220000 */ add.d $f0, $f0, $f2
/* 35A04C E004C12C 2404000A */ addiu $a0, $zero, 0xa
/* 35A050 E004C130 46200020 */ cvt.s.d $f0, $f0
/* 35A054 E004C134 0C080138 */ jal shim_rand_int
/* 35A058 E004C138 E6000024 */ swc1 $f0, 0x24($s0)
/* 35A05C E004C13C 44820000 */ mtc1 $v0, $f0
/* 35A060 E004C140 00000000 */ nop
/* 35A064 E004C144 46800021 */ cvt.d.w $f0, $f0
/* 35A068 E004C148 46340002 */ mul.d $f0, $f0, $f20
/* 35A06C E004C14C 00000000 */ nop
/* 35A070 E004C150 3C013FE0 */ lui $at, 0x3fe0
/* 35A074 E004C154 44811800 */ mtc1 $at, $f3
/* 35A078 E004C158 44801000 */ mtc1 $zero, $f2
/* 35A07C E004C15C 08013075 */ j .LE004C1D4
/* 35A080 E004C160 46220000 */ add.d $f0, $f0, $f2
.LE004C164:
/* 35A084 E004C164 0C080138 */ jal shim_rand_int
/* 35A088 E004C168 2404000A */ addiu $a0, $zero, 0xa
/* 35A08C E004C16C 3C01E005 */ lui $at, %hi(D_E004C6A8)
/* 35A090 E004C170 D434C6A8 */ ldc1 $f20, %lo(D_E004C6A8)($at)
/* 35A094 E004C174 44821000 */ mtc1 $v0, $f2
/* 35A098 E004C178 00000000 */ nop
/* 35A09C E004C17C 468010A1 */ cvt.d.w $f2, $f2
/* 35A0A0 E004C180 46341082 */ mul.d $f2, $f2, $f20
/* 35A0A4 E004C184 00000000 */ nop
/* 35A0A8 E004C188 3C014014 */ lui $at, 0x4014
/* 35A0AC E004C18C 44810800 */ mtc1 $at, $f1
/* 35A0B0 E004C190 44800000 */ mtc1 $zero, $f0
/* 35A0B4 E004C194 00000000 */ nop
/* 35A0B8 E004C198 46220001 */ sub.d $f0, $f0, $f2
/* 35A0BC E004C19C 2404000A */ addiu $a0, $zero, 0xa
/* 35A0C0 E004C1A0 46200020 */ cvt.s.d $f0, $f0
/* 35A0C4 E004C1A4 0C080138 */ jal shim_rand_int
/* 35A0C8 E004C1A8 E6000024 */ swc1 $f0, 0x24($s0)
/* 35A0CC E004C1AC 44820000 */ mtc1 $v0, $f0
/* 35A0D0 E004C1B0 00000000 */ nop
/* 35A0D4 E004C1B4 46800021 */ cvt.d.w $f0, $f0
/* 35A0D8 E004C1B8 46340002 */ mul.d $f0, $f0, $f20
/* 35A0DC E004C1BC 00000000 */ nop
/* 35A0E0 E004C1C0 3C013FF0 */ lui $at, 0x3ff0
/* 35A0E4 E004C1C4 44811800 */ mtc1 $at, $f3
/* 35A0E8 E004C1C8 44801000 */ mtc1 $zero, $f2
/* 35A0EC E004C1CC 00000000 */ nop
/* 35A0F0 E004C1D0 46220000 */ add.d $f0, $f0, $f2
.LE004C1D4:
/* 35A0F4 E004C1D4 AE00002C */ sw $zero, 0x2c($s0)
/* 35A0F8 E004C1D8 AE000030 */ sw $zero, 0x30($s0)
/* 35A0FC E004C1DC 46200020 */ cvt.s.d $f0, $f0
/* 35A100 E004C1E0 E6000028 */ swc1 $f0, 0x28($s0)
.LE004C1E4:
/* 35A104 E004C1E4 8FBF0030 */ lw $ra, 0x30($sp)
/* 35A108 E004C1E8 8FB1002C */ lw $s1, 0x2c($sp)
/* 35A10C E004C1EC 8FB00028 */ lw $s0, 0x28($sp)
/* 35A110 E004C1F0 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 35A114 E004C1F4 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 35A118 E004C1F8 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 35A11C E004C1FC 03E00008 */ jr $ra
/* 35A120 E004C200 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,94 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel music_note_update
/* 35A12C E004C20C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 35A130 E004C210 AFBF0010 */ sw $ra, 0x10($sp)
/* 35A134 E004C214 8C85000C */ lw $a1, 0xc($a0)
/* 35A138 E004C218 8CA20018 */ lw $v0, 0x18($a1)
/* 35A13C E004C21C 2442FFFF */ addiu $v0, $v0, -1
/* 35A140 E004C220 ACA20018 */ sw $v0, 0x18($a1)
/* 35A144 E004C224 8CA2001C */ lw $v0, 0x1c($a1)
/* 35A148 E004C228 8CA60018 */ lw $a2, 0x18($a1)
/* 35A14C E004C22C 24420001 */ addiu $v0, $v0, 1
/* 35A150 E004C230 04C10005 */ bgez $a2, .LE004C248
/* 35A154 E004C234 ACA2001C */ sw $v0, 0x1c($a1)
/* 35A158 E004C238 0C080128 */ jal shim_remove_effect
/* 35A15C E004C23C 00000000 */ nop
/* 35A160 E004C240 080130D6 */ j .LE004C358
/* 35A164 E004C244 00000000 */ nop
.LE004C248:
/* 35A168 E004C248 28C20006 */ slti $v0, $a2, 6
/* 35A16C E004C24C 1440001E */ bnez $v0, .LE004C2C8
/* 35A170 E004C250 28C2000A */ slti $v0, $a2, 0xa
/* 35A174 E004C254 240200FF */ addiu $v0, $zero, 0xff
/* 35A178 E004C258 8CA30014 */ lw $v1, 0x14($a1)
/* 35A17C E004C25C 3C01E005 */ lui $at, %hi(D_E004C6B0)
/* 35A180 E004C260 D424C6B0 */ ldc1 $f4, %lo(D_E004C6B0)($at)
/* 35A184 E004C264 00431023 */ subu $v0, $v0, $v1
/* 35A188 E004C268 44823000 */ mtc1 $v0, $f6
/* 35A18C E004C26C 00000000 */ nop
/* 35A190 E004C270 468031A1 */ cvt.d.w $f6, $f6
/* 35A194 E004C274 46243182 */ mul.d $f6, $f6, $f4
/* 35A198 E004C278 00000000 */ nop
/* 35A19C E004C27C C4A20010 */ lwc1 $f2, 0x10($a1)
/* 35A1A0 E004C280 3C013F80 */ lui $at, 0x3f80
/* 35A1A4 E004C284 44810000 */ mtc1 $at, $f0
/* 35A1A8 E004C288 00000000 */ nop
/* 35A1AC E004C28C 46020001 */ sub.s $f0, $f0, $f2
/* 35A1B0 E004C290 46000021 */ cvt.d.s $f0, $f0
/* 35A1B4 E004C294 46240002 */ mul.d $f0, $f0, $f4
/* 35A1B8 E004C298 00000000 */ nop
/* 35A1BC E004C29C 44832000 */ mtc1 $v1, $f4
/* 35A1C0 E004C2A0 00000000 */ nop
/* 35A1C4 E004C2A4 46802121 */ cvt.d.w $f4, $f4
/* 35A1C8 E004C2A8 46262100 */ add.d $f4, $f4, $f6
/* 35A1CC E004C2AC 460010A1 */ cvt.d.s $f2, $f2
/* 35A1D0 E004C2B0 46201080 */ add.d $f2, $f2, $f0
/* 35A1D4 E004C2B4 4620238D */ trunc.w.d $f14, $f4
/* 35A1D8 E004C2B8 E4AE0014 */ swc1 $f14, 0x14($a1)
/* 35A1DC E004C2BC 462010A0 */ cvt.s.d $f2, $f2
/* 35A1E0 E004C2C0 E4A20010 */ swc1 $f2, 0x10($a1)
/* 35A1E4 E004C2C4 28C2000A */ slti $v0, $a2, 0xa
.LE004C2C8:
/* 35A1E8 E004C2C8 10400005 */ beqz $v0, .LE004C2E0
/* 35A1EC E004C2CC 00061040 */ sll $v0, $a2, 1
/* 35A1F0 E004C2D0 00461021 */ addu $v0, $v0, $a2
/* 35A1F4 E004C2D4 000210C0 */ sll $v0, $v0, 3
/* 35A1F8 E004C2D8 00461021 */ addu $v0, $v0, $a2
/* 35A1FC E004C2DC ACA20014 */ sw $v0, 0x14($a1)
.LE004C2E0:
/* 35A200 E004C2E0 C4A60024 */ lwc1 $f6, 0x24($a1)
/* 35A204 E004C2E4 C4A4002C */ lwc1 $f4, 0x2c($a1)
/* 35A208 E004C2E8 46062101 */ sub.s $f4, $f4, $f6
/* 35A20C E004C2EC 3C01E005 */ lui $at, %hi(D_E004C6B8)
/* 35A210 E004C2F0 D428C6B8 */ ldc1 $f8, %lo(D_E004C6B8)($at)
/* 35A214 E004C2F4 46002121 */ cvt.d.s $f4, $f4
/* 35A218 E004C2F8 46282102 */ mul.d $f4, $f4, $f8
/* 35A21C E004C2FC 00000000 */ nop
/* 35A220 E004C300 C4A20028 */ lwc1 $f2, 0x28($a1)
/* 35A224 E004C304 C4A00030 */ lwc1 $f0, 0x30($a1)
/* 35A228 E004C308 46020001 */ sub.s $f0, $f0, $f2
/* 35A22C E004C30C 46000021 */ cvt.d.s $f0, $f0
/* 35A230 E004C310 46280002 */ mul.d $f0, $f0, $f8
/* 35A234 E004C314 00000000 */ nop
/* 35A238 E004C318 C4AA0004 */ lwc1 $f10, 4($a1)
/* 35A23C E004C31C 46003206 */ mov.s $f8, $f6
/* 35A240 E004C320 46085280 */ add.s $f10, $f10, $f8
/* 35A244 E004C324 C4AC0008 */ lwc1 $f12, 8($a1)
/* 35A248 E004C328 46001206 */ mov.s $f8, $f2
/* 35A24C E004C32C 46086300 */ add.s $f12, $f12, $f8
/* 35A250 E004C330 460031A1 */ cvt.d.s $f6, $f6
/* 35A254 E004C334 46243180 */ add.d $f6, $f6, $f4
/* 35A258 E004C338 460010A1 */ cvt.d.s $f2, $f2
/* 35A25C E004C33C E4AA0004 */ swc1 $f10, 4($a1)
/* 35A260 E004C340 46201080 */ add.d $f2, $f2, $f0
/* 35A264 E004C344 E4AC0008 */ swc1 $f12, 8($a1)
/* 35A268 E004C348 462031A0 */ cvt.s.d $f6, $f6
/* 35A26C E004C34C 462010A0 */ cvt.s.d $f2, $f2
/* 35A270 E004C350 E4A60024 */ swc1 $f6, 0x24($a1)
/* 35A274 E004C354 E4A20028 */ swc1 $f2, 0x28($a1)
.LE004C358:
/* 35A278 E004C358 8FBF0010 */ lw $ra, 0x10($sp)
/* 35A27C E004C35C 03E00008 */ jr $ra
/* 35A280 E004C360 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,11 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E008042C
/* 3816EC E008042C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3816F0 E0080430 AFBF0010 */ sw $ra, 0x10($sp)
/* 3816F4 E0080434 0C020112 */ jal func_E0080448
/* 3816F8 E0080438 00000000 */ nop
/* 3816FC E008043C 8FBF0010 */ lw $ra, 0x10($sp)
/* 381700 E0080440 03E00008 */ jr $ra
/* 381704 E0080444 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_E0080B30
.double 0.05
dlabel D_E0080B38
.double 0.9
.section .text
glabel recover_update
/* 381490 E00801D0 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 381494 E00801D4 AFB50024 */ sw $s5, 0x24($sp)

View File

@ -1,42 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0024324
/* 339574 E0024324 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 339578 E0024328 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 33957C E002432C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 339580 E0024330 AFBF0014 */ sw $ra, 0x14($sp)
/* 339584 E0024334 AFB00010 */ sw $s0, 0x10($sp)
/* 339588 E0024338 94420134 */ lhu $v0, 0x134($v0)
/* 33958C E002433C 00021140 */ sll $v0, $v0, 5
/* 339590 E0024340 00451021 */ addu $v0, $v0, $a1
/* 339594 E0024344 44826000 */ mtc1 $v0, $f12
/* 339598 E0024348 00000000 */ nop
/* 33959C E002434C 46806320 */ cvt.s.w $f12, $f12
/* 3395A0 E0024350 0C080140 */ jal shim_sin_deg
/* 3395A4 E0024354 0080802D */ daddu $s0, $a0, $zero
/* 3395A8 E0024358 240200FF */ addiu $v0, $zero, 0xff
/* 3395AC E002435C 00501023 */ subu $v0, $v0, $s0
/* 3395B0 E0024360 44821000 */ mtc1 $v0, $f2
/* 3395B4 E0024364 00000000 */ nop
/* 3395B8 E0024368 468010A0 */ cvt.s.w $f2, $f2
/* 3395BC E002436C 46020002 */ mul.s $f0, $f0, $f2
/* 3395C0 E0024370 00000000 */ nop
/* 3395C4 E0024374 46020000 */ add.s $f0, $f0, $f2
/* 3395C8 E0024378 3C013FE0 */ lui $at, 0x3fe0
/* 3395CC E002437C 44811800 */ mtc1 $at, $f3
/* 3395D0 E0024380 44801000 */ mtc1 $zero, $f2
/* 3395D4 E0024384 46000021 */ cvt.d.s $f0, $f0
/* 3395D8 E0024388 46220002 */ mul.d $f0, $f0, $f2
/* 3395DC E002438C 00000000 */ nop
/* 3395E0 E0024390 44901000 */ mtc1 $s0, $f2
/* 3395E4 E0024394 00000000 */ nop
/* 3395E8 E0024398 468010A1 */ cvt.d.w $f2, $f2
/* 3395EC E002439C 46220000 */ add.d $f0, $f0, $f2
/* 3395F0 E00243A0 8FBF0014 */ lw $ra, 0x14($sp)
/* 3395F4 E00243A4 8FB00010 */ lw $s0, 0x10($sp)
/* 3395F8 E00243A8 46200020 */ cvt.s.d $f0, $f0
/* 3395FC E00243AC 4600010D */ trunc.w.s $f4, $f0
/* 339600 E00243B0 44022000 */ mfc1 $v0, $f4
/* 339604 E00243B4 03E00008 */ jr $ra
/* 339608 E00243B8 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,42 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E00243BC
/* 33960C E00243BC 3C028007 */ lui $v0, %hi(gGameStatusPtr)
/* 339610 E00243C0 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0)
/* 339614 E00243C4 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 339618 E00243C8 AFB00010 */ sw $s0, 0x10($sp)
/* 33961C E00243CC AFBF0014 */ sw $ra, 0x14($sp)
/* 339620 E00243D0 94420134 */ lhu $v0, 0x134($v0)
/* 339624 E00243D4 24A500B4 */ addiu $a1, $a1, 0xb4
/* 339628 E00243D8 00021140 */ sll $v0, $v0, 5
/* 33962C E00243DC 00451021 */ addu $v0, $v0, $a1
/* 339630 E00243E0 44826000 */ mtc1 $v0, $f12
/* 339634 E00243E4 00000000 */ nop
/* 339638 E00243E8 46806320 */ cvt.s.w $f12, $f12
/* 33963C E00243EC 0C080140 */ jal shim_sin_deg
/* 339640 E00243F0 0080802D */ daddu $s0, $a0, $zero
/* 339644 E00243F4 00101023 */ negu $v0, $s0
/* 339648 E00243F8 44821000 */ mtc1 $v0, $f2
/* 33964C E00243FC 00000000 */ nop
/* 339650 E0024400 468010A0 */ cvt.s.w $f2, $f2
/* 339654 E0024404 46020002 */ mul.s $f0, $f0, $f2
/* 339658 E0024408 00000000 */ nop
/* 33965C E002440C 46020000 */ add.s $f0, $f0, $f2
/* 339660 E0024410 3C013FE0 */ lui $at, 0x3fe0
/* 339664 E0024414 44811800 */ mtc1 $at, $f3
/* 339668 E0024418 44801000 */ mtc1 $zero, $f2
/* 33966C E002441C 46000021 */ cvt.d.s $f0, $f0
/* 339670 E0024420 46220002 */ mul.d $f0, $f0, $f2
/* 339674 E0024424 00000000 */ nop
/* 339678 E0024428 44901000 */ mtc1 $s0, $f2
/* 33967C E002442C 00000000 */ nop
/* 339680 E0024430 468010A1 */ cvt.d.w $f2, $f2
/* 339684 E0024434 46220000 */ add.d $f0, $f0, $f2
/* 339688 E0024438 8FBF0014 */ lw $ra, 0x14($sp)
/* 33968C E002443C 8FB00010 */ lw $s0, 0x10($sp)
/* 339690 E0024440 46200020 */ cvt.s.d $f0, $f0
/* 339694 E0024444 4600010D */ trunc.w.s $f4, $f0
/* 339698 E0024448 44022000 */ mfc1 $v0, $f4
/* 33969C E002444C 03E00008 */ jr $ra
/* 3396A0 E0024450 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,6 +1,13 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E0024D00
.double 1.2048192771084338
.section .text
glabel shape_spell_appendGfx
/* 3396A4 E0024454 27BDFF18 */ addiu $sp, $sp, -0xe8
/* 3396A8 E0024458 3C07DB06 */ lui $a3, 0xdb06

View File

@ -1,104 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel shape_spell_main
/* 339250 E0024000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 339254 E0024004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 339258 E0024008 4485A000 */ mtc1 $a1, $f20
/* 33925C E002400C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 339260 E0024010 4486B000 */ mtc1 $a2, $f22
/* 339264 E0024014 AFB1002C */ sw $s1, 0x2c($sp)
/* 339268 E0024018 0080882D */ daddu $s1, $a0, $zero
/* 33926C E002401C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 339270 E0024020 4487C000 */ mtc1 $a3, $f24
/* 339274 E0024024 27A40010 */ addiu $a0, $sp, 0x10
/* 339278 E0024028 AFB20030 */ sw $s2, 0x30($sp)
/* 33927C E002402C 8FB2006C */ lw $s2, 0x6c($sp)
/* 339280 E0024030 3C02E002 */ lui $v0, %hi(shape_spell_init)
/* 339284 E0024034 24424180 */ addiu $v0, $v0, %lo(shape_spell_init)
/* 339288 E0024038 AFA20018 */ sw $v0, 0x18($sp)
/* 33928C E002403C 3C02E002 */ lui $v0, %hi(shape_spell_update)
/* 339290 E0024040 24424188 */ addiu $v0, $v0, %lo(shape_spell_update)
/* 339294 E0024044 AFA2001C */ sw $v0, 0x1c($sp)
/* 339298 E0024048 3C02E002 */ lui $v0, %hi(shape_spell_render)
/* 33929C E002404C 244242E0 */ addiu $v0, $v0, %lo(shape_spell_render)
/* 3392A0 E0024050 AFA20020 */ sw $v0, 0x20($sp)
/* 3392A4 E0024054 24020012 */ addiu $v0, $zero, 0x12
/* 3392A8 E0024058 AFBF0034 */ sw $ra, 0x34($sp)
/* 3392AC E002405C AFB00028 */ sw $s0, 0x28($sp)
/* 3392B0 E0024060 AFA00010 */ sw $zero, 0x10($sp)
/* 3392B4 E0024064 AFA00024 */ sw $zero, 0x24($sp)
/* 3392B8 E0024068 0C080124 */ jal shim_create_effect_instance
/* 3392BC E002406C AFA20014 */ sw $v0, 0x14($sp)
/* 3392C0 E0024070 24040038 */ addiu $a0, $zero, 0x38
/* 3392C4 E0024074 24030001 */ addiu $v1, $zero, 1
/* 3392C8 E0024078 0040802D */ daddu $s0, $v0, $zero
/* 3392CC E002407C 0C08012C */ jal shim_general_heap_malloc
/* 3392D0 E0024080 AE030008 */ sw $v1, 8($s0)
/* 3392D4 E0024084 0040182D */ daddu $v1, $v0, $zero
/* 3392D8 E0024088 14600003 */ bnez $v1, .LE0024098
/* 3392DC E002408C AE02000C */ sw $v0, 0xc($s0)
.LE0024090:
/* 3392E0 E0024090 08009024 */ j .LE0024090
/* 3392E4 E0024094 00000000 */ nop
.LE0024098:
/* 3392E8 E0024098 3C013F80 */ lui $at, 0x3f80
/* 3392EC E002409C 44810000 */ mtc1 $at, $f0
/* 3392F0 E00240A0 240200FF */ addiu $v0, $zero, 0xff
/* 3392F4 E00240A4 AC60002C */ sw $zero, 0x2c($v1)
/* 3392F8 E00240A8 AC710000 */ sw $s1, ($v1)
/* 3392FC E00240AC AC620034 */ sw $v0, 0x34($v1)
/* 339300 E00240B0 E4740004 */ swc1 $f20, 4($v1)
/* 339304 E00240B4 E4760008 */ swc1 $f22, 8($v1)
/* 339308 E00240B8 E478000C */ swc1 $f24, 0xc($v1)
/* 33930C E00240BC 16200019 */ bnez $s1, .LE0024124
/* 339310 E00240C0 E4600028 */ swc1 $f0, 0x28($v1)
/* 339314 E00240C4 C7A60060 */ lwc1 $f6, 0x60($sp)
/* 339318 E00240C8 46143181 */ sub.s $f6, $f6, $f20
/* 33931C E00240CC 44921000 */ mtc1 $s2, $f2
/* 339320 E00240D0 00000000 */ nop
/* 339324 E00240D4 468010A0 */ cvt.s.w $f2, $f2
/* 339328 E00240D8 46020083 */ div.s $f2, $f0, $f2
/* 33932C E00240DC 46023182 */ mul.s $f6, $f6, $f2
/* 339330 E00240E0 00000000 */ nop
/* 339334 E00240E4 C7A40064 */ lwc1 $f4, 0x64($sp)
/* 339338 E00240E8 46162101 */ sub.s $f4, $f4, $f22
/* 33933C E00240EC 46022102 */ mul.s $f4, $f4, $f2
/* 339340 E00240F0 00000000 */ nop
/* 339344 E00240F4 C7A00068 */ lwc1 $f0, 0x68($sp)
/* 339348 E00240F8 46180001 */ sub.s $f0, $f0, $f24
/* 33934C E00240FC AC600010 */ sw $zero, 0x10($v1)
/* 339350 E0024100 AC600014 */ sw $zero, 0x14($v1)
/* 339354 E0024104 46020002 */ mul.s $f0, $f0, $f2
/* 339358 E0024108 00000000 */ nop
/* 33935C E002410C AC600018 */ sw $zero, 0x18($v1)
/* 339360 E0024110 AC720030 */ sw $s2, 0x30($v1)
/* 339364 E0024114 E466001C */ swc1 $f6, 0x1c($v1)
/* 339368 E0024118 E4640020 */ swc1 $f4, 0x20($v1)
/* 33936C E002411C 08009056 */ j .LE0024158
/* 339370 E0024120 E4600024 */ swc1 $f0, 0x24($v1)
.LE0024124:
/* 339374 E0024124 3C0141E8 */ lui $at, 0x41e8
/* 339378 E0024128 44810000 */ mtc1 $at, $f0
/* 33937C E002412C 3C0140C6 */ lui $at, 0x40c6
/* 339380 E0024130 34216666 */ ori $at, $at, 0x6666
/* 339384 E0024134 44811000 */ mtc1 $at, $f2
/* 339388 E0024138 24020018 */ addiu $v0, $zero, 0x18
/* 33938C E002413C AC600014 */ sw $zero, 0x14($v1)
/* 339390 E0024140 AC600018 */ sw $zero, 0x18($v1)
/* 339394 E0024144 AC600020 */ sw $zero, 0x20($v1)
/* 339398 E0024148 AC600024 */ sw $zero, 0x24($v1)
/* 33939C E002414C AC620030 */ sw $v0, 0x30($v1)
/* 3393A0 E0024150 E4600010 */ swc1 $f0, 0x10($v1)
/* 3393A4 E0024154 E462001C */ swc1 $f2, 0x1c($v1)
.LE0024158:
/* 3393A8 E0024158 0200102D */ daddu $v0, $s0, $zero
/* 3393AC E002415C 8FBF0034 */ lw $ra, 0x34($sp)
/* 3393B0 E0024160 8FB20030 */ lw $s2, 0x30($sp)
/* 3393B4 E0024164 8FB1002C */ lw $s1, 0x2c($sp)
/* 3393B8 E0024168 8FB00028 */ lw $s0, 0x28($sp)
/* 3393BC E002416C D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3393C0 E0024170 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3393C4 E0024174 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3393C8 E0024178 03E00008 */ jr $ra
/* 3393CC E002417C 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,95 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel shape_spell_update
/* 3393D8 E0024188 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 3393DC E002418C AFBF0028 */ sw $ra, 0x28($sp)
/* 3393E0 E0024190 AFB10024 */ sw $s1, 0x24($sp)
/* 3393E4 E0024194 AFB00020 */ sw $s0, 0x20($sp)
/* 3393E8 E0024198 8C830000 */ lw $v1, ($a0)
/* 3393EC E002419C 8C90000C */ lw $s0, 0xc($a0)
/* 3393F0 E00241A0 30620010 */ andi $v0, $v1, 0x10
/* 3393F4 E00241A4 10400004 */ beqz $v0, .LE00241B8
/* 3393F8 E00241A8 2402FFEF */ addiu $v0, $zero, -0x11
/* 3393FC E00241AC 00621024 */ and $v0, $v1, $v0
/* 339400 E00241B0 AC820000 */ sw $v0, ($a0)
/* 339404 E00241B4 AE000030 */ sw $zero, 0x30($s0)
.LE00241B8:
/* 339408 E00241B8 8E020030 */ lw $v0, 0x30($s0)
/* 33940C E00241BC 2442FFFF */ addiu $v0, $v0, -1
/* 339410 E00241C0 AE020030 */ sw $v0, 0x30($s0)
/* 339414 E00241C4 8E02002C */ lw $v0, 0x2c($s0)
/* 339418 E00241C8 8E030030 */ lw $v1, 0x30($s0)
/* 33941C E00241CC 24420001 */ addiu $v0, $v0, 1
/* 339420 E00241D0 04610005 */ bgez $v1, .LE00241E8
/* 339424 E00241D4 AE02002C */ sw $v0, 0x2c($s0)
/* 339428 E00241D8 0C080128 */ jal shim_remove_effect
/* 33942C E00241DC 00000000 */ nop
/* 339430 E00241E0 080090B3 */ j .LE00242CC
/* 339434 E00241E4 00000000 */ nop
.LE00241E8:
/* 339438 E00241E8 8E110000 */ lw $s1, ($s0)
/* 33943C E00241EC 16200019 */ bnez $s1, .LE0024254
/* 339440 E00241F0 24020001 */ addiu $v0, $zero, 1
/* 339444 E00241F4 14600017 */ bnez $v1, .LE0024254
/* 339448 E00241F8 24040001 */ addiu $a0, $zero, 1
/* 33944C E00241FC C6020004 */ lwc1 $f2, 4($s0)
/* 339450 E0024200 C6000010 */ lwc1 $f0, 0x10($s0)
/* 339454 E0024204 C606000C */ lwc1 $f6, 0xc($s0)
/* 339458 E0024208 46001080 */ add.s $f2, $f2, $f0
/* 33945C E002420C C6040018 */ lwc1 $f4, 0x18($s0)
/* 339460 E0024210 46043180 */ add.s $f6, $f6, $f4
/* 339464 E0024214 C6000014 */ lwc1 $f0, 0x14($s0)
/* 339468 E0024218 44051000 */ mfc1 $a1, $f2
/* 33946C E002421C C6020008 */ lwc1 $f2, 8($s0)
/* 339470 E0024220 46001080 */ add.s $f2, $f2, $f0
/* 339474 E0024224 44073000 */ mfc1 $a3, $f6
/* 339478 E0024228 44061000 */ mfc1 $a2, $f2
/* 33947C E002422C 24020018 */ addiu $v0, $zero, 0x18
/* 339480 E0024230 AFA00010 */ sw $zero, 0x10($sp)
/* 339484 E0024234 AFA00014 */ sw $zero, 0x14($sp)
/* 339488 E0024238 AFA00018 */ sw $zero, 0x18($sp)
/* 33948C E002423C 0C009000 */ jal shape_spell_main
/* 339490 E0024240 AFA2001C */ sw $v0, 0x1c($sp)
/* 339494 E0024244 8C42000C */ lw $v0, 0xc($v0)
/* 339498 E0024248 C6000028 */ lwc1 $f0, 0x28($s0)
/* 33949C E002424C E4400028 */ swc1 $f0, 0x28($v0)
/* 3394A0 E0024250 24020001 */ addiu $v0, $zero, 1
.LE0024254:
/* 3394A4 E0024254 16220011 */ bne $s1, $v0, .LE002429C
/* 3394A8 E0024258 00000000 */ nop
/* 3394AC E002425C 3C01E002 */ lui $at, %hi(D_E0024CF0)
/* 3394B0 E0024260 D4204CF0 */ ldc1 $f0, %lo(D_E0024CF0)($at)
/* 3394B4 E0024264 C6020034 */ lwc1 $f2, 0x34($s0)
/* 3394B8 E0024268 468010A1 */ cvt.d.w $f2, $f2
/* 3394BC E002426C 46201082 */ mul.d $f2, $f2, $f0
/* 3394C0 E0024270 00000000 */ nop
/* 3394C4 E0024274 C600001C */ lwc1 $f0, 0x1c($s0)
/* 3394C8 E0024278 3C01E002 */ lui $at, %hi(D_E0024CF8)
/* 3394CC E002427C D4244CF8 */ ldc1 $f4, %lo(D_E0024CF8)($at)
/* 3394D0 E0024280 46000021 */ cvt.d.s $f0, $f0
/* 3394D4 E0024284 46240002 */ mul.d $f0, $f0, $f4
/* 3394D8 E0024288 00000000 */ nop
/* 3394DC E002428C 4620120D */ trunc.w.d $f8, $f2
/* 3394E0 E0024290 E6080034 */ swc1 $f8, 0x34($s0)
/* 3394E4 E0024294 46200020 */ cvt.s.d $f0, $f0
/* 3394E8 E0024298 E600001C */ swc1 $f0, 0x1c($s0)
.LE002429C:
/* 3394EC E002429C C6060010 */ lwc1 $f6, 0x10($s0)
/* 3394F0 E00242A0 C600001C */ lwc1 $f0, 0x1c($s0)
/* 3394F4 E00242A4 C6040014 */ lwc1 $f4, 0x14($s0)
/* 3394F8 E00242A8 46003180 */ add.s $f6, $f6, $f0
/* 3394FC E00242AC C6000020 */ lwc1 $f0, 0x20($s0)
/* 339500 E00242B0 C6020018 */ lwc1 $f2, 0x18($s0)
/* 339504 E00242B4 46002100 */ add.s $f4, $f4, $f0
/* 339508 E00242B8 C6000024 */ lwc1 $f0, 0x24($s0)
/* 33950C E00242BC 46001080 */ add.s $f2, $f2, $f0
/* 339510 E00242C0 E6060010 */ swc1 $f6, 0x10($s0)
/* 339514 E00242C4 E6040014 */ swc1 $f4, 0x14($s0)
/* 339518 E00242C8 E6020018 */ swc1 $f2, 0x18($s0)
.LE00242CC:
/* 33951C E00242CC 8FBF0028 */ lw $ra, 0x28($sp)
/* 339520 E00242D0 8FB10024 */ lw $s1, 0x24($sp)
/* 339524 E00242D4 8FB00020 */ lw $s0, 0x20($sp)
/* 339528 E00242D8 03E00008 */ jr $ra
/* 33952C E00242DC 27BD0030 */ addiu $sp, $sp, 0x30

View File

@ -1,11 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E00AC288
/* 3AF0A8 E00AC288 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3AF0AC E00AC28C AFBF0010 */ sw $ra, 0x10($sp)
/* 3AF0B0 E00AC290 0C02B0A9 */ jal func_E00AC2A4
/* 3AF0B4 E00AC294 00000000 */ nop
/* 3AF0B8 E00AC298 8FBF0010 */ lw $ra, 0x10($sp)
/* 3AF0BC E00AC29C 03E00008 */ jr $ra
/* 3AF0C0 E00AC2A0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,77 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel stat_change_main
/* 3AEE20 E00AC000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3AEE24 E00AC004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3AEE28 E00AC008 4485A000 */ mtc1 $a1, $f20
/* 3AEE2C E00AC00C AFB1002C */ sw $s1, 0x2c($sp)
/* 3AEE30 E00AC010 0080882D */ daddu $s1, $a0, $zero
/* 3AEE34 E00AC014 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3AEE38 E00AC018 4486B000 */ mtc1 $a2, $f22
/* 3AEE3C E00AC01C 27A40010 */ addiu $a0, $sp, 0x10
/* 3AEE40 E00AC020 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3AEE44 E00AC024 4487C000 */ mtc1 $a3, $f24
/* 3AEE48 E00AC028 3C02E00B */ lui $v0, %hi(stat_change_init)
/* 3AEE4C E00AC02C 2442C11C */ addiu $v0, $v0, %lo(stat_change_init)
/* 3AEE50 E00AC030 AFA20018 */ sw $v0, 0x18($sp)
/* 3AEE54 E00AC034 3C02E00B */ lui $v0, %hi(stat_change_update)
/* 3AEE58 E00AC038 2442C124 */ addiu $v0, $v0, %lo(stat_change_update)
/* 3AEE5C E00AC03C AFA2001C */ sw $v0, 0x1c($sp)
/* 3AEE60 E00AC040 3C02E00B */ lui $v0, %hi(stat_change_render)
/* 3AEE64 E00AC044 2442C280 */ addiu $v0, $v0, %lo(stat_change_render)
/* 3AEE68 E00AC048 AFA20020 */ sw $v0, 0x20($sp)
/* 3AEE6C E00AC04C 3C02E00B */ lui $v0, %hi(func_E00AC288)
/* 3AEE70 E00AC050 2442C288 */ addiu $v0, $v0, %lo(func_E00AC288)
/* 3AEE74 E00AC054 AFA20024 */ sw $v0, 0x24($sp)
/* 3AEE78 E00AC058 24020056 */ addiu $v0, $zero, 0x56
/* 3AEE7C E00AC05C AFBF0030 */ sw $ra, 0x30($sp)
/* 3AEE80 E00AC060 AFB00028 */ sw $s0, 0x28($sp)
/* 3AEE84 E00AC064 AFA00010 */ sw $zero, 0x10($sp)
/* 3AEE88 E00AC068 0C080124 */ jal shim_create_effect_instance
/* 3AEE8C E00AC06C AFA20014 */ sw $v0, 0x14($sp)
/* 3AEE90 E00AC070 24040044 */ addiu $a0, $zero, 0x44
/* 3AEE94 E00AC074 24030001 */ addiu $v1, $zero, 1
/* 3AEE98 E00AC078 0040802D */ daddu $s0, $v0, $zero
/* 3AEE9C E00AC07C 0C08012C */ jal shim_general_heap_malloc
/* 3AEEA0 E00AC080 AE030008 */ sw $v1, 8($s0)
/* 3AEEA4 E00AC084 0040202D */ daddu $a0, $v0, $zero
/* 3AEEA8 E00AC088 14800003 */ bnez $a0, .LE00AC098
/* 3AEEAC E00AC08C AE02000C */ sw $v0, 0xc($s0)
.LE00AC090:
/* 3AEEB0 E00AC090 0802B024 */ j .LE00AC090
/* 3AEEB4 E00AC094 00000000 */ nop
.LE00AC098:
/* 3AEEB8 E00AC098 AC910000 */ sw $s1, ($a0)
/* 3AEEBC E00AC09C E4940004 */ swc1 $f20, 4($a0)
/* 3AEEC0 E00AC0A0 E4960008 */ swc1 $f22, 8($a0)
/* 3AEEC4 E00AC0A4 E498000C */ swc1 $f24, 0xc($a0)
/* 3AEEC8 E00AC0A8 8FA20064 */ lw $v0, 0x64($sp)
/* 3AEECC E00AC0AC 3C03E00B */ lui $v1, %hi(D_E00AC880)
/* 3AEED0 E00AC0B0 2463C880 */ addiu $v1, $v1, %lo(D_E00AC880)
/* 3AEED4 E00AC0B4 AC800018 */ sw $zero, 0x18($a0)
/* 3AEED8 E00AC0B8 AC820014 */ sw $v0, 0x14($a0)
/* 3AEEDC E00AC0BC C7A00060 */ lwc1 $f0, 0x60($sp)
/* 3AEEE0 E00AC0C0 240200FF */ addiu $v0, $zero, 0xff
/* 3AEEE4 E00AC0C4 AC820024 */ sw $v0, 0x24($a0)
/* 3AEEE8 E00AC0C8 001110C0 */ sll $v0, $s1, 3
/* 3AEEEC E00AC0CC 00431021 */ addu $v0, $v0, $v1
/* 3AEEF0 E00AC0D0 AC800028 */ sw $zero, 0x28($a0)
/* 3AEEF4 E00AC0D4 AC80002C */ sw $zero, 0x2c($a0)
/* 3AEEF8 E00AC0D8 AC800030 */ sw $zero, 0x30($a0)
/* 3AEEFC E00AC0DC AC800038 */ sw $zero, 0x38($a0)
/* 3AEF00 E00AC0E0 AC800034 */ sw $zero, 0x34($a0)
/* 3AEF04 E00AC0E4 E4800010 */ swc1 $f0, 0x10($a0)
/* 3AEF08 E00AC0E8 8C430000 */ lw $v1, ($v0)
/* 3AEF0C E00AC0EC AC83001C */ sw $v1, 0x1c($a0)
/* 3AEF10 E00AC0F0 8C430004 */ lw $v1, 4($v0)
/* 3AEF14 E00AC0F4 0200102D */ daddu $v0, $s0, $zero
/* 3AEF18 E00AC0F8 AC830020 */ sw $v1, 0x20($a0)
/* 3AEF1C E00AC0FC 8FBF0030 */ lw $ra, 0x30($sp)
/* 3AEF20 E00AC100 8FB1002C */ lw $s1, 0x2c($sp)
/* 3AEF24 E00AC104 8FB00028 */ lw $s0, 0x28($sp)
/* 3AEF28 E00AC108 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3AEF2C E00AC10C D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3AEF30 E00AC110 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3AEF34 E00AC114 03E00008 */ jr $ra
/* 3AEF38 E00AC118 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,106 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00AC8D0
.double 0.01
dlabel D_E00AC8D8
.double 0.01
.section .text
glabel stat_change_update
/* 3AEF44 E00AC124 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3AEF48 E00AC128 AFBF0010 */ sw $ra, 0x10($sp)
/* 3AEF4C E00AC12C 8C85000C */ lw $a1, 0xc($a0)
/* 3AEF50 E00AC130 8CA20014 */ lw $v0, 0x14($a1)
/* 3AEF54 E00AC134 8CA60018 */ lw $a2, 0x18($a1)
/* 3AEF58 E00AC138 2442FFFF */ addiu $v0, $v0, -1
/* 3AEF5C E00AC13C ACA20014 */ sw $v0, 0x14($a1)
/* 3AEF60 E00AC140 0040182D */ daddu $v1, $v0, $zero
/* 3AEF64 E00AC144 24C20001 */ addiu $v0, $a2, 1
/* 3AEF68 E00AC148 04610005 */ bgez $v1, .LE00AC160
/* 3AEF6C E00AC14C ACA20018 */ sw $v0, 0x18($a1)
/* 3AEF70 E00AC150 0C080128 */ jal shim_remove_effect
/* 3AEF74 E00AC154 00000000 */ nop
/* 3AEF78 E00AC158 0802B09D */ j .LE00AC274
/* 3AEF7C E00AC15C 00000000 */ nop
.LE00AC160:
/* 3AEF80 E00AC160 8CA3001C */ lw $v1, 0x1c($a1)
/* 3AEF84 E00AC164 24020001 */ addiu $v0, $zero, 1
/* 3AEF88 E00AC168 14620019 */ bne $v1, $v0, .LE00AC1D0
/* 3AEF8C E00AC16C 28C20021 */ slti $v0, $a2, 0x21
/* 3AEF90 E00AC170 10400019 */ beqz $v0, .LE00AC1D8
/* 3AEF94 E00AC174 00061040 */ sll $v0, $a2, 1
/* 3AEF98 E00AC178 3C03E00B */ lui $v1, %hi(D_E00AC83C)
/* 3AEF9C E00AC17C 2463C83C */ addiu $v1, $v1, %lo(D_E00AC83C)
/* 3AEFA0 E00AC180 00431021 */ addu $v0, $v0, $v1
/* 3AEFA4 E00AC184 90430000 */ lbu $v1, ($v0)
/* 3AEFA8 E00AC188 ACA30024 */ sw $v1, 0x24($a1)
/* 3AEFAC E00AC18C 90420001 */ lbu $v0, 1($v0)
/* 3AEFB0 E00AC190 3C01E00B */ lui $at, %hi(D_E00AC8D0)
/* 3AEFB4 E00AC194 D422C8D0 */ ldc1 $f2, %lo(D_E00AC8D0)($at)
/* 3AEFB8 E00AC198 44820000 */ mtc1 $v0, $f0
/* 3AEFBC E00AC19C 00000000 */ nop
/* 3AEFC0 E00AC1A0 46800020 */ cvt.s.w $f0, $f0
/* 3AEFC4 E00AC1A4 46000021 */ cvt.d.s $f0, $f0
/* 3AEFC8 E00AC1A8 46220002 */ mul.d $f0, $f0, $f2
/* 3AEFCC E00AC1AC 00000000 */ nop
/* 3AEFD0 E00AC1B0 3C013F80 */ lui $at, 0x3f80
/* 3AEFD4 E00AC1B4 44812000 */ mtc1 $at, $f4
/* 3AEFD8 E00AC1B8 46200020 */ cvt.s.d $f0, $f0
/* 3AEFDC E00AC1BC 46002081 */ sub.s $f2, $f4, $f0
/* 3AEFE0 E00AC1C0 46041080 */ add.s $f2, $f2, $f4
/* 3AEFE4 E00AC1C4 E4A0002C */ swc1 $f0, 0x2c($a1)
/* 3AEFE8 E00AC1C8 0802B08F */ j .LE00AC23C
/* 3AEFEC E00AC1CC E4A20028 */ swc1 $f2, 0x28($a1)
.LE00AC1D0:
/* 3AEFF0 E00AC1D0 14400005 */ bnez $v0, .LE00AC1E8
/* 3AEFF4 E00AC1D4 00061040 */ sll $v0, $a2, 1
.LE00AC1D8:
/* 3AEFF8 E00AC1D8 ACA00024 */ sw $zero, 0x24($a1)
/* 3AEFFC E00AC1DC ACA00028 */ sw $zero, 0x28($a1)
/* 3AF000 E00AC1E0 0802B08F */ j .LE00AC23C
/* 3AF004 E00AC1E4 ACA0002C */ sw $zero, 0x2c($a1)
.LE00AC1E8:
/* 3AF008 E00AC1E8 3C03E00B */ lui $v1, %hi(D_E00AC7F8)
/* 3AF00C E00AC1EC 2463C7F8 */ addiu $v1, $v1, %lo(D_E00AC7F8)
/* 3AF010 E00AC1F0 00431021 */ addu $v0, $v0, $v1
/* 3AF014 E00AC1F4 90430000 */ lbu $v1, ($v0)
/* 3AF018 E00AC1F8 ACA30024 */ sw $v1, 0x24($a1)
/* 3AF01C E00AC1FC 90420001 */ lbu $v0, 1($v0)
/* 3AF020 E00AC200 3C01E00B */ lui $at, %hi(D_E00AC8D8)
/* 3AF024 E00AC204 D422C8D8 */ ldc1 $f2, %lo(D_E00AC8D8)($at)
/* 3AF028 E00AC208 44820000 */ mtc1 $v0, $f0
/* 3AF02C E00AC20C 00000000 */ nop
/* 3AF030 E00AC210 46800020 */ cvt.s.w $f0, $f0
/* 3AF034 E00AC214 46000021 */ cvt.d.s $f0, $f0
/* 3AF038 E00AC218 46220002 */ mul.d $f0, $f0, $f2
/* 3AF03C E00AC21C 00000000 */ nop
/* 3AF040 E00AC220 3C013F80 */ lui $at, 0x3f80
/* 3AF044 E00AC224 44812000 */ mtc1 $at, $f4
/* 3AF048 E00AC228 46200020 */ cvt.s.d $f0, $f0
/* 3AF04C E00AC22C 46002081 */ sub.s $f2, $f4, $f0
/* 3AF050 E00AC230 46041080 */ add.s $f2, $f2, $f4
/* 3AF054 E00AC234 E4A00028 */ swc1 $f0, 0x28($a1)
/* 3AF058 E00AC238 E4A2002C */ swc1 $f2, 0x2c($a1)
.LE00AC23C:
/* 3AF05C E00AC23C ACA0003C */ sw $zero, 0x3c($a1)
/* 3AF060 E00AC240 ACA00040 */ sw $zero, 0x40($a1)
/* 3AF064 E00AC244 C4A60004 */ lwc1 $f6, 4($a1)
/* 3AF068 E00AC248 C4A00030 */ lwc1 $f0, 0x30($a1)
/* 3AF06C E00AC24C C4A40008 */ lwc1 $f4, 8($a1)
/* 3AF070 E00AC250 46003180 */ add.s $f6, $f6, $f0
/* 3AF074 E00AC254 C4A00038 */ lwc1 $f0, 0x38($a1)
/* 3AF078 E00AC258 C4A2000C */ lwc1 $f2, 0xc($a1)
/* 3AF07C E00AC25C 46002100 */ add.s $f4, $f4, $f0
/* 3AF080 E00AC260 C4A00034 */ lwc1 $f0, 0x34($a1)
/* 3AF084 E00AC264 46001080 */ add.s $f2, $f2, $f0
/* 3AF088 E00AC268 E4A60004 */ swc1 $f6, 4($a1)
/* 3AF08C E00AC26C E4A40008 */ swc1 $f4, 8($a1)
/* 3AF090 E00AC270 E4A2000C */ swc1 $f2, 0xc($a1)
.LE00AC274:
/* 3AF094 E00AC274 8FBF0010 */ lw $ra, 0x10($sp)
/* 3AF098 E00AC278 03E00008 */ jr $ra
/* 3AF09C E00AC27C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,11 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E00D8264
/* 3D6A24 E00D8264 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3D6A28 E00D8268 AFBF0010 */ sw $ra, 0x10($sp)
/* 3D6A2C E00D826C 0C03618C */ jal func_E00D8630
/* 3D6A30 E00D8270 00000000 */ nop
/* 3D6A34 E00D8274 8FBF0010 */ lw $ra, 0x10($sp)
/* 3D6A38 E00D8278 03E00008 */ jr $ra
/* 3D6A3C E00D827C 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,80 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel tattle_window_main
/* 3D67C0 E00D8000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 3D67C4 E00D8004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3D67C8 E00D8008 4485A000 */ mtc1 $a1, $f20
/* 3D67CC E00D800C F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3D67D0 E00D8010 4486B000 */ mtc1 $a2, $f22
/* 3D67D4 E00D8014 AFB20030 */ sw $s2, 0x30($sp)
/* 3D67D8 E00D8018 0080902D */ daddu $s2, $a0, $zero
/* 3D67DC E00D801C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3D67E0 E00D8020 4487C000 */ mtc1 $a3, $f24
/* 3D67E4 E00D8024 27A40010 */ addiu $a0, $sp, 0x10
/* 3D67E8 E00D8028 AFB1002C */ sw $s1, 0x2c($sp)
/* 3D67EC E00D802C 8FB10064 */ lw $s1, 0x64($sp)
/* 3D67F0 E00D8030 3C02E00E */ lui $v0, %hi(tattle_window_init)
/* 3D67F4 E00D8034 24428120 */ addiu $v0, $v0, %lo(tattle_window_init)
/* 3D67F8 E00D8038 AFA20018 */ sw $v0, 0x18($sp)
/* 3D67FC E00D803C 3C02E00E */ lui $v0, %hi(tattle_window_update)
/* 3D6800 E00D8040 24428128 */ addiu $v0, $v0, %lo(tattle_window_update)
/* 3D6804 E00D8044 AFA2001C */ sw $v0, 0x1c($sp)
/* 3D6808 E00D8048 3C02E00E */ lui $v0, %hi(tattle_window_render)
/* 3D680C E00D804C 2442825C */ addiu $v0, $v0, %lo(tattle_window_render)
/* 3D6810 E00D8050 AFA20020 */ sw $v0, 0x20($sp)
/* 3D6814 E00D8054 3C02E00E */ lui $v0, %hi(func_E00D8264)
/* 3D6818 E00D8058 24428264 */ addiu $v0, $v0, %lo(func_E00D8264)
/* 3D681C E00D805C AFA20024 */ sw $v0, 0x24($sp)
/* 3D6820 E00D8060 2402006C */ addiu $v0, $zero, 0x6c
/* 3D6824 E00D8064 AFBF0034 */ sw $ra, 0x34($sp)
/* 3D6828 E00D8068 AFB00028 */ sw $s0, 0x28($sp)
/* 3D682C E00D806C AFA00010 */ sw $zero, 0x10($sp)
/* 3D6830 E00D8070 0C080124 */ jal shim_create_effect_instance
/* 3D6834 E00D8074 AFA20014 */ sw $v0, 0x14($sp)
/* 3D6838 E00D8078 24040038 */ addiu $a0, $zero, 0x38
/* 3D683C E00D807C 24030001 */ addiu $v1, $zero, 1
/* 3D6840 E00D8080 0040802D */ daddu $s0, $v0, $zero
/* 3D6844 E00D8084 0C08012C */ jal shim_general_heap_malloc
/* 3D6848 E00D8088 AE030008 */ sw $v1, 8($s0)
/* 3D684C E00D808C 0040202D */ daddu $a0, $v0, $zero
/* 3D6850 E00D8090 14800003 */ bnez $a0, .LE00D80A0
/* 3D6854 E00D8094 AE02000C */ sw $v0, 0xc($s0)
.LE00D8098:
/* 3D6858 E00D8098 08036026 */ j .LE00D8098
/* 3D685C E00D809C 00000000 */ nop
.LE00D80A0:
/* 3D6860 E00D80A0 AC920000 */ sw $s2, ($a0)
/* 3D6864 E00D80A4 1E200004 */ bgtz $s1, .LE00D80B8
/* 3D6868 E00D80A8 AC800014 */ sw $zero, 0x14($a0)
/* 3D686C E00D80AC 240203E8 */ addiu $v0, $zero, 0x3e8
/* 3D6870 E00D80B0 0803602F */ j .LE00D80BC
/* 3D6874 E00D80B4 AC820010 */ sw $v0, 0x10($a0)
.LE00D80B8:
/* 3D6878 E00D80B8 AC910010 */ sw $s1, 0x10($a0)
.LE00D80BC:
/* 3D687C E00D80BC E4940004 */ swc1 $f20, 4($a0)
/* 3D6880 E00D80C0 E4960008 */ swc1 $f22, 8($a0)
/* 3D6884 E00D80C4 E498000C */ swc1 $f24, 0xc($a0)
/* 3D6888 E00D80C8 AC80001C */ sw $zero, 0x1c($a0)
/* 3D688C E00D80CC C7A00060 */ lwc1 $f0, 0x60($sp)
/* 3D6890 E00D80D0 0200102D */ daddu $v0, $s0, $zero
/* 3D6894 E00D80D4 AC800028 */ sw $zero, 0x28($a0)
/* 3D6898 E00D80D8 E4800018 */ swc1 $f0, 0x18($a0)
/* 3D689C E00D80DC C4800028 */ lwc1 $f0, 0x28($a0)
/* 3D68A0 E00D80E0 240300FF */ addiu $v1, $zero, 0xff
/* 3D68A4 E00D80E4 AC800020 */ sw $zero, 0x20($a0)
/* 3D68A8 E00D80E8 AC800024 */ sw $zero, 0x24($a0)
/* 3D68AC E00D80EC A0830034 */ sb $v1, 0x34($a0)
/* 3D68B0 E00D80F0 A0830035 */ sb $v1, 0x35($a0)
/* 3D68B4 E00D80F4 E4800030 */ swc1 $f0, 0x30($a0)
/* 3D68B8 E00D80F8 E480002C */ swc1 $f0, 0x2c($a0)
/* 3D68BC E00D80FC 8FBF0034 */ lw $ra, 0x34($sp)
/* 3D68C0 E00D8100 8FB20030 */ lw $s2, 0x30($sp)
/* 3D68C4 E00D8104 8FB1002C */ lw $s1, 0x2c($sp)
/* 3D68C8 E00D8108 8FB00028 */ lw $s0, 0x28($sp)
/* 3D68CC E00D810C D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3D68D0 E00D8110 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3D68D4 E00D8114 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3D68D8 E00D8118 03E00008 */ jr $ra
/* 3D68DC E00D811C 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,87 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel tattle_window_update
/* 3D68E8 E00D8128 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3D68EC E00D812C AFBF0010 */ sw $ra, 0x10($sp)
/* 3D68F0 E00D8130 8C830000 */ lw $v1, ($a0)
/* 3D68F4 E00D8134 8C85000C */ lw $a1, 0xc($a0)
/* 3D68F8 E00D8138 30620010 */ andi $v0, $v1, 0x10
/* 3D68FC E00D813C 10400005 */ beqz $v0, .LE00D8154
/* 3D6900 E00D8140 2402FFEF */ addiu $v0, $zero, -0x11
/* 3D6904 E00D8144 00621024 */ and $v0, $v1, $v0
/* 3D6908 E00D8148 AC820000 */ sw $v0, ($a0)
/* 3D690C E00D814C 24020017 */ addiu $v0, $zero, 0x17
/* 3D6910 E00D8150 ACA20010 */ sw $v0, 0x10($a1)
.LE00D8154:
/* 3D6914 E00D8154 8CA30010 */ lw $v1, 0x10($a1)
/* 3D6918 E00D8158 286203E8 */ slti $v0, $v1, 0x3e8
/* 3D691C E00D815C 10400002 */ beqz $v0, .LE00D8168
/* 3D6920 E00D8160 2462FFFF */ addiu $v0, $v1, -1
/* 3D6924 E00D8164 ACA20010 */ sw $v0, 0x10($a1)
.LE00D8168:
/* 3D6928 E00D8168 8CA30014 */ lw $v1, 0x14($a1)
/* 3D692C E00D816C 8CA60010 */ lw $a2, 0x10($a1)
/* 3D6930 E00D8170 24620001 */ addiu $v0, $v1, 1
/* 3D6934 E00D8174 04C10005 */ bgez $a2, .LE00D818C
/* 3D6938 E00D8178 ACA20014 */ sw $v0, 0x14($a1)
/* 3D693C E00D817C 0C080128 */ jal shim_remove_effect
/* 3D6940 E00D8180 00000000 */ nop
/* 3D6944 E00D8184 08036094 */ j .LE00D8250
/* 3D6948 E00D8188 00000000 */ nop
.LE00D818C:
/* 3D694C E00D818C 00C0202D */ daddu $a0, $a2, $zero
/* 3D6950 E00D8190 C4A00018 */ lwc1 $f0, 0x18($a1)
/* 3D6954 E00D8194 28620017 */ slti $v0, $v1, 0x17
/* 3D6958 E00D8198 ACA00028 */ sw $zero, 0x28($a1)
/* 3D695C E00D819C ACA0002C */ sw $zero, 0x2c($a1)
/* 3D6960 E00D81A0 1040000F */ beqz $v0, .LE00D81E0
/* 3D6964 E00D81A4 E4A0001C */ swc1 $f0, 0x1c($a1)
/* 3D6968 E00D81A8 3C02E00E */ lui $v0, %hi(D_E00D8818)
/* 3D696C E00D81AC 24428818 */ addiu $v0, $v0, %lo(D_E00D8818)
/* 3D6970 E00D81B0 00031880 */ sll $v1, $v1, 2
/* 3D6974 E00D81B4 00621821 */ addu $v1, $v1, $v0
/* 3D6978 E00D81B8 84620000 */ lh $v0, ($v1)
/* 3D697C E00D81BC 44820000 */ mtc1 $v0, $f0
/* 3D6980 E00D81C0 00000000 */ nop
/* 3D6984 E00D81C4 46800020 */ cvt.s.w $f0, $f0
/* 3D6988 E00D81C8 E4A00030 */ swc1 $f0, 0x30($a1)
/* 3D698C E00D81CC 90620002 */ lbu $v0, 2($v1)
/* 3D6990 E00D81D0 A0A20034 */ sb $v0, 0x34($a1)
/* 3D6994 E00D81D4 90620003 */ lbu $v0, 3($v1)
/* 3D6998 E00D81D8 08036085 */ j .LE00D8214
/* 3D699C E00D81DC A0A20035 */ sb $v0, 0x35($a1)
.LE00D81E0:
/* 3D69A0 E00D81E0 3C03E00E */ lui $v1, %hi(D_E00D8818)
/* 3D69A4 E00D81E4 24638818 */ addiu $v1, $v1, %lo(D_E00D8818)
/* 3D69A8 E00D81E8 84620058 */ lh $v0, 0x58($v1)
/* 3D69AC E00D81EC 44820000 */ mtc1 $v0, $f0
/* 3D69B0 E00D81F0 00000000 */ nop
/* 3D69B4 E00D81F4 46800020 */ cvt.s.w $f0, $f0
/* 3D69B8 E00D81F8 E4A00030 */ swc1 $f0, 0x30($a1)
/* 3D69BC E00D81FC 9062005A */ lbu $v0, 0x5a($v1)
/* 3D69C0 E00D8200 A0A20034 */ sb $v0, 0x34($a1)
/* 3D69C4 E00D8204 9063005B */ lbu $v1, 0x5b($v1)
/* 3D69C8 E00D8208 24020018 */ addiu $v0, $zero, 0x18
/* 3D69CC E00D820C ACA20014 */ sw $v0, 0x14($a1)
/* 3D69D0 E00D8210 A0A30035 */ sb $v1, 0x35($a1)
.LE00D8214:
/* 3D69D4 E00D8214 28820017 */ slti $v0, $a0, 0x17
/* 3D69D8 E00D8218 1040000D */ beqz $v0, .LE00D8250
/* 3D69DC E00D821C 00041880 */ sll $v1, $a0, 2
/* 3D69E0 E00D8220 3C02E00E */ lui $v0, %hi(D_E00D8818)
/* 3D69E4 E00D8224 24428818 */ addiu $v0, $v0, %lo(D_E00D8818)
/* 3D69E8 E00D8228 00621821 */ addu $v1, $v1, $v0
/* 3D69EC E00D822C 84620000 */ lh $v0, ($v1)
/* 3D69F0 E00D8230 44820000 */ mtc1 $v0, $f0
/* 3D69F4 E00D8234 00000000 */ nop
/* 3D69F8 E00D8238 46800020 */ cvt.s.w $f0, $f0
/* 3D69FC E00D823C E4A00030 */ swc1 $f0, 0x30($a1)
/* 3D6A00 E00D8240 90620002 */ lbu $v0, 2($v1)
/* 3D6A04 E00D8244 A0A20034 */ sb $v0, 0x34($a1)
/* 3D6A08 E00D8248 90620003 */ lbu $v0, 3($v1)
/* 3D6A0C E00D824C A0A20035 */ sb $v0, 0x35($a1)
.LE00D8250:
/* 3D6A10 E00D8250 8FBF0010 */ lw $ra, 0x10($sp)
/* 3D6A14 E00D8254 03E00008 */ jr $ra
/* 3D6A18 E00D8258 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -2339,7 +2339,7 @@ segments:
vram: 0xE0024000
subsegments:
- [0x339250, c, shape_spell]
- [0x339F10, data]
- [0x339F10]
- [0x339F60, bin] # shape_spell gfx
- name: effect_gather_energy_pink
dir: effects
@ -2515,7 +2515,7 @@ segments:
vram: 0xE004C000
subsegments:
- [0x359F20, c, music_note]
- [0x35A580, data]
- [0x35A580]
- [0x35A5E0, bin] # music_note gfx
- name: effect_smoke_burst
dir: effects
@ -2736,7 +2736,7 @@ segments:
vram: 0xE0080000
subsegments:
- [0x3812C0, c, recover]
- [0x381D80, data]
- [0x381D80]
- [0x381E00, bin] # recover gfx
- name: effect_disable_x
dir: effects
@ -3125,7 +3125,7 @@ segments:
vram: 0xE00D8000
subsegments:
- [0x3D67C0, c, tattle_window]
- [0x3D6FA0, data]
- [0x3D6FA0]
- [0x3D7040, bin] # tattle_window gfx
- name: effect_shiny_flare
dir: effects

View File

@ -169,6 +169,29 @@ D_09000CC8 = 0x09000CC8;
D_09000CE8 = 0x09000CE8;
D_09000D08 = 0x09000D08;
// effect_music_note
D_09001038 = 0x09001038;
D_090010C0 = 0x090010C0;
D_09001148 = 0x09001148;
D_090011D0 = 0x090011D0;
D_09001258 = 0x09001258;
D_090012E0 = 0x090012E0;
D_09001368 = 0x09001368;
// effect_recover
D_09003540 = 0x09003540;
D_09003580 = 0x09003580;
D_090035C0 = 0x090035C0;
D_09003600 = 0x09003600;
D_09003640 = 0x09003640;
D_09003680 = 0x09003680;
D_090036C0 = 0x090036C0;
D_09003700 = 0x09003700;
D_09003740 = 0x09003740;
D_09003780 = 0x09003780;
D_090037C0 = 0x090037C0;
D_09003800 = 0x09003800;
// Invalid pointers from dead code
dead_atan2 = 0x8002AF70;
dead_gCurrentCamID = 0x800A158C;