[Effects] Migrating data + a couple of functions (#817)

* [Effects] Migrating data + a couple of functions

* Addressed PR comments
This commit is contained in:
mrshigure 2022-10-11 17:28:15 -07:00 committed by GitHub
parent 37e138402f
commit 5df977a353
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
60 changed files with 1425 additions and 2503 deletions

View File

@ -600,9 +600,33 @@ typedef struct RingBlastFXData {
/* 0x00 */ char todo[0];
} RingBlastFXData; // size = unknown
// Likely to be the same as GreenImpactFXData and RedImpactFXData
typedef struct ShockwaveFXData {
/* 0x00 */ char todo[0];
} ShockwaveFXData; // size = unknown
/* 0x00 */ u16 unk_00;
/* 0x02 */ char unk_02[2]; // likely padding
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ f32 unk_44;
/* 0x48 */ f32 unk_48;
/* 0x4C */ s32 unk_4C;
/* 0x50 */ Color_RGB8 unk_50;
/* 0x53 */ Color_RGB8 unk_53;
/* 0x56 */ char unk_56[2]; // likely padding
} ShockwaveFXData; // size = 0x58
typedef struct MusicNoteFXData {
/* 0x00 */ s32 unk_00;
@ -733,6 +757,7 @@ typedef struct DebuffFXData {
/* 0x3E */ char unk_3E[2];
} DebuffFXData; // size = 0x40
// Likely to be the same as RedImpactFXData and ShockwaveFXData
typedef struct GreenImpactFXData {
/* 0x00 */ u16 unk_00;
/* 0x02 */ char unk_02[2]; // likely padding
@ -999,8 +1024,25 @@ typedef struct FireFlowerFXData {
} FireFlowerFXData; // size = 0x4C
typedef struct RecoverFXData {
/* 0x00 */ char todo[0];
} RecoverFXData; // size = unknown
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ f32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ s32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ s32 unk_30;
/* 0x34 */ s32 unk_34;
/* 0x38 */ f32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ s32 unk_40;
/* 0x44 */ s32 unk_44;
} RecoverFXData; // size = 0x48
typedef struct DisableXFXData {
/* 0x00 */ s32 type;
@ -1529,9 +1571,33 @@ typedef struct WhirlwindFXData {
/* 0x10 */ char todo[0];
} WhirlwindFXData; // size = unknown
// Likely to be the same as GreenImpactFXData and ShockwaveFXData
typedef struct RedImpactFXData {
/* 0x00 */ char todo[0];
} RedImpactFXData; // size = unknown
/* 0x00 */ u16 unk_00;
/* 0x02 */ char unk_02[2]; // likely padding
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ s32 unk_18;
/* 0x1C */ f32 unk_1C;
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
/* 0x28 */ s32 unk_28;
/* 0x2C */ s32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ f32 unk_3C;
/* 0x40 */ f32 unk_40;
/* 0x44 */ f32 unk_44;
/* 0x48 */ f32 unk_48;
/* 0x4C */ s32 unk_4C;
/* 0x50 */ Color_RGB8 unk_50;
/* 0x53 */ Color_RGB8 unk_53;
/* 0x56 */ char unk_56[2]; // likely padding
} RedImpactFXData; // size = 0x58
typedef struct FloatingCloudPuffFXData {
/* 0x00 */ s32 unk_00;

View File

@ -69,7 +69,7 @@ void stars_burst_main(s32, f32, f32, f32, f32, f32, s32);
FX_MAIN(stars_shimmer_main);
FX_MAIN(rising_bubble_main);
FX_MAIN(ring_blast_main);
FX_MAIN(shockwave_main);
void shockwave_main(s32, f32, f32, f32);
void music_note_main(s32, f32, f32, f32);
void smoke_burst_main(s32, f32, f32, f32, f32, s32);
void sweat_main(s32, f32, f32, f32, f32, f32, s32);
@ -95,7 +95,7 @@ void bulb_glow_main(s32, f32, f32, f32, f32, EffectInstance**);
void fx_3D_main(s32, f32, f32, f32, f32, f32, f32, s32, EffectInstance**);
void blast_main(s32, f32, f32, f32, f32, s32);
EffectInstance* fire_flower_main(s32, f32, f32, f32, s32);
FX_MAIN(recover_main);
EffectInstance* recover_main(s32, f32, f32, f32, s32);
EffectInstance* disable_x_main(s32, f32, f32, f32, s32);
EffectInstance* bombette_breaking_main(s32, s32, s32, f32, s32, s32);
FX_MAIN(firework_main);
@ -135,7 +135,7 @@ EffectInstance* throw_spiny_main(s32, f32, f32, f32, f32, f32, f32, f32, s32);
EffectInstance* fx_65_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(tubba_heart_attack_main);
FX_MAIN(whirlwind_main);
FX_MAIN(red_impact_main);
EffectInstance* red_impact_main(s32, f32, f32, f32, f32);
EffectInstance* floating_cloud_puff_main(s32, f32, f32, f32, f32, s32);
FX_MAIN(energy_in_out_main);
EffectInstance* tattle_window_main(s32, f32, f32, f32, f32, s32);

View File

@ -64,7 +64,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x22 */ FX_ENTRY(stars_shimmer, effect_gfx_sparkles),
/* 0x23 */ FX_ENTRY(rising_bubble, _356530),
/* 0x24 */ FX_ENTRY(ring_blast, _3573A0),
/* 0x25 */ FX_ENTRY(shockwave, _3593B0),
/* 0x25 */ FX_ENTRY(shockwave, effect_gfx_shockwave),
/* 0x26 */ FX_ENTRY(music_note, effect_gfx_music_note),
/* 0x27 */ FX_ENTRY(smoke_burst, effect_gfx_landing_dust),
/* 0x28 */ FX_ENTRY(sweat, _35C550),
@ -89,21 +89,21 @@ EffectTableEntry gEffectTable[] = {
/* 0x3B */ FX_ENTRY(aura, effect_gfx_aura),
/* 0x3C */ FX_ENTRY(bulb_glow, effect_gfx_bulb_glow),
/* 0x3D */ FX_ENTRY_NUMBERED(3D, effect_gfx_effect_3D),
/* 0x3E */ FX_ENTRY(blast, _37D9D0),
/* 0x3E */ FX_ENTRY(blast, effect_gfx_blast),
/* 0x3F */ FX_ENTRY(fire_flower, effect_gfx_fire_flower),
/* 0x40 */ FX_ENTRY(recover, effect_gfx_recover),
/* 0x41 */ FX_ENTRY(disable_x, effect_gfx_disable_x),
/* 0x42 */ FX_ENTRY(bombette_breaking, _37D9D0),
/* 0x42 */ FX_ENTRY(bombette_breaking, effect_gfx_blast),
/* 0x43 */ FX_ENTRY(firework, effect_gfx_firework),
/* 0x44 */ FX_ENTRY(confetti, effect_gfx_confetti),
/* 0x45 */ FX_ENTRY(snowfall, _38D070),
/* 0x46 */ FX_ENTRY_NUMBERED(46, effect_gfx_effect_46),
/* 0x47 */ FX_ENTRY(gather_magic, effect_gfx_gather_magic),
/* 0x48 */ FX_ENTRY(attack_result_text, _3903D0),
/* 0x48 */ FX_ENTRY(attack_result_text, effect_gfx_attack_result_text),
/* 0x49 */ FX_ENTRY(small_gold_sparkle, effect_gfx_small_gold_sparkle),
/* 0x4A */ FX_ENTRY(flashing_box_shockwave, effect_gfx_flashing_box_shockwave),
/* 0x4B */ FX_ENTRY(balloon, effect_gfx_balloon),
/* 0x4C */ FX_ENTRY(floating_rock, _3960F0),
/* 0x4C */ FX_ENTRY(floating_rock, effect_gfx_floating_rock),
/* 0x4D */ FX_ENTRY(chomp_drop, effect_gfx_chomp_drop),
/* 0x4E */ FX_ENTRY(quizmo_stage, _398BC0),
/* 0x4F */ FX_ENTRY(radiating_energy_orb, _3A0D60),
@ -124,14 +124,14 @@ EffectTableEntry gEffectTable[] = {
/* 0x5E */ FX_ENTRY(lightning_bolt, effect_gfx_lightning_bolt),
/* 0x5F */ FX_ENTRY(water_splash, effect_gfx_water_splash),
/* 0x60 */ FX_ENTRY(snowman_doll, _3BD9A0),
/* 0x61 */ FX_ENTRY(fright_jar, _3C1BA0),
/* 0x61 */ FX_ENTRY(fright_jar, effect_gfx_fright_jar),
/* 0x62 */ FX_ENTRY(stop_watch, _3CB890),
/* 0x63 */ FX_ENTRY_NUMBERED(63, effect_gfx_effect_63),
/* 0x64 */ FX_ENTRY(throw_spiny, effect_gfx_throw_spiny),
/* 0x65 */ FX_ENTRY_NUMBERED(65, effect_gfx_effect_65),
/* 0x66 */ FX_ENTRY(tubba_heart_attack, _3D2580),
/* 0x67 */ FX_ENTRY(whirlwind, _3D3930),
/* 0x68 */ FX_ENTRY(red_impact, _3593B0),
/* 0x68 */ FX_ENTRY(red_impact, effect_gfx_shockwave),
/* 0x69 */ FX_ENTRY(floating_cloud_puff, effect_gfx_floating_cloud_puff),
/* 0x6A */ {},
/* 0x6B */ FX_ENTRY(energy_in_out, effect_gfx_energy_in_out),
@ -148,7 +148,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x76 */ {},
/* 0x77 */ FX_ENTRY(firework_rocket, effect_gfx_firework_rocket),
/* 0x78 */ FX_ENTRY(peach_star_beam, effect_gfx_peach_star_beam),
/* 0x79 */ FX_ENTRY(chapter_change, _3EBE60),
/* 0x79 */ FX_ENTRY(chapter_change, effect_gfx_chapter_change),
/* 0x7A */ FX_ENTRY(ice_shard, _3F8CC0),
/* 0x7B */ FX_ENTRY(spirit_card, _3FA4B0),
/* 0x7C */ FX_ENTRY(lil_oink, effect_gfx_lil_oink),

View File

@ -1,21 +1,21 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_09001500[];
extern Gfx D_090015A8[];
extern Gfx D_09001610[];
extern Gfx D_09001658[];
extern Gfx D_090016A0[];
extern Gfx D_090016E8[];
extern Gfx D_09001730[];
extern Gfx D_090018B8[];
extern Gfx D_090018D8[];
extern Gfx D_090018F8[];
extern Gfx D_09001918[];
extern Gfx D_09001938[];
extern Gfx D_09001500_3918D0[];
extern Gfx D_090015A8_391978[];
extern Gfx D_09001610_3919E0[];
extern Gfx D_09001658_391A28[];
extern Gfx D_090016A0_391A70[];
extern Gfx D_090016E8_391AB8[];
extern Gfx D_09001730_391B00[];
extern Gfx D_090018B8_391C88[];
extern Gfx D_090018D8_391CA8[];
extern Gfx D_090018F8_391CC8[];
extern Gfx D_09001918_391CE8[];
extern Gfx D_09001938_391D08[];
Gfx* D_E0090A40[5] = { D_09001658, D_09001610, D_090016A0, D_090016E8, D_09001730 };
Gfx* D_E0090A54[5] = { D_090018D8, D_090018B8, D_090018F8, D_09001918, D_09001938 };
Gfx* D_E0090A40[5] = { D_09001658_391A28, D_09001610_3919E0, D_090016A0_391A70, D_090016E8_391AB8, D_09001730_391B00 };
Gfx* D_E0090A54[5] = { D_090018D8_391CA8, D_090018B8_391C88, D_090018F8_391CC8, D_09001918_391CE8, D_09001938_391D08 };
u8 D_E0090A68[8] = { 10, 40, 80, 120, 125, 100, 90, 100 };
u8 D_E0090A70[8] = { 60, 80, 100, 110, 112, 95, 100, 0 };
@ -201,7 +201,7 @@ void func_E0090444(EffectInstance* effect) {
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 255, 255, 255, data->unk_14);
gSPDisplayList(gMasterGfxPos++, D_090015A8);
gSPDisplayList(gMasterGfxPos++, D_090015A8_391978);
gSPDisplayList(gMasterGfxPos++, D_E0090A40[data->unk_04]);
gSPDisplayList(gMasterGfxPos++, D_E0090A54[data->unk_04]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
@ -209,7 +209,7 @@ void func_E0090444(EffectInstance* effect) {
unk_00 -= 5;
gDPSetPrimColor(gMasterGfxPos++, 0, 0, D_E0090A78[unk_00][0], D_E0090A78[unk_00][1], D_E0090A78[unk_00][2], data->unk_14);
gDPSetEnvColor(gMasterGfxPos++, D_E0090A78[unk_00][3], D_E0090A78[unk_00][4], D_E0090A78[unk_00][5], 0);
gSPDisplayList(gMasterGfxPos++, D_09001500);
gSPDisplayList(gMasterGfxPos++, D_09001500_3918D0);
gSPDisplayList(gMasterGfxPos++, D_E0090A40[data->unk_04]);
gSPScisTextureRectangle(gMasterGfxPos++,

View File

@ -6,20 +6,22 @@ void blast_update(EffectInstance* effect);
void blast_render(EffectInstance* effect);
void blast_appendGfx(void* effect);
extern Gfx D_09001300[];
extern Gfx D_09001378[];
extern Gfx D_090013F0[];
extern Gfx D_09001468[];
extern Gfx D_090014E0[];
extern Gfx D_09001558[];
extern Gfx D_090015D0[];
extern Gfx D_09001648[];
extern Gfx D_090016C0[];
extern Gfx D_09001738[];
extern Gfx D_090017B0[];
extern Gfx D_09001300_37ECD0[];
extern Gfx D_09001378_37ED48[];
extern Gfx D_090013F0_37EDC0[];
extern Gfx D_09001468_37EE38[];
extern Gfx D_090014E0_37EEB0[];
extern Gfx D_09001558_37EF28[];
extern Gfx D_090015D0_37EFA0[];
extern Gfx D_09001648_37F018[];
extern Gfx D_090016C0_37F090[];
extern Gfx D_09001738_37F108[];
extern Gfx D_090017B0_37F190[];
Gfx* D_E007C510[] = {
D_09001378, D_090013F0, D_09001468, D_090014E0, D_09001558, D_090015D0, D_09001648, D_090016C0, D_09001738
D_09001378_37ED48, D_090013F0_37EDC0, D_09001468_37EE38,
D_090014E0_37EEB0, D_09001558_37EF28, D_090015D0_37EFA0,
D_09001648_37F018, D_090016C0_37F090, D_09001738_37F108
};
void blast_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) {
@ -100,8 +102,8 @@ void blast_appendGfx(void* effect) {
s32 temp_f4;
s32 alpha;
dlist = D_090017B0;
dlist2 = D_09001300;
dlist = D_090017B0_37F190;
dlist2 = D_09001300_37ECD0;
temp_f2 = data->unk_20;
temp_f4 = temp_f2;

View File

@ -7,15 +7,15 @@ void bombette_breaking_update(EffectInstance* effect);
void bombette_breaking_render(EffectInstance* effect);
void bombette_breaking_appendGfx(void* effect);
extern Gfx D_090018C0[];
extern Gfx D_09001D00[];
extern Gfx D_09001CC8[];
extern Gfx D_09001C80[];
extern Gfx D_090017D0[];
extern Gfx D_090017D0_37F1A0[];
extern Gfx D_090018C0_37F290[];
extern Gfx D_09001C80_37F650[];
extern Gfx D_09001CC8_37F698[];
extern Gfx D_09001D00_37F6D0[];
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 };
Gfx* D_E0084E10[] = { D_090018C0_37F290, D_090018C0_37F290, D_090018C0_37F290 };
Gfx* D_E0084E1C[] = { D_09001D00_37F6D0, D_09001CC8_37F698, D_09001C80_37F650 };
Gfx* D_E0084E28[] = { D_090017D0_37F1A0, D_090017D0_37F1A0, D_090017D0_37F1A0 };
void (*D_E0084E34)(u16, f32*, f32*, f32*, f32*, f32*, f32*) = get_model_center_and_size;
Model* (*D_E0084E38)(s32) = get_model_from_list_index;

View File

@ -1,5 +1,6 @@
#include "common.h"
#include "effects_internal.h"
#include "message_ids.h"
typedef struct {
/* 0x00 */ Gfx* displayList;
@ -9,12 +10,79 @@ typedef struct {
/* 0x0A */ s16 height;
} UnkStruct; // size: 0xC
extern s32 D_E010E750[];
extern UnkStruct D_E010E79C[];
extern UnkStruct D_E010E7D8[];
extern UnkStruct D_E010E7FC[];
extern UnkStruct D_E010E838[];
extern UnkStruct D_E010E868[];
extern Gfx D_0900BE40_3F7CA0[];
extern Gfx D_0900BE88_3F7CE8[];
extern Gfx D_0900BED0_3F7D30[];
extern Gfx D_0900BF18_3F7D78[];
extern Gfx D_0900BF60_3F7DC0[];
extern Gfx D_0900BFA8_3F7E08[];
extern Gfx D_0900BFF0_3F7E50[];
extern Gfx D_0900C038_3F7E98[];
extern Gfx D_0900C080_3F7EE0[];
extern Gfx D_0900C168_3F7FC8[];
extern Gfx D_0900C1B0_3F8010[];
extern Gfx D_0900C1F8_3F8058[];
extern Gfx D_0900C240_3F80A0[];
extern Gfx D_0900C328_3F8188[];
extern Gfx D_0900C370_3F81D0[];
extern Gfx D_0900C458_3F82B8[];
extern Gfx D_0900C540_3F83A0[];
s32 D_E010E750[] = {
-1,
MSG_Menus_019D, MSG_Menus_019E, MSG_Menus_019F,
MSG_Menus_01A0, MSG_Menus_01A1, MSG_Menus_01A2,
MSG_Menus_01A3, MSG_Menus_01A4, MSG_Menus_019C,
-1, -1, -1, -1, -1, -1, -1, -1, -1
};
UnkStruct D_E010E79C[] = {
{ D_0900C080_3F7EE0, 104, 0, 128, 10 },
{ D_0900C168_3F7FC8, 104, 10, 128, 10 },
{ D_0900C1B0_3F8010, 104, 20, 128, 10 },
{ D_0900C1F8_3F8058, 104, 30, 128, 10 },
{ NULL, 0, 0, 0, 0 }
};
UnkStruct D_E010E7D8[] = {
{ D_0900C458_3F82B8, -16, -6, 144, 20 },
{ D_0900C540_3F83A0, -16, 14, 144, 20 },
{ NULL, 0, 0, 0, 0 }
};
UnkStruct D_E010E7FC[] = {
{ D_0900C080_3F7EE0, 0, -6, 128, 10 },
{ D_0900C168_3F7FC8, 0, 4, 128, 10 },
{ D_0900C1B0_3F8010, 0, 14, 128, 10 },
{ D_0900C1F8_3F8058, 0, 24, 128, 10 },
{ NULL, 0, 0, 0, 0 }
};
UnkStruct D_E010E838[] = {
{ D_0900C240_3F80A0, 0, 0, 104, 20 },
{ D_0900C328_3F8188, 0, 20, 104, 20 },
{ D_0900C370_3F81D0, 232, 0, 16, 40 },
{ NULL, 0, 0, 0, 0 }
};
UnkStruct D_E010E868[] = {
{ D_0900BE40_3F7CA0, 128, -33, 64, 64 },
{ NULL, 0, 0, 0, 0 },
{ D_0900BE88_3F7CE8, 128, -33, 64, 64 },
{ NULL, 0, 0, 0, 0 },
{ D_0900BED0_3F7D30, 128, -33, 64, 64 },
{ NULL, 0, 0, 0, 0 },
{ D_0900BF18_3F7D78, 128, -33, 64, 64 },
{ NULL, 0, 0, 0, 0 },
{ D_0900BF60_3F7DC0, 128, -33, 64, 64 },
{ NULL, 0, 0, 0, 0 },
{ D_0900BFA8_3F7E08, 128, -33, 64, 64 },
{ NULL, 0, 0, 0, 0 },
{ D_0900BFF0_3F7E50, 128, -33, 64, 64 },
{ NULL, 0, 0, 0, 0 },
{ D_0900C038_3F7E98, 128, -33, 64, 64 },
{ NULL, 0, 0, 0, 0 }
};
void chapter_change_init(EffectInstance* effect);
void chapter_change_update(EffectInstance* effect);

View File

@ -1,12 +1,75 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx* D_E00DE810[][5];
extern Gfx* D_E00DE84C[];
extern s8 D_E00DE858[];
extern u8 D_E00DE8B4[];
extern u8 D_E00DE910[];
extern u8 D_E00DE96C[];
extern Gfx D_09002000_3DB100[];
extern Gfx D_09002200_3DB300[];
extern Gfx D_09002220_3DB320[];
extern Gfx D_09002240_3DB340[];
extern Gfx D_09002260_3DB360[];
extern Gfx D_09002280_3DB380[];
extern Gfx D_090022A0_3DB3A0[];
Gfx* D_E00DE810[][5] = {
{ D_09002200_3DB300, D_09002220_3DB320, D_09002240_3DB340, D_09002260_3DB360, D_09002280_3DB380 },
{ D_09002200_3DB300, D_09002220_3DB320, D_09002240_3DB340, D_09002260_3DB360, D_09002280_3DB380 },
{ D_09002200_3DB300, D_09002220_3DB320, D_09002240_3DB340, D_09002260_3DB360, D_09002280_3DB380 }
};
Gfx* D_E00DE84C[] = {
D_09002000_3DB100, D_090022A0_3DB3A0, D_09002000_3DB100
};
s8 D_E00DE858[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF8, 0xF1, 0xEB, 0xE6, 0xE2, 0xDE, 0xDB, 0xD9, 0xD8, 0xD7,
0xD6, 0xD5, 0xD4, 0xD3, 0xD2, 0xD1, 0xD0, 0xCF, 0xCE, 0xCD,
0xCC, 0xCB, 0xCA, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0xC3,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
u8 D_E00DE8B4[] = {
0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31,
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45,
0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32,
0x34, 0x37, 0x39, 0x3C, 0x3E, 0x41, 0x43, 0x46, 0x48, 0x4B,
0x4D, 0x50, 0x52, 0x55, 0x57, 0x5A, 0x5C, 0x5F, 0x61, 0x64,
0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31,
0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B,
0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45,
0x00, 0x00
};
u8 D_E00DE910[] = {
0x00, 0x14, 0x28, 0x3C, 0x50, 0x64, 0x78, 0x8C, 0xA0, 0xB4,
0xBE, 0xC3, 0xD2, 0xD0, 0xD3, 0xD6, 0xD9, 0xDC, 0xDF, 0xE2,
0xE5, 0xE8, 0xEB, 0xEE, 0xF1, 0xF4, 0xF7, 0xFA, 0xFD, 0xFF,
0x00, 0x14, 0x28, 0x3C, 0x50, 0x64, 0x78, 0x8C, 0xA0, 0xB4,
0xBE, 0xC3, 0xD2, 0xD0, 0xD3, 0xD6, 0xD9, 0xDC, 0xDF, 0xE2,
0xE5, 0xE8, 0xEB, 0xEE, 0xF1, 0xF4, 0xF7, 0xFA, 0xFD, 0xFF,
0x00, 0x14, 0x28, 0x3C, 0x50, 0x64, 0x78, 0x8C, 0xA0, 0xB4,
0xBE, 0xC3, 0xD2, 0xD0, 0xD3, 0xD6, 0xD9, 0xDC, 0xDF, 0xE2,
0xE5, 0xE8, 0xEB, 0xEE, 0xF1, 0xF4, 0xF7, 0xFA, 0xFD, 0xFF,
0x00, 0x00
};
u8 D_E00DE96C[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13,
0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D,
0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
void cold_breath_init(EffectInstance* effect);
void cold_breath_update(EffectInstance* effect);

View File

@ -3,7 +3,23 @@
extern Gfx D_090004C0_343500[];
extern Gfx D_090005E0_343620[];
extern u8 D_E0030E90[];
u8 D_E0030E90[] = {
0xFE, 0xAC, 0xAC,
0xFE, 0xAC, 0xD5,
0xFE, 0xB4, 0x9A,
0xD5, 0xB4, 0xFE,
0xB4, 0xB4, 0xFE,
0xB4, 0xDD, 0xFE,
0xB4, 0xFE, 0xFE,
0xB4, 0xFE, 0xD5,
0xB4, 0xFE, 0xB4,
0xD5, 0xFE, 0xB4,
0xFE, 0xFE, 0xB4,
0xFE, 0xD5, 0xAC
};
u8 D_E0030EB4[] = { 0, 0, 0 };
void damage_stars_appendGfx(void* effect);

View File

@ -1,8 +1,16 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx* D_E00C6C90[];
extern Gfx* D_E00C6C9C[];
extern Gfx D_09001B70_3CF250[];
extern Gfx D_09001C98_3CF378[];
Gfx* D_E00C6C90[] = {
D_09001C98_3CF378, D_09001C98_3CF378, D_09001C98_3CF378
};
Gfx* D_E00C6C9C[] = {
D_09001B70_3CF250, D_09001B70_3CF250, D_09001B70_3CF250, NULL, NULL
};
void fx_63_init(EffectInstance* effect);
void fx_63_update(EffectInstance* effect);

View File

@ -2,9 +2,26 @@
#include "effects_internal.h"
extern Gfx D_09001E40_36CD20[];
extern Gfx* D_E00685B0[];
extern Gfx* D_E00685BC[];
extern Gfx* D_E00685F4[];
extern Gfx D_09001EA8_36CD88[];
extern Gfx D_09001F10_36CDF0[];
extern Gfx D_09001F78_36CE58[];
extern Gfx D_09002058_36CF38[];
extern Gfx D_09002078_36CF58[];
Gfx* D_E00685B0[] = {
D_09001E40_36CD20, D_09001E40_36CD20, D_09002058_36CF38
};
Gfx* D_E00685BC[] = {
D_09001E40_36CD20, D_09001E40_36CD20, D_09001E40_36CD20, D_09001E40_36CD20,
D_09001E40_36CD20, D_09001EA8_36CD88, D_09001EA8_36CD88, D_09001F10_36CDF0,
D_09001F10_36CDF0, D_09001F10_36CDF0, D_09001F10_36CDF0, D_09001F10_36CDF0,
D_09001EA8_36CD88, D_09001EA8_36CD88
};
Gfx* D_E00685F4[] = {
D_09001F78_36CE58, D_09001F78_36CE58, D_09002078_36CF58
};
void ending_decals_init(EffectInstance* effect);
void ending_decals_update(EffectInstance* effect);

View File

@ -2,9 +2,30 @@
#include "effects_internal.h"
extern Gfx D_09000200_3D6130[];
extern Gfx D_090003A8_3D62D8[];
extern Gfx D_090003C8_3D62F8[];
extern Gfx D_090003E8_3D6318[];
extern Gfx D_09000528_3D6458[];
extern Gfx D_09000540_3D6470[];
extern Gfx D_09000558_3D6488[];
extern Gfx D_09000688_3D65B8[];
extern Gfx D_09000808_3D6738[];
extern Gfx* D_E00D6E40[];
Gfx* D_E00D6E40[] = {
D_090003A8_3D62D8, D_090003C8_3D62F8, D_090003E8_3D6318, D_09000528_3D6458,
D_09000540_3D6470, D_09000558_3D6488, D_09000688_3D65B8, D_09000688_3D65B8,
D_09000688_3D65B8, D_09000558_3D6488, D_09000808_3D6738, D_09000688_3D65B8,
D_09000558_3D6488
};
u8 D_E00D6E74[] = {
0x0B, 0x0B, 0x0B, 0x0B, 0x11, 0x0B, 0x0B, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x00, 0x00, 0x00
};
u8 D_E00D6E84[] = {
0x14, 0x05, 0x14, 0x14, 0x0A, 0x14, 0x14, 0x08, 0x08, 0x08, 0x01, 0x01, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
void energy_in_out_appendGfx(void* effect);

View File

@ -4,7 +4,11 @@
extern Gfx D_09000840_3447B0[];
extern Gfx D_090008F0_344860[];
extern Gfx D_09000910_344880[];
extern Gfx* D_E00328B0[];
extern Gfx D_09000978_3448E8[];
extern Gfx D_090009D8_344948[];
extern Gfx D_09000A38_3449A8[];
Gfx* D_E00328B0[] = { D_09000978_3448E8, D_090009D8_344948, D_09000A38_3449A8 };
void explosion_appendGfx(void* effect);

View File

@ -3,8 +3,9 @@
extern Gfx D_09000080_3D4F10[];
extern Gfx D_09000168_3D4FF8[];
extern u8 D_E00D2500[];
extern u8 D_E00D2508[];
u8 D_E00D2500[] = { 0x00, 0x1E, 0x50, 0x78, 0x70, 0x68, 0x64, 0x00 };
u8 D_E00D2508[] = { 0x5E, 0x5C, 0x64, 0x69, 0x6B, 0x69, 0x64, 0x00 };
void floating_cloud_puff_init(EffectInstance* effect);
void floating_cloud_puff_update(EffectInstance* effect);
@ -61,8 +62,6 @@ EffectInstance* floating_cloud_puff_main(
void floating_cloud_puff_init(EffectInstance* effect) {
}
// Needs data migration, matching otherwise
#ifdef NON_MATCHING
void floating_cloud_puff_update(EffectInstance* effect) {
FloatingCloudPuffFXData* data = effect->data.floatingCloudPuff;
s32 unk_14;
@ -97,9 +96,6 @@ void floating_cloud_puff_update(EffectInstance* effect) {
data->unk_38 = D_E00D2508[(unk_14 - 7) % 7] * 0.01;
}
}
#else
INCLUDE_ASM(s32, "effects/floating_cloud_puff", floating_cloud_puff_update);
#endif
void floating_cloud_puff_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -1,8 +1,15 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_09000450[];
extern Gfx* D_E0098510[];
extern Gfx D_090003A0_396490[];
extern Gfx D_090003E0_3964D0[];
extern Gfx D_09000410_396500[];
extern Gfx D_09000450_396540[];
Gfx* D_E0098510[] = {
D_090003A0_396490, D_090003E0_3964D0, D_09000410_396500,
D_090003A0_396490, D_090003E0_3964D0, D_09000410_396500
};
void floating_rock_init(EffectInstance* effect);
void floating_rock_update(EffectInstance* effect);
@ -119,7 +126,7 @@ void floating_rock_appendGfx(void* effect) {
gDPSetRenderMode(gMasterGfxPos++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2);
}
gSPDisplayList(gMasterGfxPos++, D_09000450);
gSPDisplayList(gMasterGfxPos++, D_09000450_396540);
gSPDisplayList(gMasterGfxPos++, D_E0098510[data->unk_00]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);

View File

@ -1,11 +1,15 @@
#include "common.h"
#include "effects_internal.h"
extern s32 D_09000000;
extern s32 D_09002020;
extern Vtx D_09004040[][22];
extern Gfx D_09008BE0[];
extern u8 D_E00C2990[];
extern s32 D_09000000_3C1BA0;
extern s32 D_09002020_3C3BC0;
extern Vtx D_09004040_3C5BE0[][22];
extern Gfx D_09008BE0_3CA780[];
u8 D_E00C2990[] = {
0xFF, 0xFF, 0xDC, 0xBE, 0xA0, 0x78, 0x50, 0x28,
0x00, 0x00, 0x28, 0x50, 0x78, 0xA0, 0xBE, 0xDC
};
void fright_jar_init(EffectInstance* effect);
void fright_jar_update(EffectInstance* effect);
@ -129,14 +133,14 @@ void fright_jar_appendGfx(void* effect) {
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPMatrix(gMasterGfxPos++, camera->unkMatrix, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_09008BE0);
gSPDisplayList(gMasterGfxPos++, D_09008BE0_3CA780);
idx = 54 - unk_14;
if (idx < 0) {
idx = 0;
}
gSPVertex(gMasterGfxPos++, &D_09004040[idx], 22, 0);
gSPVertex(gMasterGfxPos++, &D_09004040_3C5BE0[idx], 22, 0);
alpha = D_E00C2990[unk_14 % 16];
gDPSetEnvColor(gMasterGfxPos++, 0, 0, 0, alpha);
@ -160,7 +164,7 @@ void fright_jar_appendGfx(void* effect) {
}
gDPSetPrimColor(gMasterGfxPos++, 0, 0, data->unk_18, data->unk_1C, data->unk_20, temp3);
gDPSetTextureImage(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, 64, &D_09002020);
gDPSetTextureImage(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, 64, &D_09002020_3C3BC0);
gDPSetTile(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, 8, 0, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14);
gDPLoadSync(gMasterGfxPos++);
gDPLoadTile(gMasterGfxPos++, G_TX_LOADTILE, 0, temp1 * 4, 254, (temp1 + 15) * 4);
@ -168,7 +172,7 @@ void fright_jar_appendGfx(void* effect) {
gDPSetTile(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_4b, 8, 0, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14);
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, 0, temp1 * 4, 508, (temp1 + 15) * 4);
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, 0, temp2 * 128.0f * 4.0f, 2000, 2000);
gDPSetTextureImage(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, 64, &D_09000000);
gDPSetTextureImage(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, 64, &D_09000000_3C1BA0);
gDPSetTile(gMasterGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, 8, 0x80, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14);
gDPLoadSync(gMasterGfxPos++);
gDPLoadTile(gMasterGfxPos++, G_TX_LOADTILE, 0, temp1 * 4, 254, (temp1 + 15) * 4);

View File

@ -1,9 +1,18 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx* D_E00269F0[];
extern Gfx* D_E00269F8[];
extern u8 D_E0026A00[];
extern Gfx D_09000DA0_33C970[];
extern Gfx D_09000E28_33C9F8[];
extern Gfx D_090010B0_33CC80[];
extern Gfx D_09001138_33CD08[];
Gfx* D_E00269F0[] = { D_090010B0_33CC80, D_09000DA0_33C970 };
Gfx* D_E00269F8[] = { D_09001138_33CD08, D_09000E28_33C9F8 };
u8 D_E0026A00[] = {
0xFF, 0xC5, 0x9C, 0xFF, 0x9C, 0xFF, 0xFF, 0x73, 0xD6, 0xFF, 0x9C, 0xFF, 0xFF, 0xC5, 0x7B, 0xFF,
0xB4, 0xFF, 0xDE, 0x73, 0xFF, 0xFF, 0x94, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
void gather_energy_pink_init(EffectInstance* effect);
void gather_energy_pink_update(EffectInstance* effect);

View File

@ -2,7 +2,10 @@
#include "effects_internal.h"
extern Gfx D_09000080_38F790[];
extern Gfx* D_E008E890[];
extern Gfx D_090001A8_38F8B8[];
extern Gfx D_090001C8_38F8D8[];
Gfx* D_E008E890[] = { D_090001A8_38F8B8, D_090001C8_38F8D8 };
void gather_magic_appendGfx(void* effect);
void gather_magic_init(EffectInstance* effect);

View File

@ -0,0 +1,26 @@
#include "effects/gfx/battle/lucky.png.inc.c"
#include "effects/gfx/battle/miss.png.inc.c"
#include "effects/gfx/battle/good.png.inc.c"
#include "effects/gfx/battle/nice.png.inc.c"
#include "effects/gfx/battle/super.png.inc.c"
#include "effects/gfx/D_09001400_3917D0.png.inc.c"
#include "effects/gfx/D_09001500_3918D0.gfx.inc.c"
#include "effects/gfx/D_090015A8_391978.gfx.inc.c"
#include "effects/gfx/D_09001610_3919E0.gfx.inc.c"
#include "effects/gfx/D_09001658_391A28.gfx.inc.c"
#include "effects/gfx/D_090016A0_391A70.gfx.inc.c"
#include "effects/gfx/D_090016E8_391AB8.gfx.inc.c"
#include "effects/gfx/D_09001730_391B00.gfx.inc.c"
#include "effects/gfx/D_09001778_391B48.vtx.inc.c"
#include "effects/gfx/D_090017B8_391B88.vtx.inc.c"
#include "effects/gfx/D_090017F8_391BC8.vtx.inc.c"
#include "effects/gfx/D_09001838_391C08.vtx.inc.c"
#include "effects/gfx/D_09001878_391C48.vtx.inc.c"
#include "effects/gfx/D_090018B8_391C88.gfx.inc.c"
#include "effects/gfx/D_090018D8_391CA8.gfx.inc.c"
#include "effects/gfx/D_090018F8_391CC8.gfx.inc.c"
#include "effects/gfx/D_09001918_391CE8.gfx.inc.c"
#include "effects/gfx/D_09001938_391D08.gfx.inc.c"

35
src/effects/gfx/blast.c Normal file
View File

@ -0,0 +1,35 @@
#include "effects/gfx/D_09000000_37D9D0.png.inc.c"
#include "effects/gfx/D_09000200_37DBD0.png.inc.c"
#include "effects/gfx/D_09000400_37DDD0.png.inc.c"
#include "effects/gfx/D_09000600_37DFD0.png.inc.c"
#include "effects/gfx/D_09000800_37E1D0.png.inc.c"
#include "effects/gfx/D_09000A00_37E3D0.png.inc.c"
#include "effects/gfx/D_09000C00_37E5D0.png.inc.c"
#include "effects/gfx/D_09000E00_37E7D0.png.inc.c"
#include "effects/gfx/D_09001000_37E9D0.png.inc.c"
#include "effects/gfx/D_09001200_37EBD0.vtx.inc.c"
#include "effects/gfx/D_09001240_37EC10.vtx.inc.c"
#include "effects/gfx/D_090012C0_37EC90.vtx.inc.c"
#include "effects/gfx/D_09001300_37ECD0.gfx.inc.c"
#include "effects/gfx/D_09001378_37ED48.gfx.inc.c"
#include "effects/gfx/D_090013F0_37EDC0.gfx.inc.c"
#include "effects/gfx/D_09001468_37EE38.gfx.inc.c"
#include "effects/gfx/D_090014E0_37EEB0.gfx.inc.c"
#include "effects/gfx/D_09001558_37EF28.gfx.inc.c"
#include "effects/gfx/D_090015D0_37EFA0.gfx.inc.c"
#include "effects/gfx/D_09001648_37F018.gfx.inc.c"
#include "effects/gfx/D_090016C0_37F090.gfx.inc.c"
#include "effects/gfx/D_09001738_37F108.gfx.inc.c"
#include "effects/gfx/D_090017A0_37F180.gfx.inc.c"
#include "effects/gfx/D_090017D0_37F1A0.gfx.inc.c"
#include "effects/gfx/D_090018C0_37F290.gfx.inc.c"
#include "effects/gfx/D_090018E0_37F2B0.vtx.inc.c"
#include "effects/gfx/D_09001A50_37F420.vtx.inc.c"
#include "effects/gfx/D_09001AA0_37F470.vtx.inc.c"
#include "effects/gfx/D_09001C80_37F650.gfx.inc.c"
#include "effects/gfx/D_09001CC8_37F698.gfx.inc.c"
#include "effects/gfx/D_09001D00_37F6D0.gfx.inc.c"

View File

@ -0,0 +1,36 @@
#include "effects/gfx/world/ch0.png.inc.c"
#include "effects/gfx/D_09000B40_3EC9A0.png.inc.c"
#include "effects/gfx/world/text_chapter.png.inc.c"
#include "effects/gfx/D_09001B80_3ED9E0.png.inc.c"
#include "effects/gfx/D_09002080_3EDEE0.png.inc.c"
#include "effects/gfx/D_09002580_3EE3E0.png.inc.c"
#include "effects/gfx/world/text_end_of.png.inc.c"
#include "effects/gfx/D_090032A0_3EF100.png.inc.c"
#include "effects/gfx/world/exclamation_point.png.inc.c"
#include "effects/gfx/world/ch1.png.inc.c"
#include "effects/gfx/world/ch2.png.inc.c"
#include "effects/gfx/world/ch3.png.inc.c"
#include "effects/gfx/world/ch4.png.inc.c"
#include "effects/gfx/world/ch5.png.inc.c"
#include "effects/gfx/world/ch6.png.inc.c"
#include "effects/gfx/world/ch7.png.inc.c"
#include "effects/gfx/world/ch8.png.inc.c"
#include "effects/gfx/world/chapter_rainbow.png.inc.c"
#include "effects/gfx/D_0900BE40_3F7CA0.gfx.inc.c"
#include "effects/gfx/D_0900BE88_3F7CE8.gfx.inc.c"
#include "effects/gfx/D_0900BED0_3F7D30.gfx.inc.c"
#include "effects/gfx/D_0900BF18_3F7D78.gfx.inc.c"
#include "effects/gfx/D_0900BF60_3F7DC0.gfx.inc.c"
#include "effects/gfx/D_0900BFA8_3F7E08.gfx.inc.c"
#include "effects/gfx/D_0900BFF0_3F7E50.gfx.inc.c"
#include "effects/gfx/D_0900C038_3F7E98.gfx.inc.c"
#include "effects/gfx/D_0900C080_3F7EE0.gfx.inc.c"
#include "effects/gfx/D_0900C168_3F7FC8.gfx.inc.c"
#include "effects/gfx/D_0900C1B0_3F8010.gfx.inc.c"
#include "effects/gfx/D_0900C1F8_3F8058.gfx.inc.c"
#include "effects/gfx/D_0900C240_3F80A0.gfx.inc.c"
#include "effects/gfx/D_0900C328_3F8188.gfx.inc.c"
#include "effects/gfx/D_0900C370_3F81D0.gfx.inc.c"
#include "effects/gfx/D_0900C458_3F82B8.gfx.inc.c"
#include "effects/gfx/D_0900C540_3F83A0.gfx.inc.c"

View File

@ -0,0 +1,8 @@
#include "effects/gfx/D_09000000_3960F0.vtx.inc.c"
#include "effects/gfx/D_09000170_396260.vtx.inc.c"
#include "effects/gfx/D_090001C0_3962B0.vtx.inc.c"
#include "effects/gfx/D_090003A0_396490.gfx.inc.c"
#include "effects/gfx/D_090003E0_3964D0.gfx.inc.c"
#include "effects/gfx/D_09000410_396500.gfx.inc.c"
#include "effects/gfx/D_09000450_396540.gfx.inc.c"

View File

@ -0,0 +1,12 @@
#include "effects/gfx/D_09000000_3C1BA0.png.inc.c"
#include "effects/gfx/D_09000000_3C1BA0.pal.inc.c"
#include "effects/gfx/D_09002020_3C3BC0.png.inc.c"
#include "effects/gfx/D_09002020_3C3BC0.pal.inc.c"
#include "effects/gfx/D_09004040_3C5BE0.vtx.inc.c"
#include "effects/gfx/D_090043B0_3C5F50.vtx.inc.c"
#include "effects/gfx/D_09004720_3C62C0.vtx.inc.c"
#include "effects/gfx/D_09008BE0_3CA780.gfx.inc.c"
#include "effects/gfx/D_09008CB0_3CA850.gfx.inc.c"
#include "effects/gfx/D_09008CD0_3CA870.gfx.inc.c"

View File

@ -0,0 +1,9 @@
#include "effects/gfx/D_09000000_3593B0.png.inc.c"
#include "effects/gfx/D_09000200_3595B0.png.inc.c"
#include "effects/gfx/D_09000600_3599B0.png.inc.c"
#include "effects/gfx/D_09000800_359BB0.vtx.inc.c"
#include "effects/gfx/D_09000940_359CF0.gfx.inc.c"
#include "effects/gfx/D_090009A0_359D50.gfx.inc.c"
#include "effects/gfx/D_09000A80_359E30.gfx.inc.c"

View File

@ -4,9 +4,17 @@
extern char D_09000000_345B40[][0x1000];
extern char D_09004000_349B40[][0x1000];
extern Gfx D_09008100_34DC40[];
extern Gfx* D_E0036630[];
extern u8 D_E0036640[];
extern u8 D_E0036648[];
extern Gfx D_09008170_34DCB0[];
extern Gfx D_09008190_34DCD0[];
extern Gfx D_090081A8_34DCE8[];
extern Gfx D_090081C0_34DD00[];
Gfx* D_E0036630[] = {
D_09008170_34DCB0, D_09008190_34DCD0, D_090081A8_34DCE8, D_090081C0_34DD00
};
u8 D_E0036640[] = { 0x3C, 0x78, 0x8C, 0x93, 0x95, 0x96, 0x00, 0x00 };
u8 D_E0036648[] = { 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x00, 0x00 };
void got_item_outline_init(EffectInstance* effect);
void got_item_outline_update(EffectInstance* effect);

View File

@ -2,7 +2,9 @@
#include "effects_internal.h"
extern Gfx D_09000540_365EF0[];
extern Gfx* D_E0064A60[];
extern Gfx D_090005A0_365F50[];
Gfx* D_E0064A60[] = { D_090005A0_365F50, D_090005A0_365F50 };
void green_impact_init(EffectInstance* effect);
void green_impact_update(EffectInstance* effect);

View File

@ -1,9 +1,26 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx* D_E006ADF0[];
extern Gfx* D_E006AE00[];
extern s32 D_E006AE10[];
extern Gfx D_090000B0_36E040[];
extern Gfx D_09000110_36E0A0[];
extern Gfx D_09000130_36E0C0[];
extern Gfx D_090001D8_36E168[];
Gfx* D_E006ADF0[] = {
D_09000110_36E0A0, D_09000110_36E0A0, D_090000B0_36E040, D_090000B0_36E040
};
Gfx* D_E006AE00[] = {
D_09000130_36E0C0, D_09000130_36E0C0, D_090001D8_36E168, D_090001D8_36E168
};
s32 D_E006AE10[] = {
0, -20, 0, 1, 18, -10, -60, 45, -1, 4, -20, -20, 90, 1, 1, -10,
-60, 135, 1, -4, 0, -20, 180, -8, 1, -10, -60, 225, -1, -1, -20, -20,
270, 1, -9, -10, -60, 315, 4, 4, 0, 10, 22, 4, 1, -10, 20, 67,
1, -1, -20, 10, 112, -1, -1, -10, 20, 157, -8, 1, 0, 10, 202, 1,
-4, -10, 20, 247, 1, -18, -20, 10, 292, -1, 9, -10, 20, 337, 1, 1
};
void light_rays_init(EffectInstance* effect);
void light_rays_update(EffectInstance* effect);

View File

@ -1,8 +1,24 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx* D_E006CB60[];
extern Gfx* D_E006CB78[];
extern Gfx D_09003280_371FE0[];
extern Gfx D_090032F8_372058[];
extern Gfx D_09003378_3720D8[];
extern Gfx D_090033E0_372140[];
extern Gfx D_09003580_3722E0[];
extern Gfx D_09003778_3724D8[];
extern Gfx D_09003888_3725E8[];
extern Gfx D_09003948_3726A8[];
Gfx* D_E006CB60[] = {
D_09003778_3724D8, D_09003580_3722E0, D_090033E0_372140,
D_09003378_3720D8, D_090032F8_372058, D_09003280_371FE0
};
Gfx* D_E006CB78[] = {
D_09003888_3725E8, D_09003888_3725E8, D_09003888_3725E8,
D_09003948_3726A8, D_09003948_3726A8, D_09003948_3726A8
};
void lightning_init(EffectInstance* effect);
void lightning_update(EffectInstance* effect);

View File

@ -1,8 +1,18 @@
#include "common.h"
#include "effects_internal.h"
void func_E0080448(EffectInstance* effect);
extern Gfx D_09003200_385000[];
extern Gfx D_09003298_385098[];
extern Gfx D_09003330_385130[];
extern Gfx D_090033D0_3851D0[];
extern Gfx D_090033F0_3851F0[];
extern Gfx D_09003410_385210[];
extern Gfx D_09003430_385230[];
extern Gfx D_09003450_385250[];
extern Gfx D_09003470_385270[];
extern Gfx D_09003490_385290[];
extern Gfx D_090034B0_3852B0[];
extern Gfx D_090034D0_3852D0[];
extern Gfx D_09003540_385340[];
extern Gfx D_09003580_385380[];
extern Gfx D_090035C0_3853C0[];
@ -25,18 +35,211 @@ 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(EffectInstance* effect);
void recover_update(EffectInstance* effect);
void recover_render(EffectInstance* effect);
void func_E008042C(EffectInstance* effect);
void func_E0080448(EffectInstance* effect);
void recover_init(void) {
EffectInstance* recover_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4) {
EffectBlueprint bp;
EffectInstance* effect;
RecoverFXData* part;
s32 numParts = 2;
s32 i;
bp.init = recover_init;
bp.update = recover_update;
bp.renderWorld = recover_render;
bp.unk_14 = func_E008042C;
bp.unk_00 = 0;
bp.effectID = EFFECT_RECOVER;
effect = shim_create_effect_instance(&bp);
effect->numParts = numParts;
part = effect->data.recover = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.recover != NULL);
part->unk_00 = arg0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_2C = 46;
part->unk_30 = 0;
if (arg4 < 0) {
part->unk_44 = 1;
arg4 = -arg4;
} else {
part->unk_44 = 0;
}
part->unk_40 = arg4;
part++;
for (i = 1; i < numParts; i++, part++) {
part->unk_04 = 0.0f;
part->unk_08 = 0;
part->unk_0C = 0;
part->unk_24 = 0;
part->unk_10 = 0;
part->unk_18 = 0;
part->unk_20 = 0;
part->unk_1C = 0;
if (i == 1) {
part->unk_04 = 0.0f;
part->unk_34 = 0;
part->unk_38 = 0;
part->unk_3C = 0;
part->unk_14 = 1.4f;
} else {
part->unk_14 = 1.4f;
part->unk_34 = i + 10;
part->unk_38 = 0;
part->unk_3C = 0;
part->unk_04 = ((i & 1) * 2 - 1) * ((i - 1) >> 1) * 4;
}
part->unk_2C = 0;
part->unk_28 = 255;
}
return effect;
}
INCLUDE_ASM(s32, "effects/recover", recover_update);
void recover_init(EffectInstance* effect) {
}
void recover_render(void) {
void recover_update(EffectInstance* effect) {
RecoverFXData* part = effect->data.recover;
s32 unk_2C;
s32 i;
part->unk_2C--;
part->unk_30++;
if (part->unk_2C < 0) {
shim_remove_effect(effect);
return;
}
unk_2C = part->unk_2C;
part++;
for (i = 1; i < effect->numParts; i++, part++) {
s32 unk_2C_2 = part->unk_2C;
if (part->unk_34 <= 0 || --part->unk_34 <= 0) {
if (unk_2C_2 >= 7) {
part->unk_3C = 1.0f;
part->unk_38 = 1.0f;
} else {
part->unk_38 = D_E0080AF0[unk_2C_2];
part->unk_3C = D_E0080B0C[unk_2C_2];
}
part->unk_04 += part->unk_10;
part->unk_08 += part->unk_14;
part->unk_0C += part->unk_18;
part->unk_1C = shim_sin_deg(i * 38 + unk_2C * 12) * -30.0f;
part->unk_24 = shim_cos_deg(i * 38 + unk_2C * 12) * 8.0f;
if (unk_2C < 20) {
part->unk_24 *= (f32) unk_2C * 0.05;
part->unk_1C *= (f32) unk_2C * 0.05;
}
if (unk_2C < 10) {
part->unk_28 = unk_2C * 25;
part->unk_14 *= 0.9;
}
part->unk_2C++;
}
}
}
void recover_render(EffectInstance* effect) {
}
void func_E008042C(EffectInstance* effect) {
func_E0080448(effect);
}
INCLUDE_ASM(s32, "effects/recover", func_E0080448);
void func_E0080448(EffectInstance* effect) {
RecoverFXData* part = ((EffectInstance*)effect)->data.recover;
s32 i;
s32 unk_00;
s32 unk_40;
s32 unk_44 = part->unk_44;
Matrix4f sp18;
Matrix4f sp58;
Matrix4f sp98;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guTranslateF(sp18, part->unk_04, part->unk_08, part->unk_0C);
shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp98);
shim_guMtxF2L(sp98, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
unk_00 = part->unk_00;
unk_40 = part->unk_40;
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
if (part->unk_34 <= 0) {
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0, 0, 0, part->unk_28);
if (part->unk_28 == 255) {
gDPSetRenderMode(gMasterGfxPos++, AA_EN | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM), AA_EN | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM));
gDPSetCombineMode(gMasterGfxPos++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA);
} else {
gDPSetRenderMode(gMasterGfxPos++, G_RM_CLD_SURF, G_RM_CLD_SURF2);
gDPSetCombineLERP(gMasterGfxPos++, TEXEL0, 0, SHADE, 0, PRIMITIVE, 0, TEXEL0, 0, TEXEL0, 0, SHADE, 0, PRIMITIVE, 0, TEXEL0, 0);
}
gSPDisplayList(gMasterGfxPos++, (unk_00 == 0 || unk_00 == 2) ?
(unk_44 == 0 ? D_09003200_385000 : D_09003298_385098) :
D_09003330_385130);
shim_guTranslateF(sp18, part->unk_04 + part->unk_24, part->unk_08, part->unk_0C);
shim_guScaleF(sp58, part->unk_38, part->unk_3C, 1.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
shim_guRotateF(sp18, part->unk_1C, 0.0f, 0.0f, 1.0f);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
if (i == 1 && unk_00 != 2) {
gSPDisplayList(gMasterGfxPos++, D_090033D0_3851D0);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_090034D0_3852D0);
if (unk_40 < 0xA && unk_44 == 0) {
gSPDisplayList(gMasterGfxPos++, D_E0080AC0[unk_40]);
gSPDisplayList(gMasterGfxPos++, unk_00 == 0 ? D_09003410_385210 : D_09003470_385270);
} else {
s32 ones = unk_40 % 10;
s32 tens = unk_44 == 0 ? (unk_40 / 10) : 10;
gSPDisplayList(gMasterGfxPos++, D_E0080AC0[ones]);
gSPDisplayList(gMasterGfxPos++, unk_00 == 0 ? D_09003450_385250 : D_090034B0_3852B0);
gSPDisplayList(gMasterGfxPos++, D_E0080AC0[tens]);
gSPDisplayList(gMasterGfxPos++, unk_00 == 0 ? D_09003430_385230 : D_09003490_385290);
}
} else {
gSPDisplayList(gMasterGfxPos++, D_090033F0_3851F0);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}

View File

@ -1,14 +1,131 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_09000940_359CF0[];
extern Gfx D_090009A0_359D50[];
Gfx* D_E00D0B10[] = { D_090009A0_359D50, D_090009A0_359D50 };
void red_impact_init(EffectInstance* effect);
void red_impact_update(EffectInstance* effect);
void red_impact_render(EffectInstance* effect);
void red_impact_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/red_impact", red_impact_main);
EffectInstance* red_impact_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
RedImpactFXData* part;
f32 zero = 0.0f;
s32 numParts;
s32 temp;
s32 i;
void red_impact_init(void) {
if (arg0 == 0) {
numParts = 7;
} else {
temp = 3; // Required to match
numParts = temp;
}
numParts++;
bpPtr->unk_00 = 0;
bpPtr->init = red_impact_init;
bpPtr->update = red_impact_update;
bpPtr->renderWorld = red_impact_render;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_RED_IMPACT;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data.redImpact = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.redImpact != NULL);
part->unk_2C = 0;
part->unk_00 = arg0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->unk_24 = arg4;
part->unk_20 = arg4;
part->unk_1C = arg4;
part->unk_28 = 60;
part->unk_38 = 255;
part->unk_50.r = 255;
part->unk_50.g = 0;
part->unk_50.b = 0;
part->unk_53.r = 255;
part->unk_53.g = 200;
part->unk_53.b = 100;
part++;
for (i = 1; i < numParts; i++, part++) {
part->unk_4C = -1 + (i - 1) * (-2);
part->unk_34 = zero;
part->unk_30 = i * 30;
}
return effect;
}
INCLUDE_ASM(s32, "effects/red_impact", red_impact_update);
void red_impact_init(EffectInstance* effect) {
}
void red_impact_update(EffectInstance* effect) {
RedImpactFXData* part = effect->data.redImpact;
s32 unk_00;
s32 i;
part->unk_2C++;
part->unk_28--;
if (part->unk_28 < 0) {
shim_remove_effect(effect);
return;
}
unk_00 = part->unk_00;
if (part->unk_2C >= 8) {
part->unk_38 *= 0.8;
}
part++;
for (i = 1; i < effect->numParts; i++, part++) {
part->unk_4C++;
if (part->unk_4C >= 0) {
if (part->unk_4C == 0) {
part->unk_04 = 0;
part->unk_08 = 0;
part->unk_0C = 0;
part->unk_10 = -shim_sin_deg(part->unk_34) * 0.5;
part->unk_14 = shim_cos_deg(part->unk_34) * 0.5;
part->unk_18 = 0;
part->unk_3C = 32.0f;
part->unk_40 = 32.0f;
part->unk_48 = 32.0f;
part->unk_20 = 8.0 - (f32) i;
if (unk_00 == 0) {
part->unk_1C = 2 + i * 2;
part->unk_24 = (2 + i * 2) * 0.5;
} else {
part->unk_1C = i + 0.5;
part->unk_20 *= 0.6;
part->unk_24 = (i + 0.5) * 0.5;
}
part->unk_44 = 32.0f;
}
part->unk_3C += part->unk_40;
part->unk_44 += part->unk_48;
part->unk_40 *= 0.9;
part->unk_1C *= 1.002;
part->unk_24 *= 1.002;
if (part->unk_3C > 128.0f) {
part->unk_3C = 128.0f;
}
}
}
}
void red_impact_render(EffectInstance* effect) {
RenderTask renderTask;
@ -23,4 +140,89 @@ void red_impact_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/red_impact", red_impact_appendGfx);
void red_impact_appendGfx(void* effect) {
RedImpactFXData* part = ((EffectInstance*)effect)->data.redImpact;
Gfx* dlist = D_E00D0B10[part->unk_00];
Gfx* dlist2;
f32 temp_1C = part->unk_1C * 0.3;
f32 temp_20 = part->unk_20 * 0.3;
f32 temp_24 = part->unk_24 * 0.3;
s32 alpha;
s32 primR = part->unk_50.r;
s32 primG = part->unk_50.g;
s32 primB = part->unk_50.b;
s32 envR = part->unk_53.r;
s32 envG = part->unk_53.g;
s32 envB = part->unk_53.b;
s32 primR2;
s32 primG2;
s32 primB2;
s32 envR2;
s32 envG2;
s32 envB2;
Gfx* savedGfxPos;
Gfx* savedGfxPos2;
Matrix4f sp20;
Matrix4f sp60;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, dlist);
shim_guPositionF(sp20, 0.0f, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, part->unk_04, part->unk_08, part->unk_0C);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
alpha = part->unk_38;
primR2 = primR;
primG2 = primG;
primB2 = primB;
envR2 = envR;
envG2 = envG;
envB2 = envB;
savedGfxPos = gMasterGfxPos;
gMasterGfxPos++;
savedGfxPos2 = savedGfxPos + 1;
part++;
for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
if (part->unk_4C >= 0) {
shim_guTranslateF(sp20, part->unk_04, part->unk_08, part->unk_0C);
shim_guRotateF(sp60, part->unk_34, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guScaleF(sp60, part->unk_1C * temp_1C, part->unk_20 * temp_20, part->unk_24 * temp_24);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guRotateF(sp60, part->unk_30, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
dlist2 = D_09000940_359CF0;
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, 0, (s32) part->unk_3C, 0x00FC, (s32) part->unk_3C + 0x7C);
gDPSetTileSize(gMasterGfxPos++, 1, 0, (s32) part->unk_44, 0x007C, (s32) part->unk_44 + 0x7C);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, dlist2);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
gSPEndDisplayList(gMasterGfxPos++);
gSPBranchList(savedGfxPos, gMasterGfxPos);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primR2, primG2, primB2, alpha);
gDPSetEnvColor(gMasterGfxPos++, envR2, envG2, envB2, 0);
gSPClearGeometryMode(gMasterGfxPos++, G_CULL_BOTH);
gSPSetGeometryMode(gMasterGfxPos++, G_CULL_FRONT);
gSPDisplayList(gMasterGfxPos++, savedGfxPos2);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primR, primG, primB, alpha);
gDPSetEnvColor(gMasterGfxPos++, envR, envG, envB, 0);
gSPClearGeometryMode(gMasterGfxPos++, G_CULL_BOTH);
gSPSetGeometryMode(gMasterGfxPos++, G_CULL_BACK);
gSPDisplayList(gMasterGfxPos++, savedGfxPos2);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}

View File

@ -1,14 +1,255 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_090009A0_359D50[];
extern Gfx D_09000A80_359E30[];
Gfx* D_E004AE60[] = {
D_090009A0_359D50, D_090009A0_359D50, D_09000A80_359E30,
D_09000A80_359E30, D_09000A80_359E30, D_09000A80_359E30
};
void shockwave_init(EffectInstance* effect);
void shockwave_update(EffectInstance* effect);
void shockwave_render(EffectInstance* effect);
void shockwave_appendGfx(void* effect);
INCLUDE_ASM(s32, "effects/shockwave", shockwave_main);
void shockwave_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
ShockwaveFXData* part;
f32 zero = 0.0f;
s32 numParts;
s32 i;
void shockwave_init(void) {
switch (arg0) {
case 0:
arg0 = 3;
break;
case 1:
arg0 = 2;
break;
case 2:
arg0 = 4;
break;
default:
arg0 = 5;
break;
}
switch (arg0) {
case 1:
numParts = 1;
break;
case 0:
case 2:
case 5:
numParts = 3;
break;
default:
numParts = 2;
break;
}
numParts++;
bpPtr->init = shockwave_init;
bpPtr->update = shockwave_update;
bpPtr->renderWorld = shockwave_render;
bpPtr->unk_00 = 0;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_SHOCKWAVE;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
part = effect->data.shockwave = shim_general_heap_malloc(numParts * sizeof(*part));
ASSERT(effect->data.shockwave != NULL);
shim_mem_clear(part, numParts * sizeof(*part));
if (arg0 >= 2) {
part->unk_28 = 60;
} else {
part->unk_28 = 30;
}
part->unk_38 = 255;
part->unk_2C = 0;
part->unk_00 = arg0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
switch (arg0) {
case 0:
case 1:
part->unk_50.r = 0;
part->unk_50.g = 255;
part->unk_50.b = 122;
part->unk_53.r = 240;
part->unk_53.g = 255;
part->unk_53.b = 250;
break;
case 2:
part->unk_50.r = 125;
part->unk_50.g = 120;
part->unk_50.b = 100;
part->unk_53.r = 255;
part->unk_53.g = 255;
part->unk_53.b = 240;
break;
case 3:
part->unk_50.r = 220;
part->unk_50.g = 210;
part->unk_50.b = 200;
part->unk_53.r = 255;
part->unk_53.g = 255;
part->unk_53.b = 250;
break;
case 5:
part->unk_50.r = 225;
part->unk_50.g = 204;
part->unk_50.b = 93;
part->unk_53.r = 232;
part->unk_53.g = 231;
part->unk_53.b = 171;
break;
default:
part->unk_28 = 50;
part->unk_50.r = 208;
part->unk_50.g = 136;
part->unk_50.b = 40;
part->unk_53.r = 216;
part->unk_53.g = 169;
part->unk_53.b = 65;
break;
}
part++;
for (i = 1; i < numParts; i++, part++) {
switch (arg0) {
case 0:
case 1:
part->unk_4C = 1 + i * -2;
break;
default:
part->unk_4C = 2 + i * -3;
break;
}
part->unk_34 = zero;
part->unk_30 = i * 30;
}
}
INCLUDE_ASM(s32, "effects/shockwave", shockwave_update);
void shockwave_init(EffectInstance* effect) {
}
void shockwave_update(EffectInstance* effect) {
ShockwaveFXData* part = effect->data.shockwave;
s32 unk_00;
s32 unk_2C;
s32 i;
part->unk_2C++;
part->unk_28--;
if (part->unk_28 < 0) {
shim_remove_effect(effect);
return;
}
unk_00 = part->unk_00;
unk_2C = part->unk_2C;
switch (unk_00) {
case 0:
case 1:
if (unk_2C >= 8) {
part->unk_38 *= 0.8;
}
break;
default:
if (unk_2C >= 8) {
part->unk_38 *= 0.94;
}
break;
}
part++;
for (i = 1; i < effect->numParts; i++, part++) {
part->unk_4C++;
if (part->unk_4C >= 0) {
if (part->unk_4C == 0) {
part->unk_04 = 0;
part->unk_08 = 0;
part->unk_0C = 0;
part->unk_10 = -shim_sin_deg(part->unk_34) * 0.5;
part->unk_14 = shim_cos_deg(part->unk_34) * 0.5;
part->unk_18 = 0;
part->unk_3C = 32.0f;
part->unk_40 = 32.0f;
part->unk_48 = 32.0f;
part->unk_20 = 8.0 - (f32) i;
switch (unk_00) {
case 0:
case 1:
part->unk_1C = i + 0.5;
part->unk_24 = (i + 0.5) * 0.5;
break;
case 2:
case 5:
part->unk_1C = i + 2;
part->unk_24 = (i + 2) * 0.5;
break;
case 3:
part->unk_1C = i + 3;
part->unk_24 = (i + 3) * 0.5;
part->unk_3C = 16.0f;
part->unk_40 = 16.0f;
part->unk_48 = 16.0f;
break;
case 4:
default:
part->unk_1C = (i + 3) * 0.5;
part->unk_24 = (i + 3) * 0.5 * 0.5;
part->unk_3C = 16.0f;
part->unk_40 = 16.0f;
part->unk_48 = 16.0f;
part->unk_20 *= 0.8;
break;
}
part->unk_44 = 32.0f;
}
part->unk_3C += part->unk_40;
part->unk_44 += part->unk_48;
switch (unk_00) {
case 0:
case 1:
part->unk_40 *= 0.9;
break;
case 2:
case 5:
part->unk_40 *= 0.75;
part->unk_48 *= 0.99;
break;
default:
part->unk_40 *= 0.75;
part->unk_48 *= 0.95;
break;
}
part->unk_1C *= 1.002;
part->unk_24 *= 1.002;
if (part->unk_3C > 128.0f) {
part->unk_3C = 128.0f;
}
}
}
}
void shockwave_render(EffectInstance* effect) {
RenderTask renderTask;

View File

@ -1,12 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00269F0
.word 0x090010B0, 0x09000DA0
dlabel D_E00269F8
.word 0x09001138, 0x09000E28
dlabel D_E0026A00
.word 0xFFC59CFF, 0x9CFFFF73, 0xD6FF9CFF, 0xFFC57BFF, 0xB4FFDE73, 0xFFFF949C, 0x00000000, 0x00000000

View File

@ -1,9 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E0030E90
.word 0xFEACACFE, 0xACD5FEB4, 0x9AD5B4FE, 0xB4B4FEB4, 0xDDFEB4FE, 0xFEB4FED5, 0xB4FEB4D5, 0xFEB4FEFE, 0xB4FED5AC
dlabel D_E0030EB4
.word 0x00000000, 0x00000000, 0x00000000

View File

@ -1,6 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00328B0
.word 0x09000978, 0x090009D8, 0x09000A38, 0x00000000

View File

@ -1,12 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E0036630
.word 0x09008170, 0x09008190, 0x090081A8, 0x090081C0
dlabel D_E0036640
.byte 0x3C, 0x78, 0x8C, 0x93, 0x95, 0x96, 0x00, 0x00
dlabel D_E0036648
.byte 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x00, 0x00

View File

@ -1,6 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E004AE60
.word 0x090009A0, 0x090009A0, 0x09000A80, 0x09000A80, 0x09000A80, 0x09000A80, 0x00000000, 0x00000000

View File

@ -1,6 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E0064A60
.word 0x090005A0, 0x090005A0, 0x00000000, 0x00000000

View File

@ -1,13 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00685B0
.word 0x09001E40, 0x09001E40, 0x09002058
dlabel D_E00685BC
.word 0x09001E40, 0x09001E40, 0x09001E40, 0x09001E40, 0x09001E40, 0x09001EA8, 0x09001EA8, 0x09001F10, 0x09001F10, 0x09001F10, 0x09001F10, 0x09001F10, 0x09001EA8, 0x09001EA8
dlabel D_E00685F4
.word 0x09001F78, 0x09001F78, 0x09002078

View File

@ -1,15 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E006ADF0
.word 0x09000110, 0x09000110, 0x090000B0, 0x090000B0
dlabel D_E006AE00
.word 0x09000130, 0x09000130, 0x090001D8, 0x090001D8
dlabel D_E006AE10
.word 0x00000000, 0xFFFFFFEC, 0x00000000, 0x00000001, 0x00000012, 0xFFFFFFF6, 0xFFFFFFC4, 0x0000002D, 0xFFFFFFFF, 0x00000004, 0xFFFFFFEC, 0xFFFFFFEC, 0x0000005A, 0x00000001, 0x00000001, 0xFFFFFFF6, 0xFFFFFFC4, 0x00000087, 0x00000001, 0xFFFFFFFC, 0x00000000, 0xFFFFFFEC, 0x000000B4, 0xFFFFFFF8, 0x00000001, 0xFFFFFFF6, 0xFFFFFFC4, 0x000000E1, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFEC, 0xFFFFFFEC, 0x0000010E, 0x00000001, 0xFFFFFFF7, 0xFFFFFFF6, 0xFFFFFFC4, 0x0000013B, 0x00000004, 0x00000004, 0x00000000, 0x0000000A, 0x00000016, 0x00000004, 0x00000001, 0xFFFFFFF6, 0x00000014, 0x00000043, 0x00000001, 0xFFFFFFFF, 0xFFFFFFEC, 0x0000000A, 0x00000070, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFF6, 0x00000014, 0x0000009D, 0xFFFFFFF8, 0x00000001, 0x00000000, 0x0000000A, 0x000000CA, 0x00000001, 0xFFFFFFFC, 0xFFFFFFF6, 0x00000014, 0x000000F7, 0x00000001, 0xFFFFFFEE, 0xFFFFFFEC, 0x0000000A, 0x00000124, 0xFFFFFFFF, 0x00000009, 0xFFFFFFF6, 0x00000014, 0x00000151, 0x00000001, 0x00000001

View File

@ -1,9 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E006CB60
.word 0x09003778, 0x09003580, 0x090033E0, 0x09003378, 0x090032F8, 0x09003280
dlabel D_E006CB78
.word 0x09003888, 0x09003888, 0x09003888, 0x09003948, 0x09003948, 0x09003948

View File

@ -1,6 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E008E890
.word 0x090001A8, 0x090001C8, 0x00000000, 0x00000000

View File

@ -1,6 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E0098510
.word 0x090003A0, 0x090003E0, 0x09000410, 0x090003A0, 0x090003E0, 0x09000410, 0x00000000, 0x00000000

View File

@ -1,8 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00C2990
.word 0xFFFFDCBE, 0xA0785028, 0x00002850, 0x78A0BEDC

View File

@ -1,9 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00C6C90
.word 0x09001C98, 0x09001C98, 0x09001C98
dlabel D_E00C6C9C
.word 0x09001B70, 0x09001B70, 0x09001B70, 0x00000000, 0x00000000

View File

@ -1,6 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00D0B10
.word 0x090009A0, 0x090009A0, 0x00000000, 0x00000000

View File

@ -1,9 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00D2500
.byte 0x00, 0x1E, 0x50, 0x78, 0x70, 0x68, 0x64, 0x00
dlabel D_E00D2508
.byte 0x5E, 0x5C, 0x64, 0x69, 0x6B, 0x69, 0x64, 0x00

View File

@ -1,12 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00D6E40
.word 0x090003A8, 0x090003C8, 0x090003E8, 0x09000528, 0x09000540, 0x09000558, 0x09000688, 0x09000688, 0x09000688, 0x09000558, 0x09000808, 0x09000688, 0x09000558
dlabel D_E00D6E74
.byte 0x0B, 0x0B, 0x0B, 0x0B, 0x11, 0x0B, 0x0B, 0x15, 0x15, 0x15, 0x15, 0x15, 0x15, 0x00, 0x00, 0x00
dlabel D_E00D6E84
.byte 0x14, 0x05, 0x14, 0x14, 0x0A, 0x14, 0x14, 0x08, 0x08, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

View File

@ -1,21 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E00DE810
.word 0x09002200, 0x09002220, 0x09002240, 0x09002260, 0x09002280, 0x09002200, 0x09002220, 0x09002240, 0x09002260, 0x09002280, 0x09002200, 0x09002220, 0x09002240, 0x09002260, 0x09002280
dlabel D_E00DE84C
.word 0x09002000, 0x090022A0, 0x09002000
dlabel D_E00DE858
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF1, 0xEB, 0xE6, 0xE2, 0xDE, 0xDB, 0xD9, 0xD8, 0xD7, 0xD6, 0xD5, 0xD4, 0xD3, 0xD2, 0xD1, 0xD0, 0xCF, 0xCE, 0xCD, 0xCC, 0xCB, 0xCA, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0xC3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
dlabel D_E00DE8B4
.byte 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x32, 0x34, 0x37, 0x39, 0x3C, 0x3E, 0x41, 0x43, 0x46, 0x48, 0x4B, 0x4D, 0x50, 0x52, 0x55, 0x57, 0x5A, 0x5C, 0x5F, 0x61, 0x64, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x00, 0x00
dlabel D_E00DE910
.byte 0x00, 0x14, 0x28, 0x3C, 0x50, 0x64, 0x78, 0x8C, 0xA0, 0xB4, 0xBE, 0xC3, 0xD2, 0xD0, 0xD3, 0xD6, 0xD9, 0xDC, 0xDF, 0xE2, 0xE5, 0xE8, 0xEB, 0xEE, 0xF1, 0xF4, 0xF7, 0xFA, 0xFD, 0xFF, 0x00, 0x14, 0x28, 0x3C, 0x50, 0x64, 0x78, 0x8C, 0xA0, 0xB4, 0xBE, 0xC3, 0xD2, 0xD0, 0xD3, 0xD6, 0xD9, 0xDC, 0xDF, 0xE2, 0xE5, 0xE8, 0xEB, 0xEE, 0xF1, 0xF4, 0xF7, 0xFA, 0xFD, 0xFF, 0x00, 0x14, 0x28, 0x3C, 0x50, 0x64, 0x78, 0x8C, 0xA0, 0xB4, 0xBE, 0xC3, 0xD2, 0xD0, 0xD3, 0xD6, 0xD9, 0xDC, 0xDF, 0xE2, 0xE5, 0xE8, 0xEB, 0xEE, 0xF1, 0xF4, 0xF7, 0xFA, 0xFD, 0xFF, 0x00, 0x00
dlabel D_E00DE96C
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

View File

@ -1,21 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E010E750
.word 0xFFFFFFFF, 0x001D019D, 0x001D019E, 0x001D019F, 0x001D01A0, 0x001D01A1, 0x001D01A2, 0x001D01A3, 0x001D01A4, 0x001D019C, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
dlabel D_E010E79C
.word 0x0900C080, 0x00680000, 0x0080000A, 0x0900C168, 0x0068000A, 0x0080000A, 0x0900C1B0, 0x00680014, 0x0080000A, 0x0900C1F8, 0x0068001E, 0x0080000A, 0x00000000, 0x00000000, 0x00000000
dlabel D_E010E7D8
.word 0x0900C458, 0xFFF0FFFA, 0x00900014, 0x0900C540, 0xFFF0000E, 0x00900014, 0x00000000, 0x00000000, 0x00000000
dlabel D_E010E7FC
.word 0x0900C080, 0x0000FFFA, 0x0080000A, 0x0900C168, 0x00000004, 0x0080000A, 0x0900C1B0, 0x0000000E, 0x0080000A, 0x0900C1F8, 0x00000018, 0x0080000A, 0x00000000, 0x00000000, 0x00000000
dlabel D_E010E838
.word 0x0900C240, 0x00000000, 0x00680014, 0x0900C328, 0x00000014, 0x00680014, 0x0900C370, 0x00E80000, 0x00100028, 0x00000000, 0x00000000, 0x00000000
dlabel D_E010E868
.word 0x0900BE40, 0x0080FFDF, 0x00400040, 0x00000000, 0x00000000, 0x00000000, 0x0900BE88, 0x0080FFDF, 0x00400040, 0x00000000, 0x00000000, 0x00000000, 0x0900BED0, 0x0080FFDF, 0x00400040, 0x00000000, 0x00000000, 0x00000000, 0x0900BF18, 0x0080FFDF, 0x00400040, 0x00000000, 0x00000000, 0x00000000, 0x0900BF60, 0x0080FFDF, 0x00400040, 0x00000000, 0x00000000, 0x00000000, 0x0900BFA8, 0x0080FFDF, 0x00400040, 0x00000000, 0x00000000, 0x00000000, 0x0900BFF0, 0x0080FFDF, 0x00400040, 0x00000000, 0x00000000, 0x00000000, 0x0900C038, 0x0080FFDF, 0x00400040, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000

View File

@ -1,90 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00D2510
.double 0.6
dlabel D_E00D2518
.double 0.01
.section .text
glabel floating_cloud_puff_update
/* 3D4A90 E00D2120 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 3D4A94 E00D2124 AFBF0010 */ sw $ra, 0x10($sp)
/* 3D4A98 E00D2128 8C830000 */ lw $v1, ($a0)
/* 3D4A9C E00D212C 8C85000C */ lw $a1, 0xc($a0)
/* 3D4AA0 E00D2130 30620010 */ andi $v0, $v1, 0x10
/* 3D4AA4 E00D2134 10400005 */ beqz $v0, .LE00D214C
/* 3D4AA8 E00D2138 2402FFEF */ addiu $v0, $zero, -0x11
/* 3D4AAC E00D213C 00621024 */ and $v0, $v1, $v0
/* 3D4AB0 E00D2140 AC820000 */ sw $v0, ($a0)
/* 3D4AB4 E00D2144 24020010 */ addiu $v0, $zero, 0x10
/* 3D4AB8 E00D2148 ACA20010 */ sw $v0, 0x10($a1)
.LE00D214C:
/* 3D4ABC E00D214C 8CA30010 */ lw $v1, 0x10($a1)
/* 3D4AC0 E00D2150 286203E8 */ slti $v0, $v1, 0x3e8
/* 3D4AC4 E00D2154 10400002 */ beqz $v0, .LE00D2160
/* 3D4AC8 E00D2158 2462FFFF */ addiu $v0, $v1, -1
/* 3D4ACC E00D215C ACA20010 */ sw $v0, 0x10($a1)
.LE00D2160:
/* 3D4AD0 E00D2160 8CA70014 */ lw $a3, 0x14($a1)
/* 3D4AD4 E00D2164 8CA30010 */ lw $v1, 0x10($a1)
/* 3D4AD8 E00D2168 24E60001 */ addiu $a2, $a3, 1
/* 3D4ADC E00D216C 04610005 */ bgez $v1, .LE00D2184
/* 3D4AE0 E00D2170 ACA60014 */ sw $a2, 0x14($a1)
/* 3D4AE4 E00D2174 0C080128 */ jal shim_remove_effect
/* 3D4AE8 E00D2178 00000000 */ nop
/* 3D4AEC E00D217C 0803488A */ j .LE00D2228
/* 3D4AF0 E00D2180 00000000 */ nop
.LE00D2184:
/* 3D4AF4 E00D2184 28620010 */ slti $v0, $v1, 0x10
/* 3D4AF8 E00D2188 10400002 */ beqz $v0, .LE00D2194
/* 3D4AFC E00D218C 00031100 */ sll $v0, $v1, 4
/* 3D4B00 E00D2190 ACA20024 */ sw $v0, 0x24($a1)
.LE00D2194:
/* 3D4B04 E00D2194 C4A00008 */ lwc1 $f0, 8($a1)
/* 3D4B08 E00D2198 3C01E00D */ lui $at, %hi(D_E00D2510)
/* 3D4B0C E00D219C D4222510 */ ldc1 $f2, %lo(D_E00D2510)($at)
/* 3D4B10 E00D21A0 46000021 */ cvt.d.s $f0, $f0
/* 3D4B14 E00D21A4 46220000 */ add.d $f0, $f0, $f2
/* 3D4B18 E00D21A8 28C20007 */ slti $v0, $a2, 7
/* 3D4B1C E00D21AC 46200020 */ cvt.s.d $f0, $f0
/* 3D4B20 E00D21B0 10400005 */ beqz $v0, .LE00D21C8
/* 3D4B24 E00D21B4 E4A00008 */ swc1 $f0, 8($a1)
/* 3D4B28 E00D21B8 3C02E00D */ lui $v0, %hi(D_E00D2500)
/* 3D4B2C E00D21BC 00461021 */ addu $v0, $v0, $a2
/* 3D4B30 E00D21C0 08034881 */ j .LE00D2204
/* 3D4B34 E00D21C4 90422500 */ lbu $v0, %lo(D_E00D2500)($v0)
.LE00D21C8:
/* 3D4B38 E00D21C8 3C029249 */ lui $v0, 0x9249
/* 3D4B3C E00D21CC 34422493 */ ori $v0, $v0, 0x2493
/* 3D4B40 E00D21D0 24E4FFFA */ addiu $a0, $a3, -6
/* 3D4B44 E00D21D4 00820018 */ mult $a0, $v0
/* 3D4B48 E00D21D8 000417C3 */ sra $v0, $a0, 0x1f
/* 3D4B4C E00D21DC 00004010 */ mfhi $t0
/* 3D4B50 E00D21E0 01041821 */ addu $v1, $t0, $a0
/* 3D4B54 E00D21E4 00031883 */ sra $v1, $v1, 2
/* 3D4B58 E00D21E8 00621823 */ subu $v1, $v1, $v0
/* 3D4B5C E00D21EC 000310C0 */ sll $v0, $v1, 3
/* 3D4B60 E00D21F0 00431023 */ subu $v0, $v0, $v1
/* 3D4B64 E00D21F4 00822023 */ subu $a0, $a0, $v0
/* 3D4B68 E00D21F8 3C02E00D */ lui $v0, %hi(D_E00D2508)
/* 3D4B6C E00D21FC 00441021 */ addu $v0, $v0, $a0
/* 3D4B70 E00D2200 90422508 */ lbu $v0, %lo(D_E00D2508)($v0)
.LE00D2204:
/* 3D4B74 E00D2204 3C01E00D */ lui $at, %hi(D_E00D2518)
/* 3D4B78 E00D2208 D4222518 */ ldc1 $f2, %lo(D_E00D2518)($at)
/* 3D4B7C E00D220C 44820000 */ mtc1 $v0, $f0
/* 3D4B80 E00D2210 00000000 */ nop
/* 3D4B84 E00D2214 46800021 */ cvt.d.w $f0, $f0
/* 3D4B88 E00D2218 46220002 */ mul.d $f0, $f0, $f2
/* 3D4B8C E00D221C 00000000 */ nop
/* 3D4B90 E00D2220 46200020 */ cvt.s.d $f0, $f0
/* 3D4B94 E00D2224 E4A00038 */ swc1 $f0, 0x38($a1)
.LE00D2228:
/* 3D4B98 E00D2228 8FBF0010 */ lw $ra, 0x10($sp)
/* 3D4B9C E00D222C 03E00008 */ jr $ra
/* 3D4BA0 E00D2230 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,434 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0080448
/* 381708 E0080448 27BDFEE8 */ addiu $sp, $sp, -0x118
/* 38170C E008044C 3C05DB06 */ lui $a1, 0xdb06
/* 381710 E0080450 34A50024 */ ori $a1, $a1, 0x24
/* 381714 E0080454 AFA40118 */ sw $a0, 0x118($sp)
/* 381718 E0080458 27A40018 */ addiu $a0, $sp, 0x18
/* 38171C E008045C AFB300F4 */ sw $s3, 0xf4($sp)
/* 381720 E0080460 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 381724 E0080464 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 381728 E0080468 8FAA0118 */ lw $t2, 0x118($sp)
/* 38172C E008046C 3C02E700 */ lui $v0, 0xe700
/* 381730 E0080470 AFBF010C */ sw $ra, 0x10c($sp)
/* 381734 E0080474 AFBE0108 */ sw $fp, 0x108($sp)
/* 381738 E0080478 AFB70104 */ sw $s7, 0x104($sp)
/* 38173C E008047C AFB60100 */ sw $s6, 0x100($sp)
/* 381740 E0080480 AFB500FC */ sw $s5, 0xfc($sp)
/* 381744 E0080484 AFB400F8 */ sw $s4, 0xf8($sp)
/* 381748 E0080488 AFB200F0 */ sw $s2, 0xf0($sp)
/* 38174C E008048C AFB100EC */ sw $s1, 0xec($sp)
/* 381750 E0080490 AFB000E8 */ sw $s0, 0xe8($sp)
/* 381754 E0080494 F7B40110 */ sdc1 $f20, 0x110($sp)
/* 381758 E0080498 8E680000 */ lw $t0, ($s3)
/* 38175C E008049C 8D52000C */ lw $s2, 0xc($t2)
/* 381760 E00804A0 0100182D */ daddu $v1, $t0, $zero
/* 381764 E00804A4 8E4A0044 */ lw $t2, 0x44($s2)
/* 381768 E00804A8 25080008 */ addiu $t0, $t0, 8
/* 38176C E00804AC AFAA00DC */ sw $t2, 0xdc($sp)
/* 381770 E00804B0 AC620000 */ sw $v0, ($v1)
/* 381774 E00804B4 AC600004 */ sw $zero, 4($v1)
/* 381778 E00804B8 AD050000 */ sw $a1, ($t0)
/* 38177C E00804BC 8FAA0118 */ lw $t2, 0x118($sp)
/* 381780 E00804C0 3C110001 */ lui $s1, 1
/* 381784 E00804C4 8D420010 */ lw $v0, 0x10($t2)
/* 381788 E00804C8 36311630 */ ori $s1, $s1, 0x1630
/* 38178C E00804CC AE680000 */ sw $t0, ($s3)
/* 381790 E00804D0 8C42001C */ lw $v0, 0x1c($v0)
/* 381794 E00804D4 3C038000 */ lui $v1, 0x8000
/* 381798 E00804D8 00431021 */ addu $v0, $v0, $v1
/* 38179C E00804DC AD020004 */ sw $v0, 4($t0)
/* 3817A0 E00804E0 8E450004 */ lw $a1, 4($s2)
/* 3817A4 E00804E4 8E460008 */ lw $a2, 8($s2)
/* 3817A8 E00804E8 8E47000C */ lw $a3, 0xc($s2)
/* 3817AC E00804EC 25080008 */ addiu $t0, $t0, 8
/* 3817B0 E00804F0 0C080108 */ jal shim_guTranslateF
/* 3817B4 E00804F4 AE680000 */ sw $t0, ($s3)
/* 3817B8 E00804F8 27B50058 */ addiu $s5, $sp, 0x58
/* 3817BC E00804FC 3C013F80 */ lui $at, 0x3f80
/* 3817C0 E0080500 4481A000 */ mtc1 $at, $f20
/* 3817C4 E0080504 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 3817C8 E0080508 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 3817CC E008050C 44800000 */ mtc1 $zero, $f0
/* 3817D0 E0080510 00031080 */ sll $v0, $v1, 2
/* 3817D4 E0080514 00431021 */ addu $v0, $v0, $v1
/* 3817D8 E0080518 00021080 */ sll $v0, $v0, 2
/* 3817DC E008051C 00431023 */ subu $v0, $v0, $v1
/* 3817E0 E0080520 000218C0 */ sll $v1, $v0, 3
/* 3817E4 E0080524 00431021 */ addu $v0, $v0, $v1
/* 3817E8 E0080528 000210C0 */ sll $v0, $v0, 3
/* 3817EC E008052C 44060000 */ mfc1 $a2, $f0
/* 3817F0 E0080530 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 3817F4 E0080534 00220821 */ addu $at, $at, $v0
/* 3817F8 E0080538 C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 3817FC E008053C 4407A000 */ mfc1 $a3, $f20
/* 381800 E0080540 46000007 */ neg.s $f0, $f0
/* 381804 E0080544 44050000 */ mfc1 $a1, $f0
/* 381808 E0080548 02A0202D */ daddu $a0, $s5, $zero
/* 38180C E008054C 0C080104 */ jal shim_guRotateF
/* 381810 E0080550 AFA60010 */ sw $a2, 0x10($sp)
/* 381814 E0080554 02A0202D */ daddu $a0, $s5, $zero
/* 381818 E0080558 27A50018 */ addiu $a1, $sp, 0x18
/* 38181C E008055C 27B00098 */ addiu $s0, $sp, 0x98
/* 381820 E0080560 0C080114 */ jal shim_guMtxCatF
/* 381824 E0080564 0200302D */ daddu $a2, $s0, $zero
/* 381828 E0080568 0200202D */ daddu $a0, $s0, $zero
/* 38182C E008056C 3C168007 */ lui $s6, %hi(gMatrixListPos)
/* 381830 E0080570 26D641F0 */ addiu $s6, $s6, %lo(gMatrixListPos)
/* 381834 E0080574 3C1E800A */ lui $fp, %hi(gDisplayContext)
/* 381838 E0080578 27DEA674 */ addiu $fp, $fp, %lo(gDisplayContext)
/* 38183C E008057C 96C50000 */ lhu $a1, ($s6)
/* 381840 E0080580 8FC20000 */ lw $v0, ($fp)
/* 381844 E0080584 00052980 */ sll $a1, $a1, 6
/* 381848 E0080588 00B12821 */ addu $a1, $a1, $s1
/* 38184C E008058C 0C080118 */ jal shim_guMtxF2L
/* 381850 E0080590 00452821 */ addu $a1, $v0, $a1
/* 381854 E0080594 240A0001 */ addiu $t2, $zero, 1
/* 381858 E0080598 8E650000 */ lw $a1, ($s3)
/* 38185C E008059C 3C02DA38 */ lui $v0, 0xda38
/* 381860 E00805A0 AFAA00D8 */ sw $t2, 0xd8($sp)
/* 381864 E00805A4 96C40000 */ lhu $a0, ($s6)
/* 381868 E00805A8 00A0302D */ daddu $a2, $a1, $zero
/* 38186C E00805AC ACC20000 */ sw $v0, ($a2)
/* 381870 E00805B0 3082FFFF */ andi $v0, $a0, 0xffff
/* 381874 E00805B4 00021180 */ sll $v0, $v0, 6
/* 381878 E00805B8 8FC30000 */ lw $v1, ($fp)
/* 38187C E00805BC 00511021 */ addu $v0, $v0, $s1
/* 381880 E00805C0 00621821 */ addu $v1, $v1, $v0
/* 381884 E00805C4 ACC30004 */ sw $v1, 4($a2)
/* 381888 E00805C8 8E540000 */ lw $s4, ($s2)
/* 38188C E00805CC 8E570040 */ lw $s7, 0x40($s2)
/* 381890 E00805D0 24A50008 */ addiu $a1, $a1, 8
/* 381894 E00805D4 AE650000 */ sw $a1, ($s3)
/* 381898 E00805D8 8FAA0118 */ lw $t2, 0x118($sp)
/* 38189C E00805DC 8D420008 */ lw $v0, 8($t2)
/* 3818A0 E00805E0 24840001 */ addiu $a0, $a0, 1
/* 3818A4 E00805E4 A6C40000 */ sh $a0, ($s6)
/* 3818A8 E00805E8 8FAA00D8 */ lw $t2, 0xd8($sp)
/* 3818AC E00805EC 0142102A */ slt $v0, $t2, $v0
/* 3818B0 E00805F0 10400118 */ beqz $v0, .LE0080A54
/* 3818B4 E00805F4 26520048 */ addiu $s2, $s2, 0x48
/* 3818B8 E00805F8 0260802D */ daddu $s0, $s3, $zero
/* 3818BC E00805FC 3C13DE00 */ lui $s3, 0xde00
/* 3818C0 E0080600 AFB500E0 */ sw $s5, 0xe0($sp)
/* 3818C4 E0080604 3C150001 */ lui $s5, 1
/* 3818C8 E0080608 36B51630 */ ori $s5, $s5, 0x1630
/* 3818CC E008060C 3C1ED838 */ lui $fp, 0xd838
/* 3818D0 E0080610 37DE0002 */ ori $fp, $fp, 2
/* 3818D4 E0080614 2651001C */ addiu $s1, $s2, 0x1c
.LE0080618:
/* 3818D8 E0080618 8E220018 */ lw $v0, 0x18($s1)
/* 3818DC E008061C 1C400104 */ bgtz $v0, .LE0080A30
/* 3818E0 E0080620 3C02FA00 */ lui $v0, 0xfa00
/* 3818E4 E0080624 8E070000 */ lw $a3, ($s0)
/* 3818E8 E0080628 00E0182D */ daddu $v1, $a3, $zero
/* 3818EC E008062C 24E70008 */ addiu $a3, $a3, 8
/* 3818F0 E0080630 AE070000 */ sw $a3, ($s0)
/* 3818F4 E0080634 AC620000 */ sw $v0, ($v1)
/* 3818F8 E0080638 9222000F */ lbu $v0, 0xf($s1)
/* 3818FC E008063C AC620004 */ sw $v0, 4($v1)
/* 381900 E0080640 8E23000C */ lw $v1, 0xc($s1)
/* 381904 E0080644 240200FF */ addiu $v0, $zero, 0xff
/* 381908 E0080648 14620011 */ bne $v1, $v0, .LE0080690
/* 38190C E008064C 3C05E200 */ lui $a1, 0xe200
/* 381910 E0080650 3C04E200 */ lui $a0, 0xe200
/* 381914 E0080654 3484001C */ ori $a0, $a0, 0x1c
/* 381918 E0080658 3C030055 */ lui $v1, 0x55
/* 38191C E008065C 34631208 */ ori $v1, $v1, 0x1208
/* 381920 E0080660 3C05FC12 */ lui $a1, 0xfc12
/* 381924 E0080664 34A57E24 */ ori $a1, $a1, 0x7e24
/* 381928 E0080668 24E20008 */ addiu $v0, $a3, 8
/* 38192C E008066C AE020000 */ sw $v0, ($s0)
/* 381930 E0080670 24E20010 */ addiu $v0, $a3, 0x10
/* 381934 E0080674 ACE40000 */ sw $a0, ($a3)
/* 381938 E0080678 ACE30004 */ sw $v1, 4($a3)
/* 38193C E008067C AE020000 */ sw $v0, ($s0)
/* 381940 E0080680 2402F3F9 */ addiu $v0, $zero, -0xc07
/* 381944 E0080684 ACE50008 */ sw $a1, 8($a3)
/* 381948 E0080688 080201B3 */ j .LE00806CC
/* 38194C E008068C ACE2000C */ sw $v0, 0xc($a3)
.LE0080690:
/* 381950 E0080690 34A5001C */ ori $a1, $a1, 0x1c
/* 381954 E0080694 3C030050 */ lui $v1, 0x50
/* 381958 E0080698 34634340 */ ori $v1, $v1, 0x4340
/* 38195C E008069C 3C06FC12 */ lui $a2, 0xfc12
/* 381960 E00806A0 34C63224 */ ori $a2, $a2, 0x3224
/* 381964 E00806A4 3C04FF67 */ lui $a0, 0xff67
/* 381968 E00806A8 3484FFFF */ ori $a0, $a0, 0xffff
/* 38196C E00806AC 24E20008 */ addiu $v0, $a3, 8
/* 381970 E00806B0 AE020000 */ sw $v0, ($s0)
/* 381974 E00806B4 24E20010 */ addiu $v0, $a3, 0x10
/* 381978 E00806B8 ACE50000 */ sw $a1, ($a3)
/* 38197C E00806BC ACE30004 */ sw $v1, 4($a3)
/* 381980 E00806C0 AE020000 */ sw $v0, ($s0)
/* 381984 E00806C4 ACE60008 */ sw $a2, 8($a3)
/* 381988 E00806C8 ACE4000C */ sw $a0, 0xc($a3)
.LE00806CC:
/* 38198C E00806CC 8E020000 */ lw $v0, ($s0)
/* 381990 E00806D0 0040182D */ daddu $v1, $v0, $zero
/* 381994 E00806D4 24420008 */ addiu $v0, $v0, 8
/* 381998 E00806D8 AE020000 */ sw $v0, ($s0)
/* 38199C E00806DC AC730000 */ sw $s3, ($v1)
/* 3819A0 E00806E0 12800004 */ beqz $s4, .LE00806F4
/* 3819A4 E00806E4 24630004 */ addiu $v1, $v1, 4
/* 3819A8 E00806E8 24020002 */ addiu $v0, $zero, 2
/* 3819AC E00806EC 1682000A */ bne $s4, $v0, .LE0080718
/* 3819B0 E00806F0 00000000 */ nop
.LE00806F4:
/* 3819B4 E00806F4 8FAA00DC */ lw $t2, 0xdc($sp)
/* 3819B8 E00806F8 3C020900 */ lui $v0, 0x900
/* 3819BC E00806FC 24423298 */ addiu $v0, $v0, 0x3298
/* 3819C0 E0080700 55400008 */ bnel $t2, $zero, .LE0080724
/* 3819C4 E0080704 AC620000 */ sw $v0, ($v1)
/* 3819C8 E0080708 3C020900 */ lui $v0, 0x900
/* 3819CC E008070C 24423200 */ addiu $v0, $v0, 0x3200
/* 3819D0 E0080710 080201C9 */ j .LE0080724
/* 3819D4 E0080714 AC620000 */ sw $v0, ($v1)
.LE0080718:
/* 3819D8 E0080718 3C020900 */ lui $v0, 0x900
/* 3819DC E008071C 24423330 */ addiu $v0, $v0, 0x3330
/* 3819E0 E0080720 AC620000 */ sw $v0, ($v1)
.LE0080724:
/* 3819E4 E0080724 C622FFE8 */ lwc1 $f2, -0x18($s1)
/* 3819E8 E0080728 C6200008 */ lwc1 $f0, 8($s1)
/* 3819EC E008072C 46001080 */ add.s $f2, $f2, $f0
/* 3819F0 E0080730 8E26FFEC */ lw $a2, -0x14($s1)
/* 3819F4 E0080734 8E27FFF0 */ lw $a3, -0x10($s1)
/* 3819F8 E0080738 44051000 */ mfc1 $a1, $f2
/* 3819FC E008073C 0C080108 */ jal shim_guTranslateF
/* 381A00 E0080740 27A40018 */ addiu $a0, $sp, 0x18
/* 381A04 E0080744 8E25001C */ lw $a1, 0x1c($s1)
/* 381A08 E0080748 8E260020 */ lw $a2, 0x20($s1)
/* 381A0C E008074C 4407A000 */ mfc1 $a3, $f20
/* 381A10 E0080750 0C080110 */ jal shim_guScaleF
/* 381A14 E0080754 8FA400E0 */ lw $a0, 0xe0($sp)
/* 381A18 E0080758 27A50018 */ addiu $a1, $sp, 0x18
/* 381A1C E008075C 8FA400E0 */ lw $a0, 0xe0($sp)
/* 381A20 E0080760 0C080114 */ jal shim_guMtxCatF
/* 381A24 E0080764 00A0302D */ daddu $a2, $a1, $zero
/* 381A28 E0080768 27A40018 */ addiu $a0, $sp, 0x18
/* 381A2C E008076C 96C50000 */ lhu $a1, ($s6)
/* 381A30 E0080770 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 381A34 E0080774 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 381A38 E0080778 00052980 */ sll $a1, $a1, 6
/* 381A3C E008077C 00B52821 */ addu $a1, $a1, $s5
/* 381A40 E0080780 0C080118 */ jal shim_guMtxF2L
/* 381A44 E0080784 00452821 */ addu $a1, $v0, $a1
/* 381A48 E0080788 27A40018 */ addiu $a0, $sp, 0x18
/* 381A4C E008078C 8E080000 */ lw $t0, ($s0)
/* 381A50 E0080790 96C90000 */ lhu $t1, ($s6)
/* 381A54 E0080794 3C03800A */ lui $v1, %hi(gDisplayContext)
/* 381A58 E0080798 8C63A674 */ lw $v1, %lo(gDisplayContext)($v1)
/* 381A5C E008079C 44800000 */ mtc1 $zero, $f0
/* 381A60 E00807A0 0100282D */ daddu $a1, $t0, $zero
/* 381A64 E00807A4 3C0ADA38 */ lui $t2, 0xda38
/* 381A68 E00807A8 3122FFFF */ andi $v0, $t1, 0xffff
/* 381A6C E00807AC 00021180 */ sll $v0, $v0, 6
/* 381A70 E00807B0 00551021 */ addu $v0, $v0, $s5
/* 381A74 E00807B4 00621821 */ addu $v1, $v1, $v0
/* 381A78 E00807B8 25080008 */ addiu $t0, $t0, 8
/* 381A7C E00807BC ACAA0000 */ sw $t2, ($a1)
/* 381A80 E00807C0 ACA30004 */ sw $v1, 4($a1)
/* 381A84 E00807C4 E7B40010 */ swc1 $f20, 0x10($sp)
/* 381A88 E00807C8 8E250000 */ lw $a1, ($s1)
/* 381A8C E00807CC 44060000 */ mfc1 $a2, $f0
/* 381A90 E00807D0 25290001 */ addiu $t1, $t1, 1
/* 381A94 E00807D4 AE080000 */ sw $t0, ($s0)
/* 381A98 E00807D8 A6C90000 */ sh $t1, ($s6)
/* 381A9C E00807DC 0C080104 */ jal shim_guRotateF
/* 381AA0 E00807E0 00C0382D */ daddu $a3, $a2, $zero
/* 381AA4 E00807E4 27A40018 */ addiu $a0, $sp, 0x18
/* 381AA8 E00807E8 96C50000 */ lhu $a1, ($s6)
/* 381AAC E00807EC 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 381AB0 E00807F0 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 381AB4 E00807F4 00052980 */ sll $a1, $a1, 6
/* 381AB8 E00807F8 00B52821 */ addu $a1, $a1, $s5
/* 381ABC E00807FC 0C080118 */ jal shim_guMtxF2L
/* 381AC0 E0080800 00452821 */ addu $a1, $v0, $a1
/* 381AC4 E0080804 8E050000 */ lw $a1, ($s0)
/* 381AC8 E0080808 96C30000 */ lhu $v1, ($s6)
/* 381ACC E008080C 00A0202D */ daddu $a0, $a1, $zero
/* 381AD0 E0080810 24A50008 */ addiu $a1, $a1, 8
/* 381AD4 E0080814 3C0ADA38 */ lui $t2, 0xda38
/* 381AD8 E0080818 24620001 */ addiu $v0, $v1, 1
/* 381ADC E008081C 3063FFFF */ andi $v1, $v1, 0xffff
/* 381AE0 E0080820 00031980 */ sll $v1, $v1, 6
/* 381AE4 E0080824 AE050000 */ sw $a1, ($s0)
/* 381AE8 E0080828 AC8A0000 */ sw $t2, ($a0)
/* 381AEC E008082C A6C20000 */ sh $v0, ($s6)
/* 381AF0 E0080830 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 381AF4 E0080834 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 381AF8 E0080838 00751821 */ addu $v1, $v1, $s5
/* 381AFC E008083C 00431021 */ addu $v0, $v0, $v1
/* 381B00 E0080840 AC820004 */ sw $v0, 4($a0)
/* 381B04 E0080844 8FAA00D8 */ lw $t2, 0xd8($sp)
/* 381B08 E0080848 24020001 */ addiu $v0, $zero, 1
/* 381B0C E008084C 15420064 */ bne $t2, $v0, .LE00809E0
/* 381B10 E0080850 24020002 */ addiu $v0, $zero, 2
/* 381B14 E0080854 12820062 */ beq $s4, $v0, .LE00809E0
/* 381B18 E0080858 24A20008 */ addiu $v0, $a1, 8
/* 381B1C E008085C AE020000 */ sw $v0, ($s0)
/* 381B20 E0080860 3C020900 */ lui $v0, 0x900
/* 381B24 E0080864 244233D0 */ addiu $v0, $v0, 0x33d0
/* 381B28 E0080868 ACA20004 */ sw $v0, 4($a1)
/* 381B2C E008086C 24A20010 */ addiu $v0, $a1, 0x10
/* 381B30 E0080870 240A0040 */ addiu $t2, $zero, 0x40
/* 381B34 E0080874 ACB30000 */ sw $s3, ($a1)
/* 381B38 E0080878 AE020000 */ sw $v0, ($s0)
/* 381B3C E008087C 24A20018 */ addiu $v0, $a1, 0x18
/* 381B40 E0080880 ACBE0008 */ sw $fp, 8($a1)
/* 381B44 E0080884 ACAA000C */ sw $t2, 0xc($a1)
/* 381B48 E0080888 AE020000 */ sw $v0, ($s0)
/* 381B4C E008088C 3C020900 */ lui $v0, 0x900
/* 381B50 E0080890 244234D0 */ addiu $v0, $v0, 0x34d0
/* 381B54 E0080894 ACA20014 */ sw $v0, 0x14($a1)
/* 381B58 E0080898 2AE2000A */ slti $v0, $s7, 0xa
/* 381B5C E008089C 10400017 */ beqz $v0, .LE00808FC
/* 381B60 E00808A0 ACB30010 */ sw $s3, 0x10($a1)
/* 381B64 E00808A4 8FAA00DC */ lw $t2, 0xdc($sp)
/* 381B68 E00808A8 15400015 */ bnez $t2, .LE0080900
/* 381B6C E00808AC 3C026666 */ lui $v0, 0x6666
/* 381B70 E00808B0 3C040900 */ lui $a0, 0x900
/* 381B74 E00808B4 24843470 */ addiu $a0, $a0, 0x3470
/* 381B78 E00808B8 24A20020 */ addiu $v0, $a1, 0x20
/* 381B7C E00808BC AE020000 */ sw $v0, ($s0)
/* 381B80 E00808C0 00171080 */ sll $v0, $s7, 2
/* 381B84 E00808C4 3C0AE008 */ lui $t2, %hi(D_E0080AC0)
/* 381B88 E00808C8 254A0AC0 */ addiu $t2, $t2, %lo(D_E0080AC0)
/* 381B8C E00808CC 004A1021 */ addu $v0, $v0, $t2
/* 381B90 E00808D0 ACB30018 */ sw $s3, 0x18($a1)
/* 381B94 E00808D4 8C430000 */ lw $v1, ($v0)
/* 381B98 E00808D8 24A20028 */ addiu $v0, $a1, 0x28
/* 381B9C E00808DC AE020000 */ sw $v0, ($s0)
/* 381BA0 E00808E0 ACB30020 */ sw $s3, 0x20($a1)
/* 381BA4 E00808E4 16800003 */ bnez $s4, .LE00808F4
/* 381BA8 E00808E8 ACA3001C */ sw $v1, 0x1c($a1)
/* 381BAC E00808EC 3C040900 */ lui $a0, 0x900
/* 381BB0 E00808F0 24843410 */ addiu $a0, $a0, 0x3410
.LE00808F4:
/* 381BB4 E00808F4 08020285 */ j .LE0080A14
/* 381BB8 E00808F8 ACA40024 */ sw $a0, 0x24($a1)
.LE00808FC:
/* 381BBC E00808FC 3C026666 */ lui $v0, 0x6666
.LE0080900:
/* 381BC0 E0080900 34426667 */ ori $v0, $v0, 0x6667
/* 381BC4 E0080904 02E20018 */ mult $s7, $v0
/* 381BC8 E0080908 2409000A */ addiu $t1, $zero, 0xa
/* 381BCC E008090C 001717C3 */ sra $v0, $s7, 0x1f
/* 381BD0 E0080910 00005010 */ mfhi $t2
/* 381BD4 E0080914 000A1883 */ sra $v1, $t2, 2
/* 381BD8 E0080918 00621023 */ subu $v0, $v1, $v0
/* 381BDC E008091C 0040202D */ daddu $a0, $v0, $zero
/* 381BE0 E0080920 00041080 */ sll $v0, $a0, 2
/* 381BE4 E0080924 00441021 */ addu $v0, $v0, $a0
/* 381BE8 E0080928 00021040 */ sll $v0, $v0, 1
/* 381BEC E008092C 8FAA00DC */ lw $t2, 0xdc($sp)
/* 381BF0 E0080930 15400002 */ bnez $t2, .LE008093C
/* 381BF4 E0080934 02E21023 */ subu $v0, $s7, $v0
/* 381BF8 E0080938 0080482D */ daddu $t1, $a0, $zero
.LE008093C:
/* 381BFC E008093C 3C080900 */ lui $t0, 0x900
/* 381C00 E0080940 250834B0 */ addiu $t0, $t0, 0x34b0
/* 381C04 E0080944 00021080 */ sll $v0, $v0, 2
/* 381C08 E0080948 3C0AE008 */ lui $t2, %hi(D_E0080AC0)
/* 381C0C E008094C 254A0AC0 */ addiu $t2, $t2, %lo(D_E0080AC0)
/* 381C10 E0080950 8E060000 */ lw $a2, ($s0)
/* 381C14 E0080954 004A1021 */ addu $v0, $v0, $t2
/* 381C18 E0080958 00C0202D */ daddu $a0, $a2, $zero
/* 381C1C E008095C 24C60008 */ addiu $a2, $a2, 8
/* 381C20 E0080960 AE060000 */ sw $a2, ($s0)
/* 381C24 E0080964 AC930000 */ sw $s3, ($a0)
/* 381C28 E0080968 8C430000 */ lw $v1, ($v0)
/* 381C2C E008096C 24C20008 */ addiu $v0, $a2, 8
/* 381C30 E0080970 AE020000 */ sw $v0, ($s0)
/* 381C34 E0080974 AC830004 */ sw $v1, 4($a0)
/* 381C38 E0080978 16800003 */ bnez $s4, .LE0080988
/* 381C3C E008097C ACD30000 */ sw $s3, ($a2)
/* 381C40 E0080980 3C080900 */ lui $t0, 0x900
/* 381C44 E0080984 25083450 */ addiu $t0, $t0, 0x3450
.LE0080988:
/* 381C48 E0080988 3C070900 */ lui $a3, 0x900
/* 381C4C E008098C 24E73490 */ addiu $a3, $a3, 0x3490
/* 381C50 E0080990 00091080 */ sll $v0, $t1, 2
/* 381C54 E0080994 3C0AE008 */ lui $t2, %hi(D_E0080AC0)
/* 381C58 E0080998 254A0AC0 */ addiu $t2, $t2, %lo(D_E0080AC0)
/* 381C5C E008099C 8E050000 */ lw $a1, ($s0)
/* 381C60 E00809A0 004A1021 */ addu $v0, $v0, $t2
/* 381C64 E00809A4 ACC80004 */ sw $t0, 4($a2)
/* 381C68 E00809A8 00A0202D */ daddu $a0, $a1, $zero
/* 381C6C E00809AC 24A50008 */ addiu $a1, $a1, 8
/* 381C70 E00809B0 AE050000 */ sw $a1, ($s0)
/* 381C74 E00809B4 AC930000 */ sw $s3, ($a0)
/* 381C78 E00809B8 8C430000 */ lw $v1, ($v0)
/* 381C7C E00809BC 24A20008 */ addiu $v0, $a1, 8
/* 381C80 E00809C0 AE020000 */ sw $v0, ($s0)
/* 381C84 E00809C4 AC830004 */ sw $v1, 4($a0)
/* 381C88 E00809C8 16800003 */ bnez $s4, .LE00809D8
/* 381C8C E00809CC ACB30000 */ sw $s3, ($a1)
/* 381C90 E00809D0 3C070900 */ lui $a3, 0x900
/* 381C94 E00809D4 24E73430 */ addiu $a3, $a3, 0x3430
.LE00809D8:
/* 381C98 E00809D8 08020285 */ j .LE0080A14
/* 381C9C E00809DC ACA70004 */ sw $a3, 4($a1)
.LE00809E0:
/* 381CA0 E00809E0 8E030000 */ lw $v1, ($s0)
/* 381CA4 E00809E4 3C020900 */ lui $v0, 0x900
/* 381CA8 E00809E8 244233F0 */ addiu $v0, $v0, 0x33f0
/* 381CAC E00809EC 0060202D */ daddu $a0, $v1, $zero
/* 381CB0 E00809F0 24630008 */ addiu $v1, $v1, 8
/* 381CB4 E00809F4 AE030000 */ sw $v1, ($s0)
/* 381CB8 E00809F8 AC820004 */ sw $v0, 4($a0)
/* 381CBC E00809FC 24620008 */ addiu $v0, $v1, 8
/* 381CC0 E0080A00 AC930000 */ sw $s3, ($a0)
/* 381CC4 E0080A04 240A0040 */ addiu $t2, $zero, 0x40
/* 381CC8 E0080A08 AE020000 */ sw $v0, ($s0)
/* 381CCC E0080A0C AC7E0000 */ sw $fp, ($v1)
/* 381CD0 E0080A10 AC6A0004 */ sw $t2, 4($v1)
.LE0080A14:
/* 381CD4 E0080A14 8E020000 */ lw $v0, ($s0)
/* 381CD8 E0080A18 0040182D */ daddu $v1, $v0, $zero
/* 381CDC E0080A1C 24420008 */ addiu $v0, $v0, 8
/* 381CE0 E0080A20 240A0040 */ addiu $t2, $zero, 0x40
/* 381CE4 E0080A24 AE020000 */ sw $v0, ($s0)
/* 381CE8 E0080A28 AC7E0000 */ sw $fp, ($v1)
/* 381CEC E0080A2C AC6A0004 */ sw $t2, 4($v1)
.LE0080A30:
/* 381CF0 E0080A30 8FAA00D8 */ lw $t2, 0xd8($sp)
/* 381CF4 E0080A34 254A0001 */ addiu $t2, $t2, 1
/* 381CF8 E0080A38 AFAA00D8 */ sw $t2, 0xd8($sp)
/* 381CFC E0080A3C 8FAA0118 */ lw $t2, 0x118($sp)
/* 381D00 E0080A40 8D420008 */ lw $v0, 8($t2)
/* 381D04 E0080A44 8FAA00D8 */ lw $t2, 0xd8($sp)
/* 381D08 E0080A48 0142102A */ slt $v0, $t2, $v0
/* 381D0C E0080A4C 1440FEF2 */ bnez $v0, .LE0080618
/* 381D10 E0080A50 26310048 */ addiu $s1, $s1, 0x48
.LE0080A54:
/* 381D14 E0080A54 3C05D838 */ lui $a1, 0xd838
/* 381D18 E0080A58 3C03800A */ lui $v1, %hi(gMasterGfxPos)
/* 381D1C E0080A5C 2463A66C */ addiu $v1, $v1, %lo(gMasterGfxPos)
/* 381D20 E0080A60 8C620000 */ lw $v0, ($v1)
/* 381D24 E0080A64 34A50002 */ ori $a1, $a1, 2
/* 381D28 E0080A68 0040202D */ daddu $a0, $v0, $zero
/* 381D2C E0080A6C 24420008 */ addiu $v0, $v0, 8
/* 381D30 E0080A70 AC620000 */ sw $v0, ($v1)
/* 381D34 E0080A74 24020040 */ addiu $v0, $zero, 0x40
/* 381D38 E0080A78 AC850000 */ sw $a1, ($a0)
/* 381D3C E0080A7C AC820004 */ sw $v0, 4($a0)
/* 381D40 E0080A80 8FBF010C */ lw $ra, 0x10c($sp)
/* 381D44 E0080A84 8FBE0108 */ lw $fp, 0x108($sp)
/* 381D48 E0080A88 8FB70104 */ lw $s7, 0x104($sp)
/* 381D4C E0080A8C 8FB60100 */ lw $s6, 0x100($sp)
/* 381D50 E0080A90 8FB500FC */ lw $s5, 0xfc($sp)
/* 381D54 E0080A94 8FB400F8 */ lw $s4, 0xf8($sp)
/* 381D58 E0080A98 8FB300F4 */ lw $s3, 0xf4($sp)
/* 381D5C E0080A9C 8FB200F0 */ lw $s2, 0xf0($sp)
/* 381D60 E0080AA0 8FB100EC */ lw $s1, 0xec($sp)
/* 381D64 E0080AA4 8FB000E8 */ lw $s0, 0xe8($sp)
/* 381D68 E0080AA8 D7B40110 */ ldc1 $f20, 0x110($sp)
/* 381D6C E0080AAC 03E00008 */ jr $ra
/* 381D70 E0080AB0 27BD0118 */ addiu $sp, $sp, 0x118
/* 381D74 E0080AB4 00000000 */ nop
/* 381D78 E0080AB8 00000000 */ nop
/* 381D7C E0080ABC 00000000 */ nop

View File

@ -1,126 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel recover_main
/* 3812C0 E0080000 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 3812C4 E0080004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 3812C8 E0080008 4485A000 */ mtc1 $a1, $f20
/* 3812CC E008000C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 3812D0 E0080010 4486B000 */ mtc1 $a2, $f22
/* 3812D4 E0080014 AFB30034 */ sw $s3, 0x34($sp)
/* 3812D8 E0080018 0080982D */ daddu $s3, $a0, $zero
/* 3812DC E008001C F7B80050 */ sdc1 $f24, 0x50($sp)
/* 3812E0 E0080020 4487C000 */ mtc1 $a3, $f24
/* 3812E4 E0080024 27A40010 */ addiu $a0, $sp, 0x10
/* 3812E8 E0080028 AFB00028 */ sw $s0, 0x28($sp)
/* 3812EC E008002C 8FB00068 */ lw $s0, 0x68($sp)
/* 3812F0 E0080030 3C02E008 */ lui $v0, %hi(recover_init)
/* 3812F4 E0080034 244201C8 */ addiu $v0, $v0, %lo(recover_init)
/* 3812F8 E0080038 AFA20018 */ sw $v0, 0x18($sp)
/* 3812FC E008003C 3C02E008 */ lui $v0, %hi(recover_update)
/* 381300 E0080040 244201D0 */ addiu $v0, $v0, %lo(recover_update)
/* 381304 E0080044 AFA2001C */ sw $v0, 0x1c($sp)
/* 381308 E0080048 3C02E008 */ lui $v0, %hi(recover_render)
/* 38130C E008004C 24420424 */ addiu $v0, $v0, %lo(recover_render)
/* 381310 E0080050 AFA20020 */ sw $v0, 0x20($sp)
/* 381314 E0080054 3C02E008 */ lui $v0, %hi(func_E008042C)
/* 381318 E0080058 2442042C */ addiu $v0, $v0, %lo(func_E008042C)
/* 38131C E008005C AFA20024 */ sw $v0, 0x24($sp)
/* 381320 E0080060 24020040 */ addiu $v0, $zero, 0x40
/* 381324 E0080064 AFBF0038 */ sw $ra, 0x38($sp)
/* 381328 E0080068 AFB20030 */ sw $s2, 0x30($sp)
/* 38132C E008006C AFB1002C */ sw $s1, 0x2c($sp)
/* 381330 E0080070 AFA00010 */ sw $zero, 0x10($sp)
/* 381334 E0080074 0C080124 */ jal shim_create_effect_instance
/* 381338 E0080078 AFA20014 */ sw $v0, 0x14($sp)
/* 38133C E008007C 24040090 */ addiu $a0, $zero, 0x90
/* 381340 E0080080 24120002 */ addiu $s2, $zero, 2
/* 381344 E0080084 0040882D */ daddu $s1, $v0, $zero
/* 381348 E0080088 0C08012C */ jal shim_general_heap_malloc
/* 38134C E008008C AE320008 */ sw $s2, 8($s1)
/* 381350 E0080090 0040182D */ daddu $v1, $v0, $zero
/* 381354 E0080094 14600003 */ bnez $v1, .LE00800A4
/* 381358 E0080098 AE23000C */ sw $v1, 0xc($s1)
.LE008009C:
/* 38135C E008009C 08020027 */ j .LE008009C
/* 381360 E00800A0 00000000 */ nop
.LE00800A4:
/* 381364 E00800A4 2402002E */ addiu $v0, $zero, 0x2e
/* 381368 E00800A8 AC730000 */ sw $s3, ($v1)
/* 38136C E00800AC E4740004 */ swc1 $f20, 4($v1)
/* 381370 E00800B0 E4760008 */ swc1 $f22, 8($v1)
/* 381374 E00800B4 E478000C */ swc1 $f24, 0xc($v1)
/* 381378 E00800B8 AC62002C */ sw $v0, 0x2c($v1)
/* 38137C E00800BC 06010005 */ bgez $s0, .LE00800D4
/* 381380 E00800C0 AC600030 */ sw $zero, 0x30($v1)
/* 381384 E00800C4 24020001 */ addiu $v0, $zero, 1
/* 381388 E00800C8 AC620044 */ sw $v0, 0x44($v1)
/* 38138C E00800CC 08020036 */ j .LE00800D8
/* 381390 E00800D0 00108023 */ negu $s0, $s0
.LE00800D4:
/* 381394 E00800D4 AC600044 */ sw $zero, 0x44($v1)
.LE00800D8:
/* 381398 E00800D8 AC700040 */ sw $s0, 0x40($v1)
/* 38139C E00800DC 24050001 */ addiu $a1, $zero, 1
/* 3813A0 E00800E0 00B2102A */ slt $v0, $a1, $s2
/* 3813A4 E00800E4 1040002D */ beqz $v0, .LE008019C
/* 3813A8 E00800E8 24630048 */ addiu $v1, $v1, 0x48
/* 3813AC E00800EC 00A0382D */ daddu $a3, $a1, $zero
/* 3813B0 E00800F0 3C013FB3 */ lui $at, 0x3fb3
/* 3813B4 E00800F4 34213333 */ ori $at, $at, 0x3333
/* 3813B8 E00800F8 44811000 */ mtc1 $at, $f2
/* 3813BC E00800FC 240600FF */ addiu $a2, $zero, 0xff
/* 3813C0 E0080100 24640028 */ addiu $a0, $v1, 0x28
.LE0080104:
/* 3813C4 E0080104 AC80FFDC */ sw $zero, -0x24($a0)
/* 3813C8 E0080108 AC80FFE0 */ sw $zero, -0x20($a0)
/* 3813CC E008010C AC80FFE4 */ sw $zero, -0x1c($a0)
/* 3813D0 E0080110 AC80FFFC */ sw $zero, -4($a0)
/* 3813D4 E0080114 AC80FFE8 */ sw $zero, -0x18($a0)
/* 3813D8 E0080118 AC80FFF0 */ sw $zero, -0x10($a0)
/* 3813DC E008011C AC80FFF8 */ sw $zero, -8($a0)
/* 3813E0 E0080120 14A70007 */ bne $a1, $a3, .LE0080140
/* 3813E4 E0080124 AC80FFF4 */ sw $zero, -0xc($a0)
/* 3813E8 E0080128 AC80FFDC */ sw $zero, -0x24($a0)
/* 3813EC E008012C AC80000C */ sw $zero, 0xc($a0)
/* 3813F0 E0080130 AC800010 */ sw $zero, 0x10($a0)
/* 3813F4 E0080134 AC800014 */ sw $zero, 0x14($a0)
/* 3813F8 E0080138 08020061 */ j .LE0080184
/* 3813FC E008013C E482FFEC */ swc1 $f2, -0x14($a0)
.LE0080140:
/* 381400 E0080140 30A30001 */ andi $v1, $a1, 1
/* 381404 E0080144 00031840 */ sll $v1, $v1, 1
/* 381408 E0080148 2463FFFF */ addiu $v1, $v1, -1
/* 38140C E008014C 24A2FFFF */ addiu $v0, $a1, -1
/* 381410 E0080150 00021043 */ sra $v0, $v0, 1
/* 381414 E0080154 00620018 */ mult $v1, $v0
/* 381418 E0080158 24A2000A */ addiu $v0, $a1, 0xa
/* 38141C E008015C E482FFEC */ swc1 $f2, -0x14($a0)
/* 381420 E0080160 AC82000C */ sw $v0, 0xc($a0)
/* 381424 E0080164 AC800010 */ sw $zero, 0x10($a0)
/* 381428 E0080168 AC800014 */ sw $zero, 0x14($a0)
/* 38142C E008016C 00004012 */ mflo $t0
/* 381430 E0080170 00081080 */ sll $v0, $t0, 2
/* 381434 E0080174 44820000 */ mtc1 $v0, $f0
/* 381438 E0080178 00000000 */ nop
/* 38143C E008017C 46800020 */ cvt.s.w $f0, $f0
/* 381440 E0080180 E480FFDC */ swc1 $f0, -0x24($a0)
.LE0080184:
/* 381444 E0080184 24A50001 */ addiu $a1, $a1, 1
/* 381448 E0080188 AC800004 */ sw $zero, 4($a0)
/* 38144C E008018C AC860000 */ sw $a2, ($a0)
/* 381450 E0080190 00B2102A */ slt $v0, $a1, $s2
/* 381454 E0080194 1440FFDB */ bnez $v0, .LE0080104
/* 381458 E0080198 24840048 */ addiu $a0, $a0, 0x48
.LE008019C:
/* 38145C E008019C 0220102D */ daddu $v0, $s1, $zero
/* 381460 E00801A0 8FBF0038 */ lw $ra, 0x38($sp)
/* 381464 E00801A4 8FB30034 */ lw $s3, 0x34($sp)
/* 381468 E00801A8 8FB20030 */ lw $s2, 0x30($sp)
/* 38146C E00801AC 8FB1002C */ lw $s1, 0x2c($sp)
/* 381470 E00801B0 8FB00028 */ lw $s0, 0x28($sp)
/* 381474 E00801B4 D7B80050 */ ldc1 $f24, 0x50($sp)
/* 381478 E00801B8 D7B60048 */ ldc1 $f22, 0x48($sp)
/* 38147C E00801BC D7B40040 */ ldc1 $f20, 0x40($sp)
/* 381480 E00801C0 03E00008 */ jr $ra
/* 381484 E00801C4 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -1,172 +0,0 @@
.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)
/* 381498 E00801D8 0080A82D */ daddu $s5, $a0, $zero
/* 38149C E00801DC AFBF0030 */ sw $ra, 0x30($sp)
/* 3814A0 E00801E0 AFB7002C */ sw $s7, 0x2c($sp)
/* 3814A4 E00801E4 AFB60028 */ sw $s6, 0x28($sp)
/* 3814A8 E00801E8 AFB40020 */ sw $s4, 0x20($sp)
/* 3814AC E00801EC AFB3001C */ sw $s3, 0x1c($sp)
/* 3814B0 E00801F0 AFB20018 */ sw $s2, 0x18($sp)
/* 3814B4 E00801F4 AFB10014 */ sw $s1, 0x14($sp)
/* 3814B8 E00801F8 AFB00010 */ sw $s0, 0x10($sp)
/* 3814BC E00801FC F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3814C0 E0080200 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3814C4 E0080204 8EA3000C */ lw $v1, 0xc($s5)
/* 3814C8 E0080208 8C62002C */ lw $v0, 0x2c($v1)
/* 3814CC E008020C 2442FFFF */ addiu $v0, $v0, -1
/* 3814D0 E0080210 AC62002C */ sw $v0, 0x2c($v1)
/* 3814D4 E0080214 8C620030 */ lw $v0, 0x30($v1)
/* 3814D8 E0080218 8C64002C */ lw $a0, 0x2c($v1)
/* 3814DC E008021C 24420001 */ addiu $v0, $v0, 1
/* 3814E0 E0080220 04810005 */ bgez $a0, .LE0080238
/* 3814E4 E0080224 AC620030 */ sw $v0, 0x30($v1)
/* 3814E8 E0080228 0C080128 */ jal shim_remove_effect
/* 3814EC E008022C 02A0202D */ daddu $a0, $s5, $zero
/* 3814F0 E0080230 080200FC */ j .LE00803F0
/* 3814F4 E0080234 00000000 */ nop
.LE0080238:
/* 3814F8 E0080238 24630048 */ addiu $v1, $v1, 0x48
/* 3814FC E008023C 24120001 */ addiu $s2, $zero, 1
/* 381500 E0080240 8EA20008 */ lw $v0, 8($s5)
/* 381504 E0080244 0242102A */ slt $v0, $s2, $v0
/* 381508 E0080248 10400069 */ beqz $v0, .LE00803F0
/* 38150C E008024C 0080882D */ daddu $s1, $a0, $zero
/* 381510 E0080250 3C013F80 */ lui $at, 0x3f80
/* 381514 E0080254 4481B000 */ mtc1 $at, $f22
/* 381518 E0080258 3C17E008 */ lui $s7, %hi(D_E0080AF0)
/* 38151C E008025C 26F70AF0 */ addiu $s7, $s7, %lo(D_E0080AF0)
/* 381520 E0080260 02511004 */ sllv $v0, $s1, $s2
/* 381524 E0080264 0051A021 */ addu $s4, $v0, $s1
/* 381528 E0080268 001410C0 */ sll $v0, $s4, 3
/* 38152C E008026C 0051B021 */ addu $s6, $v0, $s1
/* 381530 E0080270 2470002C */ addiu $s0, $v1, 0x2c
/* 381534 E0080274 24130026 */ addiu $s3, $zero, 0x26
.LE0080278:
/* 381538 E0080278 8E020008 */ lw $v0, 8($s0)
/* 38153C E008027C 8E030000 */ lw $v1, ($s0)
/* 381540 E0080280 18400003 */ blez $v0, .LE0080290
/* 381544 E0080284 2442FFFF */ addiu $v0, $v0, -1
/* 381548 E0080288 1C400053 */ bgtz $v0, .LE00803D8
/* 38154C E008028C AE020008 */ sw $v0, 8($s0)
.LE0080290:
/* 381550 E0080290 28620007 */ slti $v0, $v1, 7
/* 381554 E0080294 14400004 */ bnez $v0, .LE00802A8
/* 381558 E0080298 00031880 */ sll $v1, $v1, 2
/* 38155C E008029C E6160010 */ swc1 $f22, 0x10($s0)
/* 381560 E00802A0 080200B1 */ j .LE00802C4
/* 381564 E00802A4 E616000C */ swc1 $f22, 0xc($s0)
.LE00802A8:
/* 381568 E00802A8 00771021 */ addu $v0, $v1, $s7
/* 38156C E00802AC C4400000 */ lwc1 $f0, ($v0)
/* 381570 E00802B0 E600000C */ swc1 $f0, 0xc($s0)
/* 381574 E00802B4 3C01E008 */ lui $at, %hi(D_E0080B0C)
/* 381578 E00802B8 00230821 */ addu $at, $at, $v1
/* 38157C E00802BC C4200B0C */ lwc1 $f0, %lo(D_E0080B0C)($at)
/* 381580 E00802C0 E6000010 */ swc1 $f0, 0x10($s0)
.LE00802C4:
/* 381584 E00802C4 00141080 */ sll $v0, $s4, 2
/* 381588 E00802C8 02621021 */ addu $v0, $s3, $v0
/* 38158C E00802CC 4482A000 */ mtc1 $v0, $f20
/* 381590 E00802D0 00000000 */ nop
/* 381594 E00802D4 4680A520 */ cvt.s.w $f20, $f20
/* 381598 E00802D8 C606FFD8 */ lwc1 $f6, -0x28($s0)
/* 38159C E00802DC C600FFE4 */ lwc1 $f0, -0x1c($s0)
/* 3815A0 E00802E0 C604FFDC */ lwc1 $f4, -0x24($s0)
/* 3815A4 E00802E4 46003180 */ add.s $f6, $f6, $f0
/* 3815A8 E00802E8 C600FFE8 */ lwc1 $f0, -0x18($s0)
/* 3815AC E00802EC C602FFEC */ lwc1 $f2, -0x14($s0)
/* 3815B0 E00802F0 46002100 */ add.s $f4, $f4, $f0
/* 3815B4 E00802F4 C600FFE0 */ lwc1 $f0, -0x20($s0)
/* 3815B8 E00802F8 4600A306 */ mov.s $f12, $f20
/* 3815BC E00802FC 46020000 */ add.s $f0, $f0, $f2
/* 3815C0 E0080300 E606FFD8 */ swc1 $f6, -0x28($s0)
/* 3815C4 E0080304 E604FFDC */ swc1 $f4, -0x24($s0)
/* 3815C8 E0080308 0C080140 */ jal shim_sin_deg
/* 3815CC E008030C E600FFE0 */ swc1 $f0, -0x20($s0)
/* 3815D0 E0080310 3C01C1F0 */ lui $at, 0xc1f0
/* 3815D4 E0080314 44811000 */ mtc1 $at, $f2
/* 3815D8 E0080318 00000000 */ nop
/* 3815DC E008031C 46020002 */ mul.s $f0, $f0, $f2
/* 3815E0 E0080320 00000000 */ nop
/* 3815E4 E0080324 4600A306 */ mov.s $f12, $f20
/* 3815E8 E0080328 0C080144 */ jal shim_cos_deg
/* 3815EC E008032C E600FFF0 */ swc1 $f0, -0x10($s0)
/* 3815F0 E0080330 3C014100 */ lui $at, 0x4100
/* 3815F4 E0080334 44811000 */ mtc1 $at, $f2
/* 3815F8 E0080338 00000000 */ nop
/* 3815FC E008033C 46020082 */ mul.s $f2, $f0, $f2
/* 381600 E0080340 00000000 */ nop
/* 381604 E0080344 2A220014 */ slti $v0, $s1, 0x14
/* 381608 E0080348 10400014 */ beqz $v0, .LE008039C
/* 38160C E008034C E602FFF8 */ swc1 $f2, -8($s0)
/* 381610 E0080350 44912000 */ mtc1 $s1, $f4
/* 381614 E0080354 00000000 */ nop
/* 381618 E0080358 46802120 */ cvt.s.w $f4, $f4
/* 38161C E008035C 3C01E008 */ lui $at, %hi(D_E0080B30)
/* 381620 E0080360 D4200B30 */ ldc1 $f0, %lo(D_E0080B30)($at)
/* 381624 E0080364 46002121 */ cvt.d.s $f4, $f4
/* 381628 E0080368 46202102 */ mul.d $f4, $f4, $f0
/* 38162C E008036C 00000000 */ nop
/* 381630 E0080370 460010A1 */ cvt.d.s $f2, $f2
/* 381634 E0080374 46241082 */ mul.d $f2, $f2, $f4
/* 381638 E0080378 00000000 */ nop
/* 38163C E008037C C600FFF0 */ lwc1 $f0, -0x10($s0)
/* 381640 E0080380 46000021 */ cvt.d.s $f0, $f0
/* 381644 E0080384 46240002 */ mul.d $f0, $f0, $f4
/* 381648 E0080388 00000000 */ nop
/* 38164C E008038C 462010A0 */ cvt.s.d $f2, $f2
/* 381650 E0080390 46200020 */ cvt.s.d $f0, $f0
/* 381654 E0080394 E602FFF8 */ swc1 $f2, -8($s0)
/* 381658 E0080398 E600FFF0 */ swc1 $f0, -0x10($s0)
.LE008039C:
/* 38165C E008039C 2A22000A */ slti $v0, $s1, 0xa
/* 381660 E00803A0 1040000A */ beqz $v0, .LE00803CC
/* 381664 E00803A4 00000000 */ nop
/* 381668 E00803A8 C600FFE8 */ lwc1 $f0, -0x18($s0)
/* 38166C E00803AC 3C01E008 */ lui $at, %hi(D_E0080B38)
/* 381670 E00803B0 D4220B38 */ ldc1 $f2, %lo(D_E0080B38)($at)
/* 381674 E00803B4 46000021 */ cvt.d.s $f0, $f0
/* 381678 E00803B8 46220002 */ mul.d $f0, $f0, $f2
/* 38167C E00803BC 00000000 */ nop
/* 381680 E00803C0 AE16FFFC */ sw $s6, -4($s0)
/* 381684 E00803C4 46200020 */ cvt.s.d $f0, $f0
/* 381688 E00803C8 E600FFE8 */ swc1 $f0, -0x18($s0)
.LE00803CC:
/* 38168C E00803CC 8E020000 */ lw $v0, ($s0)
/* 381690 E00803D0 24420001 */ addiu $v0, $v0, 1
/* 381694 E00803D4 AE020000 */ sw $v0, ($s0)
.LE00803D8:
/* 381698 E00803D8 26730026 */ addiu $s3, $s3, 0x26
/* 38169C E00803DC 26520001 */ addiu $s2, $s2, 1
/* 3816A0 E00803E0 8EA20008 */ lw $v0, 8($s5)
/* 3816A4 E00803E4 0242102A */ slt $v0, $s2, $v0
/* 3816A8 E00803E8 1440FFA3 */ bnez $v0, .LE0080278
/* 3816AC E00803EC 26100048 */ addiu $s0, $s0, 0x48
.LE00803F0:
/* 3816B0 E00803F0 8FBF0030 */ lw $ra, 0x30($sp)
/* 3816B4 E00803F4 8FB7002C */ lw $s7, 0x2c($sp)
/* 3816B8 E00803F8 8FB60028 */ lw $s6, 0x28($sp)
/* 3816BC E00803FC 8FB50024 */ lw $s5, 0x24($sp)
/* 3816C0 E0080400 8FB40020 */ lw $s4, 0x20($sp)
/* 3816C4 E0080404 8FB3001C */ lw $s3, 0x1c($sp)
/* 3816C8 E0080408 8FB20018 */ lw $s2, 0x18($sp)
/* 3816CC E008040C 8FB10014 */ lw $s1, 0x14($sp)
/* 3816D0 E0080410 8FB00010 */ lw $s0, 0x10($sp)
/* 3816D4 E0080414 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3816D8 E0080418 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3816DC E008041C 03E00008 */ jr $ra
/* 3816E0 E0080420 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -1,431 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00D0B40
.double 0.3, 0.0
.section .text
glabel red_impact_appendGfx
/* 3D42AC E00D048C 27BDFED8 */ addiu $sp, $sp, -0x128
/* 3D42B0 E00D0490 3C07DB06 */ lui $a3, 0xdb06
/* 3D42B4 E00D0494 34E70024 */ ori $a3, $a3, 0x24
/* 3D42B8 E00D0498 AFA40128 */ sw $a0, 0x128($sp)
/* 3D42BC E00D049C 27A40020 */ addiu $a0, $sp, 0x20
/* 3D42C0 E00D04A0 AFB000D8 */ sw $s0, 0xd8($sp)
/* 3D42C4 E00D04A4 3C100001 */ lui $s0, 1
/* 3D42C8 E00D04A8 AFB300E4 */ sw $s3, 0xe4($sp)
/* 3D42CC E00D04AC 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 3D42D0 E00D04B0 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 3D42D4 E00D04B4 36101630 */ ori $s0, $s0, 0x1630
/* 3D42D8 E00D04B8 AFBF00FC */ sw $ra, 0xfc($sp)
/* 3D42DC E00D04BC AFBE00F8 */ sw $fp, 0xf8($sp)
/* 3D42E0 E00D04C0 AFB700F4 */ sw $s7, 0xf4($sp)
/* 3D42E4 E00D04C4 AFB600F0 */ sw $s6, 0xf0($sp)
/* 3D42E8 E00D04C8 AFB500EC */ sw $s5, 0xec($sp)
/* 3D42EC E00D04CC AFB400E8 */ sw $s4, 0xe8($sp)
/* 3D42F0 E00D04D0 AFB200E0 */ sw $s2, 0xe0($sp)
/* 3D42F4 E00D04D4 AFB100DC */ sw $s1, 0xdc($sp)
/* 3D42F8 E00D04D8 F7BC0120 */ sdc1 $f28, 0x120($sp)
/* 3D42FC E00D04DC F7BA0118 */ sdc1 $f26, 0x118($sp)
/* 3D4300 E00D04E0 F7B80110 */ sdc1 $f24, 0x110($sp)
/* 3D4304 E00D04E4 F7B60108 */ sdc1 $f22, 0x108($sp)
/* 3D4308 E00D04E8 F7B40100 */ sdc1 $f20, 0x100($sp)
/* 3D430C E00D04EC 8E660000 */ lw $a2, ($s3)
/* 3D4310 E00D04F0 8FAD0128 */ lw $t5, 0x128($sp)
/* 3D4314 E00D04F4 4480A000 */ mtc1 $zero, $f20
/* 3D4318 E00D04F8 3C01E00D */ lui $at, %hi(D_E00D0B40)
/* 3D431C E00D04FC D4200B40 */ ldc1 $f0, %lo(D_E00D0B40)($at)
/* 3D4320 E00D0500 3C013F80 */ lui $at, 0x3f80
/* 3D4324 E00D0504 4481B000 */ mtc1 $at, $f22
/* 3D4328 E00D0508 00C0182D */ daddu $v1, $a2, $zero
/* 3D432C E00D050C 24C60008 */ addiu $a2, $a2, 8
/* 3D4330 E00D0510 8DB1000C */ lw $s1, 0xc($t5)
/* 3D4334 E00D0514 4405A000 */ mfc1 $a1, $f20
/* 3D4338 E00D0518 96220000 */ lhu $v0, ($s1)
/* 3D433C E00D051C C624001C */ lwc1 $f4, 0x1c($s1)
/* 3D4340 E00D0520 C6260020 */ lwc1 $f6, 0x20($s1)
/* 3D4344 E00D0524 C6280024 */ lwc1 $f8, 0x24($s1)
/* 3D4348 E00D0528 922D0050 */ lbu $t5, 0x50($s1)
/* 3D434C E00D052C 00021080 */ sll $v0, $v0, 2
/* 3D4350 E00D0530 3C08E00D */ lui $t0, %hi(D_E00D0B10)
/* 3D4354 E00D0534 01024021 */ addu $t0, $t0, $v0
/* 3D4358 E00D0538 8D080B10 */ lw $t0, %lo(D_E00D0B10)($t0)
/* 3D435C E00D053C 46002121 */ cvt.d.s $f4, $f4
/* 3D4360 E00D0540 AFAD00A4 */ sw $t5, 0xa4($sp)
/* 3D4364 E00D0544 922D0051 */ lbu $t5, 0x51($s1)
/* 3D4368 E00D0548 46202102 */ mul.d $f4, $f4, $f0
/* 3D436C E00D054C 00000000 */ nop
/* 3D4370 E00D0550 AFAD00A8 */ sw $t5, 0xa8($sp)
/* 3D4374 E00D0554 922D0052 */ lbu $t5, 0x52($s1)
/* 3D4378 E00D0558 3C02E700 */ lui $v0, 0xe700
/* 3D437C E00D055C AFAD00AC */ sw $t5, 0xac($sp)
/* 3D4380 E00D0560 922D0053 */ lbu $t5, 0x53($s1)
/* 3D4384 E00D0564 460031A1 */ cvt.d.s $f6, $f6
/* 3D4388 E00D0568 AFAD00B0 */ sw $t5, 0xb0($sp)
/* 3D438C E00D056C 922D0054 */ lbu $t5, 0x54($s1)
/* 3D4390 E00D0570 46203182 */ mul.d $f6, $f6, $f0
/* 3D4394 E00D0574 00000000 */ nop
/* 3D4398 E00D0578 AFAD00B4 */ sw $t5, 0xb4($sp)
/* 3D439C E00D057C 922D0055 */ lbu $t5, 0x55($s1)
/* 3D43A0 E00D0580 46004221 */ cvt.d.s $f8, $f8
/* 3D43A4 E00D0584 AFAD00B8 */ sw $t5, 0xb8($sp)
/* 3D43A8 E00D0588 AC620000 */ sw $v0, ($v1)
/* 3D43AC E00D058C AC600004 */ sw $zero, 4($v1)
/* 3D43B0 E00D0590 ACC70000 */ sw $a3, ($a2)
/* 3D43B4 E00D0594 8FAD0128 */ lw $t5, 0x128($sp)
/* 3D43B8 E00D0598 46204202 */ mul.d $f8, $f8, $f0
/* 3D43BC E00D059C 00000000 */ nop
/* 3D43C0 E00D05A0 8DA20010 */ lw $v0, 0x10($t5)
/* 3D43C4 E00D05A4 4407A000 */ mfc1 $a3, $f20
/* 3D43C8 E00D05A8 8C43001C */ lw $v1, 0x1c($v0)
/* 3D43CC E00D05AC 3C02DE00 */ lui $v0, 0xde00
/* 3D43D0 E00D05B0 ACC20008 */ sw $v0, 8($a2)
/* 3D43D4 E00D05B4 3C028000 */ lui $v0, 0x8000
/* 3D43D8 E00D05B8 00621821 */ addu $v1, $v1, $v0
/* 3D43DC E00D05BC ACC30004 */ sw $v1, 4($a2)
/* 3D43E0 E00D05C0 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 3D43E4 E00D05C4 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 3D43E8 E00D05C8 46202720 */ cvt.s.d $f28, $f4
/* 3D43EC E00D05CC ACC8000C */ sw $t0, 0xc($a2)
/* 3D43F0 E00D05D0 00031080 */ sll $v0, $v1, 2
/* 3D43F4 E00D05D4 00431021 */ addu $v0, $v0, $v1
/* 3D43F8 E00D05D8 00021080 */ sll $v0, $v0, 2
/* 3D43FC E00D05DC 00431023 */ subu $v0, $v0, $v1
/* 3D4400 E00D05E0 000218C0 */ sll $v1, $v0, 3
/* 3D4404 E00D05E4 00431021 */ addu $v0, $v0, $v1
/* 3D4408 E00D05E8 000210C0 */ sll $v0, $v0, 3
/* 3D440C E00D05EC 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 3D4410 E00D05F0 00220821 */ addu $at, $at, $v0
/* 3D4414 E00D05F4 C42A1DEC */ lwc1 $f10, %lo(gCameras+0x6C)($at)
/* 3D4418 E00D05F8 24C20008 */ addiu $v0, $a2, 8
/* 3D441C E00D05FC AE660000 */ sw $a2, ($s3)
/* 3D4420 E00D0600 E7B60010 */ swc1 $f22, 0x10($sp)
/* 3D4424 E00D0604 C6220004 */ lwc1 $f2, 4($s1)
/* 3D4428 E00D0608 24C60010 */ addiu $a2, $a2, 0x10
/* 3D442C E00D060C AE620000 */ sw $v0, ($s3)
/* 3D4430 E00D0610 E7A20014 */ swc1 $f2, 0x14($sp)
/* 3D4434 E00D0614 C6200008 */ lwc1 $f0, 8($s1)
/* 3D4438 E00D0618 46005287 */ neg.s $f10, $f10
/* 3D443C E00D061C AE660000 */ sw $a2, ($s3)
/* 3D4440 E00D0620 44065000 */ mfc1 $a2, $f10
/* 3D4444 E00D0624 462036A0 */ cvt.s.d $f26, $f6
/* 3D4448 E00D0628 E7A00018 */ swc1 $f0, 0x18($sp)
/* 3D444C E00D062C C620000C */ lwc1 $f0, 0xc($s1)
/* 3D4450 E00D0630 46204620 */ cvt.s.d $f24, $f8
/* 3D4454 E00D0634 0C080180 */ jal shim_guPositionF
/* 3D4458 E00D0638 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 3D445C E00D063C 27A40020 */ addiu $a0, $sp, 0x20
/* 3D4460 E00D0640 3C158007 */ lui $s5, %hi(gMatrixListPos)
/* 3D4464 E00D0644 26B541F0 */ addiu $s5, $s5, %lo(gMatrixListPos)
/* 3D4468 E00D0648 3C16800A */ lui $s6, %hi(gDisplayContext)
/* 3D446C E00D064C 26D6A674 */ addiu $s6, $s6, %lo(gDisplayContext)
/* 3D4470 E00D0650 96A50000 */ lhu $a1, ($s5)
/* 3D4474 E00D0654 8EC20000 */ lw $v0, ($s6)
/* 3D4478 E00D0658 00052980 */ sll $a1, $a1, 6
/* 3D447C E00D065C 00B02821 */ addu $a1, $a1, $s0
/* 3D4480 E00D0660 0C080118 */ jal shim_guMtxF2L
/* 3D4484 E00D0664 00452821 */ addu $a1, $v0, $a1
/* 3D4488 E00D0668 24140001 */ addiu $s4, $zero, 1
/* 3D448C E00D066C 3C02DA38 */ lui $v0, 0xda38
/* 3D4490 E00D0670 8E650000 */ lw $a1, ($s3)
/* 3D4494 E00D0674 96A40000 */ lhu $a0, ($s5)
/* 3D4498 E00D0678 00A0302D */ daddu $a2, $a1, $zero
/* 3D449C E00D067C 24A50008 */ addiu $a1, $a1, 8
/* 3D44A0 E00D0680 ACC20000 */ sw $v0, ($a2)
/* 3D44A4 E00D0684 3082FFFF */ andi $v0, $a0, 0xffff
/* 3D44A8 E00D0688 00021180 */ sll $v0, $v0, 6
/* 3D44AC E00D068C 00501021 */ addu $v0, $v0, $s0
/* 3D44B0 E00D0690 00942021 */ addu $a0, $a0, $s4
/* 3D44B4 E00D0694 8EC30000 */ lw $v1, ($s6)
/* 3D44B8 E00D0698 00A0B82D */ daddu $s7, $a1, $zero
/* 3D44BC E00D069C 00621821 */ addu $v1, $v1, $v0
/* 3D44C0 E00D06A0 ACC30004 */ sw $v1, 4($a2)
/* 3D44C4 E00D06A4 8E2D0038 */ lw $t5, 0x38($s1)
/* 3D44C8 E00D06A8 26E30008 */ addiu $v1, $s7, 8
/* 3D44CC E00D06AC AFAD00A0 */ sw $t5, 0xa0($sp)
/* 3D44D0 E00D06B0 AE650000 */ sw $a1, ($s3)
/* 3D44D4 E00D06B4 A6A40000 */ sh $a0, ($s5)
/* 3D44D8 E00D06B8 AE630000 */ sw $v1, ($s3)
/* 3D44DC E00D06BC 8FAD00A4 */ lw $t5, 0xa4($sp)
/* 3D44E0 E00D06C0 AFAD00BC */ sw $t5, 0xbc($sp)
/* 3D44E4 E00D06C4 8FAD00A8 */ lw $t5, 0xa8($sp)
/* 3D44E8 E00D06C8 AFAD00C0 */ sw $t5, 0xc0($sp)
/* 3D44EC E00D06CC 8FAD00AC */ lw $t5, 0xac($sp)
/* 3D44F0 E00D06D0 AFAD00C4 */ sw $t5, 0xc4($sp)
/* 3D44F4 E00D06D4 8FAD00B0 */ lw $t5, 0xb0($sp)
/* 3D44F8 E00D06D8 AFAD00C8 */ sw $t5, 0xc8($sp)
/* 3D44FC E00D06DC 8FAD00B4 */ lw $t5, 0xb4($sp)
/* 3D4500 E00D06E0 AFAD00CC */ sw $t5, 0xcc($sp)
/* 3D4504 E00D06E4 8FAD00B8 */ lw $t5, 0xb8($sp)
/* 3D4508 E00D06E8 AFAD00D0 */ sw $t5, 0xd0($sp)
/* 3D450C E00D06EC 8FAD0128 */ lw $t5, 0x128($sp)
/* 3D4510 E00D06F0 8DA20008 */ lw $v0, 8($t5)
/* 3D4514 E00D06F4 26310058 */ addiu $s1, $s1, 0x58
/* 3D4518 E00D06F8 0282102A */ slt $v0, $s4, $v0
/* 3D451C E00D06FC 10400087 */ beqz $v0, .LE00D091C
/* 3D4520 E00D0700 AFA300D4 */ sw $v1, 0xd4($sp)
/* 3D4524 E00D0704 27B20060 */ addiu $s2, $sp, 0x60
/* 3D4528 E00D0708 02A0B02D */ daddu $s6, $s5, $zero
/* 3D452C E00D070C 3C150001 */ lui $s5, 1
/* 3D4530 E00D0710 36B51630 */ ori $s5, $s5, 0x1630
/* 3D4534 E00D0714 3C1EF200 */ lui $fp, 0xf200
/* 3D4538 E00D0718 26300044 */ addiu $s0, $s1, 0x44
.LE00D071C:
/* 3D453C E00D071C 8E020008 */ lw $v0, 8($s0)
/* 3D4540 E00D0720 04400078 */ bltz $v0, .LE00D0904
/* 3D4544 E00D0724 00000000 */ nop
/* 3D4548 E00D0728 8E05FFC0 */ lw $a1, -0x40($s0)
/* 3D454C E00D072C 8E06FFC4 */ lw $a2, -0x3c($s0)
/* 3D4550 E00D0730 8E07FFC8 */ lw $a3, -0x38($s0)
/* 3D4554 E00D0734 0C080108 */ jal shim_guTranslateF
/* 3D4558 E00D0738 27A40020 */ addiu $a0, $sp, 0x20
/* 3D455C E00D073C E7B60010 */ swc1 $f22, 0x10($sp)
/* 3D4560 E00D0740 8E05FFF0 */ lw $a1, -0x10($s0)
/* 3D4564 E00D0744 4406A000 */ mfc1 $a2, $f20
/* 3D4568 E00D0748 4407A000 */ mfc1 $a3, $f20
/* 3D456C E00D074C 0C080104 */ jal shim_guRotateF
/* 3D4570 E00D0750 0240202D */ daddu $a0, $s2, $zero
/* 3D4574 E00D0754 0240202D */ daddu $a0, $s2, $zero
/* 3D4578 E00D0758 27A50020 */ addiu $a1, $sp, 0x20
/* 3D457C E00D075C 0C080114 */ jal shim_guMtxCatF
/* 3D4580 E00D0760 00A0302D */ daddu $a2, $a1, $zero
/* 3D4584 E00D0764 C600FFD8 */ lwc1 $f0, -0x28($s0)
/* 3D4588 E00D0768 461C0002 */ mul.s $f0, $f0, $f28
/* 3D458C E00D076C 00000000 */ nop
/* 3D4590 E00D0770 44050000 */ mfc1 $a1, $f0
/* 3D4594 E00D0774 C600FFDC */ lwc1 $f0, -0x24($s0)
/* 3D4598 E00D0778 461A0002 */ mul.s $f0, $f0, $f26
/* 3D459C E00D077C 00000000 */ nop
/* 3D45A0 E00D0780 44060000 */ mfc1 $a2, $f0
/* 3D45A4 E00D0784 C600FFE0 */ lwc1 $f0, -0x20($s0)
/* 3D45A8 E00D0788 46180002 */ mul.s $f0, $f0, $f24
/* 3D45AC E00D078C 00000000 */ nop
/* 3D45B0 E00D0790 44070000 */ mfc1 $a3, $f0
/* 3D45B4 E00D0794 0C080110 */ jal shim_guScaleF
/* 3D45B8 E00D0798 0240202D */ daddu $a0, $s2, $zero
/* 3D45BC E00D079C 0240202D */ daddu $a0, $s2, $zero
/* 3D45C0 E00D07A0 27A50020 */ addiu $a1, $sp, 0x20
/* 3D45C4 E00D07A4 0C080114 */ jal shim_guMtxCatF
/* 3D45C8 E00D07A8 00A0302D */ daddu $a2, $a1, $zero
/* 3D45CC E00D07AC E7B40010 */ swc1 $f20, 0x10($sp)
/* 3D45D0 E00D07B0 8E05FFEC */ lw $a1, -0x14($s0)
/* 3D45D4 E00D07B4 4406A000 */ mfc1 $a2, $f20
/* 3D45D8 E00D07B8 4407B000 */ mfc1 $a3, $f22
/* 3D45DC E00D07BC 0C080104 */ jal shim_guRotateF
/* 3D45E0 E00D07C0 0240202D */ daddu $a0, $s2, $zero
/* 3D45E4 E00D07C4 0240202D */ daddu $a0, $s2, $zero
/* 3D45E8 E00D07C8 27A50020 */ addiu $a1, $sp, 0x20
/* 3D45EC E00D07CC 0C080114 */ jal shim_guMtxCatF
/* 3D45F0 E00D07D0 00A0302D */ daddu $a2, $a1, $zero
/* 3D45F4 E00D07D4 27A40020 */ addiu $a0, $sp, 0x20
/* 3D45F8 E00D07D8 96C50000 */ lhu $a1, ($s6)
/* 3D45FC E00D07DC 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 3D4600 E00D07E0 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 3D4604 E00D07E4 00052980 */ sll $a1, $a1, 6
/* 3D4608 E00D07E8 00B52821 */ addu $a1, $a1, $s5
/* 3D460C E00D07EC 0C080118 */ jal shim_guMtxF2L
/* 3D4610 E00D07F0 00452821 */ addu $a1, $v0, $a1
/* 3D4614 E00D07F4 3C06000F */ lui $a2, 0xf
/* 3D4618 E00D07F8 34C6C000 */ ori $a2, $a2, 0xc000
/* 3D461C E00D07FC 3C080107 */ lui $t0, 0x107
/* 3D4620 E00D0800 3508C000 */ ori $t0, $t0, 0xc000
/* 3D4624 E00D0804 3C07D838 */ lui $a3, 0xd838
/* 3D4628 E00D0808 34E70002 */ ori $a3, $a3, 2
/* 3D462C E00D080C 8E630000 */ lw $v1, ($s3)
/* 3D4630 E00D0810 C600FFF8 */ lwc1 $f0, -8($s0)
/* 3D4634 E00D0814 0060282D */ daddu $a1, $v1, $zero
/* 3D4638 E00D0818 24630008 */ addiu $v1, $v1, 8
/* 3D463C E00D081C 4600030D */ trunc.w.s $f12, $f0
/* 3D4640 E00D0820 44026000 */ mfc1 $v0, $f12
/* 3D4644 E00D0824 00000000 */ nop
/* 3D4648 E00D0828 30420FFF */ andi $v0, $v0, 0xfff
/* 3D464C E00D082C 005E1025 */ or $v0, $v0, $fp
/* 3D4650 E00D0830 AE630000 */ sw $v1, ($s3)
/* 3D4654 E00D0834 ACA20000 */ sw $v0, ($a1)
/* 3D4658 E00D0838 24620008 */ addiu $v0, $v1, 8
/* 3D465C E00D083C AE620000 */ sw $v0, ($s3)
/* 3D4660 E00D0840 96C40000 */ lhu $a0, ($s6)
/* 3D4664 E00D0844 24620010 */ addiu $v0, $v1, 0x10
/* 3D4668 E00D0848 AE620000 */ sw $v0, ($s3)
/* 3D466C E00D084C 24820001 */ addiu $v0, $a0, 1
/* 3D4670 E00D0850 A6C20000 */ sh $v0, ($s6)
/* 3D4674 E00D0854 24620018 */ addiu $v0, $v1, 0x18
/* 3D4678 E00D0858 3084FFFF */ andi $a0, $a0, 0xffff
/* 3D467C E00D085C 00042180 */ sll $a0, $a0, 6
/* 3D4680 E00D0860 C600FFF8 */ lwc1 $f0, -8($s0)
/* 3D4684 E00D0864 00952021 */ addu $a0, $a0, $s5
/* 3D4688 E00D0868 AE620000 */ sw $v0, ($s3)
/* 3D468C E00D086C 4600030D */ trunc.w.s $f12, $f0
/* 3D4690 E00D0870 44026000 */ mfc1 $v0, $f12
/* 3D4694 E00D0874 00000000 */ nop
/* 3D4698 E00D0878 2442007C */ addiu $v0, $v0, 0x7c
/* 3D469C E00D087C 30420FFF */ andi $v0, $v0, 0xfff
/* 3D46A0 E00D0880 00461025 */ or $v0, $v0, $a2
/* 3D46A4 E00D0884 ACA20004 */ sw $v0, 4($a1)
/* 3D46A8 E00D0888 C6000000 */ lwc1 $f0, ($s0)
/* 3D46AC E00D088C 24620020 */ addiu $v0, $v1, 0x20
/* 3D46B0 E00D0890 AE620000 */ sw $v0, ($s3)
/* 3D46B4 E00D0894 4600030D */ trunc.w.s $f12, $f0
/* 3D46B8 E00D0898 44026000 */ mfc1 $v0, $f12
/* 3D46BC E00D089C 00000000 */ nop
/* 3D46C0 E00D08A0 30420FFF */ andi $v0, $v0, 0xfff
/* 3D46C4 E00D08A4 005E1025 */ or $v0, $v0, $fp
/* 3D46C8 E00D08A8 AC620000 */ sw $v0, ($v1)
/* 3D46CC E00D08AC C6000000 */ lwc1 $f0, ($s0)
/* 3D46D0 E00D08B0 3C02DA38 */ lui $v0, 0xda38
/* 3D46D4 E00D08B4 AC620008 */ sw $v0, 8($v1)
/* 3D46D8 E00D08B8 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 3D46DC E00D08BC 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 3D46E0 E00D08C0 3C0D0900 */ lui $t5, 0x900
/* 3D46E4 E00D08C4 25AD0940 */ addiu $t5, $t5, 0x940
/* 3D46E8 E00D08C8 AC6D0014 */ sw $t5, 0x14($v1)
/* 3D46EC E00D08CC AC670018 */ sw $a3, 0x18($v1)
/* 3D46F0 E00D08D0 00441021 */ addu $v0, $v0, $a0
/* 3D46F4 E00D08D4 AC62000C */ sw $v0, 0xc($v1)
/* 3D46F8 E00D08D8 3C02DE00 */ lui $v0, 0xde00
/* 3D46FC E00D08DC AC620010 */ sw $v0, 0x10($v1)
/* 3D4700 E00D08E0 24020040 */ addiu $v0, $zero, 0x40
/* 3D4704 E00D08E4 AC62001C */ sw $v0, 0x1c($v1)
/* 3D4708 E00D08E8 4600030D */ trunc.w.s $f12, $f0
/* 3D470C E00D08EC 44026000 */ mfc1 $v0, $f12
/* 3D4710 E00D08F0 00000000 */ nop
/* 3D4714 E00D08F4 2442007C */ addiu $v0, $v0, 0x7c
/* 3D4718 E00D08F8 30420FFF */ andi $v0, $v0, 0xfff
/* 3D471C E00D08FC 00481025 */ or $v0, $v0, $t0
/* 3D4720 E00D0900 AC620004 */ sw $v0, 4($v1)
.LE00D0904:
/* 3D4724 E00D0904 8FAD0128 */ lw $t5, 0x128($sp)
/* 3D4728 E00D0908 26940001 */ addiu $s4, $s4, 1
/* 3D472C E00D090C 8DA20008 */ lw $v0, 8($t5)
/* 3D4730 E00D0910 0282102A */ slt $v0, $s4, $v0
/* 3D4734 E00D0914 1440FF81 */ bnez $v0, .LE00D071C
/* 3D4738 E00D0918 26100058 */ addiu $s0, $s0, 0x58
.LE00D091C:
/* 3D473C E00D091C 3C0AD9FF */ lui $t2, 0xd9ff
/* 3D4740 E00D0920 354AF9FF */ ori $t2, $t2, 0xf9ff
/* 3D4744 E00D0924 3C05800A */ lui $a1, %hi(gMasterGfxPos)
/* 3D4748 E00D0928 24A5A66C */ addiu $a1, $a1, %lo(gMasterGfxPos)
/* 3D474C E00D092C 3C02DF00 */ lui $v0, 0xdf00
/* 3D4750 E00D0930 8CA30000 */ lw $v1, ($a1)
/* 3D4754 E00D0934 3C09FA00 */ lui $t1, 0xfa00
/* 3D4758 E00D0938 0060202D */ daddu $a0, $v1, $zero
/* 3D475C E00D093C 24630008 */ addiu $v1, $v1, 8
/* 3D4760 E00D0940 ACA30000 */ sw $v1, ($a1)
/* 3D4764 E00D0944 AC820000 */ sw $v0, ($a0)
/* 3D4768 E00D0948 3C02DE01 */ lui $v0, 0xde01
/* 3D476C E00D094C AC800004 */ sw $zero, 4($a0)
/* 3D4770 E00D0950 AEE20000 */ sw $v0, ($s7)
/* 3D4774 E00D0954 24620008 */ addiu $v0, $v1, 8
/* 3D4778 E00D0958 AEE30004 */ sw $v1, 4($s7)
/* 3D477C E00D095C ACA20000 */ sw $v0, ($a1)
/* 3D4780 E00D0960 AC690000 */ sw $t1, ($v1)
/* 3D4784 E00D0964 8FAD00BC */ lw $t5, 0xbc($sp)
/* 3D4788 E00D0968 3C0BD9FF */ lui $t3, 0xd9ff
/* 3D478C E00D096C 000D1600 */ sll $v0, $t5, 0x18
/* 3D4790 E00D0970 8FAD00C0 */ lw $t5, 0xc0($sp)
/* 3D4794 E00D0974 3C07FB00 */ lui $a3, 0xfb00
/* 3D4798 E00D0978 000D2400 */ sll $a0, $t5, 0x10
/* 3D479C E00D097C 8FAD00C4 */ lw $t5, 0xc4($sp)
/* 3D47A0 E00D0980 00441025 */ or $v0, $v0, $a0
/* 3D47A4 E00D0984 000D2200 */ sll $a0, $t5, 8
/* 3D47A8 E00D0988 8FAD00A0 */ lw $t5, 0xa0($sp)
/* 3D47AC E00D098C 00441025 */ or $v0, $v0, $a0
/* 3D47B0 E00D0990 31A800FF */ andi $t0, $t5, 0xff
/* 3D47B4 E00D0994 00481025 */ or $v0, $v0, $t0
/* 3D47B8 E00D0998 AC620004 */ sw $v0, 4($v1)
/* 3D47BC E00D099C 24620010 */ addiu $v0, $v1, 0x10
/* 3D47C0 E00D09A0 ACA20000 */ sw $v0, ($a1)
/* 3D47C4 E00D09A4 AC670008 */ sw $a3, 8($v1)
/* 3D47C8 E00D09A8 8FAD00C8 */ lw $t5, 0xc8($sp)
/* 3D47CC E00D09AC 356BFFFF */ ori $t3, $t3, 0xffff
/* 3D47D0 E00D09B0 000D1600 */ sll $v0, $t5, 0x18
/* 3D47D4 E00D09B4 8FAD00CC */ lw $t5, 0xcc($sp)
/* 3D47D8 E00D09B8 3C06DE00 */ lui $a2, 0xde00
/* 3D47DC E00D09BC 000D2400 */ sll $a0, $t5, 0x10
/* 3D47E0 E00D09C0 8FAD00D0 */ lw $t5, 0xd0($sp)
/* 3D47E4 E00D09C4 00441025 */ or $v0, $v0, $a0
/* 3D47E8 E00D09C8 000D2200 */ sll $a0, $t5, 8
/* 3D47EC E00D09CC 00441025 */ or $v0, $v0, $a0
/* 3D47F0 E00D09D0 AC62000C */ sw $v0, 0xc($v1)
/* 3D47F4 E00D09D4 24620018 */ addiu $v0, $v1, 0x18
/* 3D47F8 E00D09D8 ACA20000 */ sw $v0, ($a1)
/* 3D47FC E00D09DC 24620020 */ addiu $v0, $v1, 0x20
/* 3D4800 E00D09E0 AC6A0010 */ sw $t2, 0x10($v1)
/* 3D4804 E00D09E4 AC600014 */ sw $zero, 0x14($v1)
/* 3D4808 E00D09E8 ACA20000 */ sw $v0, ($a1)
/* 3D480C E00D09EC 24020200 */ addiu $v0, $zero, 0x200
/* 3D4810 E00D09F0 AC62001C */ sw $v0, 0x1c($v1)
/* 3D4814 E00D09F4 24620028 */ addiu $v0, $v1, 0x28
/* 3D4818 E00D09F8 AC6B0018 */ sw $t3, 0x18($v1)
/* 3D481C E00D09FC ACA20000 */ sw $v0, ($a1)
/* 3D4820 E00D0A00 AC660020 */ sw $a2, 0x20($v1)
/* 3D4824 E00D0A04 8FAD00D4 */ lw $t5, 0xd4($sp)
/* 3D4828 E00D0A08 24620030 */ addiu $v0, $v1, 0x30
/* 3D482C E00D0A0C AC6D0024 */ sw $t5, 0x24($v1)
/* 3D4830 E00D0A10 ACA20000 */ sw $v0, ($a1)
/* 3D4834 E00D0A14 AC690028 */ sw $t1, 0x28($v1)
/* 3D4838 E00D0A18 8FAD00A4 */ lw $t5, 0xa4($sp)
/* 3D483C E00D0A1C 000D1600 */ sll $v0, $t5, 0x18
/* 3D4840 E00D0A20 8FAD00A8 */ lw $t5, 0xa8($sp)
/* 3D4844 E00D0A24 000D2400 */ sll $a0, $t5, 0x10
/* 3D4848 E00D0A28 8FAD00AC */ lw $t5, 0xac($sp)
/* 3D484C E00D0A2C 00441025 */ or $v0, $v0, $a0
/* 3D4850 E00D0A30 000D2200 */ sll $a0, $t5, 8
/* 3D4854 E00D0A34 00441025 */ or $v0, $v0, $a0
/* 3D4858 E00D0A38 00481025 */ or $v0, $v0, $t0
/* 3D485C E00D0A3C AC62002C */ sw $v0, 0x2c($v1)
/* 3D4860 E00D0A40 24620038 */ addiu $v0, $v1, 0x38
/* 3D4864 E00D0A44 ACA20000 */ sw $v0, ($a1)
/* 3D4868 E00D0A48 AC670030 */ sw $a3, 0x30($v1)
/* 3D486C E00D0A4C 8FAD00B0 */ lw $t5, 0xb0($sp)
/* 3D4870 E00D0A50 3C0CD838 */ lui $t4, 0xd838
/* 3D4874 E00D0A54 000D1600 */ sll $v0, $t5, 0x18
/* 3D4878 E00D0A58 8FAD00B4 */ lw $t5, 0xb4($sp)
/* 3D487C E00D0A5C 358C0002 */ ori $t4, $t4, 2
/* 3D4880 E00D0A60 000D2400 */ sll $a0, $t5, 0x10
/* 3D4884 E00D0A64 8FAD00B8 */ lw $t5, 0xb8($sp)
/* 3D4888 E00D0A68 00441025 */ or $v0, $v0, $a0
/* 3D488C E00D0A6C 000D2200 */ sll $a0, $t5, 8
/* 3D4890 E00D0A70 00441025 */ or $v0, $v0, $a0
/* 3D4894 E00D0A74 AC620034 */ sw $v0, 0x34($v1)
/* 3D4898 E00D0A78 24620040 */ addiu $v0, $v1, 0x40
/* 3D489C E00D0A7C ACA20000 */ sw $v0, ($a1)
/* 3D48A0 E00D0A80 24620048 */ addiu $v0, $v1, 0x48
/* 3D48A4 E00D0A84 AC6A0038 */ sw $t2, 0x38($v1)
/* 3D48A8 E00D0A88 AC60003C */ sw $zero, 0x3c($v1)
/* 3D48AC E00D0A8C ACA20000 */ sw $v0, ($a1)
/* 3D48B0 E00D0A90 24020400 */ addiu $v0, $zero, 0x400
/* 3D48B4 E00D0A94 AC620044 */ sw $v0, 0x44($v1)
/* 3D48B8 E00D0A98 24620050 */ addiu $v0, $v1, 0x50
/* 3D48BC E00D0A9C AC6B0040 */ sw $t3, 0x40($v1)
/* 3D48C0 E00D0AA0 ACA20000 */ sw $v0, ($a1)
/* 3D48C4 E00D0AA4 AC660048 */ sw $a2, 0x48($v1)
/* 3D48C8 E00D0AA8 8FAD00D4 */ lw $t5, 0xd4($sp)
/* 3D48CC E00D0AAC 24620058 */ addiu $v0, $v1, 0x58
/* 3D48D0 E00D0AB0 AC6D004C */ sw $t5, 0x4c($v1)
/* 3D48D4 E00D0AB4 ACA20000 */ sw $v0, ($a1)
/* 3D48D8 E00D0AB8 24020040 */ addiu $v0, $zero, 0x40
/* 3D48DC E00D0ABC AC6C0050 */ sw $t4, 0x50($v1)
/* 3D48E0 E00D0AC0 AC620054 */ sw $v0, 0x54($v1)
/* 3D48E4 E00D0AC4 8FBF00FC */ lw $ra, 0xfc($sp)
/* 3D48E8 E00D0AC8 8FBE00F8 */ lw $fp, 0xf8($sp)
/* 3D48EC E00D0ACC 8FB700F4 */ lw $s7, 0xf4($sp)
/* 3D48F0 E00D0AD0 8FB600F0 */ lw $s6, 0xf0($sp)
/* 3D48F4 E00D0AD4 8FB500EC */ lw $s5, 0xec($sp)
/* 3D48F8 E00D0AD8 8FB400E8 */ lw $s4, 0xe8($sp)
/* 3D48FC E00D0ADC 8FB300E4 */ lw $s3, 0xe4($sp)
/* 3D4900 E00D0AE0 8FB200E0 */ lw $s2, 0xe0($sp)
/* 3D4904 E00D0AE4 8FB100DC */ lw $s1, 0xdc($sp)
/* 3D4908 E00D0AE8 8FB000D8 */ lw $s0, 0xd8($sp)
/* 3D490C E00D0AEC D7BC0120 */ ldc1 $f28, 0x120($sp)
/* 3D4910 E00D0AF0 D7BA0118 */ ldc1 $f26, 0x118($sp)
/* 3D4914 E00D0AF4 D7B80110 */ ldc1 $f24, 0x110($sp)
/* 3D4918 E00D0AF8 D7B60108 */ ldc1 $f22, 0x108($sp)
/* 3D491C E00D0AFC D7B40100 */ ldc1 $f20, 0x100($sp)
/* 3D4920 E00D0B00 03E00008 */ jr $ra
/* 3D4924 E00D0B04 27BD0128 */ addiu $sp, $sp, 0x128
/* 3D4928 E00D0B08 00000000 */ nop
/* 3D492C E00D0B0C 00000000 */ nop

View File

@ -1,108 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel red_impact_main
/* 3D3E20 E00D0000 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 3D3E24 E00D0004 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 3D3E28 E00D0008 4485B000 */ mtc1 $a1, $f22
/* 3D3E2C E00D000C F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3D3E30 E00D0010 4486C000 */ mtc1 $a2, $f24
/* 3D3E34 E00D0014 F7BA0050 */ sdc1 $f26, 0x50($sp)
/* 3D3E38 E00D0018 4487D000 */ mtc1 $a3, $f26
/* 3D3E3C E00D001C F7B40038 */ sdc1 $f20, 0x38($sp)
/* 3D3E40 E00D0020 C7B40070 */ lwc1 $f20, 0x70($sp)
/* 3D3E44 E00D0024 AFB20030 */ sw $s2, 0x30($sp)
/* 3D3E48 E00D0028 0080902D */ daddu $s2, $a0, $zero
/* 3D3E4C E00D002C AFB00028 */ sw $s0, 0x28($sp)
/* 3D3E50 E00D0030 24100003 */ addiu $s0, $zero, 3
/* 3D3E54 E00D0034 F7BC0058 */ sdc1 $f28, 0x58($sp)
/* 3D3E58 E00D0038 4480E000 */ mtc1 $zero, $f28
/* 3D3E5C E00D003C 27A40010 */ addiu $a0, $sp, 0x10
/* 3D3E60 E00D0040 AFBF0034 */ sw $ra, 0x34($sp)
/* 3D3E64 E00D0044 16400002 */ bnez $s2, .LE00D0050
/* 3D3E68 E00D0048 AFB1002C */ sw $s1, 0x2c($sp)
/* 3D3E6C E00D004C 24100007 */ addiu $s0, $zero, 7
.LE00D0050:
/* 3D3E70 E00D0050 26100001 */ addiu $s0, $s0, 1
/* 3D3E74 E00D0054 3C02E00D */ lui $v0, %hi(red_impact_init)
/* 3D3E78 E00D0058 2442018C */ addiu $v0, $v0, %lo(red_impact_init)
/* 3D3E7C E00D005C AFA00010 */ sw $zero, 0x10($sp)
/* 3D3E80 E00D0060 AC820008 */ sw $v0, 8($a0)
/* 3D3E84 E00D0064 3C02E00D */ lui $v0, %hi(red_impact_update)
/* 3D3E88 E00D0068 24420194 */ addiu $v0, $v0, %lo(red_impact_update)
/* 3D3E8C E00D006C AC82000C */ sw $v0, 0xc($a0)
/* 3D3E90 E00D0070 3C02E00D */ lui $v0, %hi(red_impact_render)
/* 3D3E94 E00D0074 24420448 */ addiu $v0, $v0, %lo(red_impact_render)
/* 3D3E98 E00D0078 AC820010 */ sw $v0, 0x10($a0)
/* 3D3E9C E00D007C 24020068 */ addiu $v0, $zero, 0x68
/* 3D3EA0 E00D0080 AC800014 */ sw $zero, 0x14($a0)
/* 3D3EA4 E00D0084 0C080124 */ jal shim_create_effect_instance
/* 3D3EA8 E00D0088 AC820004 */ sw $v0, 4($a0)
/* 3D3EAC E00D008C 00102040 */ sll $a0, $s0, 1
/* 3D3EB0 E00D0090 00902021 */ addu $a0, $a0, $s0
/* 3D3EB4 E00D0094 00042080 */ sll $a0, $a0, 2
/* 3D3EB8 E00D0098 00902023 */ subu $a0, $a0, $s0
/* 3D3EBC E00D009C 000420C0 */ sll $a0, $a0, 3
/* 3D3EC0 E00D00A0 0040882D */ daddu $s1, $v0, $zero
/* 3D3EC4 E00D00A4 0C08012C */ jal shim_general_heap_malloc
/* 3D3EC8 E00D00A8 AE300008 */ sw $s0, 8($s1)
/* 3D3ECC E00D00AC 0040182D */ daddu $v1, $v0, $zero
/* 3D3ED0 E00D00B0 14600003 */ bnez $v1, .LE00D00C0
/* 3D3ED4 E00D00B4 AE23000C */ sw $v1, 0xc($s1)
.LE00D00B8:
/* 3D3ED8 E00D00B8 0803402E */ j .LE00D00B8
/* 3D3EDC E00D00BC 00000000 */ nop
.LE00D00C0:
/* 3D3EE0 E00D00C0 2402003C */ addiu $v0, $zero, 0x3c
/* 3D3EE4 E00D00C4 AC620028 */ sw $v0, 0x28($v1)
/* 3D3EE8 E00D00C8 240200FF */ addiu $v0, $zero, 0xff
/* 3D3EEC E00D00CC AC620038 */ sw $v0, 0x38($v1)
/* 3D3EF0 E00D00D0 A0620050 */ sb $v0, 0x50($v1)
/* 3D3EF4 E00D00D4 A0620053 */ sb $v0, 0x53($v1)
/* 3D3EF8 E00D00D8 240200C8 */ addiu $v0, $zero, 0xc8
/* 3D3EFC E00D00DC A0620054 */ sb $v0, 0x54($v1)
/* 3D3F00 E00D00E0 24020064 */ addiu $v0, $zero, 0x64
/* 3D3F04 E00D00E4 AC60002C */ sw $zero, 0x2c($v1)
/* 3D3F08 E00D00E8 A4720000 */ sh $s2, ($v1)
/* 3D3F0C E00D00EC E4760004 */ swc1 $f22, 4($v1)
/* 3D3F10 E00D00F0 E4780008 */ swc1 $f24, 8($v1)
/* 3D3F14 E00D00F4 E47A000C */ swc1 $f26, 0xc($v1)
/* 3D3F18 E00D00F8 E4740024 */ swc1 $f20, 0x24($v1)
/* 3D3F1C E00D00FC E4740020 */ swc1 $f20, 0x20($v1)
/* 3D3F20 E00D0100 E474001C */ swc1 $f20, 0x1c($v1)
/* 3D3F24 E00D0104 A0600051 */ sb $zero, 0x51($v1)
/* 3D3F28 E00D0108 A0600052 */ sb $zero, 0x52($v1)
/* 3D3F2C E00D010C A0620055 */ sb $v0, 0x55($v1)
/* 3D3F30 E00D0110 24040001 */ addiu $a0, $zero, 1
/* 3D3F34 E00D0114 0090102A */ slt $v0, $a0, $s0
/* 3D3F38 E00D0118 10400010 */ beqz $v0, .LE00D015C
/* 3D3F3C E00D011C 24630058 */ addiu $v1, $v1, 0x58
/* 3D3F40 E00D0120 24630030 */ addiu $v1, $v1, 0x30
/* 3D3F44 E00D0124 2406001E */ addiu $a2, $zero, 0x1e
/* 3D3F48 E00D0128 2405FFFF */ addiu $a1, $zero, -1
.LE00D012C:
/* 3D3F4C E00D012C 44860000 */ mtc1 $a2, $f0
/* 3D3F50 E00D0130 00000000 */ nop
/* 3D3F54 E00D0134 46800020 */ cvt.s.w $f0, $f0
/* 3D3F58 E00D0138 24C6001E */ addiu $a2, $a2, 0x1e
/* 3D3F5C E00D013C AC65001C */ sw $a1, 0x1c($v1)
/* 3D3F60 E00D0140 24A5FFFE */ addiu $a1, $a1, -2
/* 3D3F64 E00D0144 24840001 */ addiu $a0, $a0, 1
/* 3D3F68 E00D0148 E47C0004 */ swc1 $f28, 4($v1)
/* 3D3F6C E00D014C E4600000 */ swc1 $f0, ($v1)
/* 3D3F70 E00D0150 0090102A */ slt $v0, $a0, $s0
/* 3D3F74 E00D0154 1440FFF5 */ bnez $v0, .LE00D012C
/* 3D3F78 E00D0158 24630058 */ addiu $v1, $v1, 0x58
.LE00D015C:
/* 3D3F7C E00D015C 0220102D */ daddu $v0, $s1, $zero
/* 3D3F80 E00D0160 8FBF0034 */ lw $ra, 0x34($sp)
/* 3D3F84 E00D0164 8FB20030 */ lw $s2, 0x30($sp)
/* 3D3F88 E00D0168 8FB1002C */ lw $s1, 0x2c($sp)
/* 3D3F8C E00D016C 8FB00028 */ lw $s0, 0x28($sp)
/* 3D3F90 E00D0170 D7BC0058 */ ldc1 $f28, 0x58($sp)
/* 3D3F94 E00D0174 D7BA0050 */ ldc1 $f26, 0x50($sp)
/* 3D3F98 E00D0178 D7B80048 */ ldc1 $f24, 0x48($sp)
/* 3D3F9C E00D017C D7B60040 */ ldc1 $f22, 0x40($sp)
/* 3D3FA0 E00D0180 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 3D3FA4 E00D0184 03E00008 */ jr $ra
/* 3D3FA8 E00D0188 27BD0060 */ addiu $sp, $sp, 0x60

View File

@ -1,201 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00D0B20
.double 0.8
dlabel D_E00D0B28
.double 1.002
dlabel D_E00D0B30
.double 0.6
dlabel D_E00D0B38
.double 0.9
.section .text
glabel red_impact_update
/* 3D3FB4 E00D0194 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 3D3FB8 E00D0198 AFB3001C */ sw $s3, 0x1c($sp)
/* 3D3FBC E00D019C 0080982D */ daddu $s3, $a0, $zero
/* 3D3FC0 E00D01A0 AFBF0024 */ sw $ra, 0x24($sp)
/* 3D3FC4 E00D01A4 AFB40020 */ sw $s4, 0x20($sp)
/* 3D3FC8 E00D01A8 AFB20018 */ sw $s2, 0x18($sp)
/* 3D3FCC E00D01AC AFB10014 */ sw $s1, 0x14($sp)
/* 3D3FD0 E00D01B0 AFB00010 */ sw $s0, 0x10($sp)
/* 3D3FD4 E00D01B4 F7BA0040 */ sdc1 $f26, 0x40($sp)
/* 3D3FD8 E00D01B8 F7B80038 */ sdc1 $f24, 0x38($sp)
/* 3D3FDC E00D01BC F7B60030 */ sdc1 $f22, 0x30($sp)
/* 3D3FE0 E00D01C0 F7B40028 */ sdc1 $f20, 0x28($sp)
/* 3D3FE4 E00D01C4 8E64000C */ lw $a0, 0xc($s3)
/* 3D3FE8 E00D01C8 8C82002C */ lw $v0, 0x2c($a0)
/* 3D3FEC E00D01CC 8C830028 */ lw $v1, 0x28($a0)
/* 3D3FF0 E00D01D0 24420001 */ addiu $v0, $v0, 1
/* 3D3FF4 E00D01D4 2463FFFF */ addiu $v1, $v1, -1
/* 3D3FF8 E00D01D8 AC82002C */ sw $v0, 0x2c($a0)
/* 3D3FFC E00D01DC 04610005 */ bgez $v1, .LE00D01F4
/* 3D4000 E00D01E0 AC830028 */ sw $v1, 0x28($a0)
/* 3D4004 E00D01E4 0C080128 */ jal shim_remove_effect
/* 3D4008 E00D01E8 0260202D */ daddu $a0, $s3, $zero
/* 3D400C E00D01EC 08034106 */ j .LE00D0418
/* 3D4010 E00D01F0 00000000 */ nop
.LE00D01F4:
/* 3D4014 E00D01F4 8C82002C */ lw $v0, 0x2c($a0)
/* 3D4018 E00D01F8 94940000 */ lhu $s4, ($a0)
/* 3D401C E00D01FC 28420008 */ slti $v0, $v0, 8
/* 3D4020 E00D0200 14400009 */ bnez $v0, .LE00D0228
/* 3D4024 E00D0204 00000000 */ nop
/* 3D4028 E00D0208 3C01E00D */ lui $at, %hi(D_E00D0B20)
/* 3D402C E00D020C D4220B20 */ ldc1 $f2, %lo(D_E00D0B20)($at)
/* 3D4030 E00D0210 C4800038 */ lwc1 $f0, 0x38($a0)
/* 3D4034 E00D0214 46800021 */ cvt.d.w $f0, $f0
/* 3D4038 E00D0218 46220002 */ mul.d $f0, $f0, $f2
/* 3D403C E00D021C 00000000 */ nop
/* 3D4040 E00D0220 4620028D */ trunc.w.d $f10, $f0
/* 3D4044 E00D0224 E48A0038 */ swc1 $f10, 0x38($a0)
.LE00D0228:
/* 3D4048 E00D0228 8E620008 */ lw $v0, 8($s3)
/* 3D404C E00D022C 24110001 */ addiu $s1, $zero, 1
/* 3D4050 E00D0230 0222102A */ slt $v0, $s1, $v0
/* 3D4054 E00D0234 10400078 */ beqz $v0, .LE00D0418
/* 3D4058 E00D0238 24840058 */ addiu $a0, $a0, 0x58
/* 3D405C E00D023C 2490003C */ addiu $s0, $a0, 0x3c
/* 3D4060 E00D0240 24120004 */ addiu $s2, $zero, 4
/* 3D4064 E00D0244 3C013FE0 */ lui $at, 0x3fe0
/* 3D4068 E00D0248 4481A800 */ mtc1 $at, $f21
/* 3D406C E00D024C 4480A000 */ mtc1 $zero, $f20
/* 3D4070 E00D0250 3C014200 */ lui $at, 0x4200
/* 3D4074 E00D0254 4481B000 */ mtc1 $at, $f22
/* 3D4078 E00D0258 3C01E00D */ lui $at, %hi(D_E00D0B28)
/* 3D407C E00D025C D4380B28 */ ldc1 $f24, %lo(D_E00D0B28)($at)
/* 3D4080 E00D0260 3C014300 */ lui $at, 0x4300
/* 3D4084 E00D0264 4481D000 */ mtc1 $at, $f26
.LE00D0268:
/* 3D4088 E00D0268 8E020010 */ lw $v0, 0x10($s0)
/* 3D408C E00D026C 24420001 */ addiu $v0, $v0, 1
/* 3D4090 E00D0270 04400063 */ bltz $v0, .LE00D0400
/* 3D4094 E00D0274 AE020010 */ sw $v0, 0x10($s0)
/* 3D4098 E00D0278 14400041 */ bnez $v0, .LE00D0380
/* 3D409C E00D027C 00000000 */ nop
/* 3D40A0 E00D0280 C60CFFF8 */ lwc1 $f12, -8($s0)
/* 3D40A4 E00D0284 AE00FFC8 */ sw $zero, -0x38($s0)
/* 3D40A8 E00D0288 AE00FFCC */ sw $zero, -0x34($s0)
/* 3D40AC E00D028C 0C080140 */ jal shim_sin_deg
/* 3D40B0 E00D0290 AE00FFD0 */ sw $zero, -0x30($s0)
/* 3D40B4 E00D0294 46000007 */ neg.s $f0, $f0
/* 3D40B8 E00D0298 46000021 */ cvt.d.s $f0, $f0
/* 3D40BC E00D029C 46340002 */ mul.d $f0, $f0, $f20
/* 3D40C0 E00D02A0 00000000 */ nop
/* 3D40C4 E00D02A4 C60CFFF8 */ lwc1 $f12, -8($s0)
/* 3D40C8 E00D02A8 46200020 */ cvt.s.d $f0, $f0
/* 3D40CC E00D02AC 0C080144 */ jal shim_cos_deg
/* 3D40D0 E00D02B0 E600FFD4 */ swc1 $f0, -0x2c($s0)
/* 3D40D4 E00D02B4 46000021 */ cvt.d.s $f0, $f0
/* 3D40D8 E00D02B8 46340002 */ mul.d $f0, $f0, $f20
/* 3D40DC E00D02BC 00000000 */ nop
/* 3D40E0 E00D02C0 44911000 */ mtc1 $s1, $f2
/* 3D40E4 E00D02C4 00000000 */ nop
/* 3D40E8 E00D02C8 468010A0 */ cvt.s.w $f2, $f2
/* 3D40EC E00D02CC 3C014020 */ lui $at, 0x4020
/* 3D40F0 E00D02D0 44812800 */ mtc1 $at, $f5
/* 3D40F4 E00D02D4 44802000 */ mtc1 $zero, $f4
/* 3D40F8 E00D02D8 460010A1 */ cvt.d.s $f2, $f2
/* 3D40FC E00D02DC AE00FFDC */ sw $zero, -0x24($s0)
/* 3D4100 E00D02E0 E6160000 */ swc1 $f22, ($s0)
/* 3D4104 E00D02E4 46222101 */ sub.d $f4, $f4, $f2
/* 3D4108 E00D02E8 E6160004 */ swc1 $f22, 4($s0)
/* 3D410C E00D02EC E616000C */ swc1 $f22, 0xc($s0)
/* 3D4110 E00D02F0 46202120 */ cvt.s.d $f4, $f4
/* 3D4114 E00D02F4 E604FFE4 */ swc1 $f4, -0x1c($s0)
/* 3D4118 E00D02F8 46200020 */ cvt.s.d $f0, $f0
/* 3D411C E00D02FC 1680000D */ bnez $s4, .LE00D0334
/* 3D4120 E00D0300 E600FFD8 */ swc1 $f0, -0x28($s0)
/* 3D4124 E00D0304 44920000 */ mtc1 $s2, $f0
/* 3D4128 E00D0308 00000000 */ nop
/* 3D412C E00D030C 46800021 */ cvt.d.w $f0, $f0
/* 3D4130 E00D0310 46340002 */ mul.d $f0, $f0, $f20
/* 3D4134 E00D0314 00000000 */ nop
/* 3D4138 E00D0318 44921000 */ mtc1 $s2, $f2
/* 3D413C E00D031C 00000000 */ nop
/* 3D4140 E00D0320 468010A0 */ cvt.s.w $f2, $f2
/* 3D4144 E00D0324 E602FFE0 */ swc1 $f2, -0x20($s0)
/* 3D4148 E00D0328 46200020 */ cvt.s.d $f0, $f0
/* 3D414C E00D032C 080340DF */ j .LE00D037C
/* 3D4150 E00D0330 E600FFE8 */ swc1 $f0, -0x18($s0)
.LE00D0334:
/* 3D4154 E00D0334 C602FFE4 */ lwc1 $f2, -0x1c($s0)
/* 3D4158 E00D0338 3C01E00D */ lui $at, %hi(D_E00D0B30)
/* 3D415C E00D033C D4200B30 */ ldc1 $f0, %lo(D_E00D0B30)($at)
/* 3D4160 E00D0340 460010A1 */ cvt.d.s $f2, $f2
/* 3D4164 E00D0344 46201082 */ mul.d $f2, $f2, $f0
/* 3D4168 E00D0348 00000000 */ nop
/* 3D416C E00D034C 44910000 */ mtc1 $s1, $f0
/* 3D4170 E00D0350 00000000 */ nop
/* 3D4174 E00D0354 46800021 */ cvt.d.w $f0, $f0
/* 3D4178 E00D0358 46340000 */ add.d $f0, $f0, $f20
/* 3D417C E00D035C 46340102 */ mul.d $f4, $f0, $f20
/* 3D4180 E00D0360 00000000 */ nop
/* 3D4184 E00D0364 46200020 */ cvt.s.d $f0, $f0
/* 3D4188 E00D0368 E600FFE0 */ swc1 $f0, -0x20($s0)
/* 3D418C E00D036C 462010A0 */ cvt.s.d $f2, $f2
/* 3D4190 E00D0370 E602FFE4 */ swc1 $f2, -0x1c($s0)
/* 3D4194 E00D0374 46202120 */ cvt.s.d $f4, $f4
/* 3D4198 E00D0378 E604FFE8 */ swc1 $f4, -0x18($s0)
.LE00D037C:
/* 3D419C E00D037C E6160008 */ swc1 $f22, 8($s0)
.LE00D0380:
/* 3D41A0 E00D0380 C6040004 */ lwc1 $f4, 4($s0)
/* 3D41A4 E00D0384 3C01E00D */ lui $at, %hi(D_E00D0B38)
/* 3D41A8 E00D0388 D4200B38 */ ldc1 $f0, %lo(D_E00D0B38)($at)
/* 3D41AC E00D038C 46002121 */ cvt.d.s $f4, $f4
/* 3D41B0 E00D0390 46202102 */ mul.d $f4, $f4, $f0
/* 3D41B4 E00D0394 00000000 */ nop
/* 3D41B8 E00D0398 C602FFE0 */ lwc1 $f2, -0x20($s0)
/* 3D41BC E00D039C 460010A1 */ cvt.d.s $f2, $f2
/* 3D41C0 E00D03A0 46381082 */ mul.d $f2, $f2, $f24
/* 3D41C4 E00D03A4 00000000 */ nop
/* 3D41C8 E00D03A8 C6080000 */ lwc1 $f8, ($s0)
/* 3D41CC E00D03AC C6000004 */ lwc1 $f0, 4($s0)
/* 3D41D0 E00D03B0 C6060008 */ lwc1 $f6, 8($s0)
/* 3D41D4 E00D03B4 46004200 */ add.s $f8, $f8, $f0
/* 3D41D8 E00D03B8 C600000C */ lwc1 $f0, 0xc($s0)
/* 3D41DC E00D03BC 46003180 */ add.s $f6, $f6, $f0
/* 3D41E0 E00D03C0 C600FFE8 */ lwc1 $f0, -0x18($s0)
/* 3D41E4 E00D03C4 46000021 */ cvt.d.s $f0, $f0
/* 3D41E8 E00D03C8 46380002 */ mul.d $f0, $f0, $f24
/* 3D41EC E00D03CC 00000000 */ nop
/* 3D41F0 E00D03D0 E6080000 */ swc1 $f8, ($s0)
/* 3D41F4 E00D03D4 E6060008 */ swc1 $f6, 8($s0)
/* 3D41F8 E00D03D8 46202120 */ cvt.s.d $f4, $f4
/* 3D41FC E00D03DC 462010A0 */ cvt.s.d $f2, $f2
/* 3D4200 E00D03E0 E602FFE0 */ swc1 $f2, -0x20($s0)
/* 3D4204 E00D03E4 46004086 */ mov.s $f2, $f8
/* 3D4208 E00D03E8 4602D03C */ c.lt.s $f26, $f2
/* 3D420C E00D03EC E6040004 */ swc1 $f4, 4($s0)
/* 3D4210 E00D03F0 46200020 */ cvt.s.d $f0, $f0
/* 3D4214 E00D03F4 45000002 */ bc1f .LE00D0400
/* 3D4218 E00D03F8 E600FFE8 */ swc1 $f0, -0x18($s0)
/* 3D421C E00D03FC E61A0000 */ swc1 $f26, ($s0)
.LE00D0400:
/* 3D4220 E00D0400 26520002 */ addiu $s2, $s2, 2
/* 3D4224 E00D0404 26310001 */ addiu $s1, $s1, 1
/* 3D4228 E00D0408 8E620008 */ lw $v0, 8($s3)
/* 3D422C E00D040C 0222102A */ slt $v0, $s1, $v0
/* 3D4230 E00D0410 1440FF95 */ bnez $v0, .LE00D0268
/* 3D4234 E00D0414 26100058 */ addiu $s0, $s0, 0x58
.LE00D0418:
/* 3D4238 E00D0418 8FBF0024 */ lw $ra, 0x24($sp)
/* 3D423C E00D041C 8FB40020 */ lw $s4, 0x20($sp)
/* 3D4240 E00D0420 8FB3001C */ lw $s3, 0x1c($sp)
/* 3D4244 E00D0424 8FB20018 */ lw $s2, 0x18($sp)
/* 3D4248 E00D0428 8FB10014 */ lw $s1, 0x14($sp)
/* 3D424C E00D042C 8FB00010 */ lw $s0, 0x10($sp)
/* 3D4250 E00D0430 D7BA0040 */ ldc1 $f26, 0x40($sp)
/* 3D4254 E00D0434 D7B80038 */ ldc1 $f24, 0x38($sp)
/* 3D4258 E00D0438 D7B60030 */ ldc1 $f22, 0x30($sp)
/* 3D425C E00D043C D7B40028 */ ldc1 $f20, 0x28($sp)
/* 3D4260 E00D0440 03E00008 */ jr $ra
/* 3D4264 E00D0444 27BD0048 */ addiu $sp, $sp, 0x48

View File

@ -1,236 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel jtbl_E004AE80
.word LE004A1AC_35866C, LE004A1AC_35866C, LE004A1D4_358694, LE004A200_3586C0, LE004A25C_35871C, LE004A22C_3586EC
.section .text
glabel shockwave_main
/* 3584C0 E004A000 27BDFFA0 */ addiu $sp, $sp, -0x60
/* 3584C4 E004A004 F7B40040 */ sdc1 $f20, 0x40($sp)
/* 3584C8 E004A008 4485A000 */ mtc1 $a1, $f20
/* 3584CC E004A00C F7B60048 */ sdc1 $f22, 0x48($sp)
/* 3584D0 E004A010 4486B000 */ mtc1 $a2, $f22
/* 3584D4 E004A014 AFB20030 */ sw $s2, 0x30($sp)
/* 3584D8 E004A018 0080902D */ daddu $s2, $a0, $zero
/* 3584DC E004A01C F7B80050 */ sdc1 $f24, 0x50($sp)
/* 3584E0 E004A020 4487C000 */ mtc1 $a3, $f24
/* 3584E4 E004A024 27A40010 */ addiu $a0, $sp, 0x10
/* 3584E8 E004A028 F7BA0058 */ sdc1 $f26, 0x58($sp)
/* 3584EC E004A02C 4480D000 */ mtc1 $zero, $f26
/* 3584F0 E004A030 24020001 */ addiu $v0, $zero, 1
/* 3584F4 E004A034 AFBF0038 */ sw $ra, 0x38($sp)
/* 3584F8 E004A038 AFB30034 */ sw $s3, 0x34($sp)
/* 3584FC E004A03C AFB1002C */ sw $s1, 0x2c($sp)
/* 358500 E004A040 1242000E */ beq $s2, $v0, .LE004A07C
/* 358504 E004A044 AFB00028 */ sw $s0, 0x28($sp)
/* 358508 E004A048 2A420002 */ slti $v0, $s2, 2
/* 35850C E004A04C 10400005 */ beqz $v0, .LE004A064
/* 358510 E004A050 24020002 */ addiu $v0, $zero, 2
/* 358514 E004A054 12400007 */ beqz $s2, .LE004A074
/* 358518 E004A058 24120005 */ addiu $s2, $zero, 5
/* 35851C E004A05C 08012823 */ j .LE004A08C
/* 358520 E004A060 24020001 */ addiu $v0, $zero, 1
.LE004A064:
/* 358524 E004A064 12420007 */ beq $s2, $v0, .LE004A084
/* 358528 E004A068 24120005 */ addiu $s2, $zero, 5
/* 35852C E004A06C 08012823 */ j .LE004A08C
/* 358530 E004A070 24020001 */ addiu $v0, $zero, 1
.LE004A074:
/* 358534 E004A074 08012822 */ j .LE004A088
/* 358538 E004A078 24120003 */ addiu $s2, $zero, 3
.LE004A07C:
/* 35853C E004A07C 08012822 */ j .LE004A088
/* 358540 E004A080 24120002 */ addiu $s2, $zero, 2
.LE004A084:
/* 358544 E004A084 24120004 */ addiu $s2, $zero, 4
.LE004A088:
/* 358548 E004A088 24020001 */ addiu $v0, $zero, 1
.LE004A08C:
/* 35854C E004A08C 1242000D */ beq $s2, $v0, .LE004A0C4
/* 358550 E004A090 2A420002 */ slti $v0, $s2, 2
/* 358554 E004A094 10400005 */ beqz $v0, .LE004A0AC
/* 358558 E004A098 24020002 */ addiu $v0, $zero, 2
/* 35855C E004A09C 1240000B */ beqz $s2, .LE004A0CC
/* 358560 E004A0A0 24130002 */ addiu $s3, $zero, 2
/* 358564 E004A0A4 08012835 */ j .LE004A0D4
/* 358568 E004A0A8 26730001 */ addiu $s3, $s3, 1
.LE004A0AC:
/* 35856C E004A0AC 12420007 */ beq $s2, $v0, .LE004A0CC
/* 358570 E004A0B0 24020005 */ addiu $v0, $zero, 5
/* 358574 E004A0B4 12420005 */ beq $s2, $v0, .LE004A0CC
/* 358578 E004A0B8 24130002 */ addiu $s3, $zero, 2
/* 35857C E004A0BC 08012835 */ j .LE004A0D4
/* 358580 E004A0C0 26730001 */ addiu $s3, $s3, 1
.LE004A0C4:
/* 358584 E004A0C4 08012834 */ j .LE004A0D0
/* 358588 E004A0C8 24130001 */ addiu $s3, $zero, 1
.LE004A0CC:
/* 35858C E004A0CC 24130003 */ addiu $s3, $zero, 3
.LE004A0D0:
/* 358590 E004A0D0 26730001 */ addiu $s3, $s3, 1
.LE004A0D4:
/* 358594 E004A0D4 3C02E005 */ lui $v0, %hi(shockwave_init)
/* 358598 E004A0D8 2442A328 */ addiu $v0, $v0, %lo(shockwave_init)
/* 35859C E004A0DC AC820008 */ sw $v0, 8($a0)
/* 3585A0 E004A0E0 3C02E005 */ lui $v0, %hi(shockwave_update)
/* 3585A4 E004A0E4 2442A330 */ addiu $v0, $v0, %lo(shockwave_update)
/* 3585A8 E004A0E8 AC82000C */ sw $v0, 0xc($a0)
/* 3585AC E004A0EC 3C02E005 */ lui $v0, %hi(shockwave_render)
/* 3585B0 E004A0F0 2442A748 */ addiu $v0, $v0, %lo(shockwave_render)
/* 3585B4 E004A0F4 AC820010 */ sw $v0, 0x10($a0)
/* 3585B8 E004A0F8 24020025 */ addiu $v0, $zero, 0x25
/* 3585BC E004A0FC AC800000 */ sw $zero, ($a0)
/* 3585C0 E004A100 AC800014 */ sw $zero, 0x14($a0)
/* 3585C4 E004A104 0C080124 */ jal shim_create_effect_instance
/* 3585C8 E004A108 AC820004 */ sw $v0, 4($a0)
/* 3585CC E004A10C 00132040 */ sll $a0, $s3, 1
/* 3585D0 E004A110 00932021 */ addu $a0, $a0, $s3
/* 3585D4 E004A114 00042080 */ sll $a0, $a0, 2
/* 3585D8 E004A118 00932023 */ subu $a0, $a0, $s3
/* 3585DC E004A11C 000420C0 */ sll $a0, $a0, 3
/* 3585E0 E004A120 0040802D */ daddu $s0, $v0, $zero
/* 3585E4 E004A124 0C08012C */ jal shim_general_heap_malloc
/* 3585E8 E004A128 AE130008 */ sw $s3, 8($s0)
/* 3585EC E004A12C 0040882D */ daddu $s1, $v0, $zero
/* 3585F0 E004A130 16200003 */ bnez $s1, .LE004A140
/* 3585F4 E004A134 AE11000C */ sw $s1, 0xc($s0)
.LE004A138:
/* 3585F8 E004A138 0801284E */ j .LE004A138
/* 3585FC E004A13C 00000000 */ nop
.LE004A140:
/* 358600 E004A140 0220202D */ daddu $a0, $s1, $zero
/* 358604 E004A144 00132840 */ sll $a1, $s3, 1
/* 358608 E004A148 00B32821 */ addu $a1, $a1, $s3
/* 35860C E004A14C 00052880 */ sll $a1, $a1, 2
/* 358610 E004A150 00B32823 */ subu $a1, $a1, $s3
/* 358614 E004A154 0C080130 */ jal shim_mem_clear
/* 358618 E004A158 000528C0 */ sll $a1, $a1, 3
/* 35861C E004A15C 2A420002 */ slti $v0, $s2, 2
/* 358620 E004A160 14400002 */ bnez $v0, .LE004A16C
/* 358624 E004A164 2402001E */ addiu $v0, $zero, 0x1e
/* 358628 E004A168 2402003C */ addiu $v0, $zero, 0x3c
.LE004A16C:
/* 35862C E004A16C AE220028 */ sw $v0, 0x28($s1)
/* 358630 E004A170 240200FF */ addiu $v0, $zero, 0xff
/* 358634 E004A174 AE220038 */ sw $v0, 0x38($s1)
/* 358638 E004A178 2E420006 */ sltiu $v0, $s2, 6
/* 35863C E004A17C AE20002C */ sw $zero, 0x2c($s1)
/* 358640 E004A180 A6320000 */ sh $s2, ($s1)
/* 358644 E004A184 E6340004 */ swc1 $f20, 4($s1)
/* 358648 E004A188 E6360008 */ swc1 $f22, 8($s1)
/* 35864C E004A18C 10400033 */ beqz $v0, LE004A25C_35871C
/* 358650 E004A190 E638000C */ swc1 $f24, 0xc($s1)
/* 358654 E004A194 00121080 */ sll $v0, $s2, 2
/* 358658 E004A198 3C01E005 */ lui $at, %hi(jtbl_E004AE80)
/* 35865C E004A19C 00220821 */ addu $at, $at, $v0
/* 358660 E004A1A0 8C22AE80 */ lw $v0, %lo(jtbl_E004AE80)($at)
/* 358664 E004A1A4 00400008 */ jr $v0
/* 358668 E004A1A8 00000000 */ nop
dlabel LE004A1AC_35866C
/* 35866C E004A1AC 240300FF */ addiu $v1, $zero, 0xff
/* 358670 E004A1B0 2402007A */ addiu $v0, $zero, 0x7a
/* 358674 E004A1B4 A2220052 */ sb $v0, 0x52($s1)
/* 358678 E004A1B8 240200F0 */ addiu $v0, $zero, 0xf0
/* 35867C E004A1BC A2220053 */ sb $v0, 0x53($s1)
/* 358680 E004A1C0 240200FA */ addiu $v0, $zero, 0xfa
/* 358684 E004A1C4 A2200050 */ sb $zero, 0x50($s1)
/* 358688 E004A1C8 A2230051 */ sb $v1, 0x51($s1)
/* 35868C E004A1CC 080128A4 */ j .LE004A290
/* 358690 E004A1D0 A2230054 */ sb $v1, 0x54($s1)
dlabel LE004A1D4_358694
/* 358694 E004A1D4 2402007D */ addiu $v0, $zero, 0x7d
/* 358698 E004A1D8 A2220050 */ sb $v0, 0x50($s1)
/* 35869C E004A1DC 24020078 */ addiu $v0, $zero, 0x78
/* 3586A0 E004A1E0 A2220051 */ sb $v0, 0x51($s1)
/* 3586A4 E004A1E4 24020064 */ addiu $v0, $zero, 0x64
/* 3586A8 E004A1E8 A2220052 */ sb $v0, 0x52($s1)
/* 3586AC E004A1EC 240200FF */ addiu $v0, $zero, 0xff
/* 3586B0 E004A1F0 A2220053 */ sb $v0, 0x53($s1)
/* 3586B4 E004A1F4 A2220054 */ sb $v0, 0x54($s1)
/* 3586B8 E004A1F8 080128A4 */ j .LE004A290
/* 3586BC E004A1FC 240200F0 */ addiu $v0, $zero, 0xf0
dlabel LE004A200_3586C0
/* 3586C0 E004A200 240200DC */ addiu $v0, $zero, 0xdc
/* 3586C4 E004A204 A2220050 */ sb $v0, 0x50($s1)
/* 3586C8 E004A208 240200D2 */ addiu $v0, $zero, 0xd2
/* 3586CC E004A20C A2220051 */ sb $v0, 0x51($s1)
/* 3586D0 E004A210 240200C8 */ addiu $v0, $zero, 0xc8
/* 3586D4 E004A214 A2220052 */ sb $v0, 0x52($s1)
/* 3586D8 E004A218 240200FF */ addiu $v0, $zero, 0xff
/* 3586DC E004A21C A2220053 */ sb $v0, 0x53($s1)
/* 3586E0 E004A220 A2220054 */ sb $v0, 0x54($s1)
/* 3586E4 E004A224 080128A4 */ j .LE004A290
/* 3586E8 E004A228 240200FA */ addiu $v0, $zero, 0xfa
dlabel LE004A22C_3586EC
/* 3586EC E004A22C 240200E1 */ addiu $v0, $zero, 0xe1
/* 3586F0 E004A230 A2220050 */ sb $v0, 0x50($s1)
/* 3586F4 E004A234 240200CC */ addiu $v0, $zero, 0xcc
/* 3586F8 E004A238 A2220051 */ sb $v0, 0x51($s1)
/* 3586FC E004A23C 2402005D */ addiu $v0, $zero, 0x5d
/* 358700 E004A240 A2220052 */ sb $v0, 0x52($s1)
/* 358704 E004A244 240200E8 */ addiu $v0, $zero, 0xe8
/* 358708 E004A248 A2220053 */ sb $v0, 0x53($s1)
/* 35870C E004A24C 240200E7 */ addiu $v0, $zero, 0xe7
/* 358710 E004A250 A2220054 */ sb $v0, 0x54($s1)
/* 358714 E004A254 080128A4 */ j .LE004A290
/* 358718 E004A258 240200AB */ addiu $v0, $zero, 0xab
dlabel LE004A25C_35871C
/* 35871C E004A25C 24020032 */ addiu $v0, $zero, 0x32
/* 358720 E004A260 AE220028 */ sw $v0, 0x28($s1)
/* 358724 E004A264 240200D0 */ addiu $v0, $zero, 0xd0
/* 358728 E004A268 A2220050 */ sb $v0, 0x50($s1)
/* 35872C E004A26C 24020088 */ addiu $v0, $zero, 0x88
/* 358730 E004A270 A2220051 */ sb $v0, 0x51($s1)
/* 358734 E004A274 24020028 */ addiu $v0, $zero, 0x28
/* 358738 E004A278 A2220052 */ sb $v0, 0x52($s1)
/* 35873C E004A27C 240200D8 */ addiu $v0, $zero, 0xd8
/* 358740 E004A280 A2220053 */ sb $v0, 0x53($s1)
/* 358744 E004A284 240200A9 */ addiu $v0, $zero, 0xa9
/* 358748 E004A288 A2220054 */ sb $v0, 0x54($s1)
/* 35874C E004A28C 24020041 */ addiu $v0, $zero, 0x41
.LE004A290:
/* 358750 E004A290 A2220055 */ sb $v0, 0x55($s1)
/* 358754 E004A294 24030001 */ addiu $v1, $zero, 1
/* 358758 E004A298 0073102A */ slt $v0, $v1, $s3
/* 35875C E004A29C 10400017 */ beqz $v0, .LE004A2FC
/* 358760 E004A2A0 26310058 */ addiu $s1, $s1, 0x58
/* 358764 E004A2A4 2A480002 */ slti $t0, $s2, 2
/* 358768 E004A2A8 26240030 */ addiu $a0, $s1, 0x30
/* 35876C E004A2AC 2407001E */ addiu $a3, $zero, 0x1e
/* 358770 E004A2B0 2406FFFF */ addiu $a2, $zero, -1
/* 358774 E004A2B4 00C0282D */ daddu $a1, $a2, $zero
.LE004A2B8:
/* 358778 E004A2B8 51000004 */ beql $t0, $zero, .LE004A2CC
/* 35877C E004A2BC AC86001C */ sw $a2, 0x1c($a0)
/* 358780 E004A2C0 06420002 */ bltzl $s2, .LE004A2CC
/* 358784 E004A2C4 AC86001C */ sw $a2, 0x1c($a0)
/* 358788 E004A2C8 AC85001C */ sw $a1, 0x1c($a0)
.LE004A2CC:
/* 35878C E004A2CC 44870000 */ mtc1 $a3, $f0
/* 358790 E004A2D0 00000000 */ nop
/* 358794 E004A2D4 46800020 */ cvt.s.w $f0, $f0
/* 358798 E004A2D8 24E7001E */ addiu $a3, $a3, 0x1e
/* 35879C E004A2DC 24C6FFFD */ addiu $a2, $a2, -3
/* 3587A0 E004A2E0 24A5FFFE */ addiu $a1, $a1, -2
/* 3587A4 E004A2E4 24630001 */ addiu $v1, $v1, 1
/* 3587A8 E004A2E8 E49A0004 */ swc1 $f26, 4($a0)
/* 3587AC E004A2EC E4800000 */ swc1 $f0, ($a0)
/* 3587B0 E004A2F0 0073102A */ slt $v0, $v1, $s3
/* 3587B4 E004A2F4 1440FFF0 */ bnez $v0, .LE004A2B8
/* 3587B8 E004A2F8 24840058 */ addiu $a0, $a0, 0x58
.LE004A2FC:
/* 3587BC E004A2FC 8FBF0038 */ lw $ra, 0x38($sp)
/* 3587C0 E004A300 8FB30034 */ lw $s3, 0x34($sp)
/* 3587C4 E004A304 8FB20030 */ lw $s2, 0x30($sp)
/* 3587C8 E004A308 8FB1002C */ lw $s1, 0x2c($sp)
/* 3587CC E004A30C 8FB00028 */ lw $s0, 0x28($sp)
/* 3587D0 E004A310 D7BA0058 */ ldc1 $f26, 0x58($sp)
/* 3587D4 E004A314 D7B80050 */ ldc1 $f24, 0x50($sp)
/* 3587D8 E004A318 D7B60048 */ ldc1 $f22, 0x48($sp)
/* 3587DC E004A31C D7B40040 */ ldc1 $f20, 0x40($sp)
/* 3587E0 E004A320 03E00008 */ jr $ra
/* 3587E4 E004A324 27BD0060 */ addiu $sp, $sp, 0x60

View File

@ -1,311 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E004AE98
.double 0.8
dlabel D_E004AEA0
.double 0.94
dlabel D_E004AEA8
.double 1.002
dlabel D_E004AEB0
.word 0xE004A4F8, 0xE004A4F8, 0xE004A51C, 0xE004A548, 0xE004A584, 0xE004A51C
dlabel D_E004AEC8
.double 0.8
dlabel D_E004AED0
.double 0.9
dlabel D_E004AED8
.double 0.99
dlabel D_E004AEE0
.double 0.95
.section .text
glabel shockwave_update
/* 3587F0 E004A330 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 3587F4 E004A334 AFB40020 */ sw $s4, 0x20($sp)
/* 3587F8 E004A338 0080A02D */ daddu $s4, $a0, $zero
/* 3587FC E004A33C AFBF0028 */ sw $ra, 0x28($sp)
/* 358800 E004A340 AFB50024 */ sw $s5, 0x24($sp)
/* 358804 E004A344 AFB3001C */ sw $s3, 0x1c($sp)
/* 358808 E004A348 AFB20018 */ sw $s2, 0x18($sp)
/* 35880C E004A34C AFB10014 */ sw $s1, 0x14($sp)
/* 358810 E004A350 AFB00010 */ sw $s0, 0x10($sp)
/* 358814 E004A354 F7BC0050 */ sdc1 $f28, 0x50($sp)
/* 358818 E004A358 F7BA0048 */ sdc1 $f26, 0x48($sp)
/* 35881C E004A35C F7B80040 */ sdc1 $f24, 0x40($sp)
/* 358820 E004A360 F7B60038 */ sdc1 $f22, 0x38($sp)
/* 358824 E004A364 F7B40030 */ sdc1 $f20, 0x30($sp)
/* 358828 E004A368 8E84000C */ lw $a0, 0xc($s4)
/* 35882C E004A36C 8C82002C */ lw $v0, 0x2c($a0)
/* 358830 E004A370 8C830028 */ lw $v1, 0x28($a0)
/* 358834 E004A374 24420001 */ addiu $v0, $v0, 1
/* 358838 E004A378 2463FFFF */ addiu $v1, $v1, -1
/* 35883C E004A37C AC82002C */ sw $v0, 0x2c($a0)
/* 358840 E004A380 04610005 */ bgez $v1, .LE004A398
/* 358844 E004A384 AC830028 */ sw $v1, 0x28($a0)
/* 358848 E004A388 0C080128 */ jal shim_remove_effect
/* 35884C E004A38C 0280202D */ daddu $a0, $s4, $zero
/* 358850 E004A390 080129C4 */ j .LE004A710
/* 358854 E004A394 00000000 */ nop
.LE004A398:
/* 358858 E004A398 94920000 */ lhu $s2, ($a0)
/* 35885C E004A39C 8C83002C */ lw $v1, 0x2c($a0)
/* 358860 E004A3A0 2A420002 */ slti $v0, $s2, 2
/* 358864 E004A3A4 10400008 */ beqz $v0, .LE004A3C8
/* 358868 E004A3A8 28620008 */ slti $v0, $v1, 8
/* 35886C E004A3AC 06400006 */ bltz $s2, .LE004A3C8
/* 358870 E004A3B0 00000000 */ nop
/* 358874 E004A3B4 1440000E */ bnez $v0, .LE004A3F0
/* 358878 E004A3B8 00000000 */ nop
/* 35887C E004A3BC 3C01E005 */ lui $at, %hi(D_E004AE98)
/* 358880 E004A3C0 080128F6 */ j .LE004A3D8
/* 358884 E004A3C4 D422AE98 */ ldc1 $f2, %lo(D_E004AE98)($at)
.LE004A3C8:
/* 358888 E004A3C8 14400009 */ bnez $v0, .LE004A3F0
/* 35888C E004A3CC 00000000 */ nop
/* 358890 E004A3D0 3C01E005 */ lui $at, %hi(D_E004AEA0)
/* 358894 E004A3D4 D422AEA0 */ ldc1 $f2, %lo(D_E004AEA0)($at)
.LE004A3D8:
/* 358898 E004A3D8 C4800038 */ lwc1 $f0, 0x38($a0)
/* 35889C E004A3DC 46800021 */ cvt.d.w $f0, $f0
/* 3588A0 E004A3E0 46220002 */ mul.d $f0, $f0, $f2
/* 3588A4 E004A3E4 00000000 */ nop
/* 3588A8 E004A3E8 4620018D */ trunc.w.d $f6, $f0
/* 3588AC E004A3EC E4860038 */ swc1 $f6, 0x38($a0)
.LE004A3F0:
/* 3588B0 E004A3F0 8E820008 */ lw $v0, 8($s4)
/* 3588B4 E004A3F4 24110001 */ addiu $s1, $zero, 1
/* 3588B8 E004A3F8 0222102A */ slt $v0, $s1, $v0
/* 3588BC E004A3FC 104000C4 */ beqz $v0, .LE004A710
/* 3588C0 E004A400 24840058 */ addiu $a0, $a0, 0x58
/* 3588C4 E004A404 3C03E005 */ lui $v1, %hi(D_E004AEB0)
/* 3588C8 E004A408 2463AEB0 */ addiu $v1, $v1, %lo(D_E004AEB0)
/* 3588CC E004A40C 00121080 */ sll $v0, $s2, 2
/* 3588D0 E004A410 0043A821 */ addu $s5, $v0, $v1
/* 3588D4 E004A414 2490003C */ addiu $s0, $a0, 0x3c
/* 3588D8 E004A418 24130004 */ addiu $s3, $zero, 4
/* 3588DC E004A41C 3C013FE0 */ lui $at, 0x3fe0
/* 3588E0 E004A420 4481A800 */ mtc1 $at, $f21
/* 3588E4 E004A424 4480A000 */ mtc1 $zero, $f20
/* 3588E8 E004A428 3C014200 */ lui $at, 0x4200
/* 3588EC E004A42C 4481C000 */ mtc1 $at, $f24
/* 3588F0 E004A430 3C014180 */ lui $at, 0x4180
/* 3588F4 E004A434 4481B000 */ mtc1 $at, $f22
/* 3588F8 E004A438 3C013FE8 */ lui $at, 0x3fe8
/* 3588FC E004A43C 4481E800 */ mtc1 $at, $f29
/* 358900 E004A440 4480E000 */ mtc1 $zero, $f28
/* 358904 E004A444 3C01E005 */ lui $at, %hi(D_E004AEA8)
/* 358908 E004A448 D43AAEA8 */ ldc1 $f26, %lo(D_E004AEA8)($at)
.LE004A44C:
/* 35890C E004A44C 8E020010 */ lw $v0, 0x10($s0)
/* 358910 E004A450 24420001 */ addiu $v0, $v0, 1
/* 358914 E004A454 044000A8 */ bltz $v0, .LE004A6F8
/* 358918 E004A458 AE020010 */ sw $v0, 0x10($s0)
/* 35891C E004A45C 14400060 */ bnez $v0, .LE004A5E0
/* 358920 E004A460 00000000 */ nop
/* 358924 E004A464 C60CFFF8 */ lwc1 $f12, -8($s0)
/* 358928 E004A468 AE00FFC8 */ sw $zero, -0x38($s0)
/* 35892C E004A46C AE00FFCC */ sw $zero, -0x34($s0)
/* 358930 E004A470 0C080140 */ jal shim_sin_deg
/* 358934 E004A474 AE00FFD0 */ sw $zero, -0x30($s0)
/* 358938 E004A478 46000007 */ neg.s $f0, $f0
/* 35893C E004A47C 46000021 */ cvt.d.s $f0, $f0
/* 358940 E004A480 46340002 */ mul.d $f0, $f0, $f20
/* 358944 E004A484 00000000 */ nop
/* 358948 E004A488 C60CFFF8 */ lwc1 $f12, -8($s0)
/* 35894C E004A48C 46200020 */ cvt.s.d $f0, $f0
/* 358950 E004A490 0C080144 */ jal shim_cos_deg
/* 358954 E004A494 E600FFD4 */ swc1 $f0, -0x2c($s0)
/* 358958 E004A498 46000021 */ cvt.d.s $f0, $f0
/* 35895C E004A49C 46340002 */ mul.d $f0, $f0, $f20
/* 358960 E004A4A0 00000000 */ nop
/* 358964 E004A4A4 44911000 */ mtc1 $s1, $f2
/* 358968 E004A4A8 00000000 */ nop
/* 35896C E004A4AC 468010A0 */ cvt.s.w $f2, $f2
/* 358970 E004A4B0 460010A1 */ cvt.d.s $f2, $f2
/* 358974 E004A4B4 3C014020 */ lui $at, 0x4020
/* 358978 E004A4B8 44812800 */ mtc1 $at, $f5
/* 35897C E004A4BC 44802000 */ mtc1 $zero, $f4
/* 358980 E004A4C0 2E420006 */ sltiu $v0, $s2, 6
/* 358984 E004A4C4 AE00FFDC */ sw $zero, -0x24($s0)
/* 358988 E004A4C8 E6180000 */ swc1 $f24, ($s0)
/* 35898C E004A4CC 46222101 */ sub.d $f4, $f4, $f2
/* 358990 E004A4D0 E6180004 */ swc1 $f24, 4($s0)
/* 358994 E004A4D4 E618000C */ swc1 $f24, 0xc($s0)
/* 358998 E004A4D8 46202120 */ cvt.s.d $f4, $f4
/* 35899C E004A4DC E604FFE4 */ swc1 $f4, -0x1c($s0)
/* 3589A0 E004A4E0 46200020 */ cvt.s.d $f0, $f0
/* 3589A4 E004A4E4 10400027 */ beqz $v0, .LE004A584
/* 3589A8 E004A4E8 E600FFD8 */ swc1 $f0, -0x28($s0)
/* 3589AC E004A4EC 8EA20000 */ lw $v0, ($s5)
/* 3589B0 E004A4F0 00400008 */ jr $v0
/* 3589B4 E004A4F4 00000000 */ nop
/* 3589B8 E004A4F8 44910000 */ mtc1 $s1, $f0
/* 3589BC E004A4FC 00000000 */ nop
/* 3589C0 E004A500 46800021 */ cvt.d.w $f0, $f0
/* 3589C4 E004A504 46340000 */ add.d $f0, $f0, $f20
/* 3589C8 E004A508 46340082 */ mul.d $f2, $f0, $f20
/* 3589CC E004A50C 00000000 */ nop
/* 3589D0 E004A510 46200020 */ cvt.s.d $f0, $f0
/* 3589D4 E004A514 08012975 */ j .LE004A5D4
/* 3589D8 E004A518 E600FFE0 */ swc1 $f0, -0x20($s0)
/* 3589DC E004A51C 26220002 */ addiu $v0, $s1, 2
/* 3589E0 E004A520 44820000 */ mtc1 $v0, $f0
/* 3589E4 E004A524 00000000 */ nop
/* 3589E8 E004A528 46800021 */ cvt.d.w $f0, $f0
/* 3589EC E004A52C 46340002 */ mul.d $f0, $f0, $f20
/* 3589F0 E004A530 00000000 */ nop
/* 3589F4 E004A534 44821000 */ mtc1 $v0, $f2
/* 3589F8 E004A538 00000000 */ nop
/* 3589FC E004A53C 468010A0 */ cvt.s.w $f2, $f2
/* 358A00 E004A540 0801295E */ j .LE004A578
/* 358A04 E004A544 E602FFE0 */ swc1 $f2, -0x20($s0)
/* 358A08 E004A548 44930000 */ mtc1 $s3, $f0
/* 358A0C E004A54C 00000000 */ nop
/* 358A10 E004A550 46800021 */ cvt.d.w $f0, $f0
/* 358A14 E004A554 46340002 */ mul.d $f0, $f0, $f20
/* 358A18 E004A558 00000000 */ nop
/* 358A1C E004A55C 44931000 */ mtc1 $s3, $f2
/* 358A20 E004A560 00000000 */ nop
/* 358A24 E004A564 468010A0 */ cvt.s.w $f2, $f2
/* 358A28 E004A568 E602FFE0 */ swc1 $f2, -0x20($s0)
/* 358A2C E004A56C E6160000 */ swc1 $f22, ($s0)
/* 358A30 E004A570 E6160004 */ swc1 $f22, 4($s0)
/* 358A34 E004A574 E616000C */ swc1 $f22, 0xc($s0)
.LE004A578:
/* 358A38 E004A578 46200020 */ cvt.s.d $f0, $f0
/* 358A3C E004A57C 08012977 */ j .LE004A5DC
/* 358A40 E004A580 E600FFE8 */ swc1 $f0, -0x18($s0)
.LE004A584:
/* 358A44 E004A584 44932000 */ mtc1 $s3, $f4
/* 358A48 E004A588 00000000 */ nop
/* 358A4C E004A58C 46802121 */ cvt.d.w $f4, $f4
/* 358A50 E004A590 46342102 */ mul.d $f4, $f4, $f20
/* 358A54 E004A594 00000000 */ nop
/* 358A58 E004A598 C600FFE4 */ lwc1 $f0, -0x1c($s0)
/* 358A5C E004A59C 3C01E005 */ lui $at, %hi(D_E004AEC8)
/* 358A60 E004A5A0 D422AEC8 */ ldc1 $f2, %lo(D_E004AEC8)($at)
/* 358A64 E004A5A4 46000021 */ cvt.d.s $f0, $f0
/* 358A68 E004A5A8 46220002 */ mul.d $f0, $f0, $f2
/* 358A6C E004A5AC 00000000 */ nop
/* 358A70 E004A5B0 46342082 */ mul.d $f2, $f4, $f20
/* 358A74 E004A5B4 00000000 */ nop
/* 358A78 E004A5B8 E6160000 */ swc1 $f22, ($s0)
/* 358A7C E004A5BC E6160004 */ swc1 $f22, 4($s0)
/* 358A80 E004A5C0 E616000C */ swc1 $f22, 0xc($s0)
/* 358A84 E004A5C4 46202120 */ cvt.s.d $f4, $f4
/* 358A88 E004A5C8 E604FFE0 */ swc1 $f4, -0x20($s0)
/* 358A8C E004A5CC 46200020 */ cvt.s.d $f0, $f0
/* 358A90 E004A5D0 E600FFE4 */ swc1 $f0, -0x1c($s0)
.LE004A5D4:
/* 358A94 E004A5D4 462010A0 */ cvt.s.d $f2, $f2
/* 358A98 E004A5D8 E602FFE8 */ swc1 $f2, -0x18($s0)
.LE004A5DC:
/* 358A9C E004A5DC E6180008 */ swc1 $f24, 8($s0)
.LE004A5E0:
/* 358AA0 E004A5E0 C6040000 */ lwc1 $f4, ($s0)
/* 358AA4 E004A5E4 C6000004 */ lwc1 $f0, 4($s0)
/* 358AA8 E004A5E8 C6020008 */ lwc1 $f2, 8($s0)
/* 358AAC E004A5EC 46002100 */ add.s $f4, $f4, $f0
/* 358AB0 E004A5F0 C600000C */ lwc1 $f0, 0xc($s0)
/* 358AB4 E004A5F4 46001080 */ add.s $f2, $f2, $f0
/* 358AB8 E004A5F8 24020002 */ addiu $v0, $zero, 2
/* 358ABC E004A5FC E6040000 */ swc1 $f4, ($s0)
/* 358AC0 E004A600 12420013 */ beq $s2, $v0, .LE004A650
/* 358AC4 E004A604 E6020008 */ swc1 $f2, 8($s0)
/* 358AC8 E004A608 2A420003 */ slti $v0, $s2, 3
/* 358ACC E004A60C 14400005 */ bnez $v0, .LE004A624
/* 358AD0 E004A610 24020005 */ addiu $v0, $zero, 5
/* 358AD4 E004A614 1242000E */ beq $s2, $v0, .LE004A650
/* 358AD8 E004A618 00000000 */ nop
/* 358ADC E004A61C 0801299D */ j .LE004A674
/* 358AE0 E004A620 00000000 */ nop
.LE004A624:
/* 358AE4 E004A624 06400013 */ bltz $s2, .LE004A674
/* 358AE8 E004A628 00000000 */ nop
/* 358AEC E004A62C C6000004 */ lwc1 $f0, 4($s0)
/* 358AF0 E004A630 3C01E005 */ lui $at, %hi(D_E004AED0)
/* 358AF4 E004A634 D422AED0 */ ldc1 $f2, %lo(D_E004AED0)($at)
/* 358AF8 E004A638 46000021 */ cvt.d.s $f0, $f0
/* 358AFC E004A63C 46220002 */ mul.d $f0, $f0, $f2
/* 358B00 E004A640 00000000 */ nop
/* 358B04 E004A644 46200020 */ cvt.s.d $f0, $f0
/* 358B08 E004A648 080129AB */ j .LE004A6AC
/* 358B0C E004A64C E6000004 */ swc1 $f0, 4($s0)
.LE004A650:
/* 358B10 E004A650 C6000004 */ lwc1 $f0, 4($s0)
/* 358B14 E004A654 46000021 */ cvt.d.s $f0, $f0
/* 358B18 E004A658 463C0002 */ mul.d $f0, $f0, $f28
/* 358B1C E004A65C 00000000 */ nop
/* 358B20 E004A660 C602000C */ lwc1 $f2, 0xc($s0)
/* 358B24 E004A664 3C01E005 */ lui $at, %hi(D_E004AED8)
/* 358B28 E004A668 D424AED8 */ ldc1 $f4, %lo(D_E004AED8)($at)
/* 358B2C E004A66C 080129A5 */ j .LE004A694
/* 358B30 E004A670 460010A1 */ cvt.d.s $f2, $f2
.LE004A674:
/* 358B34 E004A674 C6000004 */ lwc1 $f0, 4($s0)
/* 358B38 E004A678 46000021 */ cvt.d.s $f0, $f0
/* 358B3C E004A67C 463C0002 */ mul.d $f0, $f0, $f28
/* 358B40 E004A680 00000000 */ nop
/* 358B44 E004A684 C602000C */ lwc1 $f2, 0xc($s0)
/* 358B48 E004A688 3C01E005 */ lui $at, %hi(D_E004AEE0)
/* 358B4C E004A68C D424AEE0 */ ldc1 $f4, %lo(D_E004AEE0)($at)
/* 358B50 E004A690 460010A1 */ cvt.d.s $f2, $f2
.LE004A694:
/* 358B54 E004A694 46241082 */ mul.d $f2, $f2, $f4
/* 358B58 E004A698 00000000 */ nop
/* 358B5C E004A69C 46200020 */ cvt.s.d $f0, $f0
/* 358B60 E004A6A0 462010A0 */ cvt.s.d $f2, $f2
/* 358B64 E004A6A4 E6000004 */ swc1 $f0, 4($s0)
/* 358B68 E004A6A8 E602000C */ swc1 $f2, 0xc($s0)
.LE004A6AC:
/* 358B6C E004A6AC C600FFE0 */ lwc1 $f0, -0x20($s0)
/* 358B70 E004A6B0 46000021 */ cvt.d.s $f0, $f0
/* 358B74 E004A6B4 463A0002 */ mul.d $f0, $f0, $f26
/* 358B78 E004A6B8 00000000 */ nop
/* 358B7C E004A6BC C602FFE8 */ lwc1 $f2, -0x18($s0)
/* 358B80 E004A6C0 460010A1 */ cvt.d.s $f2, $f2
/* 358B84 E004A6C4 463A1082 */ mul.d $f2, $f2, $f26
/* 358B88 E004A6C8 00000000 */ nop
/* 358B8C E004A6CC 3C014300 */ lui $at, 0x4300
/* 358B90 E004A6D0 44812000 */ mtc1 $at, $f4
/* 358B94 E004A6D4 46200020 */ cvt.s.d $f0, $f0
/* 358B98 E004A6D8 E600FFE0 */ swc1 $f0, -0x20($s0)
/* 358B9C E004A6DC C6000000 */ lwc1 $f0, ($s0)
/* 358BA0 E004A6E0 462010A0 */ cvt.s.d $f2, $f2
/* 358BA4 E004A6E4 4600203C */ c.lt.s $f4, $f0
/* 358BA8 E004A6E8 00000000 */ nop
/* 358BAC E004A6EC 45000002 */ bc1f .LE004A6F8
/* 358BB0 E004A6F0 E602FFE8 */ swc1 $f2, -0x18($s0)
/* 358BB4 E004A6F4 E6040000 */ swc1 $f4, ($s0)
.LE004A6F8:
/* 358BB8 E004A6F8 26730001 */ addiu $s3, $s3, 1
/* 358BBC E004A6FC 26310001 */ addiu $s1, $s1, 1
/* 358BC0 E004A700 8E820008 */ lw $v0, 8($s4)
/* 358BC4 E004A704 0222102A */ slt $v0, $s1, $v0
/* 358BC8 E004A708 1440FF50 */ bnez $v0, .LE004A44C
/* 358BCC E004A70C 26100058 */ addiu $s0, $s0, 0x58
.LE004A710:
/* 358BD0 E004A710 8FBF0028 */ lw $ra, 0x28($sp)
/* 358BD4 E004A714 8FB50024 */ lw $s5, 0x24($sp)
/* 358BD8 E004A718 8FB40020 */ lw $s4, 0x20($sp)
/* 358BDC E004A71C 8FB3001C */ lw $s3, 0x1c($sp)
/* 358BE0 E004A720 8FB20018 */ lw $s2, 0x18($sp)
/* 358BE4 E004A724 8FB10014 */ lw $s1, 0x14($sp)
/* 358BE8 E004A728 8FB00010 */ lw $s0, 0x10($sp)
/* 358BEC E004A72C D7BC0050 */ ldc1 $f28, 0x50($sp)
/* 358BF0 E004A730 D7BA0048 */ ldc1 $f26, 0x48($sp)
/* 358BF4 E004A734 D7B80040 */ ldc1 $f24, 0x40($sp)
/* 358BF8 E004A738 D7B60038 */ ldc1 $f22, 0x38($sp)
/* 358BFC E004A73C D7B40030 */ ldc1 $f20, 0x30($sp)
/* 358C00 E004A740 03E00008 */ jr $ra
/* 358C04 E004A744 27BD0058 */ addiu $sp, $sp, 0x58

View File

@ -2916,7 +2916,7 @@ segments:
vram: 0xE0026000
subsegments:
- [0x33B180, c, gather_energy_pink]
- [0x33BB70, data]
- [0x33BB70]
- name: effect_gfx_gather_energy_pink
dir: effects/gfx
type: code
@ -3023,7 +3023,7 @@ segments:
vram: 0xE0030000
subsegments:
- [0x342140, c, damage_stars]
- [0x342FD0, data]
- [0x342FD0]
- name: effect_gfx_damage_stars
dir: effects/gfx
type: code
@ -3052,7 +3052,7 @@ segments:
vram: 0xE0032000
subsegments:
- [0x343680, c, explosion]
- [0x343F30, data]
- [0x343F30]
- name: effect_gfx_explosion
dir: effects/gfx
type: code
@ -3093,7 +3093,7 @@ segments:
vram: 0xE0036000
subsegments:
- [0x3454E0, c, got_item_outline]
- [0x345B10, data]
- [0x345B10]
- name: effect_gfx_got_item_outline
dir: effects/gfx
type: code
@ -3261,8 +3261,27 @@ segments:
vram: 0xE004A000
subsegments:
- [0x3584C0, c, shockwave]
- [0x359320, data]
- [0x3593B0, bin] # shockwave, red_impact gfx
- [0x359320]
- name: effect_gfx_shockwave
dir: effects/gfx
type: code
start: 0x3593B0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3593B0, c, shockwave]
- start: 0x3593B0
type: .data
name: shockwave
subsegments:
- [0x3593B0, i4, D_09000000_3593B0, 32, 32]
- [0x3595B0, ia4, D_09000200_3595B0, 64, 32]
- [0x3599B0, i4, D_09000600_3599B0, 32, 32]
- [0x359BB0, vtx, D_09000800_359BB0]
- [0x359CF0, gfx, D_09000940_359CF0]
- [0x359D50, gfx, D_090009A0_359D50]
- [0x359E30, gfx, D_09000A80_359E30]
- [0x359F20]
- name: effect_music_note
dir: effects
type: code
@ -3470,7 +3489,7 @@ segments:
vram: 0xE0064000
subsegments:
- [0x364F10, c, green_impact]
- [0x365970, data]
- [0x365970]
- name: effect_gfx_green_impact
dir: effects/gfx
type: code
@ -3504,7 +3523,7 @@ segments:
vram: 0xE0068000
subsegments:
- [0x36A8D0, c, ending_decals]
- [0x36AE80, data]
- [0x36AE80]
- name: effect_gfx_ending_decals
dir: effects/gfx
type: code
@ -3539,7 +3558,7 @@ segments:
vram: 0xE006A000
subsegments:
- [0x36D020, c, light_rays]
- [0x36DE10, data]
- [0x36DE10]
- name: effect_gfx_light_rays
dir: effects/gfx
type: code
@ -3566,7 +3585,7 @@ segments:
vram: 0xE006C000
subsegments:
- [0x36E1D0, c, lightning]
- [0x36ED30, data]
- [0x36ED30]
- name: effect_gfx_lightning
dir: effects/gfx
type: code
@ -3798,7 +3817,50 @@ segments:
subsegments:
- [0x37D490, c, blast]
- [0x37D9A0]
- [0x37D9D0, bin] # blast, bombette_breaking gfx
- name: effect_gfx_blast
dir: effects/gfx
type: code
start: 0x37D9D0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x37D9D0, c, blast]
- start: 0x37D9D0
type: .data
name: blast
subsegments:
- [0x37D9D0, i4, D_09000000_37D9D0, 32, 32]
- [0x37DBD0, i4, D_09000200_37DBD0, 32, 32]
- [0x37DDD0, i4, D_09000400_37DDD0, 32, 32]
- [0x37DFD0, i4, D_09000600_37DFD0, 32, 32]
- [0x37E1D0, i4, D_09000800_37E1D0, 32, 32]
- [0x37E3D0, i4, D_09000A00_37E3D0, 32, 32]
- [0x37E5D0, i4, D_09000C00_37E5D0, 32, 32]
- [0x37E7D0, i4, D_09000E00_37E7D0, 32, 32]
- [0x37E9D0, i4, D_09001000_37E9D0, 32, 32]
- [0x37EBD0, vtx, D_09001200_37EBD0]
- [0x37EC10, vtx, D_09001240_37EC10]
- [0x37EC90, vtx, D_090012C0_37EC90]
- [0x37ECD0, gfx, D_09001300_37ECD0]
- [0x37ED48, gfx, D_09001378_37ED48]
- [0x37EDC0, gfx, D_090013F0_37EDC0]
- [0x37EE38, gfx, D_09001468_37EE38]
- [0x37EEB0, gfx, D_090014E0_37EEB0]
- [0x37EF28, gfx, D_09001558_37EF28]
- [0x37EFA0, gfx, D_090015D0_37EFA0]
- [0x37F018, gfx, D_09001648_37F018]
- [0x37F090, gfx, D_090016C0_37F090]
- [0x37F108, gfx, D_09001738_37F108]
- [0x37F180, gfx, D_090017A0_37F180]
- [0x37F1A0, gfx, D_090017D0_37F1A0]
- [0x37F290, gfx, D_090018C0_37F290]
- [0x37F2B0, vtx, D_090018E0_37F2B0]
- [0x37F420, vtx, D_09001A50_37F420]
- [0x37F470, vtx, D_09001AA0_37F470]
- [0x37F650, gfx, D_09001C80_37F650]
- [0x37F698, gfx, D_09001CC8_37F698]
- [0x37F6D0, gfx, D_09001D00_37F6D0]
- [0x37F718]
- name: effect_fire_flower # should be called fire_flower but we already have a segment with that name TODO rename
dir: effects
type: code
@ -4069,7 +4131,7 @@ segments:
vram: 0xE008E000
subsegments:
- [0x38EE60, c, gather_magic]
- [0x38F6F0, data]
- [0x38F6F0]
- name: effect_gfx_gather_magic
dir: effects/gfx
type: code
@ -4097,15 +4159,42 @@ segments:
subsegments:
- [0x38F900, c, attack_result_text]
- [0x390340]
- type: group # attack_result_text gfx
- name: effect_gfx_attack_result_text
dir: effects/gfx
type: code
start: 0x3903D0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3903D0, ia4, battle/lucky, 64, 32]
- [0x3907D0, ia4, battle/miss, 64, 32]
- [0x390BD0, ia4, battle/good, 64, 32]
- [0x390FD0, ia4, battle/nice, 64, 32]
- [0x3913D0, ia4, battle/super, 64, 32]
- [0x3917D0, bin]
- [0x3903D0, c, attack_result_text]
- start: 0x3903D0
type: .data
name: attack_result_text
subsegments:
- [0x3903D0, ia4, battle/lucky, 64, 32]
- [0x3907D0, ia4, battle/miss, 64, 32]
- [0x390BD0, ia4, battle/good, 64, 32]
- [0x390FD0, ia4, battle/nice, 64, 32]
- [0x3913D0, ia4, battle/super, 64, 32]
- [0x3917D0, i8, D_09001400_3917D0, 8, 32]
- [0x3918D0, gfx, D_09001500_3918D0]
- [0x391978, gfx, D_090015A8_391978]
- [0x3919E0, gfx, D_09001610_3919E0]
- [0x391A28, gfx, D_09001658_391A28]
- [0x391A70, gfx, D_090016A0_391A70]
- [0x391AB8, gfx, D_090016E8_391AB8]
- [0x391B00, gfx, D_09001730_391B00]
- [0x391B48, vtx, D_09001778_391B48]
- [0x391B88, vtx, D_090017B8_391B88]
- [0x391BC8, vtx, D_090017F8_391BC8]
- [0x391C08, vtx, D_09001838_391C08]
- [0x391C48, vtx, D_09001878_391C48]
- [0x391C88, gfx, D_090018B8_391C88]
- [0x391CA8, gfx, D_090018D8_391CA8]
- [0x391CC8, gfx, D_090018F8_391CC8]
- [0x391CE8, gfx, D_09001918_391CE8]
- [0x391D08, gfx, D_09001938_391D08]
- [0x391D28]
- name: effect_small_gold_sparkle
dir: effects
type: code
@ -4217,8 +4306,27 @@ segments:
vram: 0xE0098000
subsegments:
- [0x395BB0, c, floating_rock]
- [0x3960C0, data]
- [0x3960F0, bin] # floating_rock gfx
- [0x3960C0]
- name: effect_gfx_floating_rock
dir: effects/gfx
type: code
start: 0x3960F0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3960F0, c, floating_rock]
- start: 0x3960F0
type: .data
name: floating_rock
subsegments:
- [0x3960F0, vtx, D_09000000_3960F0]
- [0x396260, vtx, D_09000170_396260]
- [0x3962B0, vtx, D_090001C0_3962B0]
- [0x396490, gfx, D_090003A0_396490]
- [0x3964D0, gfx, D_090003E0_3964D0]
- [0x396500, gfx, D_09000410_396500]
- [0x396540, gfx, D_09000450_396540]
- [0x3965A8]
- name: effect_chomp_drop
dir: effects
type: code
@ -4527,8 +4635,30 @@ segments:
vram: 0xE00C2000
subsegments:
- [0x3C11D0, c, fright_jar]
- [0x3C1B60, data]
- [0x3C1BA0, bin] # fright_jar gfx
- [0x3C1B60]
- name: effect_gfx_fright_jar
dir: effects/gfx
type: code
start: 0x3C1BA0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3C1BA0, c, fright_jar]
- start: 0x3C1BA0
type: .data
name: fright_jar
subsegments:
- [0x3C1BA0, ci4, D_09000000_3C1BA0, 128, 128]
- [0x3C3BA0, palette, D_09000000_3C1BA0]
- [0x3C3BC0, ci8, D_09002020_3C3BC0, 64, 128]
- [0x3C5BC0, palette, D_09002020_3C3BC0]
- [0x3C5BE0, vtx, D_09004040_3C5BE0]
- [0x3C5F50, vtx, D_090043B0_3C5F50]
- [0x3C62C0, vtx, D_09004720_3C62C0]
- [0x3CA780, gfx, D_09008BE0_3CA780]
- [0x3CA850, gfx, D_09008CB0_3CA850]
- [0x3CA870, gfx, D_09008CD0_3CA870]
- [0x3CADE8]
- name: effect_stop_watch
dir: effects
type: code
@ -4545,7 +4675,7 @@ segments:
vram: 0xE00C6000
subsegments:
- [0x3CC9E0, c, effect_63]
- [0x3CD670, data]
- [0x3CD670]
- name: effect_gfx_effect_63
dir: effects/gfx
type: code
@ -4656,7 +4786,7 @@ segments:
vram: 0xE00D0000
subsegments:
- [0x3D3E20, c, red_impact]
- [0x3D4930, data]
- [0x3D4930]
- name: effect_floating_cloud_puff
dir: effects
type: code
@ -4664,7 +4794,7 @@ segments:
vram: 0xE00D2000
subsegments:
- [0x3D4970, c, floating_cloud_puff]
- [0x3D4E70, data]
- [0x3D4E70]
- name: effect_gfx_floating_cloud_puff
dir: effects/gfx
type: code
@ -4689,7 +4819,7 @@ segments:
vram: 0xE00D6000
subsegments:
- [0x3D5020, c, energy_in_out]
- [0x3D5E60, data]
- [0x3D5E60]
- name: effect_gfx_energy_in_out
dir: effects/gfx
type: code
@ -4771,7 +4901,7 @@ segments:
vram: 0xE00DE000
subsegments:
- [0x3D8720, c, cold_breath]
- [0x3D8F30, data]
- [0x3D8F30]
- name: effect_gfx_cold_breath
dir: effects/gfx
type: code
@ -5001,24 +5131,55 @@ segments:
vram: 0xE010E000
subsegments:
- [0x3EB4E0, c, chapter_change]
- [0x3EBC30, data]
- type: group # chapter_change gfx
- [0x3EBC30]
- name: effect_gfx_chapter_change
dir: effects/gfx
type: code
start: 0x3EBE60
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3EBE60, ia8, world/ch0, 144, 40]
- [0x3ED4E0, ia8, world/text_chapter, 128, 40]
- [0x3EE8E0, ia8, world/text_end_of, 104, 40]
- [0x3EF920, ia8, world/exclamation_point, 16, 40]
- [0x3EFBA0, ia8, world/ch1, 64, 64]
- [0x3F0BA0, ia8, world/ch2, 64, 64]
- [0x3F1BA0, ia8, world/ch3, 64, 64]
- [0x3F2BA0, ia8, world/ch4, 64, 64]
- [0x3F3BA0, ia8, world/ch5, 64, 64]
- [0x3F4BA0, ia8, world/ch6, 64, 64]
- [0x3F5BA0, ia8, world/ch7, 64, 64]
- [0x3F6BA0, ia8, world/ch8, 64, 64]
- [0x3F7BA0, rgba16, world/chapter_rainbow, 8, 16]
- [0x3F7CA0, bin]
- [0x3EBE60, c, chapter_change]
- start: 0x3EBE60
type: .data
name: chapter_change
subsegments:
- [0x3EBE60, ia8, world/ch0, 144, 20]
- [0x3EC9A0, ia8, D_09000B40_3EC9A0, 144, 20]
- [0x3ED4E0, ia8, world/text_chapter, 128, 10]
- [0x3ED9E0, ia8, D_09001B80_3ED9E0, 128, 10]
- [0x3EDEE0, ia8, D_09002080_3EDEE0, 128, 10]
- [0x3EE3E0, ia8, D_09002580_3EE3E0, 128, 10]
- [0x3EE8E0, ia8, world/text_end_of, 104, 20]
- [0x3EF100, ia8, D_090032A0_3EF100, 104, 20]
- [0x3EF920, ia8, world/exclamation_point, 16, 40]
- [0x3EFBA0, ia8, world/ch1, 64, 64]
- [0x3F0BA0, ia8, world/ch2, 64, 64]
- [0x3F1BA0, ia8, world/ch3, 64, 64]
- [0x3F2BA0, ia8, world/ch4, 64, 64]
- [0x3F3BA0, ia8, world/ch5, 64, 64]
- [0x3F4BA0, ia8, world/ch6, 64, 64]
- [0x3F5BA0, ia8, world/ch7, 64, 64]
- [0x3F6BA0, ia8, world/ch8, 64, 64]
- [0x3F7BA0, rgba16, world/chapter_rainbow, 8, 16]
- [0x3F7CA0, gfx, D_0900BE40_3F7CA0]
- [0x3F7CE8, gfx, D_0900BE88_3F7CE8]
- [0x3F7D30, gfx, D_0900BED0_3F7D30]
- [0x3F7D78, gfx, D_0900BF18_3F7D78]
- [0x3F7DC0, gfx, D_0900BF60_3F7DC0]
- [0x3F7E08, gfx, D_0900BFA8_3F7E08]
- [0x3F7E50, gfx, D_0900BFF0_3F7E50]
- [0x3F7E98, gfx, D_0900C038_3F7E98]
- [0x3F7EE0, gfx, D_0900C080_3F7EE0]
- [0x3F7FC8, gfx, D_0900C168_3F7FC8]
- [0x3F8010, gfx, D_0900C1B0_3F8010]
- [0x3F8058, gfx, D_0900C1F8_3F8058]
- [0x3F80A0, gfx, D_0900C240_3F80A0]
- [0x3F8188, gfx, D_0900C328_3F8188]
- [0x3F81D0, gfx, D_0900C370_3F81D0]
- [0x3F82B8, gfx, D_0900C458_3F82B8]
- [0x3F83A0, gfx, D_0900C540_3F83A0]
- [0x3F83E8]
- name: effect_ice_shard
dir: effects
type: code

View File

@ -39,49 +39,6 @@ fx_sun_undeclared = fx_sun;
D_E007EC2F = 0xE007EC2F;
// effect_attack_result_text
D_09001500 = 0x09001500;
D_090015A8 = 0x090015A8;
D_09001610 = 0x09001610;
D_09001658 = 0x09001658;
D_090016A0 = 0x090016A0;
D_090016E8 = 0x090016E8;
D_09001730 = 0x09001730;
D_090018B8 = 0x090018B8;
D_090018D8 = 0x090018D8;
D_090018F8 = 0x090018F8;
D_09001918 = 0x09001918;
D_09001938 = 0x09001938;
// effect_floating_rock
D_09000450 = 0x09000450;
// effect_fright_jar
D_09000000 = 0x09000000;
D_09002020 = 0x09002020;
D_09004040 = 0x09004040;
D_09008BE0 = 0x09008BE0;
// effect_bombette_breaking
D_090018C0 = 0x090018C0;
D_09001D00 = 0x09001D00;
D_09001CC8 = 0x09001CC8;
D_09001C80 = 0x09001C80;
D_090017D0 = 0x090017D0;
// effect_blast
D_09001300 = 0x09001300;
D_09001378 = 0x09001378;
D_090013F0 = 0x090013F0;
D_09001468 = 0x09001468;
D_090014E0 = 0x090014E0;
D_09001558 = 0x09001558;
D_090015D0 = 0x090015D0;
D_09001648 = 0x09001648;
D_090016C0 = 0x090016C0;
D_09001738 = 0x09001738;
D_090017B0 = 0x090017B0;
// Invalid pointers from dead code
dead_atan2 = 0x8002AF70;
dead_gCurrentCamID = 0x800A158C;