Effect work (#875)

* quizmo_audience effect

* explosion_main

* tidying

* wip shtuff

* fixules

* partner_buff dun

* shockwave

* remove script
This commit is contained in:
Ethan Roseman 2022-12-03 21:05:33 -05:00 committed by GitHub
parent 2561914d1a
commit d2b436287f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 816 additions and 1745 deletions

View File

@ -540,9 +540,7 @@ typedef struct DamageStarsFXData {
typedef struct ExplosionFXData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x04 */ Vec3f pos;
/* 0x10 */ char unk_10[0x10];
/* 0x20 */ f32 unk_20;
/* 0x24 */ f32 unk_24;
@ -719,9 +717,7 @@ typedef struct RingBlastFXData {
typedef struct ShockwaveFXData {
/* 0x00 */ u16 unk_00;
/* 0x02 */ char unk_02[2]; // likely padding
/* 0x04 */ f32 unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x04 */ Vec3f pos;
/* 0x10 */ f32 unk_10;
/* 0x14 */ f32 unk_14;
/* 0x18 */ s32 unk_18;
@ -732,14 +728,14 @@ typedef struct ShockwaveFXData {
/* 0x2C */ s32 unk_2C;
/* 0x30 */ f32 unk_30;
/* 0x34 */ f32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x38 */ s32 alpha;
/* 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;
/* 0x50 */ Color_RGB8 prim;
/* 0x53 */ Color_RGB8 env;
/* 0x56 */ char unk_56[2]; // likely padding
} ShockwaveFXData; // size = 0x58
@ -1613,18 +1609,20 @@ typedef struct MerlinHouseStarsFXData {
/* 0x38 */ f32 unk_38;
} MerlinHouseStarsFXData; // size = 0x3C
#define MAX_QUIZMO_AUDIENCE 10
typedef struct QuizmoAudienceFXData {
/* 0x00 */ s32 unk_00;
/* 0x04 */ s32 timeLeft;
/* 0x08 */ s32 lifeTime;
/* 0x0C */ Vec3f pos;
/* 0x18 */ s32 unk_18;
/* 0x1C */ s32 unk_1C[10];
/* 0x44 */ s32 unk_44[10];
/* 0x6C */ s32 unk_6C[10];
/* 0x94 */ f32 unk_94[10];
/* 0xBC */ f32 unk_BC[10];
/* 0xE4 */ f32 unk_E4[10];
/* 0x18 */ s32 primColor;
/* 0x1C */ s32 compState[MAX_QUIZMO_AUDIENCE];
/* 0x44 */ s32 compType[MAX_QUIZMO_AUDIENCE];
/* 0x6C */ s32 compPosIdx[MAX_QUIZMO_AUDIENCE];
/* 0x94 */ f32 compMoveMagnitude[MAX_QUIZMO_AUDIENCE];
/* 0xBC */ f32 compX[MAX_QUIZMO_AUDIENCE];
/* 0xE4 */ f32 compY[MAX_QUIZMO_AUDIENCE];
} QuizmoAudienceFXData; // size = 0x10C
typedef struct ButterfliesFXData {

View File

@ -111,7 +111,7 @@ EffectTableEntry gEffectTable[] = {
/* 0x51 */ FX_ENTRY(motion_blur_flame, _3A33D0),
/* 0x52 */ FX_ENTRY(energy_orb_wave, effect_gfx_energy_orb_wave),
/* 0x53 */ FX_ENTRY(merlin_house_stars, effect_gfx_merlin_house_stars),
/* 0x54 */ FX_ENTRY(quizmo_audience, _3A77A0),
/* 0x54 */ FX_ENTRY(quizmo_audience, effect_gfx_quizmo_audience),
/* 0x55 */ FX_ENTRY(butterflies, effect_gfx_butterflies),
/* 0x56 */ FX_ENTRY(stat_change, effect_gfx_stat_change),
/* 0x57 */ FX_ENTRY(snaking_static, _3B2D90),

View File

@ -6,7 +6,9 @@ void chomp_drop_update(EffectInstance* effect);
void chomp_drop_render(EffectInstance* effect);
void chomp_drop_appendGfx(void* effect);
EffectInstance* chomp_drop_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, f32 arg6, s32 arg7, f32 arg8, s32 arg9) {
EffectInstance* chomp_drop_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, f32 arg6, s32 arg7,
f32 arg8, s32 arg9)
{
EffectBlueprint bp;
EffectInstance* effect;
ChompDropFXData* data;
@ -125,4 +127,144 @@ void chomp_drop_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
#ifdef WIP
extern Gfx D_09001040[];
extern Gfx D_090010E8[];
extern Gfx D_09001190[];
// wip
void chomp_drop_appendGfx(void* effect) {
EffectInstance* effectTemp = effect;
ChompDropFXData* data = effectTemp->data.chompDrop;
Matrix4f sp20, sp60;
s32 primA;
Gfx* gfxPos;
Vtx* temp_v0_2;
Vtx* temp_s0_2;
Vtx* temp_s0_3;
f32 sinTheta;
f32 sinTheta2;
s32 i;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f20_3;
f32 temp_f22;
s16 temp_v0_3;
s16 temp_v1_4;
s32 temp_a1;
s32 temp_s1;
s32 temp_s6;
s32 temp_s7;
s32 temp_v0;
s32 temp_v1_2;
s32 var_a2;
s32 var_a3;
s32 var_s3;
s32 var_s4;
s32 var_s5;
s32 var_t0;
u8 primR;
u8 primG;
temp_f22 = data->unk_34;
temp_s7 = data->unk_38;
primA = data->unk_3C;
temp_s6 = data->unk_44;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effectTemp)->graphics->data));
shim_guScaleF(sp20, 0.01f, 0.01f, 0.01f);
shim_guPositionF(sp60, 0.0f, 0.0f, 0.0f, data->unk_24, data->unk_04 * 100.0f, data->unk_08 * 100.0f, data->unk_0C * 100.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
sinTheta = shim_sin_deg(temp_s6 * 30);
sinTheta2 = shim_sin_deg(temp_s6 * 30);
primR = (sinTheta * 25.0f) + 225.0f;
primG = (sinTheta2 * 25.0f) + 225.0f;
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primR, primG, 255, primA);
temp_v1_2 = data->unk_2C;
if (temp_v1_2 == 1) {
gSPDisplayList(gMasterGfxPos++, D_09001040);
gSPDisplayList(gMasterGfxPos++, D_09001190);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0, 0, 0, ((30 - data->unk_30) * 255) / 30);
gSPDisplayList(gMasterGfxPos++, D_090010E8);
gSPDisplayList(gMasterGfxPos++, D_09001190);
} else {
if (temp_v1_2 > 0) {
gSPDisplayList(gMasterGfxPos++, D_090010E8);
} else {
gSPDisplayList(gMasterGfxPos++, D_09001040);
}
temp_v0_2 = gMasterGfxPos;
var_s5 = 0;
var_s3 = temp_s6 * 10;
var_s4 = var_s3;
gfxPos = gMasterGfxPos;
gSPBranchList(gMasterGfxPos++, gMasterGfxPos + 0x208);
gMasterGfxPos = temp_v0_2;
for (i = 0; i < 16; i++) {
temp_s0_2 = &temp_v0_2[i];
temp_s1 = (s32) (shim_sin_deg(var_s4 + temp_s7) * 500.0f * temp_f22);
var_s3 += 6;
var_s4 += 50;
temp_v1_4 = i << 7;
temp_f0_2 = shim_sin_deg(var_s3 + temp_s7) * 200.0f * temp_f22;
temp_s0_2->v.ob[0] = temp_s1 - 3200;
temp_s0_2->v.ob[2] = 0;
temp_s0_2->v.tc[1] = 0;
temp_s0_2->v.tc[2] = temp_v1_4;
temp_v0_3 = var_s5 + (s32) temp_f0_2;
temp_s0_2->v.ob[1] = temp_v0_3;
temp_s0_3 = temp_s0_2 + 0x10;
var_s5 += 0x190;
temp_s0_3->v.ob[1] = temp_v0_3;
temp_s0_3->v.tc[1] = 0x800;
temp_s0_3->v.ob[0] = temp_s1 + 3200;
temp_s0_3->v.ob[2] = 0;
temp_s0_3->v.tc[2] = temp_v1_4;
}
gMasterGfxPos = gfxPos;
gSPVertex(gMasterGfxPos++, temp_v0_2, 32, 0);
for (i = 0; i < 15; i++) {
temp_a1 = i * 2;
if (temp_a1 == 0) {
//var_v0_3 = (i << 0x11) | 0x402;
// temp_a0_5->words.w0 = var_v0_3 | 06000000
// temp_a0_5->words.w1 = 00020406
gSP2Triangles(gMasterGfxPos++, i, 2, 1, 0, 1, 2, 3, 0);
} else if (temp_a1 == 1) {
gSP2Triangles(gMasterGfxPos++, 3, 2, 1, 0, 3, 4, 2, 0);
} else {
// var_v0_3 = ((var_a2 & 0xFF) << 0x10) | ((i << 0xA) & 0xFC00) | (var_a3 & 0xFF);
// temp_a0_5->words.w0 = var_v0_3 | 06000000
// temp_a0_5->words.w1 = ((var_t0 & 0xFF) << 0x10) | ((var_a2 & 0xFF) << 8) | (var_a3 & 0xFF);
gSP2Triangles(gMasterGfxPos++,
i,
1 + 4 * i,
2 + 4 * i,
0,
3 + 4 * i,
1 + 4 * i,
2 + 4 * i,
0
);
}
}
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}
#else
INCLUDE_ASM(s32, "effects/chomp_drop", chomp_drop_appendGfx);
#endif

View File

@ -146,7 +146,7 @@ void damage_indicator_update(EffectInstance* effect) {
temp_t0 = part->unk_34;
duration = part->effectDurationTimer;
/* if duration is less than 0, remove effect*/
/* if duration is less than 0, remove effect */
if (duration < 0) {
shim_remove_effect(effect);
return;

View File

@ -1,6 +1,11 @@
#include "common.h"
#include "effects_internal.h"
void explosion_init(EffectInstance* effect);
void explosion_update(EffectInstance* effect);
void explosion_render(EffectInstance* effect);
void explosion_appendGfx(void* effect);
extern Gfx D_09000840_3447B0[];
extern Gfx D_090008F0_344860[];
extern Gfx D_09000910_344880[];
@ -10,9 +15,80 @@ extern Gfx D_09000A38_3449A8[];
Gfx* D_E00328B0[] = { D_09000978_3448E8, D_090009D8_344948, D_09000A38_3449A8 };
void explosion_appendGfx(void* effect);
void explosion_main(s32 type, f32 x, f32 y, f32 z) {
EffectBlueprint bp;
EffectBlueprint* bpPtr = &bp;
EffectInstance* effect;
ExplosionFXData* data;
s32 numParts = 3;
INCLUDE_ASM(s32, "effects/explosion", explosion_main);
// TODO this terrible if-else required to match
s32 dumb;
s32 temp;
if (type != 0) {
dumb = 0;
} else {
temp = 0;
dumb = temp;
}
bpPtr->unk_00 = 0;
bpPtr->init = explosion_init;
bpPtr->update = explosion_update;
bpPtr->renderWorld = explosion_render;
bpPtr->unk_14 = NULL;
bpPtr->effectID = EFFECT_EXPLOSION;
effect = shim_create_effect_instance(bpPtr);
effect->numParts = numParts;
effect->data.explosion = data = shim_general_heap_malloc(effect->numParts * sizeof(*data));
ASSERT(effect->data.explosion != NULL);
data->pos.x = x;
data->pos.y = y;
data->pos.z = z;
data->unk_34 = 0;
data->unk_30 = 60;
data->unk_00 = type;
data++;
data->unk_00 = type;
if (type == 0) {
data->unk_00 = -1;
}
data->unk_38 = 0;
if (type == 1) {
data->unk_20 = 1.0f;
} else {
data->unk_20 = 3.0f;
}
if (type == 1) {
data->unk_24 = 1.0f;
} else {
data->unk_24 = 3.0f;
}
data++;
data->unk_00 = type;
data->unk_38 = 255;
switch (type) {
case 0:
data->unk_20 = 9.9f;
data->unk_24 = 1.6f;
break;
case 1:
data->unk_20 = 13.9f;
data->unk_24 = 2.4f;
break;
default:
data->unk_20 = 17.8f;
data->unk_24 = 3.2f;
break;
}
data->unk_28 = 0.0f;
data->unk_2C = 30.0f;
}
void explosion_init(EffectInstance* effect) {
}
@ -35,10 +111,10 @@ void explosion_update(EffectInstance* effect) {
if (unk_34 == 7) {
shim_load_effect(EFFECT_SMOKE_RING);
smoke_ring_main(unk_00, part->unk_04, part->unk_08, part->unk_0C);
smoke_ring_main(unk_00, part->pos.x, part->pos.y, part->pos.z);
} else if (unk_34 == 1) {
shim_load_effect(EFFECT_CONFETTI);
confetti_main(unk_00 + 4, part->unk_04, part->unk_08, part->unk_0C, 1.0f, 50);
confetti_main(unk_00 + 4, part->pos.x, part->pos.y, part->pos.z, 1.0f, 50);
}
part++;
@ -95,7 +171,7 @@ void explosion_appendGfx(void* effect) {
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_guTranslateF(sp18, part->pos.x, part->pos.y, part->pos.z);
shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);

View File

@ -0,0 +1,43 @@
#include "effects/gfx/D_09000000_3A77A0.png.inc.c"
#include "effects/gfx/D_09000400_3A7BA0.gfx.inc.c"
#include "effects/gfx/D_09000470_3A7C10.png.inc.c"
#include "effects/gfx/D_09000870_3A8010.gfx.inc.c"
#include "effects/gfx/D_090008E0_3A8080.png.inc.c"
#include "effects/gfx/D_09000CE0_3A8480.gfx.inc.c"
#include "effects/gfx/D_09000D50_3A84F0.png.inc.c"
#include "effects/gfx/D_09001150_3A88F0.gfx.inc.c"
#include "effects/gfx/D_090011C0_3A8960.png.inc.c"
#include "effects/gfx/D_090015C0_3A8D60.gfx.inc.c"
#include "effects/gfx/D_09001630_3A8DD0.png.inc.c"
#include "effects/gfx/D_09001A30_3A91D0.gfx.inc.c"
#include "effects/gfx/D_09001AA0_3A9240.png.inc.c"
#include "effects/gfx/D_09001EA0_3A9640.gfx.inc.c"
#include "effects/gfx/D_09001F10_3A96B0.png.inc.c"
#include "effects/gfx/D_09002310_3A9AB0.gfx.inc.c"
#include "effects/gfx/D_09002380_3A9B20.png.inc.c"
#include "effects/gfx/D_09002780_3A9F20.gfx.inc.c"
#include "effects/gfx/D_090027F0_3A9F90.png.inc.c"
#include "effects/gfx/D_09002BF0_3AA390.gfx.inc.c"
#include "effects/gfx/D_09002C60_3AA400.vtx.inc.c"
#include "effects/gfx/D_09002CA0_3AA440.vtx.inc.c"
#include "effects/gfx/D_09002CE0_3AA480.vtx.inc.c"
#include "effects/gfx/D_09002D20_3AA4C0.vtx.inc.c"
#include "effects/gfx/D_09002D60_3AA500.vtx.inc.c"
#include "effects/gfx/D_09002DA0_3AA540.vtx.inc.c"
#include "effects/gfx/D_09002DE0_3AA580.vtx.inc.c"
#include "effects/gfx/D_09002E20_3AA5C0.vtx.inc.c"
#include "effects/gfx/D_09002E60_3AA600.vtx.inc.c"
#include "effects/gfx/D_09002EA0_3AA640.vtx.inc.c"
#include "effects/gfx/D_09002EE0_3AA680.gfx.inc.c"
#include "effects/gfx/D_09002F18_3AA6B8.gfx.inc.c"
#include "effects/gfx/D_09002F50_3AA6F0.gfx.inc.c"
#include "effects/gfx/D_09002F88_3AA728.gfx.inc.c"
#include "effects/gfx/D_09002FC0_3AA760.gfx.inc.c"
#include "effects/gfx/D_09002FF8_3AA798.gfx.inc.c"
#include "effects/gfx/D_09003030_3AA7D0.gfx.inc.c"
#include "effects/gfx/D_09003068_3AA808.gfx.inc.c"
#include "effects/gfx/D_090030A0_3AA840.gfx.inc.c"
#include "effects/gfx/D_090030D8_3AA878.gfx.inc.c"
#include "effects/gfx/D_09003110_3AA8B0.gfx.inc.c"

View File

@ -212,8 +212,6 @@ void lightning_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
// There's a single instruction out of order
#if NON_MATCHING
void lightning_appendGfx(void* effect) {
LightningFXData* data = ((EffectInstance*)effect)->data.lightning;
s32 unk_00 = data->unk_00;
@ -233,13 +231,15 @@ void lightning_appendGfx(void* effect) {
s32 uls2;
s32 uls;
s32 ult;
f32* unk_28; // TODO required to match
gSPDisplayList(gMasterGfxPos++, dlist2);
uls = data->unk_1C * 4.0f;
ult = data->unk_20 * 4.0f;
uls2 = data->unk_24 * 4.0f;
ult2 = data->unk_28 * 4.0f;
unk_28 = &data->unk_28; // TODO dumb pointer temp required to match
ult2 = *(unk_28) * 4.0f;
switch (unk_00) {
case 0:
@ -282,6 +282,3 @@ void lightning_appendGfx(void* effect) {
gDPPipeSync(gMasterGfxPos++);
}
}
#else
INCLUDE_ASM(s32, "effects/lightning", lightning_appendGfx);
#endif

View File

@ -5,7 +5,7 @@ s32 D_E00BCC30[] = { 0x05050505, 0x05050505, 0x05050505, 0x0A090301, 0x00000000,
s32 D_E00BCD38[] = { 0x19191905, 0x19051919, 0x05191919, 0x04030201, 0x00000000, 0x00000000, 0x0F0F0F19, 0x0F0F0519, 0x190F1919, 0x04040404, 0x04030201, 0x00000000, 0x19191905, 0x0F190505, 0x0F050500, 0x04040404, 0x04040604, 0x04040000, 0x19191905, 0x19051919, 0x050F0500, 0x04040404, 0x04040604, 0x04040605, 0x0F0F0F2D, 0x232D2323, 0x19230F00, 0x04040404, 0x04040604, 0x04040605, 0x2D372319, 0x370F2D19, 0x2D230F00, 0x04040404, 0x04040604, 0x04040605, 0x55190F4B, 0x1941232D, 0x4B550F00, 0x04040404, 0x04040604, 0x04040605, 0x550F2337, 0x412D194B, 0x232D2328, 0x04040404, 0x04040604, 0x04040605, 0x550F2337, 0x412D194B, 0x232D2328, 0x04040404, 0x04040604, 0x04040605, 0x550F2337, 0x412D194B, 0x232D2328, 0x04040404, 0x04040604, 0x04040605, 0x1E1E1919, 0x23140F0A, 0x0F0F0500, 0x04040404, 0x04040404, 0x04040200 };
s32 D_E00BCE40[] = { D_E00BCC30, D_E00BCD38, 0x00000000, 0x00000000 };
s32* D_E00BCE40[] = { D_E00BCC30, D_E00BCD38 };
void lightning_bolt_init(EffectInstance* effect);
void lightning_bolt_update(EffectInstance* effect);

View File

@ -18,6 +18,20 @@ enum {
BUFF_STATE_FADE_IN = 40
};
extern Gfx D_09001800[];
extern Gfx D_090019A0[];
extern Gfx D_09001A18[];
extern Gfx D_09001A90[];
extern Gfx D_09001B08[];
extern Gfx D_09001B80[];
Gfx* D_E011AC20[] = { D_09001800 };
Gfx* D_E011AC24[] = { D_090019A0, D_09001A18, D_09001A90, D_09001B08, D_09001B80, NULL, NULL, NULL, NULL, NULL };
s8 D_E011AC4C[] = { 15, 15, 15, 15, 15, 35, 75, 100, 100, 100, 100, 0 };
s8 D_E011AC58[] = { 100, 100, 100, 100, 100, 90, 10, 10, 10, 10, 10, 0 };
s8 D_E011AC64[] = { 0, -1, -3, -4, -4, 4, 32, 32, 32, 32, 32, 0 };
EffectInstance* partner_buff_main(s32 useRandomValues, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 duration) {
EffectBlueprint bp;
EffectInstance* effect;
@ -88,11 +102,12 @@ void partner_buff_update(EffectInstance* effect) {
for (i = 0; i < ARRAY_COUNT(data->unk_0C); i++) {
BuffData* buff = &data->unk_0C[i];
if (buff->turnsLeft < 0) {
buff->turnsLeft = 0;
}
// possibly a leftover debug option
if ((useRandomValues == 1) && (time % 30 == 0)) {
if (useRandomValues == 1 && time % 30 == 0) {
buff->turnsLeft = shim_rand_int(4);
}
@ -171,8 +186,9 @@ void func_E011A3BC(s16 alpha) {
gDPSetCombineMode(gMasterGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA);
} else {
gDPSetRenderMode(gMasterGfxPos++, G_RM_CLD_SURF, G_RM_CLD_SURF2);
gDPSetCombineLERP(gMasterGfxPos++, 0, 0, 0, TEXEL0, PRIMITIVE, 0, TEXEL0, 0, 0, 0, 0, TEXEL0, PRIMITIVE, 0, TEXEL0, 0);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0x00, 0x00, 0x00, alpha);
gDPSetCombineLERP(gMasterGfxPos++, 0, 0, 0, TEXEL0, PRIMITIVE, 0, TEXEL0, 0, 0, 0, 0, TEXEL0, PRIMITIVE, 0,
TEXEL0, 0);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, 0, 0, 0, alpha);
}
}
@ -190,4 +206,96 @@ void func_E011A48C(s32 posX, s32 posY, s32 tile, f32 scale) {
gDPPipeSync(gMasterGfxPos++);
}
INCLUDE_ASM(s32, "effects/partner_buff", func_E011A700);
void func_E011A700(EffectInstance* effect) {
PartnerBuffFXData* data = effect->data.partnerBuff;
Camera* camera = &gCameras[gCurrentCameraID];
s32 numShown;
s32 alpha;
s32 temp1;
s32 temp2;
f32 scale;
Gfx* dlist;
f32 x, y;
s32 i;
if (data->unk_02 != 0) {
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, D_E011AC20[0]);
numShown = 0;
for (i = 0; i < ARRAY_COUNT(data->unk_0C); i++) {
BuffData* buffData = &data->unk_0C[i];
alpha = buffData->alpha;
if (alpha != 0) {
gSPTexture(gMasterGfxPos++, 0xFFFF, 0xFFFF, 2, i, G_ON);
func_E011A3BC(alpha);
func_E011A48C(20 + numShown * 32, 50, i, 1024.0f);
numShown++;
}
}
gSPTexture(gMasterGfxPos++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON);
gDPSetTextureLUT(gMasterGfxPos++, G_TT_NONE);
numShown = 0;
for (i = 0; i < ARRAY_COUNT(data->unk_0C); i++) {
BuffData* buffData = &data->unk_0C[i];
s16 turnsDisplay = buffData->turnsDisplay;
s16 stateTimer = buffData->stateTimer;
alpha = buffData->alpha;
if (alpha != 0) {
if (turnsDisplay < 0) {
turnsDisplay = 0;
}
if (turnsDisplay > 9) {
turnsDisplay = 9;
}
func_E011A3BC(alpha);
if (buffData->state == BUFF_STATE_DECREMENT_TURNS || buffData->state == BUFF_STATE_SET_TURNS) {
s32 idx;
if (buffData->state == BUFF_STATE_DECREMENT_TURNS) {
idx = turnsDisplay - 1;
} else if (buffData->state == BUFF_STATE_SET_TURNS) {
idx = turnsDisplay + 1;
}
dlist = D_E011AC24[idx];
if (dlist != NULL) {
gSPDisplayList(gMasterGfxPos++, dlist);
scale = D_E011AC4C[(s16)stateTimer] * 0.01f;
temp2 = (-(scale - 1.0f) * 16.0f) + 0.5;
x = temp2 + 20 + numShown * 32;
y = temp2 + 50;
func_E011A48C(x, y, 0, 1024.0f / scale);
}
}
dlist = D_E011AC24[turnsDisplay];
if (dlist != NULL) {
gSPDisplayList(gMasterGfxPos++, dlist);
temp1 = D_E011AC64[(s16)stateTimer];
temp2 = -temp1;
scale = D_E011AC58[(s16)stateTimer] * 0.01f;
x = temp1 + 20 + numShown * 32;
y = temp2 + 50;
func_E011A48C(x, y, 0, 1024.0f / scale);
}
numShown++;
}
}
gDPSetScissor(gMasterGfxPos++, G_SC_NON_INTERLACE,
camera->viewportStartX,
camera->viewportStartY,
camera->viewportStartX + camera->viewportW,
camera->viewportStartY + camera->viewportH
);
gDPPipeSync(gMasterGfxPos++);
}
}

View File

@ -1,16 +1,76 @@
#include "common.h"
#include "effects_internal.h"
s32 D_E00A8620[] = { 0x090030D8, 0x090030A0, 0x09003068, 0x09003030, 0x09002FF8, 0x09002FC0, 0x09002F88, 0x09002F50, 0x09002F18, 0x09002EE0 };
typedef struct QuizmoAudiencePositonOffsets {
/* 0x00 */ Vec2b* offsets;
/* 0x04 */ u8 count;
} QuizmoAudiencePositonOffsets; // size = 0x8
s32 D_E00A8648[] = { 0x00000100, 0x02000200, 0x03000300, 0x03000200, 0x02000100, 0x01000000, 0x0000FF00, 0xFE00FE00, 0xFD00FD00, 0xFD00FE00, 0xFE00FF00, 0xFF000000 };
extern Gfx D_09002EE0_3AA680[];
extern Gfx D_09002F18_3AA6B8[];
extern Gfx D_09002F50_3AA6F0[];
extern Gfx D_09002F88_3AA728[];
extern Gfx D_09002FC0_3AA760[];
extern Gfx D_09002FF8_3AA798[];
extern Gfx D_09003030_3AA7D0[];
extern Gfx D_09003068_3AA808[];
extern Gfx D_090030A0_3AA840[];
extern Gfx D_090030D8_3AA878[];
extern Gfx D_09003110_3AA8B0[];
s32 D_E00A8678[] = { 0x00000001, 0x00020002, 0x00030003, 0x00030002, 0x00020001, 0x00010000 };
Gfx* quizmo_audience_renderAudienceMember[] = {
D_090030D8_3AA878, D_090030A0_3AA840, D_09003068_3AA808, D_09003030_3AA7D0, D_09002FF8_3AA798,
D_09002FC0_3AA760, D_09002F88_3AA728, D_09002F50_3AA6F0, D_09002F18_3AA6B8, D_09002EE0_3AA680
};
s32 D_E00A8690[] = { D_E00A8648, 0x18000000, D_E00A8678, 0x0C000000 };
Vec2b quizmo_audience_horizontalPosOffsets[] = {
{0, 0},
{1, 0},
{2, 0},
{2, 0},
{3, 0},
{3, 0},
{3, 0},
{2, 0},
{2, 0},
{1, 0},
{1, 0},
{0, 0},
{0, 0},
{-1, 0},
{-2, 0},
{-2, 0},
{-3, 0},
{-3, 0},
{-3, 0},
{-2, 0},
{-2, 0},
{-1, 0},
{-1, 0},
{0, 0},
};
Vec2b quizmo_audience_verticalPosOffsets[] = {
{0, 0},
{0, 1},
{0, 2},
{0, 2},
{0, 3},
{0, 3},
{0, 3},
{0, 2},
{0, 2},
{0, 1},
{0, 1},
{0, 0},
};
QuizmoAudiencePositonOffsets quizmo_audience_positionOffsets[] = {
{ quizmo_audience_horizontalPosOffsets, ARRAY_COUNT(quizmo_audience_horizontalPosOffsets) },
{ quizmo_audience_verticalPosOffsets, ARRAY_COUNT(quizmo_audience_verticalPosOffsets) },
};
void quizmo_audience_appendGfx(void* effect);
void quizmo_audience_init(EffectInstance* effect);
void quizmo_audience_update(EffectInstance* effect);
void quizmo_audience_render(EffectInstance* effect);
@ -37,15 +97,15 @@ EffectInstance* quizmo_audience_main(s32 arg0, f32 posX, f32 posY, f32 posZ) {
data->timeLeft = 100;
data->unk_00 = arg0;
data->unk_18 = 255;
data->primColor = 255;
data->pos.x = posX;
data->pos.y = posY;
data->pos.z = posZ;
data->lifeTime = 0;
for(i = 0; i < 10; i++) {
data->unk_1C[i] = 0;
data->unk_BC[i] = data->unk_E4[i] = 0.0f;
data->compState[i] = 0;
data->compX[i] = data->compY[i] = 0.0f;
}
return effect;
@ -54,7 +114,55 @@ EffectInstance* quizmo_audience_main(s32 arg0, f32 posX, f32 posY, f32 posZ) {
void quizmo_audience_init(EffectInstance* effect) {
}
INCLUDE_ASM(s32, "effects/quizmo_audience", quizmo_audience_update);
void quizmo_audience_update(EffectInstance* effect) {
QuizmoAudienceFXData* data = effect->data.quizmoAudience;
QuizmoAudiencePositonOffsets* unkStruct;
s32 posIdx;
s32 i;
if (effect->flags & 0x10) {
effect->flags &= ~0x10;
data->timeLeft = 30;
}
if (data->timeLeft < 100) {
data->timeLeft--;
}
data->lifeTime++;
if (data->timeLeft < 0) {
shim_remove_effect(effect);
return;
}
if (data->timeLeft < 16) {
data->primColor = data->timeLeft * 16;
}
for (i = 0; i < MAX_QUIZMO_AUDIENCE; i++) {
switch (data->compState[i]) {
case 0:
if (shim_rand_int(10) == 10) {
data->compState[i] = 1;
data->compType[i] = shim_rand_int(1);
data->compPosIdx[i] = 0;
data->compMoveMagnitude[i] = (shim_rand_int(50) * 0.01) + 0.5;
}
break;
case 1:
posIdx = data->compPosIdx[i];
unkStruct = &quizmo_audience_positionOffsets[data->compType[i]];
if (data->compPosIdx[i] >= unkStruct->count) {
data->compState[i] = 0;
} else {
data->compX[i] = unkStruct->offsets[posIdx].x * data->compMoveMagnitude[i];
data->compY[i] = unkStruct->offsets[posIdx].y * data->compMoveMagnitude[i];
data->compPosIdx[i]++;
}
break;
}
}
}
void quizmo_audience_render(EffectInstance* effect) {
RenderTask renderTask;
@ -72,4 +180,37 @@ void quizmo_audience_render(EffectInstance* effect) {
void func_E00A8318(void) {
}
INCLUDE_ASM(s32, "effects/quizmo_audience", quizmo_audience_appendGfx);
void quizmo_audience_appendGfx(void* effect) {
Matrix4f sp18;
Matrix4f sp58;
QuizmoAudienceFXData* data = ((EffectInstance*)effect)->data.quizmoAudience;
s32 primColor = data->primColor;
s32 i;
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guTranslateF(sp18, data->pos.x, data->pos.y, data->pos.z);
shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp58, sp18, sp18);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primColor, primColor, primColor, 255);
gSPDisplayList(gMasterGfxPos++, D_09003110_3AA8B0);
for (i = 0; i < MAX_QUIZMO_AUDIENCE; i++) {
shim_guTranslateF(sp18, data->compX[i], data->compY[i], 0.0f);
shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, quizmo_audience_renderAudienceMember[i]);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
gDPPipeSync(gMasterGfxPos++);
}

View File

@ -1,6 +1,7 @@
#include "common.h"
#include "effects_internal.h"
extern Gfx D_09000940_359CF0[];
extern Gfx D_090009A0_359D50[];
extern Gfx D_09000A80_359E30[];
@ -73,55 +74,55 @@ void shockwave_main(s32 arg0, f32 arg1, f32 arg2, f32 arg3) {
} else {
part->unk_28 = 30;
}
part->unk_38 = 255;
part->alpha = 255;
part->unk_2C = 0;
part->unk_00 = arg0;
part->unk_04 = arg1;
part->unk_08 = arg2;
part->unk_0C = arg3;
part->pos.x = arg1;
part->pos.y = arg2;
part->pos.z = 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;
part->prim.r = 0;
part->prim.g = 255;
part->prim.b = 122;
part->env.r = 240;
part->env.g = 255;
part->env.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;
part->prim.r = 125;
part->prim.g = 120;
part->prim.b = 100;
part->env.r = 255;
part->env.g = 255;
part->env.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;
part->prim.r = 220;
part->prim.g = 210;
part->prim.b = 200;
part->env.r = 255;
part->env.g = 255;
part->env.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;
part->prim.r = 225;
part->prim.g = 204;
part->prim.b = 93;
part->env.r = 232;
part->env.g = 231;
part->env.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;
part->prim.r = 208;
part->prim.g = 136;
part->prim.b = 40;
part->env.r = 216;
part->env.g = 169;
part->env.b = 65;
break;
}
@ -165,12 +166,12 @@ void shockwave_update(EffectInstance* effect) {
case 0:
case 1:
if (unk_2C >= 8) {
part->unk_38 *= 0.8;
part->alpha *= 0.8;
}
break;
default:
if (unk_2C >= 8) {
part->unk_38 *= 0.94;
part->alpha *= 0.94;
}
break;
}
@ -180,9 +181,9 @@ void shockwave_update(EffectInstance* effect) {
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->pos.x = 0.0f;
part->pos.y = 0.0f;
part->pos.z = 0.0f;
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;
@ -264,4 +265,96 @@ void shockwave_render(EffectInstance* effect) {
retTask->renderMode |= RENDER_TASK_FLAG_2;
}
INCLUDE_ASM(s32, "effects/shockwave", shockwave_appendGfx);
void shockwave_appendGfx(void* effect) {
ShockwaveFXData* data = ((EffectInstance*) effect)->data.shockwave;
Matrix4f sp20, sp60;
Gfx* dlist = D_09000940_359CF0;
Gfx* dlist2;
s32 primA;
s32 primR, primG, primB;
s32 envR, envG, envB;
s32 primR2, primG2, primB2;
s32 envR2, envG2, envB2;
Gfx* savedGfxPos;
Gfx* savedGfxPos2;
s32 temp_v0;
s32 i;
primR = data->prim.r;
primG = data->prim.g;
primB = data->prim.b;
envR = data->env.r;
envG = data->env.g;
envB = data->env.b;
primR2 = data->prim.r;
primG2 = data->prim.g;
primB2 = data->prim.b;
envR2 = data->env.r;
envG2 = data->env.g;
envB2 = data->env.b;
temp_v0 = data->unk_00;
dlist2 = D_E004AE60[temp_v0];
if (temp_v0 >= 2) {
primR2 = primR >> 2;
primG2 = primG >> 2;
primB2 = primB >> 2;
envR2 = envR >> 2;
envG2 = envG >> 2;
envB2 = envB >> 2;
}
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
gSPDisplayList(gMasterGfxPos++, dlist2);
shim_guPositionF(sp20, 0.0f, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f,
data->pos.x, data->pos.y, data->pos.z);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
primA = data->alpha;
savedGfxPos = gMasterGfxPos;
gMasterGfxPos++;
savedGfxPos2 = gMasterGfxPos;
data++;
for (i = 1; i < ((EffectInstance*) effect)->numParts; i++, data++) {
if (data->unk_4C >= 0) {
shim_guTranslateF(sp20, data->pos.x, data->pos.y, data->pos.z);
shim_guRotateF(sp60, data->unk_34, 0.0f, 0.0f, 1.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guScaleF(sp60, data->unk_1C * 0.3, data->unk_20 * 0.3, data->unk_24 * 0.3);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guRotateF(sp60, data->unk_30, 0.0f, 1.0f, 0.0f);
shim_guMtxCatF(sp60, sp20, sp20);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gDPSetTileSize(gMasterGfxPos++, G_TX_RENDERTILE, 0, (s32) data->unk_3C, 0x00FC, (s32) data->unk_3C + 0x7C);
gDPSetTileSize(gMasterGfxPos++, 1, 0, (s32) data->unk_44, 0x007C, (s32) data->unk_44 + 0x7C);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, dlist);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}
}
gSPEndDisplayList(gMasterGfxPos++);
gSPBranchList(savedGfxPos, gMasterGfxPos);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, primR2, primG2, primB2, primA);
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, primA);
gDPSetEnvColor(gMasterGfxPos++, envR, envG, envB, 0);
gSPClearGeometryMode(gMasterGfxPos++, G_CULL_BOTH);
gSPSetGeometryMode(gMasterGfxPos++, G_CULL_BACK);
gSPDisplayList(gMasterGfxPos++, savedGfxPos2);
gDPSetColorDither(gMasterGfxPos++, G_CD_DISABLE);
gDPSetAlphaDither(gMasterGfxPos++, G_AD_DISABLE);
gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW);
}

View File

@ -15,19 +15,76 @@ Gfx* D_E0122B90[] = {
Gfx* D_E0122BA0[] = { D_09005440_4126D0 };
Gfx* D_E0122BA4[] = { D_09004E00_412090 };
s32 D_E0122BA8[] = {
0x006400FF, 0x00C800FF, 0x012C00FF, 0x019000FF, 0x01F400F5, 0x025800EB,
0x02BC00E1, 0x032000D7, 0x038400CD, 0x03E800C3, 0x044C00B9, 0x04B000AF,
0x051400A5, 0x0578009B, 0x05DC0091, 0x06400087, 0x06A4007D, 0x07080073,
0x076C0069, 0x07D0005F, 0x08340055, 0x0898004B, 0x08FC0041, 0x09600037,
0x09C4002D, 0x0A28001E, 0x0A8C0014, 0x0AF0000A, 0x0B540005, 0x0BB80000
typedef struct UnkStarSpiritsEnergy {
/* 0x00 */ u16 unk_00;
/* 0x02 */ char unk_02;
/* 0x02 */ u8 unk_03;
} UnkStarSpiritsEnergy; // size = 0x4
UnkStarSpiritsEnergy D_E0122BA8[] = {
{ 100, 0, 255 },
{ 200, 0, 255 },
{ 300, 0, 255 },
{ 400, 0, 255 },
{ 500, 0, 245 },
{ 600, 0, 235 },
{ 700, 0, 225 },
{ 800, 0, 215 },
{ 900, 0, 205 },
{ 1000, 0, 195 },
{ 1100, 0, 185 },
{ 1200, 0, 175 },
{ 1300, 0, 165 },
{ 1400, 0, 155 },
{ 1500, 0, 145 },
{ 1600, 0, 135 },
{ 1700, 0, 125 },
{ 1800, 0, 115 },
{ 1900, 0, 105 },
{ 2000, 0, 95 },
{ 2100, 0, 85 },
{ 2200, 0, 75 },
{ 2300, 0, 65 },
{ 2400, 0, 55 },
{ 2500, 0, 45 },
{ 2600, 0, 30 },
{ 2700, 0, 20 },
{ 2800, 0, 10 },
{ 2900, 0, 5 },
{ 3000, 0, 0 },
};
s32 D_E0122C20[] = {
0x0BB80000, 0x0B540005, 0x0AF0000A, 0x0A8C0014, 0x0A28001E, 0x09C4002D, 0x09600037, 0x08FC0041,
0x0898004B, 0x08340055, 0x07D0005F, 0x076C0069, 0x07080073, 0x06A4007D, 0x06400087, 0x05DC0091,
0x0578009B, 0x051400A5, 0x04B000AF, 0x044C00B9, 0x03E800C3, 0x038400CD, 0x032000D7, 0x02BC00E1,
0x025800EB, 0x01F400F5, 0x019000FF, 0x012C00FF, 0x00C800FF, 0x006400FF, 0x00000000, 0x00000000
UnkStarSpiritsEnergy D_E0122C20[] = {
{ 3000, 0, 0 },
{ 2900, 0, 5 },
{ 2800, 0, 10 },
{ 2700, 0, 20 },
{ 2600, 0, 30 },
{ 2500, 0, 45 },
{ 2400, 0, 55 },
{ 2300, 0, 65 },
{ 2200, 0, 75 },
{ 2100, 0, 85 },
{ 2000, 0, 95 },
{ 1900, 0, 105 },
{ 1800, 0, 115 },
{ 1700, 0, 125 },
{ 1600, 0, 135 },
{ 1500, 0, 145 },
{ 1400, 0, 155 },
{ 1300, 0, 165 },
{ 1200, 0, 175 },
{ 1100, 0, 185 },
{ 1000, 0, 195 },
{ 900, 0, 205 },
{ 800, 0, 215 },
{ 700, 0, 225 },
{ 600, 0, 235 },
{ 500, 0, 245 },
{ 400, 0, 255 },
{ 300, 0, 255 },
{ 200, 0, 255 },
{ 100, 0, 255 },
};
void star_spirits_energy_init(EffectInstance* effect);
@ -124,11 +181,11 @@ void star_spirits_energy_appendGfx(void* effect) {
gDPPipeSync(gMasterGfxPos++);
gSPSegment(gMasterGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));
shim_guPositionF(sp20, 0.0f, -gCameras[gCurrentCameraID].currentYaw, 0.0f,
shim_guPositionF(sp20, 0.0f, -gCameras[gCurrentCameraID].currentYaw, 0.0f,
data->unk_3C, data->unk_08, data->unk_0C, data->unk_10);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gMasterGfxPos++, D_E0122BA4[0]);
gDPSetEnvColor(gMasterGfxPos++, data->unk_2C, data->unk_30, data->unk_34, data->unk_38);
@ -139,7 +196,7 @@ void star_spirits_energy_appendGfx(void* effect) {
shim_guPositionF(sp20, 0.0f, 0.0f, 0.0f, data->unk_40[i], 0.0f, 0.0f, 0.0f);
shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++],
G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
gDPSetPrimColor(gMasterGfxPos++, 0, 0, data->unk_1C, data->unk_20, data->unk_24, data->unk_50[i]);
gSPDisplayList(gMasterGfxPos++, D_E0122B90[i]);

View File

@ -1,18 +0,0 @@
.include "macro.inc"
.section .data
dlabel D_E011AC20
.word 0x09001800
dlabel D_E011AC24
.word 0x090019A0, 0x09001A18, 0x09001A90, 0x09001B08, 0x09001B80, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
dlabel D_E011AC4C
.word 0x0F0F0F0F, 0x0F234B64, 0x64646400
dlabel D_E011AC58
.byte 0x64, 0x64, 0x64, 0x64, 0x64, 0x5A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00
dlabel D_E011AC64
.byte 0x00, 0xFF, 0xFD, 0xFC, 0xFC, 0x04, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00

View File

@ -1,131 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel explosion_main
/* 343680 E0032000 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 343684 E0032004 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 343688 E0032008 4485A000 */ mtc1 $a1, $f20
/* 34368C E003200C AFB1002C */ sw $s1, 0x2c($sp)
/* 343690 E0032010 0080882D */ daddu $s1, $a0, $zero
/* 343694 E0032014 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 343698 E0032018 4486B000 */ mtc1 $a2, $f22
/* 34369C E003201C 27A40010 */ addiu $a0, $sp, 0x10
/* 3436A0 E0032020 F7B80048 */ sdc1 $f24, 0x48($sp)
/* 3436A4 E0032024 4487C000 */ mtc1 $a3, $f24
/* 3436A8 E0032028 3C02E003 */ lui $v0, %hi(explosion_init)
/* 3436AC E003202C 244221D0 */ addiu $v0, $v0, %lo(explosion_init)
/* 3436B0 E0032030 AFBF0030 */ sw $ra, 0x30($sp)
/* 3436B4 E0032034 AFB00028 */ sw $s0, 0x28($sp)
/* 3436B8 E0032038 AFA00010 */ sw $zero, 0x10($sp)
/* 3436BC E003203C AC820008 */ sw $v0, 8($a0)
/* 3436C0 E0032040 3C02E003 */ lui $v0, %hi(explosion_update)
/* 3436C4 E0032044 244221D8 */ addiu $v0, $v0, %lo(explosion_update)
/* 3436C8 E0032048 AC82000C */ sw $v0, 0xc($a0)
/* 3436CC E003204C 3C02E003 */ lui $v0, %hi(explosion_render)
/* 3436D0 E0032050 24422420 */ addiu $v0, $v0, %lo(explosion_render)
/* 3436D4 E0032054 AC820010 */ sw $v0, 0x10($a0)
/* 3436D8 E0032058 24020019 */ addiu $v0, $zero, 0x19
/* 3436DC E003205C AC800014 */ sw $zero, 0x14($a0)
/* 3436E0 E0032060 0C080124 */ jal shim_create_effect_instance
/* 3436E4 E0032064 AC820004 */ sw $v0, 4($a0)
/* 3436E8 E0032068 240400B4 */ addiu $a0, $zero, 0xb4
/* 3436EC E003206C 24030003 */ addiu $v1, $zero, 3
/* 3436F0 E0032070 0040802D */ daddu $s0, $v0, $zero
/* 3436F4 E0032074 0C08012C */ jal shim_general_heap_malloc
/* 3436F8 E0032078 AE030008 */ sw $v1, 8($s0)
/* 3436FC E003207C 0040182D */ daddu $v1, $v0, $zero
/* 343700 E0032080 14600003 */ bnez $v1, .LE0032090
/* 343704 E0032084 AE03000C */ sw $v1, 0xc($s0)
.LE0032088:
/* 343708 E0032088 0800C822 */ j .LE0032088
/* 34370C E003208C 00000000 */ nop
.LE0032090:
/* 343710 E0032090 2402003C */ addiu $v0, $zero, 0x3c
/* 343714 E0032094 E4740004 */ swc1 $f20, 4($v1)
/* 343718 E0032098 E4760008 */ swc1 $f22, 8($v1)
/* 34371C E003209C E478000C */ swc1 $f24, 0xc($v1)
/* 343720 E00320A0 AC600034 */ sw $zero, 0x34($v1)
/* 343724 E00320A4 AC620030 */ sw $v0, 0x30($v1)
/* 343728 E00320A8 AC710000 */ sw $s1, ($v1)
/* 34372C E00320AC 00621821 */ addu $v1, $v1, $v0
/* 343730 E00320B0 16200003 */ bnez $s1, .LE00320C0
/* 343734 E00320B4 AC710000 */ sw $s1, ($v1)
/* 343738 E00320B8 2402FFFF */ addiu $v0, $zero, -1
/* 34373C E00320BC AC620000 */ sw $v0, ($v1)
.LE00320C0:
/* 343740 E00320C0 24020001 */ addiu $v0, $zero, 1
/* 343744 E00320C4 16220005 */ bne $s1, $v0, .LE00320DC
/* 343748 E00320C8 AC600038 */ sw $zero, 0x38($v1)
/* 34374C E00320CC 3C013F80 */ lui $at, 0x3f80
/* 343750 E00320D0 44810000 */ mtc1 $at, $f0
/* 343754 E00320D4 0800C83C */ j .LE00320F0
/* 343758 E00320D8 E4600020 */ swc1 $f0, 0x20($v1)
.LE00320DC:
/* 34375C E00320DC 3C014040 */ lui $at, 0x4040
/* 343760 E00320E0 44810000 */ mtc1 $at, $f0
/* 343764 E00320E4 00000000 */ nop
/* 343768 E00320E8 E4600020 */ swc1 $f0, 0x20($v1)
/* 34376C E00320EC 24020001 */ addiu $v0, $zero, 1
.LE00320F0:
/* 343770 E00320F0 16220005 */ bne $s1, $v0, .LE0032108
/* 343774 E00320F4 00000000 */ nop
/* 343778 E00320F8 3C013F80 */ lui $at, 0x3f80
/* 34377C E00320FC 44810000 */ mtc1 $at, $f0
/* 343780 E0032100 0800C846 */ j .LE0032118
/* 343784 E0032104 E4600024 */ swc1 $f0, 0x24($v1)
.LE0032108:
/* 343788 E0032108 3C014040 */ lui $at, 0x4040
/* 34378C E003210C 44810000 */ mtc1 $at, $f0
/* 343790 E0032110 00000000 */ nop
/* 343794 E0032114 E4600024 */ swc1 $f0, 0x24($v1)
.LE0032118:
/* 343798 E0032118 2463003C */ addiu $v1, $v1, 0x3c
/* 34379C E003211C 240200FF */ addiu $v0, $zero, 0xff
/* 3437A0 E0032120 AC710000 */ sw $s1, ($v1)
/* 3437A4 E0032124 12200006 */ beqz $s1, .LE0032140
/* 3437A8 E0032128 AC620038 */ sw $v0, 0x38($v1)
/* 3437AC E003212C 24020001 */ addiu $v0, $zero, 1
/* 3437B0 E0032130 1222000B */ beq $s1, $v0, .LE0032160
/* 3437B4 E0032134 00000000 */ nop
/* 3437B8 E0032138 0800C860 */ j .LE0032180
/* 3437BC E003213C 00000000 */ nop
.LE0032140:
/* 3437C0 E0032140 3C01411E */ lui $at, 0x411e
/* 3437C4 E0032144 34216666 */ ori $at, $at, 0x6666
/* 3437C8 E0032148 44810000 */ mtc1 $at, $f0
/* 3437CC E003214C 3C013FCC */ lui $at, 0x3fcc
/* 3437D0 E0032150 3421CCCD */ ori $at, $at, 0xcccd
/* 3437D4 E0032154 44811000 */ mtc1 $at, $f2
/* 3437D8 E0032158 0800C867 */ j .LE003219C
/* 3437DC E003215C E4600020 */ swc1 $f0, 0x20($v1)
.LE0032160:
/* 3437E0 E0032160 3C01415E */ lui $at, 0x415e
/* 3437E4 E0032164 34216666 */ ori $at, $at, 0x6666
/* 3437E8 E0032168 44810000 */ mtc1 $at, $f0
/* 3437EC E003216C 3C014019 */ lui $at, 0x4019
/* 3437F0 E0032170 3421999A */ ori $at, $at, 0x999a
/* 3437F4 E0032174 44811000 */ mtc1 $at, $f2
/* 3437F8 E0032178 0800C867 */ j .LE003219C
/* 3437FC E003217C E4600020 */ swc1 $f0, 0x20($v1)
.LE0032180:
/* 343800 E0032180 3C01418E */ lui $at, 0x418e
/* 343804 E0032184 34216666 */ ori $at, $at, 0x6666
/* 343808 E0032188 44810000 */ mtc1 $at, $f0
/* 34380C E003218C 3C01404C */ lui $at, 0x404c
/* 343810 E0032190 3421CCCD */ ori $at, $at, 0xcccd
/* 343814 E0032194 44811000 */ mtc1 $at, $f2
/* 343818 E0032198 E4600020 */ swc1 $f0, 0x20($v1)
.LE003219C:
/* 34381C E003219C E4620024 */ swc1 $f2, 0x24($v1)
/* 343820 E00321A0 3C0141F0 */ lui $at, 0x41f0
/* 343824 E00321A4 44810000 */ mtc1 $at, $f0
/* 343828 E00321A8 AC600028 */ sw $zero, 0x28($v1)
/* 34382C E00321AC E460002C */ swc1 $f0, 0x2c($v1)
/* 343830 E00321B0 8FBF0030 */ lw $ra, 0x30($sp)
/* 343834 E00321B4 8FB1002C */ lw $s1, 0x2c($sp)
/* 343838 E00321B8 8FB00028 */ lw $s0, 0x28($sp)
/* 34383C E00321BC D7B80048 */ ldc1 $f24, 0x48($sp)
/* 343840 E00321C0 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 343844 E00321C4 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 343848 E00321C8 03E00008 */ jr $ra
/* 34384C E00321CC 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,360 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel lightning_appendGfx
/* 36E7B8 E006C5E8 27BDFF18 */ addiu $sp, $sp, -0xe8
/* 36E7BC E006C5EC 3C05DB06 */ lui $a1, 0xdb06
/* 36E7C0 E006C5F0 AFB400C0 */ sw $s4, 0xc0($sp)
/* 36E7C4 E006C5F4 3C14800A */ lui $s4, %hi(gMasterGfxPos)
/* 36E7C8 E006C5F8 2694A66C */ addiu $s4, $s4, %lo(gMasterGfxPos)
/* 36E7CC E006C5FC AFBF00D4 */ sw $ra, 0xd4($sp)
/* 36E7D0 E006C600 AFBE00D0 */ sw $fp, 0xd0($sp)
/* 36E7D4 E006C604 AFB700CC */ sw $s7, 0xcc($sp)
/* 36E7D8 E006C608 AFB600C8 */ sw $s6, 0xc8($sp)
/* 36E7DC E006C60C AFB500C4 */ sw $s5, 0xc4($sp)
/* 36E7E0 E006C610 AFB300BC */ sw $s3, 0xbc($sp)
/* 36E7E4 E006C614 AFB200B8 */ sw $s2, 0xb8($sp)
/* 36E7E8 E006C618 AFB100B4 */ sw $s1, 0xb4($sp)
/* 36E7EC E006C61C AFB000B0 */ sw $s0, 0xb0($sp)
/* 36E7F0 E006C620 F7B600E0 */ sdc1 $f22, 0xe0($sp)
/* 36E7F4 E006C624 F7B400D8 */ sdc1 $f20, 0xd8($sp)
/* 36E7F8 E006C628 8E860000 */ lw $a2, ($s4)
/* 36E7FC E006C62C 8C93000C */ lw $s3, 0xc($a0)
/* 36E800 E006C630 00C0182D */ daddu $v1, $a2, $zero
/* 36E804 E006C634 8E750000 */ lw $s5, ($s3)
/* 36E808 E006C638 24C60008 */ addiu $a2, $a2, 8
/* 36E80C E006C63C AE860000 */ sw $a2, ($s4)
/* 36E810 E006C640 8E670018 */ lw $a3, 0x18($s3)
/* 36E814 E006C644 00151080 */ sll $v0, $s5, 2
/* 36E818 E006C648 3C0AE007 */ lui $t2, %hi(D_E006CB60)
/* 36E81C E006C64C 01425021 */ addu $t2, $t2, $v0
/* 36E820 E006C650 8D4ACB60 */ lw $t2, %lo(D_E006CB60)($t2)
/* 36E824 E006C654 34A50024 */ ori $a1, $a1, 0x24
/* 36E828 E006C658 AFAA00A4 */ sw $t2, 0xa4($sp)
/* 36E82C E006C65C 3C08E007 */ lui $t0, %hi(D_E006CB78)
/* 36E830 E006C660 01024021 */ addu $t0, $t0, $v0
/* 36E834 E006C664 8D08CB78 */ lw $t0, %lo(D_E006CB78)($t0)
/* 36E838 E006C668 3C02E700 */ lui $v0, 0xe700
/* 36E83C E006C66C AC620000 */ sw $v0, ($v1)
/* 36E840 E006C670 AC600004 */ sw $zero, 4($v1)
/* 36E844 E006C674 ACC50000 */ sw $a1, ($a2)
/* 36E848 E006C678 8C830010 */ lw $v1, 0x10($a0)
/* 36E84C E006C67C 24C20008 */ addiu $v0, $a2, 8
/* 36E850 E006C680 AE820000 */ sw $v0, ($s4)
/* 36E854 E006C684 8C62001C */ lw $v0, 0x1c($v1)
/* 36E858 E006C688 3C038000 */ lui $v1, 0x8000
/* 36E85C E006C68C 00431021 */ addu $v0, $v0, $v1
/* 36E860 E006C690 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 36E864 E006C694 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 36E868 E006C698 3C04800B */ lui $a0, %hi(gCameras)
/* 36E86C E006C69C 24841D80 */ addiu $a0, $a0, %lo(gCameras)
/* 36E870 E006C6A0 ACC20004 */ sw $v0, 4($a2)
/* 36E874 E006C6A4 00031080 */ sll $v0, $v1, 2
/* 36E878 E006C6A8 00431021 */ addu $v0, $v0, $v1
/* 36E87C E006C6AC 00021080 */ sll $v0, $v0, 2
/* 36E880 E006C6B0 00431023 */ subu $v0, $v0, $v1
/* 36E884 E006C6B4 000218C0 */ sll $v1, $v0, 3
/* 36E888 E006C6B8 00431021 */ addu $v0, $v0, $v1
/* 36E88C E006C6BC 000210C0 */ sll $v0, $v0, 3
/* 36E890 E006C6C0 00441821 */ addu $v1, $v0, $a0
/* 36E894 E006C6C4 24020001 */ addiu $v0, $zero, 1
/* 36E898 E006C6C8 16A20004 */ bne $s5, $v0, .LE006C6DC
/* 36E89C E006C6CC 3C02DE00 */ lui $v0, 0xde00
/* 36E8A0 E006C6D0 28E20012 */ slti $v0, $a3, 0x12
/* 36E8A4 E006C6D4 14400111 */ bnez $v0, .LE006CB1C
/* 36E8A8 E006C6D8 3C02DE00 */ lui $v0, 0xde00
.LE006C6DC:
/* 36E8AC E006C6DC ACC20008 */ sw $v0, 8($a2)
/* 36E8B0 E006C6E0 ACC8000C */ sw $t0, 0xc($a2)
/* 36E8B4 E006C6E4 C666001C */ lwc1 $f6, 0x1c($s3)
/* 36E8B8 E006C6E8 3C014080 */ lui $at, 0x4080
/* 36E8BC E006C6EC 44814000 */ mtc1 $at, $f8
/* 36E8C0 E006C6F0 00000000 */ nop
/* 36E8C4 E006C6F4 46083182 */ mul.s $f6, $f6, $f8
/* 36E8C8 E006C6F8 00000000 */ nop
/* 36E8CC E006C6FC C6640020 */ lwc1 $f4, 0x20($s3)
/* 36E8D0 E006C700 46082102 */ mul.s $f4, $f4, $f8
/* 36E8D4 E006C704 00000000 */ nop
/* 36E8D8 E006C708 C6620024 */ lwc1 $f2, 0x24($s3)
/* 36E8DC E006C70C 46081082 */ mul.s $f2, $f2, $f8
/* 36E8E0 E006C710 00000000 */ nop
/* 36E8E4 E006C714 24C20010 */ addiu $v0, $a2, 0x10
/* 36E8E8 E006C718 AE820000 */ sw $v0, ($s4)
/* 36E8EC E006C71C C6600028 */ lwc1 $f0, 0x28($s3)
/* 36E8F0 E006C720 46080002 */ mul.s $f0, $f0, $f8
/* 36E8F4 E006C724 00000000 */ nop
/* 36E8F8 E006C728 2AA20003 */ slti $v0, $s5, 3
/* 36E8FC E006C72C 4600328D */ trunc.w.s $f10, $f6
/* 36E900 E006C730 44165000 */ mfc1 $s6, $f10
/* 36E904 E006C734 4600228D */ trunc.w.s $f10, $f4
/* 36E908 E006C738 44175000 */ mfc1 $s7, $f10
/* 36E90C E006C73C 4600128D */ trunc.w.s $f10, $f2
/* 36E910 E006C740 441E5000 */ mfc1 $fp, $f10
/* 36E914 E006C744 4600028D */ trunc.w.s $f10, $f0
/* 36E918 E006C748 E7AA00A8 */ swc1 $f10, 0xa8($sp)
/* 36E91C E006C74C 10400057 */ beqz $v0, .LE006C8AC
/* 36E920 E006C750 27A40020 */ addiu $a0, $sp, 0x20
/* 36E924 E006C754 06A00056 */ bltz $s5, .LE006C8B0
/* 36E928 E006C758 3C120001 */ lui $s2, 1
/* 36E92C E006C75C 27A500A0 */ addiu $a1, $sp, 0xa0
/* 36E930 E006C760 3C0641F0 */ lui $a2, 0x41f0
/* 36E934 E006C764 8462000A */ lh $v0, 0xa($v1)
/* 36E938 E006C768 8463000C */ lh $v1, 0xc($v1)
/* 36E93C E006C76C 3C014680 */ lui $at, 0x4680
/* 36E940 E006C770 44811000 */ mtc1 $at, $f2
/* 36E944 E006C774 3C013F80 */ lui $at, 0x3f80
/* 36E948 E006C778 44812000 */ mtc1 $at, $f4
/* 36E94C E006C77C 44823000 */ mtc1 $v0, $f6
/* 36E950 E006C780 00000000 */ nop
/* 36E954 E006C784 468031A0 */ cvt.s.w $f6, $f6
/* 36E958 E006C788 44830000 */ mtc1 $v1, $f0
/* 36E95C E006C78C 00000000 */ nop
/* 36E960 E006C790 46800020 */ cvt.s.w $f0, $f0
/* 36E964 E006C794 46003183 */ div.s $f6, $f6, $f0
/* 36E968 E006C798 44073000 */ mfc1 $a3, $f6
/* 36E96C E006C79C 36521630 */ ori $s2, $s2, 0x1630
/* 36E970 E006C7A0 E7A80010 */ swc1 $f8, 0x10($sp)
/* 36E974 E006C7A4 E7A20014 */ swc1 $f2, 0x14($sp)
/* 36E978 E006C7A8 0C080160 */ jal shim_guPerspectiveF
/* 36E97C E006C7AC E7A40018 */ swc1 $f4, 0x18($sp)
/* 36E980 E006C7B0 27A40020 */ addiu $a0, $sp, 0x20
/* 36E984 E006C7B4 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 36E988 E006C7B8 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 36E98C E006C7BC 3C11800A */ lui $s1, %hi(gDisplayContext)
/* 36E990 E006C7C0 2631A674 */ addiu $s1, $s1, %lo(gDisplayContext)
/* 36E994 E006C7C4 96050000 */ lhu $a1, ($s0)
/* 36E998 E006C7C8 8E220000 */ lw $v0, ($s1)
/* 36E99C E006C7CC 00052980 */ sll $a1, $a1, 6
/* 36E9A0 E006C7D0 00B22821 */ addu $a1, $a1, $s2
/* 36E9A4 E006C7D4 0C080118 */ jal shim_guMtxF2L
/* 36E9A8 E006C7D8 00452821 */ addu $a1, $v0, $a1
/* 36E9AC E006C7DC 3C02DA38 */ lui $v0, 0xda38
/* 36E9B0 E006C7E0 34420007 */ ori $v0, $v0, 7
/* 36E9B4 E006C7E4 27A40020 */ addiu $a0, $sp, 0x20
/* 36E9B8 E006C7E8 8E880000 */ lw $t0, ($s4)
/* 36E9BC E006C7EC 3C07C3FA */ lui $a3, 0xc3fa
/* 36E9C0 E006C7F0 96090000 */ lhu $t1, ($s0)
/* 36E9C4 E006C7F4 0100282D */ daddu $a1, $t0, $zero
/* 36E9C8 E006C7F8 ACA20000 */ sw $v0, ($a1)
/* 36E9CC E006C7FC 3122FFFF */ andi $v0, $t1, 0xffff
/* 36E9D0 E006C800 00021180 */ sll $v0, $v0, 6
/* 36E9D4 E006C804 00521021 */ addu $v0, $v0, $s2
/* 36E9D8 E006C808 8E230000 */ lw $v1, ($s1)
/* 36E9DC E006C80C 25080008 */ addiu $t0, $t0, 8
/* 36E9E0 E006C810 00621821 */ addu $v1, $v1, $v0
/* 36E9E4 E006C814 ACA30004 */ sw $v1, 4($a1)
/* 36E9E8 E006C818 8E650004 */ lw $a1, 4($s3)
/* 36E9EC E006C81C 8E660008 */ lw $a2, 8($s3)
/* 36E9F0 E006C820 25290001 */ addiu $t1, $t1, 1
/* 36E9F4 E006C824 AE880000 */ sw $t0, ($s4)
/* 36E9F8 E006C828 0C080108 */ jal shim_guTranslateF
/* 36E9FC E006C82C A6090000 */ sh $t1, ($s0)
/* 36EA00 E006C830 27A40020 */ addiu $a0, $sp, 0x20
/* 36EA04 E006C834 96050000 */ lhu $a1, ($s0)
/* 36EA08 E006C838 8E220000 */ lw $v0, ($s1)
/* 36EA0C E006C83C 00052980 */ sll $a1, $a1, 6
/* 36EA10 E006C840 00B22821 */ addu $a1, $a1, $s2
/* 36EA14 E006C844 0C080118 */ jal shim_guMtxF2L
/* 36EA18 E006C848 00452821 */ addu $a1, $v0, $a1
/* 36EA1C E006C84C 3C03DA38 */ lui $v1, 0xda38
/* 36EA20 E006C850 34630002 */ ori $v1, $v1, 2
/* 36EA24 E006C854 3C06FF2F */ lui $a2, 0xff2f
/* 36EA28 E006C858 34C6C6FF */ ori $a2, $a2, 0xc6ff
/* 36EA2C E006C85C 8E840000 */ lw $a0, ($s4)
/* 36EA30 E006C860 96020000 */ lhu $v0, ($s0)
/* 36EA34 E006C864 0080282D */ daddu $a1, $a0, $zero
/* 36EA38 E006C868 24840008 */ addiu $a0, $a0, 8
/* 36EA3C E006C86C AE840000 */ sw $a0, ($s4)
/* 36EA40 E006C870 ACA30000 */ sw $v1, ($a1)
/* 36EA44 E006C874 24430001 */ addiu $v1, $v0, 1
/* 36EA48 E006C878 3042FFFF */ andi $v0, $v0, 0xffff
/* 36EA4C E006C87C 00021180 */ sll $v0, $v0, 6
/* 36EA50 E006C880 A6030000 */ sh $v1, ($s0)
/* 36EA54 E006C884 8E230000 */ lw $v1, ($s1)
/* 36EA58 E006C888 00521021 */ addu $v0, $v0, $s2
/* 36EA5C E006C88C 00621821 */ addu $v1, $v1, $v0
/* 36EA60 E006C890 24820008 */ addiu $v0, $a0, 8
/* 36EA64 E006C894 ACA30004 */ sw $v1, 4($a1)
/* 36EA68 E006C898 AE820000 */ sw $v0, ($s4)
/* 36EA6C E006C89C 3C02FA00 */ lui $v0, 0xfa00
/* 36EA70 E006C8A0 AC820000 */ sw $v0, ($a0)
/* 36EA74 E006C8A4 0801B27A */ j .LE006C9E8
/* 36EA78 E006C8A8 AC860004 */ sw $a2, 4($a0)
.LE006C8AC:
/* 36EA7C E006C8AC 3C120001 */ lui $s2, 1
.LE006C8B0:
/* 36EA80 E006C8B0 8E650004 */ lw $a1, 4($s3)
/* 36EA84 E006C8B4 8E660008 */ lw $a2, 8($s3)
/* 36EA88 E006C8B8 8E67000C */ lw $a3, 0xc($s3)
/* 36EA8C E006C8BC 0C080108 */ jal shim_guTranslateF
/* 36EA90 E006C8C0 36521630 */ ori $s2, $s2, 0x1630
/* 36EA94 E006C8C4 27B00060 */ addiu $s0, $sp, 0x60
/* 36EA98 E006C8C8 4480A000 */ mtc1 $zero, $f20
/* 36EA9C E006C8CC 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 36EAA0 E006C8D0 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 36EAA4 E006C8D4 3C013F80 */ lui $at, 0x3f80
/* 36EAA8 E006C8D8 4481B000 */ mtc1 $at, $f22
/* 36EAAC E006C8DC 00031080 */ sll $v0, $v1, 2
/* 36EAB0 E006C8E0 00431021 */ addu $v0, $v0, $v1
/* 36EAB4 E006C8E4 00021080 */ sll $v0, $v0, 2
/* 36EAB8 E006C8E8 00431023 */ subu $v0, $v0, $v1
/* 36EABC E006C8EC 000218C0 */ sll $v1, $v0, 3
/* 36EAC0 E006C8F0 00431021 */ addu $v0, $v0, $v1
/* 36EAC4 E006C8F4 000210C0 */ sll $v0, $v0, 3
/* 36EAC8 E006C8F8 4406A000 */ mfc1 $a2, $f20
/* 36EACC E006C8FC 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 36EAD0 E006C900 00220821 */ addu $at, $at, $v0
/* 36EAD4 E006C904 C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 36EAD8 E006C908 4407B000 */ mfc1 $a3, $f22
/* 36EADC E006C90C 46000007 */ neg.s $f0, $f0
/* 36EAE0 E006C910 44050000 */ mfc1 $a1, $f0
/* 36EAE4 E006C914 0200202D */ daddu $a0, $s0, $zero
/* 36EAE8 E006C918 0C080104 */ jal shim_guRotateF
/* 36EAEC E006C91C E7B40010 */ swc1 $f20, 0x10($sp)
/* 36EAF0 E006C920 0200202D */ daddu $a0, $s0, $zero
/* 36EAF4 E006C924 27A50020 */ addiu $a1, $sp, 0x20
/* 36EAF8 E006C928 0C080114 */ jal shim_guMtxCatF
/* 36EAFC E006C92C 00A0302D */ daddu $a2, $a1, $zero
/* 36EB00 E006C930 0200202D */ daddu $a0, $s0, $zero
/* 36EB04 E006C934 4405A000 */ mfc1 $a1, $f20
/* 36EB08 E006C938 4407B000 */ mfc1 $a3, $f22
/* 36EB0C E006C93C 0C080108 */ jal shim_guTranslateF
/* 36EB10 E006C940 00A0302D */ daddu $a2, $a1, $zero
/* 36EB14 E006C944 0200202D */ daddu $a0, $s0, $zero
/* 36EB18 E006C948 27A50020 */ addiu $a1, $sp, 0x20
/* 36EB1C E006C94C 0C080114 */ jal shim_guMtxCatF
/* 36EB20 E006C950 00A0302D */ daddu $a2, $a1, $zero
/* 36EB24 E006C954 27A40020 */ addiu $a0, $sp, 0x20
/* 36EB28 E006C958 3C108007 */ lui $s0, %hi(gMatrixListPos)
/* 36EB2C E006C95C 261041F0 */ addiu $s0, $s0, %lo(gMatrixListPos)
/* 36EB30 E006C960 3C11800A */ lui $s1, %hi(gDisplayContext)
/* 36EB34 E006C964 2631A674 */ addiu $s1, $s1, %lo(gDisplayContext)
/* 36EB38 E006C968 96050000 */ lhu $a1, ($s0)
/* 36EB3C E006C96C 8E220000 */ lw $v0, ($s1)
/* 36EB40 E006C970 00052980 */ sll $a1, $a1, 6
/* 36EB44 E006C974 00B22821 */ addu $a1, $a1, $s2
/* 36EB48 E006C978 0C080118 */ jal shim_guMtxF2L
/* 36EB4C E006C97C 00452821 */ addu $a1, $v0, $a1
/* 36EB50 E006C980 3C03DA38 */ lui $v1, 0xda38
/* 36EB54 E006C984 3C05800A */ lui $a1, %hi(gMasterGfxPos)
/* 36EB58 E006C988 24A5A66C */ addiu $a1, $a1, %lo(gMasterGfxPos)
/* 36EB5C E006C98C 34630002 */ ori $v1, $v1, 2
/* 36EB60 E006C990 8CA40000 */ lw $a0, ($a1)
/* 36EB64 E006C994 96020000 */ lhu $v0, ($s0)
/* 36EB68 E006C998 0080302D */ daddu $a2, $a0, $zero
/* 36EB6C E006C99C 24840008 */ addiu $a0, $a0, 8
/* 36EB70 E006C9A0 ACA40000 */ sw $a0, ($a1)
/* 36EB74 E006C9A4 ACC30000 */ sw $v1, ($a2)
/* 36EB78 E006C9A8 24430001 */ addiu $v1, $v0, 1
/* 36EB7C E006C9AC 3042FFFF */ andi $v0, $v0, 0xffff
/* 36EB80 E006C9B0 00021180 */ sll $v0, $v0, 6
/* 36EB84 E006C9B4 A6030000 */ sh $v1, ($s0)
/* 36EB88 E006C9B8 8E230000 */ lw $v1, ($s1)
/* 36EB8C E006C9BC 00521021 */ addu $v0, $v0, $s2
/* 36EB90 E006C9C0 00621821 */ addu $v1, $v1, $v0
/* 36EB94 E006C9C4 24820008 */ addiu $v0, $a0, 8
/* 36EB98 E006C9C8 ACC30004 */ sw $v1, 4($a2)
/* 36EB9C E006C9CC ACA20000 */ sw $v0, ($a1)
/* 36EBA0 E006C9D0 3C02FA00 */ lui $v0, 0xfa00
/* 36EBA4 E006C9D4 AC820000 */ sw $v0, ($a0)
/* 36EBA8 E006C9D8 92620013 */ lbu $v0, 0x13($s3)
/* 36EBAC E006C9DC 3C03FFFF */ lui $v1, 0xffff
/* 36EBB0 E006C9E0 00431025 */ or $v0, $v0, $v1
/* 36EBB4 E006C9E4 AC820004 */ sw $v0, 4($a0)
.LE006C9E8:
/* 36EBB8 E006C9E8 3C06D838 */ lui $a2, 0xd838
/* 36EBBC E006C9EC 3C08800A */ lui $t0, %hi(gMasterGfxPos)
/* 36EBC0 E006C9F0 2508A66C */ addiu $t0, $t0, %lo(gMasterGfxPos)
/* 36EBC4 E006C9F4 34C60002 */ ori $a2, $a2, 2
/* 36EBC8 E006C9F8 32C30FFF */ andi $v1, $s6, 0xfff
/* 36EBCC E006C9FC 00031B00 */ sll $v1, $v1, 0xc
/* 36EBD0 E006CA00 32E20FFF */ andi $v0, $s7, 0xfff
/* 36EBD4 E006CA04 3C05F200 */ lui $a1, 0xf200
/* 36EBD8 E006CA08 00451025 */ or $v0, $v0, $a1
/* 36EBDC E006CA0C 00621825 */ or $v1, $v1, $v0
/* 36EBE0 E006CA10 26C203FC */ addiu $v0, $s6, 0x3fc
/* 36EBE4 E006CA14 30420FFF */ andi $v0, $v0, 0xfff
/* 36EBE8 E006CA18 8D070000 */ lw $a3, ($t0)
/* 36EBEC E006CA1C 00021300 */ sll $v0, $v0, 0xc
/* 36EBF0 E006CA20 00E0202D */ daddu $a0, $a3, $zero
/* 36EBF4 E006CA24 24E70008 */ addiu $a3, $a3, 8
/* 36EBF8 E006CA28 AD070000 */ sw $a3, ($t0)
/* 36EBFC E006CA2C AC830000 */ sw $v1, ($a0)
/* 36EC00 E006CA30 26E3007C */ addiu $v1, $s7, 0x7c
/* 36EC04 E006CA34 30630FFF */ andi $v1, $v1, 0xfff
/* 36EC08 E006CA38 00431025 */ or $v0, $v0, $v1
/* 36EC0C E006CA3C AC820004 */ sw $v0, 4($a0)
/* 36EC10 E006CA40 24E20008 */ addiu $v0, $a3, 8
/* 36EC14 E006CA44 33C30FFF */ andi $v1, $fp, 0xfff
/* 36EC18 E006CA48 00031B00 */ sll $v1, $v1, 0xc
/* 36EC1C E006CA4C AD020000 */ sw $v0, ($t0)
/* 36EC20 E006CA50 8FAA00A8 */ lw $t2, 0xa8($sp)
/* 36EC24 E006CA54 3C040100 */ lui $a0, 0x100
/* 36EC28 E006CA58 31420FFF */ andi $v0, $t2, 0xfff
/* 36EC2C E006CA5C 00451025 */ or $v0, $v0, $a1
/* 36EC30 E006CA60 00621825 */ or $v1, $v1, $v0
/* 36EC34 E006CA64 27C203FC */ addiu $v0, $fp, 0x3fc
/* 36EC38 E006CA68 30420FFF */ andi $v0, $v0, 0xfff
/* 36EC3C E006CA6C 00021300 */ sll $v0, $v0, 0xc
/* 36EC40 E006CA70 ACE30000 */ sw $v1, ($a3)
/* 36EC44 E006CA74 2543007C */ addiu $v1, $t2, 0x7c
/* 36EC48 E006CA78 30630FFF */ andi $v1, $v1, 0xfff
/* 36EC4C E006CA7C 00641825 */ or $v1, $v1, $a0
/* 36EC50 E006CA80 00431025 */ or $v0, $v0, $v1
/* 36EC54 E006CA84 ACE20004 */ sw $v0, 4($a3)
/* 36EC58 E006CA88 24E20010 */ addiu $v0, $a3, 0x10
/* 36EC5C E006CA8C AD020000 */ sw $v0, ($t0)
/* 36EC60 E006CA90 3C02DE00 */ lui $v0, 0xde00
/* 36EC64 E006CA94 ACE20008 */ sw $v0, 8($a3)
/* 36EC68 E006CA98 24E20018 */ addiu $v0, $a3, 0x18
/* 36EC6C E006CA9C 8FAA00A4 */ lw $t2, 0xa4($sp)
/* 36EC70 E006CAA0 3C05E700 */ lui $a1, 0xe700
/* 36EC74 E006CAA4 ACEA000C */ sw $t2, 0xc($a3)
/* 36EC78 E006CAA8 AD020000 */ sw $v0, ($t0)
/* 36EC7C E006CAAC 24E20020 */ addiu $v0, $a3, 0x20
/* 36EC80 E006CAB0 ACE50010 */ sw $a1, 0x10($a3)
/* 36EC84 E006CAB4 ACE00014 */ sw $zero, 0x14($a3)
/* 36EC88 E006CAB8 AD020000 */ sw $v0, ($t0)
/* 36EC8C E006CABC 24020040 */ addiu $v0, $zero, 0x40
/* 36EC90 E006CAC0 ACE2001C */ sw $v0, 0x1c($a3)
/* 36EC94 E006CAC4 2AA20003 */ slti $v0, $s5, 3
/* 36EC98 E006CAC8 1040000E */ beqz $v0, .LE006CB04
/* 36EC9C E006CACC ACE60018 */ sw $a2, 0x18($a3)
/* 36ECA0 E006CAD0 3C04DA38 */ lui $a0, 0xda38
/* 36ECA4 E006CAD4 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 36ECA8 E006CAD8 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 36ECAC E006CADC 24E20028 */ addiu $v0, $a3, 0x28
/* 36ECB0 E006CAE0 AD020000 */ sw $v0, ($t0)
/* 36ECB4 E006CAE4 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 36ECB8 E006CAE8 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 36ECBC E006CAEC 34840007 */ ori $a0, $a0, 7
/* 36ECC0 E006CAF0 ACE40020 */ sw $a0, 0x20($a3)
/* 36ECC4 E006CAF4 00031980 */ sll $v1, $v1, 6
/* 36ECC8 E006CAF8 24630030 */ addiu $v1, $v1, 0x30
/* 36ECCC E006CAFC 00431021 */ addu $v0, $v0, $v1
/* 36ECD0 E006CB00 ACE20024 */ sw $v0, 0x24($a3)
.LE006CB04:
/* 36ECD4 E006CB04 8D020000 */ lw $v0, ($t0)
/* 36ECD8 E006CB08 0040182D */ daddu $v1, $v0, $zero
/* 36ECDC E006CB0C 24420008 */ addiu $v0, $v0, 8
/* 36ECE0 E006CB10 AD020000 */ sw $v0, ($t0)
/* 36ECE4 E006CB14 AC650000 */ sw $a1, ($v1)
/* 36ECE8 E006CB18 AC600004 */ sw $zero, 4($v1)
.LE006CB1C:
/* 36ECEC E006CB1C 8FBF00D4 */ lw $ra, 0xd4($sp)
/* 36ECF0 E006CB20 8FBE00D0 */ lw $fp, 0xd0($sp)
/* 36ECF4 E006CB24 8FB700CC */ lw $s7, 0xcc($sp)
/* 36ECF8 E006CB28 8FB600C8 */ lw $s6, 0xc8($sp)
/* 36ECFC E006CB2C 8FB500C4 */ lw $s5, 0xc4($sp)
/* 36ED00 E006CB30 8FB400C0 */ lw $s4, 0xc0($sp)
/* 36ED04 E006CB34 8FB300BC */ lw $s3, 0xbc($sp)
/* 36ED08 E006CB38 8FB200B8 */ lw $s2, 0xb8($sp)
/* 36ED0C E006CB3C 8FB100B4 */ lw $s1, 0xb4($sp)
/* 36ED10 E006CB40 8FB000B0 */ lw $s0, 0xb0($sp)
/* 36ED14 E006CB44 D7B600E0 */ ldc1 $f22, 0xe0($sp)
/* 36ED18 E006CB48 D7B400D8 */ ldc1 $f20, 0xd8($sp)
/* 36ED1C E006CB4C 03E00008 */ jr $ra
/* 36ED20 E006CB50 27BD00E8 */ addiu $sp, $sp, 0xe8
/* 36ED24 E006CB54 00000000 */ nop
/* 36ED28 E006CB58 00000000 */ nop
/* 36ED2C E006CB5C 00000000 */ nop

View File

@ -1,347 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .text
glabel func_E011A700
/* 404920 E011A700 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 404924 E011A704 0080302D */ daddu $a2, $a0, $zero
/* 404928 E011A708 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 40492C E011A70C 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 404930 E011A710 3C04800B */ lui $a0, %hi(gCameras)
/* 404934 E011A714 24841D80 */ addiu $a0, $a0, %lo(gCameras)
/* 404938 E011A718 AFBF0034 */ sw $ra, 0x34($sp)
/* 40493C E011A71C AFBE0030 */ sw $fp, 0x30($sp)
/* 404940 E011A720 AFB7002C */ sw $s7, 0x2c($sp)
/* 404944 E011A724 AFB60028 */ sw $s6, 0x28($sp)
/* 404948 E011A728 AFB50024 */ sw $s5, 0x24($sp)
/* 40494C E011A72C AFB40020 */ sw $s4, 0x20($sp)
/* 404950 E011A730 AFB3001C */ sw $s3, 0x1c($sp)
/* 404954 E011A734 AFB20018 */ sw $s2, 0x18($sp)
/* 404958 E011A738 AFB10014 */ sw $s1, 0x14($sp)
/* 40495C E011A73C AFB00010 */ sw $s0, 0x10($sp)
/* 404960 E011A740 F7B60040 */ sdc1 $f22, 0x40($sp)
/* 404964 E011A744 F7B40038 */ sdc1 $f20, 0x38($sp)
/* 404968 E011A748 8CDE000C */ lw $fp, 0xc($a2)
/* 40496C E011A74C 00031080 */ sll $v0, $v1, 2
/* 404970 E011A750 00431021 */ addu $v0, $v0, $v1
/* 404974 E011A754 00021080 */ sll $v0, $v0, 2
/* 404978 E011A758 00431023 */ subu $v0, $v0, $v1
/* 40497C E011A75C 000218C0 */ sll $v1, $v0, 3
/* 404980 E011A760 00431021 */ addu $v0, $v0, $v1
/* 404984 E011A764 000210C0 */ sll $v0, $v0, 3
/* 404988 E011A768 87C30002 */ lh $v1, 2($fp)
/* 40498C E011A76C 1060011B */ beqz $v1, .LE011ABDC
/* 404990 E011A770 0044B821 */ addu $s7, $v0, $a0
/* 404994 E011A774 3C05DB06 */ lui $a1, 0xdb06
/* 404998 E011A778 34A50024 */ ori $a1, $a1, 0x24
/* 40499C E011A77C 0000902D */ daddu $s2, $zero, $zero
/* 4049A0 E011A780 3C02800A */ lui $v0, %hi(gMasterGfxPos)
/* 4049A4 E011A784 2442A66C */ addiu $v0, $v0, %lo(gMasterGfxPos)
/* 4049A8 E011A788 0040982D */ daddu $s3, $v0, $zero
/* 4049AC E011A78C 3C14D700 */ lui $s4, 0xd700
/* 4049B0 E011A790 36941002 */ ori $s4, $s4, 0x1002
/* 4049B4 E011A794 2415FFFF */ addiu $s5, $zero, -1
/* 4049B8 E011A798 2411000C */ addiu $s1, $zero, 0xc
/* 4049BC E011A79C 24100014 */ addiu $s0, $zero, 0x14
/* 4049C0 E011A7A0 8E640000 */ lw $a0, ($s3)
/* 4049C4 E011A7A4 3C02E700 */ lui $v0, 0xe700
/* 4049C8 E011A7A8 0080182D */ daddu $v1, $a0, $zero
/* 4049CC E011A7AC 24840008 */ addiu $a0, $a0, 8
/* 4049D0 E011A7B0 AE640000 */ sw $a0, ($s3)
/* 4049D4 E011A7B4 AC620000 */ sw $v0, ($v1)
/* 4049D8 E011A7B8 AC600004 */ sw $zero, 4($v1)
/* 4049DC E011A7BC AC850000 */ sw $a1, ($a0)
/* 4049E0 E011A7C0 8CC30010 */ lw $v1, 0x10($a2)
/* 4049E4 E011A7C4 24820008 */ addiu $v0, $a0, 8
/* 4049E8 E011A7C8 AE620000 */ sw $v0, ($s3)
/* 4049EC E011A7CC 8C63001C */ lw $v1, 0x1c($v1)
/* 4049F0 E011A7D0 3C02DE00 */ lui $v0, 0xde00
/* 4049F4 E011A7D4 AC820008 */ sw $v0, 8($a0)
/* 4049F8 E011A7D8 3C028000 */ lui $v0, 0x8000
/* 4049FC E011A7DC 00621821 */ addu $v1, $v1, $v0
/* 404A00 E011A7E0 AC830004 */ sw $v1, 4($a0)
/* 404A04 E011A7E4 3C03E012 */ lui $v1, %hi(D_E011AC20)
/* 404A08 E011A7E8 8C63AC20 */ lw $v1, %lo(D_E011AC20)($v1)
/* 404A0C E011A7EC 24820010 */ addiu $v0, $a0, 0x10
/* 404A10 E011A7F0 AE620000 */ sw $v0, ($s3)
/* 404A14 E011A7F4 AC83000C */ sw $v1, 0xc($a0)
.LE011A7F8:
/* 404A18 E011A7F8 03D11021 */ addu $v0, $fp, $s1
/* 404A1C E011A7FC 84440000 */ lh $a0, ($v0)
/* 404A20 E011A800 50800012 */ beql $a0, $zero, .LE011A84C
/* 404A24 E011A804 26520001 */ addiu $s2, $s2, 1
/* 404A28 E011A808 8E620000 */ lw $v0, ($s3)
/* 404A2C E011A80C 0040182D */ daddu $v1, $v0, $zero
/* 404A30 E011A810 24420008 */ addiu $v0, $v0, 8
/* 404A34 E011A814 AE620000 */ sw $v0, ($s3)
/* 404A38 E011A818 32420007 */ andi $v0, $s2, 7
/* 404A3C E011A81C 00021200 */ sll $v0, $v0, 8
/* 404A40 E011A820 00541025 */ or $v0, $v0, $s4
/* 404A44 E011A824 AC620000 */ sw $v0, ($v1)
/* 404A48 E011A828 0C0468EF */ jal func_E011A3BC
/* 404A4C E011A82C AC750004 */ sw $s5, 4($v1)
/* 404A50 E011A830 0200202D */ daddu $a0, $s0, $zero
/* 404A54 E011A834 24050032 */ addiu $a1, $zero, 0x32
/* 404A58 E011A838 0240302D */ daddu $a2, $s2, $zero
/* 404A5C E011A83C 3C074480 */ lui $a3, 0x4480
/* 404A60 E011A840 0C046923 */ jal func_E011A48C
/* 404A64 E011A844 26100020 */ addiu $s0, $s0, 0x20
/* 404A68 E011A848 26520001 */ addiu $s2, $s2, 1
.LE011A84C:
/* 404A6C E011A84C 2A420003 */ slti $v0, $s2, 3
/* 404A70 E011A850 1440FFE9 */ bnez $v0, .LE011A7F8
/* 404A74 E011A854 2631000A */ addiu $s1, $s1, 0xa
/* 404A78 E011A858 3C03D700 */ lui $v1, 0xd700
/* 404A7C E011A85C 34630002 */ ori $v1, $v1, 2
/* 404A80 E011A860 3C05E300 */ lui $a1, 0xe300
/* 404A84 E011A864 34A51001 */ ori $a1, $a1, 0x1001
/* 404A88 E011A868 0000902D */ daddu $s2, $zero, $zero
/* 404A8C E011A86C 3C02800A */ lui $v0, %hi(gMasterGfxPos)
/* 404A90 E011A870 2442A66C */ addiu $v0, $v0, %lo(gMasterGfxPos)
/* 404A94 E011A874 0040A82D */ daddu $s5, $v0, $zero
/* 404A98 E011A878 2416000C */ addiu $s6, $zero, 0xc
/* 404A9C E011A87C 24130014 */ addiu $s3, $zero, 0x14
/* 404AA0 E011A880 8EA20000 */ lw $v0, ($s5)
/* 404AA4 E011A884 3C013C23 */ lui $at, 0x3c23
/* 404AA8 E011A888 3421D70A */ ori $at, $at, 0xd70a
/* 404AAC E011A88C 4481B000 */ mtc1 $at, $f22
/* 404AB0 E011A890 3C014480 */ lui $at, 0x4480
/* 404AB4 E011A894 4481A000 */ mtc1 $at, $f20
/* 404AB8 E011A898 0040202D */ daddu $a0, $v0, $zero
/* 404ABC E011A89C 24420008 */ addiu $v0, $v0, 8
/* 404AC0 E011A8A0 AEA20000 */ sw $v0, ($s5)
/* 404AC4 E011A8A4 AC830000 */ sw $v1, ($a0)
/* 404AC8 E011A8A8 2403FFFF */ addiu $v1, $zero, -1
/* 404ACC E011A8AC AC830004 */ sw $v1, 4($a0)
/* 404AD0 E011A8B0 24430008 */ addiu $v1, $v0, 8
/* 404AD4 E011A8B4 AEA30000 */ sw $v1, ($s5)
/* 404AD8 E011A8B8 AC450000 */ sw $a1, ($v0)
/* 404ADC E011A8BC AC400004 */ sw $zero, 4($v0)
.LE011A8C0:
/* 404AE0 E011A8C0 03D68021 */ addu $s0, $fp, $s6
/* 404AE4 E011A8C4 96110002 */ lhu $s1, 2($s0)
/* 404AE8 E011A8C8 86040000 */ lh $a0, ($s0)
/* 404AEC E011A8CC 96140008 */ lhu $s4, 8($s0)
/* 404AF0 E011A8D0 1080007D */ beqz $a0, .LE011AAC8
/* 404AF4 E011A8D4 00111400 */ sll $v0, $s1, 0x10
/* 404AF8 E011A8D8 04420001 */ bltzl $v0, .LE011A8E0
/* 404AFC E011A8DC 0000882D */ daddu $s1, $zero, $zero
.LE011A8E0:
/* 404B00 E011A8E0 00111400 */ sll $v0, $s1, 0x10
/* 404B04 E011A8E4 00021403 */ sra $v0, $v0, 0x10
/* 404B08 E011A8E8 2842000A */ slti $v0, $v0, 0xa
/* 404B0C E011A8EC 50400001 */ beql $v0, $zero, .LE011A8F4
/* 404B10 E011A8F0 24110009 */ addiu $s1, $zero, 9
.LE011A8F4:
/* 404B14 E011A8F4 0C0468EF */ jal func_E011A3BC
/* 404B18 E011A8F8 00000000 */ nop
/* 404B1C E011A8FC 86030006 */ lh $v1, 6($s0)
/* 404B20 E011A900 2402000A */ addiu $v0, $zero, 0xa
/* 404B24 E011A904 10620006 */ beq $v1, $v0, .LE011A920
/* 404B28 E011A908 00111400 */ sll $v0, $s1, 0x10
/* 404B2C E011A90C 24020014 */ addiu $v0, $zero, 0x14
/* 404B30 E011A910 14620041 */ bne $v1, $v0, .LE011AA18
/* 404B34 E011A914 00111400 */ sll $v0, $s1, 0x10
/* 404B38 E011A918 08046A4B */ j .LE011A92C
/* 404B3C E011A91C 00021403 */ sra $v0, $v0, 0x10
.LE011A920:
/* 404B40 E011A920 00021403 */ sra $v0, $v0, 0x10
/* 404B44 E011A924 08046A4C */ j .LE011A930
/* 404B48 E011A928 2442FFFF */ addiu $v0, $v0, -1
.LE011A92C:
/* 404B4C E011A92C 24420001 */ addiu $v0, $v0, 1
.LE011A930:
/* 404B50 E011A930 00021080 */ sll $v0, $v0, 2
/* 404B54 E011A934 3C08E012 */ lui $t0, %hi(D_E011AC24)
/* 404B58 E011A938 2508AC24 */ addiu $t0, $t0, %lo(D_E011AC24)
/* 404B5C E011A93C 00481021 */ addu $v0, $v0, $t0
/* 404B60 E011A940 8C440000 */ lw $a0, ($v0)
/* 404B64 E011A944 10800033 */ beqz $a0, .LE011AA14
/* 404B68 E011A948 3C08DE00 */ lui $t0, 0xde00
/* 404B6C E011A94C 8EA20000 */ lw $v0, ($s5)
/* 404B70 E011A950 0040182D */ daddu $v1, $v0, $zero
/* 404B74 E011A954 24420008 */ addiu $v0, $v0, 8
/* 404B78 E011A958 AEA20000 */ sw $v0, ($s5)
/* 404B7C E011A95C 00141400 */ sll $v0, $s4, 0x10
/* 404B80 E011A960 00021403 */ sra $v0, $v0, 0x10
/* 404B84 E011A964 AC680000 */ sw $t0, ($v1)
/* 404B88 E011A968 3C08E012 */ lui $t0, %hi(D_E011AC4C)
/* 404B8C E011A96C 2508AC4C */ addiu $t0, $t0, %lo(D_E011AC4C)
/* 404B90 E011A970 00481021 */ addu $v0, $v0, $t0
/* 404B94 E011A974 AC640004 */ sw $a0, 4($v1)
/* 404B98 E011A978 80420000 */ lb $v0, ($v0)
/* 404B9C E011A97C 44820000 */ mtc1 $v0, $f0
/* 404BA0 E011A980 00000000 */ nop
/* 404BA4 E011A984 46800020 */ cvt.s.w $f0, $f0
/* 404BA8 E011A988 46160102 */ mul.s $f4, $f0, $f22
/* 404BAC E011A98C 00000000 */ nop
/* 404BB0 E011A990 3C013F80 */ lui $at, 0x3f80
/* 404BB4 E011A994 44810000 */ mtc1 $at, $f0
/* 404BB8 E011A998 00000000 */ nop
/* 404BBC E011A99C 46002001 */ sub.s $f0, $f4, $f0
/* 404BC0 E011A9A0 3C014180 */ lui $at, 0x4180
/* 404BC4 E011A9A4 44811000 */ mtc1 $at, $f2
/* 404BC8 E011A9A8 46000007 */ neg.s $f0, $f0
/* 404BCC E011A9AC 46020002 */ mul.s $f0, $f0, $f2
/* 404BD0 E011A9B0 00000000 */ nop
/* 404BD4 E011A9B4 3C013FE0 */ lui $at, 0x3fe0
/* 404BD8 E011A9B8 44811800 */ mtc1 $at, $f3
/* 404BDC E011A9BC 44801000 */ mtc1 $zero, $f2
/* 404BE0 E011A9C0 46000021 */ cvt.d.s $f0, $f0
/* 404BE4 E011A9C4 46220000 */ add.d $f0, $f0, $f2
/* 404BE8 E011A9C8 4604A103 */ div.s $f4, $f20, $f4
/* 404BEC E011A9CC 44072000 */ mfc1 $a3, $f4
/* 404BF0 E011A9D0 4620018D */ trunc.w.d $f6, $f0
/* 404BF4 E011A9D4 44043000 */ mfc1 $a0, $f6
/* 404BF8 E011A9D8 00000000 */ nop
/* 404BFC E011A9DC 00931021 */ addu $v0, $a0, $s3
/* 404C00 E011A9E0 44821000 */ mtc1 $v0, $f2
/* 404C04 E011A9E4 00000000 */ nop
/* 404C08 E011A9E8 468010A0 */ cvt.s.w $f2, $f2
/* 404C0C E011A9EC 24820032 */ addiu $v0, $a0, 0x32
/* 404C10 E011A9F0 44820000 */ mtc1 $v0, $f0
/* 404C14 E011A9F4 00000000 */ nop
/* 404C18 E011A9F8 46800020 */ cvt.s.w $f0, $f0
/* 404C1C E011A9FC 4600118D */ trunc.w.s $f6, $f2
/* 404C20 E011AA00 44043000 */ mfc1 $a0, $f6
/* 404C24 E011AA04 4600018D */ trunc.w.s $f6, $f0
/* 404C28 E011AA08 44053000 */ mfc1 $a1, $f6
/* 404C2C E011AA0C 0C046923 */ jal func_E011A48C
/* 404C30 E011AA10 0000302D */ daddu $a2, $zero, $zero
.LE011AA14:
/* 404C34 E011AA14 00111400 */ sll $v0, $s1, 0x10
.LE011AA18:
/* 404C38 E011AA18 00021383 */ sra $v0, $v0, 0xe
/* 404C3C E011AA1C 3C08E012 */ lui $t0, %hi(D_E011AC24)
/* 404C40 E011AA20 2508AC24 */ addiu $t0, $t0, %lo(D_E011AC24)
/* 404C44 E011AA24 00481021 */ addu $v0, $v0, $t0
/* 404C48 E011AA28 8C440000 */ lw $a0, ($v0)
/* 404C4C E011AA2C 10800025 */ beqz $a0, .LE011AAC4
/* 404C50 E011AA30 3C08DE00 */ lui $t0, 0xde00
/* 404C54 E011AA34 8EA20000 */ lw $v0, ($s5)
/* 404C58 E011AA38 0040182D */ daddu $v1, $v0, $zero
/* 404C5C E011AA3C 24420008 */ addiu $v0, $v0, 8
/* 404C60 E011AA40 AEA20000 */ sw $v0, ($s5)
/* 404C64 E011AA44 AC680000 */ sw $t0, ($v1)
/* 404C68 E011AA48 AC640004 */ sw $a0, 4($v1)
/* 404C6C E011AA4C 00141C00 */ sll $v1, $s4, 0x10
/* 404C70 E011AA50 00031C03 */ sra $v1, $v1, 0x10
/* 404C74 E011AA54 3C02E012 */ lui $v0, %hi(D_E011AC64)
/* 404C78 E011AA58 00431021 */ addu $v0, $v0, $v1
/* 404C7C E011AA5C 8042AC64 */ lb $v0, %lo(D_E011AC64)($v0)
/* 404C80 E011AA60 3C01E012 */ lui $at, %hi(D_E011AC58)
/* 404C84 E011AA64 00230821 */ addu $at, $at, $v1
/* 404C88 E011AA68 8023AC58 */ lb $v1, %lo(D_E011AC58)($at)
/* 404C8C E011AA6C 00022023 */ negu $a0, $v0
/* 404C90 E011AA70 00531021 */ addu $v0, $v0, $s3
/* 404C94 E011AA74 44830000 */ mtc1 $v1, $f0
/* 404C98 E011AA78 00000000 */ nop
/* 404C9C E011AA7C 46800020 */ cvt.s.w $f0, $f0
/* 404CA0 E011AA80 46160102 */ mul.s $f4, $f0, $f22
/* 404CA4 E011AA84 00000000 */ nop
/* 404CA8 E011AA88 44821000 */ mtc1 $v0, $f2
/* 404CAC E011AA8C 00000000 */ nop
/* 404CB0 E011AA90 468010A0 */ cvt.s.w $f2, $f2
/* 404CB4 E011AA94 24820032 */ addiu $v0, $a0, 0x32
/* 404CB8 E011AA98 44820000 */ mtc1 $v0, $f0
/* 404CBC E011AA9C 00000000 */ nop
/* 404CC0 E011AAA0 46800020 */ cvt.s.w $f0, $f0
/* 404CC4 E011AAA4 4600118D */ trunc.w.s $f6, $f2
/* 404CC8 E011AAA8 44043000 */ mfc1 $a0, $f6
/* 404CCC E011AAAC 4604A103 */ div.s $f4, $f20, $f4
/* 404CD0 E011AAB0 44072000 */ mfc1 $a3, $f4
/* 404CD4 E011AAB4 4600018D */ trunc.w.s $f6, $f0
/* 404CD8 E011AAB8 44053000 */ mfc1 $a1, $f6
/* 404CDC E011AABC 0C046923 */ jal func_E011A48C
/* 404CE0 E011AAC0 0000302D */ daddu $a2, $zero, $zero
.LE011AAC4:
/* 404CE4 E011AAC4 26730020 */ addiu $s3, $s3, 0x20
.LE011AAC8:
/* 404CE8 E011AAC8 26520001 */ addiu $s2, $s2, 1
/* 404CEC E011AACC 2A420003 */ slti $v0, $s2, 3
/* 404CF0 E011AAD0 1440FF7B */ bnez $v0, .LE011A8C0
/* 404CF4 E011AAD4 26D6000A */ addiu $s6, $s6, 0xa
/* 404CF8 E011AAD8 3C06800A */ lui $a2, %hi(gMasterGfxPos)
/* 404CFC E011AADC 24C6A66C */ addiu $a2, $a2, %lo(gMasterGfxPos)
/* 404D00 E011AAE0 86E2000E */ lh $v0, 0xe($s7)
/* 404D04 E011AAE4 3C014080 */ lui $at, 0x4080
/* 404D08 E011AAE8 44812000 */ mtc1 $at, $f4
/* 404D0C E011AAEC 44821000 */ mtc1 $v0, $f2
/* 404D10 E011AAF0 00000000 */ nop
/* 404D14 E011AAF4 468010A0 */ cvt.s.w $f2, $f2
/* 404D18 E011AAF8 46041082 */ mul.s $f2, $f2, $f4
/* 404D1C E011AAFC 00000000 */ nop
/* 404D20 E011AB00 3C04ED00 */ lui $a0, 0xed00
/* 404D24 E011AB04 86E20010 */ lh $v0, 0x10($s7)
/* 404D28 E011AB08 8CC50000 */ lw $a1, ($a2)
/* 404D2C E011AB0C 44820000 */ mtc1 $v0, $f0
/* 404D30 E011AB10 00000000 */ nop
/* 404D34 E011AB14 46800020 */ cvt.s.w $f0, $f0
/* 404D38 E011AB18 46040002 */ mul.s $f0, $f0, $f4
/* 404D3C E011AB1C 00000000 */ nop
/* 404D40 E011AB20 00A0382D */ daddu $a3, $a1, $zero
/* 404D44 E011AB24 4600118D */ trunc.w.s $f6, $f2
/* 404D48 E011AB28 44023000 */ mfc1 $v0, $f6
/* 404D4C E011AB2C 00000000 */ nop
/* 404D50 E011AB30 30420FFF */ andi $v0, $v0, 0xfff
/* 404D54 E011AB34 00021300 */ sll $v0, $v0, 0xc
/* 404D58 E011AB38 4600018D */ trunc.w.s $f6, $f0
/* 404D5C E011AB3C 44033000 */ mfc1 $v1, $f6
/* 404D60 E011AB40 00000000 */ nop
/* 404D64 E011AB44 30630FFF */ andi $v1, $v1, 0xfff
/* 404D68 E011AB48 00641825 */ or $v1, $v1, $a0
/* 404D6C E011AB4C 00431025 */ or $v0, $v0, $v1
/* 404D70 E011AB50 ACE20000 */ sw $v0, ($a3)
/* 404D74 E011AB54 86E2000E */ lh $v0, 0xe($s7)
/* 404D78 E011AB58 86E3000A */ lh $v1, 0xa($s7)
/* 404D7C E011AB5C 24A50008 */ addiu $a1, $a1, 8
/* 404D80 E011AB60 00431021 */ addu $v0, $v0, $v1
/* 404D84 E011AB64 44821000 */ mtc1 $v0, $f2
/* 404D88 E011AB68 00000000 */ nop
/* 404D8C E011AB6C 468010A0 */ cvt.s.w $f2, $f2
/* 404D90 E011AB70 86E20010 */ lh $v0, 0x10($s7)
/* 404D94 E011AB74 86E3000C */ lh $v1, 0xc($s7)
/* 404D98 E011AB78 46041082 */ mul.s $f2, $f2, $f4
/* 404D9C E011AB7C 00000000 */ nop
/* 404DA0 E011AB80 ACC50000 */ sw $a1, ($a2)
/* 404DA4 E011AB84 00431021 */ addu $v0, $v0, $v1
/* 404DA8 E011AB88 44820000 */ mtc1 $v0, $f0
/* 404DAC E011AB8C 00000000 */ nop
/* 404DB0 E011AB90 46800020 */ cvt.s.w $f0, $f0
/* 404DB4 E011AB94 24A20008 */ addiu $v0, $a1, 8
/* 404DB8 E011AB98 46040002 */ mul.s $f0, $f0, $f4
/* 404DBC E011AB9C 00000000 */ nop
/* 404DC0 E011ABA0 ACC20000 */ sw $v0, ($a2)
/* 404DC4 E011ABA4 4600118D */ trunc.w.s $f6, $f2
/* 404DC8 E011ABA8 44023000 */ mfc1 $v0, $f6
/* 404DCC E011ABAC 00000000 */ nop
/* 404DD0 E011ABB0 30420FFF */ andi $v0, $v0, 0xfff
/* 404DD4 E011ABB4 00021300 */ sll $v0, $v0, 0xc
/* 404DD8 E011ABB8 4600018D */ trunc.w.s $f6, $f0
/* 404DDC E011ABBC 44033000 */ mfc1 $v1, $f6
/* 404DE0 E011ABC0 00000000 */ nop
/* 404DE4 E011ABC4 30630FFF */ andi $v1, $v1, 0xfff
/* 404DE8 E011ABC8 00431025 */ or $v0, $v0, $v1
/* 404DEC E011ABCC ACE20004 */ sw $v0, 4($a3)
/* 404DF0 E011ABD0 3C02E700 */ lui $v0, 0xe700
/* 404DF4 E011ABD4 ACA20000 */ sw $v0, ($a1)
/* 404DF8 E011ABD8 ACA00004 */ sw $zero, 4($a1)
.LE011ABDC:
/* 404DFC E011ABDC 8FBF0034 */ lw $ra, 0x34($sp)
/* 404E00 E011ABE0 8FBE0030 */ lw $fp, 0x30($sp)
/* 404E04 E011ABE4 8FB7002C */ lw $s7, 0x2c($sp)
/* 404E08 E011ABE8 8FB60028 */ lw $s6, 0x28($sp)
/* 404E0C E011ABEC 8FB50024 */ lw $s5, 0x24($sp)
/* 404E10 E011ABF0 8FB40020 */ lw $s4, 0x20($sp)
/* 404E14 E011ABF4 8FB3001C */ lw $s3, 0x1c($sp)
/* 404E18 E011ABF8 8FB20018 */ lw $s2, 0x18($sp)
/* 404E1C E011ABFC 8FB10014 */ lw $s1, 0x14($sp)
/* 404E20 E011AC00 8FB00010 */ lw $s0, 0x10($sp)
/* 404E24 E011AC04 D7B60040 */ ldc1 $f22, 0x40($sp)
/* 404E28 E011AC08 D7B40038 */ ldc1 $f20, 0x38($sp)
/* 404E2C E011AC0C 03E00008 */ jr $ra
/* 404E30 E011AC10 27BD0048 */ addiu $sp, $sp, 0x48
/* 404E34 E011AC14 00000000 */ nop
/* 404E38 E011AC18 00000000 */ nop
/* 404E3C E011AC1C 00000000 */ nop

View File

@ -1,197 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel quizmo_audience_appendGfx
/* 3A7410 E00A8320 27BDFF40 */ addiu $sp, $sp, -0xc0
/* 3A7414 E00A8324 0080302D */ daddu $a2, $a0, $zero
/* 3A7418 E00A8328 3C07DB06 */ lui $a3, 0xdb06
/* 3A741C E00A832C 34E70024 */ ori $a3, $a3, 0x24
/* 3A7420 E00A8330 27A40018 */ addiu $a0, $sp, 0x18
/* 3A7424 E00A8334 AFB200A0 */ sw $s2, 0xa0($sp)
/* 3A7428 E00A8338 3C120001 */ lui $s2, 1
/* 3A742C E00A833C 36521630 */ ori $s2, $s2, 0x1630
/* 3A7430 E00A8340 AFB400A8 */ sw $s4, 0xa8($sp)
/* 3A7434 E00A8344 0000A02D */ daddu $s4, $zero, $zero
/* 3A7438 E00A8348 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 3A743C E00A834C 2442A674 */ addiu $v0, $v0, %lo(gDisplayContext)
/* 3A7440 E00A8350 AFBE00B8 */ sw $fp, 0xb8($sp)
/* 3A7444 E00A8354 0040F02D */ daddu $fp, $v0, $zero
/* 3A7448 E00A8358 3C028007 */ lui $v0, %hi(gMatrixListPos)
/* 3A744C E00A835C 244241F0 */ addiu $v0, $v0, %lo(gMatrixListPos)
/* 3A7450 E00A8360 AFB600B0 */ sw $s6, 0xb0($sp)
/* 3A7454 E00A8364 0040B02D */ daddu $s6, $v0, $zero
/* 3A7458 E00A8368 AFB700B4 */ sw $s7, 0xb4($sp)
/* 3A745C E00A836C 3C170001 */ lui $s7, 1
/* 3A7460 E00A8370 36F71630 */ ori $s7, $s7, 0x1630
/* 3A7464 E00A8374 3C02800A */ lui $v0, %hi(gMasterGfxPos)
/* 3A7468 E00A8378 2442A66C */ addiu $v0, $v0, %lo(gMasterGfxPos)
/* 3A746C E00A837C AFB500AC */ sw $s5, 0xac($sp)
/* 3A7470 E00A8380 0040A82D */ daddu $s5, $v0, $zero
/* 3A7474 E00A8384 AFBF00BC */ sw $ra, 0xbc($sp)
/* 3A7478 E00A8388 AFB300A4 */ sw $s3, 0xa4($sp)
/* 3A747C E00A838C AFB1009C */ sw $s1, 0x9c($sp)
/* 3A7480 E00A8390 AFB00098 */ sw $s0, 0x98($sp)
/* 3A7484 E00A8394 8C480000 */ lw $t0, ($v0)
/* 3A7488 E00A8398 3C02E700 */ lui $v0, 0xe700
/* 3A748C E00A839C 8CC5000C */ lw $a1, 0xc($a2)
/* 3A7490 E00A83A0 0100182D */ daddu $v1, $t0, $zero
/* 3A7494 E00A83A4 8CB00018 */ lw $s0, 0x18($a1)
/* 3A7498 E00A83A8 25080008 */ addiu $t0, $t0, 8
/* 3A749C E00A83AC AC620000 */ sw $v0, ($v1)
/* 3A74A0 E00A83B0 AC600004 */ sw $zero, 4($v1)
/* 3A74A4 E00A83B4 AD070000 */ sw $a3, ($t0)
/* 3A74A8 E00A83B8 8CC20010 */ lw $v0, 0x10($a2)
/* 3A74AC E00A83BC 00A0982D */ daddu $s3, $a1, $zero
/* 3A74B0 E00A83C0 AEA80000 */ sw $t0, ($s5)
/* 3A74B4 E00A83C4 8C42001C */ lw $v0, 0x1c($v0)
/* 3A74B8 E00A83C8 3C038000 */ lui $v1, 0x8000
/* 3A74BC E00A83CC 00431021 */ addu $v0, $v0, $v1
/* 3A74C0 E00A83D0 AD020004 */ sw $v0, 4($t0)
/* 3A74C4 E00A83D4 8E65000C */ lw $a1, 0xc($s3)
/* 3A74C8 E00A83D8 8E660010 */ lw $a2, 0x10($s3)
/* 3A74CC E00A83DC 8E670014 */ lw $a3, 0x14($s3)
/* 3A74D0 E00A83E0 25080008 */ addiu $t0, $t0, 8
/* 3A74D4 E00A83E4 0C080108 */ jal shim_guTranslateF
/* 3A74D8 E00A83E8 AEA80000 */ sw $t0, ($s5)
/* 3A74DC E00A83EC 27B10058 */ addiu $s1, $sp, 0x58
/* 3A74E0 E00A83F0 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 3A74E4 E00A83F4 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 3A74E8 E00A83F8 44800000 */ mtc1 $zero, $f0
/* 3A74EC E00A83FC 00031080 */ sll $v0, $v1, 2
/* 3A74F0 E00A8400 00431021 */ addu $v0, $v0, $v1
/* 3A74F4 E00A8404 00021080 */ sll $v0, $v0, 2
/* 3A74F8 E00A8408 00431023 */ subu $v0, $v0, $v1
/* 3A74FC E00A840C 000218C0 */ sll $v1, $v0, 3
/* 3A7500 E00A8410 00431021 */ addu $v0, $v0, $v1
/* 3A7504 E00A8414 000210C0 */ sll $v0, $v0, 3
/* 3A7508 E00A8418 44060000 */ mfc1 $a2, $f0
/* 3A750C E00A841C 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 3A7510 E00A8420 00220821 */ addu $at, $at, $v0
/* 3A7514 E00A8424 C4201DEC */ lwc1 $f0, %lo(gCameras+0x6C)($at)
/* 3A7518 E00A8428 3C073F80 */ lui $a3, 0x3f80
/* 3A751C E00A842C 46000007 */ neg.s $f0, $f0
/* 3A7520 E00A8430 44050000 */ mfc1 $a1, $f0
/* 3A7524 E00A8434 0220202D */ daddu $a0, $s1, $zero
/* 3A7528 E00A8438 0C080104 */ jal shim_guRotateF
/* 3A752C E00A843C AFA60010 */ sw $a2, 0x10($sp)
/* 3A7530 E00A8440 0220202D */ daddu $a0, $s1, $zero
/* 3A7534 E00A8444 27A50018 */ addiu $a1, $sp, 0x18
/* 3A7538 E00A8448 0C080114 */ jal shim_guMtxCatF
/* 3A753C E00A844C 00A0302D */ daddu $a2, $a1, $zero
/* 3A7540 E00A8450 27A40018 */ addiu $a0, $sp, 0x18
/* 3A7544 E00A8454 96C50000 */ lhu $a1, ($s6)
/* 3A7548 E00A8458 8FC20000 */ lw $v0, ($fp)
/* 3A754C E00A845C 00052980 */ sll $a1, $a1, 6
/* 3A7550 E00A8460 00B22821 */ addu $a1, $a1, $s2
/* 3A7554 E00A8464 0C080118 */ jal shim_guMtxF2L
/* 3A7558 E00A8468 00452821 */ addu $a1, $v0, $a1
/* 3A755C E00A846C 3C03DA38 */ lui $v1, 0xda38
/* 3A7560 E00A8470 34630002 */ ori $v1, $v1, 2
/* 3A7564 E00A8474 321000FF */ andi $s0, $s0, 0xff
/* 3A7568 E00A8478 8EA40000 */ lw $a0, ($s5)
/* 3A756C E00A847C 96C20000 */ lhu $v0, ($s6)
/* 3A7570 E00A8480 0080282D */ daddu $a1, $a0, $zero
/* 3A7574 E00A8484 24840008 */ addiu $a0, $a0, 8
/* 3A7578 E00A8488 AEA40000 */ sw $a0, ($s5)
/* 3A757C E00A848C ACA30000 */ sw $v1, ($a1)
/* 3A7580 E00A8490 24430001 */ addiu $v1, $v0, 1
/* 3A7584 E00A8494 3042FFFF */ andi $v0, $v0, 0xffff
/* 3A7588 E00A8498 00021180 */ sll $v0, $v0, 6
/* 3A758C E00A849C A6C30000 */ sh $v1, ($s6)
/* 3A7590 E00A84A0 8FC30000 */ lw $v1, ($fp)
/* 3A7594 E00A84A4 00521021 */ addu $v0, $v0, $s2
/* 3A7598 E00A84A8 00621821 */ addu $v1, $v1, $v0
/* 3A759C E00A84AC 24820008 */ addiu $v0, $a0, 8
/* 3A75A0 E00A84B0 ACA30004 */ sw $v1, 4($a1)
/* 3A75A4 E00A84B4 AEA20000 */ sw $v0, ($s5)
/* 3A75A8 E00A84B8 3C02FA00 */ lui $v0, 0xfa00
/* 3A75AC E00A84BC AC820000 */ sw $v0, ($a0)
/* 3A75B0 E00A84C0 00101600 */ sll $v0, $s0, 0x18
/* 3A75B4 E00A84C4 00101C00 */ sll $v1, $s0, 0x10
/* 3A75B8 E00A84C8 00431025 */ or $v0, $v0, $v1
/* 3A75BC E00A84CC 00108200 */ sll $s0, $s0, 8
/* 3A75C0 E00A84D0 00501025 */ or $v0, $v0, $s0
/* 3A75C4 E00A84D4 344200FF */ ori $v0, $v0, 0xff
/* 3A75C8 E00A84D8 AC820004 */ sw $v0, 4($a0)
/* 3A75CC E00A84DC 24820010 */ addiu $v0, $a0, 0x10
/* 3A75D0 E00A84E0 AEA20000 */ sw $v0, ($s5)
/* 3A75D4 E00A84E4 3C02DE00 */ lui $v0, 0xde00
/* 3A75D8 E00A84E8 AC820008 */ sw $v0, 8($a0)
/* 3A75DC E00A84EC 3C020900 */ lui $v0, 0x900
/* 3A75E0 E00A84F0 24423110 */ addiu $v0, $v0, 0x3110
/* 3A75E4 E00A84F4 AC82000C */ sw $v0, 0xc($a0)
.LE00A84F8:
/* 3A75E8 E00A84F8 27A40018 */ addiu $a0, $sp, 0x18
/* 3A75EC E00A84FC 0000382D */ daddu $a3, $zero, $zero
/* 3A75F0 E00A8500 8E6500BC */ lw $a1, 0xbc($s3)
/* 3A75F4 E00A8504 8E6600E4 */ lw $a2, 0xe4($s3)
/* 3A75F8 E00A8508 26730004 */ addiu $s3, $s3, 4
/* 3A75FC E00A850C 00148080 */ sll $s0, $s4, 2
/* 3A7600 E00A8510 0C080108 */ jal shim_guTranslateF
/* 3A7604 E00A8514 26940001 */ addiu $s4, $s4, 1
/* 3A7608 E00A8518 27A40018 */ addiu $a0, $sp, 0x18
/* 3A760C E00A851C 96C50000 */ lhu $a1, ($s6)
/* 3A7610 E00A8520 8FC20000 */ lw $v0, ($fp)
/* 3A7614 E00A8524 00052980 */ sll $a1, $a1, 6
/* 3A7618 E00A8528 00B72821 */ addu $a1, $a1, $s7
/* 3A761C E00A852C 0C080118 */ jal shim_guMtxF2L
/* 3A7620 E00A8530 00452821 */ addu $a1, $v0, $a1
/* 3A7624 E00A8534 3C06D838 */ lui $a2, 0xd838
/* 3A7628 E00A8538 8EA40000 */ lw $a0, ($s5)
/* 3A762C E00A853C 34C60002 */ ori $a2, $a2, 2
/* 3A7630 E00A8540 0080282D */ daddu $a1, $a0, $zero
/* 3A7634 E00A8544 24840008 */ addiu $a0, $a0, 8
/* 3A7638 E00A8548 AEA40000 */ sw $a0, ($s5)
/* 3A763C E00A854C 96C20000 */ lhu $v0, ($s6)
/* 3A7640 E00A8550 3C03DA38 */ lui $v1, 0xda38
/* 3A7644 E00A8554 ACA30000 */ sw $v1, ($a1)
/* 3A7648 E00A8558 24430001 */ addiu $v1, $v0, 1
/* 3A764C E00A855C 3042FFFF */ andi $v0, $v0, 0xffff
/* 3A7650 E00A8560 00021180 */ sll $v0, $v0, 6
/* 3A7654 E00A8564 A6C30000 */ sh $v1, ($s6)
/* 3A7658 E00A8568 8FC30000 */ lw $v1, ($fp)
/* 3A765C E00A856C 00571021 */ addu $v0, $v0, $s7
/* 3A7660 E00A8570 00621821 */ addu $v1, $v1, $v0
/* 3A7664 E00A8574 24820008 */ addiu $v0, $a0, 8
/* 3A7668 E00A8578 ACA30004 */ sw $v1, 4($a1)
/* 3A766C E00A857C AEA20000 */ sw $v0, ($s5)
/* 3A7670 E00A8580 3C02DE00 */ lui $v0, 0xde00
/* 3A7674 E00A8584 AC820000 */ sw $v0, ($a0)
/* 3A7678 E00A8588 24820010 */ addiu $v0, $a0, 0x10
/* 3A767C E00A858C 3C03E00B */ lui $v1, %hi(D_E00A8620)
/* 3A7680 E00A8590 00701821 */ addu $v1, $v1, $s0
/* 3A7684 E00A8594 8C638620 */ lw $v1, %lo(D_E00A8620)($v1)
/* 3A7688 E00A8598 24050040 */ addiu $a1, $zero, 0x40
/* 3A768C E00A859C AEA20000 */ sw $v0, ($s5)
/* 3A7690 E00A85A0 2A82000A */ slti $v0, $s4, 0xa
/* 3A7694 E00A85A4 AC860008 */ sw $a2, 8($a0)
/* 3A7698 E00A85A8 AC85000C */ sw $a1, 0xc($a0)
/* 3A769C E00A85AC 1440FFD2 */ bnez $v0, .LE00A84F8
/* 3A76A0 E00A85B0 AC830004 */ sw $v1, 4($a0)
/* 3A76A4 E00A85B4 3C04800A */ lui $a0, %hi(gMasterGfxPos)
/* 3A76A8 E00A85B8 2484A66C */ addiu $a0, $a0, %lo(gMasterGfxPos)
/* 3A76AC E00A85BC 8C820000 */ lw $v0, ($a0)
/* 3A76B0 E00A85C0 0040182D */ daddu $v1, $v0, $zero
/* 3A76B4 E00A85C4 24420008 */ addiu $v0, $v0, 8
/* 3A76B8 E00A85C8 AC820000 */ sw $v0, ($a0)
/* 3A76BC E00A85CC AC660000 */ sw $a2, ($v1)
/* 3A76C0 E00A85D0 AC650004 */ sw $a1, 4($v1)
/* 3A76C4 E00A85D4 24430008 */ addiu $v1, $v0, 8
/* 3A76C8 E00A85D8 AC830000 */ sw $v1, ($a0)
/* 3A76CC E00A85DC 3C03E700 */ lui $v1, 0xe700
/* 3A76D0 E00A85E0 AC430000 */ sw $v1, ($v0)
/* 3A76D4 E00A85E4 AC400004 */ sw $zero, 4($v0)
/* 3A76D8 E00A85E8 8FBF00BC */ lw $ra, 0xbc($sp)
/* 3A76DC E00A85EC 8FBE00B8 */ lw $fp, 0xb8($sp)
/* 3A76E0 E00A85F0 8FB700B4 */ lw $s7, 0xb4($sp)
/* 3A76E4 E00A85F4 8FB600B0 */ lw $s6, 0xb0($sp)
/* 3A76E8 E00A85F8 8FB500AC */ lw $s5, 0xac($sp)
/* 3A76EC E00A85FC 8FB400A8 */ lw $s4, 0xa8($sp)
/* 3A76F0 E00A8600 8FB300A4 */ lw $s3, 0xa4($sp)
/* 3A76F4 E00A8604 8FB200A0 */ lw $s2, 0xa0($sp)
/* 3A76F8 E00A8608 8FB1009C */ lw $s1, 0x9c($sp)
/* 3A76FC E00A860C 8FB00098 */ lw $s0, 0x98($sp)
/* 3A7700 E00A8610 03E00008 */ jr $ra
/* 3A7704 E00A8614 27BD00C0 */ addiu $sp, $sp, 0xc0
/* 3A7708 E00A8618 00000000 */ nop
/* 3A770C E00A861C 00000000 */ nop

View File

@ -1,137 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E00A86A0
.double 0.01
.section .text
glabel quizmo_audience_update
/* 3A71F4 E00A8104 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 3A71F8 E00A8108 AFBF0020 */ sw $ra, 0x20($sp)
/* 3A71FC E00A810C AFB3001C */ sw $s3, 0x1c($sp)
/* 3A7200 E00A8110 AFB20018 */ sw $s2, 0x18($sp)
/* 3A7204 E00A8114 AFB10014 */ sw $s1, 0x14($sp)
/* 3A7208 E00A8118 AFB00010 */ sw $s0, 0x10($sp)
/* 3A720C E00A811C 8C830000 */ lw $v1, ($a0)
/* 3A7210 E00A8120 8C85000C */ lw $a1, 0xc($a0)
/* 3A7214 E00A8124 30620010 */ andi $v0, $v1, 0x10
/* 3A7218 E00A8128 10400005 */ beqz $v0, .LE00A8140
/* 3A721C E00A812C 2402FFEF */ addiu $v0, $zero, -0x11
/* 3A7220 E00A8130 00621024 */ and $v0, $v1, $v0
/* 3A7224 E00A8134 AC820000 */ sw $v0, ($a0)
/* 3A7228 E00A8138 2402001E */ addiu $v0, $zero, 0x1e
/* 3A722C E00A813C ACA20004 */ sw $v0, 4($a1)
.LE00A8140:
/* 3A7230 E00A8140 8CA30004 */ lw $v1, 4($a1)
/* 3A7234 E00A8144 28620064 */ slti $v0, $v1, 0x64
/* 3A7238 E00A8148 10400002 */ beqz $v0, .LE00A8154
/* 3A723C E00A814C 2462FFFF */ addiu $v0, $v1, -1
/* 3A7240 E00A8150 ACA20004 */ sw $v0, 4($a1)
.LE00A8154:
/* 3A7244 E00A8154 8CA20008 */ lw $v0, 8($a1)
/* 3A7248 E00A8158 8CA30004 */ lw $v1, 4($a1)
/* 3A724C E00A815C 24420001 */ addiu $v0, $v0, 1
/* 3A7250 E00A8160 04610005 */ bgez $v1, .LE00A8178
/* 3A7254 E00A8164 ACA20008 */ sw $v0, 8($a1)
/* 3A7258 E00A8168 0C080128 */ jal shim_remove_effect
/* 3A725C E00A816C 00000000 */ nop
/* 3A7260 E00A8170 0802A0AE */ j .LE00A82B8
/* 3A7264 E00A8174 00000000 */ nop
.LE00A8178:
/* 3A7268 E00A8178 28620010 */ slti $v0, $v1, 0x10
/* 3A726C E00A817C 10400002 */ beqz $v0, .LE00A8188
/* 3A7270 E00A8180 00031100 */ sll $v0, $v1, 4
/* 3A7274 E00A8184 ACA20018 */ sw $v0, 0x18($a1)
.LE00A8188:
/* 3A7278 E00A8188 0000882D */ daddu $s1, $zero, $zero
/* 3A727C E00A818C 24120001 */ addiu $s2, $zero, 1
/* 3A7280 E00A8190 3C13E00B */ lui $s3, %hi(D_E00A8690)
/* 3A7284 E00A8194 26738690 */ addiu $s3, $s3, %lo(D_E00A8690)
/* 3A7288 E00A8198 00A0802D */ daddu $s0, $a1, $zero
.LE00A819C:
/* 3A728C E00A819C 8E02001C */ lw $v0, 0x1c($s0)
/* 3A7290 E00A81A0 10400005 */ beqz $v0, .LE00A81B8
/* 3A7294 E00A81A4 00000000 */ nop
/* 3A7298 E00A81A8 1052001E */ beq $v0, $s2, .LE00A8224
/* 3A729C E00A81AC 00000000 */ nop
/* 3A72A0 E00A81B0 0802A0AA */ j .LE00A82A8
/* 3A72A4 E00A81B4 26100004 */ addiu $s0, $s0, 4
.LE00A81B8:
/* 3A72A8 E00A81B8 0C080138 */ jal shim_rand_int
/* 3A72AC E00A81BC 2404000A */ addiu $a0, $zero, 0xa
/* 3A72B0 E00A81C0 2403000A */ addiu $v1, $zero, 0xa
/* 3A72B4 E00A81C4 54430038 */ bnel $v0, $v1, .LE00A82A8
/* 3A72B8 E00A81C8 26100004 */ addiu $s0, $s0, 4
/* 3A72BC E00A81CC 24040001 */ addiu $a0, $zero, 1
/* 3A72C0 E00A81D0 0C080138 */ jal shim_rand_int
/* 3A72C4 E00A81D4 AE12001C */ sw $s2, 0x1c($s0)
/* 3A72C8 E00A81D8 24040032 */ addiu $a0, $zero, 0x32
/* 3A72CC E00A81DC AE020044 */ sw $v0, 0x44($s0)
/* 3A72D0 E00A81E0 0C080138 */ jal shim_rand_int
/* 3A72D4 E00A81E4 AE00006C */ sw $zero, 0x6c($s0)
/* 3A72D8 E00A81E8 3C01E00B */ lui $at, %hi(D_E00A86A0)
/* 3A72DC E00A81EC D42086A0 */ ldc1 $f0, %lo(D_E00A86A0)($at)
/* 3A72E0 E00A81F0 44821000 */ mtc1 $v0, $f2
/* 3A72E4 E00A81F4 00000000 */ nop
/* 3A72E8 E00A81F8 468010A1 */ cvt.d.w $f2, $f2
/* 3A72EC E00A81FC 46201082 */ mul.d $f2, $f2, $f0
/* 3A72F0 E00A8200 00000000 */ nop
/* 3A72F4 E00A8204 3C013FE0 */ lui $at, 0x3fe0
/* 3A72F8 E00A8208 44810800 */ mtc1 $at, $f1
/* 3A72FC E00A820C 44800000 */ mtc1 $zero, $f0
/* 3A7300 E00A8210 00000000 */ nop
/* 3A7304 E00A8214 46201080 */ add.d $f2, $f2, $f0
/* 3A7308 E00A8218 462010A0 */ cvt.s.d $f2, $f2
/* 3A730C E00A821C 0802A0A9 */ j .LE00A82A4
/* 3A7310 E00A8220 E6020094 */ swc1 $f2, 0x94($s0)
.LE00A8224:
/* 3A7314 E00A8224 8E020044 */ lw $v0, 0x44($s0)
/* 3A7318 E00A8228 8E03006C */ lw $v1, 0x6c($s0)
/* 3A731C E00A822C 000210C0 */ sll $v0, $v0, 3
/* 3A7320 E00A8230 00532021 */ addu $a0, $v0, $s3
/* 3A7324 E00A8234 90820004 */ lbu $v0, 4($a0)
/* 3A7328 E00A8238 0062102A */ slt $v0, $v1, $v0
/* 3A732C E00A823C 14400003 */ bnez $v0, .LE00A824C
/* 3A7330 E00A8240 00031840 */ sll $v1, $v1, 1
/* 3A7334 E00A8244 0802A0A9 */ j .LE00A82A4
/* 3A7338 E00A8248 AE00001C */ sw $zero, 0x1c($s0)
.LE00A824C:
/* 3A733C E00A824C 8C820000 */ lw $v0, ($a0)
/* 3A7340 E00A8250 00621021 */ addu $v0, $v1, $v0
/* 3A7344 E00A8254 80420000 */ lb $v0, ($v0)
/* 3A7348 E00A8258 C6020094 */ lwc1 $f2, 0x94($s0)
/* 3A734C E00A825C 44820000 */ mtc1 $v0, $f0
/* 3A7350 E00A8260 00000000 */ nop
/* 3A7354 E00A8264 46800020 */ cvt.s.w $f0, $f0
/* 3A7358 E00A8268 46020002 */ mul.s $f0, $f0, $f2
/* 3A735C E00A826C 00000000 */ nop
/* 3A7360 E00A8270 E60000BC */ swc1 $f0, 0xbc($s0)
/* 3A7364 E00A8274 8C820000 */ lw $v0, ($a0)
/* 3A7368 E00A8278 00621821 */ addu $v1, $v1, $v0
/* 3A736C E00A827C 80620001 */ lb $v0, 1($v1)
/* 3A7370 E00A8280 44820000 */ mtc1 $v0, $f0
/* 3A7374 E00A8284 00000000 */ nop
/* 3A7378 E00A8288 46800020 */ cvt.s.w $f0, $f0
/* 3A737C E00A828C 46020002 */ mul.s $f0, $f0, $f2
/* 3A7380 E00A8290 00000000 */ nop
/* 3A7384 E00A8294 8E02006C */ lw $v0, 0x6c($s0)
/* 3A7388 E00A8298 24420001 */ addiu $v0, $v0, 1
/* 3A738C E00A829C AE02006C */ sw $v0, 0x6c($s0)
/* 3A7390 E00A82A0 E60000E4 */ swc1 $f0, 0xe4($s0)
.LE00A82A4:
/* 3A7394 E00A82A4 26100004 */ addiu $s0, $s0, 4
.LE00A82A8:
/* 3A7398 E00A82A8 26310001 */ addiu $s1, $s1, 1
/* 3A739C E00A82AC 2A22000A */ slti $v0, $s1, 0xa
/* 3A73A0 E00A82B0 1440FFBA */ bnez $v0, .LE00A819C
/* 3A73A4 E00A82B4 00000000 */ nop
.LE00A82B8:
/* 3A73A8 E00A82B8 8FBF0020 */ lw $ra, 0x20($sp)
/* 3A73AC E00A82BC 8FB3001C */ lw $s3, 0x1c($sp)
/* 3A73B0 E00A82C0 8FB20018 */ lw $s2, 0x18($sp)
/* 3A73B4 E00A82C4 8FB10014 */ lw $s1, 0x14($sp)
/* 3A73B8 E00A82C8 8FB00010 */ lw $s0, 0x10($sp)
/* 3A73BC E00A82CC 03E00008 */ jr $ra
/* 3A73C0 E00A82D0 27BD0028 */ addiu $sp, $sp, 0x28

View File

@ -1,452 +0,0 @@
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_E004AEE8
.double 0.3
.section .text
glabel shockwave_appendGfx
/* 358C4C E004A78C 27BDFEE8 */ addiu $sp, $sp, -0x118
/* 358C50 E004A790 AFBF00FC */ sw $ra, 0xfc($sp)
/* 358C54 E004A794 AFBE00F8 */ sw $fp, 0xf8($sp)
/* 358C58 E004A798 AFB700F4 */ sw $s7, 0xf4($sp)
/* 358C5C E004A79C AFB600F0 */ sw $s6, 0xf0($sp)
/* 358C60 E004A7A0 AFB500EC */ sw $s5, 0xec($sp)
/* 358C64 E004A7A4 AFB400E8 */ sw $s4, 0xe8($sp)
/* 358C68 E004A7A8 AFB300E4 */ sw $s3, 0xe4($sp)
/* 358C6C E004A7AC AFB200E0 */ sw $s2, 0xe0($sp)
/* 358C70 E004A7B0 AFB100DC */ sw $s1, 0xdc($sp)
/* 358C74 E004A7B4 AFB000D8 */ sw $s0, 0xd8($sp)
/* 358C78 E004A7B8 F7B80110 */ sdc1 $f24, 0x110($sp)
/* 358C7C E004A7BC F7B60108 */ sdc1 $f22, 0x108($sp)
/* 358C80 E004A7C0 F7B40100 */ sdc1 $f20, 0x100($sp)
/* 358C84 E004A7C4 AFA40118 */ sw $a0, 0x118($sp)
/* 358C88 E004A7C8 8C91000C */ lw $s1, 0xc($a0)
/* 358C8C E004A7CC 922F0050 */ lbu $t7, 0x50($s1)
/* 358C90 E004A7D0 AFAF00A4 */ sw $t7, 0xa4($sp)
/* 358C94 E004A7D4 922F0051 */ lbu $t7, 0x51($s1)
/* 358C98 E004A7D8 AFAF00A8 */ sw $t7, 0xa8($sp)
/* 358C9C E004A7DC 8FAF00A4 */ lw $t7, 0xa4($sp)
/* 358CA0 E004A7E0 AFAF00BC */ sw $t7, 0xbc($sp)
/* 358CA4 E004A7E4 8FAF00A8 */ lw $t7, 0xa8($sp)
/* 358CA8 E004A7E8 AFAF00C0 */ sw $t7, 0xc0($sp)
/* 358CAC E004A7EC 922F0052 */ lbu $t7, 0x52($s1)
/* 358CB0 E004A7F0 AFAF00AC */ sw $t7, 0xac($sp)
/* 358CB4 E004A7F4 922F0053 */ lbu $t7, 0x53($s1)
/* 358CB8 E004A7F8 AFAF00B0 */ sw $t7, 0xb0($sp)
/* 358CBC E004A7FC 8FAF00AC */ lw $t7, 0xac($sp)
/* 358CC0 E004A800 AFAF00C4 */ sw $t7, 0xc4($sp)
/* 358CC4 E004A804 8FAF00B0 */ lw $t7, 0xb0($sp)
/* 358CC8 E004A808 AFAF00C8 */ sw $t7, 0xc8($sp)
/* 358CCC E004A80C 922F0054 */ lbu $t7, 0x54($s1)
/* 358CD0 E004A810 AFAF00B4 */ sw $t7, 0xb4($sp)
/* 358CD4 E004A814 922F0055 */ lbu $t7, 0x55($s1)
/* 358CD8 E004A818 AFAF00B8 */ sw $t7, 0xb8($sp)
/* 358CDC E004A81C 8FAF00B4 */ lw $t7, 0xb4($sp)
/* 358CE0 E004A820 AFAF00CC */ sw $t7, 0xcc($sp)
/* 358CE4 E004A824 8FAF00B8 */ lw $t7, 0xb8($sp)
/* 358CE8 E004A828 AFAF00D0 */ sw $t7, 0xd0($sp)
/* 358CEC E004A82C 96220000 */ lhu $v0, ($s1)
/* 358CF0 E004A830 00021880 */ sll $v1, $v0, 2
/* 358CF4 E004A834 28420002 */ slti $v0, $v0, 2
/* 358CF8 E004A838 3C09E005 */ lui $t1, %hi(D_E004AE60)
/* 358CFC E004A83C 01234821 */ addu $t1, $t1, $v1
/* 358D00 E004A840 8D29AE60 */ lw $t1, %lo(D_E004AE60)($t1)
/* 358D04 E004A844 14400013 */ bnez $v0, .LE004A894
/* 358D08 E004A848 3C06DB06 */ lui $a2, 0xdb06
/* 358D0C E004A84C 8FAF00A4 */ lw $t7, 0xa4($sp)
/* 358D10 E004A850 000F7883 */ sra $t7, $t7, 2
/* 358D14 E004A854 AFAF00BC */ sw $t7, 0xbc($sp)
/* 358D18 E004A858 8FAF00A8 */ lw $t7, 0xa8($sp)
/* 358D1C E004A85C 000F7883 */ sra $t7, $t7, 2
/* 358D20 E004A860 AFAF00C0 */ sw $t7, 0xc0($sp)
/* 358D24 E004A864 8FAF00AC */ lw $t7, 0xac($sp)
/* 358D28 E004A868 000F7883 */ sra $t7, $t7, 2
/* 358D2C E004A86C AFAF00C4 */ sw $t7, 0xc4($sp)
/* 358D30 E004A870 8FAF00B0 */ lw $t7, 0xb0($sp)
/* 358D34 E004A874 000F7883 */ sra $t7, $t7, 2
/* 358D38 E004A878 AFAF00C8 */ sw $t7, 0xc8($sp)
/* 358D3C E004A87C 8FAF00B4 */ lw $t7, 0xb4($sp)
/* 358D40 E004A880 000F7883 */ sra $t7, $t7, 2
/* 358D44 E004A884 AFAF00CC */ sw $t7, 0xcc($sp)
/* 358D48 E004A888 8FAF00B8 */ lw $t7, 0xb8($sp)
/* 358D4C E004A88C 000F7883 */ sra $t7, $t7, 2
/* 358D50 E004A890 AFAF00D0 */ sw $t7, 0xd0($sp)
.LE004A894:
/* 358D54 E004A894 34C60024 */ ori $a2, $a2, 0x24
/* 358D58 E004A898 27A40020 */ addiu $a0, $sp, 0x20
/* 358D5C E004A89C 3C13800A */ lui $s3, %hi(gMasterGfxPos)
/* 358D60 E004A8A0 2673A66C */ addiu $s3, $s3, %lo(gMasterGfxPos)
/* 358D64 E004A8A4 3C02E700 */ lui $v0, 0xe700
/* 358D68 E004A8A8 8E680000 */ lw $t0, ($s3)
/* 358D6C E004A8AC 4480A000 */ mtc1 $zero, $f20
/* 358D70 E004A8B0 3C013F80 */ lui $at, 0x3f80
/* 358D74 E004A8B4 4481C000 */ mtc1 $at, $f24
/* 358D78 E004A8B8 0100182D */ daddu $v1, $t0, $zero
/* 358D7C E004A8BC 4405A000 */ mfc1 $a1, $f20
/* 358D80 E004A8C0 25080008 */ addiu $t0, $t0, 8
/* 358D84 E004A8C4 AC620000 */ sw $v0, ($v1)
/* 358D88 E004A8C8 AC600004 */ sw $zero, 4($v1)
/* 358D8C E004A8CC AD060000 */ sw $a2, ($t0)
/* 358D90 E004A8D0 8FAF0118 */ lw $t7, 0x118($sp)
/* 358D94 E004A8D4 4407A000 */ mfc1 $a3, $f20
/* 358D98 E004A8D8 8DE20010 */ lw $v0, 0x10($t7)
/* 358D9C E004A8DC 3C038007 */ lui $v1, %hi(gCurrentCameraID)
/* 358DA0 E004A8E0 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
/* 358DA4 E004A8E4 8C46001C */ lw $a2, 0x1c($v0)
/* 358DA8 E004A8E8 3C02DE00 */ lui $v0, 0xde00
/* 358DAC E004A8EC AD020008 */ sw $v0, 8($t0)
/* 358DB0 E004A8F0 3C028000 */ lui $v0, 0x8000
/* 358DB4 E004A8F4 AD09000C */ sw $t1, 0xc($t0)
/* 358DB8 E004A8F8 00C23021 */ addu $a2, $a2, $v0
/* 358DBC E004A8FC 00031080 */ sll $v0, $v1, 2
/* 358DC0 E004A900 00431021 */ addu $v0, $v0, $v1
/* 358DC4 E004A904 00021080 */ sll $v0, $v0, 2
/* 358DC8 E004A908 00431023 */ subu $v0, $v0, $v1
/* 358DCC E004A90C 000218C0 */ sll $v1, $v0, 3
/* 358DD0 E004A910 00431021 */ addu $v0, $v0, $v1
/* 358DD4 E004A914 000210C0 */ sll $v0, $v0, 3
/* 358DD8 E004A918 AD060004 */ sw $a2, 4($t0)
/* 358DDC E004A91C 3C01800B */ lui $at, %hi(gCameras+0x6C)
/* 358DE0 E004A920 00220821 */ addu $at, $at, $v0
/* 358DE4 E004A924 C4221DEC */ lwc1 $f2, %lo(gCameras+0x6C)($at)
/* 358DE8 E004A928 3C100001 */ lui $s0, 1
/* 358DEC E004A92C AE680000 */ sw $t0, ($s3)
/* 358DF0 E004A930 E7B80010 */ swc1 $f24, 0x10($sp)
/* 358DF4 E004A934 C6200004 */ lwc1 $f0, 4($s1)
/* 358DF8 E004A938 25020008 */ addiu $v0, $t0, 8
/* 358DFC E004A93C AE620000 */ sw $v0, ($s3)
/* 358E00 E004A940 46001087 */ neg.s $f2, $f2
/* 358E04 E004A944 E7A00014 */ swc1 $f0, 0x14($sp)
/* 358E08 E004A948 C6200008 */ lwc1 $f0, 8($s1)
/* 358E0C E004A94C 44061000 */ mfc1 $a2, $f2
/* 358E10 E004A950 25080010 */ addiu $t0, $t0, 0x10
/* 358E14 E004A954 AE680000 */ sw $t0, ($s3)
/* 358E18 E004A958 E7A00018 */ swc1 $f0, 0x18($sp)
/* 358E1C E004A95C C620000C */ lwc1 $f0, 0xc($s1)
/* 358E20 E004A960 36101630 */ ori $s0, $s0, 0x1630
/* 358E24 E004A964 0C080180 */ jal shim_guPositionF
/* 358E28 E004A968 E7A0001C */ swc1 $f0, 0x1c($sp)
/* 358E2C E004A96C 27A40020 */ addiu $a0, $sp, 0x20
/* 358E30 E004A970 3C158007 */ lui $s5, %hi(gMatrixListPos)
/* 358E34 E004A974 26B541F0 */ addiu $s5, $s5, %lo(gMatrixListPos)
/* 358E38 E004A978 3C16800A */ lui $s6, %hi(gDisplayContext)
/* 358E3C E004A97C 26D6A674 */ addiu $s6, $s6, %lo(gDisplayContext)
/* 358E40 E004A980 96A50000 */ lhu $a1, ($s5)
/* 358E44 E004A984 8EC20000 */ lw $v0, ($s6)
/* 358E48 E004A988 00052980 */ sll $a1, $a1, 6
/* 358E4C E004A98C 00B02821 */ addu $a1, $a1, $s0
/* 358E50 E004A990 0C080118 */ jal shim_guMtxF2L
/* 358E54 E004A994 00452821 */ addu $a1, $v0, $a1
/* 358E58 E004A998 24140001 */ addiu $s4, $zero, 1
/* 358E5C E004A99C 3C02DA38 */ lui $v0, 0xda38
/* 358E60 E004A9A0 8E650000 */ lw $a1, ($s3)
/* 358E64 E004A9A4 96A40000 */ lhu $a0, ($s5)
/* 358E68 E004A9A8 00A0302D */ daddu $a2, $a1, $zero
/* 358E6C E004A9AC 24A50008 */ addiu $a1, $a1, 8
/* 358E70 E004A9B0 ACC20000 */ sw $v0, ($a2)
/* 358E74 E004A9B4 3082FFFF */ andi $v0, $a0, 0xffff
/* 358E78 E004A9B8 00021180 */ sll $v0, $v0, 6
/* 358E7C E004A9BC 00501021 */ addu $v0, $v0, $s0
/* 358E80 E004A9C0 00942021 */ addu $a0, $a0, $s4
/* 358E84 E004A9C4 8EC30000 */ lw $v1, ($s6)
/* 358E88 E004A9C8 00A0B82D */ daddu $s7, $a1, $zero
/* 358E8C E004A9CC 00621821 */ addu $v1, $v1, $v0
/* 358E90 E004A9D0 ACC30004 */ sw $v1, 4($a2)
/* 358E94 E004A9D4 8E2F0038 */ lw $t7, 0x38($s1)
/* 358E98 E004A9D8 26E30008 */ addiu $v1, $s7, 8
/* 358E9C E004A9DC AFAF00A0 */ sw $t7, 0xa0($sp)
/* 358EA0 E004A9E0 AE650000 */ sw $a1, ($s3)
/* 358EA4 E004A9E4 A6A40000 */ sh $a0, ($s5)
/* 358EA8 E004A9E8 AE630000 */ sw $v1, ($s3)
/* 358EAC E004A9EC 8FAF0118 */ lw $t7, 0x118($sp)
/* 358EB0 E004A9F0 8DE20008 */ lw $v0, 8($t7)
/* 358EB4 E004A9F4 26310058 */ addiu $s1, $s1, 0x58
/* 358EB8 E004A9F8 0282102A */ slt $v0, $s4, $v0
/* 358EBC E004A9FC 10400090 */ beqz $v0, .LE004AC40
/* 358EC0 E004AA00 AFA300D4 */ sw $v1, 0xd4($sp)
/* 358EC4 E004AA04 27B20060 */ addiu $s2, $sp, 0x60
/* 358EC8 E004AA08 4600A586 */ mov.s $f22, $f20
/* 358ECC E004AA0C 3C01E005 */ lui $at, %hi(D_E004AEE8)
/* 358ED0 E004AA10 D434AEE8 */ ldc1 $f20, %lo(D_E004AEE8)($at)
/* 358ED4 E004AA14 02A0B02D */ daddu $s6, $s5, $zero
/* 358ED8 E004AA18 3C150001 */ lui $s5, 1
/* 358EDC E004AA1C 36B51630 */ ori $s5, $s5, 0x1630
/* 358EE0 E004AA20 3C1EF200 */ lui $fp, 0xf200
/* 358EE4 E004AA24 26300044 */ addiu $s0, $s1, 0x44
.LE004AA28:
/* 358EE8 E004AA28 8E020008 */ lw $v0, 8($s0)
/* 358EEC E004AA2C 0440007E */ bltz $v0, .LE004AC28
/* 358EF0 E004AA30 00000000 */ nop
/* 358EF4 E004AA34 8E05FFC0 */ lw $a1, -0x40($s0)
/* 358EF8 E004AA38 8E06FFC4 */ lw $a2, -0x3c($s0)
/* 358EFC E004AA3C 8E07FFC8 */ lw $a3, -0x38($s0)
/* 358F00 E004AA40 0C080108 */ jal shim_guTranslateF
/* 358F04 E004AA44 27A40020 */ addiu $a0, $sp, 0x20
/* 358F08 E004AA48 E7B80010 */ swc1 $f24, 0x10($sp)
/* 358F0C E004AA4C 8E05FFF0 */ lw $a1, -0x10($s0)
/* 358F10 E004AA50 4406B000 */ mfc1 $a2, $f22
/* 358F14 E004AA54 4407B000 */ mfc1 $a3, $f22
/* 358F18 E004AA58 0C080104 */ jal shim_guRotateF
/* 358F1C E004AA5C 0240202D */ daddu $a0, $s2, $zero
/* 358F20 E004AA60 0240202D */ daddu $a0, $s2, $zero
/* 358F24 E004AA64 27A50020 */ addiu $a1, $sp, 0x20
/* 358F28 E004AA68 0C080114 */ jal shim_guMtxCatF
/* 358F2C E004AA6C 00A0302D */ daddu $a2, $a1, $zero
/* 358F30 E004AA70 C604FFD8 */ lwc1 $f4, -0x28($s0)
/* 358F34 E004AA74 46002121 */ cvt.d.s $f4, $f4
/* 358F38 E004AA78 46342102 */ mul.d $f4, $f4, $f20
/* 358F3C E004AA7C 00000000 */ nop
/* 358F40 E004AA80 C602FFDC */ lwc1 $f2, -0x24($s0)
/* 358F44 E004AA84 460010A1 */ cvt.d.s $f2, $f2
/* 358F48 E004AA88 46341082 */ mul.d $f2, $f2, $f20
/* 358F4C E004AA8C 00000000 */ nop
/* 358F50 E004AA90 C600FFE0 */ lwc1 $f0, -0x20($s0)
/* 358F54 E004AA94 46000021 */ cvt.d.s $f0, $f0
/* 358F58 E004AA98 46340002 */ mul.d $f0, $f0, $f20
/* 358F5C E004AA9C 00000000 */ nop
/* 358F60 E004AAA0 46202120 */ cvt.s.d $f4, $f4
/* 358F64 E004AAA4 462010A0 */ cvt.s.d $f2, $f2
/* 358F68 E004AAA8 46200020 */ cvt.s.d $f0, $f0
/* 358F6C E004AAAC 44052000 */ mfc1 $a1, $f4
/* 358F70 E004AAB0 44061000 */ mfc1 $a2, $f2
/* 358F74 E004AAB4 44070000 */ mfc1 $a3, $f0
/* 358F78 E004AAB8 0C080110 */ jal shim_guScaleF
/* 358F7C E004AABC 0240202D */ daddu $a0, $s2, $zero
/* 358F80 E004AAC0 0240202D */ daddu $a0, $s2, $zero
/* 358F84 E004AAC4 27A50020 */ addiu $a1, $sp, 0x20
/* 358F88 E004AAC8 0C080114 */ jal shim_guMtxCatF
/* 358F8C E004AACC 00A0302D */ daddu $a2, $a1, $zero
/* 358F90 E004AAD0 E7B60010 */ swc1 $f22, 0x10($sp)
/* 358F94 E004AAD4 8E05FFEC */ lw $a1, -0x14($s0)
/* 358F98 E004AAD8 4406B000 */ mfc1 $a2, $f22
/* 358F9C E004AADC 4407C000 */ mfc1 $a3, $f24
/* 358FA0 E004AAE0 0C080104 */ jal shim_guRotateF
/* 358FA4 E004AAE4 0240202D */ daddu $a0, $s2, $zero
/* 358FA8 E004AAE8 0240202D */ daddu $a0, $s2, $zero
/* 358FAC E004AAEC 27A50020 */ addiu $a1, $sp, 0x20
/* 358FB0 E004AAF0 0C080114 */ jal shim_guMtxCatF
/* 358FB4 E004AAF4 00A0302D */ daddu $a2, $a1, $zero
/* 358FB8 E004AAF8 27A40020 */ addiu $a0, $sp, 0x20
/* 358FBC E004AAFC 96C50000 */ lhu $a1, ($s6)
/* 358FC0 E004AB00 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 358FC4 E004AB04 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 358FC8 E004AB08 00052980 */ sll $a1, $a1, 6
/* 358FCC E004AB0C 00B52821 */ addu $a1, $a1, $s5
/* 358FD0 E004AB10 0C080118 */ jal shim_guMtxF2L
/* 358FD4 E004AB14 00452821 */ addu $a1, $v0, $a1
/* 358FD8 E004AB18 3C06000F */ lui $a2, 0xf
/* 358FDC E004AB1C 34C6C000 */ ori $a2, $a2, 0xc000
/* 358FE0 E004AB20 3C080107 */ lui $t0, 0x107
/* 358FE4 E004AB24 3508C000 */ ori $t0, $t0, 0xc000
/* 358FE8 E004AB28 3C07D838 */ lui $a3, 0xd838
/* 358FEC E004AB2C 34E70002 */ ori $a3, $a3, 2
/* 358FF0 E004AB30 8E630000 */ lw $v1, ($s3)
/* 358FF4 E004AB34 C600FFF8 */ lwc1 $f0, -8($s0)
/* 358FF8 E004AB38 0060282D */ daddu $a1, $v1, $zero
/* 358FFC E004AB3C 24630008 */ addiu $v1, $v1, 8
/* 359000 E004AB40 4600018D */ trunc.w.s $f6, $f0
/* 359004 E004AB44 44023000 */ mfc1 $v0, $f6
/* 359008 E004AB48 00000000 */ nop
/* 35900C E004AB4C 30420FFF */ andi $v0, $v0, 0xfff
/* 359010 E004AB50 005E1025 */ or $v0, $v0, $fp
/* 359014 E004AB54 AE630000 */ sw $v1, ($s3)
/* 359018 E004AB58 ACA20000 */ sw $v0, ($a1)
/* 35901C E004AB5C 24620008 */ addiu $v0, $v1, 8
/* 359020 E004AB60 AE620000 */ sw $v0, ($s3)
/* 359024 E004AB64 96C40000 */ lhu $a0, ($s6)
/* 359028 E004AB68 24620010 */ addiu $v0, $v1, 0x10
/* 35902C E004AB6C AE620000 */ sw $v0, ($s3)
/* 359030 E004AB70 24820001 */ addiu $v0, $a0, 1
/* 359034 E004AB74 A6C20000 */ sh $v0, ($s6)
/* 359038 E004AB78 24620018 */ addiu $v0, $v1, 0x18
/* 35903C E004AB7C 3084FFFF */ andi $a0, $a0, 0xffff
/* 359040 E004AB80 00042180 */ sll $a0, $a0, 6
/* 359044 E004AB84 C600FFF8 */ lwc1 $f0, -8($s0)
/* 359048 E004AB88 00952021 */ addu $a0, $a0, $s5
/* 35904C E004AB8C AE620000 */ sw $v0, ($s3)
/* 359050 E004AB90 4600018D */ trunc.w.s $f6, $f0
/* 359054 E004AB94 44023000 */ mfc1 $v0, $f6
/* 359058 E004AB98 00000000 */ nop
/* 35905C E004AB9C 2442007C */ addiu $v0, $v0, 0x7c
/* 359060 E004ABA0 30420FFF */ andi $v0, $v0, 0xfff
/* 359064 E004ABA4 00461025 */ or $v0, $v0, $a2
/* 359068 E004ABA8 ACA20004 */ sw $v0, 4($a1)
/* 35906C E004ABAC C6000000 */ lwc1 $f0, ($s0)
/* 359070 E004ABB0 24620020 */ addiu $v0, $v1, 0x20
/* 359074 E004ABB4 AE620000 */ sw $v0, ($s3)
/* 359078 E004ABB8 4600018D */ trunc.w.s $f6, $f0
/* 35907C E004ABBC 44023000 */ mfc1 $v0, $f6
/* 359080 E004ABC0 00000000 */ nop
/* 359084 E004ABC4 30420FFF */ andi $v0, $v0, 0xfff
/* 359088 E004ABC8 005E1025 */ or $v0, $v0, $fp
/* 35908C E004ABCC AC620000 */ sw $v0, ($v1)
/* 359090 E004ABD0 C6000000 */ lwc1 $f0, ($s0)
/* 359094 E004ABD4 3C02DA38 */ lui $v0, 0xda38
/* 359098 E004ABD8 AC620008 */ sw $v0, 8($v1)
/* 35909C E004ABDC 3C02800A */ lui $v0, %hi(gDisplayContext)
/* 3590A0 E004ABE0 8C42A674 */ lw $v0, %lo(gDisplayContext)($v0)
/* 3590A4 E004ABE4 3C0F0900 */ lui $t7, 0x900
/* 3590A8 E004ABE8 25EF0940 */ addiu $t7, $t7, 0x940
/* 3590AC E004ABEC AC6F0014 */ sw $t7, 0x14($v1)
/* 3590B0 E004ABF0 AC670018 */ sw $a3, 0x18($v1)
/* 3590B4 E004ABF4 00441021 */ addu $v0, $v0, $a0
/* 3590B8 E004ABF8 AC62000C */ sw $v0, 0xc($v1)
/* 3590BC E004ABFC 3C02DE00 */ lui $v0, 0xde00
/* 3590C0 E004AC00 AC620010 */ sw $v0, 0x10($v1)
/* 3590C4 E004AC04 24020040 */ addiu $v0, $zero, 0x40
/* 3590C8 E004AC08 AC62001C */ sw $v0, 0x1c($v1)
/* 3590CC E004AC0C 4600018D */ trunc.w.s $f6, $f0
/* 3590D0 E004AC10 44023000 */ mfc1 $v0, $f6
/* 3590D4 E004AC14 00000000 */ nop
/* 3590D8 E004AC18 2442007C */ addiu $v0, $v0, 0x7c
/* 3590DC E004AC1C 30420FFF */ andi $v0, $v0, 0xfff
/* 3590E0 E004AC20 00481025 */ or $v0, $v0, $t0
/* 3590E4 E004AC24 AC620004 */ sw $v0, 4($v1)
.LE004AC28:
/* 3590E8 E004AC28 8FAF0118 */ lw $t7, 0x118($sp)
/* 3590EC E004AC2C 26940001 */ addiu $s4, $s4, 1
/* 3590F0 E004AC30 8DE20008 */ lw $v0, 8($t7)
/* 3590F4 E004AC34 0282102A */ slt $v0, $s4, $v0
/* 3590F8 E004AC38 1440FF7B */ bnez $v0, .LE004AA28
/* 3590FC E004AC3C 26100058 */ addiu $s0, $s0, 0x58
.LE004AC40:
/* 359100 E004AC40 3C0AD9FF */ lui $t2, 0xd9ff
/* 359104 E004AC44 354AF9FF */ ori $t2, $t2, 0xf9ff
/* 359108 E004AC48 3C0BD9FF */ lui $t3, 0xd9ff
/* 35910C E004AC4C 356BFFFF */ ori $t3, $t3, 0xffff
/* 359110 E004AC50 3C05800A */ lui $a1, %hi(gMasterGfxPos)
/* 359114 E004AC54 24A5A66C */ addiu $a1, $a1, %lo(gMasterGfxPos)
/* 359118 E004AC58 3C02DF00 */ lui $v0, 0xdf00
/* 35911C E004AC5C 8CA30000 */ lw $v1, ($a1)
/* 359120 E004AC60 3C09FA00 */ lui $t1, 0xfa00
/* 359124 E004AC64 0060202D */ daddu $a0, $v1, $zero
/* 359128 E004AC68 24630008 */ addiu $v1, $v1, 8
/* 35912C E004AC6C ACA30000 */ sw $v1, ($a1)
/* 359130 E004AC70 AC820000 */ sw $v0, ($a0)
/* 359134 E004AC74 3C02DE01 */ lui $v0, 0xde01
/* 359138 E004AC78 AC800004 */ sw $zero, 4($a0)
/* 35913C E004AC7C AEE20000 */ sw $v0, ($s7)
/* 359140 E004AC80 24620008 */ addiu $v0, $v1, 8
/* 359144 E004AC84 AEE30004 */ sw $v1, 4($s7)
/* 359148 E004AC88 ACA20000 */ sw $v0, ($a1)
/* 35914C E004AC8C AC690000 */ sw $t1, ($v1)
/* 359150 E004AC90 8FAF00BC */ lw $t7, 0xbc($sp)
/* 359154 E004AC94 3C0CE300 */ lui $t4, 0xe300
/* 359158 E004AC98 000F1600 */ sll $v0, $t7, 0x18
/* 35915C E004AC9C 8FAF00C0 */ lw $t7, 0xc0($sp)
/* 359160 E004ACA0 3C07FB00 */ lui $a3, 0xfb00
/* 359164 E004ACA4 000F2400 */ sll $a0, $t7, 0x10
/* 359168 E004ACA8 8FAF00C4 */ lw $t7, 0xc4($sp)
/* 35916C E004ACAC 00441025 */ or $v0, $v0, $a0
/* 359170 E004ACB0 000F2200 */ sll $a0, $t7, 8
/* 359174 E004ACB4 8FAF00A0 */ lw $t7, 0xa0($sp)
/* 359178 E004ACB8 00441025 */ or $v0, $v0, $a0
/* 35917C E004ACBC 31E800FF */ andi $t0, $t7, 0xff
/* 359180 E004ACC0 00481025 */ or $v0, $v0, $t0
/* 359184 E004ACC4 AC620004 */ sw $v0, 4($v1)
/* 359188 E004ACC8 24620010 */ addiu $v0, $v1, 0x10
/* 35918C E004ACCC ACA20000 */ sw $v0, ($a1)
/* 359190 E004ACD0 AC670008 */ sw $a3, 8($v1)
/* 359194 E004ACD4 8FAF00C8 */ lw $t7, 0xc8($sp)
/* 359198 E004ACD8 358C1801 */ ori $t4, $t4, 0x1801
/* 35919C E004ACDC 000F1600 */ sll $v0, $t7, 0x18
/* 3591A0 E004ACE0 8FAF00CC */ lw $t7, 0xcc($sp)
/* 3591A4 E004ACE4 3C06DE00 */ lui $a2, 0xde00
/* 3591A8 E004ACE8 000F2400 */ sll $a0, $t7, 0x10
/* 3591AC E004ACEC 8FAF00D0 */ lw $t7, 0xd0($sp)
/* 3591B0 E004ACF0 00441025 */ or $v0, $v0, $a0
/* 3591B4 E004ACF4 000F2200 */ sll $a0, $t7, 8
/* 3591B8 E004ACF8 00441025 */ or $v0, $v0, $a0
/* 3591BC E004ACFC AC62000C */ sw $v0, 0xc($v1)
/* 3591C0 E004AD00 24620018 */ addiu $v0, $v1, 0x18
/* 3591C4 E004AD04 ACA20000 */ sw $v0, ($a1)
/* 3591C8 E004AD08 24620020 */ addiu $v0, $v1, 0x20
/* 3591CC E004AD0C AC6A0010 */ sw $t2, 0x10($v1)
/* 3591D0 E004AD10 AC600014 */ sw $zero, 0x14($v1)
/* 3591D4 E004AD14 ACA20000 */ sw $v0, ($a1)
/* 3591D8 E004AD18 24020200 */ addiu $v0, $zero, 0x200
/* 3591DC E004AD1C AC62001C */ sw $v0, 0x1c($v1)
/* 3591E0 E004AD20 24620028 */ addiu $v0, $v1, 0x28
/* 3591E4 E004AD24 AC6B0018 */ sw $t3, 0x18($v1)
/* 3591E8 E004AD28 ACA20000 */ sw $v0, ($a1)
/* 3591EC E004AD2C AC660020 */ sw $a2, 0x20($v1)
/* 3591F0 E004AD30 8FAF00D4 */ lw $t7, 0xd4($sp)
/* 3591F4 E004AD34 24620030 */ addiu $v0, $v1, 0x30
/* 3591F8 E004AD38 AC6F0024 */ sw $t7, 0x24($v1)
/* 3591FC E004AD3C ACA20000 */ sw $v0, ($a1)
/* 359200 E004AD40 AC690028 */ sw $t1, 0x28($v1)
/* 359204 E004AD44 8FAF00A4 */ lw $t7, 0xa4($sp)
/* 359208 E004AD48 3C0DE300 */ lui $t5, 0xe300
/* 35920C E004AD4C 000F1600 */ sll $v0, $t7, 0x18
/* 359210 E004AD50 8FAF00A8 */ lw $t7, 0xa8($sp)
/* 359214 E004AD54 35AD1A01 */ ori $t5, $t5, 0x1a01
/* 359218 E004AD58 000F2400 */ sll $a0, $t7, 0x10
/* 35921C E004AD5C 8FAF00AC */ lw $t7, 0xac($sp)
/* 359220 E004AD60 00441025 */ or $v0, $v0, $a0
/* 359224 E004AD64 000F2200 */ sll $a0, $t7, 8
/* 359228 E004AD68 00441025 */ or $v0, $v0, $a0
/* 35922C E004AD6C 00481025 */ or $v0, $v0, $t0
/* 359230 E004AD70 AC62002C */ sw $v0, 0x2c($v1)
/* 359234 E004AD74 24620038 */ addiu $v0, $v1, 0x38
/* 359238 E004AD78 ACA20000 */ sw $v0, ($a1)
/* 35923C E004AD7C AC670030 */ sw $a3, 0x30($v1)
/* 359240 E004AD80 8FAF00B0 */ lw $t7, 0xb0($sp)
/* 359244 E004AD84 3C0ED838 */ lui $t6, 0xd838
/* 359248 E004AD88 000F1600 */ sll $v0, $t7, 0x18
/* 35924C E004AD8C 8FAF00B4 */ lw $t7, 0xb4($sp)
/* 359250 E004AD90 35CE0002 */ ori $t6, $t6, 2
/* 359254 E004AD94 000F2400 */ sll $a0, $t7, 0x10
/* 359258 E004AD98 8FAF00B8 */ lw $t7, 0xb8($sp)
/* 35925C E004AD9C 00441025 */ or $v0, $v0, $a0
/* 359260 E004ADA0 000F2200 */ sll $a0, $t7, 8
/* 359264 E004ADA4 00441025 */ or $v0, $v0, $a0
/* 359268 E004ADA8 AC620034 */ sw $v0, 0x34($v1)
/* 35926C E004ADAC 24620040 */ addiu $v0, $v1, 0x40
/* 359270 E004ADB0 ACA20000 */ sw $v0, ($a1)
/* 359274 E004ADB4 24620048 */ addiu $v0, $v1, 0x48
/* 359278 E004ADB8 AC6A0038 */ sw $t2, 0x38($v1)
/* 35927C E004ADBC AC60003C */ sw $zero, 0x3c($v1)
/* 359280 E004ADC0 ACA20000 */ sw $v0, ($a1)
/* 359284 E004ADC4 24020400 */ addiu $v0, $zero, 0x400
/* 359288 E004ADC8 AC620044 */ sw $v0, 0x44($v1)
/* 35928C E004ADCC 24620050 */ addiu $v0, $v1, 0x50
/* 359290 E004ADD0 AC6B0040 */ sw $t3, 0x40($v1)
/* 359294 E004ADD4 ACA20000 */ sw $v0, ($a1)
/* 359298 E004ADD8 AC660048 */ sw $a2, 0x48($v1)
/* 35929C E004ADDC 8FAF00D4 */ lw $t7, 0xd4($sp)
/* 3592A0 E004ADE0 24620058 */ addiu $v0, $v1, 0x58
/* 3592A4 E004ADE4 AC6F004C */ sw $t7, 0x4c($v1)
/* 3592A8 E004ADE8 ACA20000 */ sw $v0, ($a1)
/* 3592AC E004ADEC 240200C0 */ addiu $v0, $zero, 0xc0
/* 3592B0 E004ADF0 AC6C0050 */ sw $t4, 0x50($v1)
/* 3592B4 E004ADF4 AC620054 */ sw $v0, 0x54($v1)
/* 3592B8 E004ADF8 24620060 */ addiu $v0, $v1, 0x60
/* 3592BC E004ADFC ACA20000 */ sw $v0, ($a1)
/* 3592C0 E004AE00 24020030 */ addiu $v0, $zero, 0x30
/* 3592C4 E004AE04 AC62005C */ sw $v0, 0x5c($v1)
/* 3592C8 E004AE08 24620068 */ addiu $v0, $v1, 0x68
/* 3592CC E004AE0C AC6D0058 */ sw $t5, 0x58($v1)
/* 3592D0 E004AE10 ACA20000 */ sw $v0, ($a1)
/* 3592D4 E004AE14 24020040 */ addiu $v0, $zero, 0x40
/* 3592D8 E004AE18 AC6E0060 */ sw $t6, 0x60($v1)
/* 3592DC E004AE1C AC620064 */ sw $v0, 0x64($v1)
/* 3592E0 E004AE20 8FBF00FC */ lw $ra, 0xfc($sp)
/* 3592E4 E004AE24 8FBE00F8 */ lw $fp, 0xf8($sp)
/* 3592E8 E004AE28 8FB700F4 */ lw $s7, 0xf4($sp)
/* 3592EC E004AE2C 8FB600F0 */ lw $s6, 0xf0($sp)
/* 3592F0 E004AE30 8FB500EC */ lw $s5, 0xec($sp)
/* 3592F4 E004AE34 8FB400E8 */ lw $s4, 0xe8($sp)
/* 3592F8 E004AE38 8FB300E4 */ lw $s3, 0xe4($sp)
/* 3592FC E004AE3C 8FB200E0 */ lw $s2, 0xe0($sp)
/* 359300 E004AE40 8FB100DC */ lw $s1, 0xdc($sp)
/* 359304 E004AE44 8FB000D8 */ lw $s0, 0xd8($sp)
/* 359308 E004AE48 D7B80110 */ ldc1 $f24, 0x110($sp)
/* 35930C E004AE4C D7B60108 */ ldc1 $f22, 0x108($sp)
/* 359310 E004AE50 D7B40100 */ ldc1 $f20, 0x100($sp)
/* 359314 E004AE54 03E00008 */ jr $ra
/* 359318 E004AE58 27BD0118 */ addiu $sp, $sp, 0x118
/* 35931C E004AE5C 00000000 */ nop

View File

@ -4907,9 +4907,59 @@ segments:
subsegments:
- [0x3A70F0, c, quizmo_audience]
- [0x3A7710]
- start: 0x3A77A0 # quizmo_audience gfx
type: bin
align: 16
- name: effect_gfx_quizmo_audience
dir: effects/gfx
type: code
start: 0x3A77A0
vram: 0x09000000
symbol_name_format: $VRAM_$ROM
subsegments:
- [0x3A77A0, c, quizmo_audience]
- start: 0x3A77A0
type: .data
name: quizmo_audience
subsegments:
- [0x3A77A0, ia4, D_09000000_3A77A0, 32, 64]
- [0x3A7BA0, gfx, D_09000400_3A7BA0]
- [0x3A7C10, ia4, D_09000470_3A7C10, 32, 64]
- [0x3A8010, gfx, D_09000870_3A8010]
- [0x3A8080, ia4, D_090008E0_3A8080, 32, 64]
- [0x3A8480, gfx, D_09000CE0_3A8480]
- [0x3A84F0, ia4, D_09000D50_3A84F0, 32, 64]
- [0x3A88F0, gfx, D_09001150_3A88F0]
- [0x3A8960, ia4, D_090011C0_3A8960, 32, 64]
- [0x3A8D60, gfx, D_090015C0_3A8D60]
- [0x3A8DD0, ia4, D_09001630_3A8DD0, 32, 64]
- [0x3A91D0, gfx, D_09001A30_3A91D0]
- [0x3A9240, ia4, D_09001AA0_3A9240, 32, 64]
- [0x3A9640, gfx, D_09001EA0_3A9640]
- [0x3A96B0, ia4, D_09001F10_3A96B0, 32, 64]
- [0x3A9AB0, gfx, D_09002310_3A9AB0]
- [0x3A9B20, ia4, D_09002380_3A9B20, 32, 64]
- [0x3A9F20, gfx, D_09002780_3A9F20]
- [0x3A9F90, ia4, D_090027F0_3A9F90, 32, 64]
- [0x3AA390, gfx, D_09002BF0_3AA390]
- [0x3AA400, vtx, D_09002C60_3AA400]
- [0x3AA440, vtx, D_09002CA0_3AA440]
- [0x3AA480, vtx, D_09002CE0_3AA480]
- [0x3AA4C0, vtx, D_09002D20_3AA4C0]
- [0x3AA500, vtx, D_09002D60_3AA500]
- [0x3AA540, vtx, D_09002DA0_3AA540]
- [0x3AA580, vtx, D_09002DE0_3AA580]
- [0x3AA5C0, vtx, D_09002E20_3AA5C0]
- [0x3AA600, vtx, D_09002E60_3AA600]
- [0x3AA640, vtx, D_09002EA0_3AA640]
- [0x3AA680, gfx, D_09002EE0_3AA680]
- [0x3AA6B8, gfx, D_09002F18_3AA6B8]
- [0x3AA6F0, gfx, D_09002F50_3AA6F0]
- [0x3AA728, gfx, D_09002F88_3AA728]
- [0x3AA760, gfx, D_09002FC0_3AA760]
- [0x3AA798, gfx, D_09002FF8_3AA798]
- [0x3AA7D0, gfx, D_09003030_3AA7D0]
- [0x3AA808, gfx, D_09003068_3AA808]
- [0x3AA840, gfx, D_090030A0_3AA840]
- [0x3AA878, gfx, D_090030D8_3AA878]
- [0x3AA8B0, gfx, D_09003110_3AA8B0]
- name: effect_butterflies
dir: effects
type: code
@ -6332,7 +6382,7 @@ segments:
vram: 0xE011A000
subsegments:
- [0x404220, c, partner_buff]
- [0x404E40, data]
- [0x404E40]
- type: group # partner_buff gfx
start: 0x404F40
align: 16

View File

@ -59,6 +59,14 @@ D_09001240 = 0x09001240;
D_09001258 = 0x09001258;
D_09001270 = 0x09001270;
// effect_partner_buff
D_09001800 = 0x09001800;
D_090019A0 = 0x090019A0;
D_09001A18 = 0x09001A18;
D_09001A90 = 0x09001A90;
D_09001B08 = 0x09001B08;
D_09001B80 = 0x09001B80;
// effect_spirit_card
D_090042E0 = 0x090042E0;